diff --git a/polardbx-calcite/pom.xml b/polardbx-calcite/pom.xml index cdbcbca42..dd15cd601 100644 --- a/polardbx-calcite/pom.xml +++ b/polardbx-calcite/pom.xml @@ -197,6 +197,12 @@ limitations under the License. polardbx-rule ${parent.version} + + org.mockito + mockito-inline + ${mockito.verison} + test + diff --git a/polardbx-calcite/src/main/java/org/apache/calcite/plan/RelOptUtil.java b/polardbx-calcite/src/main/java/org/apache/calcite/plan/RelOptUtil.java index 388ccd41e..9aa33c713 100644 --- a/polardbx-calcite/src/main/java/org/apache/calcite/plan/RelOptUtil.java +++ b/polardbx-calcite/src/main/java/org/apache/calcite/plan/RelOptUtil.java @@ -96,12 +96,14 @@ import org.apache.calcite.runtime.CalciteContextException; import org.apache.calcite.runtime.PredicateImpl; import org.apache.calcite.schema.ModifiableView; +import org.apache.calcite.sql.SqlBasicCall; import org.apache.calcite.sql.SqlExplainFormat; import org.apache.calcite.sql.SqlExplainLevel; import org.apache.calcite.sql.SqlKind; import org.apache.calcite.sql.SqlLiteral; import org.apache.calcite.sql.SqlNode; import org.apache.calcite.sql.SqlOperator; +import org.apache.calcite.sql.SqlSelect; import org.apache.calcite.sql.fun.SqlStdOperatorTable; import org.apache.calcite.sql.type.MultisetSqlType; import org.apache.calcite.sql.type.SqlTypeName; @@ -4354,6 +4356,26 @@ public boolean test(RelNode relNode) { return traits.getCollation().isTop() && traits.getDistribution().isTop(); } }; + + public static boolean isUnion(SqlNode node) { + return node instanceof SqlBasicCall && node.getKind() == SqlKind.UNION; + } + + public static int getColumnCount(SqlNode node) { + if (isUnion(node)) { + final SqlNode[] children = ((SqlBasicCall) node).getOperands(); + for (int i = 0; i < children.length; i++) { + final int columnCount = getColumnCount(children[i]); + if (columnCount > 0) { + return columnCount; + } + } + return -1; + } else if (node instanceof SqlSelect) { + return ((SqlSelect) node).getSelectList().size(); + } + return -1; + } } // End RelOptUtil.java diff --git a/polardbx-calcite/src/main/java/org/apache/calcite/rel/AbstractRelNode.java b/polardbx-calcite/src/main/java/org/apache/calcite/rel/AbstractRelNode.java index 29f0db311..44ef93379 100644 --- a/polardbx-calcite/src/main/java/org/apache/calcite/rel/AbstractRelNode.java +++ b/polardbx-calcite/src/main/java/org/apache/calcite/rel/AbstractRelNode.java @@ -321,7 +321,6 @@ public RelNode onRegister(RelOptPlanner planner) { r = copy(getTraitSet(), inputs); } r.recomputeDigest(); - assert r.isValid(Litmus.THROW, null); return r; } diff --git a/polardbx-calcite/src/main/java/org/apache/calcite/rel/core/AggregateCall.java b/polardbx-calcite/src/main/java/org/apache/calcite/rel/core/AggregateCall.java index f05c4af24..8cd8c4f5a 100644 --- a/polardbx-calcite/src/main/java/org/apache/calcite/rel/core/AggregateCall.java +++ b/polardbx-calcite/src/main/java/org/apache/calcite/rel/core/AggregateCall.java @@ -16,18 +16,18 @@ */ package org.apache.calcite.rel.core; +import com.google.common.base.Preconditions; +import com.google.common.collect.ImmutableList; import org.apache.calcite.rel.RelNode; import org.apache.calcite.rel.externalize.RexExplainVisitor; import org.apache.calcite.rel.type.RelDataType; import org.apache.calcite.rel.type.RelDataTypeFactory; import org.apache.calcite.sql.SqlAggFunction; import org.apache.calcite.sql.type.SqlTypeUtil; +import org.apache.calcite.util.Optionality; import org.apache.calcite.util.mapping.Mapping; import org.apache.calcite.util.mapping.Mappings; -import com.google.common.base.Preconditions; -import com.google.common.collect.ImmutableList; - import java.util.List; import java.util.Objects; @@ -38,16 +38,16 @@ public class AggregateCall { //~ Instance fields -------------------------------------------------------- - private final SqlAggFunction aggFunction; + protected final SqlAggFunction aggFunction; - private final boolean distinct; - private final boolean approximate; + protected final boolean distinct; + protected final boolean approximate; public final RelDataType type; public final String name; // We considered using ImmutableIntList but we would not save much memory: // since all values are small, ImmutableList uses cached Integer values. - private final ImmutableList argList; + protected final ImmutableList argList; public final int filterArg; //~ Constructors ----------------------------------------------------------- @@ -147,7 +147,9 @@ public static AggregateCall create(SqlAggFunction aggFunction, public static AggregateCall create(SqlAggFunction aggFunction, boolean distinct, boolean approximate, List argList, int filterArg, RelDataType type, String name) { - return new AggregateCall(aggFunction, distinct, approximate, argList, + final boolean distinct2 = distinct + && (aggFunction.getDistinctOptionality() != Optionality.IGNORED); + return new AggregateCall(aggFunction, distinct2, approximate, argList, filterArg, type, name); } @@ -251,6 +253,10 @@ public boolean hasFilter() { return filterArg >= 0; } + public int getFilterArg() { + return filterArg; + } + @Override public boolean equals(Object o) { if (!(o instanceof AggregateCall)) { return false; @@ -292,19 +298,14 @@ public AggregateCall copy(List args, int filterArg) { filterArg, type, name); } - public AggregateCall copy(List args, int filterArg, boolean isDistinct) { - return new AggregateCall(aggFunction, isDistinct, approximate, args, - filterArg, type, name); - } - public AggregateCall copy(List args, int filterArg, boolean isDistinct, String newName) { return new AggregateCall(aggFunction, isDistinct, approximate, args, filterArg, type, newName); } - @Deprecated // to be removed before 2.0 - public AggregateCall copy(List args) { - return copy(args, filterArg); + public AggregateCall withDistinct(boolean distinct) { + return distinct == this.distinct ? this + : new AggregateCall(aggFunction, distinct, approximate, argList, filterArg, type, name); } /** diff --git a/polardbx-calcite/src/main/java/org/apache/calcite/rel/core/GroupConcatAggregateCall.java b/polardbx-calcite/src/main/java/org/apache/calcite/rel/core/GroupConcatAggregateCall.java index fd1dc39c8..3998fa99c 100644 --- a/polardbx-calcite/src/main/java/org/apache/calcite/rel/core/GroupConcatAggregateCall.java +++ b/polardbx-calcite/src/main/java/org/apache/calcite/rel/core/GroupConcatAggregateCall.java @@ -78,6 +78,25 @@ public GroupConcatAggregateCall copy(List args, int filterArg, List args, int filterArg) { + return new GroupConcatAggregateCall(aggFunction, distinct, approximate, args, + filterArg, type, name, orderList, separator, ascOrDescList); + } + + @Override + public GroupConcatAggregateCall copy(List args, int filterArg, boolean isDistinct, String newName) { + return new GroupConcatAggregateCall(aggFunction, isDistinct, approximate, args, + filterArg, type, newName, orderList, separator, ascOrDescList); + } + + @Override + public AggregateCall withDistinct(boolean distinct) { + return distinct == this.distinct ? this + : new GroupConcatAggregateCall(aggFunction, distinct, approximate, argList, filterArg, type, name, + orderList, separator, ascOrDescList); + } + @Override public AggregateCall adaptTo(RelNode input, List argList, int filterArg, int oldGroupKeyCount, int newGroupKeyCount) { diff --git a/polardbx-calcite/src/main/java/org/apache/calcite/rel/core/TableModify.java b/polardbx-calcite/src/main/java/org/apache/calcite/rel/core/TableModify.java index 709448dd5..39e4b8ace 100644 --- a/polardbx-calcite/src/main/java/org/apache/calcite/rel/core/TableModify.java +++ b/polardbx-calcite/src/main/java/org/apache/calcite/rel/core/TableModify.java @@ -747,6 +747,8 @@ public TableInfoNode(SqlNode table, SqlNode tableWithAlias, List re if (table instanceof SqlIdentifier || table instanceof SqlDynamicParam) { // Table this.columnCount = refTables.get(0).getRowType().getFieldCount(); + } else if (RelOptUtil.isUnion(table)) { + this.columnCount = RelOptUtil.getColumnCount(table); } else { // Subquery SqlSelect subquery = (SqlSelect) table; diff --git a/polardbx-calcite/src/main/java/org/apache/calcite/rel/core/TableScan.java b/polardbx-calcite/src/main/java/org/apache/calcite/rel/core/TableScan.java index 73816e44a..8b65158b3 100644 --- a/polardbx-calcite/src/main/java/org/apache/calcite/rel/core/TableScan.java +++ b/polardbx-calcite/src/main/java/org/apache/calcite/rel/core/TableScan.java @@ -35,6 +35,7 @@ import org.apache.calcite.rex.RexUtil; import org.apache.calcite.sql.SqlNode; import org.apache.calcite.sql.SqlNodeList; +import org.apache.calcite.sql.SqlOperator; import org.apache.calcite.sql.parser.SqlParserPos; import org.apache.calcite.tools.RelBuilder; import org.apache.calcite.util.ImmutableBitSet; @@ -78,6 +79,11 @@ public abstract class TableScan extends AbstractRelNode { */ protected RexNode flashback; + /** + * 记录AS OF 种类:AS_OF/AS_OF_80/AS_OF_57 + */ + protected SqlOperator flashbackOperator; + /** * This tableName identifier's partitions of mysql partition selection syntax *
@@ -108,11 +114,11 @@ protected TableScan(RelOptCluster cluster, RelTraitSet traitSet,
 
   protected TableScan(RelOptCluster cluster, RelTraitSet traitSet,
                       RelOptTable table, SqlNodeList hints, SqlNode indexNode) {
-    this(cluster, traitSet, table, hints, indexNode, null, null);
+    this(cluster, traitSet, table, hints, indexNode, null, null, null);
   }
 
   protected TableScan(RelOptCluster cluster, RelTraitSet traitSet, RelOptTable table, SqlNodeList hints,
-                      SqlNode indexNode, RexNode flashback, SqlNode partitions) {
+                      SqlNode indexNode, RexNode flashback, SqlOperator flashbackOperator, SqlNode partitions) {
     super(cluster, traitSet);
     this.table = table;
     this.hints = hints;
@@ -121,6 +127,7 @@ protected TableScan(RelOptCluster cluster, RelTraitSet traitSet, RelOptTable tab
       cluster.getPlanner().registerSchema(table.getRelOptSchema());
     }
     this.flashback = flashback;
+    this.flashbackOperator = flashbackOperator;
     this.partitions = partitions;
   }
   /**
@@ -265,6 +272,14 @@ public void setFlashback(RexNode flashback) {
     this.flashback = flashback;
   }
 
+  public SqlOperator getFlashbackOperator() {
+    return flashbackOperator;
+  }
+
+  public void setFlashbackOperator(SqlOperator flashbackOperator) {
+    this.flashbackOperator = flashbackOperator;
+  }
+
   public SqlNode getPartitions() {
     return partitions;
   }
diff --git a/polardbx-calcite/src/main/java/org/apache/calcite/rel/core/WindowAggregateCall.java b/polardbx-calcite/src/main/java/org/apache/calcite/rel/core/WindowAggregateCall.java
index 2f056fc9d..78456a56b 100644
--- a/polardbx-calcite/src/main/java/org/apache/calcite/rel/core/WindowAggregateCall.java
+++ b/polardbx-calcite/src/main/java/org/apache/calcite/rel/core/WindowAggregateCall.java
@@ -67,6 +67,25 @@ public WindowAggregateCall copy(List args, int filterArg, List args, int filterArg) {
+        return new WindowAggregateCall(aggFunction, distinct, approximate, args,
+            filterArg, type, name, constants, offset);
+    }
+
+    @Override
+    public AggregateCall copy(List args, int filterArg, boolean isDistinct, String newName) {
+        return new WindowAggregateCall(aggFunction, isDistinct, approximate, args,
+            filterArg, type, newName, constants, offset);
+    }
+
+    @Override
+    public AggregateCall withDistinct(boolean distinct) {
+        return distinct == this.distinct ? this
+            : new WindowAggregateCall(aggFunction, distinct, approximate, argList, filterArg, type, name,
+            constants, offset);
+    }
+
 
     public AggregateCall create(SqlAggFunction aggFunction,
                                 boolean distinct, boolean approximate, List argList,
diff --git a/polardbx-calcite/src/main/java/org/apache/calcite/rel/logical/LogicalTableScan.java b/polardbx-calcite/src/main/java/org/apache/calcite/rel/logical/LogicalTableScan.java
index 763733402..52eed454c 100644
--- a/polardbx-calcite/src/main/java/org/apache/calcite/rel/logical/LogicalTableScan.java
+++ b/polardbx-calcite/src/main/java/org/apache/calcite/rel/logical/LogicalTableScan.java
@@ -31,6 +31,7 @@
 import org.apache.calcite.schema.Table;
 import org.apache.calcite.sql.SqlNode;
 import org.apache.calcite.sql.SqlNodeList;
+import org.apache.calcite.sql.SqlOperator;
 import org.apache.calcite.sql.parser.SqlParserPos;
 
 import java.util.List;
@@ -81,8 +82,9 @@ public LogicalTableScan(RelOptCluster cluster, RelTraitSet traitSet,
 
   public LogicalTableScan(RelOptCluster cluster, RelTraitSet traitSet,
                           RelOptTable table, SqlNodeList hints, SqlNode indexNode, RexNode flashback,
+                          SqlOperator flashbackOperator,
                           SqlNode partitions) {
-    super(cluster, traitSet, table, hints, indexNode, flashback, partitions);
+    super(cluster, traitSet, table, hints, indexNode, flashback, flashbackOperator, partitions);
   }
 
   @Deprecated // to be removed before 2.0
@@ -110,12 +112,12 @@ public LogicalTableScan(RelInput input) {
    */
   public static LogicalTableScan create(RelOptCluster cluster,
                                         final RelOptTable relOptTable) {
-      return create(cluster, relOptTable, new SqlNodeList(SqlParserPos.ZERO), null, null, null);
+    return create(cluster, relOptTable, new SqlNodeList(SqlParserPos.ZERO), null, null, null, null);
   }
 
   public static LogicalTableScan create(RelOptCluster cluster,
                                         final RelOptTable relOptTable, SqlNodeList hints, SqlNode indexNode,
-                                        RexNode flashback, SqlNode partitions) {
+                                        RexNode flashback, SqlOperator flashbackOperator, SqlNode partitions) {
 
     final Table table = relOptTable.unwrap(Table.class);
     final RelTraitSet traitSet =
@@ -127,7 +129,8 @@ public static LogicalTableScan create(RelOptCluster cluster,
                   }
                   return ImmutableList.of();
                 }).simplify();
-    return new LogicalTableScan(cluster, traitSet, relOptTable, hints, indexNode, flashback, partitions);
+    return new LogicalTableScan(cluster, traitSet, relOptTable, hints, indexNode, flashback, flashbackOperator,
+        partitions);
   }
 
 
diff --git a/polardbx-calcite/src/main/java/org/apache/calcite/rel/rel2sql/SqlImplementor.java b/polardbx-calcite/src/main/java/org/apache/calcite/rel/rel2sql/SqlImplementor.java
index 076e55f15..b46e8b9f9 100644
--- a/polardbx-calcite/src/main/java/org/apache/calcite/rel/rel2sql/SqlImplementor.java
+++ b/polardbx-calcite/src/main/java/org/apache/calcite/rel/rel2sql/SqlImplementor.java
@@ -1441,7 +1441,8 @@ public SqlNode asFrom() {
           final SqlIdentifier identifier = (SqlIdentifier) node;
           final SqlIdentifier newIdentifier =
               new SqlIdentifier(((SqlIdentifier) node).names, ((SqlIdentifier) node).getCollation(),
-                  node.getParserPosition(), null, null, identifier.partitions, identifier.flashback);
+                  node.getParserPosition(), null, null, identifier.partitions, identifier.flashback,
+                  identifier.flashbackOperator);
           final SqlIdentifier alias =
               new SqlIdentifier(ImmutableList.of(neededAlias), null, POS, null, identifier.indexNode);
 
diff --git a/polardbx-calcite/src/main/java/org/apache/calcite/sql/SqlAggFunction.java b/polardbx-calcite/src/main/java/org/apache/calcite/sql/SqlAggFunction.java
index 6c1f6481a..c78b4372c 100644
--- a/polardbx-calcite/src/main/java/org/apache/calcite/sql/SqlAggFunction.java
+++ b/polardbx-calcite/src/main/java/org/apache/calcite/sql/SqlAggFunction.java
@@ -24,7 +24,9 @@
 import org.apache.calcite.sql.type.SqlReturnTypeInference;
 import org.apache.calcite.sql.validate.SqlValidator;
 import org.apache.calcite.sql.validate.SqlValidatorScope;
+import org.apache.calcite.util.Optionality;
 
+import javax.annotation.Nonnull;
 import java.util.List;
 
 /**
@@ -131,6 +133,23 @@ public RelDataType getReturnType(RelDataTypeFactory typeFactory) {
   public boolean allowsFilter() {
     return true;
   }
+
+  /** Returns whether this aggregate function allows the {@code DISTINCT}
+   * keyword.
+   *
+   * 

The default implementation returns {@link Optionality#OPTIONAL}, + * which is appropriate for most aggregate functions, including {@code SUM} + * and {@code COUNT}. + * + *

Some aggregate functions, for example {@code MIN}, produce the same + * result with or without {@code DISTINCT}, and therefore return + * {@link Optionality#IGNORED} to indicate this. For such functions, + * Calcite will probably remove {@code DISTINCT} while optimizing the query. + */ + public @Nonnull + Optionality getDistinctOptionality() { + return Optionality.OPTIONAL; + } } // End SqlAggFunction.java diff --git a/polardbx-calcite/src/main/java/org/apache/calcite/sql/SqlAsOf57Operator.java b/polardbx-calcite/src/main/java/org/apache/calcite/sql/SqlAsOf57Operator.java new file mode 100644 index 000000000..0f2737765 --- /dev/null +++ b/polardbx-calcite/src/main/java/org/apache/calcite/sql/SqlAsOf57Operator.java @@ -0,0 +1,65 @@ +/* + * Copyright [2013-2021], Alibaba Group Holding Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.calcite.sql; + +import org.apache.calcite.sql.type.InferTypes; +import org.apache.calcite.sql.type.OperandTypes; +import org.apache.calcite.sql.type.ReturnTypes; +import org.apache.calcite.sql.type.SqlOperandTypeChecker; +import org.apache.calcite.sql.type.SqlOperandTypeInference; +import org.apache.calcite.sql.type.SqlReturnTypeInference; + +public class SqlAsOf57Operator extends SqlSpecialOperator { + public SqlAsOf57Operator() { + this( + "AS OF TSO", + SqlKind.AS_OF, + 20, + true, + ReturnTypes.ARG0, + InferTypes.RETURN_TYPE, + OperandTypes.ANY_ANY); + } + + protected SqlAsOf57Operator(String name, SqlKind kind, int prec, + boolean leftAssoc, SqlReturnTypeInference returnTypeInference, + SqlOperandTypeInference operandTypeInference, + SqlOperandTypeChecker operandTypeChecker) { + super(name, kind, prec, leftAssoc, returnTypeInference, + operandTypeInference, operandTypeChecker); + } + + public void unparse( + SqlWriter writer, + SqlCall call, + int leftPrec, + int rightPrec) { + assert call.operandCount() >= 2; + final SqlWriter.Frame frame = + writer.startList( + SqlWriter.FrameTypeEnum.SIMPLE); + call.operand(0).unparse(writer, leftPrec, getLeftPrec()); + final boolean needsSpace = true; + writer.setNeedWhitespace(needsSpace); + if (writer.getDialect().allowsAsOf()) { + writer.sep("AS OF TSO"); + writer.setNeedWhitespace(needsSpace); + } + call.operand(1).unparse(writer, getRightPrec(), rightPrec); + writer.endList(frame); + } +} \ No newline at end of file diff --git a/polardbx-calcite/src/main/java/org/apache/calcite/sql/SqlCreateTable.java b/polardbx-calcite/src/main/java/org/apache/calcite/sql/SqlCreateTable.java index 03efd077c..ca20cf251 100644 --- a/polardbx-calcite/src/main/java/org/apache/calcite/sql/SqlCreateTable.java +++ b/polardbx-calcite/src/main/java/org/apache/calcite/sql/SqlCreateTable.java @@ -521,6 +521,8 @@ public boolean shouldLoad() { || trimmedComment.equalsIgnoreCase("load_s3") || trimmedComment.equalsIgnoreCase("load_local_disk") || trimmedComment.equalsIgnoreCase("load_nfs") + || trimmedComment.equalsIgnoreCase("load_s3") + || trimmedComment.equalsIgnoreCase("load_abs") || trimmedComment.equalsIgnoreCase("load_external_disk"); } @@ -2738,8 +2740,7 @@ public static void addCompositeIndex(Map indexColumn Set orderedIndexColumnNames = new LinkedHashSet<>(shardingKey); final String suffix = buildUnifyIndexName(orderedIndexColumnNames, 45); - final String indexName = addFkIndex ? (foreignKeyIndexName == null ? - buildForeignKeyIndexName(existingIndexNames, suffix) : foreignKeyIndexName) : + final String indexName = addFkIndex ? buildForeignKeyName(foreignKeyIndexName, existingIndexNames, suffix) : buildIndexName(existingIndexNames, suffix); final MySqlTableIndex mySqlTableIndex = new MySqlTableIndex(); @@ -2765,6 +2766,13 @@ public static void addCompositeIndex(Map indexColumn } } + public static String buildForeignKeyName(String foreignKeyIndexName, Set existingIndexNames, + String suffix) { + return foreignKeyIndexName == null ? + buildForeignKeyIndexName(existingIndexNames, suffix) : + SqlIdentifier.surroundWithBacktick(foreignKeyIndexName); + } + private static List preparAutoCompositeIndexs(List shardKeys, Map columnDefMap, int maxLen) { diff --git a/polardbx-calcite/src/main/java/org/apache/calcite/sql/SqlIdentifier.java b/polardbx-calcite/src/main/java/org/apache/calcite/sql/SqlIdentifier.java index 0d3773357..79666c431 100644 --- a/polardbx-calcite/src/main/java/org/apache/calcite/sql/SqlIdentifier.java +++ b/polardbx-calcite/src/main/java/org/apache/calcite/sql/SqlIdentifier.java @@ -100,6 +100,11 @@ public String apply(String s) { */ public SqlNode flashback; + /** + * 记录AS OF 种类:AS_OF/AS_OF_80/AS_OF_57 + */ + public SqlOperator flashbackOperator; + /** * This identifier's collation (if any). */ @@ -153,7 +158,7 @@ public SqlIdentifier( // for (String name : names) { // assert name != null; // } - this(names, collation, pos, componentPositions, null, null, null); + this(names, collation, pos, componentPositions, null, null, null, null); } public SqlIdentifier( @@ -161,14 +166,14 @@ public SqlIdentifier( SqlCollation collation, SqlParserPos pos, List componentPositions, SqlNode indexNode) { - this(names, collation, pos, componentPositions, indexNode, null, null); + this(names, collation, pos, componentPositions, indexNode, null, null, null); } public SqlIdentifier( String name, SqlParserPos pos, SqlNode indexNode) { - this(ImmutableList.of(name), null, pos, null, indexNode, null, null); + this(ImmutableList.of(name), null, pos, null, indexNode, null, null, null); } /** @@ -181,6 +186,15 @@ public SqlIdentifier( SqlCollation collation, SqlParserPos pos, List componentPositions, SqlNode indexNode, SqlNode partitions, SqlNode flashback) { + this(ImmutableList.copyOf(names), collation, pos, componentPositions, indexNode, partitions, flashback, null); + } + + public SqlIdentifier( + List names, + SqlCollation collation, + SqlParserPos pos, + List componentPositions, SqlNode indexNode, SqlNode partitions, SqlNode flashback, + SqlOperator flashbackOperator) { super(pos); this.names = ImmutableList.copyOf(names); this.collation = collation; @@ -192,16 +206,21 @@ public SqlIdentifier( this.indexNode = indexNode; this.partitions = partitions; this.flashback = flashback; + this.flashbackOperator = flashbackOperator; } - /** Creates an identifier that is a singleton wildcard star. */ + /** + * Creates an identifier that is a singleton wildcard star. + */ public static SqlIdentifier star(SqlParserPos pos) { return star(ImmutableList.of(""), pos, ImmutableList.of(pos)); } - /** Creates an identifier that ends in a wildcard star. */ + /** + * Creates an identifier that ends in a wildcard star. + */ public static SqlIdentifier star(List names, SqlParserPos pos, - List componentPositions) { + List componentPositions) { return new SqlIdentifier(Lists.transform(names, STAR_TO_EMPTY), null, pos, componentPositions); } @@ -213,7 +232,7 @@ public SqlKind getKind() { } @Override public SqlNode clone(SqlParserPos pos) { - return new SqlIdentifier(names, collation, pos, componentPositions, indexNode, partitions, flashback); + return new SqlIdentifier(names, collation, pos, componentPositions, indexNode, partitions, flashback, flashbackOperator); } public String toStringWithBacktick() { @@ -498,6 +517,10 @@ public SqlMonotonicity getMonotonicity(SqlValidatorScope scope) { final SqlIdentifier fqId = qualified.identifier; return qualified.namespace.resolve().getMonotonicity(Util.last(fqId.names)); } + + public SqlOperator getFlashbackOperator() { + return flashbackOperator; + } } // End SqlIdentifier.java diff --git a/polardbx-calcite/src/main/java/org/apache/calcite/sql/SqlMoveDatabase.java b/polardbx-calcite/src/main/java/org/apache/calcite/sql/SqlMoveDatabase.java index 2309d33f7..03a8844fa 100644 --- a/polardbx-calcite/src/main/java/org/apache/calcite/sql/SqlMoveDatabase.java +++ b/polardbx-calcite/src/main/java/org/apache/calcite/sql/SqlMoveDatabase.java @@ -57,7 +57,7 @@ public SqlMoveDatabase(SqlParserPos pos, Map> storageGroups this.isCleanUpCommand = isCleanUpCommand; if (!isCleanUpCommand) { this.currentSourceGroupKey = firstGroup; - this.currentTargetGroupKey = GroupInfoUtil.buildScaloutGroupName(firstGroup); + this.currentTargetGroupKey = GroupInfoUtil.buildScaleOutGroupName(firstGroup); } } @@ -75,7 +75,7 @@ public void setCurrentStorageInstId(String currentStorageInstId) { public void setCleanUpGroups(String groupName) { Map> toBeCleanGroups = new HashMap<>(); - toBeCleanGroups.put(VIRTUAL_STORAGE_ID, ImmutableList.of(GroupInfoUtil.buildScaloutGroupName(groupName))); + toBeCleanGroups.put(VIRTUAL_STORAGE_ID, ImmutableList.of(GroupInfoUtil.buildScaleOutGroupName(groupName))); this.storageGroups = toBeCleanGroups; } diff --git a/polardbx-calcite/src/main/java/org/apache/calcite/sql/SqlPartition.java b/polardbx-calcite/src/main/java/org/apache/calcite/sql/SqlPartition.java index aecea5263..78e2d5604 100644 --- a/polardbx-calcite/src/main/java/org/apache/calcite/sql/SqlPartition.java +++ b/polardbx-calcite/src/main/java/org/apache/calcite/sql/SqlPartition.java @@ -16,16 +16,9 @@ package org.apache.calcite.sql; -import com.alibaba.polardbx.common.exception.TddlRuntimeException; -import com.alibaba.polardbx.common.exception.code.ErrorCode; -import com.alibaba.polardbx.common.utils.GeneralUtil; import com.alibaba.polardbx.common.utils.TStringUtil; import com.alibaba.polardbx.druid.util.StringUtils; -import com.google.common.base.Preconditions; -import org.apache.calcite.rel.type.RelDataType; -import org.apache.calcite.rel.type.RelDataTypeField; import org.apache.calcite.sql.parser.SqlParserPos; -import org.apache.calcite.sql.type.SqlTypeName; import org.apache.calcite.sql.util.SqlVisitor; import org.apache.calcite.sql.validate.SqlValidator; import org.apache.calcite.sql.validate.SqlValidatorScope; @@ -76,18 +69,37 @@ public String toString() { StringBuilder sb = new StringBuilder(""); sb.append("PARTITION "); sb.append(name); - sb.append(" "); - sb.append(values.toString()); + if (values != null) { + sb.append(" "); + sb.append(values.toString()); + } if (TStringUtil.isNotEmpty(locality)) { sb.append(" LOCALITY="); sb.append(TStringUtil.quoteString(locality)); } + + if (subPartitionCount != null) { + sb.append(" "); + sb.append("SUBPARTITIONS "); + sb.append(subPartitionCount.toString()); + } + if (subPartitions != null && !subPartitions.isEmpty()) { + sb.append(" "); + sb.append("("); + for (int i = 0; i < subPartitions.size(); i++) { + if (i > 0) { + sb.append(","); + } + SqlNode subPart = subPartitions.get(i); + sb.append(subPart.toString()); + } + sb.append(")"); + } return sb.toString(); } @Override public void unparse(SqlWriter writer, int leftPrec, int rightPrec) { - } @Override diff --git a/polardbx-calcite/src/main/java/org/apache/calcite/sql/SqlSubPartition.java b/polardbx-calcite/src/main/java/org/apache/calcite/sql/SqlSubPartition.java index 1adebaab7..9953a844d 100644 --- a/polardbx-calcite/src/main/java/org/apache/calcite/sql/SqlSubPartition.java +++ b/polardbx-calcite/src/main/java/org/apache/calcite/sql/SqlSubPartition.java @@ -70,8 +70,10 @@ public String toString() { StringBuilder sb = new StringBuilder(""); sb.append("SUBPARTITION "); sb.append(name); - sb.append(" "); - sb.append(values.toString()); + if (values != null) { + sb.append(" "); + sb.append(values.toString()); + } if (TStringUtil.isNotEmpty(locality)) { sb.append(" LOCALITY="); sb.append(TStringUtil.quoteString(locality)); diff --git a/polardbx-calcite/src/main/java/org/apache/calcite/sql/SqlTableOptions.java b/polardbx-calcite/src/main/java/org/apache/calcite/sql/SqlTableOptions.java index cf07383d3..c25005ba2 100644 --- a/polardbx-calcite/src/main/java/org/apache/calcite/sql/SqlTableOptions.java +++ b/polardbx-calcite/src/main/java/org/apache/calcite/sql/SqlTableOptions.java @@ -50,7 +50,7 @@ public class SqlTableOptions extends SqlCall { private SqlCharStringLiteral indexDir; private SqlLiteral delayKeyWrite; private InsertMethod insertMethod; - private SqlCall keyBlockSize; + private SqlNumericLiteral keyBlockSize; private SqlNumericLiteral maxRows; private SqlNumericLiteral minRows; private PackKeys packKeys; @@ -304,11 +304,11 @@ public void setInsertMethod(InsertMethod insertMethod) { this.insertMethod = insertMethod; } - public SqlCall getKeyBlockSize() { + public SqlNumericLiteral getKeyBlockSize() { return keyBlockSize; } - public void setKeyBlockSize(SqlCall keyBlockSize) { + public void setKeyBlockSize(SqlNumericLiteral keyBlockSize) { this.keyBlockSize = keyBlockSize; } diff --git a/polardbx-calcite/src/main/java/org/apache/calcite/sql/fun/SqlMinMaxAggFunction.java b/polardbx-calcite/src/main/java/org/apache/calcite/sql/fun/SqlMinMaxAggFunction.java index 94f855bec..78010e75d 100644 --- a/polardbx-calcite/src/main/java/org/apache/calcite/sql/fun/SqlMinMaxAggFunction.java +++ b/polardbx-calcite/src/main/java/org/apache/calcite/sql/fun/SqlMinMaxAggFunction.java @@ -16,6 +16,8 @@ */ package org.apache.calcite.sql.fun; +import com.google.common.base.Preconditions; +import com.google.common.collect.ImmutableList; import org.apache.calcite.rel.type.RelDataType; import org.apache.calcite.rel.type.RelDataTypeFactory; import org.apache.calcite.sql.SqlAggFunction; @@ -24,10 +26,8 @@ import org.apache.calcite.sql.SqlSplittableAggFunction; import org.apache.calcite.sql.type.OperandTypes; import org.apache.calcite.sql.type.ReturnTypes; - -import com.google.common.base.Preconditions; -import com.google.common.collect.ImmutableList; import org.apache.calcite.sql.type.SqlReturnTypeInference; +import org.apache.calcite.util.Optionality; import java.util.List; @@ -142,6 +142,10 @@ public RelDataType getReturnType(RelDataTypeFactory typeFactory) { } return super.unwrap(clazz); } + + @Override public Optionality getDistinctOptionality() { + return Optionality.IGNORED; + } } // End SqlMinMaxAggFunction.java diff --git a/polardbx-calcite/src/main/java/org/apache/calcite/sql/fun/SqlSingleValueAggFunction.java b/polardbx-calcite/src/main/java/org/apache/calcite/sql/fun/SqlSingleValueAggFunction.java index 6e745df1a..258cd3783 100644 --- a/polardbx-calcite/src/main/java/org/apache/calcite/sql/fun/SqlSingleValueAggFunction.java +++ b/polardbx-calcite/src/main/java/org/apache/calcite/sql/fun/SqlSingleValueAggFunction.java @@ -16,6 +16,7 @@ */ package org.apache.calcite.sql.fun; +import com.google.common.collect.ImmutableList; import org.apache.calcite.rel.type.RelDataType; import org.apache.calcite.rel.type.RelDataTypeFactory; import org.apache.calcite.sql.SqlAggFunction; @@ -23,8 +24,7 @@ import org.apache.calcite.sql.SqlKind; import org.apache.calcite.sql.type.OperandTypes; import org.apache.calcite.sql.type.ReturnTypes; - -import com.google.common.collect.ImmutableList; +import org.apache.calcite.util.Optionality; import java.util.List; @@ -71,6 +71,10 @@ public RelDataType getReturnType(RelDataTypeFactory typeFactory) { public RelDataType getType() { return type; } + + @Override public Optionality getDistinctOptionality() { + return Optionality.IGNORED; + } } // End SqlSingleValueAggFunction.java diff --git a/polardbx-calcite/src/main/java/org/apache/calcite/sql/fun/SqlStdOperatorTable.java b/polardbx-calcite/src/main/java/org/apache/calcite/sql/fun/SqlStdOperatorTable.java index aab31c07a..bd9d15224 100644 --- a/polardbx-calcite/src/main/java/org/apache/calcite/sql/fun/SqlStdOperatorTable.java +++ b/polardbx-calcite/src/main/java/org/apache/calcite/sql/fun/SqlStdOperatorTable.java @@ -18,6 +18,7 @@ import com.google.common.collect.ImmutableList; import org.apache.calcite.sql.SqlAggFunction; +import org.apache.calcite.sql.SqlAsOf57Operator; import org.apache.calcite.sql.SqlAsOf80Operator; import org.apache.calcite.sql.SqlAsOfOperator; import org.apache.calcite.sql.SqlAsOperator; @@ -173,9 +174,20 @@ public class SqlStdOperatorTable extends ReflectiveSqlOperatorTable { * with an alias. */ public static final SqlAsOperator AS = new SqlAsOperator(); + /** + * as of timestamp; 5.7 物理sql使用 as of timestamp; 8.0 需转成 AS OF GCN + */ public static final SqlAsOfOperator AS_OF = new SqlAsOfOperator(); + /** + * 8.0版本: 用户sql为as of tso,物理sql使用 AS OF GCN + */ public static final SqlAsOf80Operator AS_OF_80 = new SqlAsOf80Operator(); + /** + * 5.7 版本: 用户sql为as of tso,物理sql使用 as of tso + */ + public static final SqlAsOf57Operator AS_OF_57 = new SqlAsOf57Operator(); + /** * ARGUMENT_ASSIGNMENT operator (=<) * assigns an argument to a function call to a particular named parameter. diff --git a/polardbx-calcite/src/main/java/org/apache/calcite/sql/type/SqlTypeName.java b/polardbx-calcite/src/main/java/org/apache/calcite/sql/type/SqlTypeName.java index 3d75d4e9e..8271c5fbf 100644 --- a/polardbx-calcite/src/main/java/org/apache/calcite/sql/type/SqlTypeName.java +++ b/polardbx-calcite/src/main/java/org/apache/calcite/sql/type/SqlTypeName.java @@ -73,8 +73,6 @@ public enum SqlTypeName { REAL(PrecScale.NO_NO, false, Types.REAL, SqlTypeFamily.NUMERIC), DOUBLE(PrecScale.NO_NO, false, Types.DOUBLE, SqlTypeFamily.NUMERIC), - // TODO: remove UNSIGNED/SIGNED - // add by xiaoying UNSIGNED(PrecScale.NO_NO, false, Types.BIGINT, SqlTypeFamily.NUMERIC), SIGNED(PrecScale.NO_NO, false, Types.BIGINT, SqlTypeFamily.NUMERIC), @@ -170,7 +168,16 @@ public enum SqlTypeName { public static final int MAX_TIME_FRACTIONAL_SECOND_SCALE = 6; // Cached map of enum values - private static final Map VALUES_MAP = Util.enumConstants(SqlTypeName.class); + private static final Map VALUES_MAP = ImmutableMap.builder() + .putAll(Util.enumConstants(SqlTypeName.class)) + // For Alias in MySQL https://dev.mysql.com/doc/refman/5.7/en/cast-functions.html#function_cast + // SIGNED [INTEGER] + // Produces a signed BIGINT value. + // UNSIGNED [INTEGER] + // Produces an unsigned BIGINT value. + .put("SIGNED INTEGER", SIGNED) + .put("UNSIGNED INTEGER", UNSIGNED) + .build(); // categorizations used by SqlTypeFamily definitions @@ -397,15 +404,6 @@ public static long getSize() { * @return Type name, or null if not found */ public static SqlTypeName get(String name) { - if (false) { - // The following code works OK, but the spurious exceptions are - // annoying. - try { - return SqlTypeName.valueOf(name); - } catch (IllegalArgumentException e) { - return null; - } - } return VALUES_MAP.get(name); } diff --git a/polardbx-calcite/src/main/java/org/apache/calcite/sql/validate/SqlValidatorImpl.java b/polardbx-calcite/src/main/java/org/apache/calcite/sql/validate/SqlValidatorImpl.java index 75c80c82b..bc3fcc42f 100644 --- a/polardbx-calcite/src/main/java/org/apache/calcite/sql/validate/SqlValidatorImpl.java +++ b/polardbx-calcite/src/main/java/org/apache/calcite/sql/validate/SqlValidatorImpl.java @@ -5606,7 +5606,17 @@ public void validateGsiColumn(List> glob } } - public static void validateUnsupportedColumTypeWithCci(MySqlCreateTableStatement stmt, List primaryKeys, + public static void validateUnsupportedTypeWithCciWhenModifyColumn(SqlColumnDeclaration columnDeclaration) { + final List deniedTypes = Arrays.asList( + "text", "binary", "varbinary", "blob", "timestamp", "time", "year", "json", "enum", "set", "point", "geometry"); + String columnType = columnDeclaration.getDataType().getTypeName().getLastName().toLowerCase(); + if (deniedTypes.contains(columnType)) { + throw new TddlRuntimeException(ErrorCode.ERR_UNSUPPORTED_COLUMN_TYPE_WITH_CCI, + "MODIFY/CHANGE COLUMN", columnType); + } + } + + public static void validateUnsupportedColumnTypeWithCci(MySqlCreateTableStatement stmt, List primaryKeys, List sortKeys, List shardingKeys) { final String[] deniedTypes = { "float", "double", "decimal", "numeric", "json", "enum", "set", "point", "geometry"}; @@ -6900,6 +6910,10 @@ public void validateInsert(SqlInsert insert) { insert.getTargetColumnList(), false, null); + // for INSERT t() values(), in which no source or target column list is specified, + // rewrite SqlNode with INSERT t() values(DEFAULT, DEFAULT, ...) + checkAndRewriteEmptySource(insert, targetRowType); + final SqlNode source = insert.getSource(); if (source instanceof SqlSelect) { final SqlSelect sqlSelect = (SqlSelect) source; @@ -6948,6 +6962,29 @@ public void validateInsert(SqlInsert insert) { } } + public void checkAndRewriteEmptySource(SqlInsert insert, RelDataType targetRowType) { + if (insert.getTargetColumnList() == null) { + final SqlNode originSource = insert.getSource(); + if (originSource instanceof SqlBasicCall && originSource.getKind() == SqlKind.VALUES) { + final SqlBasicCall values = (SqlBasicCall) originSource; + final SqlBasicCall row = (SqlBasicCall) values.getOperands()[0]; + // If target column list and source value list is all empty, + // rewrite source to VALUES(DEFAULT, DEFAULT, ...) + if (row.getOperands() == null || row.getOperands().length == 0) { + final List fieldNames = targetRowType.getFieldNames(); + final long fieldCount = fieldNames.stream().filter(f -> !isImplicitKey(f)).count(); + final SqlNode[] defaults = new SqlNode[(int) fieldCount]; + for (int i = 0; i < defaults.length; i++) { + // Add DEFAULT to VALUES for each target column + defaults[i] = + new SqlBasicCall(SqlStdOperatorTable.DEFAULT, SqlNode.EMPTY_ARRAY, SqlParserPos.ZERO); + } + values.setOperand(0, new SqlBasicCall(row.getOperator(), defaults, row.getParserPosition())); + } + } + } + } + /** * Validates insert values against the constraint of a modifiable view. * diff --git a/polardbx-calcite/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java b/polardbx-calcite/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java index cbca1b158..a4f7a5e07 100644 --- a/polardbx-calcite/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java +++ b/polardbx-calcite/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java @@ -108,8 +108,8 @@ import org.apache.calcite.rel.ddl.AlterTableSetTableGroup; import org.apache.calcite.rel.ddl.AnalyzeTable; import org.apache.calcite.rel.ddl.ChangeConsensusRole; -import org.apache.calcite.rel.ddl.ConvertAllSequences; import org.apache.calcite.rel.ddl.ClearFileStorage; +import org.apache.calcite.rel.ddl.ConvertAllSequences; import org.apache.calcite.rel.ddl.CreateDatabase; import org.apache.calcite.rel.ddl.CreateFileStorage; import org.apache.calcite.rel.ddl.CreateFunction; @@ -178,6 +178,7 @@ import org.apache.calcite.rel.logical.LogicalUnion; import org.apache.calcite.rel.logical.LogicalValues; import org.apache.calcite.rel.metadata.RelColumnMapping; +import org.apache.calcite.rel.metadata.RelMetadataQuery; import org.apache.calcite.rel.stream.Delta; import org.apache.calcite.rel.stream.LogicalDelta; import org.apache.calcite.rel.type.RelDataType; @@ -260,8 +261,8 @@ import org.apache.calcite.sql.SqlChangeConsensusRole; import org.apache.calcite.sql.SqlCharStringLiteral; import org.apache.calcite.sql.SqlCheckColumnarIndex; -import org.apache.calcite.sql.SqlConvertAllSequences; import org.apache.calcite.sql.SqlClearFileStorage; +import org.apache.calcite.sql.SqlConvertAllSequences; import org.apache.calcite.sql.SqlCreate; import org.apache.calcite.sql.SqlCreateDatabase; import org.apache.calcite.sql.SqlCreateFileStorage; @@ -347,8 +348,8 @@ import org.apache.calcite.sql.SqlUpdate; import org.apache.calcite.sql.SqlUtil; import org.apache.calcite.sql.SqlUtil.SpecialIdentiFiers; -import org.apache.calcite.sql.SqlValuesTableSource; import org.apache.calcite.sql.SqlValuesOperator; +import org.apache.calcite.sql.SqlValuesTableSource; import org.apache.calcite.sql.SqlWindow; import org.apache.calcite.sql.SqlWith; import org.apache.calcite.sql.SqlWithItem; @@ -513,7 +514,7 @@ public SqlToRelConverter(RelOptTable.ViewExpander viewExpander, SqlValidator val Prepare.CatalogReader catalogReader, RelOptPlanner planner, RexBuilder rexBuilder, SqlRexConvertletTable convertletTable) { this(viewExpander, validator, catalogReader, RelOptCluster.create(planner, rexBuilder), convertletTable, - Config.DEFAULT, Integer.MAX_VALUE); + Config.DEFAULT, Integer.MAX_VALUE, false); } @Deprecated // to be removed before 2.0 @@ -526,13 +527,15 @@ public SqlToRelConverter(RelOptTable.ViewExpander viewExpander, SqlValidator val public SqlToRelConverter(RelOptTable.ViewExpander viewExpander, SqlValidator validator, Prepare.CatalogReader catalogReader, RelOptCluster cluster, SqlRexConvertletTable convertletTable, Config config) { - this(viewExpander, validator, catalogReader, cluster, convertletTable, config, config.getInSubQueryThreshold()); + this(viewExpander, validator, catalogReader, cluster, convertletTable, config, config.getInSubQueryThreshold(), + config.isRemoveDistinct()); } /* Creates a converter. */ public SqlToRelConverter(RelOptTable.ViewExpander viewExpander, SqlValidator validator, Prepare.CatalogReader catalogReader, RelOptCluster cluster, - SqlRexConvertletTable convertletTable, Config config, int inSubQueryThreshold) { + SqlRexConvertletTable convertletTable, Config config, int inSubQueryThreshold, + boolean isRemoveDistinct) { this.viewExpander = viewExpander; this.opTab = (validator == null) ? SqlStdOperatorTable.instance() : validator.getOperatorTable(); this.validator = validator; @@ -543,7 +546,9 @@ public SqlToRelConverter(RelOptTable.ViewExpander viewExpander, SqlValidator val this.cluster = Preconditions.checkNotNull(cluster); this.exprConverter = new SqlNodeToRexConverterImpl(convertletTable); this.explainParamCount = 0; - this.config = new ConfigBuilder().withConfig(config).withInSubQueryThreshold(inSubQueryThreshold).build(); + this.config = new ConfigBuilder().withConfig(config) + .withInSubQueryThreshold(inSubQueryThreshold) + .withRemoveDistinct(isRemoveDistinct).build(); this.relBuilder = RelFactories.LOGICAL_BUILDER.create(cluster, null); } @@ -2170,7 +2175,7 @@ protected void convertFrom(Blackboard bb, SqlNode from) { SqlNode tableName = call.operand(0); SqlNode timeStamp = call.operand(1); final RexNode timestampExpr = bb.convertExpression(timeStamp); - this.hintBlackboard.beginAsOf(timestampExpr); + this.hintBlackboard.beginAsOf(Pair.of(timestampExpr, call.getOperator())); SqlIdentifier identifier = (SqlIdentifier) tableName; convertIdentifier(bb, identifier, null, identifier.indexNode, identifier.partitions); this.hintBlackboard.endAsOf(); @@ -2606,10 +2611,11 @@ private void convertIdentifier(Blackboard bb, SqlIdentifier id, SqlNodeList exte } else { SqlNodeList hint = this.hintBlackboard.currentHints(Util.last(table.getQualifiedName())); if (this.hintBlackboard.hasAsOf()) { - tableRel = LogicalTableScan.create(cluster, table, hint, indexNode, this.hintBlackboard.peekAsOf(), + Pair asOf = this.hintBlackboard.peekAsOf(); + tableRel = LogicalTableScan.create(cluster, table, hint, indexNode, asOf.getKey(), asOf.getValue(), partitions); } else { - tableRel = LogicalTableScan.create(cluster, table, hint, indexNode, null, partitions); + tableRel = LogicalTableScan.create(cluster, table, hint, indexNode, null, null, partitions); } } @@ -3305,7 +3311,61 @@ protected final void createAggImpl(Blackboard bb, final AggConverter aggConverte */ protected RelNode createAggregate(Blackboard bb, ImmutableBitSet groupSet, ImmutableList groupSets, List aggCalls) { - return LogicalAggregate.create(bb.root, groupSet, groupSets, aggCalls); + + final List aggregateCalls = new ArrayList<>(); + Set nullRefs = new HashSet<>(); + for (AggregateCall aggregateCall : aggCalls) { + if (groupSets.size() <= 1 && config.isRemoveDistinct()) { + aggregateCall = removeRedundantAggregateDistinct( + aggregateCall, groupSet, bb.root, nullRefs); + } + aggregateCalls.add(aggregateCall); + } + + RelNode relNode = bb.root; + if (nullRefs.size() > 0) { + final List fields = relNode.getRowType().getFieldList(); + final List isNotNullOperands = new ArrayList<>(); + for (Integer nullRef : nullRefs) { + RelDataType dataType = fields.get(nullRef).getType(); + if (dataType.isNullable()) { + isNotNullOperands.add(relBuilder.isNotNull(rexBuilder.makeInputRef(relNode, nullRef))); + } + } + if (isNotNullOperands.size() > 0) { + relNode = LogicalFilter.create( + relNode, RexUtil.composeConjunction(rexBuilder, isNotNullOperands, true)); + } + } + return LogicalAggregate.create(relNode, groupSet, groupSets, aggregateCalls); + } + + private AggregateCall removeRedundantAggregateDistinct( + AggregateCall aggregateCall, + ImmutableBitSet groupSet, + RelNode relNode, + Set nullRefs) { + final List argList = aggregateCall.getArgList(); + if (aggregateCall.isDistinct()) { + final RelMetadataQuery mq = relNode.getCluster().getMetadataQuery(); + final ImmutableBitSet distinctArg = ImmutableBitSet.builder() + .addAll(argList) + .build(); + final ImmutableBitSet columns = groupSet.union(distinctArg); + final Boolean alreadyUnique = + mq.areColumnsUnique(relNode, columns); + if (alreadyUnique != null && alreadyUnique) { + // columns have been distinct or columns are primary keys + if (aggregateCall.getAggregation().getKind() == SqlKind.COUNT) { + //in order to avoid generate the physical sql "count(a, b, c)" for the singleTable, + //and mysql don't support count multi-column. + return aggregateCall; + } else { + return aggregateCall.withDistinct(false); + } + } + } + return aggregateCall; } public RexDynamicParam convertDynamicParam(final SqlDynamicParam dynamicParam) { @@ -5063,7 +5123,7 @@ protected List getUpdateSrcTables(SqlUpdate sqlUpdate) { if (srcNode instanceof SqlIdentifier) { // Table name result.add(new TableInfoNode(srcNode, srcWithAlias, ImmutableList.of(getTargetTable(srcNode)))); - } else if (srcNode instanceof SqlSelect) { + } else if (srcNode instanceof SqlSelect || RelOptUtil.isUnion(srcNode)) { // SubQuery final List tableNames = sqlUpdate.subQueryTables(srcNode); result.add(new TableInfoNode(srcNode, srcWithAlias, @@ -5110,7 +5170,7 @@ protected TableInfo getDeleteTargetTables(SqlDelete sqlDelete, Blackboard bb, Re // Table name srcTableInfos.add( new TableModify.TableInfoNode(srcNode, srcWithAlias, ImmutableList.of(getTargetTable(srcNode)))); - } else if (srcNode instanceof SqlSelect) { + } else if (srcNode instanceof SqlSelect || RelOptUtil.isUnion(srcNode)) { // SubQuery final List tableNames = sqlDelete.subQueryTables(srcNode); srcTableInfos.add(new TableModify.TableInfoNode(srcNode, srcWithAlias, @@ -5441,7 +5501,7 @@ private List buildUpdateSourceInfo(SqlUpdate call, Map t instanceof SqlDynamicParam); RelNode valuesRel; - if (values instanceof SqlValuesTableSource){ + if (values instanceof SqlValuesTableSource) { valuesRel = convertValues(bb, (SqlValuesTableSource) values, targetRowType); - }else if (allIsDynamic) { + } else if (allIsDynamic) { valuesRel = convertDynamicRowValues(bb, values, values.getOperandList(), true, targetRowType); - }else { + } else { valuesRel = convertRowValues(bb, values, values.getOperandList(), true, targetRowType); } @@ -6011,7 +6071,7 @@ private void convertValuesImpl(Blackboard bb, SqlCall values, RelDataType target // ? } - private DynamicValues convertValues(Blackboard bb, SqlValuesTableSource values, RelDataType targetRowType){ + private DynamicValues convertValues(Blackboard bb, SqlValuesTableSource values, RelDataType targetRowType) { if (targetRowType == null) { targetRowType = SqlTypeUtil.promoteToRowType(typeFactory, validator.getValidatedNodeType(values), null); } @@ -6024,14 +6084,13 @@ private DynamicValues convertValues(Blackboard bb, SqlValuesTableSource values, } tupleList.add(tuple.build()); } - DynamicValues dynamicValues = DynamicValues.create( + DynamicValues dynamicValues = DynamicValues.create( cluster, cluster.traitSet().replace(RelDistributions.SINGLETON), //for mpp targetRowType, tupleList.build()); return dynamicValues; } - // ~ Inner Classes // ---------------------------------------------------------- @@ -7739,6 +7798,8 @@ public interface Config { * usage of OR in all cases. */ int getInSubQueryThreshold(); + + boolean isRemoveDistinct(); } /** @@ -7753,6 +7814,7 @@ public static class ConfigBuilder { private boolean explain; private boolean expand = true; private int inSubQueryThreshold = DEFAULT_IN_SUB_QUERY_THRESHOLD; + private boolean removeDistinct = true; private ConfigBuilder() { } @@ -7768,6 +7830,7 @@ public ConfigBuilder withConfig(Config config) { this.explain = config.isExplain(); this.expand = config.isExpand(); this.inSubQueryThreshold = config.getInSubQueryThreshold(); + this.removeDistinct = config.isRemoveDistinct(); return this; } @@ -7811,12 +7874,17 @@ public ConfigBuilder withInSubQueryThreshold(int inSubQueryThreshold) { return this; } + public ConfigBuilder withRemoveDistinct(boolean removeDistinct) { + this.removeDistinct = removeDistinct; + return this; + } + /** * Builds a {@link Config}. */ public Config build() { return new ConfigImpl(convertTableAccess, decorrelationEnabled, trimUnusedFields, createValuesRel, explain, - expand, inSubQueryThreshold); + expand, inSubQueryThreshold, removeDistinct); } } @@ -7833,9 +7901,11 @@ private static class ConfigImpl implements Config { private final boolean explain; private final int inSubQueryThreshold; private final boolean expand; + private final boolean removeDistinct; private ConfigImpl(boolean convertTableAccess, boolean decorrelationEnabled, boolean trimUnusedFields, - boolean createValuesRel, boolean explain, boolean expand, int inSubQueryThreshold) { + boolean createValuesRel, boolean explain, boolean expand, int inSubQueryThreshold, + boolean removeDistinct) { this.convertTableAccess = convertTableAccess; this.decorrelationEnabled = decorrelationEnabled; this.trimUnusedFields = trimUnusedFields; @@ -7843,6 +7913,7 @@ private ConfigImpl(boolean convertTableAccess, boolean decorrelationEnabled, boo this.explain = explain; this.expand = expand; this.inSubQueryThreshold = inSubQueryThreshold; + this.removeDistinct = removeDistinct; } public boolean isConvertTableAccess() { @@ -7872,6 +7943,10 @@ public boolean isExpand() { public int getInSubQueryThreshold() { return inSubQueryThreshold; } + + public boolean isRemoveDistinct() { + return removeDistinct; + } } private static class AliasContext { @@ -7903,7 +7978,7 @@ public static class HintBlackboard { private final Deque aliasStack = new ArrayDeque<>(); - private final Deque asOfStack = new ArrayDeque<>(); + private final Deque> asOfStack = new ArrayDeque<>(); public void beginSelect() { hintStack.push(new HashMap<>(2)); @@ -7925,11 +8000,11 @@ public Map currentGroups() { return hintStack.peek(); } - public void beginAsOf(RexNode flashback) { + public void beginAsOf(Pair flashback) { asOfStack.push(flashback); } - public RexNode endAsOf() { + public Pair endAsOf() { return this.asOfStack.pop(); } @@ -7937,7 +8012,7 @@ public boolean hasAsOf() { return !asOfStack.isEmpty(); } - public RexNode peekAsOf() { + public Pair peekAsOf() { return this.asOfStack.peek(); } diff --git a/polardbx-calcite/src/main/java/org/apache/calcite/tools/RelBuilder.java b/polardbx-calcite/src/main/java/org/apache/calcite/tools/RelBuilder.java index ae8f5aab1..6a8bcb165 100644 --- a/polardbx-calcite/src/main/java/org/apache/calcite/tools/RelBuilder.java +++ b/polardbx-calcite/src/main/java/org/apache/calcite/tools/RelBuilder.java @@ -16,6 +16,14 @@ */ package org.apache.calcite.tools; +import com.google.common.base.Function; +import com.google.common.base.Joiner; +import com.google.common.base.Preconditions; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.ImmutableSet; +import com.google.common.collect.Iterables; +import com.google.common.collect.Lists; import org.apache.calcite.linq4j.Ord; import org.apache.calcite.plan.Context; import org.apache.calcite.plan.Contexts; @@ -28,14 +36,33 @@ import org.apache.calcite.rel.RelCollations; import org.apache.calcite.rel.RelFieldCollation; import org.apache.calcite.rel.RelNode; -import org.apache.calcite.rel.core.*; +import org.apache.calcite.rel.core.Aggregate; +import org.apache.calcite.rel.core.AggregateCall; +import org.apache.calcite.rel.core.CorrelationId; +import org.apache.calcite.rel.core.JoinInfo; +import org.apache.calcite.rel.core.JoinRelType; +import org.apache.calcite.rel.core.Project; +import org.apache.calcite.rel.core.RelFactories; +import org.apache.calcite.rel.core.Sort; +import org.apache.calcite.rel.core.TableModify; +import org.apache.calcite.rel.core.TableScan; +import org.apache.calcite.rel.core.Values; import org.apache.calcite.rel.logical.LogicalSemiJoin; import org.apache.calcite.rel.metadata.RelMetadataQuery; import org.apache.calcite.rel.type.RelDataType; import org.apache.calcite.rel.type.RelDataTypeFactory; import org.apache.calcite.rel.type.RelDataTypeField; import org.apache.calcite.rel.type.RelDataTypeFieldImpl; -import org.apache.calcite.rex.*; +import org.apache.calcite.rex.RexBuilder; +import org.apache.calcite.rex.RexCall; +import org.apache.calcite.rex.RexCorrelVariable; +import org.apache.calcite.rex.RexExecutor; +import org.apache.calcite.rex.RexInputRef; +import org.apache.calcite.rex.RexLiteral; +import org.apache.calcite.rex.RexNode; +import org.apache.calcite.rex.RexShuttle; +import org.apache.calcite.rex.RexSimplify; +import org.apache.calcite.rex.RexUtil; import org.apache.calcite.runtime.Hook; import org.apache.calcite.schema.SchemaPlus; import org.apache.calcite.server.CalciteServerStatement; @@ -52,20 +79,12 @@ import org.apache.calcite.util.ImmutableIntList; import org.apache.calcite.util.Litmus; import org.apache.calcite.util.NlsString; +import org.apache.calcite.util.Optionality; import org.apache.calcite.util.Pair; import org.apache.calcite.util.Util; import org.apache.calcite.util.mapping.Mapping; import org.apache.calcite.util.mapping.Mappings; -import com.google.common.base.Function; -import com.google.common.base.Joiner; -import com.google.common.base.Preconditions; -import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableMap; -import com.google.common.collect.ImmutableSet; -import com.google.common.collect.Iterables; -import com.google.common.collect.Lists; - import javax.annotation.Nonnull; import java.math.BigDecimal; import java.util.AbstractList; @@ -910,13 +929,14 @@ public RelBuilder scan(Iterable tableNames) { return this; } - public RelBuilder flashback(RexNode flashback) { + public RelBuilder flashback(RexNode flashback, SqlOperator flashbackOperator) { if (stack.peek() == null) { return this; } RelNode last = stack.peek().rel; - if (last instanceof TableScan){ - ((TableScan)last).setFlashback(flashback); + if (last instanceof TableScan) { + ((TableScan) last).setFlashback(flashback); + ((TableScan) last).setFlashbackOperator(flashbackOperator); } return this; } @@ -2146,7 +2166,10 @@ private static class AggCallImpl implements AggCall { boolean approximate, RexNode filter, String alias, ImmutableList operands) { this.aggFunction = aggFunction; - this.distinct = distinct; + // If the aggregate function ignores DISTINCT, + // make the DISTINCT flag FALSE. + this.distinct = distinct + && aggFunction.getDistinctOptionality() != Optionality.IGNORED; this.approximate = approximate; this.filter = filter; this.alias = alias; diff --git a/polardbx-calcite/src/main/java/org/apache/calcite/util/Optionality.java b/polardbx-calcite/src/main/java/org/apache/calcite/util/Optionality.java new file mode 100644 index 000000000..2e34dbd2e --- /dev/null +++ b/polardbx-calcite/src/main/java/org/apache/calcite/util/Optionality.java @@ -0,0 +1,39 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to you under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.calcite.util; + +/** + * Four states that describe whether a particular behavior or + * property is allowed and/or not allowed. + */ +public enum Optionality { + /** A property is mandatory if an instance must possess it; + * it is an error if it does not. */ + MANDATORY, + + /** A property is optional if an instance may or may not possess it; + * neither state is an error. */ + OPTIONAL, + + /** A property is ignored if an instance may or may not possess it; + * if it possesses the property, the effect is as if it does not. */ + IGNORED, + + /** A property is forbidden if an instance must not possess it; + * it is an error if the instance has the property. */ + FORBIDDEN +} diff --git a/polardbx-calcite/src/test/java/org/apache/calcite/sql/test/BuildForeignKeyNameTest.java b/polardbx-calcite/src/test/java/org/apache/calcite/sql/test/BuildForeignKeyNameTest.java new file mode 100644 index 000000000..ea4dffee5 --- /dev/null +++ b/polardbx-calcite/src/test/java/org/apache/calcite/sql/test/BuildForeignKeyNameTest.java @@ -0,0 +1,39 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.calcite.sql.test; + +import org.apache.calcite.sql.SqlCreateTable; +import org.junit.Assert; +import org.junit.Test; + +import java.util.HashSet; + +public class BuildForeignKeyNameTest { + + @Test + public void testBuildForeignKeyName() { + String fkName1 = "tab_ibfk_1"; + String fkName2 = " tab_ibfk_2"; + String fkName3 = " a tab_ibfk_3"; + + Assert.assertEquals("`tab_ibfk_1`", SqlCreateTable.buildForeignKeyName(fkName1, new HashSet<>(),"")); + Assert.assertEquals("` tab_ibfk_2`", SqlCreateTable.buildForeignKeyName(fkName2, new HashSet<>(),"")); + Assert.assertEquals("` a tab_ibfk_3`", SqlCreateTable.buildForeignKeyName(fkName3, new HashSet<>(),"")); + } +} diff --git a/polardbx-calcite/src/test/java/org/apache/calcite/sql/test/SqlTypeNameTest.java b/polardbx-calcite/src/test/java/org/apache/calcite/sql/test/SqlTypeNameTest.java index b8f624390..262012405 100644 --- a/polardbx-calcite/src/test/java/org/apache/calcite/sql/test/SqlTypeNameTest.java +++ b/polardbx-calcite/src/test/java/org/apache/calcite/sql/test/SqlTypeNameTest.java @@ -364,6 +364,20 @@ public class SqlTypeNameTest { null, tn); } + + @Test public void testSigned() { + SqlTypeName tn = SqlTypeName.get("SIGNED"); + assertEquals(SqlTypeName.SIGNED, tn); + + tn = SqlTypeName.get("SIGNED INTEGER"); + assertEquals(SqlTypeName.SIGNED, tn); + + tn = SqlTypeName.get("UNSIGNED"); + assertEquals(SqlTypeName.UNSIGNED, tn); + + tn = SqlTypeName.get("UNSIGNED INTEGER"); + assertEquals(SqlTypeName.UNSIGNED, tn); + } } // End SqlTypeNameTest.java diff --git a/polardbx-calcite/src/test/java/org/apache/calcite/sql/validate/ColumnarForbidTest.java b/polardbx-calcite/src/test/java/org/apache/calcite/sql/validate/ColumnarForbidTest.java new file mode 100644 index 000000000..53a12bbc1 --- /dev/null +++ b/polardbx-calcite/src/test/java/org/apache/calcite/sql/validate/ColumnarForbidTest.java @@ -0,0 +1,57 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.calcite.sql.validate; + +import com.alibaba.polardbx.common.exception.TddlRuntimeException; +import org.apache.calcite.sql.SqlColumnDeclaration; +import org.apache.calcite.sql.SqlDataTypeSpec; +import org.apache.calcite.sql.SqlIdentifier; +import org.junit.Test; + +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +public class ColumnarForbidTest { + + @Test(expected = TddlRuntimeException.class) + public void ForbidCitableModifyUnsupportedType() { + SqlIdentifier sqlIdentifier = mock(SqlIdentifier.class); + SqlColumnDeclaration sqlColumnDeclaration = mock(SqlColumnDeclaration.class); + SqlDataTypeSpec sqlDataTypeSpec = mock(SqlDataTypeSpec.class); + + when(sqlColumnDeclaration.getDataType()).thenReturn(sqlDataTypeSpec); + when(sqlDataTypeSpec.getTypeName()).thenReturn(sqlIdentifier); + when(sqlIdentifier.getLastName()).thenReturn("binary"); + + SqlValidatorImpl.validateUnsupportedTypeWithCciWhenModifyColumn(sqlColumnDeclaration); + } + + @Test + public void ForbidCitableModifySupportedType() { + SqlIdentifier sqlIdentifier = mock(SqlIdentifier.class); + SqlColumnDeclaration sqlColumnDeclaration = mock(SqlColumnDeclaration.class); + SqlDataTypeSpec sqlDataTypeSpec = mock(SqlDataTypeSpec.class); + + when(sqlColumnDeclaration.getDataType()).thenReturn(sqlDataTypeSpec); + when(sqlDataTypeSpec.getTypeName()).thenReturn(sqlIdentifier); + when(sqlIdentifier.getLastName()).thenReturn("char"); + + SqlValidatorImpl.validateUnsupportedTypeWithCciWhenModifyColumn(sqlColumnDeclaration); + } +} diff --git a/polardbx-common/pom.xml b/polardbx-common/pom.xml index aafe2b2f4..9910129de 100644 --- a/polardbx-common/pom.xml +++ b/polardbx-common/pom.xml @@ -135,7 +135,7 @@ org.apache.hadoop hadoop-client - ${hadoop-client.version} + ${hadoop.version} commons-logging @@ -187,6 +187,11 @@ com.github.ben-manes.caffeine caffeine + + org.mockito + mockito-inline + test + diff --git a/polardbx-common/src/main/java/com/alibaba/polardbx/common/Engine.java b/polardbx-common/src/main/java/com/alibaba/polardbx/common/Engine.java index 972bf6d67..21639977a 100644 --- a/polardbx-common/src/main/java/com/alibaba/polardbx/common/Engine.java +++ b/polardbx-common/src/main/java/com/alibaba/polardbx/common/Engine.java @@ -32,6 +32,7 @@ public enum Engine { LOCAL_DISK, EXTERNAL_DISK, S3, + ABS, OSS, NFS, MEMORY; @@ -57,6 +58,8 @@ public static boolean hasCache(Engine engine) { case OSS: case EXTERNAL_DISK: case NFS: + case S3: + case ABS: return true; default: return false; @@ -73,6 +76,7 @@ public static boolean isFileStore(Engine engine) { case EXTERNAL_DISK: case S3: case NFS: + case ABS: return true; default: return false; @@ -88,6 +92,8 @@ public static boolean supportColumnar(Engine engine) { case LOCAL_DISK: case EXTERNAL_DISK: case NFS: + case S3: + case ABS: return true; default: return false; diff --git a/polardbx-common/src/main/java/com/alibaba/polardbx/common/TddlConstants.java b/polardbx-common/src/main/java/com/alibaba/polardbx/common/TddlConstants.java index 15a6d982f..99ca31c9a 100644 --- a/polardbx-common/src/main/java/com/alibaba/polardbx/common/TddlConstants.java +++ b/polardbx-common/src/main/java/com/alibaba/polardbx/common/TddlConstants.java @@ -84,4 +84,8 @@ public class TddlConstants { public static final String FOREIGN_KEY_PREFIX = ""; public static final int LONG_ENOUGH_TIMEOUT_FOR_DDL_ON_XPROTO_CONN = 7 * 24 * 60 * 60 * 1000; + + public static final String BLACK_LIST_CONF = "BLACK_LIST_CONF"; + + public static final String ENABLE_JAVA_UDF = "ENABLE_JAVA_UDF"; } diff --git a/polardbx-common/src/main/java/com/alibaba/polardbx/common/charset/CollationName.java b/polardbx-common/src/main/java/com/alibaba/polardbx/common/charset/CollationName.java index 5cafe0c41..ae9e8574d 100644 --- a/polardbx-common/src/main/java/com/alibaba/polardbx/common/charset/CollationName.java +++ b/polardbx-common/src/main/java/com/alibaba/polardbx/common/charset/CollationName.java @@ -317,7 +317,10 @@ public enum CollationName { // for utf8 UTF8_GENERAL_CI, UTF8_BIN, UTF8_UNICODE_CI, UTF8_GENERAL_MYSQL500_CI, - // for utf8mb + // for utf8mb4 in MySQL 8.0 + UTF8MB4_ZH_0900_AS_CS, + + // for utf8mb4 UTF8MB4_GENERAL_CI, UTF8MB4_BIN, UTF8MB4_UNICODE_CI, // for utf16 diff --git a/polardbx-common/src/main/java/com/alibaba/polardbx/common/charset/MySQLUnicodeUtils.java b/polardbx-common/src/main/java/com/alibaba/polardbx/common/charset/MySQLUnicodeUtils.java index 69122884e..13955b5f5 100644 --- a/polardbx-common/src/main/java/com/alibaba/polardbx/common/charset/MySQLUnicodeUtils.java +++ b/polardbx-common/src/main/java/com/alibaba/polardbx/common/charset/MySQLUnicodeUtils.java @@ -16,14 +16,10 @@ package com.alibaba.polardbx.common.charset; -import com.alibaba.polardbx.common.utils.GeneralUtil; import io.airlift.slice.DynamicSliceOutput; import io.airlift.slice.Slice; import io.airlift.slice.SliceOutput; -import java.nio.charset.Charset; -import java.util.Optional; - public class MySQLUnicodeUtils { public static byte[][] LATIN1_TO_UTF8_BYTES = { {(byte) 0x00}, {(byte) 0x01}, {(byte) 0x02}, {(byte) 0x03}, {(byte) 0x04}, {(byte) 0x05}, {(byte) 0x06}, @@ -114,4 +110,25 @@ public static boolean utf8ToLatin1(byte[] buff, int begin, int end, byte[] res) } return isUtf8FromLatin1; } + + public static boolean utf8ToLatin1(Slice slice, byte[] res, int len) { + int pos = 0, begin = 0, end = slice.length(); + boolean isUtf8FromLatin1 = true; + while (begin < end && pos < len) { + int uc1 = ((int) slice.getByte(begin++)) & 0xFF; + // 0xxxxxxx + if (uc1 < 0x80) { + res[pos++] = (byte) uc1; + } else if (begin < end) { + if (uc1 != 0xC2 && uc1 != 0xC3) { + isUtf8FromLatin1 = false; + } + int uc2 = ((int) slice.getByte(begin++)) & 0xFF; + res[pos++] = (byte) (((uc1 & 0x1f) << 6) | (uc2 ^ 0x80)); + } else { + res[pos++] = (byte) 0xFF; + } + } + return isUtf8FromLatin1; + } } diff --git a/polardbx-common/src/main/java/com/alibaba/polardbx/common/constants/ServerVariables.java b/polardbx-common/src/main/java/com/alibaba/polardbx/common/constants/ServerVariables.java index 1472b9098..426149b6b 100644 --- a/polardbx-common/src/main/java/com/alibaba/polardbx/common/constants/ServerVariables.java +++ b/polardbx-common/src/main/java/com/alibaba/polardbx/common/constants/ServerVariables.java @@ -18,6 +18,7 @@ import com.alibaba.polardbx.common.cdc.CdcConstants; import com.alibaba.polardbx.common.properties.ConnectionProperties; +import com.alibaba.polardbx.common.properties.DynamicConfig; import com.google.common.collect.ImmutableSet; import org.apache.commons.lang.StringUtils; @@ -3667,6 +3668,10 @@ public static boolean isGlobalBanned(String variable) { return globalBannedVariables.contains(variable.toLowerCase()); } + public static boolean isGlobalBlackList(String variable) { + return DynamicConfig.getInstance().getBlacklistConf().contains(variable.toLowerCase()); + } + public static boolean isCdcGlobal(String variable) { return StringUtils.startsWith(variable.toLowerCase(), CdcConstants.CONFIG_KEY_PREFIX); } diff --git a/polardbx-common/src/main/java/com/alibaba/polardbx/common/ddl/newengine/DdlPlanState.java b/polardbx-common/src/main/java/com/alibaba/polardbx/common/ddl/newengine/DdlPlanState.java index 0c2ff7381..125b822fb 100644 --- a/polardbx-common/src/main/java/com/alibaba/polardbx/common/ddl/newengine/DdlPlanState.java +++ b/polardbx-common/src/main/java/com/alibaba/polardbx/common/ddl/newengine/DdlPlanState.java @@ -21,7 +21,7 @@ public enum DdlPlanState { INIT, EXECUTING, SUCCESS, - TERMINATED - ; + TERMINATED, + PAUSE_ON_NON_MAINTENANCE_WINDOW; } \ No newline at end of file diff --git a/polardbx-common/src/main/java/com/alibaba/polardbx/common/exception/code/ErrorCode.java b/polardbx-common/src/main/java/com/alibaba/polardbx/common/exception/code/ErrorCode.java index aeaef6c29..d3512268e 100644 --- a/polardbx-common/src/main/java/com/alibaba/polardbx/common/exception/code/ErrorCode.java +++ b/polardbx-common/src/main/java/com/alibaba/polardbx/common/exception/code/ErrorCode.java @@ -708,6 +708,8 @@ public enum ErrorCode { ERR_STATISTIC_JOB_INTERRUPTED(ErrorType.Optimizer, 4531), + ERR_IN_PRUNING(ErrorType.Optimizer, 4532), + // ============= executor 从4600下标开始================ // ERR_FUNCTION(ErrorType.Executor, 4600), @@ -1244,6 +1246,7 @@ public enum ErrorCode { // ================= concurrency control Related Exceptions =================== ERR_CCL(ErrorType.CCL, 9201), + ERR_CCL_RESCHEDULE(ErrorType.CCL, 9202), ERR_LOGICAL_TABLE_UNSUPPORTED(ErrorType.Executor, 9203), diff --git a/polardbx-common/src/main/java/com/alibaba/polardbx/common/jdbc/ITransactionPolicy.java b/polardbx-common/src/main/java/com/alibaba/polardbx/common/jdbc/ITransactionPolicy.java index 2b45c4b54..efa20b327 100644 --- a/polardbx-common/src/main/java/com/alibaba/polardbx/common/jdbc/ITransactionPolicy.java +++ b/polardbx-common/src/main/java/com/alibaba/polardbx/common/jdbc/ITransactionPolicy.java @@ -68,7 +68,9 @@ enum TransactionClass { AUTO_COMMIT, - AUTO_COMMIT_TSO; + AUTO_COMMIT_TSO, + + ARCHIVE; public boolean isA(EnumSet set) { return set.contains(this); @@ -80,14 +82,17 @@ public boolean isA(EnumSet set) { TransactionClass.TSO, TransactionClass.TSO_READONLY, TransactionClass.AUTO_COMMIT_SINGLE_SHARD, - TSO_2PC_OPT); + TSO_2PC_OPT, + TransactionClass.ARCHIVE); public static final EnumSet EXPLICIT_TRANSACTION = EnumSet .of(TransactionClass.XA, TransactionClass.XA_TSO, TransactionClass.TSO, TransactionClass.ALLOW_READ_CROSS_DB, - TSO_2PC_OPT); + TransactionClass.COBAR_STYLE, + TSO_2PC_OPT, + TransactionClass.ARCHIVE); public static final EnumSet TSO_TRANSACTION = EnumSet .of(TransactionClass.TSO, @@ -110,7 +115,8 @@ public boolean isA(EnumSet set) { .of(TransactionClass.XA, TransactionClass.XA_TSO, TransactionClass.TSO, - TSO_2PC_OPT); + TSO_2PC_OPT, + TransactionClass.ARCHIVE); public static final EnumSet SUPPORT_PARALLEL_GET_CONNECTION_TRANSACTION = EnumSet .of(TransactionClass.XA, @@ -119,7 +125,8 @@ public boolean isA(EnumSet set) { TransactionClass.AUTO_COMMIT, TransactionClass.AUTO_COMMIT_SINGLE_SHARD, TransactionClass.AUTO_COMMIT_TSO, - TransactionClass.TSO_READONLY); + TransactionClass.TSO_READONLY, + TransactionClass.ARCHIVE); public static final EnumSet ALLOW_GROUP_PARALLELISM_WITHOUT_SHARE_READVIEW_TRANSACTION = EnumSet.of(TransactionClass.AUTO_COMMIT, @@ -131,6 +138,7 @@ public boolean isA(EnumSet set) { NoTransaction NO_TRANSACTION = new NoTransaction(); DefaultPolicy XA = new DefaultPolicy(TransactionClass.XA); Tso TSO = new Tso(); + DefaultPolicy ARCHIVE = new DefaultPolicy(TransactionClass.ARCHIVE); TransactionClass getTransactionType(boolean isAutoCommit, boolean isReadOnly); @@ -259,6 +267,8 @@ static ITransactionPolicy of(String name) { return ITransactionPolicy.ALLOW_READ_CROSS_DB; case "NO_TRANSACTION": return ITransactionPolicy.NO_TRANSACTION; + case "ARCHIVE": + return ITransactionPolicy.ARCHIVE; default: throw new TddlRuntimeException(ErrorCode.ERR_CONFIG, "Unknown transaction policy: " + name); } diff --git a/polardbx-common/src/main/java/com/alibaba/polardbx/common/jdbc/PruneRawString.java b/polardbx-common/src/main/java/com/alibaba/polardbx/common/jdbc/PruneRawString.java index 57b08b7ae..60264b93a 100644 --- a/polardbx-common/src/main/java/com/alibaba/polardbx/common/jdbc/PruneRawString.java +++ b/polardbx-common/src/main/java/com/alibaba/polardbx/common/jdbc/PruneRawString.java @@ -17,13 +17,10 @@ package com.alibaba.polardbx.common.jdbc; import com.alibaba.polardbx.common.utils.GeneralUtil; -import com.alibaba.polardbx.common.utils.TStringUtil; import com.google.common.collect.Lists; -import com.google.common.collect.Sets; import java.util.BitSet; import java.util.List; -import java.util.Set; /** * @author fangwu @@ -88,11 +85,16 @@ public Object getObj(int index, int skIndex) { @Override public String display() { - String rs = "PruneRaw(" + buildRawString() + ")"; - if (rs.length() > 4096) { - return rs.substring(0, 4096) + "..."; + StringBuilder stringBuilder = new StringBuilder(); + if (size() == super.getObjList().size()) { + stringBuilder.append("NonPruneRaw(" + buildRawString() + ")"); + } else { + stringBuilder.append("PruneRaw(" + buildRawString() + ")"); } - return rs; + if (stringBuilder.length() > 4096) { + return stringBuilder.substring(0, 4096) + "..."; + } + return stringBuilder.toString(); } @Override @@ -195,12 +197,16 @@ private void paramCheck() { if (indexes == null || indexes.isEmpty()) { GeneralUtil.nestedException("RawString init ERROR MUITI_INDEX mode with invalid indexes:" + indexes); } + return; default: GeneralUtil.nestedException("RawString init ERROR mode invalid :" + pruneMode); } } public void merge(PruneRawString pruneRawString) { + if (size() == super.getObjList().size()) { + return; + } if (pruneMode == PRUNE_MODE.RANGE) { transformModeToMultiIndex(); } @@ -208,6 +214,11 @@ public void merge(PruneRawString pruneRawString) { pruneRawString.transformModeToMultiIndex(); } indexes.or(pruneRawString.indexes); + if (indexes.cardinality() == super.getObjList().size()) { + pruneMode = PRUNE_MODE.RANGE; + startIndex = 0; + endIndex = super.getObjList().size(); + } } private void transformModeToMultiIndex() { @@ -230,4 +241,29 @@ private void transformModeToMultiIndex() { public enum PRUNE_MODE { RANGE, MULTI_INDEX; } + + /** + * do the same thing as RawString.pruneStep, but return itself. + * WARNING: this method will change this PruneRawString itself. + */ + @Override + public PruneRawString pruneStep(int curIndex) { + pruneMode = PruneRawString.PRUNE_MODE.RANGE; + startIndex = curIndex; + endIndex = curIndex + 1; + return this; + } + + @Override + public PruneRawString clone() { + if (pruneMode == PRUNE_MODE.RANGE) { + return new PruneRawString(super.getObjList(), pruneMode, startIndex, endIndex, null); + } else { + return new PruneRawString(super.getObjList(), pruneMode, -1, -1, (BitSet) indexes.clone()); + } + } + + public int getSourceSize() { + return super.size(); + } } diff --git a/polardbx-common/src/main/java/com/alibaba/polardbx/common/jdbc/RawString.java b/polardbx-common/src/main/java/com/alibaba/polardbx/common/jdbc/RawString.java index 86db3f3a2..3887908ca 100644 --- a/polardbx-common/src/main/java/com/alibaba/polardbx/common/jdbc/RawString.java +++ b/polardbx-common/src/main/java/com/alibaba/polardbx/common/jdbc/RawString.java @@ -210,4 +210,15 @@ public Object acquireObject(int subIndex, int skIndex) { return getObj(subIndex, skIndex); } } + + /** + * build one PruneRawString with one object(target by curIndex) inside this RawString + */ + public PruneRawString pruneStep(int curIndex) { + return new PruneRawString(this.getObjList(), PruneRawString.PRUNE_MODE.RANGE, curIndex, curIndex + 1, null); + } + + public RawString clone() { + return new RawString(this.getObjList()); + } } diff --git a/polardbx-common/src/main/java/com/alibaba/polardbx/common/jdbc/TableName.java b/polardbx-common/src/main/java/com/alibaba/polardbx/common/jdbc/TableName.java index 314f9a7f3..d0f8c5165 100644 --- a/polardbx-common/src/main/java/com/alibaba/polardbx/common/jdbc/TableName.java +++ b/polardbx-common/src/main/java/com/alibaba/polardbx/common/jdbc/TableName.java @@ -36,11 +36,6 @@ public String getTableName() { return this.tableName; } - public void setTableName(String tableName) throws SQLException { - this.checkName(tableName); - this.tableName = tableName.trim(); - } - private void checkName(String tName) throws SQLException { if (StringUtils.isEmptyOrWhitespaceOnly(tName)) { throw new SQLException("tableName should not be empty", "S1009"); @@ -63,9 +58,6 @@ private void checkName(String tName) throws SQLException { case '\u001a': needsHexEscape = true; break; - case ' ': - needsHexEscape = true; - break; case '"': needsHexEscape = true; break; @@ -80,7 +72,6 @@ private void checkName(String tName) throws SQLException { throw new SQLException("tableName format error: " + this.tableName, "S1009"); } } - } } @@ -89,4 +80,3 @@ public String toString() { return getTableName(); } } - diff --git a/polardbx-common/src/main/java/com/alibaba/polardbx/common/mock/MockUtils.java b/polardbx-common/src/main/java/com/alibaba/polardbx/common/mock/MockUtils.java new file mode 100644 index 000000000..f62186de7 --- /dev/null +++ b/polardbx-common/src/main/java/com/alibaba/polardbx/common/mock/MockUtils.java @@ -0,0 +1,61 @@ +/* + * Copyright [2013-2021], Alibaba Group Holding Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.alibaba.polardbx.common.mock; + +import java.lang.reflect.Field; + +public class MockUtils { + + public interface ThrowableRunnable { + void run() throws Throwable; + } + + public interface ThrowableConsumer { + void accept(T t) throws Throwable; + } + + public static T assertThrows(Class expectedType, + String expectedMessage, + ThrowableRunnable methodCall) { + try { + methodCall.run(); + } catch (Throwable e) { + if (expectedType.isInstance(e)) { + if (expectedMessage != null) { + if (!expectedMessage.equals(e.getMessage())) { + throw new AssertionError( + "Expected message: " + expectedMessage + ", actual: " + e.getMessage() + ); + } + } + return (T) e; + } + throw new AssertionError("Expected exception: " + expectedType.getName(), e); + } + throw new AssertionError("Expected exception: " + expectedType.getName()); + } + + public static void setInternalState(Object target, String fieldName, Object value) { + try { + Field field = target.getClass().getDeclaredField(fieldName); + field.setAccessible(true); + field.set(target, value); + } catch (NoSuchFieldException | IllegalAccessException e) { + throw new RuntimeException(e); + } + } +} diff --git a/polardbx-common/src/main/java/com/alibaba/polardbx/common/oss/filesystem/Constants.java b/polardbx-common/src/main/java/com/alibaba/polardbx/common/oss/filesystem/Constants.java index ccf4358a4..df9921746 100644 --- a/polardbx-common/src/main/java/com/alibaba/polardbx/common/oss/filesystem/Constants.java +++ b/polardbx-common/src/main/java/com/alibaba/polardbx/common/oss/filesystem/Constants.java @@ -90,7 +90,9 @@ private Constants() { public static final long MULTIPART_UPLOAD_PART_SIZE_DEFAULT = 104857600; // 100 MB - /** The minimum multipart size which OSS supports. */ + /** + * The minimum multipart size which OSS supports. + */ public static final int MULTIPART_MIN_SIZE = 100 * 1024; public static final int MULTIPART_UPLOAD_PART_NUM_LIMIT = 10000; @@ -155,4 +157,16 @@ private Constants() { public static final String UPLOAD_ACTIVE_BLOCKS_KEY = "fs.oss.upload.active.blocks"; public static final int UPLOAD_ACTIVE_BLOCKS_DEFAULT = 4; + + // S3 access verification + public static final String S3_ACCESS_KEY = "fs.s3a.access.key"; + public static final String S3_SECRET_KEY = "fs.s3a.secret.key"; + + // ABS access verification + // fs.azure.account.key..blob. + public static final String ABS_URI_SUFFIX_PATTERN = "%s.blob.%s"; + public static final String ABS_ACCOUNT_KEY_PATTERN = "fs.azure.account.key." + ABS_URI_SUFFIX_PATTERN; + + public static final String AZURE_WASBS_SCHEME = "wasbs"; + public static final String AZURE_WASB_SCHEME = "wasb"; } \ No newline at end of file diff --git a/polardbx-common/src/main/java/com/alibaba/polardbx/common/oss/filesystem/InputStreamWithRateLimiter.java b/polardbx-common/src/main/java/com/alibaba/polardbx/common/oss/filesystem/InputStreamWithRateLimiter.java new file mode 100644 index 000000000..e03a8e772 --- /dev/null +++ b/polardbx-common/src/main/java/com/alibaba/polardbx/common/oss/filesystem/InputStreamWithRateLimiter.java @@ -0,0 +1,124 @@ +/* + * Copyright [2013-2021], Alibaba Group Holding Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.alibaba.polardbx.common.oss.filesystem; + +import org.apache.hadoop.fs.PositionedReadable; +import org.apache.hadoop.fs.Seekable; +import org.jetbrains.annotations.NotNull; + +import java.io.IOException; +import java.io.InputStream; + +public class InputStreamWithRateLimiter extends InputStream implements Seekable, PositionedReadable { + final private FileSystemRateLimiter rateLimiter; + final private InputStream in; + + public InputStreamWithRateLimiter(InputStream in, FileSystemRateLimiter rateLimiter) { + if (!(in instanceof Seekable) || !(in instanceof PositionedReadable)) { + throw new IllegalArgumentException( + "In is not an instance of Seekable or PositionedReadable"); + } + this.in = in; + this.rateLimiter = rateLimiter; + } + + @Override + public synchronized int read() throws IOException { + rateLimiter.acquireRead(1); + return in.read(); + } + + @Override + public synchronized int read(byte @NotNull [] buf, int off, int len) throws IOException { + rateLimiter.acquireRead(len); + return in.read(buf, off, len); + } + + @Override + public synchronized int read(byte @NotNull [] b) throws IOException { + rateLimiter.acquireRead(b.length); + return in.read(b); + } + + @Override + public synchronized long skip(long n) throws IOException { + // TODO(siyun): should this be tracked by rate limiter? + return in.skip(n); + } + + @Override + public synchronized int available() throws IOException { + return in.available(); + } + + @Override + public synchronized void close() throws IOException { + in.close(); + } + + @Override + public synchronized void mark(int readlimit) { + in.mark(readlimit); + } + + @Override + public synchronized void reset() throws IOException { + in.reset(); + } + + @Override + public synchronized boolean markSupported() { + return in.markSupported(); + } + + @Override + public int read(long position, byte[] buffer, int offset, int length) throws IOException { + rateLimiter.acquireRead(length); + return ((PositionedReadable) in).read(position, buffer, offset, length); + } + + @Override + public void readFully(long position, byte[] buffer, int offset, int length) throws IOException { + rateLimiter.acquireRead(length); + ((PositionedReadable) in).readFully(position, buffer, offset, length); + } + + @Override + public void readFully(long position, byte[] buffer) throws IOException { + rateLimiter.acquireRead(buffer.length); + ((PositionedReadable) in).readFully(position, buffer); + } + + @Override + public void seek(long pos) throws IOException { + ((Seekable) in).seek(pos); + } + + @Override + public long getPos() throws IOException { + return ((Seekable) in).getPos(); + } + + @Override + public boolean seekToNewSource(long targetPos) throws IOException { + return ((Seekable) in).seekToNewSource(targetPos); + } + + public InputStream getWrappedStream() { + return in; + } +} diff --git a/polardbx-common/src/main/java/com/alibaba/polardbx/common/oss/filesystem/NFSFileSystem.java b/polardbx-common/src/main/java/com/alibaba/polardbx/common/oss/filesystem/NFSFileSystem.java index 1a9af7af0..4f4a7cd3c 100644 --- a/polardbx-common/src/main/java/com/alibaba/polardbx/common/oss/filesystem/NFSFileSystem.java +++ b/polardbx-common/src/main/java/com/alibaba/polardbx/common/oss/filesystem/NFSFileSystem.java @@ -47,7 +47,7 @@ import static java.util.concurrent.TimeUnit.SECONDS; -public class NFSFileSystem extends FileSystem { +public class NFSFileSystem extends FileSystem implements RateLimitable { private static final Logger LOG = LoggerFactory.getLogger(NFSFileSystem.class); @@ -380,6 +380,7 @@ public FileStatus getFileStatusImpl(Path path) throws IOException { } } + @Override public FileSystemRateLimiter getRateLimiter() { return this.rateLimiter; } diff --git a/polardbx-common/src/main/java/com/alibaba/polardbx/common/oss/filesystem/OSSFileSystem.java b/polardbx-common/src/main/java/com/alibaba/polardbx/common/oss/filesystem/OSSFileSystem.java index f250c08fb..3289c7e40 100644 --- a/polardbx-common/src/main/java/com/alibaba/polardbx/common/oss/filesystem/OSSFileSystem.java +++ b/polardbx-common/src/main/java/com/alibaba/polardbx/common/oss/filesystem/OSSFileSystem.java @@ -74,7 +74,7 @@ /** * To access OSS blob system in a filesystem style. */ -public class OSSFileSystem extends FileSystem { +public class OSSFileSystem extends FileSystem implements RateLimitable { private static final Logger LOG = LoggerFactory.getLogger(OSSFileSystem.class); private URI uri; @@ -348,6 +348,7 @@ public FileStatus getFileStatusImpl(Path path) throws IOException { } } + @Override public FileSystemRateLimiter getRateLimiter() { return this.rateLimiter; } diff --git a/polardbx-common/src/main/java/com/alibaba/polardbx/common/oss/filesystem/OutputStreamWithRateLimiter.java b/polardbx-common/src/main/java/com/alibaba/polardbx/common/oss/filesystem/OutputStreamWithRateLimiter.java new file mode 100644 index 000000000..89f31b0c0 --- /dev/null +++ b/polardbx-common/src/main/java/com/alibaba/polardbx/common/oss/filesystem/OutputStreamWithRateLimiter.java @@ -0,0 +1,64 @@ +/* + * Copyright [2013-2021], Alibaba Group Holding Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.alibaba.polardbx.common.oss.filesystem; + +import org.jetbrains.annotations.NotNull; + +import java.io.IOException; +import java.io.OutputStream; + +public class OutputStreamWithRateLimiter extends OutputStream { + final private FileSystemRateLimiter rateLimiter; + final private OutputStream out; + + public OutputStreamWithRateLimiter(OutputStream out, FileSystemRateLimiter rateLimiter) { + this.out = out; + this.rateLimiter = rateLimiter; + } + + @Override + public synchronized void write(byte @NotNull [] b) throws IOException { + rateLimiter.acquireWrite(b.length); + out.write(b); + } + + @Override + public synchronized void write(byte @NotNull [] b, int off, int len) throws IOException { + rateLimiter.acquireWrite(len); + out.write(b, off, len); + } + + @Override + public synchronized void flush() throws IOException { + out.flush(); + } + + @Override + public synchronized void close() throws IOException { + out.close(); + } + + @Override + public synchronized void write(int b) throws IOException { + rateLimiter.acquireWrite(1); + out.write(b); + } + + public OutputStream getWrappedStream() { + return out; + } +} diff --git a/polardbx-common/src/main/java/com/alibaba/polardbx/common/oss/filesystem/RateLimitable.java b/polardbx-common/src/main/java/com/alibaba/polardbx/common/oss/filesystem/RateLimitable.java new file mode 100644 index 000000000..907c940f5 --- /dev/null +++ b/polardbx-common/src/main/java/com/alibaba/polardbx/common/oss/filesystem/RateLimitable.java @@ -0,0 +1,21 @@ +/* + * Copyright [2013-2021], Alibaba Group Holding Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.alibaba.polardbx.common.oss.filesystem; + +public interface RateLimitable { + FileSystemRateLimiter getRateLimiter(); +} diff --git a/polardbx-common/src/main/java/com/alibaba/polardbx/common/partition/MurmurHashUtils.java b/polardbx-common/src/main/java/com/alibaba/polardbx/common/partition/MurmurHashUtils.java index ca0c5142e..9f8882e28 100644 --- a/polardbx-common/src/main/java/com/alibaba/polardbx/common/partition/MurmurHashUtils.java +++ b/polardbx-common/src/main/java/com/alibaba/polardbx/common/partition/MurmurHashUtils.java @@ -33,20 +33,32 @@ private static long murmurHash3_128(byte[] data, int seed) { return longVal; } - private static final HashFunction zeroSeedMurmur3hashFunc = Hashing.murmur3_128(0); + private static int murmurHash3_32(byte[] data) { + HashCode hashCode = zeroSeedMurmur3hashFunc32.hashBytes(data); + int intVal = hashCode.asInt(); + return intVal; + } + + private static final HashFunction zeroSeedMurmur3hashFunc32 = Hashing.murmur3_32(0); + + private static final HashFunction zeroSeedMurmur3hashFunc128 = Hashing.murmur3_128(0); private static long murmurHash3_128(long data) { - HashCode hashCode = zeroSeedMurmur3hashFunc.hashLong(data); + HashCode hashCode = zeroSeedMurmur3hashFunc128.hashLong(data); long longVal = hashCode.asLong(); return longVal; } - public static long murmurHashWithZeroSeed(byte[] data) { + public static long murmurHash128WithZeroSeed(long data) { + return murmurHash3_128(data); + } + + public static long murmurHash128WithZeroSeed(byte[] data) { return murmurHash3_128(data, 0); } - public static long murmurHashWithZeroSeed(long data) { - return murmurHash3_128(data); + public static int murmurHash32WithZeroSeed(byte[] data) { + return murmurHash3_32(data); } } diff --git a/polardbx-common/src/main/java/com/alibaba/polardbx/common/properties/ConnectionParams.java b/polardbx-common/src/main/java/com/alibaba/polardbx/common/properties/ConnectionParams.java index ca33c6622..64ad01c15 100644 --- a/polardbx-common/src/main/java/com/alibaba/polardbx/common/properties/ConnectionParams.java +++ b/polardbx-common/src/main/java/com/alibaba/polardbx/common/properties/ConnectionParams.java @@ -360,7 +360,7 @@ public class ConnectionParams { new IntConfigParam(ConnectionProperties.PHYSICAL_DDL_MDL_WAITING_TIMEOUT, -1, //5 Attribute.MAX_PHYSICAL_DDL_MDL_WAITING_TIMEOUT, //Integer.MAX_VALUE - Integer.valueOf(Attribute.PHYSICAL_DDL_MDL_WAITING_TIMEOUT), //15 + -1, false); /** @@ -1253,6 +1253,11 @@ public static void addSupportedParam(ConfigParam param) { true, false); + public final static BooleanConfigParam BACKFILL_USE_RETURNING = new BooleanConfigParam( + ConnectionProperties.BACKFILL_USE_RETURNING, + true, + false); + /** * enable parallel physical table backfill */ @@ -2036,6 +2041,9 @@ public static void addSupportedParam(ConfigParam param) { public static final BooleanConfigParam ENABLE_LV_SUBQUERY_UNWRAP = new BooleanConfigParam( ConnectionProperties.ENABLE_LV_SUBQUERY_UNWRAP, true, true); + public static final BooleanConfigParam EXPLAIN_PRUNING_DETAIL = new BooleanConfigParam( + ConnectionProperties.EXPLAIN_PRUNING_DETAIL, false, true); + public static final BooleanConfigParam ENABLE_FILTER_REORDER = new BooleanConfigParam( ConnectionProperties.ENABLE_FILTER_REORDER, true, true); @@ -2626,6 +2634,11 @@ public static void addSupportedParam(ConfigParam param) { true, true); + public static final BooleanConfigParam ENABLE_PUSHDOWN_DISTINCT = new BooleanConfigParam( + ConnectionProperties.ENABLE_PUSHDOWN_DISTINCT, + true, + true); + public static final BooleanConfigParam ENABLE_INDEX_SKYLINE = new BooleanConfigParam( ConnectionProperties.ENABLE_INDEX_SKYLINE, false, @@ -2692,18 +2705,6 @@ public static void addSupportedParam(ConfigParam param) { true ); - public static final BooleanConfigParam ENABLE_JAVA_UDF = new BooleanConfigParam( - ConnectionProperties.ENABLE_JAVA_UDF, - true, - true - ); - - public static final BooleanConfigParam CHECK_INVALID_JAVA_UDF = new BooleanConfigParam( - ConnectionProperties.CHECK_INVALID_JAVA_UDF, - true, - true - ); - public static final LongConfigParam MAX_JAVA_UDF_NUM = new LongConfigParam( ConnectionProperties.MAX_JAVA_UDF_NUM, 0L, @@ -3074,7 +3075,7 @@ public static class ConnectionParamValues { public static final IntConfigParam IN_SUB_QUERY_THRESHOLD = new IntConfigParam( ConnectionProperties.IN_SUB_QUERY_THRESHOLD, 2, Integer.MAX_VALUE, - 8, true); + 100000, true); public static final BooleanConfigParam ENABLE_IN_SUB_QUERY_FOR_DML = new BooleanConfigParam( ConnectionProperties.ENABLE_IN_SUB_QUERY_FOR_DML, false, Boolean.TRUE); @@ -3255,6 +3256,14 @@ public static class ConnectionParamValues { false, true); + /** + * Label if auto use key syntax for all local index on show create table + */ + public static final BooleanConfigParam ENABLE_USE_KEY_FOR_ALL_LOCAL_INDEX = new BooleanConfigParam( + ConnectionProperties.ENABLE_USE_KEY_FOR_ALL_LOCAL_INDEX, + false, + true); + /** * Label if auto use range/list columns partitions for "part by range/list", default is true */ @@ -3503,6 +3512,9 @@ public static class ConnectionParamValues { public static final BooleanConfigParam ENABLE_NDV_USE_COLUMNAR = new BooleanConfigParam( ConnectionProperties.ENABLE_NDV_USE_COLUMNAR, false, true); + public static final BooleanConfigParam ENABLE_MPP_NDV_USE_COLUMNAR = new BooleanConfigParam( + ConnectionProperties.ENABLE_MPP_NDV_USE_COLUMNAR, false, true); + /** * expire time(sec) for ndv sketch info */ @@ -3660,7 +3672,7 @@ public static class ConnectionParamValues { new IntConfigParam(ConnectionProperties.CHANGE_SET_APPLY_BATCH, 1, 10 * 1024, 128, false); public static final LongConfigParam CHANGE_SET_MEMORY_LIMIT = new LongConfigParam( - ConnectionProperties.CHANGE_SET_MEMORY_LIMIT, 1024L, 1024 * 1024 * 1024L, 8 * 1024 * 1024L, false); + ConnectionProperties.CHANGE_SET_MEMORY_LIMIT, 1024L, 16 * 1024 * 1024L, 1024 * 1024L, false); public static final BooleanConfigParam CN_ENABLE_CHANGESET = new BooleanConfigParam(ConnectionProperties.CN_ENABLE_CHANGESET, true, true); @@ -3886,19 +3898,10 @@ public static class ConnectionParamValues { true); /** - * the min size of IN expr that would be pruned - */ - public static final IntConfigParam IN_PRUNE_SIZE = new IntConfigParam( - ConnectionProperties.IN_PRUNE_SIZE, 0, Integer.MAX_VALUE, 150, true); - - /** - * the batch size of IN expr being pruned + * the MAX size of IN expr being pruned */ - public static final IntConfigParam IN_PRUNE_STEP_SIZE = new IntConfigParam( - ConnectionProperties.IN_PRUNE_STEP_SIZE, 1, Integer.MAX_VALUE, 10, true); - public static final IntConfigParam IN_PRUNE_MAX_TIME = new IntConfigParam( - ConnectionProperties.IN_PRUNE_MAX_TIME, 1, Integer.MAX_VALUE, 100, true); + ConnectionProperties.IN_PRUNE_MAX_TIME, 1, Integer.MAX_VALUE, 100000, true); public static final IntConfigParam MAX_IN_PRUNE_CACHE_SIZE = new IntConfigParam( ConnectionProperties.MAX_IN_PRUNE_CACHE_SIZE, 0, Integer.MAX_VALUE, 200, true); @@ -3940,6 +3943,16 @@ public static class ConnectionParamValues { false, false); + public static final BooleanConfigParam OUTPUT_MYSQL_ERROR_CODE = + new BooleanConfigParam(ConnectionProperties.OUTPUT_MYSQL_ERROR_CODE, + false, + false); + + public static final StringConfigParam MAPPING_TO_MYSQL_ERROR_CODE = + new StringConfigParam(ConnectionProperties.MAPPING_TO_MYSQL_ERROR_CODE, + "", + false); + public static final StringConfigParam PURGE_OSS_FILE_CRON_EXPR = new StringConfigParam( ConnectionProperties.PURGE_OSS_FILE_CRON_EXPR, "0 0 1 ? * WED", true); @@ -4571,9 +4584,35 @@ public static class ConnectionParamValues { public static final BooleanConfigParam PHYSICAL_BACKFILL_SPEED_TEST = new BooleanConfigParam( ConnectionProperties.PHYSICAL_BACKFILL_SPEED_TEST, + false, + true); + + /** + * rebalance start point + */ + public static final BooleanConfigParam REBALANCE_MAINTENANCE_ENABLE = new BooleanConfigParam( + ConnectionProperties.REBALANCE_MAINTENANCE_ENABLE, true, true); + /** + * rebalance start point + */ + public static final StringConfigParam REBALANCE_MAINTENANCE_TIME_START = + new StringConfigParam(ConnectionProperties.REBALANCE_MAINTENANCE_TIME_START, "00:00", true); + + /** + * rebalance stop point + */ + public static final StringConfigParam REBALANCE_MAINTENANCE_TIME_END = + new StringConfigParam(ConnectionProperties.REBALANCE_MAINTENANCE_TIME_END, "00:00", true); + + public static final BooleanConfigParam CANCEL_REBALANCE_JOB_DUE_MAINTENANCE = new BooleanConfigParam( + ConnectionProperties.CANCEL_REBALANCE_JOB_DUE_MAINTENANCE, + false, + true + ); + public static final BooleanConfigParam ENABLE_DEADLOCK_DETECTION_80 = new BooleanConfigParam( ConnectionProperties.ENABLE_DEADLOCK_DETECTION_80, false, @@ -4818,6 +4857,12 @@ public static class ConnectionParamValues { true ); + public static final BooleanConfigParam ENABLE_1PC_OPT = new BooleanConfigParam( + ConnectionProperties.ENABLE_1PC_OPT, + true, + true + ); + public static final BooleanConfigParam ENABLE_SINGLE_SHARD_WRITE = new BooleanConfigParam( ConnectionProperties.ENABLE_SINGLE_SHARD_WRITE, true, true); } diff --git a/polardbx-common/src/main/java/com/alibaba/polardbx/common/properties/ConnectionProperties.java b/polardbx-common/src/main/java/com/alibaba/polardbx/common/properties/ConnectionProperties.java index 09b0ad82a..5c89c64dd 100644 --- a/polardbx-common/src/main/java/com/alibaba/polardbx/common/properties/ConnectionProperties.java +++ b/polardbx-common/src/main/java/com/alibaba/polardbx/common/properties/ConnectionProperties.java @@ -684,10 +684,6 @@ public class ConnectionProperties { public static final String ENABLE_UDF = "ENABLE_UDF"; - public static final String ENABLE_JAVA_UDF = "ENABLE_JAVA_UDF"; - - public static final String CHECK_INVALID_JAVA_UDF = "CHECK_INVALID_JAVA_UDF"; - public static final String MAX_JAVA_UDF_NUM = "MAX_JAVA_UDF_NUM"; public static final String FORCE_DROP_JAVA_UDF = "FORCE_DROP_JAVA_UDF"; @@ -865,6 +861,8 @@ public class ConnectionProperties { public static final String ENABLE_LV_SUBQUERY_UNWRAP = "ENABLE_LV_SUBQUERY_UNWRAP"; + public static final String EXPLAIN_PRUNING_DETAIL = "EXPLAIN_PRUNING_DETAIL"; + public static final String ENABLE_FILTER_REORDER = "ENABLE_FILTER_REORDER"; public static final String ENABLE_CONSTANT_FOLD = "ENABLE_CONSTANT_FOLD"; @@ -1095,6 +1093,8 @@ public class ConnectionProperties { */ public static final String BACKFILL_MAX_SAMPLE_SIZE = "BACKFILL_MAX_SAMPLE_SIZE"; + public static final String BACKFILL_USE_RETURNING = "BACKFILL_USE_RETURNING"; + /** * enable split physical table for backfill */ @@ -1802,6 +1802,11 @@ public class ConnectionProperties { */ public static final String ENABLE_COMPLEX_DML_CROSS_DB = "ENABLE_COMPLEX_DML_CROSS_DB"; public static final String COMPLEX_DML_WITH_TRX = "COMPLEX_DML_WITH_TRX"; + + public static final String ENABLE_PUSHDOWN_DISTINCT = "ENABLE_PUSHDOWN_DISTINCT"; + /** + * Enable index selection + */ public static final String ENABLE_INDEX_SELECTION = "ENABLE_INDEX_SELECTION"; public static final String ENABLE_INDEX_SELECTION_PRUNE = "ENABLE_INDEX_SELECTION_PRUNE"; @@ -2055,6 +2060,11 @@ public class ConnectionProperties { * Label if auto use range-key subpart for index of auto-part table, default is true */ public static final String ENABLE_AUTO_USE_RANGE_FOR_TIME_INDEX = "ENABLE_AUTO_USE_RANGE_FOR_TIME_INDEX"; + /** + * Label if auto use key syntax for all local index on show create table + */ + public static final String ENABLE_USE_KEY_FOR_ALL_LOCAL_INDEX = "ENABLE_USE_KEY_FOR_ALL_LOCAL_INDEX"; + /** * Label if auto use range/list columns partitions for "part by range/list", default is true */ @@ -2158,6 +2168,8 @@ public class ConnectionProperties { public static final String ENABLE_HA_CHECK_TASK_LOG = "ENABLE_HA_CHECK_TASK_LOG"; public static final String ENABLE_NDV_USE_COLUMNAR = "ENABLE_NDV_USE_COLUMNAR"; + + public static final String ENABLE_MPP_NDV_USE_COLUMNAR = "ENABLE_MPP_NDV_USE_COLUMNAR"; /** * ndv sketch expire time */ @@ -2328,6 +2340,12 @@ public class ConnectionProperties { */ public static final String IN_PRUNE_STEP_SIZE = "IN_PRUNE_STEP_SIZE"; public static final String IN_PRUNE_MAX_TIME = "IN_PRUNE_MAX_TIME"; + public static final String PRUNING_TIME_WARNING_THRESHOLD = "PRUNING_TIME_WARNING_THRESHOLD"; + + public static final String ENABLE_PRUNING_IN = "ENABLE_PRUNING_IN"; + + public static final String ENABLE_PRUNING_IN_DML = "ENABLE_PRUNING_IN_DML"; + /** * the max num of pruning info cache by logical view */ @@ -2377,6 +2395,10 @@ public class ConnectionProperties { public static final String ENABLE_STANDBY_BACKFILL = "ENABLE_STANDBY_BACKFILL"; public static final String PHYSICAL_DDL_IGNORED_ERROR_CODE = "PHYSICAL_DDL_IGNORED_ERROR_CODE"; public static final String DDL_PAUSE_DURING_EXCEPTION = "DDL_PAUSE_DURING_EXCEPTION"; + public static final String OUTPUT_MYSQL_ERROR_CODE = "OUTPUT_MYSQL_ERROR_CODE"; + + public static final String MAPPING_TO_MYSQL_ERROR_CODE = "MAPPING_TO_MYSQL_ERROR_CODE"; + public static final String CHANGE_SET_REPLAY_TIMES = "CHANGE_SET_REPLAY_TIMES"; public static final String CHANGE_SET_APPLY_BATCH = "CHANGE_SET_APPLY_BATCH"; public static final String CHANGE_SET_MEMORY_LIMIT = "CHANGE_SET_MEMORY_LIMIT"; @@ -2601,6 +2623,13 @@ public class ConnectionProperties { public static final String PHYSICAL_BACKFILL_SPEED_TEST = "PHYSICAL_BACKFILL_SPEED_TEST"; + public static final String REBALANCE_MAINTENANCE_ENABLE = "REBALANCE_MAINTENANCE_ENABLE"; + public static final String REBALANCE_MAINTENANCE_TIME_START = "REBALANCE_MAINTENANCE_TIME_START"; + + public static final String REBALANCE_MAINTENANCE_TIME_END = "REBALANCE_MAINTENANCE_TIME_END"; + + public static final String CANCEL_REBALANCE_JOB_DUE_MAINTENANCE = "CANCEL_REBALANCE_JOB_DUE_MAINTENANCE"; + public static final String ENABLE_DEADLOCK_DETECTION_80 = "ENABLE_DEADLOCK_DETECTION_80"; public static final String MOCK_COLUMNAR_INDEX = "MOCK_COLUMNAR_INDEX"; public static final String MCI_FORMAT = "MCI_FORMAT"; diff --git a/polardbx-common/src/main/java/com/alibaba/polardbx/common/properties/DynamicConfig.java b/polardbx-common/src/main/java/com/alibaba/polardbx/common/properties/DynamicConfig.java index c6fc8786f..2c170fbd7 100644 --- a/polardbx-common/src/main/java/com/alibaba/polardbx/common/properties/DynamicConfig.java +++ b/polardbx-common/src/main/java/com/alibaba/polardbx/common/properties/DynamicConfig.java @@ -16,13 +16,23 @@ package com.alibaba.polardbx.common.properties; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.TypeReference; +import com.alibaba.fastjson.parser.Feature; +import com.alibaba.polardbx.common.TddlConstants; import com.alibaba.polardbx.common.constants.IsolationLevel; import com.alibaba.polardbx.common.statementsummary.StatementSummaryManager; import com.alibaba.polardbx.common.utils.version.InstanceVersion; +import com.alibaba.polardbx.common.utils.TStringUtil; import com.alibaba.polardbx.config.ConfigDataMode; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Locale; +import java.util.Map; import java.util.regex.Pattern; /** @@ -336,21 +346,47 @@ public void loadValue(Logger logger, String key, String value) { case ConnectionProperties.ENABLE_TRX_DEBUG_MODE: enableTrxDebugMode = parseValue(value, Boolean.class, false); break; - case ConnectionProperties.ENABLE_MQ_CACHE_COST_BY_THREAD: - enableMQCacheByThread = parseValue(value, Boolean.class, true); - break; case ConnectionProperties.INSTANCE_READ_ONLY: instanceReadOnly = parseValue(value, Boolean.class, false); break; - case ConnectionProperties.ENABLE_1PC_OPT: - enable1PcOpt = parseValue(value, Boolean.class, true); - break; case ConnectionProperties.MIN_SNAPSHOT_KEEP_TIME: minSnapshotKeepTime = parseValue(value, Integer.class, 5 * 60 * 1000); break; case ConnectionProperties.FORBID_AUTO_COMMIT_TRX: forbidAutoCommitTrx = parseValue(value, Boolean.class, false); break; + case ConnectionProperties.MAPPING_TO_MYSQL_ERROR_CODE: + errorCodeMapping = initErrorCodeMapping(value); + break; + case ConnectionProperties.PRUNING_TIME_WARNING_THRESHOLD: + pruningTimeWarningThreshold = parseValue(value, Long.class, 500L); + break; + case ConnectionProperties.ENABLE_PRUNING_IN: + enablePruningIn = parseValue(value, Boolean.class, true); + break; + case ConnectionProperties.ENABLE_PRUNING_IN_DML: + enablePruningInDml = parseValue(value, Boolean.class, true); + break; + case ConnectionProperties.ENABLE_MQ_CACHE_COST_BY_THREAD: + enableMQCacheByThread = parseValue(value, Boolean.class, true); + break; + case ConnectionProperties.ENABLE_USE_KEY_FOR_ALL_LOCAL_INDEX: + enableUseKeyForAllLocalIndex = parseValue(value, Boolean.class, false); + break; + case TddlConstants.BLACK_LIST_CONF: + String blockLists = parseValue(value, String.class, ""); + List tempBlackList = new ArrayList<>(); + if (StringUtils.isNotBlank(blockLists)) { + String[] blockListArr = blockLists.split(","); + for (String blockList : blockListArr) { + if (StringUtils.isNotBlank(blockList)) { + tempBlackList.add(blockList.toLowerCase(Locale.ROOT)); + } + } + } + blackListConf = tempBlackList; + break; + default: FileConfig.getInstance().loadValue(logger, key, value); break; @@ -644,7 +680,8 @@ public boolean isEnableAutoUseRangeForTimeIndex() { } private static final String DEFAULT_PASSWORD_CHECK_PATTERN_STR = "^[0-9A-Za-z!@#$%^&*()_+=-]{6,32}$"; - private static final Pattern DEFAULT_PASSWORD_CHECK_PATTERN = Pattern.compile(DEFAULT_PASSWORD_CHECK_PATTERN_STR); + private static final Pattern DEFAULT_PASSWORD_CHECK_PATTERN = + Pattern.compile(DEFAULT_PASSWORD_CHECK_PATTERN_STR); private volatile Pattern passwordCheckPattern = DEFAULT_PASSWORD_CHECK_PATTERN; @@ -881,12 +918,6 @@ public boolean isInstanceReadOnly() { return instanceReadOnly; } - private volatile boolean enable1PcOpt = true; - - public boolean isEnable1PcOpt() { - return enable1PcOpt; - } - // 5 min. private volatile long minSnapshotKeepTime = 5 * 60 * 1000; @@ -896,10 +927,59 @@ public long getMinSnapshotKeepTime() { private volatile boolean forbidAutoCommitTrx = false; + private volatile Map errorCodeMapping = new HashMap<>(); + public boolean isForbidAutoCommitTrx() { return forbidAutoCommitTrx; } + public Map getErrorCodeMapping() { + return errorCodeMapping; + } + + private Map initErrorCodeMapping(String mapping) { + if (TStringUtil.isNotBlank(mapping)) { + try { + return JSON.parseObject(mapping, new TypeReference>() { + }, Feature.IgnoreAutoType); + } catch (Exception ignored) { + } + } + return new HashMap<>(); + } + + private boolean enableUseKeyForAllLocalIndex = + Boolean.valueOf(ConnectionParams.ENABLE_USE_KEY_FOR_ALL_LOCAL_INDEX.getDefault()); + + public boolean isEnableUseKeyForAllLocalIndex() { + return enableUseKeyForAllLocalIndex; + } + + // pruning warning threshold in microsecond + private volatile long pruningTimeWarningThreshold = 500; + + public long getPruningTimeWarningThreshold() { + return pruningTimeWarningThreshold; + } + + private volatile boolean enablePruningIn = true; + + private volatile boolean enablePruningInDml = true; + + public boolean isEnablePruningIn() { + return enablePruningIn; + } + + public boolean isEnablePruningInDml() { + return enablePruningInDml; + } + + private volatile List blackListConf = new ArrayList<>(); + + public List getBlacklistConf() { + return blackListConf; + } + public static T parseValue(String value, Class type, T defaultValue) { if (value == null) { return defaultValue; diff --git a/polardbx-common/src/main/java/com/alibaba/polardbx/common/utils/GeneralUtil.java b/polardbx-common/src/main/java/com/alibaba/polardbx/common/utils/GeneralUtil.java index b959ec015..39f122297 100644 --- a/polardbx-common/src/main/java/com/alibaba/polardbx/common/utils/GeneralUtil.java +++ b/polardbx-common/src/main/java/com/alibaba/polardbx/common/utils/GeneralUtil.java @@ -40,6 +40,7 @@ import java.util.Collections; import java.util.List; import java.util.Map; +import java.util.concurrent.ThreadLocalRandom; import java.util.function.Supplier; public class GeneralUtil { @@ -583,4 +584,16 @@ public static String removeIdxSuffix(String source) { return source; } } + + /** + * return target length random string + */ + public static String randomString(int length) { + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < length; i++) { + char ch = (char) (ThreadLocalRandom.current().nextInt('x' - 'a') + 'a'); + sb.append(ch); + } + return sb.toString(); + } } diff --git a/polardbx-common/src/test/java/com/alibaba/polardbx/common/EngineTest.java b/polardbx-common/src/test/java/com/alibaba/polardbx/common/EngineTest.java new file mode 100644 index 000000000..5558bdfce --- /dev/null +++ b/polardbx-common/src/test/java/com/alibaba/polardbx/common/EngineTest.java @@ -0,0 +1,73 @@ +/* + * Copyright [2013-2021], Alibaba Group Holding Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.alibaba.polardbx.common; + +import junit.framework.TestCase; + +public class EngineTest extends TestCase { + + public void testOf() { + assertEquals(Engine.OSS, Engine.of("OSS")); + assertEquals(Engine.INNODB, Engine.of("")); + boolean catchException = false; + try { + Engine.of("NON_EXIST_ENGINE"); + } catch (Throwable t) { + catchException = true; + assertTrue(t.getMessage().equalsIgnoreCase("Unknown engine name:NON_EXIST_ENGINE")); + } + if (!catchException) { + throw new AssertionError("Engine.of() method should fail"); + } + } + + public void testHasCache() { + assertTrue(Engine.hasCache(Engine.OSS)); + assertTrue(Engine.hasCache(Engine.EXTERNAL_DISK)); + assertTrue(Engine.hasCache(Engine.NFS)); + assertTrue(Engine.hasCache(Engine.S3)); + assertTrue(Engine.hasCache(Engine.ABS)); + assertFalse(Engine.hasCache(Engine.INNODB)); + assertFalse(Engine.hasCache(null)); + } + + public void testIsFileStore() { + assertTrue(Engine.isFileStore(Engine.OSS)); + assertTrue(Engine.isFileStore(Engine.EXTERNAL_DISK)); + assertTrue(Engine.isFileStore(Engine.LOCAL_DISK)); + assertTrue(Engine.isFileStore(Engine.NFS)); + assertTrue(Engine.isFileStore(Engine.S3)); + assertTrue(Engine.isFileStore(Engine.ABS)); + assertFalse(Engine.isFileStore(Engine.INNODB)); + assertFalse(Engine.isFileStore((Engine) null)); + } + + public void testSupportColumnar() { + assertTrue(Engine.supportColumnar(Engine.OSS)); + assertTrue(Engine.supportColumnar(Engine.EXTERNAL_DISK)); + assertTrue(Engine.supportColumnar(Engine.LOCAL_DISK)); + assertTrue(Engine.supportColumnar(Engine.NFS)); + assertTrue(Engine.supportColumnar(Engine.S3)); + assertTrue(Engine.supportColumnar(Engine.ABS)); + assertFalse(Engine.supportColumnar(Engine.INNODB)); + assertFalse(Engine.supportColumnar((Engine) null)); + } + + public void testTestIsFileStore() { + assertTrue(Engine.isFileStore("OSS")); + } +} \ No newline at end of file diff --git a/polardbx-common/src/test/java/com/alibaba/polardbx/common/jdbc/PruneRawStringTest.java b/polardbx-common/src/test/java/com/alibaba/polardbx/common/jdbc/PruneRawStringTest.java new file mode 100644 index 000000000..31b364db3 --- /dev/null +++ b/polardbx-common/src/test/java/com/alibaba/polardbx/common/jdbc/PruneRawStringTest.java @@ -0,0 +1,59 @@ +package com.alibaba.polardbx.common.jdbc; + +import com.google.common.collect.ImmutableList; +import org.junit.Test; + +import java.util.stream.IntStream; + +/** + * @author fangwu + */ +public class PruneRawStringTest { + + @Test + public void testGetObj() { + PruneRawString pruneRawString = new PruneRawString(ImmutableList.copyOf(IntStream.range(0, 1000).iterator()), + PruneRawString.PRUNE_MODE.RANGE, 0, 1000, null); + assert pruneRawString.display().contains("NonPruneRaw"); + try { + pruneRawString.getObj(1000, -1); + } catch (Exception e) { + System.out.println(e.getMessage()); + assert e.getMessage().contains("PruneRawString error array index out of bounds"); + } + + pruneRawString = new PruneRawString(ImmutableList.copyOf(IntStream.range(0, 1000).iterator()), + PruneRawString.PRUNE_MODE.RANGE, 0, 999, null); + assert !pruneRawString.display().contains("NonPruneRaw"); + + pruneRawString = new PruneRawString(ImmutableList.copyOf(IntStream.range(0, 4096).iterator()), + PruneRawString.PRUNE_MODE.RANGE, 0, 4096, null); + assert pruneRawString.display().contains("NonPruneRaw"); + assert pruneRawString.display().endsWith("..."); + } + + @Test + public void testMerge() { + PruneRawString pruneRawString = new PruneRawString(ImmutableList.copyOf(IntStream.range(0, 1000).iterator()), + PruneRawString.PRUNE_MODE.RANGE, 0, 300, null); + PruneRawString pruneRawString2 = new PruneRawString(ImmutableList.copyOf(IntStream.range(0, 1000).iterator()), + PruneRawString.PRUNE_MODE.RANGE, 100, 500, null); + pruneRawString.merge(pruneRawString2); + + assert pruneRawString.pruneMode == PruneRawString.PRUNE_MODE.MULTI_INDEX; + assert pruneRawString2.pruneMode == PruneRawString.PRUNE_MODE.MULTI_INDEX; + assert pruneRawString.size() == 500; + PruneRawString pruneRawString3 = new PruneRawString(ImmutableList.copyOf(IntStream.range(0, 1000).iterator()), + PruneRawString.PRUNE_MODE.RANGE, 500, 1000, null); + pruneRawString.merge(pruneRawString3); + assert pruneRawString.pruneMode == PruneRawString.PRUNE_MODE.RANGE; + assert pruneRawString3.pruneMode == PruneRawString.PRUNE_MODE.MULTI_INDEX; + + PruneRawString pruneRawString4 = new PruneRawString(ImmutableList.copyOf(IntStream.range(0, 1000).iterator()), + PruneRawString.PRUNE_MODE.RANGE, 0, 1000, null); + pruneRawString4.merge(pruneRawString); + + assert pruneRawString4.pruneMode == PruneRawString.PRUNE_MODE.RANGE; + assert pruneRawString.pruneMode == PruneRawString.PRUNE_MODE.RANGE; + } +} diff --git a/polardbx-common/src/test/java/com/alibaba/polardbx/common/jdbc/RawStringTest.java b/polardbx-common/src/test/java/com/alibaba/polardbx/common/jdbc/RawStringTest.java index b0a01d23d..ac8323fdb 100644 --- a/polardbx-common/src/test/java/com/alibaba/polardbx/common/jdbc/RawStringTest.java +++ b/polardbx-common/src/test/java/com/alibaba/polardbx/common/jdbc/RawStringTest.java @@ -17,12 +17,14 @@ package com.alibaba.polardbx.common.jdbc; import com.alibaba.polardbx.common.utils.Assert; +import com.google.common.collect.ImmutableList; import com.google.common.collect.Lists; import junit.framework.TestCase; import org.junit.Test; import java.util.BitSet; import java.util.List; +import java.util.stream.IntStream; /** * @author fangwu @@ -114,4 +116,15 @@ public void testPruneRawStringWithTypeConvert() { RawString newPr = pr.convertType(o -> o, -1); Assert.assertTrue("3,'s\\n'".equals(newPr.buildRawString())); } + + @Test + public void testPruneStep() { + RawString rawString = new RawString(ImmutableList.copyOf(IntStream.range(0, 1000).iterator())); + + for (int i = 0; i < 1000; i++) { + PruneRawString pruneRawString = rawString.pruneStep(i); + assert pruneRawString.size() == 1; + assert pruneRawString.getObj(0, -1) == rawString.getObj(i, -1); + } + } } \ No newline at end of file diff --git a/polardbx-common/src/test/java/com/alibaba/polardbx/common/jdbc/TableNameTest.java b/polardbx-common/src/test/java/com/alibaba/polardbx/common/jdbc/TableNameTest.java new file mode 100644 index 000000000..a9d95936a --- /dev/null +++ b/polardbx-common/src/test/java/com/alibaba/polardbx/common/jdbc/TableNameTest.java @@ -0,0 +1,72 @@ +package com.alibaba.polardbx.common.jdbc; + +import com.alibaba.polardbx.common.utils.Assert; +import org.junit.Test; + +import java.sql.SQLException; + +public class TableNameTest { + + @Test + public void testTableName() throws SQLException { + try { + TableName tableName = new TableName("t1"); + } catch (SQLException e) { + throw e; + } + } + + @Test + public void testTableNameWithBlank() throws SQLException { + try { + TableName tableName = new TableName("t1 t2"); + } catch (SQLException e) { + throw e; + } + } + + @Test + public void testTableNameErr() throws SQLException { + try { + TableName tableName = new TableName("t'1"); + } catch (SQLException e) { + Assert.assertTrue(e.getMessage().contains("tableName format error")); + } + } + + @Test + public void testTableNameErr2() throws SQLException { + try { + TableName tableName = new TableName("t\"1"); + } catch (SQLException e) { + Assert.assertTrue(e.getMessage().contains("tableName format error")); + } + } + + @Test + public void testTableNameErr3() throws SQLException { + try { + TableName tableName = new TableName("t\\1"); + } catch (SQLException e) { + Assert.assertTrue(e.getMessage().contains("tableName format error")); + } + } + + @Test + public void testTableNameErr4() throws SQLException { + try { + TableName tableName = new TableName("t\n1"); + } catch (SQLException e) { + Assert.assertTrue(e.getMessage().contains("tableName format error")); + } + } + + @Test + public void testTableNameErr5() throws SQLException { + try { + TableName tableName = new TableName(""); + } catch (SQLException e) { + Assert.assertTrue(e.getMessage().contains("tableName should not be empty")); + } + } +} diff --git a/polardbx-common/src/test/java/com/alibaba/polardbx/common/oss/filesystem/InputStreamWithRateLimiterTest.java b/polardbx-common/src/test/java/com/alibaba/polardbx/common/oss/filesystem/InputStreamWithRateLimiterTest.java new file mode 100644 index 000000000..9e32e65a1 --- /dev/null +++ b/polardbx-common/src/test/java/com/alibaba/polardbx/common/oss/filesystem/InputStreamWithRateLimiterTest.java @@ -0,0 +1,189 @@ +/* + * Copyright [2013-2021], Alibaba Group Holding Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.alibaba.polardbx.common.oss.filesystem; + +import com.alibaba.polardbx.common.mock.MockUtils; +import org.apache.hadoop.fs.PositionedReadable; +import org.apache.hadoop.fs.Seekable; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mockito; +import org.mockito.junit.MockitoJUnitRunner; + +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.InputStream; + +@RunWith(MockitoJUnitRunner.class) +public class InputStreamWithRateLimiterTest { + + private FileSystemRateLimiter rateLimiter; + private InputStreamWithRateLimiter inputStreamWithRateLimiter; + private InputStream inputStream; + + @Before + public void setUp() { + rateLimiter = Mockito.mock(FileSystemRateLimiter.class); + inputStream = Mockito.mock(SeekableByteArrayInputStream.class); + inputStreamWithRateLimiter = new InputStreamWithRateLimiter(inputStream, rateLimiter); + } + + @Test + public void testNewStream() { + MockUtils.assertThrows( + IllegalArgumentException.class, + "In is not an instance of Seekable or PositionedReadable", + () -> { + new InputStreamWithRateLimiter(new ByteArrayInputStream(new byte[0]), rateLimiter); + } + ); + } + + @Test + public void testRead() throws IOException { + // Arrange + Mockito.when(inputStream.read()).thenReturn(1); + Mockito.when(inputStream.read(Mockito.any(byte[].class), Mockito.anyInt(), Mockito.anyInt())) + .thenReturn(2); + Mockito.when(inputStream.read(Mockito.any(byte[].class))).thenReturn(3); + Mockito.when( + ((PositionedReadable) inputStream).read(Mockito.anyLong(), Mockito.any(byte[].class), Mockito.anyInt(), + Mockito.anyInt())).thenReturn(4); + + int byteRead = inputStreamWithRateLimiter.read(); + Assert.assertEquals(1, byteRead); + Mockito.verify(rateLimiter).acquireRead(1); + Mockito.verify(inputStream).read(); + + byte[] buf = new byte[3]; + byte[] buf2 = new byte[6]; + byteRead = inputStreamWithRateLimiter.read(buf, 0, 2); + Assert.assertEquals(2, byteRead); + Mockito.verify(rateLimiter).acquireRead(2); + Mockito.verify(inputStream).read(buf, 0, 2); + + byteRead = inputStreamWithRateLimiter.read(buf); + Assert.assertEquals(3, byteRead); + Mockito.verify(rateLimiter).acquireRead(3); + Mockito.verify(inputStream).read(buf); + + byteRead = inputStreamWithRateLimiter.read(0, buf2, 0, 4); + Assert.assertEquals(4, byteRead); + Mockito.verify(rateLimiter).acquireRead(4); + Mockito.verify((PositionedReadable) inputStream).read(0, buf2, 0, 4); + + inputStreamWithRateLimiter.readFully(0, buf2, 0, 5); + Mockito.verify(rateLimiter).acquireRead(5); + Mockito.verify((PositionedReadable) inputStream).readFully(0, buf2, 0, 5); + + inputStreamWithRateLimiter.readFully(0, buf2); + Mockito.verify(rateLimiter).acquireRead(6); + Mockito.verify((PositionedReadable) inputStream).readFully(0, buf2); + } + + @Test + public void testForwardingMethods() throws IOException { + inputStreamWithRateLimiter.seek(1); + Mockito.verify(((Seekable) inputStream)).seek(1); + inputStreamWithRateLimiter.seekToNewSource(1); + Mockito.verify(((Seekable) inputStream)).seekToNewSource(1); + inputStreamWithRateLimiter.getPos(); + Mockito.verify(((Seekable) inputStream)).getPos(); + + inputStreamWithRateLimiter.skip(1); + Mockito.verify(inputStream).skip(1); + + inputStreamWithRateLimiter.available(); + Mockito.verify(inputStream).available(); + + inputStreamWithRateLimiter.mark(1); + Mockito.verify(inputStream).mark(1); + + inputStreamWithRateLimiter.reset(); + Mockito.verify(inputStream).reset(); + + inputStreamWithRateLimiter.markSupported(); + Mockito.verify(inputStream).markSupported(); + + inputStreamWithRateLimiter.close(); + Mockito.verify(inputStream).close(); + } + + @Test + public void testReadWhenRateLimiterThrowsIOException() throws IOException { + // Arrange + Mockito.doThrow(new IOException("Rate limit exceeded")).when(rateLimiter).acquireRead(1); + + // Act & Assert + MockUtils.assertThrows(IOException.class, "Rate limit exceeded", () -> inputStreamWithRateLimiter.read()); + + Mockito.verify(rateLimiter).acquireRead(1); + Mockito.verify(inputStream, Mockito.never()).read(); + } + + public class SeekableByteArrayInputStream extends ByteArrayInputStream implements Seekable, PositionedReadable { + + public SeekableByteArrayInputStream(byte[] buf) { + super(buf); + } + + @Override + public void seek(long pos) throws IOException { + if (pos < 0 || pos > count) { + throw new IOException("Position out of bounds"); + } + this.pos = (int) pos; + } + + @Override + public long getPos() throws IOException { + return pos; + } + + @Override + public boolean seekToNewSource(long targetPos) throws IOException { + return false; + } + + @Override + public int read(long position, byte[] buffer, int offset, int length) throws IOException { + if (position >= count) { + return -1; + } + if (position + length > count) { + length = count - (int) position; + } + System.arraycopy(buf, (int) position, buffer, offset, length); + return length; + } + + @Override + public void readFully(long position, byte[] buffer, int offset, int length) throws IOException { + int nread = read(position, buffer, offset, length); + if (nread < length) { + throw new IOException("Reached end of stream"); + } + } + + @Override + public void readFully(long position, byte[] buffer) throws IOException { + readFully(position, buffer, 0, buffer.length); + } + } +} \ No newline at end of file diff --git a/polardbx-common/src/test/java/com/alibaba/polardbx/common/oss/filesystem/OutputStreamWithRateLimiterTest.java b/polardbx-common/src/test/java/com/alibaba/polardbx/common/oss/filesystem/OutputStreamWithRateLimiterTest.java new file mode 100644 index 000000000..5f77eb863 --- /dev/null +++ b/polardbx-common/src/test/java/com/alibaba/polardbx/common/oss/filesystem/OutputStreamWithRateLimiterTest.java @@ -0,0 +1,78 @@ +/* + * Copyright [2013-2021], Alibaba Group Holding Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.alibaba.polardbx.common.oss.filesystem; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mockito; +import org.mockito.junit.MockitoJUnitRunner; + +import java.io.IOException; +import java.io.OutputStream; + +@RunWith(MockitoJUnitRunner.class) +public class OutputStreamWithRateLimiterTest { + private OutputStream mockOutputStream; + private FileSystemRateLimiter mockRateLimiter; + private OutputStreamWithRateLimiter outputStreamWithRateLimiter; + + @Before + public void setUp() { + mockOutputStream = Mockito.mock(OutputStream.class); + mockRateLimiter = Mockito.mock(FileSystemRateLimiter.class); + outputStreamWithRateLimiter = new OutputStreamWithRateLimiter(mockOutputStream, mockRateLimiter); + } + + @Test + public void testWriteArray() throws IOException { + byte[] b = new byte[] {1, 2, 3, 4}; + outputStreamWithRateLimiter.write(b); + Mockito.verify(mockRateLimiter).acquireWrite(b.length); + Mockito.verify(mockOutputStream).write(b); + } + + @Test + public void testWriteArrayWithOffsetAndLength() throws IOException { + byte[] b = new byte[] {1, 2, 3, 4, 5, 6}; + int off = 2; + int len = 4; + outputStreamWithRateLimiter.write(b, off, len); + Mockito.verify(mockRateLimiter).acquireWrite(len); + Mockito.verify(mockOutputStream).write(b, off, len); + } + + @Test + public void testFlush() throws IOException { + outputStreamWithRateLimiter.flush(); + Mockito.verify(mockOutputStream).flush(); + } + + @Test + public void testClose() throws IOException { + outputStreamWithRateLimiter.close(); + Mockito.verify(mockOutputStream).close(); + } + + @Test + public void testWriteInt() throws IOException { + byte b = 1; + outputStreamWithRateLimiter.write(b); + Mockito.verify(mockRateLimiter).acquireWrite(1); + Mockito.verify(mockOutputStream).write(b); + } +} \ No newline at end of file diff --git a/polardbx-common/src/test/java/com/alibaba/polardbx/common/properties/DynamicConfigTest.java b/polardbx-common/src/test/java/com/alibaba/polardbx/common/properties/DynamicConfigTest.java index 7435424cd..09535f19b 100644 --- a/polardbx-common/src/test/java/com/alibaba/polardbx/common/properties/DynamicConfigTest.java +++ b/polardbx-common/src/test/java/com/alibaba/polardbx/common/properties/DynamicConfigTest.java @@ -1,15 +1,33 @@ package com.alibaba.polardbx.common.properties; +import com.alibaba.polardbx.common.TddlConstants; +import com.alibaba.polardbx.common.constants.ServerVariables; import org.junit.Test; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + /** * @author fangwu */ public class DynamicConfigTest { @Test public void testLoadInDegradationNum() { - assert DynamicConfig.getInstance().getInDegradationNum() == 100L; + assertTrue(DynamicConfig.getInstance().getInDegradationNum() == 100L); DynamicConfig.getInstance().loadValue(null, ConnectionProperties.STATISTIC_IN_DEGRADATION_NUMBER, "1357"); - assert DynamicConfig.getInstance().getInDegradationNum() == 1357L; + assertTrue(DynamicConfig.getInstance().getInDegradationNum() == 1357L); + } + + @Test + public void testBlackListConf() { + assertTrue(DynamicConfig.getInstance().getBlacklistConf().size() == 0); + DynamicConfig.getInstance().loadValue(null, TddlConstants.BLACK_LIST_CONF, ""); + assertTrue(DynamicConfig.getInstance().getBlacklistConf().size() == 0); + + DynamicConfig.getInstance().loadValue(null, TddlConstants.BLACK_LIST_CONF, "x1,y1"); + assertTrue(DynamicConfig.getInstance().getBlacklistConf().size() == 2); + assertTrue(ServerVariables.isGlobalBlackList("x1")); + assertTrue(ServerVariables.isGlobalBlackList("y1")); + assertFalse(ServerVariables.isGlobalBlackList("y1,x1")); } } diff --git a/polardbx-common/src/test/java/com/alibaba/polardbx/common/utils/hash/Murmur3_128MethodTest.java b/polardbx-common/src/test/java/com/alibaba/polardbx/common/utils/hash/Murmur3_128MethodTest.java index a7916d275..39f11d362 100644 --- a/polardbx-common/src/test/java/com/alibaba/polardbx/common/utils/hash/Murmur3_128MethodTest.java +++ b/polardbx-common/src/test/java/com/alibaba/polardbx/common/utils/hash/Murmur3_128MethodTest.java @@ -163,7 +163,7 @@ public void testAllWithMurmurHashUtils() { private void equalWithGuavaHash(long data) { long originResult = zeroSeedMurmur3hashFunc.hashLong(data).asLong(); - long curResult = MurmurHashUtils.murmurHashWithZeroSeed(data); + long curResult = MurmurHashUtils.murmurHash128WithZeroSeed(data); Assert.assertEquals(originResult, curResult); } } diff --git a/polardbx-executor/pom.xml b/polardbx-executor/pom.xml index f23692506..c704e309f 100644 --- a/polardbx-executor/pom.xml +++ b/polardbx-executor/pom.xml @@ -14,10 +14,8 @@ 206 - 3.2.2 1.6.9 3.10.2 - 3.2.2 5.9.0 43.0 4.12 diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/atom/CacheVariables.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/atom/CacheVariables.java index 241566080..3bd60f737 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/atom/CacheVariables.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/atom/CacheVariables.java @@ -12,7 +12,7 @@ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. -*/ + */ package com.alibaba.polardbx.atom; diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/InsertSplitter.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/InsertSplitter.java index b91747d67..3f8c53fb2 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/InsertSplitter.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/InsertSplitter.java @@ -168,6 +168,9 @@ private ResultCursor executeSplit(ByteString sql, ExecutionContext executionCont executionContext.getConnection().setLastInsertId(lastInsertId); executionContext.getConnection().setReturnedLastInsertId(returnedLastInsertId); + //insert split没有走参数化,所以要在这添加MultiLine的判断 + sql.setMultiLine(lexer.getLine() > 1); + AffectRowCursor arc = new AffectRowCursor(affectRows); return new ResultCursor(arc); } diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/archive/writer/OSSBackFillExtractor.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/archive/writer/OSSBackFillExtractor.java index 7c28bc021..03d633b03 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/archive/writer/OSSBackFillExtractor.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/archive/writer/OSSBackFillExtractor.java @@ -136,6 +136,7 @@ private Cursor doExtract(PhyTableOperation extractPlan, ExecutionContext extract case LOCAL_DISK: case EXTERNAL_DISK: case NFS: + case ABS: RelNode fileStorePlan = OSSTableScan.fromPhysicalTableOperation(extractPlan, extractEc, this.sourceTableName, 1); @@ -155,6 +156,7 @@ private List> doConsume(PhyTableOperation extract case OSS: case EXTERNAL_DISK: case NFS: + case ABS: return consumeFileStore(extractPlan, extractEc, batchConsumer, extractCursor); case INNODB: default: @@ -242,6 +244,7 @@ protected List splitAndInitUpperBound(f case LOCAL_DISK: case EXTERNAL_DISK: case NFS: + case ABS: plan = OSSTableScan.fromPhysicalTableOperation(phyTableOperation, baseEc, this.sourceTableName, 1); break; case INNODB: diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/archive/writer/OSSBackFillLoader.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/archive/writer/OSSBackFillLoader.java index 0a2000b1c..0e92570b7 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/archive/writer/OSSBackFillLoader.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/archive/writer/OSSBackFillLoader.java @@ -58,7 +58,7 @@ protected OSSBackFillLoader(String schemaName, String tableName, SqlInsert inser BiFunction, ExecutionContext, List> executeFunc, Map sourceTargetGroupMap, String designateLogicalPart) { super(schemaName, tableName, insert, insertIgnore, checkerPlan, checkerPkMapping, checkerParamMapping, - executeFunc, false); + executeFunc, false, null); this.sourceTargetGroupMap = sourceTargetGroupMap; this.designateLogicalPart = designateLogicalPart; } @@ -167,6 +167,6 @@ public int executeInsert(SqlInsert sqlInsert, String schemaName, String tableNam .insertIntoTable(null, sqlInsert, tableMeta, targetGroup, phyTableName, schemaName, executionContext, executeFunc, false, - false, this.designateLogicalPart); + false, this.designateLogicalPart, false, null); } } diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/backfill/Loader.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/backfill/Loader.java index 560704ed0..e853499bb 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/backfill/Loader.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/backfill/Loader.java @@ -21,10 +21,12 @@ import com.alibaba.polardbx.common.exception.code.ErrorCode; import com.alibaba.polardbx.common.jdbc.ParameterContext; import com.alibaba.polardbx.common.jdbc.Parameters; +import com.alibaba.polardbx.common.properties.ConnectionParams; import com.alibaba.polardbx.common.utils.GeneralUtil; import com.alibaba.polardbx.common.utils.Pair; import com.alibaba.polardbx.executor.ExecutorHelper; import com.alibaba.polardbx.executor.common.ExecutorContext; +import com.alibaba.polardbx.executor.common.TopologyHandler; import com.alibaba.polardbx.executor.cursor.Cursor; import com.alibaba.polardbx.executor.gsi.GsiUtils; import com.alibaba.polardbx.executor.spi.ITransactionManager; @@ -35,16 +37,20 @@ import org.apache.calcite.rel.RelNode; import org.apache.calcite.sql.SqlInsert; +import java.sql.Connection; import java.text.MessageFormat; import java.util.ArrayList; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Optional; +import java.util.Set; import java.util.function.BiFunction; import java.util.function.Supplier; import static com.alibaba.polardbx.common.exception.code.ErrorCode.ER_DUP_ENTRY; +import static com.alibaba.polardbx.executor.columns.ColumnBackfillExecutor.isAllDnUseXDataSource; import static com.alibaba.polardbx.executor.gsi.GsiUtils.SQLSTATE_DUP_ENTRY; /** @@ -71,12 +77,16 @@ public abstract class Loader extends PhyOperationBuilderCommon { private final int[] checkerPkMapping; private final ITransactionManager tm; protected final boolean mirrorCopy; + protected final String backfillReturning; + protected boolean conflictDetection; + protected final boolean usingBackfillReturning; protected final BiFunction, ExecutionContext, List> executeFunc; protected Loader(String schemaName, String tableName, SqlInsert insert, SqlInsert insertIgnore, ExecutionPlan checkerPlan, int[] checkerPkMapping, int[] checkerParamMapping, - BiFunction, ExecutionContext, List> executeFunc, boolean mirrorCopy) { + BiFunction, ExecutionContext, List> executeFunc, + boolean mirrorCopy, String backfillReturning) { this.schemaName = schemaName; this.tableName = tableName; this.sqlInsert = insert; @@ -87,6 +97,9 @@ protected Loader(String schemaName, String tableName, SqlInsert insert, SqlInser this.executeFunc = executeFunc; this.tm = ExecutorContext.getContext(schemaName).getTransactionManager(); this.mirrorCopy = mirrorCopy; + this.backfillReturning = backfillReturning; + this.conflictDetection = !mirrorCopy; + this.usingBackfillReturning = backfillReturning != null && conflictDetection; } /** @@ -95,6 +108,48 @@ protected Loader(String schemaName, String tableName, SqlInsert insert, SqlInser public int fillIntoIndex(List> batchParams, Pair> baseEcAndIndexPair, Supplier checker) { + if (usingBackfillReturning) { + return fillIntoIndexWithReturning(batchParams, baseEcAndIndexPair, checker); + } else { + return fillIntoIndexWithInsert(batchParams, baseEcAndIndexPair, checker); + } + } + + public int fillIntoIndexWithReturning(List> batchParams, + Pair> baseEcAndIndexPair, + Supplier checker) { + if (batchParams.isEmpty()) { + return 0; + } + + baseEcAndIndexPair.getKey().setTxIsolation(Connection.TRANSACTION_READ_COMMITTED); + + return GsiUtils.wrapWithDistributedXATrx(tm, baseEcAndIndexPair.getKey(), (insertEc) -> { + int result = 0; + try { + // Batch insert + result = applyBatchWithReturning(batchParams, insertEc.copy(), baseEcAndIndexPair.getValue().getKey(), + baseEcAndIndexPair.getValue().getValue()); + + // Batch insert success, check lock exists + return checkBeforeCommit(checker, insertEc, result); + } catch (TddlNestableRuntimeException e) { + // Batch insert failed + SQLRecorderLogger.ddlLogger + .warn(MessageFormat.format( + "[{0}] Batch insert(returning) failed first row: {1} cause: {2}, phyTableName: {3}", + baseEcAndIndexPair.getKey().getTraceId(), + GsiUtils.rowToString(batchParams.get(0)), + e.getMessage(), baseEcAndIndexPair.getValue().getValue())); + + throw e; + } + }); + } + + public int fillIntoIndexWithInsert(List> batchParams, + Pair> baseEcAndIndexPair, + Supplier checker) { if (batchParams.isEmpty()) { return 0; } @@ -139,7 +194,7 @@ public int fillIntoIndex(List> batchParams, for (Map param : batchParams) { int single = applyRow(param, insertEc.copy(), baseEcAndIndexPair.getValue().getKey(), - baseEcAndIndexPair.getValue().getValue(), true); + baseEcAndIndexPair.getValue().getValue()); if (single < 1) { // Compare row @@ -240,7 +295,27 @@ private int applyBatch(List> batchParams, Executi newEc.setParams(parameters); - return executeInsert(sqlInsert, schemaName, tableName, newEc, sourceDbIndex, phyTableName); + SqlInsert insert = conflictDetection ? sqlInsert : sqlInsertIgnore; + + return executeInsert(insert, schemaName, tableName, newEc, sourceDbIndex, phyTableName); + } + + private int applyBatchWithReturning(List> batchParams, ExecutionContext newEc, + String sourceDbIndex, String phyTableName) { + // Construct params for each batch + String orgBackfillReturning = newEc.getBackfillReturning(); + try { + Parameters parameters = new Parameters(); + parameters.setBatchParams(batchParams); + + newEc.setParams(parameters); + + newEc.setBackfillReturning(backfillReturning); + + return executeInsert(sqlInsertIgnore, schemaName, tableName, newEc, sourceDbIndex, phyTableName); + } finally { + newEc.setBackfillReturning(orgBackfillReturning); + } } /** @@ -249,21 +324,54 @@ private int applyBatch(List> batchParams, Executi * @param param Parameter * @param newEc Copied ExecutionContext * @param sourceDbIndex the rows extract from which physicalDb - * @param ignore Use insert ignore * @return Affected rows */ private int applyRow(Map param, ExecutionContext newEc, String sourceDbIndex, - String phyTableName, - boolean ignore) { + String phyTableName) { Parameters parameters = new Parameters(); parameters.setParams(param); newEc.setParams(parameters); - return executeInsert(ignore ? sqlInsertIgnore : sqlInsert, schemaName, tableName, newEc, sourceDbIndex, - phyTableName); + return executeInsert(sqlInsertIgnore, schemaName, tableName, newEc, sourceDbIndex, phyTableName); } public abstract int executeInsert(SqlInsert sqlInsert, String schemaName, String tableName, ExecutionContext executionContext, String sourceDbIndex, String phyTableName); + + public static boolean canUseBackfillReturning(ExecutionContext ec, String schemaName) { + final ExecutorContext executorContext = ExecutorContext.getContext(schemaName); + final TopologyHandler topologyHandler = executorContext.getTopologyHandler(); + final boolean allDnUseXDataSource = isAllDnUseXDataSource(topologyHandler); + + return executorContext.getStorageInfoManager().supportsBackfillReturning() + && ec.getParamManager() + .getBoolean(ConnectionParams.BACKFILL_USE_RETURNING) && allDnUseXDataSource; + } + + public static int getReturningAffectRows(List> returningResult, + ExecutionContext newEc) { + List> orgParams = newEc.getParams().getBatchParameters(); + + if (returningResult.isEmpty()) { + return orgParams.size(); + } + + // 判断 + for (Map baseParam : returningResult) { + final List pkParams = new ArrayList<>(); + + for (int i = 0; i < baseParam.size(); i++) { + final ParameterContext pkParam = baseParam.get(i + 1); + pkParams.add( + Optional.ofNullable(pkParam.getArgs()[1]).map(e -> e.toString().toLowerCase()).orElse("NULL")); + } + + throw new TddlRuntimeException(ErrorCode.ERR_GLOBAL_SECONDARY_INDEX_BACKFILL_DUPLICATE_ENTRY, + String.join("-", pkParams), + "PRIMARY"); + } + + return orgParams.size(); + } } diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/balancer/policy/PolicyUtils.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/balancer/policy/PolicyUtils.java index 323b78af8..aa9621be7 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/balancer/policy/PolicyUtils.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/balancer/policy/PolicyUtils.java @@ -16,6 +16,8 @@ package com.alibaba.polardbx.executor.balancer.policy; +import com.alibaba.polardbx.common.exception.TddlRuntimeException; +import com.alibaba.polardbx.common.exception.code.ErrorCode; import com.alibaba.polardbx.common.utils.GeneralUtil; import com.alibaba.polardbx.gms.locality.LocalityDetailInfoRecord; import com.alibaba.polardbx.gms.metadb.MetaDbDataSource; @@ -31,14 +33,16 @@ import com.alibaba.polardbx.optimizer.OptimizerContext; import com.alibaba.polardbx.optimizer.OptimizerContext; import com.alibaba.polardbx.optimizer.locality.LocalityManager; +import com.alibaba.polardbx.optimizer.partition.PartitionByDefinition; import com.alibaba.polardbx.optimizer.partition.PartitionInfoManager; -import com.alibaba.polardbx.optimizer.partition.PartitionInfoManager; +import com.alibaba.polardbx.optimizer.partition.PartitionSpec; import java.sql.Connection; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import java.util.Map; +import java.util.Optional; import java.util.stream.Collectors; /** @@ -140,12 +144,34 @@ public static List getLocalityDetails(String schema, S TableGroupConfig tableGroupConfig = TableGroupUtils.getTableGroupInfoByGroupName(schema, tableGroup); List localityDetailInfoRecords = new ArrayList<>(); int rowNum = 0; - PartitionGroupRecord partitionGroupRecord = tableGroupConfig.getPartitionGroupByName(partitionGroup); - String locality = (partitionGroupRecord == null)?"":partitionGroupRecord.getLocality(); + String originalLocality = ""; + PartitionSpec partitionSpec = null; + if (tableGroupConfig.getTables().size() > 0) { + String tableName = tableGroupConfig.getTables().get(0); + PartitionByDefinition subPartitionByDefinition = + OptimizerContext.getContext(schema).getPartitionInfoManager().getPartitionInfo(tableName) + .getPartitionBy().getSubPartitionBy(); + if (subPartitionByDefinition != null) { + throw new TddlRuntimeException(ErrorCode.ERR_INVALID_DDL_PARAMS, + String.format( + "invalid alter locality operation on partition! we don't support alter table group [%s] locality with secondary partition", + tableGroup)); + } + partitionSpec = + OptimizerContext.getContext(schema).getPartitionInfoManager().getPartitionInfo(tableName) + .getPartitionBy().getPartitionByPartName(partitionGroup); + } else { + throw new TddlRuntimeException(ErrorCode.ERR_INVALID_DDL_PARAMS, + String.format( + "invalid alter locality operation on partition! table group [%s] contains no table", + tableGroup)); + } + String locality = Optional.ofNullable(partitionSpec.getLocality()).orElse(""); localityDetailInfoRecords.add(new LocalityDetailInfoRecord(rowNum++, LocalityDetailInfoRecord.LOCALITY_TYPE_PARTITIONGROUP, - partitionGroupRecord.id, - partitionGroupRecord.partition_name, + // If with secondary partition, we must change it ourselvers. + tableGroupConfig.getPartitionGroupByName(partitionGroup).id, + partitionSpec.getName(), locality)); return localityDetailInfoRecords; } catch (SQLException e) { diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/chunk/EnumBlock.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/chunk/EnumBlock.java index 5233f431f..9f680990a 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/chunk/EnumBlock.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/chunk/EnumBlock.java @@ -144,7 +144,7 @@ public long hashCodeUseXxhash(int pos) { String val = getString(pos); Integer index = enumValues.get(val); if (index == null) { - return NULL_HASH_CODE; + return XxhashUtils.finalShuffle(0); } else { return XxhashUtils.finalShuffle(index); } diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/columns/ColumnBackfillExecutor.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/columns/ColumnBackfillExecutor.java index 45d442b5c..b2e9f4511 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/columns/ColumnBackfillExecutor.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/columns/ColumnBackfillExecutor.java @@ -435,7 +435,7 @@ public Map> getSourcePhyTables() { /** * Check whether all dn using XProtocol */ - private static boolean isAllDnUseXDataSource(TopologyHandler topologyHandler) { + public static boolean isAllDnUseXDataSource(TopologyHandler topologyHandler) { return topologyHandler.getGroupNames().stream() .allMatch(groupName -> Optional.ofNullable(topologyHandler.get(groupName)) .map((Function) IGroupExecutor::getDataSource) diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/common/StorageInfoManager.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/common/StorageInfoManager.java index 894ef9990..67c21f133 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/common/StorageInfoManager.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/common/StorageInfoManager.java @@ -76,6 +76,7 @@ public class StorageInfoManager extends AbstractLifecycle { private volatile boolean supportOpenSSL; private volatile boolean supportSharedReadView; private volatile boolean supportsReturning; + private volatile boolean supportsBackfillReturning; private volatile boolean supportsAlterType; private boolean readOnly; private boolean lowerCaseTableNames; @@ -124,6 +125,7 @@ public StorageInfoManager(TopologyHandler topologyHandler) { supportXA = false; supportsBloomFilter = false; supportsReturning = false; + supportsBackfillReturning = false; Preconditions.checkNotNull(topologyHandler); this.topologyHandler = topologyHandler; @@ -316,6 +318,45 @@ public static boolean checkSupportReturning(DataSource dataSource) { } } + public static boolean checkSupportBackfillReturning(DataSource dataSource) { + if (!ConfigDataMode.isPolarDbX() || XConfig.GALAXY_X_PROTOCOL) { + return false; + } + try (Connection conn = dataSource.getConnection(); + Statement stmt = conn.createStatement(); + ResultSet rs = stmt.executeQuery("call dbms_admin.show_native_procedure()")) { + boolean supportReturning = false; + while (rs.next()) { + final String schemaName = rs.getString(1); + final String procName = rs.getString(2); + supportReturning |= "dbms_trans".equalsIgnoreCase(schemaName) && "backfill".equalsIgnoreCase(procName); + if (supportReturning) { + break; + } + } + return supportReturning; + } catch (SQLException ex) { + final boolean ER_SP_DOES_NOT_EXIST = + "42000".equalsIgnoreCase(ex.getSQLState()) && 1305 == ex.getErrorCode() && ex.getMessage() + .contains("does not exist"); + if (ER_SP_DOES_NOT_EXIST) { + logger.warn("PROCEDURE dbms_admin.show_native_procedure does not exist"); + return false; + } + + final boolean ER_PLUGGABLE_PROTOCOL_COMMAND_NOT_SUPPORTED = + "HY000".equalsIgnoreCase(ex.getSQLState()) && 3130 == ex.getErrorCode() && ex.getMessage() + .contains("Command not supported by pluggable protocols"); + if (ER_PLUGGABLE_PROTOCOL_COMMAND_NOT_SUPPORTED) { + logger.warn("Do not support call dbms_amdin procedures within XPotocol"); + return false; + } + + throw new TddlRuntimeException(ErrorCode.ERR_OTHER, ex, + "Failed to check returning support: " + ex.getMessage()); + } + } + public static boolean checkSupportAlterType(DataSource dataSource) { try (Connection conn = dataSource.getConnection(); Statement stmt = conn.createStatement(); @@ -502,6 +543,7 @@ protected void doInit() { boolean tmpSupportMdlDeadlockDetection = true; boolean tmpSupportsBloomFilter = true; boolean tmpSupportsReturning = true; + boolean tmpSupportsBackfillReturning = true; boolean tmpSupportsAlterType = true; boolean tmpLowerCaseTableNames = true; boolean tmpSupportOpenSSL = true; @@ -546,6 +588,7 @@ protected void doInit() { tmpSupportOpenSSL &= storageInfo.supportOpenSSL; tmpSupportHyperLogLog &= storageInfo.supportHyperLogLog; tmpSupportsReturning &= storageInfo.supportsReturning; + tmpSupportsBackfillReturning &= storageInfo.supportsBackfillReturning; tmpSupportsAlterType &= storageInfo.supportsAlterType; tmpLowerCaseTableNames &= enableLowerCaseTableNames(storageInfo); tmpSupportSharedReadView &= storageInfo.supportSharedReadView; @@ -567,6 +610,7 @@ protected void doInit() { this.supportXA = tmpSupportXA && !readOnly; this.supportsBloomFilter = tmpSupportsBloomFilter; this.supportsReturning = tmpSupportsReturning; + this.supportsBackfillReturning = tmpSupportsBackfillReturning; this.supportsAlterType = tmpSupportsAlterType; this.supportTso = tmpSupportTso && (metaDbUsesXProtocol() || tmpRDS80); this.supportTsoHeartbeat = tmpSupportTsoHeartbeat && metaDbUsesXProtocol(); @@ -640,6 +684,7 @@ protected void doDestroy() { supportXA = false; supportsBloomFilter = false; supportsReturning = false; + supportsBackfillReturning = false; } private StorageInfo initStorageInfo(Group group, IDataSource dataSource) { @@ -805,6 +850,14 @@ public boolean supportsReturning() { return supportsReturning; } + public boolean supportsBackfillReturning() { + if (!isInited()) { + init(); + } + + return supportsBackfillReturning; + } + public boolean supportsAlterType() { if (!isInited()) { init(); @@ -881,6 +934,7 @@ public static class StorageInfo { public final boolean supportLizard1PCTransaction; public final boolean supportsBloomFilter; public final boolean supportsReturning; + public final boolean supportsBackfillReturning; public final boolean supportsAlterType; public final int lowerCaseTableNames; public final boolean supportPerformanceSchema; @@ -909,6 +963,7 @@ public StorageInfo( boolean supportLizard1PCTransaction, boolean supportsBloomFilter, boolean supportsReturning, + boolean supportsBackfillReturning, boolean supportsAlterType, int lowerCaseTableNames, boolean supportPerformanceSchema, @@ -936,6 +991,7 @@ public StorageInfo( this.supportLizard1PCTransaction = supportLizard1PCTransaction; this.supportsBloomFilter = supportsBloomFilter; this.supportsReturning = supportsReturning; + this.supportsBackfillReturning = supportsBackfillReturning; this.supportsAlterType = supportsAlterType; this.lowerCaseTableNames = lowerCaseTableNames; this.supportPerformanceSchema = supportPerformanceSchema; @@ -969,6 +1025,7 @@ public static StorageInfo create(IDataSource dataSource) { false, false, false, + false, 1, false, false, @@ -998,6 +1055,7 @@ public static StorageInfo create(IDataSource dataSource) { Optional polarxUDFInfo = PolarxUDFInfo.build(dataSource); boolean supportsBloomFilter = polarxUDFInfo.map(PolarxUDFInfo::supportsBloomFilter).orElse(false); boolean supportsReturning = checkSupportReturning(dataSource); + boolean supportsBackfillReturning = checkSupportBackfillReturning(dataSource); boolean supportsAlterType = checkSupportAlterType(dataSource); boolean supportCtsTransaction = checkSupportCtsTransaction(dataSource); boolean supportAsyncCommit = checkSupportAsyncCommit(dataSource); @@ -1028,6 +1086,7 @@ public static StorageInfo create(IDataSource dataSource) { supportLizard1PCTransaction, supportsBloomFilter, supportsReturning, + supportsBackfillReturning, supportsAlterType, lowerCaseTableNames, supportPerformanceSchema, diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/common/TopologyHandler.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/common/TopologyHandler.java index 122f2ec06..667cdec86 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/common/TopologyHandler.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/common/TopologyHandler.java @@ -37,6 +37,7 @@ import com.alibaba.polardbx.gms.topology.DbGroupInfoAccessor; import com.alibaba.polardbx.gms.topology.DbGroupInfoManager; import com.alibaba.polardbx.gms.topology.DbGroupInfoRecord; +import com.alibaba.polardbx.gms.topology.DbTopologyManager; import com.alibaba.polardbx.gms.util.GroupInfoUtil; import com.alibaba.polardbx.group.config.Weight; import com.alibaba.polardbx.group.jdbc.TGroupDataSource; @@ -230,11 +231,13 @@ private void mergeMatrix(Matrix matrix) { } List grpListToClose = new ArrayList<>(); + List grpNameListToClose = new ArrayList<>(); for (Group oldGroup : oldGroups) { boolean found = newGrpNameSet.contains(oldGroup.getName().toUpperCase()); if (!found) { // 关闭老的group grpListToClose.add(oldGroup); + grpNameListToClose.add(oldGroup.getName()); } } for (Group oldGroup : oldScaleOutGroups) { @@ -242,6 +245,7 @@ private void mergeMatrix(Matrix matrix) { if (!found) { // 关闭老的scale out group grpListToClose.add(oldGroup); + grpNameListToClose.add(oldGroup.getName()); } } loadAllTransGroupList(); @@ -259,6 +263,8 @@ private void mergeMatrix(Matrix matrix) { logger.error(e); } } + DbTopologyManager.refreshGroupKeysIntoTopologyMapping(this.allTransGroupList, grpNameListToClose, + matrix.getSchemaName()); } } @@ -569,7 +575,6 @@ protected void loadAllTransGroupList() { LoggerInit.TDDL_DYNAMIC_CONFIG.info(logMsg); this.allTransGroupList = groupNames; - if (topologyChanger != null) { topologyChanger.onTopology(this); } diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/builder/gsi/CreateGlobalIndexBuilder.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/builder/gsi/CreateGlobalIndexBuilder.java index 19819aead..d871e6261 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/builder/gsi/CreateGlobalIndexBuilder.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/builder/gsi/CreateGlobalIndexBuilder.java @@ -1059,7 +1059,7 @@ protected SqlNode createClusteredIndexTable(SqlIdentifier indexTableName, // validate unsupported columnar columns if (isColumnar) { - SqlValidatorImpl.validateUnsupportedColumTypeWithCci( + SqlValidatorImpl.validateUnsupportedColumnTypeWithCci( indexTableStmt, indexTableStmt.getPrimaryKeyNames(), gsiPreparedData.getColumns().stream() .map(SqlIndexColumnName::getColumnNameStr) diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/factory/AlterTableGroupChangeSetJobFactory.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/factory/AlterTableGroupChangeSetJobFactory.java index 5fa0f60c9..5ca81fc57 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/factory/AlterTableGroupChangeSetJobFactory.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/factory/AlterTableGroupChangeSetJobFactory.java @@ -295,7 +295,8 @@ protected ExecutableDdlJob doCreate() { phyTb); CloneTableDataFileTask cloneTableDataFileTask = new CloneTableDataFileTask(schemaName, tableName, srcDbAndGroup, tarDbAndGroup, phyTb, - phyPartNames, sourceStorageId, sourceHostIpAndPort, targetHostsIpAndPort, batchSize); + phyPartNames, sourceStorageId, sourceHostIpAndPort, targetHostsIpAndPort, batchSize, + tableMeta.isEncryption()); cloneTableDataFileTask.setTaskId(ID_GENERATOR.nextId()); List importTableSpaceTasks = new ArrayList<>(); @@ -306,7 +307,8 @@ protected ExecutableDdlJob doCreate() { srcTarGroup, Pair.of(sourceStorageId, targetStorageId), storageInstAndUserInfos, batchSize, parallelism, minUpdateBatch, - waitLsn); + waitLsn, + tableMeta.isEncryption()); storageInstAndUserInfos.computeIfAbsent(sourceStorageId, key -> PhysicalBackfillUtils.getUserPasswd(sourceStorageId)); Pair userAndPasswd = storageInstAndUserInfos.computeIfAbsent(targetStorageId, diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/factory/AlterTableGroupMovePartitionJobFactory.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/factory/AlterTableGroupMovePartitionJobFactory.java index ef13f5460..8ebf0b1dd 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/factory/AlterTableGroupMovePartitionJobFactory.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/factory/AlterTableGroupMovePartitionJobFactory.java @@ -296,7 +296,7 @@ public void constructSubTasks(String schemaName, ExecutableDdlJob executableDdlJ } if (preparedData.isUsePhysicalBackfill()) { - for (List pipeLine : subTaskJobFactory.getPhysicalyTaskPipeLine()) { + for (List pipeLine : GeneralUtil.emptyIfNull(subTaskJobFactory.getPhysicalyTaskPipeLine())) { DdlTask parentLeaveNode; if (leavePipeLineQueue.size() < parallelism) { parentLeaveNode = syncLsnTask; diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/factory/AlterTableMovePartitionJobFactory.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/factory/AlterTableMovePartitionJobFactory.java index abc7acb7f..2d34988cc 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/factory/AlterTableMovePartitionJobFactory.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/factory/AlterTableMovePartitionJobFactory.java @@ -421,7 +421,7 @@ public void constructSubTasks(String schemaName, ExecutableDdlJob executableDdlJ new SyncLsnTask(schemaName, sourceGroupAndStorageIdMap, targetGroupAndStorageIdMap); executableDdlJob.addTask(syncLsnTask); - for (List pipeLine : subTaskJobFactory.getPhysicalyTaskPipeLine()) { + for (List pipeLine : GeneralUtil.emptyIfNull(subTaskJobFactory.getPhysicalyTaskPipeLine())) { DdlTask parentLeaveNode; if (leavePipeLineQueue.size() < parallelism) { parentLeaveNode = syncLsnTask; diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/factory/CreateFileStorageJobFactory.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/factory/CreateFileStorageJobFactory.java index 1e1390e47..aeced71ff 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/factory/CreateFileStorageJobFactory.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/factory/CreateFileStorageJobFactory.java @@ -31,27 +31,35 @@ import java.util.Map; import java.util.Set; +import static com.alibaba.polardbx.gms.topology.SystemDbHelper.DEFAULT_DB_NAME; + public class CreateFileStorageJobFactory extends DdlJobFactory { private static final Logger logger = LoggerFactory.getLogger("oss"); private ExecutionContext executionContext; private Engine engine; private Map items; + private Map azureItems; public CreateFileStorageJobFactory( Engine engine, Map items, + Map azureItems, ExecutionContext executionContext) { this.executionContext = executionContext; this.engine = engine; this.items = items; + this.azureItems = azureItems; } @Override protected void validate() { if (!items.containsKey(FileStorageInfoKey.FILE_URI)) { - throw new TddlRuntimeException(ErrorCode.ERR_EXECUTE_ON_OSS, "Should contain FILE_URI in with!"); + if (Engine.ABS != engine) { + throw new TddlRuntimeException(ErrorCode.ERR_EXECUTE_ON_OSS, "Should contain FILE_URI in with!"); + } } - if (engine.name().equalsIgnoreCase("OSS")) { + switch (engine) { + case OSS: { if (!items.containsKey(FileStorageInfoKey.ENDPOINT)) { throw new TddlRuntimeException(ErrorCode.ERR_EXECUTE_ON_OSS, "Should contain ENDPOINT in with!"); } @@ -69,13 +77,58 @@ protected void validate() { throw new TddlRuntimeException(ErrorCode.ERR_EXECUTE_ON_OSS, "Should contain ACCESS_KEY_SECRET in with!"); } + break; + } + case ABS: { + if (!items.containsKey(FileStorageInfoKey.AZURE_CONNECTION_STRING)) { + throw new TddlRuntimeException(ErrorCode.ERR_EXECUTE_ON_OSS, + "Should contain AZURE_CONNECTION_STRING in with!"); + } + if (!items.containsKey(FileStorageInfoKey.AZURE_CONTAINER_NAME)) { + throw new TddlRuntimeException(ErrorCode.ERR_EXECUTE_ON_OSS, + "Should contain AZURE_CONTAINER_NAME in with!"); + } + + // check connection string + if (!azureItems.containsKey(FileStorageInfoKey.AzureConnectionStringKey.DefaultEndpointsProtocol)) { + throw new TddlRuntimeException(ErrorCode.ERR_EXECUTE_ON_OSS, + "Should contain DefaultEndpointsProtocol in connection string!"); + } + if (!azureItems.containsKey(FileStorageInfoKey.AzureConnectionStringKey.AccountName)) { + throw new TddlRuntimeException(ErrorCode.ERR_EXECUTE_ON_OSS, + "Should contain AccountName in connection string!"); + } + if (!azureItems.containsKey(FileStorageInfoKey.AzureConnectionStringKey.AccountKey)) { + throw new TddlRuntimeException(ErrorCode.ERR_EXECUTE_ON_OSS, + "Should contain AccountKey in connection string!"); + } + if (!azureItems.containsKey(FileStorageInfoKey.AzureConnectionStringKey.EndpointSuffix)) { + throw new TddlRuntimeException(ErrorCode.ERR_EXECUTE_ON_OSS, + "Should contain EndpointSuffix in connection string!"); + } + break; + } + case S3: { + if (!items.containsKey(FileStorageInfoKey.ACCESS_KEY_ID)) { + throw new TddlRuntimeException(ErrorCode.ERR_EXECUTE_ON_OSS, "Should contain ACCESS_KEY_ID in with!"); + } + if (!items.containsKey(FileStorageInfoKey.ACCESS_KEY_SECRET)) { + throw new TddlRuntimeException(ErrorCode.ERR_EXECUTE_ON_OSS, + "Should contain ACCESS_KEY_SECRET in with!"); + } + break; + } + default: + break; } } @Override protected ExecutableDdlJob doCreate() { ExecutableDdlJob executableDdlJob = new ExecutableDdlJob(); - executableDdlJob.addTask(new CreateFileStorageTask(executionContext.getSchemaName(), engine.name(), items)); + executableDdlJob.addTask( + new CreateFileStorageTask(DEFAULT_DB_NAME, engine.name(), items, azureItems) + ); return executableDdlJob; } diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/factory/CreateJavaFunctionJobFactory.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/factory/CreateJavaFunctionJobFactory.java index 9020f5544..61a59869b 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/factory/CreateJavaFunctionJobFactory.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/factory/CreateJavaFunctionJobFactory.java @@ -83,9 +83,7 @@ private void checkJavaCodeValid() { String javaCode = sqlCreateFunction.getJavaCode(); String functionName = sqlCreateFunction.getFuncName(); String className = StringUtils.funcNameToClassName(functionName); - if (InstConfUtil.getBool(ConnectionParams.CHECK_INVALID_JAVA_UDF)) { - CompileUtils.checkInvalidJavaCode(javaCode, className); - } + CompileUtils.checkInvalidJavaCode(javaCode, className); } private void checkDataTypeValid() { diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/factory/MoveDatabaseChangeSetJobFactory.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/factory/MoveDatabaseChangeSetJobFactory.java index 6e2d01c7f..5518f8e0c 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/factory/MoveDatabaseChangeSetJobFactory.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/factory/MoveDatabaseChangeSetJobFactory.java @@ -19,7 +19,6 @@ import com.alibaba.polardbx.common.properties.ConnectionParams; import com.alibaba.polardbx.common.utils.Pair; import com.alibaba.polardbx.executor.changeset.ChangeSetManager; -import com.alibaba.polardbx.executor.common.ExecutorContext; import com.alibaba.polardbx.executor.ddl.job.converter.DdlJobDataConverter; import com.alibaba.polardbx.executor.ddl.job.converter.PhysicalPlanData; import com.alibaba.polardbx.executor.ddl.job.task.backfill.MoveTableBackFillTask; @@ -31,17 +30,14 @@ import com.alibaba.polardbx.executor.ddl.job.task.basic.PhysicalBackfillTask; import com.alibaba.polardbx.executor.ddl.job.task.changset.ChangeSetApplyExecutorInitTask; import com.alibaba.polardbx.executor.ddl.job.task.changset.ChangeSetApplyFinishTask; -import com.alibaba.polardbx.executor.ddl.job.task.changset.MoveTableCheckTask; import com.alibaba.polardbx.executor.ddl.job.task.changset.ChangeSetCatchUpTask; import com.alibaba.polardbx.executor.ddl.job.task.changset.ChangeSetStartTask; import com.alibaba.polardbx.executor.ddl.job.task.changset.MoveTableCheckTask; -import com.alibaba.polardbx.executor.ddl.job.task.shared.EmptyTask; import com.alibaba.polardbx.executor.ddl.newengine.job.DdlTask; import com.alibaba.polardbx.executor.ddl.newengine.job.ExecutableDdlJob; import com.alibaba.polardbx.executor.ddl.util.ChangeSetUtils; import com.alibaba.polardbx.executor.physicalbackfill.PhysicalBackfillUtils; import com.alibaba.polardbx.gms.topology.DbTopologyManager; -import com.alibaba.polardbx.gms.topology.GroupDetailInfoExRecord; import com.alibaba.polardbx.gms.util.GroupInfoUtil; import com.alibaba.polardbx.optimizer.config.table.ComplexTaskMetaManager; import com.alibaba.polardbx.optimizer.config.table.TableMeta; @@ -52,14 +48,13 @@ import org.apache.calcite.rel.core.DDL; import java.util.ArrayList; -import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; import java.util.TreeMap; -import static com.alibaba.polardbx.executor.ddl.newengine.meta.DdlJobManager.ID_GENERATOR; import static com.alibaba.polardbx.common.properties.ConnectionParams.CHANGE_SET_APPLY_OPTIMIZATION; +import static com.alibaba.polardbx.executor.ddl.newengine.meta.DdlJobManager.ID_GENERATOR; import static com.alibaba.polardbx.executor.ddl.util.ChangeSetUtils.genChangeSetCatchUpTasks; public class MoveDatabaseChangeSetJobFactory extends MoveDatabaseSubTaskJobFactory { @@ -195,14 +190,14 @@ protected ExecutableDdlJob doCreate() { if (usePhysicalBackfill) { for (Map.Entry> entry : sourceTableTopology.entrySet()) { String srcGroupName = entry.getKey(); - String tarGroupName = GroupInfoUtil.buildScaloutGroupName(srcGroupName); + String tarGroupName = GroupInfoUtil.buildScaleOutGroupName(srcGroupName); Pair srcTarGroup = Pair.of(srcGroupName, tarGroupName); String sourceStorageId = sourceAndTarDnMap.computeIfAbsent(srcTarGroup.getKey(), key -> DbTopologyManager.getStorageInstIdByGroupName(schemaName, srcTarGroup.getKey())); String targetStorageId = tarGroupAndStorageIds.get(srcTarGroup.getValue()); String srcDbName = groupAndDbMap.computeIfAbsent(srcTarGroup.getKey(), - key -> DbTopologyManager.getPhysicalDbNameByGroupKey(schemaName, srcTarGroup.getKey())); + key -> DbTopologyManager.getPhysicalDbNameByGroupKeyFromMetaDb(schemaName, srcTarGroup.getKey())); Pair srcDbAndGroup = Pair.of(srcDbName.toLowerCase(), srcTarGroup.getKey()); String tarDbName; @@ -233,7 +228,8 @@ protected ExecutableDdlJob doCreate() { phyTb); CloneTableDataFileTask cloneTableDataFileTask = new CloneTableDataFileTask(schemaName, tableName, srcDbAndGroup, tarDbAndGroup, phyTb, - phyPartNames, sourceStorageId, sourceHostIpAndPort, targetHostsIpAndPort, batchSize); + phyPartNames, sourceStorageId, sourceHostIpAndPort, targetHostsIpAndPort, batchSize, + tableMeta.isEncryption()); cloneTableDataFileTask.setTaskId(ID_GENERATOR.nextId()); List importTableSpaceTasks = new ArrayList<>(); @@ -244,7 +240,8 @@ protected ExecutableDdlJob doCreate() { srcTarGroup, Pair.of(sourceStorageId, targetStorageId), storageInstAndUserInfos, batchSize, parallelism, minUpdateBatch, - waitLsn); + waitLsn, + tableMeta.isEncryption()); storageInstAndUserInfos.computeIfAbsent(sourceStorageId, key -> PhysicalBackfillUtils.getUserPasswd(sourceStorageId)); diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/factory/MoveDatabaseJobFactory.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/factory/MoveDatabaseJobFactory.java index cde7690b4..d301c79b6 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/factory/MoveDatabaseJobFactory.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/factory/MoveDatabaseJobFactory.java @@ -24,7 +24,6 @@ import com.alibaba.polardbx.executor.balancer.Balancer; import com.alibaba.polardbx.executor.balancer.stats.BalanceStats; import com.alibaba.polardbx.executor.balancer.stats.GroupStats; -import com.alibaba.polardbx.executor.balancer.stats.PartitionGroupStat; import com.alibaba.polardbx.executor.ddl.job.builder.MoveDatabaseBuilder; import com.alibaba.polardbx.executor.ddl.job.task.BaseValidateTask; import com.alibaba.polardbx.executor.ddl.job.task.CostEstimableDdlTask; @@ -36,9 +35,6 @@ import com.alibaba.polardbx.executor.ddl.job.task.basic.PauseCurrentJobTask; import com.alibaba.polardbx.executor.ddl.job.task.basic.PhysicalBackfillTask; import com.alibaba.polardbx.executor.ddl.job.task.basic.SyncLsnTask; -import com.alibaba.polardbx.executor.ddl.job.task.shared.EmptyTask; -import com.alibaba.polardbx.executor.ddl.job.task.shared.EmptyLogTask; -import com.alibaba.polardbx.executor.ddl.job.task.shared.EmptyTask; import com.alibaba.polardbx.executor.ddl.job.task.changset.ChangeSetApplyExecutorInitTask; import com.alibaba.polardbx.executor.ddl.job.task.changset.ChangeSetApplyFinishTask; import com.alibaba.polardbx.executor.ddl.newengine.job.DdlJobFactory; @@ -72,8 +68,6 @@ import java.util.Set; import java.util.TreeMap; -import static com.alibaba.polardbx.common.properties.ConnectionParams.CHANGE_SET_APPLY_OPTIMIZATION; - /** * Created by luoyanxin. * @@ -197,7 +191,7 @@ public void constructSubTasks(ExecutableDdlJob executableDdlJob, executableDdlJob.addTask(syncLsnTask); syncLsnTaskAdded = true; } - for (List pipeLine : subTaskJobFactory.getPhysicalyTaskPipeLine()) { + for (List pipeLine : GeneralUtil.emptyIfNull(subTaskJobFactory.getPhysicalyTaskPipeLine())) { DdlTask parentLeaveNode; if (leavePipeLineQueue.size() < parallelism) { parentLeaveNode = syncLsnTask; @@ -255,12 +249,12 @@ protected ExecutableDdlJob doCreate() { for (String sourceGroup : entry.getValue()) { if (!shareStorageMode) { instGroupDbInfos.computeIfAbsent(entry.getKey(), o -> new ArrayList<>()) - .add(Pair.of(GroupInfoUtil.buildScaloutGroupName(sourceGroup), + .add(Pair.of(GroupInfoUtil.buildScaleOutGroupName(sourceGroup), GroupInfoUtil.buildPhysicalDbNameFromGroupName(sourceGroup))); } else { String targetPhyDb = GroupInfoUtil.buildScaleOutPhyDbName(schemaName, sourceGroup); instGroupDbInfos.computeIfAbsent(entry.getKey(), o -> new ArrayList<>()) - .add(Pair.of(GroupInfoUtil.buildScaloutGroupName(sourceGroup), targetPhyDb)); + .add(Pair.of(GroupInfoUtil.buildScaleOutGroupName(sourceGroup), targetPhyDb)); } } } diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/factory/gsi/CreateGsiJobFactory.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/factory/gsi/CreateGsiJobFactory.java index e15b6b4ae..f502f0857 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/factory/gsi/CreateGsiJobFactory.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/factory/gsi/CreateGsiJobFactory.java @@ -236,6 +236,7 @@ protected ExecutableDdlJob doCreate() { bringUpGsi = GsiTaskFactory.addGlobalIndexTasks( schemaName, primaryTableName, + oldIndexName, indexTableName, stayAtDeleteOnly, stayAtWriteOnly, diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/factory/gsi/CreatePartitionGsiJobFactory.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/factory/gsi/CreatePartitionGsiJobFactory.java index 9d9698c84..f79ffb459 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/factory/gsi/CreatePartitionGsiJobFactory.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/factory/gsi/CreatePartitionGsiJobFactory.java @@ -224,6 +224,7 @@ protected ExecutableDdlJob doCreate() { bringUpGsi = GsiTaskFactory.addGlobalIndexTasks( schemaName, primaryTableName, + oldIndexName, indexTableName, stayAtDeleteOnly, stayAtWriteOnly, diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/task/basic/CloneTableDataFileTask.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/task/basic/CloneTableDataFileTask.java index cd0281998..b5b410fd1 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/task/basic/CloneTableDataFileTask.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/task/basic/CloneTableDataFileTask.java @@ -64,6 +64,7 @@ public class CloneTableDataFileTask extends BaseDdlTask { final List> targetHostsIpAndPort; final String sourceStorageInstId; final Long batchSize; + final boolean encrypted; //don't serialize this parameter private transient Map> storageInstAndUserInfos = new ConcurrentHashMap<>(); @@ -71,7 +72,7 @@ public class CloneTableDataFileTask extends BaseDdlTask { public CloneTableDataFileTask(String schemaName, String logicalTableName, Pair srcDbAndGroup, Pair tarDbAndGroup, String phyTableName, List phyPartNames, String sourceStorageInstId, Pair sourceHostIpAndPort, - List> targetHostsIpAndPort, Long batchSize) { + List> targetHostsIpAndPort, Long batchSize, Boolean encrypted) { super(schemaName); this.srcDbAndGroup = srcDbAndGroup; this.tarDbAndGroup = tarDbAndGroup; @@ -82,6 +83,7 @@ public CloneTableDataFileTask(String schemaName, String logicalTableName, Pair ph PhysicalBackfillManager.BackfillObjectBean bean = backfillBean.backfillObject; try { PhysicalBackfillDetailInfoFieldJSON detailInfoFieldJSON = bean.detailInfo; - PhysicalBackfillUtils.deleteInnodbDataFile(schemaName, bean.sourceGroupName, bean.physicalDb, - detailInfoFieldJSON.getSourceHostAndPort().getKey(), - detailInfoFieldJSON.getSourceHostAndPort().getValue(), - PhysicalBackfillUtils.convertToCfgFileName(bean.sourceDirName), true, ec); - PhysicalBackfillUtils.deleteInnodbDataFile(schemaName, bean.sourceGroupName, bean.physicalDb, - detailInfoFieldJSON.getSourceHostAndPort().getKey(), - detailInfoFieldJSON.getSourceHostAndPort().getValue(), bean.sourceDirName, true, ec); + PhysicalBackfillUtils.deleteInnodbDataFiles(schemaName, detailInfoFieldJSON.getSourceHostAndPort(), + bean.sourceDirName, bean.sourceGroupName, bean.physicalDb, true, ec); } catch (Exception ex) { //ignore try { @@ -219,7 +216,9 @@ private void cloneInnodbDataFile(boolean hasNoPhyPart, Map> entry : srcFileAndDirs.entrySet()) { Pair srcFileAndDir = entry.getValue(); - boolean handlerIbdFile = false; + boolean handleCfgFile = false; + boolean handleIbdFile = false; + boolean needHandleCfpFile = encrypted; do { PhysicalBackfillUtils.checkInterrupted(ec, null); PolarxPhysicalBackfill.FileInfo.Builder srcFileInfoBuilder = @@ -227,8 +226,16 @@ private void cloneInnodbDataFile(boolean hasNoPhyPart, Map> storageInstAndUserInfos; private final boolean waitLsn; + private final boolean encrypted; //don't serialize those parameters private transient long lastUpdateTime = 0l; @@ -104,7 +105,8 @@ public PhysicalBackfillTask(String schemaName, long batchSize, long parallelism, long minUpdateBatch, - boolean waitLsn) { + boolean waitLsn, + boolean encrypted) { super(schemaName); this.schemaName = schemaName; this.backfillId = backfillId; @@ -118,6 +120,7 @@ public PhysicalBackfillTask(String schemaName, this.parallelism = Math.max(parallelism, 1); this.minUpdateBatch = minUpdateBatch; this.waitLsn = waitLsn; + this.encrypted = encrypted; this.curSpeedLimit = OptimizerContext.getContext(schemaName).getParamManager() .getLong(ConnectionParams.PHYSICAL_BACKFILL_SPEED_LIMIT); @@ -340,20 +343,10 @@ public void foreachPhysicalFile(final Pair srcDbAndGroup, final Pair sourceHostIpAndPort = detailInfo.getSourceHostAndPort(); final AtomicReference interrupted = new AtomicReference<>(false); - // copy the .cfg file before .ibd file - String srcFileName = srcFileAndDir.getKey(); - String srcDir; - if (initBean.isEmpty()) { - srcDir = PhysicalBackfillUtils.convertToCfgFileName( - srcFileAndDir.getValue() + PhysicalBackfillUtils.TEMP_FILE_POSTFIX); - } else { - srcDir = PhysicalBackfillUtils.convertToCfgFileName(srcFileAndDir.getValue()); - } + // copy the .cfg/.cfp file before .ibd file - String tarFileName = targetFileAndDir.getKey(); - String tarDir = PhysicalBackfillUtils.convertToCfgFileName(targetFileAndDir.getValue()); - copyCfgFile(Pair.of(srcFileName, srcDir), srcDbAndGroup, sourceHostIpAndPort, - Pair.of(tarFileName, tarDir), targetDbAndGroup, targetHost, consumer, ec); + copyCfgFile(srcFileAndDir, srcDbAndGroup, sourceHostIpAndPort, + targetFileAndDir, targetDbAndGroup, targetHost, consumer, !initBean.isEmpty(), ec); if (bitSetPosMark == null || bitSetPosMark.length == 0) { bitSet = new BitSet(offsetAndSize.size()); @@ -450,12 +443,9 @@ public void foreachPhysicalFile(final Pair srcDbAndGroup, Pair ipPortPair = bfb.backfillObject.detailInfo.getSourceHostAndPort(); - PhysicalBackfillUtils.deleteInnodbDataFile(schemaName, srcDbAndGroup.getValue(), srcDbAndGroup.getKey(), - ipPortPair.getKey(), ipPortPair.getValue(), - PhysicalBackfillUtils.convertToCfgFileName(tempFileAndDir.getValue()), false, ec); + PhysicalBackfillUtils.deleteInnodbDataFiles(schemaName, ipPortPair, + tempFileAndDir.getValue(), srcDbAndGroup.getValue(), srcDbAndGroup.getKey(), false, ec); - PhysicalBackfillUtils.deleteInnodbDataFile(schemaName, srcDbAndGroup.getValue(), srcDbAndGroup.getKey(), - ipPortPair.getKey(), ipPortPair.getValue(), tempFileAndDir.getValue(), false, ec); // After all physical table finished backfillManager.updateBackfillObject(ImmutableList.of(bor)); @@ -670,62 +660,93 @@ private void fallocateIbdFile(final ExecutionContext ec, final Pair srcFileAndDir, final Pair srcDbAndGroup, + private void copyCfgFile(final Pair srcDataFileAndDir, + final Pair srcDbAndGroup, final Pair sourceHostIpAndPort, - final Pair targetFileAndDir, final Pair tarDbAndGroup, + final Pair targetDataFileAndDir, final Pair tarDbAndGroup, final List> targetHosts, BatchConsumer consumer, + boolean isInit, ExecutionContext ec) { - //delete first before copy,because do not have backfillMeta for cfg file + //delete first before copy,because do not have backfillMeta for cfg/cfp file + String srcCfgDir; + String srcCfpDir; + List> srcTargetFilePair = new ArrayList<>(); + if (!isInit) { + srcCfgDir = PhysicalBackfillUtils.convertToCfgFileName( + srcDataFileAndDir.getValue() + PhysicalBackfillUtils.TEMP_FILE_POSTFIX, PhysicalBackfillUtils.CFG); + srcCfpDir = PhysicalBackfillUtils.convertToCfgFileName( + srcDataFileAndDir.getValue() + PhysicalBackfillUtils.TEMP_FILE_POSTFIX, PhysicalBackfillUtils.CFP); + } else { + srcCfgDir = + PhysicalBackfillUtils.convertToCfgFileName(srcDataFileAndDir.getValue(), PhysicalBackfillUtils.CFG); + srcCfpDir = + PhysicalBackfillUtils.convertToCfgFileName(srcDataFileAndDir.getValue(), PhysicalBackfillUtils.CFP); + } + + //PhysicalBackfillUtils. + //String tarFileName = targetFileAndDir.getKey(); + String tarCfgDir = + PhysicalBackfillUtils.convertToCfgFileName(targetDataFileAndDir.getValue(), PhysicalBackfillUtils.CFG); + String tarCfpDir = + PhysicalBackfillUtils.convertToCfgFileName(targetDataFileAndDir.getValue(), PhysicalBackfillUtils.CFP); + srcTargetFilePair.add(Pair.of(srcCfgDir, tarCfgDir)); + if (encrypted) { + srcTargetFilePair.add(Pair.of(srcCfpDir, tarCfpDir)); + } for (Pair pair : GeneralUtil.emptyIfNull( targetHosts)) { PhysicalBackfillUtils.deleteInnodbDataFile(schemaName, tarDbAndGroup.getValue(), tarDbAndGroup.getKey(), - pair.getKey(), pair.getValue(), targetFileAndDir.getValue(), true, ec); + pair.getKey(), pair.getValue(), targetDataFileAndDir.getValue(), true, ec); } PolarxPhysicalBackfill.TransferFileDataOperator transferFileData = null; Pair srcUserInfo = storageInstAndUserInfos.get(sourceTargetDnId.getKey()); Pair tarUserInfo = storageInstAndUserInfos.get(sourceTargetDnId.getValue()); - long offset = 0l; - do { - boolean success = false; - int tryTime = 0; + for (Pair srcTarDir : srcTargetFilePair) { + long offset = 0l; do { - try (XConnection conn = (XConnection) (PhysicalBackfillUtils.getXConnectionForStorage( - srcDbAndGroup.getKey(), - sourceHostIpAndPort.getKey(), sourceHostIpAndPort.getValue(), srcUserInfo.getKey(), - srcUserInfo.getValue(), -1))) { - - PolarxPhysicalBackfill.TransferFileDataOperator.Builder builder = - PolarxPhysicalBackfill.TransferFileDataOperator.newBuilder(); - - builder.setOperatorType(PolarxPhysicalBackfill.TransferFileDataOperator.Type.GET_DATA_FROM_SRC_IBD); - PolarxPhysicalBackfill.FileInfo.Builder fileInfoBuilder = - PolarxPhysicalBackfill.FileInfo.newBuilder(); - fileInfoBuilder.setFileName(srcFileAndDir.getKey()); - fileInfoBuilder.setTempFile(false); - fileInfoBuilder.setDirectory(srcFileAndDir.getValue()); - fileInfoBuilder.setPartitionName(""); - builder.setFileInfo(fileInfoBuilder.build()); - builder.setBufferLen(batchSize); - builder.setOffset(offset); - transferFileData = conn.execReadBufferFromFile(builder); - success = true; - } catch (Exception ex) { - if (tryTime >= PhysicalBackfillUtils.MAX_RETRY) { - throw new TddlRuntimeException(ErrorCode.ERR_SCALEOUT_EXECUTE, ex); + boolean success = false; + int tryTime = 0; + do { + try (XConnection conn = (XConnection) (PhysicalBackfillUtils.getXConnectionForStorage( + srcDbAndGroup.getKey(), + sourceHostIpAndPort.getKey(), sourceHostIpAndPort.getValue(), srcUserInfo.getKey(), + srcUserInfo.getValue(), -1))) { + + PolarxPhysicalBackfill.TransferFileDataOperator.Builder builder = + PolarxPhysicalBackfill.TransferFileDataOperator.newBuilder(); + + builder.setOperatorType( + PolarxPhysicalBackfill.TransferFileDataOperator.Type.GET_DATA_FROM_SRC_IBD); + PolarxPhysicalBackfill.FileInfo.Builder fileInfoBuilder = + PolarxPhysicalBackfill.FileInfo.newBuilder(); + fileInfoBuilder.setFileName(srcDataFileAndDir.getKey()); + fileInfoBuilder.setTempFile(false); + fileInfoBuilder.setDirectory(srcTarDir.getKey()); + fileInfoBuilder.setPartitionName(""); + builder.setFileInfo(fileInfoBuilder.build()); + builder.setBufferLen(batchSize); + builder.setOffset(offset); + transferFileData = conn.execReadBufferFromFile(builder); + success = true; + } catch (Exception ex) { + if (tryTime >= PhysicalBackfillUtils.MAX_RETRY) { + throw new TddlRuntimeException(ErrorCode.ERR_SCALEOUT_EXECUTE, ex); + } + tryTime++; } - tryTime++; + } while (!success); + consumer.consume(tarDbAndGroup, Pair.of(srcDataFileAndDir.getKey(), srcTarDir.getValue()), targetHosts, + tarUserInfo, + transferFileData); + if (transferFileData.getBufferLen() < batchSize) { + break; } - } while (!success); - consumer.consume(tarDbAndGroup, targetFileAndDir, targetHosts, tarUserInfo, - transferFileData); - if (transferFileData.getBufferLen() < batchSize) { - return; - } - offset += transferFileData.getBufferLen(); - } while (true); + offset += transferFileData.getBufferLen(); + } while (true); + } } } diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/task/basic/TruncateTableValidateTask.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/task/basic/TruncateTableValidateTask.java index f3e015931..026d6505b 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/task/basic/TruncateTableValidateTask.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/task/basic/TruncateTableValidateTask.java @@ -23,6 +23,7 @@ import com.alibaba.polardbx.executor.ddl.job.validator.TableValidator; import com.alibaba.polardbx.gms.tablegroup.TableGroupConfig; import com.alibaba.polardbx.optimizer.context.ExecutionContext; +import org.apache.calcite.sql.SqlKind; import lombok.Getter; @Getter @@ -43,6 +44,7 @@ public TruncateTableValidateTask(String schemaName, String logicalTableName, Tab public void executeImpl(ExecutionContext executionContext) { TableValidator.validateTableExistence(schemaName, logicalTableName, executionContext); TableValidator.validateTableNotReferenceFk(schemaName, logicalTableName, executionContext); + TableValidator.validateTableWithCCI(schemaName, logicalTableName, executionContext, SqlKind.TRUNCATE_TABLE); GsiValidator.validateAllowTruncateOnTable(schemaName, logicalTableName, executionContext); if (tableGroupConfig != null) { TableValidator.validateTableGroupChange(schemaName, tableGroupConfig); diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/task/basic/oss/CreateFileStorageTask.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/task/basic/oss/CreateFileStorageTask.java index 25d78e3dc..dce217320 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/task/basic/oss/CreateFileStorageTask.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/task/basic/oss/CreateFileStorageTask.java @@ -40,6 +40,7 @@ import java.io.IOException; import java.sql.Connection; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.concurrent.ExecutionException; @@ -49,17 +50,24 @@ import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; +import static com.alibaba.polardbx.common.oss.filesystem.Constants.ABS_URI_SUFFIX_PATTERN; +import static com.alibaba.polardbx.common.oss.filesystem.Constants.AZURE_WASBS_SCHEME; +import static com.alibaba.polardbx.common.oss.filesystem.Constants.AZURE_WASB_SCHEME; + @Getter @TaskName(name = "CreateFileStorageTask") public class CreateFileStorageTask extends BaseGmsTask { private String engineName; private Map items; + private Map azureItems; @JSONCreator - public CreateFileStorageTask(String schemaName, String engineName, Map items) { + public CreateFileStorageTask(String schemaName, String engineName, Map items, + Map azureItems) { super(schemaName, null); this.engineName = engineName; this.items = items; + this.azureItems = azureItems; onExceptionTryRollback(); } @@ -76,10 +84,10 @@ protected void executeImpl(Connection metaDbConnection, ExecutionContext executi record1.priority = 1; record1.regionId = ""; record1.availableZoneId = ""; - record1.cachePolicy = CachePolicy.META_AND_DATA_CACHE.getValue(); + record1.cachePolicy = CachePolicy.DATA_CACHE.getValue(); record1.deletePolicy = DeletePolicy.MASTER_ONLY.getValue(); record1.status = 1; - String uri = items.get(FileStorageInfoKey.FILE_URI).trim(); + String uri = items.getOrDefault(FileStorageInfoKey.FILE_URI, "").trim(); if (!uri.endsWith("/")) { uri = uri + "/"; } @@ -90,6 +98,23 @@ protected void executeImpl(Connection metaDbConnection, ExecutionContext executi record1.internalVpcEndpoint = items.get(FileStorageInfoKey.ENDPOINT); record1.accessKeyId = items.get(FileStorageInfoKey.ACCESS_KEY_ID); record1.accessKeySecret = PasswdUtil.encrypt(items.get(FileStorageInfoKey.ACCESS_KEY_SECRET)); + } else if (Engine.S3.name().equalsIgnoreCase(record1.engine)) { + record1.accessKeyId = items.get(FileStorageInfoKey.ACCESS_KEY_ID); + record1.accessKeySecret = PasswdUtil.encrypt(items.get(FileStorageInfoKey.ACCESS_KEY_SECRET)); + } else if (Engine.ABS.name().equalsIgnoreCase(record1.engine)) { + record1.accessKeyId = azureItems.get(FileStorageInfoKey.AzureConnectionStringKey.AccountName); + record1.accessKeySecret = + PasswdUtil.encrypt(azureItems.get(FileStorageInfoKey.AzureConnectionStringKey.AccountKey)); + record1.externalEndpoint = azureItems.get(FileStorageInfoKey.AzureConnectionStringKey.EndpointSuffix); + record1.internalClassicEndpoint = + azureItems.get(FileStorageInfoKey.AzureConnectionStringKey.EndpointSuffix); + record1.internalVpcEndpoint = azureItems.get(FileStorageInfoKey.AzureConnectionStringKey.EndpointSuffix); + String endpointsProtocol = + azureItems.get(FileStorageInfoKey.AzureConnectionStringKey.DefaultEndpointsProtocol); + record1.fileUri = + ("https".equalsIgnoreCase(endpointsProtocol) ? AZURE_WASBS_SCHEME : AZURE_WASB_SCHEME) + "://" + + items.get(FileStorageInfoKey.AZURE_CONTAINER_NAME) + + "@" + String.format(ABS_URI_SUFFIX_PATTERN, record1.accessKeyId, record1.externalEndpoint) + "/"; } if (fileStorageInfoAccessor.query(Engine.of(engineName)).size() != 0) { diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/task/basic/oss/OSSTaskUtils.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/task/basic/oss/OSSTaskUtils.java index ac6100875..a7e5a1ee7 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/task/basic/oss/OSSTaskUtils.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/task/basic/oss/OSSTaskUtils.java @@ -182,7 +182,7 @@ public static Optional chooseRemoteNode(Long taskId) { } List candidates = new ArrayList<>(remoteNodeList); candidates.add(null); - int mod = (int) (MurmurHashUtils.murmurHashWithZeroSeed(taskId) % candidates.size()); + int mod = (int) (MurmurHashUtils.murmurHash128WithZeroSeed(taskId) % candidates.size()); if (mod < 0) { mod = mod + candidates.size(); } diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/task/factory/GsiTaskFactory.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/task/factory/GsiTaskFactory.java index 984a0f6e7..0f7047b54 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/task/factory/GsiTaskFactory.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/task/factory/GsiTaskFactory.java @@ -101,6 +101,7 @@ public static List createGlobalIndexTasks(String schemaName, */ public static List addGlobalIndexTasks(String schemaName, String primaryTableName, + String oldIndexName, String indexName, boolean stayAtDeleteOnly, boolean stayAtWriteOnly, @@ -159,9 +160,10 @@ public static List addGlobalIndexTasks(String schemaName, if (stayAtWriteOnly) { return taskList; } + String backFillSourceTableName = mirrorCopy ? oldIndexName : primaryTableName; taskList.add( - new LogicalTableBackFillTask(schemaName, primaryTableName, indexName, virtualColumns, backfillColumnMap, - modifyStringColumns, false, mirrorCopy, modifyColumn)); + new LogicalTableBackFillTask(schemaName, backFillSourceTableName, indexName, virtualColumns, + backfillColumnMap, modifyStringColumns, false, mirrorCopy, modifyColumn)); if (stayAtBackFill) { return taskList; } diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/task/tablegroup/TableGroupSyncTask.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/task/tablegroup/TableGroupSyncTask.java index 2f3e672c5..1e23041c6 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/task/tablegroup/TableGroupSyncTask.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/task/tablegroup/TableGroupSyncTask.java @@ -25,6 +25,8 @@ import com.alibaba.polardbx.optimizer.context.ExecutionContext; import lombok.Getter; +import java.sql.Connection; + @Getter @TaskName(name = "TableGroupSyncTask") public class TableGroupSyncTask extends BaseSyncTask { @@ -42,7 +44,12 @@ public void executeImpl(ExecutionContext executionContext) { syncTableGroup(); } - private void syncTableGroup() { + @Override + protected void duringRollbackTransaction(Connection metaDbConnection, ExecutionContext executionContext) { + syncTableGroup(); + } + + protected void syncTableGroup() { try { SyncManagerHelper.sync(new TableGroupSyncAction(schemaName, tableGroupName), SyncScope.ALL, true); } catch (Throwable t) { diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/task/tablegroup/TableGroupsSyncTask.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/task/tablegroup/TableGroupsSyncTask.java index 58fc76c35..d56386e84 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/task/tablegroup/TableGroupsSyncTask.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/task/tablegroup/TableGroupsSyncTask.java @@ -26,6 +26,7 @@ import com.alibaba.polardbx.optimizer.context.ExecutionContext; import lombok.Getter; +import java.sql.Connection; import java.util.List; @Getter @@ -45,7 +46,12 @@ public void executeImpl(ExecutionContext executionContext) { syncTableGroup(); } - private void syncTableGroup() { + @Override + protected void duringRollbackTransaction(Connection metaDbConnection, ExecutionContext executionContext) { + syncTableGroup(); + } + + protected void syncTableGroup() { try { SyncManagerHelper.sync(new TableGroupsSyncAction(schemaName, tableGroupNameList), SyncScope.ALL); } catch (Throwable t) { diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/validator/ForeignKeyValidator.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/validator/ForeignKeyValidator.java index 077e65d3e..8bdc5be6a 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/validator/ForeignKeyValidator.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/job/validator/ForeignKeyValidator.java @@ -254,21 +254,6 @@ public static void validateFkConstraints(SqlCreateTable sqlCreateTableOrigin, St def.getDataType().getTypeName().getLastName() .toUpperCase()); - String charSetName = def.getDataType().getCharSetName(); - String collationName = - def.getDataType().getCollationName(); - - RelDataTypeFactory factory = new TddlTypeFactoryImpl(TddlRelDataTypeSystemImpl.getInstance()); - boolean nullable = - Optional.ofNullable(def.getNotNull()).map(cn -> SqlColumnDeclaration.ColumnNull.NULL == cn) - .orElse(true); - RelDataType type = def.getDataType().deriveType(factory, nullable); - - if (charSetName == null && SqlTypeUtil.inCharFamily(type)) { - charSetName = sqlCreateTable.getDefaultCharset(); - collationName = sqlCreateTable.getDefaultCollation(); - } - if (!columnTypeName.equals( SqlDataTypeSpec.DrdsTypeName.from(column.getDataType().getStringSqlType().toUpperCase()))) { throw new TddlRuntimeException(ErrorCode.ERR_CHANGE_COLUMN_FK_CONSTRAINT, @@ -276,16 +261,15 @@ public static void validateFkConstraints(SqlCreateTable sqlCreateTableOrigin, St data.refTableName, data.constraint); } - if (charSetName != null && !StringUtils.equalsIgnoreCase(charSetName, - column.getDataType().getCharsetName().name())) { - throw new TddlRuntimeException(ErrorCode.ERR_ADD_FK_CHARSET_COLLATION, - schemaName, tableName, data.refSchema, data.refTableName); - } + Pair charsetCollationName = getCharsetCollationName(def, sqlCreateTable); + if (charsetCollationName != null) { + String charSetName = charsetCollationName.getKey(); + String collationName = charsetCollationName.getValue(); - if (collationName != null && !StringUtils.equalsIgnoreCase(collationName, - column.getDataType().getCollationName().name())) { - throw new TddlRuntimeException(ErrorCode.ERR_ADD_FK_CHARSET_COLLATION, - schemaName, tableName, data.refSchema, data.refTableName); + validateCharset(schemaName, tableName, data.refSchema, data.refTableName, charSetName, + column.getDataType().getCharsetName().name()); + validateCollate(schemaName, tableName, data.refSchema, data.refTableName, collationName, + column.getDataType().getCollationName().name()); } // can not add fk on generated column @@ -315,6 +299,34 @@ public static void validateFkConstraints(SqlCreateTable sqlCreateTableOrigin, St } } + public static Pair getCharsetCollationName(SqlColumnDeclaration def, + SqlCreateTable sqlCreateTable) { + String charSetName; + String collationName; + + CollationName collationNameOfColSpec = + CollationName.findCollationName(def.getDataType().getCollationName()); + CharsetName charsetNameOfColSpec = CollationName.getCharsetOf(collationNameOfColSpec); + + RelDataTypeFactory factory = new TddlTypeFactoryImpl(TddlRelDataTypeSystemImpl.getInstance()); + boolean nullable = + Optional.ofNullable(def.getNotNull()).map(cn -> SqlColumnDeclaration.ColumnNull.NULL == cn) + .orElse(true); + RelDataType type = def.getDataType().deriveType(factory, nullable); + + if (charsetNameOfColSpec != null) { + charSetName = charsetNameOfColSpec.name(); + collationName = collationNameOfColSpec.name(); + } else if (SqlTypeUtil.inCharFamily(type)) { + charSetName = sqlCreateTable.getDefaultCharset(); + collationName = sqlCreateTable.getDefaultCollation(); + } else { + return null; + } + + return new Pair<>(charSetName, collationName); + } + public static void validateCharset(String srcSchemaName, String srcTableName, String refSchemaName, String refTableName, String srcCharSet, String refTableCharset) { CharsetName srcTableCharsetName = CharsetName.of(srcCharSet); @@ -589,14 +601,29 @@ public static void validateAddReferredTableFkIndex(ForeignKeyData data, Executio // table referenced itself if (sqlCreateTable != null && data.refTableName.equalsIgnoreCase(tableName)) { + List> keys = new ArrayList<>(); if (sqlCreateTable.getKeys() != null) { - for (Pair key : sqlCreateTable.getKeys()) { - List indexColumnList = new ArrayList<>(); - key.getValue().getColumns().stream().map(c -> c.getColumnName().getLastName()) - .forEach(indexColumnList::add); - if (hasFkColumnIndex(indexColumnList, columnsHash)) { - return; - } + keys.addAll(sqlCreateTable.getKeys()); + } + if (sqlCreateTable.getUniqueKeys() != null) { + keys.addAll(sqlCreateTable.getUniqueKeys()); + } + if (sqlCreateTable.getClusteredKeys() != null) { + keys.addAll(sqlCreateTable.getClusteredKeys()); + } + if (sqlCreateTable.getGlobalKeys() != null) { + keys.addAll(sqlCreateTable.getGlobalKeys()); + } + if (sqlCreateTable.getGlobalUniqueKeys() != null) { + keys.addAll(sqlCreateTable.getGlobalUniqueKeys()); + } + + for (Pair key : keys) { + List indexColumnList = new ArrayList<>(); + key.getValue().getColumns().stream().map(c -> c.getColumnName().getLastName()) + .forEach(indexColumnList::add); + if (hasFkColumnIndex(indexColumnList, columnsHash)) { + return; } } diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/newengine/DdlEngineRequester.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/newengine/DdlEngineRequester.java index e902ab2e1..dce98748d 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/newengine/DdlEngineRequester.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/ddl/newengine/DdlEngineRequester.java @@ -41,6 +41,7 @@ import com.google.common.cache.CacheBuilder; import com.google.common.collect.Lists; import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang.StringUtils; import java.time.Duration; import java.util.ArrayList; @@ -49,6 +50,7 @@ import java.util.Map; import java.util.stream.Collectors; +import static com.alibaba.polardbx.common.TddlConstants.INFORMATION_SCHEMA; import static com.alibaba.polardbx.common.ddl.newengine.DdlConstants.LESS_WAITING_TIME; import static com.alibaba.polardbx.common.ddl.newengine.DdlConstants.MORE_WAITING_TIME; import static com.alibaba.polardbx.common.ddl.newengine.DdlType.ALTER_TABLEGROUP; @@ -102,6 +104,11 @@ public long executeSubJob(long parentJobId, long parentTaskId, boolean forRollba } public void execute() { + if (StringUtils.equalsIgnoreCase(ddlContext.getSchemaName(), INFORMATION_SCHEMA)) { + throw DdlHelper.logAndThrowError(LOGGER, + "The DDL job can not be executed under the database 'information_schema'"); + } + ddlContext.setResources(ddlJob.getExcludeResources()); // Create a new job and put it in the queue. diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/gms/GmsTableMetaManager.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/gms/GmsTableMetaManager.java index 3eccd7961..f2a868413 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/gms/GmsTableMetaManager.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/gms/GmsTableMetaManager.java @@ -62,6 +62,7 @@ import com.alibaba.polardbx.gms.partition.TablePartitionRecord; import com.alibaba.polardbx.gms.tablegroup.ComplexTaskOutlineRecord; import com.alibaba.polardbx.gms.topology.DbInfoManager; +import com.alibaba.polardbx.gms.topology.DbInfoRecord; import com.alibaba.polardbx.gms.util.MetaDbUtil; import com.alibaba.polardbx.optimizer.OptimizerContext; import com.alibaba.polardbx.optimizer.config.table.ColumnMeta; @@ -721,6 +722,8 @@ public static TableMeta buildTableMeta(String schemaName, TablesRecord tableReco hasPrimaryKey, TableStatus.convert(tableRecord.status), tableRecord.version, tableRecord.flag); res.setId(tableRecord.id); res.setEngine(Engine.of(tableRecord.engine)); + + res.setEncryption(TableMetaParser.parseEncryption(schemaName, tableRecord.createOptions)); if (Engine.isFileStore(res.getEngine())) { res.buildFileStoreMeta(columnMappingMap, columnMetaMap); } diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/gms/MultiVersionColumnarSchema.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/gms/MultiVersionColumnarSchema.java index b280de9d8..a41a3083e 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/gms/MultiVersionColumnarSchema.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/gms/MultiVersionColumnarSchema.java @@ -29,12 +29,9 @@ import com.alibaba.polardbx.gms.metadb.table.TableInfoManager; import com.alibaba.polardbx.gms.util.MetaDbUtil; import com.alibaba.polardbx.optimizer.config.table.ColumnMeta; -import com.alibaba.polardbx.optimizer.core.TddlRelDataTypeSystemImpl; -import com.alibaba.polardbx.optimizer.core.TddlTypeFactoryImpl; import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheLoader; import com.google.common.cache.LoadingCache; -import org.apache.calcite.rel.type.RelDataTypeFactory; import org.jetbrains.annotations.NotNull; import java.sql.Connection; diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/gms/util/AlterRepartitionUtils.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/gms/util/AlterRepartitionUtils.java index de832bfee..27d1df8d7 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/gms/util/AlterRepartitionUtils.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/gms/util/AlterRepartitionUtils.java @@ -773,20 +773,27 @@ public static SqlAlterTablePartitionKey generateSqlPartitionKey(String schemaNam StringBuilder sb = new StringBuilder(); sb.append("alter table "); - sb.append(tableName); - - if (dbPartitionBy != null) { - sb.append(" dbpartition by ").append(dbPartitionBy); - if (dbPartitions != null) { - sb.append(" dbpartitions ").append(dbPartitions); - } + sb.append(SqlIdentifier.surroundWithBacktick(tableName)); + + if (tableRecord.getTableType() == GsiMetaManager.TableType.SHARDING.getValue() + || tableRecord.getTableType() == GsiMetaManager.TableType.GSI.getValue()) { + if (dbPartitionBy != null) { + sb.append(" dbpartition by ").append(dbPartitionBy); + if (dbPartitions != null) { + sb.append(" dbpartitions ").append(dbPartitions); + } - if (tbPartitionBy != null) { - sb.append(" tbpartition by ").append(tbPartitionBy); - if (tbPartitions != null) { - sb.append(" tbpartitions ").append(tbPartitions); + if (tbPartitionBy != null) { + sb.append(" tbpartition by ").append(tbPartitionBy); + if (tbPartitions != null) { + sb.append(" tbpartitions ").append(tbPartitions); + } } } + } else if (tableRecord.getTableType() == GsiMetaManager.TableType.SINGLE.getValue()) { + sb.append(" single"); + } else if (tableRecord.getTableType() == GsiMetaManager.TableType.BROADCAST.getValue()) { + sb.append(" broadcast"); } String sql = sb.toString(); diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/gms/util/StatisticUtils.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/gms/util/StatisticUtils.java index 5da1d5df3..b15341981 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/gms/util/StatisticUtils.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/gms/util/StatisticUtils.java @@ -109,7 +109,6 @@ import java.util.Arrays; import java.util.BitSet; import java.util.Collection; -import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.List; @@ -723,7 +722,6 @@ public static void sampleTableDdl(String schemaName, String logicalTableName, Ex h.buildFromData(objs.stream().filter(d -> isReady ? topN.get(d) == 0 : true).toArray()); cacheLine.setHistogram(colName, h); } - cacheLine.setRowCount((long) (rows.size() / sampleRate / sampleRateUp)); cacheLine.setSampleRate(sampleRate); cacheLine.setLastModifyTime(unixTimeStamp()); @@ -1024,7 +1022,7 @@ private static double scanAnalyze(String schema, String logicalTableName, List()); } if (trx != null) { trx.close(); @@ -1035,14 +1033,17 @@ private static double scanAnalyze(String schema, String logicalTableName, List columnMetaList, - float sampleRate) { + protected static String constructScanSamplingSql(String logicalTableName, List columnMetaList, + float sampleRate) { StringBuilder sql = new StringBuilder(); String cmdExtraSamplePercentage = ""; cmdExtraSamplePercentage = ",sample_percentage=" + sampleRate * 100; - sql.append("/*+TDDL:cmd_extra(merge_union=false,ENABLE_DIRECT_PLAN=false" + cmdExtraSamplePercentage + ") */ " - + "select "); + sql.append( + "/*+TDDL:cmd_extra(" + + "enable_post_planner=false,enable_index_selection=false,merge_union=false,enable_direct_plan=false" + + cmdExtraSamplePercentage + ") */ " + + "select "); boolean first = true; for (ColumnMeta columnMeta : columnMetaList) { if (first) { diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/gsi/BackfillExecutor.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/gsi/BackfillExecutor.java index 9a07d7fa6..4322fa9b3 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/gsi/BackfillExecutor.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/gsi/BackfillExecutor.java @@ -61,7 +61,8 @@ public BackfillExecutor(BiFunction, ExecutionContext, List } public int backfill(String schemaName, String primaryTable, String indexName, boolean useBinary, - boolean useChangeSet, List modifyStringColumns, ExecutionContext baseEc) { + boolean useChangeSet, boolean canUseReturning, List modifyStringColumns, + ExecutionContext baseEc) { final long batchSize = baseEc.getParamManager().getLong(ConnectionParams.GSI_BACKFILL_BATCH_SIZE); final long speedLimit = baseEc.getParamManager().getLong(ConnectionParams.GSI_BACKFILL_SPEED_LIMITATION); final long speedMin = baseEc.getParamManager().getLong(ConnectionParams.GSI_BACKFILL_SPEED_MIN); @@ -92,7 +93,8 @@ public int backfill(String schemaName, String primaryTable, String indexName, bo GsiExtractor.create(schemaName, primaryTable, indexName, batchSize, speedMin, speedLimit, parallelism, useBinary, modifyStringColumns, baseEc); loader = - GsiLoader.create(schemaName, primaryTable, indexName, this.executeFunc, baseEc.isUseHint(), baseEc); + GsiLoader.create(schemaName, primaryTable, indexName, this.executeFunc, baseEc.isUseHint(), + canUseReturning, baseEc); } boolean finished; diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/gsi/GsiUtils.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/gsi/GsiUtils.java index b5acc071c..45109a78d 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/gsi/GsiUtils.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/gsi/GsiUtils.java @@ -1043,6 +1043,11 @@ public static BackfillObjectRecord buildBackfillObjectRecord(long jobId, String extra); } + public static R wrapWithDistributedXATrx(ITransactionManager tm, ExecutionContext baseEc, + Function call) { + return wrapWithTransaction(tm, ITransactionPolicy.XA, baseEc, call); + } + public static R wrapWithDistributedTrx(ITransactionManager tm, ExecutionContext baseEc, Function call) { return wrapWithTransaction(tm, tm.getDefaultDistributedTrxPolicy(baseEc), baseEc, call); diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/gsi/InsertIndexExecutor.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/gsi/InsertIndexExecutor.java index d90b11abe..d101c7a4e 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/gsi/InsertIndexExecutor.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/gsi/InsertIndexExecutor.java @@ -205,11 +205,9 @@ public static int backfillIntoPartitionedTable(RelNode logicalInsert, String schemaName, ExecutionContext executionContext, BiFunction, ExecutionContext, List> executeFunc, - boolean mayInsertDuplicate, - PartitionInfo newPartition, - String targetGroup, - String phyTableName, - boolean mirrorCopy) { + boolean mayInsertDuplicate, PartitionInfo newPartition, + String targetGroup, String phyTableName, boolean mirrorCopy, + boolean returning, List> result) { Map>> shardResults; boolean forceReshard = executionContext.getParamManager().getBoolean(ConnectionParams.FORCE_RESHARD); boolean skipShard = mirrorCopy && StringUtils.isNotEmpty(targetGroup) && !forceReshard; @@ -255,7 +253,7 @@ public static int backfillIntoPartitionedTable(RelNode logicalInsert, } } return insertIntoTable(logicalInsert, sqlInsert, tableMeta, "", schemaName, executionContext, executeFunc, - mayInsertDuplicate, shardResults); + mayInsertDuplicate, shardResults, returning, result); } public static int insertIntoTable(RelNode logicalInsert, SqlInsert sqlInsert, TableMeta tableMeta, @@ -263,7 +261,8 @@ public static int insertIntoTable(RelNode logicalInsert, SqlInsert sqlInsert, Ta ExecutionContext executionContext, BiFunction, ExecutionContext, List> executeFunc, boolean mayInsertDuplicate, - boolean mayForGsi, String partName) { + boolean mayForGsi, String partName, + boolean returning, List> result) { Map>> shardResults; boolean forceReshard = executionContext.getParamManager().getBoolean(ConnectionParams.FORCE_RESHARD); if (StringUtils.isBlank(targetGroup) || StringUtils.isBlank(phyTableName) || forceReshard) { @@ -316,7 +315,7 @@ public static int insertIntoTable(RelNode logicalInsert, SqlInsert sqlInsert, Ta return insertIntoTable(logicalInsert, sqlInsert, tableMeta, targetGroup, schemaName, executionContext, executeFunc, - mayInsertDuplicate, shardResults); + mayInsertDuplicate, shardResults, returning, result); } public static int insertIntoTable(RelNode logicalInsert, SqlInsert sqlInsert, TableMeta tableMeta, @@ -328,7 +327,7 @@ public static int insertIntoTable(RelNode logicalInsert, SqlInsert sqlInsert, Ta return insertIntoTable(logicalInsert, sqlInsert, tableMeta, targetGroup, phyTableName, schemaName, executionContext, executeFunc, - mayInsertDuplicate, mayForGsi, ""); + mayInsertDuplicate, mayForGsi, "", false, null); } public static int insertIntoTable(RelNode logicalInsert, SqlInsert sqlInsert, TableMeta tableMeta, @@ -336,7 +335,8 @@ public static int insertIntoTable(RelNode logicalInsert, SqlInsert sqlInsert, Ta ExecutionContext executionContext, BiFunction, ExecutionContext, List> executeFunc, boolean mayInsertDuplicate, - Map>> shardResults) { + Map>> shardResults, + boolean returning, List> result) { final RelOptCluster cluster = SqlConverter.getInstance(schemaName, executionContext).createRelOptCluster(); RelTraitSet traitSet = RelTraitSet.createEmpty(); @@ -359,16 +359,6 @@ public static int insertIntoTable(RelNode logicalInsert, SqlInsert sqlInsert, Ta SqlInsert newSqlInsert = visitor.visit(sqlInsert); BytesSql sql = RelUtils.toNativeBytesSql(newSqlInsert, DbType.MYSQL); -// PhyTableOperation phyTableModify = -// new PhyTableOperation(cluster, traitSet, rowType, null, logicalInsert); -// phyTableModify.setKind(newSqlInsert.getKind()); -// phyTableModify.setDbIndex(targetDb); -// phyTableModify.setTableNames(ImmutableList.of(ImmutableList.of(targetTb))); -// phyTableModify.setBytesSql(sql); -// phyTableModify.setNativeSqlNode(newSqlInsert); -// phyTableModify.setParam(outputParams); -// phyTableModify.setBatchParameters(null); - PhyTableOpBuildParams buildParams = new PhyTableOpBuildParams(); buildParams.setSchemaName(schemaName); buildParams.setLogTables(ImmutableList.of(tableMeta.getTableName())); @@ -412,6 +402,11 @@ public static int insertIntoTable(RelNode logicalInsert, SqlInsert sqlInsert, Ta } } + if (returning && result != null) { + result.addAll(ExecUtils.getReturningResultByCursors(cursors, false)); + return 0; + } + return ExecUtils.getAffectRowsByCursors(cursors, false); } diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/gsi/PhysicalPlanBuilder.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/gsi/PhysicalPlanBuilder.java index 992700ce3..5b270ffd4 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/gsi/PhysicalPlanBuilder.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/gsi/PhysicalPlanBuilder.java @@ -80,8 +80,8 @@ import org.apache.calcite.sql.SqlSelect.LockMode; import org.apache.calcite.sql.SqlSelectWithPartition; import org.apache.calcite.sql.SqlUpdate; -import org.apache.calcite.sql.fun.SqlHashCheckAggFunction; import org.apache.calcite.sql.fun.SqlBinaryFunction; +import org.apache.calcite.sql.fun.SqlHashCheckAggFunction; import org.apache.calcite.sql.fun.SqlStdOperatorTable; import org.apache.calcite.sql.parser.SqlParserPos; import org.apache.calcite.sql.type.SqlTypeFactoryImpl; @@ -745,7 +745,7 @@ public PhyTableOperation buildInsertSelectForOMCBackfill(TableMeta tableMeta, boolean withLowerBound, boolean withUpperBound, LockMode lockMode, boolean isInsertIgnore) { SqlInsert sqlInsert = buildSqlInsertSelectForOMCBackfill(targetColumnNames, sourceColumnNames, - primaryKeys, withLowerBound, withUpperBound, lockMode, isInsertIgnore); + primaryKeys, withLowerBound, withUpperBound, lockMode, isInsertIgnore, tableMeta.isHasPrimaryKey()); return buildDmlPhyTblOpTemplate(tableMeta.getSchemaName(), sqlInsert, tableMeta); } @@ -753,7 +753,8 @@ public SqlInsert buildSqlInsertSelectForOMCBackfill(List targetColumnNam List sourceColumnNames, List primaryKeys, boolean withLowerBound, boolean withUpperBound, - LockMode lockMode, boolean isInsertIgnore) { + LockMode lockMode, boolean isInsertIgnore, + boolean forceIndex) { initParams(0); // build select list @@ -788,8 +789,9 @@ public SqlInsert buildSqlInsertSelectForOMCBackfill(List targetColumnNam null == condition ? upperBound : PlannerUtils.buildAndTree(ImmutableList.of(condition, upperBound)); } + SqlNode target = forceIndex ? from : targetTableNode; final SqlSelect sqlSelect = - new SqlSelect(SqlParserPos.ZERO, null, selectList, from, condition, null, null, null, null, + new SqlSelect(SqlParserPos.ZERO, null, selectList, target, condition, null, null, null, null, null, null); sqlSelect.setLockMode(lockMode); diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/gsi/backfill/CdasLoader.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/gsi/backfill/CdasLoader.java index a1181de70..875168777 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/gsi/backfill/CdasLoader.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/gsi/backfill/CdasLoader.java @@ -54,6 +54,8 @@ import java.util.function.Supplier; import java.util.stream.Collectors; +import static org.apache.calcite.sql.fun.SqlStdOperatorTable.EQUALS; + /** * Created by zhuqiwei. * @@ -66,9 +68,9 @@ public class CdasLoader extends Loader { private CdasLoader(String schemaName, String tableName, SqlInsert insert, SqlInsert insertIgnore, ExecutionPlan checkerPlan, int[] checkerPkMapping, int[] checkerParamMapping, BiFunction, ExecutionContext, List> executeFunc, - int[] insertedParamMapping, boolean needParamProject) { + int[] insertedParamMapping, boolean needParamProject, String backfillReturning) { super(schemaName, tableName, insert, insertIgnore, checkerPlan, checkerPkMapping, checkerParamMapping, - executeFunc, false); + executeFunc, false, backfillReturning); this.insertedParamMapping = insertedParamMapping; this.needParamProjection = needParamProject; } @@ -80,6 +82,9 @@ public static CdasLoader create(String srcSchemaName, String dstSchemaName, Stri final OptimizerContext optimizerContextDst = OptimizerContext.getContext(dstSchemaName); final OptimizerContext optimizerContextSrc = OptimizerContext.getContext(srcSchemaName); + boolean canUseReturning = + canUseBackfillReturning(ec, dstSchemaName) && canUseBackfillReturning(ec, srcSchemaName); + // Construct target table final SqlNode targetTableParam = BuildPlanUtils.buildTargetTable(); // Construct targetColumnList @@ -150,7 +155,8 @@ public static CdasLoader create(String srcSchemaName, String dstSchemaName, Stri final TddlRuleManager tddlRuleManagerDst = optimizerContextDst.getRuleManager(); final Set filterColumns = Sets.newTreeSet(String::compareToIgnoreCase); final Set primaryKeys = Sets.newTreeSet(String::compareToIgnoreCase); - primaryKeys.addAll(GlobalIndexMeta.getPrimaryKeys(srcTableMeta)); + final List pkList = GlobalIndexMeta.getPrimaryKeys(srcTableMeta); + primaryKeys.addAll(pkList); filterColumns.addAll(primaryKeys); filterColumns.addAll(tddlRuleManagerSrc.getSharedColumns(srcTableName)); filterColumns.addAll(tddlRuleManagerDst.getSharedColumns(dstTableName)); @@ -179,7 +185,8 @@ public static CdasLoader create(String srcSchemaName, String dstSchemaName, Stri return new CdasLoader(dstSchemaName, dstTableName, sqlInsert, sqlInsertIgnore, checkerPlan, checkerPkMapping, checkerParamMapping, - executeFunc, insertMappings, needParamProject); + executeFunc, insertMappings, needParamProject, + canUseReturning ? String.join(",", pkList) : null); } @@ -187,8 +194,13 @@ public static CdasLoader create(String srcSchemaName, String dstSchemaName, Stri public int executeInsert(SqlInsert sqlInsert, String schemaName, String tableName, ExecutionContext executionContext, String sourceDbIndex, String phyTableName) { TableMeta tableMeta = executionContext.getSchemaManager(schemaName).getTable(tableName); - return InsertIndexExecutor - .insertIntoTable(null, sqlInsert, tableMeta, schemaName, executionContext, executeFunc, false); + List> returningRes = new ArrayList<>(); + int affectRows = InsertIndexExecutor + .insertIntoTable(null, sqlInsert, tableMeta, "", "", + schemaName, executionContext, executeFunc, false, true, + "", usingBackfillReturning, returningRes); + + return usingBackfillReturning ? getReturningAffectRows(returningRes, executionContext) : affectRows; } @Override diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/gsi/backfill/GsiChangeSetLoader.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/gsi/backfill/GsiChangeSetLoader.java index 80bab52c0..d76c39bdd 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/gsi/backfill/GsiChangeSetLoader.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/gsi/backfill/GsiChangeSetLoader.java @@ -66,7 +66,8 @@ protected GsiChangeSetLoader(String schemaName, String tableName, SqlInsert inse BiFunction, ExecutionContext, List> executeFunc) { super(schemaName, tableName, insert, insertIgnore, checkerPlan, checkerPkMapping, checkerParamMapping, executeFunc, - true); + true, null); + this.conflictDetection = true; this.tableNameMapping = tableNameMapping; } @@ -174,7 +175,8 @@ public int executeInsert(SqlInsert sqlInsert, String schemaName, String tableNam PartitionInfo newPartInfo = tableMeta.getNewPartitionInfo(); return InsertIndexExecutor .backfillIntoPartitionedTable(null, sqlInsert, tableMeta, schemaName, executionContext, executeFunc, - false, newPartInfo, sourceDbIndex, tableNameMapping.get(phyTableName), this.mirrorCopy); + false, newPartInfo, sourceDbIndex, tableNameMapping.get(phyTableName), this.mirrorCopy, false, + null); } else { return InsertIndexExecutor .insertIntoTable(null, sqlInsert, tableMeta, sourceDbIndex, tableNameMapping.get(phyTableName), diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/gsi/backfill/GsiLoader.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/gsi/backfill/GsiLoader.java index cbf06933d..ab526dd88 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/gsi/backfill/GsiLoader.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/gsi/backfill/GsiLoader.java @@ -17,7 +17,11 @@ package com.alibaba.polardbx.executor.gsi.backfill; import com.alibaba.polardbx.executor.backfill.Extractor; +import com.alibaba.polardbx.common.jdbc.ParameterContext; +import com.alibaba.polardbx.common.properties.ConnectionParams; import com.alibaba.polardbx.executor.backfill.Loader; +import com.alibaba.polardbx.executor.common.ExecutorContext; +import com.alibaba.polardbx.executor.common.TopologyHandler; import com.alibaba.polardbx.executor.cursor.Cursor; import com.alibaba.polardbx.executor.gsi.InsertIndexExecutor; import com.alibaba.polardbx.executor.gsi.PhysicalPlanBuilder; @@ -42,6 +46,7 @@ import org.apache.calcite.sql.fun.SqlStdOperatorTable; import org.apache.calcite.sql.parser.SqlParserPos; +import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Set; @@ -49,6 +54,8 @@ import java.util.stream.Collectors; import static com.alibaba.polardbx.common.TddlConstants.IMPLICIT_COL_NAME; +import static com.alibaba.polardbx.executor.columns.ColumnBackfillExecutor.isAllDnUseXDataSource; +import static org.apache.calcite.sql.fun.SqlStdOperatorTable.EQUALS; /** * Fill batch data into index table with duplication check @@ -57,14 +64,14 @@ public class GsiLoader extends Loader { private GsiLoader(String schemaName, String tableName, SqlInsert insert, SqlInsert insertIgnore, ExecutionPlan checkerPlan, int[] checkerPkMapping, int[] checkerParamMapping, - BiFunction, ExecutionContext, List> executeFunc) { + BiFunction, ExecutionContext, List> executeFunc, String backfillReturning) { super(schemaName, tableName, insert, insertIgnore, checkerPlan, checkerPkMapping, checkerParamMapping, - executeFunc, false); + executeFunc, false, backfillReturning); } public static Loader create(String schemaName, String primaryTable, String indexTable, BiFunction, ExecutionContext, List> executeFunc, - boolean useHint, ExecutionContext ec) { + boolean useHint, boolean canUseReturning, ExecutionContext ec) { final OptimizerContext optimizerContext = OptimizerContext.getContext(schemaName); // Construct target table @@ -120,7 +127,8 @@ public static Loader create(String schemaName, String primaryTable, String index final TddlRuleManager tddlRuleManager = optimizerContext.getRuleManager(); final Set filterColumns = Sets.newTreeSet(String::compareToIgnoreCase); final Set primaryKeys = Sets.newTreeSet(String::compareToIgnoreCase); - primaryKeys.addAll(Extractor.getPrimaryKeys(primaryTableMeta, ec)); + final List pkList = Extractor.getPrimaryKeys(primaryTableMeta, ec); + primaryKeys.addAll(pkList); filterColumns.addAll(primaryKeys); filterColumns.addAll(tddlRuleManager.getSharedColumns(primaryTable)); filterColumns.addAll(tddlRuleManager.getSharedColumns(indexTable)); @@ -158,14 +166,20 @@ public static Loader create(String schemaName, String primaryTable, String index checkerPlan, checkerPkMapping, checkerParamMapping, - executeFunc); + executeFunc, + canUseReturning ? String.join(",", pkList) : null); } @Override public int executeInsert(SqlInsert sqlInsert, String schemaName, String tableName, ExecutionContext executionContext, String sourceDbIndex, String phyTableName) { TableMeta tableMeta = executionContext.getSchemaManager(schemaName).getTable(tableName); - return InsertIndexExecutor - .insertIntoTable(null, sqlInsert, tableMeta, schemaName, executionContext, executeFunc, false); + List> returningRes = new ArrayList<>(); + int affectRows = InsertIndexExecutor + .insertIntoTable(null, sqlInsert, tableMeta, "", "", + schemaName, executionContext, executeFunc, false, true, + "", usingBackfillReturning, returningRes); + + return usingBackfillReturning ? getReturningAffectRows(returningRes, executionContext) : affectRows; } } diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/gsi/utils/Transformer.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/gsi/utils/Transformer.java index 3cb7af189..40c3b3295 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/gsi/utils/Transformer.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/gsi/utils/Transformer.java @@ -151,6 +151,10 @@ public static List> convertUpperBoundWithDefaultF * @param cursor result cursor of select * @return batch parameters for insert */ + public static List> buildBatchParam(Cursor cursor, boolean useBinary) { + return buildBatchParam(cursor, useBinary, null); + } + public static List> buildBatchParam(Cursor cursor, boolean useBinary, Set notConvertColumns) { final List> batchParams = new ArrayList<>(); diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/handler/LogicalShowCreateTableHandler.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/handler/LogicalShowCreateTableHandler.java index 23aef2d26..1b67ec98f 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/handler/LogicalShowCreateTableHandler.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/handler/LogicalShowCreateTableHandler.java @@ -115,7 +115,7 @@ public static String reorgLogicalColumnOrder(String schemaName, String logicalTa for (SQLTableElement tableElement : createTableStmt.getTableElementList()) { if (tableElement instanceof SQLColumnDefinition) { String physicalColumnName = - SQLUtils.normalize(((SQLColumnDefinition) tableElement).getColumnName()); + SQLUtils.normalizeNoTrim(((SQLColumnDefinition) tableElement).getColumnName()); if (TStringUtil.equalsIgnoreCase(physicalColumnName, logicalColumn.columnName)) { newTableElements.add(tableElement); break; diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/handler/LogicalShowCreateTablesForPartitionDatabaseHandler.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/handler/LogicalShowCreateTablesForPartitionDatabaseHandler.java index 2c2de2aa2..86d8536f3 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/handler/LogicalShowCreateTablesForPartitionDatabaseHandler.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/handler/LogicalShowCreateTablesForPartitionDatabaseHandler.java @@ -26,10 +26,11 @@ import com.alibaba.polardbx.common.properties.ConnectionParams; import com.alibaba.polardbx.common.properties.ConnectionProperties; import com.alibaba.polardbx.common.utils.TStringUtil; -import com.alibaba.polardbx.config.ConfigDataMode; import com.alibaba.polardbx.common.utils.logger.Logger; import com.alibaba.polardbx.common.utils.logger.LoggerFactory; +import com.alibaba.polardbx.config.ConfigDataMode; import com.alibaba.polardbx.druid.sql.SQLUtils; +import com.alibaba.polardbx.druid.sql.ast.SQLExpr; import com.alibaba.polardbx.druid.sql.ast.SQLName; import com.alibaba.polardbx.druid.sql.ast.SQLOrderingSpecification; import com.alibaba.polardbx.druid.sql.ast.SQLPartitionBy; @@ -66,6 +67,8 @@ import com.alibaba.polardbx.gms.metadb.table.ColumnarTableEvolutionRecord; import com.alibaba.polardbx.gms.metadb.table.IndexStatus; import com.alibaba.polardbx.gms.metadb.table.IndexVisibility; +import com.alibaba.polardbx.gms.metadb.table.TablesAccessor; +import com.alibaba.polardbx.gms.metadb.table.TablesRecord; import com.alibaba.polardbx.gms.tablegroup.TableGroupConfig; import com.alibaba.polardbx.gms.topology.DbInfoManager; import com.alibaba.polardbx.optimizer.OptimizerContext; @@ -324,7 +327,7 @@ public Cursor handle(RelNode logicalPlan, ExecutionContext executionContext) { List indexDefs = buildIndexDefs(schemaName, gsiMeta, tableName, tableMeta, localIndexes, showCreateTable.isFull(), - needShowHashByRange); + needShowHashByRange, executionContext); createTable.getTableElementList().addAll(indexDefs); if (tableMeta.isAutoPartition() && showCreateTable.isFull()) { @@ -572,7 +575,10 @@ public List buildIndexDefs(String schemaName, TableMeta meta, List localIndexes, boolean full, - boolean needShowHashByRange) { + boolean needShowHashByRange, + ExecutionContext executionContext) { + boolean enableUseKeyForAllLocalIndex = + executionContext.getParamManager().getBoolean(ConnectionParams.ENABLE_USE_KEY_FOR_ALL_LOCAL_INDEX); Set ignoredLocalIndexNames = new TreeSet<>(String.CASE_INSENSITIVE_ORDER); List indexDefs = new ArrayList<>(); if (meta.withGsi() && gsiMeta.getTableMeta() != null && !gsiMeta.getTableMeta().isEmpty()) { @@ -638,6 +644,8 @@ public List buildIndexDefs(String schemaName, final MySqlUnique indeDef = new MySqlUnique(); indeDef.getIndexDefinition().setIndex(true); + boolean isAutoPartTbl = meta.isAutoPartition(); + useKeyInsteadOfIndexIfNeed(full, enableUseKeyForAllLocalIndex, isAutoPartTbl, indeDef); if (!indexMeta.nonUnique) { indeDef.getIndexDefinition().setType("UNIQUE"); } @@ -665,6 +673,11 @@ public List buildIndexDefs(String schemaName, if (options != null) { indeDef.setDictionaryColumns(options.get(ColumnarTableOptions.DICTIONARY_COLUMNS)); } + TablesAccessor tablesAccessor = new TablesAccessor(); + String engine = getColumnarIndexEngine(schemaName, indexMeta.indexName, tablesAccessor); + if (engine != null) { + indeDef.setEngineName(new SQLIdentifierExpr(engine)); + } } if (!coveringColumns.isEmpty() || full || !meta.isAutoPartition()) { @@ -682,12 +695,14 @@ public List buildIndexDefs(String schemaName, indexName = SQLUtils.normalizeNoTrim(key.getName().getSimpleName()); if (meta.isAutoPartition() || full) { key.getIndexDefinition().setLocal(true); + removeLocalKeyWordOnShowCreateTableIfNeed(full, enableUseKeyForAllLocalIndex, key); } } else if (localIndexElement instanceof MySqlTableIndex) { MySqlTableIndex key = (MySqlTableIndex) localIndexElement; indexName = SQLUtils.normalizeNoTrim(key.getName().getSimpleName()); if (meta.isAutoPartition() || full) { key.setLocal(true); + removeLocalKeyWordOnShowCreateTableIfNeed(full, enableUseKeyForAllLocalIndex, key); } } else { continue; @@ -721,6 +736,20 @@ private Map getColumnarIndexOptions(String schemaName, String in return null; } + public String getColumnarIndexEngine(String schemaName, String indexName, TablesAccessor accessor) { + try (Connection metaDbConn = MetaDbDataSource.getInstance().getConnection()) { + accessor.setConnection(metaDbConn); + TablesRecord record = accessor.query(schemaName, indexName, false); + if (record == null) { + return null; + } + return record.engine; + } catch (Throwable ex) { + logger.error("failed to query columnar engine info", ex); + } + return null; + } + public SQLPartitionBy buildSqlPartitionBy(GsiMetaManager.GsiTableMetaBean indexTableMeta, boolean needShowHashByRange) { String indexName = indexTableMeta.gsiMetaBean.indexName; @@ -754,4 +783,47 @@ private String tryAttachImplicitTableGroupInfo(ExecutionContext executionContext } return sql; } + + private void useKeyInsteadOfIndexIfNeed( + boolean full, + boolean enableUseKeyForAllLocalIndex, + boolean isAutoPartTbl, + MySqlUnique indexDef) { + if (enableUseKeyForAllLocalIndex && isAutoPartTbl && !full) { + indexDef.getIndexDefinition().setIndex(false); + indexDef.getIndexDefinition().setKey(true); + } + } + + private void removeLocalKeyWordOnShowCreateTableIfNeed(boolean showFullCreateTable, + boolean enableUseKeyForAllLocalIndex, + SQLTableElement keyAst) { + if (enableUseKeyForAllLocalIndex && !showFullCreateTable) { + if (keyAst instanceof MySqlTableIndex) { + MySqlTableIndex key = (MySqlTableIndex) keyAst; + key.setLocal(false); + SQLExpr oldCommentExpr = key.getComment(); + SQLExpr newCommentExpr = null; + if (oldCommentExpr == null) { + newCommentExpr = new SQLCharExpr("LOCAL INDEX"); + } else { + String oldCommentStr = SQLUtils.normalizeNoTrim(((SQLCharExpr) oldCommentExpr).getText()); + newCommentExpr = new SQLCharExpr(oldCommentStr + ", LOCAL INDEX"); + } + key.setComment(newCommentExpr); + } else if (keyAst instanceof MySqlKey) { + MySqlKey key = (MySqlKey) keyAst; + key.getIndexDefinition().setLocal(false); + SQLExpr oldCommentExpr = key.getComment(); + SQLExpr newCommentExpr = null; + if (oldCommentExpr == null) { + newCommentExpr = new SQLCharExpr("LOCAL KEY"); + } else { + String oldCommentStr = SQLUtils.normalizeNoTrim(((SQLCharExpr) oldCommentExpr).getText()); + newCommentExpr = new SQLCharExpr(oldCommentStr + ", LOCAL KEY"); + } + key.setComment(newCommentExpr); + } + } + } } diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/handler/LogicalShowCreateTablesForShardingDatabaseHandler.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/handler/LogicalShowCreateTablesForShardingDatabaseHandler.java index aab6202ac..560e67c67 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/handler/LogicalShowCreateTablesForShardingDatabaseHandler.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/handler/LogicalShowCreateTablesForShardingDatabaseHandler.java @@ -707,7 +707,7 @@ public Cursor handle(RelNode logicalPlan, ExecutionContext executionContext) { // Only single to single table was allowed to create foreign keys. String defaultGroupName = tddlRuleManager.getDefaultDbIndex().toLowerCase(); String phyReferencedTableName = - SQLUtils.normalize(foreignKey.getReferencedTableName().getSimpleName()); + SQLUtils.normalizeNoTrim(foreignKey.getReferencedTableName().getSimpleName()); String fullQualifiedPhyRefTableName = defaultGroupName + "." + phyReferencedTableName; Set logicalTableNames = diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/handler/ddl/LogicalAlterTableAddPartitionProxyHandler.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/handler/ddl/LogicalAlterTableAddPartitionProxyHandler.java index d596c8e4e..8d3996712 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/handler/ddl/LogicalAlterTableAddPartitionProxyHandler.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/handler/ddl/LogicalAlterTableAddPartitionProxyHandler.java @@ -68,7 +68,6 @@ protected DdlJob buildDdlJob(BaseDdlOperation logicalDdlPlan, ExecutionContext e * sql 'split partition default_part into (partition p2 values in(3,4), partition p3 values in(5,6), partition default_part values in(default))' * 2. use new sql to build split partition subJob * */ - String splitSql; if (!isAddSubPartition) { splitSql = AlterTableGroupUtils.convertAddListRelToSplitListSql(alterTableAddPartition, true, diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/handler/ddl/LogicalAlterTableHandler.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/handler/ddl/LogicalAlterTableHandler.java index 4dfa8653e..3340a094f 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/handler/ddl/LogicalAlterTableHandler.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/handler/ddl/LogicalAlterTableHandler.java @@ -627,6 +627,7 @@ private DdlJob buildAlterTableEngineJob(BaseDdlOperation logicalDdlPlan, Executi case LOCAL_DISK: case EXTERNAL_DISK: case NFS: + case ABS: // innodb -> file store return new LogicalAlterTableEngineHandler(repo, sourceEngine, targetEngine) .buildDdlJob(logicalDdlPlan, executionContext); @@ -639,6 +640,7 @@ private DdlJob buildAlterTableEngineJob(BaseDdlOperation logicalDdlPlan, Executi case OSS: case LOCAL_DISK: case EXTERNAL_DISK: + case ABS: case NFS: { switch (targetEngine) { case INNODB: @@ -2238,10 +2240,12 @@ private List buildIndexDefinition4Drds(String schemaName, St List gsiList = new ArrayList<>(); { + TableRule tableRule = + executionContext.getSchemaManager(schemaName).getTddlRuleManager().getTableRule(tableName); String targetTableName = GsiUtils.generateRandomGsiName(tableName); tableNameMap.put(tableName, targetTableName); tableNameMapReverse.put(targetTableName, tableName); - needReHash.put(targetTableName, alterTablePreparedData.isNeedRepartition()); + needReHash.put(targetTableName, tableRule.isBroadcast() || alterTablePreparedData.isNeedRepartition()); ast.setLogicalSecondaryTableName(targetTableName); SqlAlterTablePartitionKey sqlAlterTablePartitionKey = diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/handler/ddl/LogicalCreateFileStorageHandler.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/handler/ddl/LogicalCreateFileStorageHandler.java index adfe05030..b5db773dc 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/handler/ddl/LogicalCreateFileStorageHandler.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/handler/ddl/LogicalCreateFileStorageHandler.java @@ -62,6 +62,7 @@ protected DdlJob buildDdlJob(BaseDdlOperation logicalDdlPlan, ExecutionContext e // check fileStorageInfoKey Map with = new HashMap<>(); + Map azureSettings = null; for (Map.Entry e : createFileStorage.getWith().entrySet()) { String key = e.getKey(); String value = e.getValue(); @@ -70,8 +71,34 @@ protected DdlJob buildDdlJob(BaseDdlOperation logicalDdlPlan, ExecutionContext e throw new TddlRuntimeException(ErrorCode.ERR_EXECUTE_ON_OSS, "error key: " + key); } with.put(fileStorageInfoKey, value); + if (fileStorageInfoKey == FileStorageInfoKey.AZURE_CONNECTION_STRING) { + azureSettings = parseConnectionString(value); + } } - return new CreateFileStorageJobFactory(engine, with, executionContext).create(); + return new CreateFileStorageJobFactory(engine, with, azureSettings, executionContext).create(); + } + + private static Map parseConnectionString( + String connectionString) { + Map parts = new HashMap<>(); + // Split the connection string on semicolons + String[] pairs = connectionString.split(";"); + for (String pair : pairs) { + // Split each pair on the first equals sign to separate key and value + int idx = pair.indexOf('='); + if (idx > 0 && idx < pair.length() - 1) { + // Ensure that the key and value are non-empty + String key = pair.substring(0, idx); + String value = pair.substring(idx + 1); + FileStorageInfoKey.AzureConnectionStringKey azureKey; + if ((azureKey = FileStorageInfoKey.AzureConnectionStringKey.of(key)) == null) { + throw new TddlRuntimeException(ErrorCode.ERR_EXECUTE_ON_OSS, + "error key of connection string: " + key); + } + parts.put(azureKey, value); + } + } + return parts; } } diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/handler/ddl/LogicalDropDatabaseHandler.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/handler/ddl/LogicalDropDatabaseHandler.java index 8c052713a..d20768d0d 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/handler/ddl/LogicalDropDatabaseHandler.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/handler/ddl/LogicalDropDatabaseHandler.java @@ -106,6 +106,7 @@ public Cursor handleByGms(RelNode logicalPlan, ExecutionContext executionContext dropDbInfo.setTs(ts); Long socketTimeout = executionContext.getParamManager().getLong(ConnectionParams.SOCKET_TIMEOUT); dropDbInfo.setSocketTimeout(socketTimeout == null ? -1 : socketTimeout); + DbTopologyManager.dropLogicalDb(dropDbInfo); CdcManagerHelper.getInstance() .notifyDdl(dbName, null, sqlDropDatabase.getKind().name(), executionContext.getOriginSql(), diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/handler/subhandler/InformationSchemaGlobalIndexesHandler.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/handler/subhandler/InformationSchemaGlobalIndexesHandler.java index e9f79811f..61e2d9ab2 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/handler/subhandler/InformationSchemaGlobalIndexesHandler.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/handler/subhandler/InformationSchemaGlobalIndexesHandler.java @@ -183,7 +183,7 @@ private void generateRows(String schemaName, //query gsi statistics info Map> schemaAndGsis = new TreeMap<>(String::compareToIgnoreCase); gsiTableBeans.forEach(tableBean -> { - if (tableBean != null && tableBean.gsiMetaBean != null) { + if (tableBean != null && tableBean.gsiMetaBean != null && !tableBean.gsiMetaBean.columnarIndex) { GsiMetaManager.GsiIndexMetaBean indexBean = tableBean.gsiMetaBean; String schema = indexBean.tableSchema; String index = indexBean.indexName; @@ -223,7 +223,7 @@ private void generateRows(String schemaName, // make sure all GSI tables are presented in the final result gsiTableBeans.forEach(tableBean -> { - if (tableBean != null && tableBean.gsiMetaBean != null) { + if (tableBean != null && tableBean.gsiMetaBean != null && !tableBean.gsiMetaBean.columnarIndex) { GsiMetaManager.GsiIndexMetaBean indexBean = tableBean.gsiMetaBean; // visit count, last access time String schema = indexBean.tableSchema; diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/mpp/execution/SqlQueryExecution.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/mpp/execution/SqlQueryExecution.java index 444dfb4c3..a049a4d56 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/mpp/execution/SqlQueryExecution.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/mpp/execution/SqlQueryExecution.java @@ -159,7 +159,7 @@ public void start() { NodeSelector nodeSelector = nodeScheduler.createNodeSelector(session, limitNode, randomNode); if (nodeSelector instanceof ColumnarNodeSelector) { - optimizeScheduleUnderColumnar(nodeSelector); + optimizeScheduleUnderColumnar((ColumnarNodeSelector) nodeSelector); } planDistribution(subPlan.getKey(), nodeSelector); stateMachine.recordDistributedPlanningTime(distributedPlanningStart); @@ -182,12 +182,14 @@ public void start() { } } - private void optimizeScheduleUnderColumnar(NodeSelector nodeSelector) { + private void optimizeScheduleUnderColumnar(ColumnarNodeSelector nodeSelector) { if (ExecUtils.needPutIfAbsent(session.getClientContext(), ConnectionProperties.SCHEDULE_BY_PARTITION)) { PartScheduleChecker checker = new PartScheduleChecker(nodeSelector.getOrderedNode().size()); physicalPlan.accept(checker); + boolean scheduleByPartition = checker.canScheduleByPart(); session.getClientContext() - .putIntoHintCmds(ConnectionProperties.SCHEDULE_BY_PARTITION, checker.canScheduleByPart()); + .putIntoHintCmds(ConnectionProperties.SCHEDULE_BY_PARTITION, scheduleByPartition); + nodeSelector.setScheduleByPartition(scheduleByPartition); logger.info(MessageFormat.format("Trace id is: {0}, schedule by partition is {1}", session.getClientContext().getTraceId(), checker.canScheduleByPart())); } diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/mpp/execution/scheduler/ColumnarNodeSelector.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/mpp/execution/scheduler/ColumnarNodeSelector.java index 43c68917b..5c7d7653f 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/mpp/execution/scheduler/ColumnarNodeSelector.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/mpp/execution/scheduler/ColumnarNodeSelector.java @@ -16,6 +16,8 @@ package com.alibaba.polardbx.executor.mpp.execution.scheduler; +import com.alibaba.polardbx.common.exception.TddlRuntimeException; +import com.alibaba.polardbx.common.exception.code.ErrorCode; import com.alibaba.polardbx.common.partition.MurmurHashUtils; import com.alibaba.polardbx.common.utils.Pair; import com.alibaba.polardbx.common.utils.logger.Logger; @@ -45,6 +47,8 @@ public class ColumnarNodeSelector extends SimpleNodeSelector { private Set nodeUsedByPairWise = new HashSet<>(); + private boolean scheduleByPartition = false; + public ColumnarNodeSelector(InternalNodeManager nodeManager, NodeTaskMap nodeTaskMap, Set nodes, int limitCandidates, int maxSplitsPerNode, boolean enableOssRoundRobin, boolean randomNode, boolean enableTwoChoiceSchedule, boolean preferLocal) { @@ -57,10 +61,20 @@ public ColumnarNodeSelector(InternalNodeManager nodeManager, NodeTaskMap nodeTas public Multimap scheduleOssSplit(List splits, List candidateNodes, NodeAssignmentStats assignmentStats, Multimap assignment) { + if (scheduleByPartition) { + return scheduleColumnarByPartition(splits, candidateNodes, assignmentStats, assignment); + } Pair, List> splitsPair = splitByDefinedPartNum(splits); // assign non partition first, and handle schedule skew if happened assignNonPartition(splitsPair.getValue(), candidateNodes, assignmentStats, assignment); - assignByPartition(splitsPair.getKey(), candidateNodes, assignmentStats, assignment); + assignByPartition(splitsPair.getKey(), candidateNodes, assignmentStats, assignment, false); + return assignment; + } + + private Multimap scheduleColumnarByPartition(List splits, List candidateNodes, + NodeAssignmentStats assignmentStats, + Multimap assignment) { + assignByPartition(splits, candidateNodes, assignmentStats, assignment, true); return assignment; } @@ -111,7 +125,7 @@ private void scheduleByTwoChoice(List candidateNodes, NodeAssignmentStats */ public static int chooseBucketByTwoChoice(List files, int allNodes, Map balancedAssign) { long fileNameCode = files.hashCode(); - long hashCode1 = MurmurHashUtils.murmurHashWithZeroSeed(fileNameCode); + long hashCode1 = MurmurHashUtils.murmurHash128WithZeroSeed(fileNameCode); long hashCode2 = XxHash64.hash(fileNameCode); // calculate two bucket @@ -153,7 +167,7 @@ private Pair, List> splitByDefinedPartNum(List splits) private void assignByPartition(List splits, List candidateNodes, NodeAssignmentStats assignmentStats, - Multimap assignment) { + Multimap assignment, boolean forceGenPart) { if (splits.isEmpty()) { return; } @@ -172,6 +186,10 @@ private void assignByPartition(List splits, List candidateNodes, for (Split split : splits) { OssSplit ossSplit = (OssSplit) (split.getConnectorSplit()); int partNum = ossSplit.getPartIndex(); + if (partNum < 0 && forceGenPart) { + partNum = OssSplit.calcPartition(ossSplit.getLogicalSchema(), ossSplit.getLogicalTableName(), + ossSplit.getPhysicalSchema(), ossSplit.getPhyTableNameList().get(0)); + } int nodeId = partNum % candidateNodes.size(); if (log.isDebugEnabled()) { log.debug("oss split: " + ossSplit + " part number: " + partNum + " node id: " + nodeId + "\n"); @@ -212,4 +230,8 @@ private void updateOssSplitPartInfo(List splits, Map scheduleOssSplit(List splits, List long hashCode; if (((OssSplit) split.getConnectorSplit()).getDesignatedFile() != null) { hashCode = ((OssSplit) split.getConnectorSplit()).getDesignatedFile().hashCode(); - hashCode = MurmurHashUtils.murmurHashWithZeroSeed(hashCode); + hashCode = MurmurHashUtils.murmurHash128WithZeroSeed(hashCode); } else { List phyTableNameList = ((OssSplit) split.getConnectorSplit()).getPhyTableNameList(); hashCode = phyTableNameList.stream().map(x -> x.hashCode()).reduce(31, (a, b) -> a + b).longValue(); - hashCode = MurmurHashUtils.murmurHashWithZeroSeed(hashCode); + hashCode = MurmurHashUtils.murmurHash128WithZeroSeed(hashCode); } int position = (int) hashCode % candidateNodes.size(); @@ -221,7 +221,7 @@ protected Multimap assignAllByFileName(List splits, List> randomAssign = new HashMap<>(); for (Split split : splits) { long hashCode = ((OssSplit) split.getConnectorSplit()).getDesignatedFile().hashCode(); - hashCode = MurmurHashUtils.murmurHashWithZeroSeed(hashCode); + hashCode = MurmurHashUtils.murmurHash128WithZeroSeed(hashCode); int position = (int) hashCode % candidateNodes.size(); if (position < 0) { diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/mpp/operator/LocalExecutionPlanner.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/mpp/operator/LocalExecutionPlanner.java index b690553b4..570cec737 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/mpp/operator/LocalExecutionPlanner.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/mpp/operator/LocalExecutionPlanner.java @@ -304,10 +304,6 @@ public List plan(PlanFragment fragment, OutputBuffer outputBuff RelNode relNode = fragment.getSerRootNode( context.getSchemaName(), PlannerContext.fromExecutionContext(context)); localBloomFilter = fragment.isLocalBloomFilter(); - //PipelineFactory 创建executor的构造函数中,可能会去引用RelMetadataProvider,所以这里需要保证一定是 - //DrdsRelMetadataProvider - RelMetadataQuery.THREAD_PROVIDERS.set(JaninoRelMetadataProvider.of( - relNode.getCluster().getMetadataProvider())); PipelineFragment pipelineFragment = new PipelineFragment(defaultParallelism, relNode); ExecutorFactory factory = visit(null, relNode, pipelineFragment); if (pipelineFragment.getParallelism() > 1 @@ -348,10 +344,6 @@ public List plan(RelNode relNode, LocalBufferExecutorFactory re OutputBufferMemoryManager manager, String queryId) { try { DefaultSchema.setSchemaName(context.getSchemaName()); - //PipelineFactory 创建executor的构造函数中,可能会去引用RelMetadataProvider,所以这里需要保证一定是 - //DrdsRelMetadataProvider - RelMetadataQuery.THREAD_PROVIDERS.set(JaninoRelMetadataProvider.of( - relNode.getCluster().getMetadataProvider())); PipelineFragment pipelineFragment = new PipelineFragment(defaultParallelism, relNode); ExecutorFactory factory = visit(null, relNode, pipelineFragment); diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/mpp/operator/factory/CteExecFactory.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/mpp/operator/factory/CteExecFactory.java index 1a3d57488..0d667d097 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/mpp/operator/factory/CteExecFactory.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/mpp/operator/factory/CteExecFactory.java @@ -59,10 +59,14 @@ public Executor createExecutor(ExecutionContext context, int index) { skip = getRexParam(cte.getOffset(), params); } } + long fetchSize = skip + fetch; + if (skip > 0 && fetch > 0 && fetchSize < 0) { + fetchSize = Long.MAX_VALUE; + } Executor anchorExecutor = anchorExecutorFactory.createExecutor(context, index); RecursiveCTEExec recursiveCTEExec = - new RecursiveCTEExec(cte.getCteName(), anchorExecutor, recursiveExecutorFactory, fetch + skip, context); + new RecursiveCTEExec(cte.getCteName(), anchorExecutor, recursiveExecutorFactory, fetchSize, context); recursiveCTEExec.setId(cte.getRelatedId()); if (context.getRuntimeStatistics() != null) { RuntimeStatHelper.registerStatForExec(cte, recursiveCTEExec, context); diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/mpp/operator/factory/LogicalViewExecutorFactory.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/mpp/operator/factory/LogicalViewExecutorFactory.java index 30eb9668c..001bf3f64 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/mpp/operator/factory/LogicalViewExecutorFactory.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/mpp/operator/factory/LogicalViewExecutorFactory.java @@ -28,7 +28,6 @@ import com.alibaba.polardbx.optimizer.core.rel.OrcTableScan; import com.google.common.base.Preconditions; import com.alibaba.polardbx.common.properties.ConnectionParams; -import com.alibaba.polardbx.common.utils.GeneralUtil; import com.alibaba.polardbx.common.utils.logger.Logger; import com.alibaba.polardbx.common.utils.logger.LoggerFactory; import com.alibaba.polardbx.executor.chunk.MutableChunk; @@ -77,8 +76,6 @@ import org.apache.calcite.rel.RelNode; import org.apache.calcite.rel.core.Join; import org.apache.calcite.rel.core.Sort; -import org.apache.calcite.rel.metadata.JaninoRelMetadataProvider; -import org.apache.calcite.rel.metadata.RelMetadataQuery; import org.apache.calcite.rex.RexCall; import org.apache.calcite.rex.RexNode; import org.jetbrains.annotations.NotNull; diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/mpp/operator/factory/TopNExecutorFactory.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/mpp/operator/factory/TopNExecutorFactory.java index 855856243..f74896546 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/mpp/operator/factory/TopNExecutorFactory.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/mpp/operator/factory/TopNExecutorFactory.java @@ -71,12 +71,20 @@ private synchronized List createAllExecutors(ExecutionContext context) skip = getRexParam(topN.offset, params); } } + long topSize = skip + fetch; + if (skip > 0 && fetch > 0 && topSize < 0) { + topSize = Long.MAX_VALUE; + } + for (int j = 0; j < parallelism; j++) { List sortList = topN.getCollation().getFieldCollations(); List orderBys = ExecUtils.convertFrom(sortList); - Executor exec = new SpilledTopNExec(dataTypeList, orderBys, skip + fetch, context, spillerFactory); - registerRuntimeStat(exec, topN, context); + Executor exec = new SpilledTopNExec(dataTypeList, orderBys, topSize, context, spillerFactory); + exec.setId(topN.getRelatedId()); + if (context.getRuntimeStatistics() != null) { + RuntimeStatHelper.registerStatForExec(topN, exec, context); + } executors.add(exec); } } diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/mpp/split/OssSplit.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/mpp/split/OssSplit.java index 28b6b9e50..5a17a07e8 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/mpp/split/OssSplit.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/mpp/split/OssSplit.java @@ -280,6 +280,10 @@ public static List getTableConcurrencySplit(OSSTableScan ossTableScan, allOrcFiles.clear(); } + if (allOrcFiles.isEmpty() && allCsvFiles.isEmpty()) { + return ImmutableList.of(); + } + // correct project column indexes (skip implicit column) ImmutableList projectList = ossTableScan.getOrcNode().getInProjects(); @@ -476,8 +480,8 @@ public static List getFileConcurrencySplit(OSSTableScan ossTableScan, } } - private static int calcPartition(String logicalSchema, String logicalTableName, String physicalSchema, - String physicalTableName) { + public static int calcPartition(String logicalSchema, String logicalTableName, String physicalSchema, + String physicalTableName) { PartitionInfo partInfo = OptimizerContext.getContext(logicalSchema).getPartitionInfoManager() .getPartitionInfo(logicalTableName); @@ -588,7 +592,16 @@ public OSSColumnTransformer getColumnTransformer(OSSTableScan ossTableScan, Exec String desinatedFileName; if (CollectionUtils.isEmpty(designatedFile)) { // for csv file - desinatedFileName = deltaReadOption.allCsvFiles.values().stream().findFirst().get().get(0); + Optional> fileNames = deltaReadOption.allCsvFiles.values().stream().findFirst(); + if (fileNames.isPresent()) { + if (fileNames.get().isEmpty()) { + return null; + } else { + desinatedFileName = fileNames.get().get(0); + } + } else { + return null; + } } else { // for orc file desinatedFileName = designatedFile.get(0); diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/operator/scan/impl/DictionaryDecimalColumnReader.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/operator/scan/impl/DictionaryDecimalColumnReader.java new file mode 100644 index 000000000..283c0ca71 --- /dev/null +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/operator/scan/impl/DictionaryDecimalColumnReader.java @@ -0,0 +1,175 @@ +/* + * Copyright [2013-2021], Alibaba Group Holding Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.alibaba.polardbx.executor.operator.scan.impl; + +import com.alibaba.polardbx.common.charset.MySQLUnicodeUtils; +import com.alibaba.polardbx.common.datatype.DecimalConverter; +import com.alibaba.polardbx.common.datatype.DecimalStructure; +import com.alibaba.polardbx.common.datatype.DecimalTypeBase; +import com.alibaba.polardbx.common.utils.GeneralUtil; +import com.alibaba.polardbx.executor.chunk.DecimalBlock; +import com.alibaba.polardbx.executor.chunk.RandomAccessBlock; +import com.alibaba.polardbx.executor.operator.scan.StripeLoader; +import com.alibaba.polardbx.executor.operator.scan.metrics.RuntimeMetrics; +import com.alibaba.polardbx.optimizer.core.datatype.DecimalType; +import com.google.common.base.Preconditions; +import io.airlift.slice.Slice; +import org.apache.orc.OrcProto; +import org.apache.orc.impl.OrcIndex; + +import java.io.IOException; +import java.util.Arrays; + +import static com.alibaba.polardbx.common.datatype.DecimalTypeBase.DECIMAL_MEMORY_SIZE; + +public class DictionaryDecimalColumnReader extends AbstractDictionaryColumnReader { + + private static final int DEFAULT_BYTE_BUFFER_LENGTH = 64; + private byte[] byteBuffer = null; + + public DictionaryDecimalColumnReader(int columnId, boolean isPrimaryKey, + StripeLoader stripeLoader, OrcIndex orcIndex, + RuntimeMetrics metrics, OrcProto.ColumnEncoding encoding, int indexStride, + boolean enableMetrics) { + super(columnId, isPrimaryKey, stripeLoader, orcIndex, metrics, encoding, indexStride, enableMetrics); + } + + @Override + public void next(RandomAccessBlock randomAccessBlock, int positionCount) throws IOException { + Preconditions.checkArgument(isOpened.get()); + Preconditions.checkArgument(!openFailed.get()); + Preconditions.checkArgument(randomAccessBlock instanceof DecimalBlock); + init(); + + long start = System.nanoTime(); + + DecimalBlock block = (DecimalBlock) randomAccessBlock; + readToDecimal(block, positionCount); + + // metrics + if (enableMetrics) { + parseTimer.inc(System.nanoTime() - start); + } + } + + private void readToDecimal(DecimalBlock block, int positionCount) throws IOException { + boolean[] nulls = block.nulls(); + Slice memorySegments = block.getMemorySegments(); + DecimalType decimalType = (DecimalType) block.getType(); + Preconditions.checkArgument(nulls != null && nulls.length == positionCount); + + if (dictionary == null) { + // all values are null + Preconditions.checkArgument(present != null); + block.setHasNull(true); + + for (int i = 0; i < positionCount; i++) { + nulls[i] = true; + lastPosition++; + } + + } else { + initByteBuffer(); + if (present == null) { + block.setHasNull(false); + for (int i = 0; i < positionCount; i++) { + // no null value. + int dictId = (int) dictIdReader.next(); + Slice sliceValue = dictionary.getValue(dictId); + int len = sliceValue.length(); + byte[] tmp = getByteBuffer(len); + boolean isUtf8FromLatin1 = + MySQLUnicodeUtils.utf8ToLatin1(sliceValue, tmp, len); + if (!isUtf8FromLatin1) { + // in columnar, decimals are stored already in latin1 encoding + sliceValue.getBytes(0, tmp, 0, len); + } + int fromIndex = i * DECIMAL_MEMORY_SIZE; + DecimalStructure d2 = new DecimalStructure(memorySegments.slice(fromIndex, DECIMAL_MEMORY_SIZE)); + int[] result = + DecimalConverter.binToDecimal(tmp, d2, decimalType.getPrecision(), decimalType.getScale()); + nulls[i] = false; + lastPosition++; + + if (result[1] != DecimalTypeBase.E_DEC_OK) { + LOGGER.error(String.format("Decoding dictionary decimal failed, dictId: %d, bytes: [%s]", + dictId, Arrays.toString(sliceValue.getBytes()))); + throw GeneralUtil.nestedException("Error occurs while decoding dictionary decimal"); + } + } + + // destroy null array to save the memory. + block.destroyNulls(true); + } else { + block.setHasNull(true); + + // there are some null values + for (int i = 0; i < positionCount; i++) { + if (present.next() != 1) { + // for present + nulls[i] = true; + } else { + // if not null + int dictId = (int) dictIdReader.next(); + Slice sliceValue = dictionary.getValue(dictId); + int len = sliceValue.length(); + byte[] tmp = getByteBuffer(len); + boolean isUtf8FromLatin1 = + MySQLUnicodeUtils.utf8ToLatin1(sliceValue, tmp, len); + if (!isUtf8FromLatin1) { + // in columnar, decimals are stored already in latin1 encoding + sliceValue.getBytes(0, tmp, 0, len); + } + int fromIndex = i * DECIMAL_MEMORY_SIZE; + DecimalStructure d2 = + new DecimalStructure(memorySegments.slice(fromIndex, DECIMAL_MEMORY_SIZE)); + int[] result = + DecimalConverter.binToDecimal(tmp, d2, decimalType.getPrecision(), decimalType.getScale()); + nulls[i] = false; + if (result[1] != DecimalTypeBase.E_DEC_OK) { + LOGGER.error(String.format("Decoding dictionary decimal failed, dictId: %d, bytes: [%s]", + dictId, Arrays.toString(sliceValue.getBytes()))); + throw GeneralUtil.nestedException("Error occurs while decoding dictionary decimal"); + } + } + lastPosition++; + } + } + } + } + + private void initByteBuffer() { + if (this.byteBuffer == null) { + this.byteBuffer = new byte[DEFAULT_BYTE_BUFFER_LENGTH]; + } + } + + /** + * @return local byte buffer with ensured capacity + */ + private byte[] getByteBuffer(int len) { + if (this.byteBuffer == null) { + this.byteBuffer = new byte[len]; + return this.byteBuffer; + } + if (this.byteBuffer.length < len) { + this.byteBuffer = new byte[len]; + return this.byteBuffer; + } + return byteBuffer; + } +} diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/operator/scan/impl/RowGroupIteratorImpl.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/operator/scan/impl/RowGroupIteratorImpl.java index c0c8b728e..d35aae9e9 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/operator/scan/impl/RowGroupIteratorImpl.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/operator/scan/impl/RowGroupIteratorImpl.java @@ -200,6 +200,42 @@ public RowGroupIteratorImpl( init(); } + static ColumnReader getDecimalReader(boolean enableDecimal64, ExecutionContext context, DataType inputType, + int colId, boolean isPrimaryKey, + StripeLoader stripeLoader, OrcIndex orcIndex, + RuntimeMetrics metrics, int indexStride, + OrcProto.ColumnEncoding encoding, boolean enableMetrics) { + + if (enableDecimal64 && TypeUtils.isDecimal64Precision(inputType.getPrecision())) { + // whether to read a decimal64-encoded column into a decimal64 block + boolean readIntoDecimal64 = context.getParamManager() + .getBoolean(ConnectionParams.ENABLE_COLUMNAR_DECIMAL64); + if (readIntoDecimal64) { + return new LongColumnReader(colId, isPrimaryKey, stripeLoader, orcIndex, metrics, + encoding.getKind(), + indexStride, enableMetrics); + } else { + return new Decimal64ToDecimalColumnReader(colId, isPrimaryKey, stripeLoader, orcIndex, metrics, + encoding.getKind(), + indexStride, enableMetrics); + } + } else { + switch (encoding.getKind()) { + case DIRECT: + case DIRECT_V2: { + return new DecimalColumnReader(colId, isPrimaryKey, stripeLoader, orcIndex, metrics, + enableMetrics); + } + case DICTIONARY: + case DICTIONARY_V2: + return new DictionaryDecimalColumnReader(colId, isPrimaryKey, stripeLoader, orcIndex, metrics, + encoding, indexStride, enableMetrics); + default: + throw GeneralUtil.nestedException("Unsupported encoding " + encoding.getKind()); + } + } + } + private void init() { this.stripeLoader = new AsyncStripeLoader( ioExecutor, fileSystem, configuration, filePath, @@ -405,28 +441,9 @@ private void generateColumnReader(boolean enableMetrics, int colId, OrcProto.Col } case MYSQL_TYPE_DECIMAL: case MYSQL_TYPE_NEWDECIMAL: { - if (enableDecimal64 && TypeUtils.isDecimal64Precision(inputType.getPrecision())) { - // whether to read a decimal64-encoded column into a decimal64 block - boolean readIntoDecimal64 = context.getParamManager() - .getBoolean(ConnectionParams.ENABLE_COLUMNAR_DECIMAL64); - ColumnReader columnReader; - if (readIntoDecimal64) { - columnReader = new LongColumnReader(colId, isPrimaryKey, stripeLoader, orcIndex, metrics, - encoding.getKind(), - indexStride, enableMetrics); - } else { - columnReader = - new Decimal64ToDecimalColumnReader(colId, isPrimaryKey, stripeLoader, orcIndex, metrics, - encoding.getKind(), - indexStride, enableMetrics); - } - columnReaders.put(colId, columnReader); - } else { - ColumnReader columnReader = - new DecimalColumnReader(colId, isPrimaryKey, stripeLoader, orcIndex, metrics, - enableMetrics); - columnReaders.put(colId, columnReader); - } + ColumnReader columnReader = getDecimalReader(enableDecimal64, context, inputType, colId, isPrimaryKey, + stripeLoader, orcIndex, metrics, indexStride, encoding, enableMetrics); + columnReaders.put(colId, columnReader); break; } case MYSQL_TYPE_VAR_STRING: diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/partitionmanagement/AlterTableGroupUtils.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/partitionmanagement/AlterTableGroupUtils.java index b01723c6c..caba1309c 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/partitionmanagement/AlterTableGroupUtils.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/partitionmanagement/AlterTableGroupUtils.java @@ -2924,18 +2924,70 @@ public static String convertAddListRelToSplitListSql(LogicalAlterTableAddPartiti } } - List newPartitionsStr = new ArrayList<>(); - for (SqlPartition newSqlPartition : newPartitions) { - newPartitionsStr.add(newSqlPartition.toString()); + boolean useSubPart = partitionInfo.getPartitionBy().getSubPartitionBy() != null; + boolean useSubPartTemp = false; + if (useSubPart) { + useSubPartTemp = partitionInfo.getPartitionBy().getSubPartitionBy().isUseSubPartTemplate(); } - PartitionSpec tobePrintDefaultSpec = defaultSpec.copy(); - tobePrintDefaultSpec.setLogical(false); - newPartitionsStr.add( - tobePrintDefaultSpec.toString() - ); - String finalNewpartsExpr = String.join(", ", newPartitionsStr); - return MessageFormat.format(SPLIT_TABLEGROUP_SQL, objectName, defaultSpec.getName(), finalNewpartsExpr); + if (!useSubPart || useSubPartTemp) { + /** + * Only for 1st-level-part of list + */ + List newPartitionsStr = new ArrayList<>(); + for (SqlPartition newSqlPartition : newPartitions) { + newPartitionsStr.add(newSqlPartition.toString()); + } + + PartitionSpec tobePrintDefaultSpec = defaultSpec.copy(); + tobePrintDefaultSpec.setLogical(false); + newPartitionsStr.add( + tobePrintDefaultSpec.toString() + ); + String finalNewPartsExpr = String.join(", ", newPartitionsStr); + String finalSplitSql = + MessageFormat.format(SPLIT_TABLEGROUP_SQL, objectName, defaultSpec.getName(), finalNewPartsExpr); + return finalSplitSql; + } else { + /** + * For 1st-level-part with specifying 2nd-level-part of list + */ + + /** + * Here only handle the add partition operations + * of non-template-subpartition list/list_columns containing default partition or + * non-template-subpartition range/range_columns containing maxvalue partition + */ + + List newPartitionsStr = new ArrayList<>(); + for (SqlPartition newSqlPartition : newPartitions) { + newPartitionsStr.add(newSqlPartition.toString()); + } + + PartitionSpec tobePrintDefaultSpec = defaultSpec.copy(); + newPartitionsStr.add( + tobePrintDefaultSpec.toString() + ); + + String finalNewpartsExpr = String.join(", ", newPartitionsStr); + String finalSplitSql = + MessageFormat.format(SPLIT_TABLEGROUP_SQL, objectName, defaultSpec.getName(), finalNewpartsExpr); + return finalSplitSql; + } + +// List newPartitionsStr = new ArrayList<>(); +// for (SqlPartition newSqlPartition : newPartitions) { +// newPartitionsStr.add(newSqlPartition.toString()); +// } +// +// PartitionSpec tobePrintDefaultSpec = defaultSpec.copy(); +// tobePrintDefaultSpec.setLogical(false); +// newPartitionsStr.add( +// tobePrintDefaultSpec.toString() +// ); +// String finalNewpartsExpr = String.join(", ", newPartitionsStr); +// String finalSplitSql = MessageFormat.format(SPLIT_TABLEGROUP_SQL, objectName, defaultSpec.getName(), finalNewpartsExpr); +// return finalSplitSql; } public static String convertAddListRelToSplitListSqlForSubPartition(LogicalAlterTableAddPartition addPartitionPlan, diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/partitionmanagement/backfill/AlterTableGroupLoader.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/partitionmanagement/backfill/AlterTableGroupLoader.java index cc53efc2a..0726b4711 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/partitionmanagement/backfill/AlterTableGroupLoader.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/partitionmanagement/backfill/AlterTableGroupLoader.java @@ -16,6 +16,7 @@ package com.alibaba.polardbx.executor.partitionmanagement.backfill; +import com.alibaba.polardbx.common.jdbc.ParameterContext; import com.alibaba.polardbx.common.utils.Pair; import com.alibaba.polardbx.executor.backfill.Extractor; import com.alibaba.polardbx.executor.backfill.Loader; @@ -23,7 +24,6 @@ import com.alibaba.polardbx.executor.gsi.InsertIndexExecutor; import com.alibaba.polardbx.executor.gsi.PhysicalPlanBuilder; import com.alibaba.polardbx.optimizer.OptimizerContext; -import com.alibaba.polardbx.optimizer.config.table.GlobalIndexMeta; import com.alibaba.polardbx.optimizer.config.table.TableMeta; import com.alibaba.polardbx.optimizer.context.ExecutionContext; import com.alibaba.polardbx.optimizer.core.planner.ExecutionPlan; @@ -45,12 +45,15 @@ import org.apache.calcite.sql.parser.SqlParserPos; import org.apache.commons.lang.StringUtils; +import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Set; import java.util.function.BiFunction; import java.util.stream.Collectors; +import static org.apache.calcite.sql.fun.SqlStdOperatorTable.EQUALS; + /** * Created by luoyanxin. * @@ -65,9 +68,10 @@ protected AlterTableGroupLoader(String schemaName, String tableName, SqlInsert i int[] checkerParamMapping, BiFunction, ExecutionContext, List> executeFunc, Map> physicalTableGroupMap, - boolean mirrorCopy) { + boolean mirrorCopy, + String backfillReturning) { super(schemaName, tableName, insert, insertIgnore, checkerPlan, checkerPkMapping, checkerParamMapping, - executeFunc, mirrorCopy); + executeFunc, mirrorCopy, backfillReturning); this.physicalTableGroupMap = physicalTableGroupMap; } @@ -77,6 +81,8 @@ public static Loader create(String schemaName, String primaryTable, String index Map> physicalTableGroupMap, boolean mirrorCopy) { final OptimizerContext optimizerContext = OptimizerContext.getContext(schemaName); + boolean canUseReturning = canUseBackfillReturning(ec, schemaName); + // Construct target table final SqlNode targetTableParam = BuildPlanUtils.buildTargetTable(); @@ -128,7 +134,8 @@ public static Loader create(String schemaName, String primaryTable, String index final TddlRuleManager tddlRuleManager = optimizerContext.getRuleManager(); final Set filterColumns = Sets.newTreeSet(String::compareToIgnoreCase); final Set primaryKeys = Sets.newTreeSet(String::compareToIgnoreCase); - primaryKeys.addAll(Extractor.getPrimaryKeys(primaryTableMeta, ec)); + final List pkList = Extractor.getPrimaryKeys(primaryTableMeta, ec); + primaryKeys.addAll(pkList); filterColumns.addAll(primaryKeys); filterColumns.addAll(tddlRuleManager.getSharedColumns(primaryTable)); filterColumns.addAll(tddlRuleManager.getSharedColumns(indexTable)); @@ -164,7 +171,8 @@ public static Loader create(String schemaName, String primaryTable, String index checkerParamMapping, executeFunc, physicalTableGroupMap, - mirrorCopy); + mirrorCopy, + canUseReturning ? String.join(",", pkList) : null); } @Override @@ -179,8 +187,11 @@ public int executeInsert(SqlInsert sqlInsert, String schemaName, String tableNam targetGroup = groupPair.getValue(); } } - return InsertIndexExecutor + List> returningRes = new ArrayList<>(); + int affectRows = InsertIndexExecutor .backfillIntoPartitionedTable(null, sqlInsert, tableMeta, schemaName, executionContext, executeFunc, false, - newPartInfo, targetGroup, phyTableName, this.mirrorCopy); + newPartInfo, targetGroup, phyTableName, this.mirrorCopy, usingBackfillReturning, returningRes); + + return usingBackfillReturning ? getReturningAffectRows(returningRes, executionContext) : affectRows; } } diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/partitionmanagement/rebalance/RebalanceDdlPlanManager.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/partitionmanagement/rebalance/RebalanceDdlPlanManager.java index 3319643b9..6d078bdbb 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/partitionmanagement/rebalance/RebalanceDdlPlanManager.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/partitionmanagement/rebalance/RebalanceDdlPlanManager.java @@ -29,8 +29,10 @@ import com.alibaba.polardbx.executor.ddl.newengine.meta.DdlJobManager; import com.alibaba.polardbx.executor.ddl.newengine.meta.DdlPlanAccessorDelegate; import com.alibaba.polardbx.executor.ddl.newengine.meta.DdlPlanManager; +import com.alibaba.polardbx.executor.ddl.newengine.utils.DdlHelper; import com.alibaba.polardbx.executor.ddl.newengine.utils.TaskHelper; import com.alibaba.polardbx.executor.gsi.GsiBackfillManager; +import com.alibaba.polardbx.gms.config.impl.InstConfUtil; import com.alibaba.polardbx.gms.metadb.misc.DdlEngineRecord; import com.alibaba.polardbx.gms.metadb.misc.DdlEngineTaskRecord; import com.alibaba.polardbx.gms.scheduler.DdlPlanRecord; @@ -59,9 +61,16 @@ public RebalanceDdlPlanManager() { public void process(final DdlPlanRecord ddlPlanRecord) { switch (DdlPlanState.valueOf(ddlPlanRecord.getState())) { case INIT: + if (!InstConfUtil.isInRebalanceMaintenanceTimeWindow()) { + break; + } onInit(ddlPlanRecord); break; case EXECUTING: + if (!InstConfUtil.isInRebalanceMaintenanceTimeWindow()) { + terminateRebalanceJob(ddlPlanRecord); + break; + } onExecuting(ddlPlanRecord); break; case SUCCESS: @@ -70,6 +79,12 @@ public void process(final DdlPlanRecord ddlPlanRecord) { case TERMINATED: onTerminated(ddlPlanRecord); break; + case PAUSE_ON_NON_MAINTENANCE_WINDOW: + if (!InstConfUtil.isInRebalanceMaintenanceTimeWindow()) { + onPauseInNonMaintenanceWindow(ddlPlanRecord); + break; + } + onExecuting(ddlPlanRecord); } } @@ -87,7 +102,7 @@ protected void onInit(final DdlPlanRecord ddlPlanRecord) { }); } - protected void onExecuting(final DdlPlanRecord ddlPlanRecord) { + public void onExecuting(final DdlPlanRecord ddlPlanRecord) { final long jobId = ddlPlanRecord.getJobId(); DdlEngineRecord ddlEngineRecord = ddlJobManager.fetchRecordByJobId(jobId); if (ddlEngineRecord == null) { @@ -122,6 +137,19 @@ protected void onTerminated(final DdlPlanRecord ddlPlanRecord) { //do nothing } + protected void onPauseInNonMaintenanceWindow(final DdlPlanRecord ddlPlanRecord) { + //double check the job state + final long jobId = ddlPlanRecord.getJobId(); + DdlEngineRecord ddlEngineRecord = ddlJobManager.fetchRecordByJobId(jobId); + if (ddlEngineRecord == null) { + return; + } + if (DdlState.valueOf(ddlEngineRecord.state) == DdlState.RUNNING) { + LOGGER.info(String.format("try to cancel rebalance job %d", jobId)); + terminateRebalanceJob(ddlPlanRecord); + } + } + /*****************************************************************************************/ /** @@ -302,4 +330,21 @@ private Pair getBackFillCount(long jobId, boolean archive) { return Pair.of(successRowCount, totalRowCount); } + public void terminateRebalanceJob(DdlPlanRecord ddlPlanRecord) { + if (ddlPlanRecord.getJobId() <= 0) { + LOGGER.info("rebalance job is not schedule yet, not need to terminate it"); + return; + } + + String rebalanceSql = + "/*+TDDL:CMD_EXTRA(CANCEL_REBALANCE_JOB_DUE_MAINTENANCE=true)*/ cancel ddl " + ddlPlanRecord.getJobId(); + + SQLRecorderLogger.ddlEngineLogger.info( + String.format( + "submit terminater rebalance job due to not in maintenance window, schemaName:[%s], ddlSql:[%s]", + ddlPlanRecord.getTableSchema(), rebalanceSql)); + + DdlHelper.getServerConfigManager().executeBackgroundSql(rebalanceSql, ddlPlanRecord.getTableSchema(), null); + } + } \ No newline at end of file diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/physicalbackfill/PhysicalBackfillExecutor.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/physicalbackfill/PhysicalBackfillExecutor.java index 8a455b839..d38fbb7f9 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/physicalbackfill/PhysicalBackfillExecutor.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/physicalbackfill/PhysicalBackfillExecutor.java @@ -27,6 +27,7 @@ import java.util.Map; import java.util.Set; +@Deprecated public class PhysicalBackfillExecutor { public PhysicalBackfillExecutor() { diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/physicalbackfill/PhysicalBackfillExtractor.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/physicalbackfill/PhysicalBackfillExtractor.java index d2e4d48c6..8ac278b9b 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/physicalbackfill/PhysicalBackfillExtractor.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/physicalbackfill/PhysicalBackfillExtractor.java @@ -68,6 +68,7 @@ * * @author luoyanxin */ +@Deprecated public class PhysicalBackfillExtractor { private long lastUpdateTime = 0l; @@ -378,7 +379,8 @@ public void foreachPhysicalFile(final ExecutionContext ec, final Pair pair : GeneralUtil.emptyIfNull( detailInfoFieldJSON.getTargetHostAndPorts())) { - deleteInnodbDataFile(tableSchema, record.getTargetGroupName(), targetDbAndGroup.getKey(), - pair.getKey(), pair.getValue(), convertToCfgFileName(record.getTargetDirName()), true, ec); - deleteInnodbDataFile(tableSchema, record.getTargetGroupName(), targetDbAndGroup.getKey(), - pair.getKey(), pair.getValue(), record.getTargetDirName(), true, ec); + deleteInnodbDataFiles(tableSchema, pair, record.getTargetDirName(), record.getTargetGroupName(), + targetDbAndGroup.getKey(), true, ec); } } } } } + public static void deleteInnodbDataFiles(String schemaName, Pair hostInfo, String dir, + String groupName, String physicalDb, + boolean couldIgnore, + ExecutionContext ec) { + PhysicalBackfillUtils.deleteInnodbDataFile(schemaName, groupName, physicalDb, + hostInfo.getKey(), + hostInfo.getValue(), + PhysicalBackfillUtils.convertToCfgFileName(dir, CFG), couldIgnore, ec); + PhysicalBackfillUtils.deleteInnodbDataFile(schemaName, groupName, physicalDb, + hostInfo.getKey(), + hostInfo.getValue(), + PhysicalBackfillUtils.convertToCfgFileName(dir, CFP), couldIgnore, ec); + PhysicalBackfillUtils.deleteInnodbDataFile(schemaName, groupName, physicalDb, + hostInfo.getKey(), + hostInfo.getValue(), dir, true, ec); + } + public static void deleteInnodbDataFile(String schemaName, String groupName, String phyDb, String host, int port, String tempFilePath, boolean couldIgnore, ExecutionContext ec) { @@ -853,15 +865,15 @@ public static Pair getTempIbdFileInfo(Pair userI return tempFileAndDir; } - public static String convertToCfgFileName(String ibdFileName) { + public static String convertToCfgFileName(String ibdFileName, String fileExtension) { assert !StringUtil.isNullOrEmpty(ibdFileName); int ibdIndex = ibdFileName.lastIndexOf(IBD); int tempIndex = ibdFileName.lastIndexOf(TEMP_FILE_POSTFIX); assert ibdIndex != -1; if (tempIndex != -1) { - return ibdFileName.substring(0, ibdIndex) + CFG + TEMP_FILE_POSTFIX; + return ibdFileName.substring(0, ibdIndex) + fileExtension + TEMP_FILE_POSTFIX; } else { - return ibdFileName.substring(0, ibdIndex) + CFG; + return ibdFileName.substring(0, ibdIndex) + fileExtension; } } diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/scaleout/backfill/MoveTableLoader.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/scaleout/backfill/MoveTableLoader.java index f1815ce21..ce115ab69 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/scaleout/backfill/MoveTableLoader.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/scaleout/backfill/MoveTableLoader.java @@ -63,7 +63,7 @@ protected MoveTableLoader(String schemaName, String tableName, SqlInsert insert, BiFunction, ExecutionContext, List> executeFunc, Map sourceTargetGroupMap) { super(schemaName, tableName, insert, insertIgnore, checkerPlan, checkerPkMapping, checkerParamMapping, - executeFunc, true); + executeFunc, true, null); this.sourceTargetGroupMap = sourceTargetGroupMap; } diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/statistic/ndv/NDVShardSketch.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/statistic/ndv/NDVShardSketch.java index ed1d2070c..963d4ce6e 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/statistic/ndv/NDVShardSketch.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/statistic/ndv/NDVShardSketch.java @@ -20,6 +20,7 @@ import com.alibaba.polardbx.common.exception.code.ErrorCode; import com.alibaba.polardbx.common.jdbc.IDataSource; import com.alibaba.polardbx.common.properties.ConnectionParams; +import com.alibaba.polardbx.common.properties.ConnectionProperties; import com.alibaba.polardbx.common.utils.AsyncUtils; import com.alibaba.polardbx.common.utils.GeneralUtil; import com.alibaba.polardbx.common.utils.LoggerUtil; @@ -49,6 +50,7 @@ import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.google.common.collect.Sets; +import org.eclipse.jetty.util.StringUtil; import java.sql.Connection; import java.sql.ResultSet; @@ -92,10 +94,6 @@ public class NDVShardSketch { public static final String HYPER_LOG_LOG_MUL_COLUMNS_SQL = "SELECT HYPERLOGLOG(concat(%1$2s)) AS HLL FROM %2$2s"; - public static final String COLUMNAR_HINT = - "/*+TDDL:cmd_extra(ENABLE_DIRECT_PLAN=false ENABLE_SORT_AGG=false ENABLE_POST_PLANNER=false " - + "WORKLOAD_TYPE=AP ENABLE_COLUMNAR_OPTIMIZER=true OPTIMIZER_TYPE='columnar')*/"; - /** * schemaName:table name:columns name */ @@ -521,7 +519,7 @@ public static NDVShardSketch buildNDVShardSketch(String schemaName, String table boolean columnar = false; // try columnar sketch first cardinality = sketchByColumnar(shardKey, shardPart, dnCardinalityArray, sketchArray, gmtCreated, gmtUpdate, - cardinalityTime, sketchTime); + cardinalityTime, sketchTime, ec); if (cardinality >= 0) { columnar = true; } @@ -595,9 +593,9 @@ public static NDVShardSketch buildNDVShardSketch(String schemaName, String table private static long sketchByColumnar(String shardKey, String[] shardPart, long[] dnCardinalityArray, byte[][] sketchArray, long[] gmtCreated, long[] gmtUpdate, - AtomicLong cardinalityTime, AtomicLong sketchTime) { - // check whether to use columnar sketch - if (!InstConfUtil.getBool(ConnectionParams.ENABLE_NDV_USE_COLUMNAR)) { + AtomicLong cardinalityTime, AtomicLong sketchTime, ExecutionContext ec) { + String hint = genColumnarHllHint(ec); + if (StringUtil.isEmpty(hint)) { return -1; } String[] shardKeys = shardKey.split(":"); @@ -608,7 +606,7 @@ private static long sketchByColumnar(String shardKey, String[] shardPart, if (tm == null) { return -1; } - // must be a table with columanr indexes + // must be a table with columnar indexes if (GeneralUtil.isEmpty(tm.getColumnarIndexPublished())) { return -1; } @@ -618,7 +616,9 @@ private static long sketchByColumnar(String shardKey, String[] shardPart, try (Connection connection = ExecutorContext.getContext(schemaName).getInnerConnectionManager() .getConnection(schemaName); Statement stmt = connection.createStatement()) { - ResultSet rs = stmt.executeQuery(COLUMNAR_HINT + String.format(HYPER_LOG_LOG_SQL, columnsName, tableName)); + String sql = hint + String.format(HYPER_LOG_LOG_SQL, columnsName, tableName); + logger.info(sql); + ResultSet rs = stmt.executeQuery(sql); if (rs.next()) { cardinality = rs.getLong(1); } @@ -639,6 +639,37 @@ private static long sketchByColumnar(String shardKey, String[] shardPart, return cardinality; } + public static String genColumnarHllHint(ExecutionContext ec) { + boolean isNdv = (ec == null) ? + InstConfUtil.getBool(ConnectionParams.ENABLE_NDV_USE_COLUMNAR) : + ec.getParamManager().getBoolean(ConnectionParams.ENABLE_NDV_USE_COLUMNAR); + + boolean isMppNdv = (ec == null) ? + InstConfUtil.getBool(ConnectionParams.ENABLE_MPP_NDV_USE_COLUMNAR) : + ec.getParamManager().getBoolean(ConnectionParams.ENABLE_MPP_NDV_USE_COLUMNAR); + if (!(isNdv || isMppNdv)) { + return null; + } + StringBuilder sb = new StringBuilder("/*+TDDL:cmd_extra("); + // disable fast path + sb.append(ConnectionProperties.ENABLE_DIRECT_PLAN).append("=false "); + sb.append(ConnectionProperties.ENABLE_POST_PLANNER).append("=false "); + sb.append(ConnectionProperties.ENABLE_INDEX_SELECTION).append("=false "); + sb.append(ConnectionProperties.ENABLE_SORT_AGG).append("=false "); + + // use columnar optimizer + sb.append(ConnectionProperties.WORKLOAD_TYPE).append("=AP "); + sb.append(ConnectionProperties.ENABLE_COLUMNAR_OPTIMIZER).append("=true "); + + if (isMppNdv) { + // use master mpp + sb.append(ConnectionProperties.ENABLE_HTAP).append("=true "); + sb.append(ConnectionProperties.ENABLE_MASTER_MPP).append("=true "); + } + sb.append(")*/"); + return sb.toString(); + } + private static void sketchOnePart(String shardKey, String[] shardPart, long[] dnCardinalityArray, byte[][] sketchArray, long[] gmtCreated, long[] gmtUpdate, diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/utils/ExecUtils.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/utils/ExecUtils.java index 2503f6b56..609aab69f 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/utils/ExecUtils.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/utils/ExecUtils.java @@ -193,6 +193,7 @@ import static com.alibaba.polardbx.common.properties.ConnectionParams.MASTER_READ_WEIGHT; import static com.alibaba.polardbx.common.utils.thread.ThreadCpuStatUtil.NUM_CORES; +import static com.alibaba.polardbx.executor.gsi.utils.Transformer.buildBatchParam; import static com.alibaba.polardbx.executor.utils.failpoint.FailPointKey.FP_INJECT_IGNORE_INTERRUPTED_TO_STATISTIC_SCHEDULE_JOB; import static io.airlift.concurrent.MoreFutures.getFutureValue; import static io.airlift.concurrent.MoreFutures.tryGetFutureValue; @@ -731,6 +732,27 @@ public static QueryConcurrencyPolicy getQueryConcurrencyPolicy(ExecutionContext return QueryConcurrencyPolicy.SEQUENTIAL; } + public static List> getReturningResultByCursors(List cursors, + boolean isBroadcast) { + List> result = new ArrayList<>(); + try { + for (Cursor cursor : cursors) { + if (isBroadcast) { + result = buildBatchParam(cursor, false); + } else { + result.addAll(buildBatchParam(cursor, false)); + } + } + } finally { + for (Cursor inputCursor : cursors) { + if (inputCursor != null) { + inputCursor.close(new ArrayList<>()); + } + } + } + return result; + } + public static int getAffectRowsByCursors(List cursors, boolean isBroadcast) { int affectRows = 0; try { @@ -1732,8 +1754,14 @@ public static long getMaxRowCount(RelNode node, ExecutionContext context) { Map params = context.getParams().getCurrentParameter(); if (((Sort) node).fetch != null) { outputCount = CBOUtil.getRexParam(sort.fetch, params); + long offset = 0; if (sort.offset != null) { - outputCount += CBOUtil.getRexParam(sort.offset, params); + offset = CBOUtil.getRexParam(sort.offset, params); + } + if (outputCount == Long.MAX_VALUE || offset == Long.MAX_VALUE) { + outputCount = Long.MAX_VALUE; + } else { + outputCount = outputCount + offset; } } } @@ -2164,21 +2192,14 @@ public static boolean useParameterDelegate(ExecutionContext context) { * * @return {Version}-{ReleaseDate} */ - public static String getDnPolardbVersion() { + public static String getDnPolardbVersion() throws Exception { String sql = MetaDbUtil.POLARDB_VERSION_SQL; - if (ExecutorContext.getContext(SystemDbHelper.CDC_DB_NAME) == null) { - return null; + Set allDnId = ExecUtils.getAllDnStorageId(); + if (allDnId.isEmpty()) { + throw new SQLException("Failed to get DN datasource"); } - TopologyHandler topologyHandler = - ExecutorContext.getContext(SystemDbHelper.CDC_DB_NAME).getTopologyHandler(); - if (topologyHandler.getMatrix().getGroups().isEmpty()) { - return null; - } - Group group = topologyHandler.getMatrix().getGroups().get(0); - String groupName = group.getName(); - IGroupExecutor groupExecutor = topologyHandler.get(groupName); - DataSource dataSource = groupExecutor.getDataSource(); - try (Connection conn = dataSource.getConnection(); + String dnId = allDnId.iterator().next(); + try (Connection conn = DbTopologyManager.getConnectionForStorage(dnId); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(sql)) { String dnPolardbxVersion = null; @@ -2188,9 +2209,6 @@ public static String getDnPolardbVersion() { dnReleaseDate = rs.getString(2); } return String.format("%s-%s", dnPolardbxVersion, dnReleaseDate); - } catch (SQLException e) { - logger.error(e.getMessage(), e); - return null; } } diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/vectorized/compare/LikeVarcharColCharConstVectorizedExpression.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/vectorized/compare/LikeVarcharColCharConstVectorizedExpression.java index 743b8d767..c05ad0acb 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/vectorized/compare/LikeVarcharColCharConstVectorizedExpression.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/executor/vectorized/compare/LikeVarcharColCharConstVectorizedExpression.java @@ -16,6 +16,7 @@ package com.alibaba.polardbx.executor.vectorized.compare; +import com.alibaba.polardbx.common.properties.ConnectionParams; import com.alibaba.polardbx.optimizer.config.table.charset.CharsetFactory; import com.alibaba.polardbx.optimizer.config.table.collation.CollationHandler; import com.alibaba.polardbx.executor.chunk.LongBlock; @@ -42,10 +43,17 @@ @ExpressionSignatures(names = {"LIKE"}, argumentTypes = {"Varchar", "Char"}, argumentKinds = {Variable, Const}) public class LikeVarcharColCharConstVectorizedExpression extends AbstractVectorizedExpression { - private final CollationHandler collationHandler; - + private final CollationHandler originCollationHandler; + private final CollationHandler latin1CollationHandler = CollationHandlers.COLLATION_HANDLER_LATIN1_BIN; private final boolean operand1IsNull; private final Slice operand1; + /** + * works with ENABLE_OSS_COMPATIBLE=false + */ + private final boolean canUseLatin1Collation; + private boolean isContainsCompare = false; + private byte[] containBytes = null; + private int[] lps = null; public LikeVarcharColCharConstVectorizedExpression( int outputIndex, @@ -53,14 +61,6 @@ public LikeVarcharColCharConstVectorizedExpression( super(DataTypes.LongType, outputIndex, children); SliceType sliceType = (SliceType) children[0].getOutputDataType(); - // FIXME ignore collation here - if (sliceType.isLatin1Encoding()) { - this.collationHandler = CollationHandlers.COLLATION_HANDLER_LATIN1_BIN; - ; - } else { - this.collationHandler = CharsetFactory.DEFAULT_CHARSET_HANDLER.getCollationHandler(); - } - Object operand1Value = ((LiteralVectorizedExpression) children[1]).getConvertedValue(); if (operand1Value == null) { operand1IsNull = true; @@ -69,11 +69,88 @@ public LikeVarcharColCharConstVectorizedExpression( operand1IsNull = false; operand1 = sliceType.convertFrom(operand1Value); } + // FIXME did not consider collation here + this.originCollationHandler = CharsetFactory.DEFAULT_CHARSET_HANDLER.getCollationHandler(); + + if (sliceType.isLatin1Encoding()) { + canUseLatin1Collation = true; + checkIsContainsCompare(operand1); + } else { + if (isAsciiEncoding(operand1)) { + canUseLatin1Collation = true; + checkIsContainsCompare(operand1); + } else { + canUseLatin1Collation = false; + } + } + } + + public static int[] computeLPSArray(byte[] pattern) { + int[] lps = new int[pattern.length]; + int length = 0; + lps[0] = 0; + int i = 1; + + while (i < pattern.length) { + if (pattern[i] == pattern[length]) { + length++; + lps[i] = length; + i++; + } else { + if (length != 0) { + length = lps[length - 1]; + } else { + lps[i] = length; + i++; + } + } + } + return lps; + } + + private void checkIsContainsCompare(Slice operand) { + if (operand == null || operand.length() < 2) { + return; + } + if (!canUseLatin1Collation) { + return; + } + byte[] bytes = operand.getBytes(); + if (bytes[0] == CollationHandler.WILD_MANY && bytes[bytes.length - 1] == CollationHandler.WILD_MANY) { + for (int i = 1; i < bytes.length - 1; i++) { + if (bytes[i] == CollationHandler.WILD_MANY || bytes[i] == CollationHandler.WILD_ONE) { + // no % _ in the middle + return; + } + } + this.isContainsCompare = true; + this.containBytes = new byte[operand.length() - 2]; + System.arraycopy(bytes, 1, containBytes, 0, operand.length() - 2); + this.lps = computeLPSArray(containBytes); + } + } + + private boolean isAsciiEncoding(Slice operand) { + if (operand == null) { + return true; + } + byte[] bytes = operand.getBytes(); + for (byte b : bytes) { + if (b < 0 || b == CollationHandler.WILD_ONE) { + return false; + } + } + return true; } @Override public void eval(EvaluationContext ctx) { children[0].eval(ctx); + + final boolean compatible = + ctx.getExecutionContext().getParamManager().getBoolean(ConnectionParams.ENABLE_OSS_COMPATIBLE); + boolean useLatin1Compare = canUseLatin1Collation && !compatible; + MutableChunk chunk = ctx.getPreAllocatedChunk(); int batchSize = chunk.batchSize(); boolean isSelectionInUse = chunk.isSelectionInUse(); @@ -83,20 +160,34 @@ public void eval(EvaluationContext ctx) { RandomAccessBlock leftInputVectorSlot = chunk.slotIn(children[0].getOutputIndex(), children[0].getOutputDataType()); - long[] output = (outputVectorSlot.cast(LongBlock.class)).longArray(); - if (operand1IsNull) { boolean[] outputNulls = outputVectorSlot.nulls(); - outputVectorSlot.setHasNull(true); - for (int i = 0; i < batchSize; i++) { - outputNulls[i] = true; + if (isSelectionInUse) { + for (int i = 0; i < batchSize; i++) { + int j = sel[i]; + outputNulls[j] = true; + } + } else { + for (int i = 0; i < batchSize; i++) { + outputNulls[i] = true; + } } return; } - Slice cachedSlice = new Slice(); - VectorizedExpressionUtils.mergeNulls(chunk, outputIndex, children[0].getOutputIndex()); + long[] output = (outputVectorSlot.cast(LongBlock.class)).longArray(); + + if (useLatin1Compare) { + doLatin1Like(leftInputVectorSlot, isSelectionInUse, sel, batchSize, output); + } else { + doCollationLike(leftInputVectorSlot, isSelectionInUse, sel, batchSize, output); + } + } + + private void doCollationLike(RandomAccessBlock leftInputVectorSlot, boolean isSelectionInUse, int[] sel, + int batchSize, long[] output) { + Slice cachedSlice = new Slice(); if (leftInputVectorSlot instanceof SliceBlock) { SliceBlock sliceBlock = leftInputVectorSlot.cast(SliceBlock.class); @@ -107,7 +198,7 @@ public void eval(EvaluationContext ctx) { Slice slice = sliceBlock.getRegion(j, cachedSlice); - output[j] = collationHandler.wildCompare(slice, operand1) + output[j] = originCollationHandler.wildCompare(slice, operand1) ? LongBlock.TRUE_VALUE : LongBlock.FALSE_VALUE; } } else { @@ -115,7 +206,7 @@ public void eval(EvaluationContext ctx) { Slice slice = sliceBlock.getRegion(i, cachedSlice); - output[i] = collationHandler.wildCompare(slice, operand1) + output[i] = originCollationHandler.wildCompare(slice, operand1) ? LongBlock.TRUE_VALUE : LongBlock.FALSE_VALUE; } } @@ -128,7 +219,113 @@ public void eval(EvaluationContext ctx) { if (lSlice == null) { lSlice = Slices.EMPTY_SLICE; } - output[j] = collationHandler.wildCompare(lSlice, operand1) + output[j] = originCollationHandler.wildCompare(lSlice, operand1) + ? LongBlock.TRUE_VALUE : LongBlock.FALSE_VALUE; + } + } else { + for (int i = 0; i < batchSize; i++) { + + Slice lSlice = ((Slice) leftInputVectorSlot.elementAt(i)); + if (lSlice == null) { + lSlice = Slices.EMPTY_SLICE; + } + output[i] = originCollationHandler.wildCompare(lSlice, operand1) + ? LongBlock.TRUE_VALUE : LongBlock.FALSE_VALUE; + } + } + } + } + + private void doLatin1Like(RandomAccessBlock leftInputVectorSlot, boolean isSelectionInUse, + int[] sel, int batchSize, long[] output) { + if (leftInputVectorSlot instanceof SliceBlock) { + SliceBlock sliceBlock = leftInputVectorSlot.cast(SliceBlock.class); + doLatin1LikeSlice(sliceBlock, isSelectionInUse, sel, batchSize, output); + } else if (leftInputVectorSlot instanceof ReferenceBlock) { + doLatin1LikeReference(leftInputVectorSlot, isSelectionInUse, sel, batchSize, output); + } + } + + private void doLatin1LikeSlice(SliceBlock sliceBlock, boolean isSelectionInUse, int[] sel, int batchSize, + long[] output) { + Slice cachedSlice = new Slice(); + + if (isSelectionInUse) { + if (isContainsCompare && containBytes != null) { + for (int i = 0; i < batchSize; i++) { + int j = sel[i]; + + Slice slice = sliceBlock.getRegion(j, cachedSlice); + + output[j] = latin1CollationHandler.containsCompare(slice, containBytes, lps) + ? LongBlock.TRUE_VALUE : LongBlock.FALSE_VALUE; + } + } else { + for (int i = 0; i < batchSize; i++) { + int j = sel[i]; + + Slice slice = sliceBlock.getRegion(j, cachedSlice); + + output[j] = latin1CollationHandler.wildCompare(slice, operand1) + ? LongBlock.TRUE_VALUE : LongBlock.FALSE_VALUE; + } + } + } else { + if (isContainsCompare && containBytes != null) { + for (int i = 0; i < batchSize; i++) { + + Slice slice = sliceBlock.getRegion(i, cachedSlice); + + output[i] = latin1CollationHandler.containsCompare(slice, containBytes, lps) + ? LongBlock.TRUE_VALUE : LongBlock.FALSE_VALUE; + } + } else { + for (int i = 0; i < batchSize; i++) { + + Slice slice = sliceBlock.getRegion(i, cachedSlice); + + output[i] = latin1CollationHandler.wildCompare(slice, operand1) + ? LongBlock.TRUE_VALUE : LongBlock.FALSE_VALUE; + } + } + } + } + + private void doLatin1LikeReference(RandomAccessBlock leftInputVectorSlot, boolean isSelectionInUse, int[] sel, + int batchSize, long[] output) { + if (isSelectionInUse) { + if (isContainsCompare && containBytes != null) { + for (int i = 0; i < batchSize; i++) { + int j = sel[i]; + + Slice lSlice = ((Slice) leftInputVectorSlot.elementAt(j)); + if (lSlice == null) { + lSlice = Slices.EMPTY_SLICE; + } + output[j] = latin1CollationHandler.containsCompare(lSlice, containBytes, lps) + ? LongBlock.TRUE_VALUE : LongBlock.FALSE_VALUE; + } + } else { + for (int i = 0; i < batchSize; i++) { + int j = sel[i]; + + Slice lSlice = ((Slice) leftInputVectorSlot.elementAt(j)); + if (lSlice == null) { + lSlice = Slices.EMPTY_SLICE; + } + output[j] = latin1CollationHandler.wildCompare(lSlice, operand1) + ? LongBlock.TRUE_VALUE : LongBlock.FALSE_VALUE; + } + } + } else { + if (isContainsCompare && containBytes != null) { + for (int i = 0; i < batchSize; i++) { + + Slice lSlice = ((Slice) leftInputVectorSlot.elementAt(i)); + if (lSlice == null) { + lSlice = Slices.EMPTY_SLICE; + } + output[i] = latin1CollationHandler.containsCompare(lSlice, containBytes, lps) ? LongBlock.TRUE_VALUE : LongBlock.FALSE_VALUE; } } else { @@ -138,7 +335,7 @@ public void eval(EvaluationContext ctx) { if (lSlice == null) { lSlice = Slices.EMPTY_SLICE; } - output[i] = collationHandler.wildCompare(lSlice, operand1) + output[i] = latin1CollationHandler.wildCompare(lSlice, operand1) ? LongBlock.TRUE_VALUE : LongBlock.FALSE_VALUE; } } diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/repo/mysql/handler/AlterTableGroupBackfillHandler.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/repo/mysql/handler/AlterTableGroupBackfillHandler.java index 83e944281..6f3360c80 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/repo/mysql/handler/AlterTableGroupBackfillHandler.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/repo/mysql/handler/AlterTableGroupBackfillHandler.java @@ -23,6 +23,7 @@ import com.alibaba.polardbx.common.exception.code.ErrorCode; import com.alibaba.polardbx.common.properties.ConnectionParams; import com.alibaba.polardbx.common.utils.GeneralUtil; +import com.alibaba.polardbx.executor.backfill.Loader; import com.alibaba.polardbx.executor.corrector.Checker; import com.alibaba.polardbx.executor.corrector.Reporter; import com.alibaba.polardbx.executor.cursor.Cursor; @@ -74,6 +75,9 @@ public Cursor handle(RelNode logicalPlan, ExecutionContext executionContext) { BackfillExecutor backfillExecutor = new BackfillExecutor((List inputs, ExecutionContext executionContext1) -> { QueryConcurrencyPolicy queryConcurrencyPolicy = getQueryConcurrencyPolicy(executionContext1); + if (Loader.canUseBackfillReturning(executionContext1, schemaName)) { + queryConcurrencyPolicy = QueryConcurrencyPolicy.GROUP_CONCURRENT_BLOCK; + } List inputCursors = new ArrayList<>(inputs.size()); executeWithConcurrentPolicy(executionContext1, inputs, queryConcurrencyPolicy, inputCursors, schemaName); return inputCursors; diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/repo/mysql/handler/GsiBackfillHandler.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/repo/mysql/handler/GsiBackfillHandler.java index 9b1ee3cb0..f9c6abe9c 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/repo/mysql/handler/GsiBackfillHandler.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/repo/mysql/handler/GsiBackfillHandler.java @@ -21,6 +21,7 @@ import com.alibaba.polardbx.common.properties.MetricLevel; import com.alibaba.polardbx.common.properties.ParamManager; import com.alibaba.polardbx.common.utils.logger.Logger; +import com.alibaba.polardbx.executor.backfill.Loader; import com.alibaba.polardbx.executor.cursor.Cursor; import com.alibaba.polardbx.executor.cursor.impl.AffectRowCursor; import com.alibaba.polardbx.executor.ddl.job.task.gsi.CheckGsiTask; @@ -29,6 +30,7 @@ import com.alibaba.polardbx.executor.handler.HandlerCommon; import com.alibaba.polardbx.executor.spi.IRepository; import com.alibaba.polardbx.optimizer.OptimizerContext; +import com.alibaba.polardbx.optimizer.config.table.TableMeta; import com.alibaba.polardbx.optimizer.context.ExecutionContext; import com.alibaba.polardbx.optimizer.core.rel.GsiBackfill; import com.alibaba.polardbx.optimizer.utils.PhyTableOperationUtil; @@ -68,11 +70,13 @@ public Cursor handle(RelNode logicalPlan, ExecutionContext executionContext) { List modifyStringColumns = backfill.getModifyStringColumns(); boolean useChangeSet = backfill.isUseChangeSet(); boolean modifyColumn = backfill.isModifyColumn(); - boolean mirrorCopy = backfill.isMirrorCopy(); BackfillExecutor backfillExecutor = new BackfillExecutor((List inputs, ExecutionContext executionContext1) -> { QueryConcurrencyPolicy queryConcurrencyPolicy = getQueryConcurrencyPolicy(executionContext1); + if (Loader.canUseBackfillReturning(executionContext1, schemaName)) { + queryConcurrencyPolicy = QueryConcurrencyPolicy.GROUP_CONCURRENT_BLOCK; + } List inputCursors = new ArrayList<>(inputs.size()); executeWithConcurrentPolicy(executionContext1, inputs, queryConcurrencyPolicy, inputCursors, schemaName); return inputCursors; @@ -80,21 +84,17 @@ public Cursor handle(RelNode logicalPlan, ExecutionContext executionContext) { boolean useBinary = executionContext.getParamManager().getBoolean(ConnectionParams.BACKFILL_USING_BINARY); boolean omcForce = executionContext.getParamManager().getBoolean(ConnectionParams.OMC_FORCE_TYPE_CONVERSION); + boolean canUseReturning = Loader.canUseBackfillReturning(executionContext, schemaName); // online modify column, does not clear sql_mode if (modifyColumn) { - if (mirrorCopy) { - if (useChangeSet) { - // insert select - executionContext = setChangeSetApplySqlMode(executionContext.copy()); - } else { - // insert ignore select - executionContext = clearSqlMode(executionContext.copy()); - } - } else if (!useBinary && !omcForce) { + executionContext = setChangeSetApplySqlMode(executionContext.copy()); + if (!useBinary && !omcForce) { // select + insert, need encoding upgradeEncoding(executionContext, schemaName, baseTableName); } + // 暂时不使用 backfill insert ignore returning 优化,因为无法处理 sql_mode 严格模式行为 + canUseReturning = false; } else { executionContext = clearSqlMode(executionContext.copy()); if (!useBinary) { @@ -125,7 +125,7 @@ public Cursor handle(RelNode logicalPlan, ExecutionContext executionContext) { assert 1 == indexNames.size(); affectRows = backfillExecutor.backfill(schemaName, baseTableName, indexNames.get(0), useBinary, useChangeSet, - modifyStringColumns, executionContext); + canUseReturning, modifyStringColumns, executionContext); } // Check GSI immediately after creation by default. @@ -140,6 +140,7 @@ public Cursor handle(RelNode logicalPlan, ExecutionContext executionContext) { // TODO(moyi) separate check to another task for (String indexName : indexNames) { + baseTableName = getPrimaryTableName(schemaName, baseTableName, backfill.isMirrorCopy(), executionContext); boolean isPrimaryBroadCast = OptimizerContext.getContext(schemaName).getRuleManager().isBroadCast(baseTableName); boolean isGsiBroadCast = OptimizerContext.getContext(schemaName).getRuleManager().isBroadCast(indexName); @@ -154,4 +155,13 @@ public Cursor handle(RelNode logicalPlan, ExecutionContext executionContext) { return new AffectRowCursor(affectRows); } + public static String getPrimaryTableName(String schemaName, String baseTableName, boolean mirrorCopy, + ExecutionContext executionContext) { + String primaryTableName = baseTableName; + TableMeta sourceTableMeta = executionContext.getSchemaManager(schemaName).getTable(baseTableName); + if (mirrorCopy && sourceTableMeta.isGsi()) { + primaryTableName = sourceTableMeta.getGsiTableMetaBean().gsiMetaBean.tableName; + } + return primaryTableName; + } } diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/repo/mysql/handler/LogicalCheckTableHandler.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/repo/mysql/handler/LogicalCheckTableHandler.java index ea9017585..58e9e2e35 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/repo/mysql/handler/LogicalCheckTableHandler.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/repo/mysql/handler/LogicalCheckTableHandler.java @@ -471,7 +471,7 @@ protected void doCheckForOnePartTableGsi(String schemaName, String logicalTableN } for (GsiMetaManager.GsiTableMetaBean bean : meta.getTableMeta().values()) { - if (bean.gsiMetaBean != null) { + if (bean.gsiMetaBean != null && !bean.gsiMetaBean.columnarIndex) { GsiMetaManager.GsiIndexMetaBean gsiMetaBean = bean.gsiMetaBean; doCheckForOnePartTableTopology(schemaName, gsiMetaBean.indexName, executionContext, result, logicalTableName); diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/repo/mysql/handler/LogicalTableDataMigrationBackfillHandler.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/repo/mysql/handler/LogicalTableDataMigrationBackfillHandler.java index 0a2161401..bdcaa9a86 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/repo/mysql/handler/LogicalTableDataMigrationBackfillHandler.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/repo/mysql/handler/LogicalTableDataMigrationBackfillHandler.java @@ -23,6 +23,7 @@ import com.alibaba.polardbx.common.exception.code.ErrorCode; import com.alibaba.polardbx.common.properties.ConnectionParams; import com.alibaba.polardbx.common.properties.ConnectionProperties; +import com.alibaba.polardbx.executor.backfill.Loader; import com.alibaba.polardbx.executor.common.ExecutorContext; import com.alibaba.polardbx.executor.cursor.Cursor; import com.alibaba.polardbx.executor.cursor.impl.AffectRowCursor; @@ -39,13 +40,11 @@ import com.alibaba.polardbx.optimizer.utils.QueryConcurrencyPolicy; import com.alibaba.polardbx.statistics.SQLRecorderLogger; import org.apache.calcite.rel.RelNode; -import org.apache.commons.lang3.StringUtils; import java.text.MessageFormat; import java.util.ArrayList; import java.util.EnumSet; import java.util.List; -import java.util.concurrent.TimeUnit; import static com.alibaba.polardbx.executor.utils.ExecUtils.getQueryConcurrencyPolicy; @@ -69,6 +68,9 @@ public Cursor handle(RelNode logicalPlan, ExecutionContext ec) { BackfillExecutor backfillExecutor = new BackfillExecutor((List inputs, ExecutionContext executionContext) -> { QueryConcurrencyPolicy queryConcurrencyPolicy = getQueryConcurrencyPolicy(executionContext); + if (Loader.canUseBackfillReturning(executionContext, dstSchemaName)) { + queryConcurrencyPolicy = QueryConcurrencyPolicy.GROUP_CONCURRENT_BLOCK; + } List inputCursors = new ArrayList<>(inputs.size()); executeWithConcurrentPolicy(executionContext, inputs, queryConcurrencyPolicy, inputCursors, dstSchemaName); @@ -162,7 +164,7 @@ protected List getTableGsiNames(String schemaName, String primaryTableNa metaManager.getTableAndIndexMeta(primaryTableName, EnumSet.of(IndexStatus.PUBLIC)); for (GsiMetaManager.GsiTableMetaBean bean : meta.getTableMeta().values()) { - if (bean.gsiMetaBean != null) { + if (bean.gsiMetaBean != null && !bean.gsiMetaBean.columnarIndex) { GsiMetaManager.GsiIndexMetaBean bean1 = bean.gsiMetaBean; allGsiNames.add(bean1.indexName); } diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/repo/mysql/handler/LogicalViewHandler.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/repo/mysql/handler/LogicalViewHandler.java index 31ca35b8e..b30a75c36 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/repo/mysql/handler/LogicalViewHandler.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/repo/mysql/handler/LogicalViewHandler.java @@ -82,7 +82,8 @@ public Cursor handle(RelNode logicalPlan, ExecutionContext executionContext) { params = executionContext.getParams().getCurrentParameter(); } ReplaceCallWithLiteralVisitor visitor = null; - if (executionContext.getSqlType() != SqlType.SELECT) { + //不是select类型,或包含 flashback,需要替换不确定性函数 + if (executionContext.getSqlType() != SqlType.SELECT || logicalView.getFlashback() != null) { visitor = new ReplaceCallWithLiteralVisitor(Lists.newArrayList(), params, RexUtils.getEvalFunc(executionContext), true); } diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/repo/mysql/handler/ddl/newengine/DdlEngineCancelJobsHandler.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/repo/mysql/handler/ddl/newengine/DdlEngineCancelJobsHandler.java index 949e6b932..847fad5ce 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/repo/mysql/handler/ddl/newengine/DdlEngineCancelJobsHandler.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/repo/mysql/handler/ddl/newengine/DdlEngineCancelJobsHandler.java @@ -22,6 +22,7 @@ import com.alibaba.polardbx.common.ddl.newengine.DdlTaskState; import com.alibaba.polardbx.common.exception.TddlRuntimeException; import com.alibaba.polardbx.common.exception.code.ErrorCode; +import com.alibaba.polardbx.common.properties.ConfigParam; import com.alibaba.polardbx.common.properties.ConnectionParams; import com.alibaba.polardbx.common.utils.GeneralUtil; import com.alibaba.polardbx.common.utils.TStringUtil; @@ -49,6 +50,7 @@ import java.util.Optional; import java.util.stream.Collectors; +import static com.alibaba.polardbx.common.ddl.newengine.DdlPlanState.PAUSE_ON_NON_MAINTENANCE_WINDOW; import static com.alibaba.polardbx.common.ddl.newengine.DdlPlanState.SUCCESS; import static com.alibaba.polardbx.common.ddl.newengine.DdlPlanState.TERMINATED; import static com.alibaba.polardbx.common.ddl.newengine.DdlType.ALTER_TABLEGROUP; @@ -93,12 +95,18 @@ public Cursor doCancel(Long jobId, ExecutionContext executionContext) { if (REBALANCE.name().equalsIgnoreCase(record.ddlType)) { // update ddl plan state DdlPlanState afterState; - if (record.ddlStmt.toLowerCase().contains("drain_node")) { - // fail - afterState = TERMINATED; + boolean cancelDueToOutOfMaintennanceWidows = + executionContext.getParamManager().getBoolean(ConnectionParams.CANCEL_REBALANCE_JOB_DUE_MAINTENANCE); + if (cancelDueToOutOfMaintennanceWidows) { + afterState = PAUSE_ON_NON_MAINTENANCE_WINDOW; } else { - // success - afterState = SUCCESS; + if (record.ddlStmt.toLowerCase().contains("drain_node")) { + // fail + afterState = TERMINATED; + } else { + // success + afterState = SUCCESS; + } } String message = String.format("update state:[%s] by rollback the rebalance ddl", afterState.name()); RebalanceDdlPlanManager rebalanceDdlPlanManager = new RebalanceDdlPlanManager(); diff --git a/polardbx-executor/src/main/java/com/alibaba/polardbx/repo/mysql/spi/MyJdbcHandler.java b/polardbx-executor/src/main/java/com/alibaba/polardbx/repo/mysql/spi/MyJdbcHandler.java index 8a827cb1c..91a773b7c 100644 --- a/polardbx-executor/src/main/java/com/alibaba/polardbx/repo/mysql/spi/MyJdbcHandler.java +++ b/polardbx-executor/src/main/java/com/alibaba/polardbx/repo/mysql/spi/MyJdbcHandler.java @@ -1685,7 +1685,11 @@ public int[] executeUpdate(BaseQueryOperation phyTableModify) throws SQLExceptio xConnection.setTraceId(executionContext.getTraceId()); connection.flushUnsent(); // Caution: This is important when use deferred sql. xConnection.getSession().setChunkResult(false); - xResult = xPreparedStatement.executeUpdateReturningX(executionContext.getReturning()); + boolean isBackfill = executionContext.getBackfillReturning() != null; + String returning = + isBackfill ? executionContext.getBackfillReturning() : executionContext.getReturning(); + xResult = + xPreparedStatement.executeUpdateReturningX(returning, isBackfill); xResult.getMetaData(); // Compatible with original time record. affectRow = -2; } else { diff --git a/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/ddl/ColumnarForbidTest.java b/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/ddl/ColumnarForbidTest.java new file mode 100644 index 000000000..1db89123a --- /dev/null +++ b/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/ddl/ColumnarForbidTest.java @@ -0,0 +1,113 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.alibaba.polardbx.executor.ddl; + +import com.alibaba.polardbx.common.exception.TddlRuntimeException; +import com.alibaba.polardbx.common.properties.ParamManager; +import com.alibaba.polardbx.executor.ddl.job.task.basic.TruncateTableValidateTask; +import com.alibaba.polardbx.executor.ddl.job.validator.TableValidator; +import com.alibaba.polardbx.executor.ddl.newengine.job.AbstractDdlTask; +import com.alibaba.polardbx.optimizer.OptimizerContext; +import com.alibaba.polardbx.optimizer.config.table.SchemaManager; +import com.alibaba.polardbx.optimizer.config.table.TableMeta; +import com.alibaba.polardbx.optimizer.context.ExecutionContext; +import org.apache.calcite.sql.SqlKind; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.ExpectedException; +import org.mockito.MockedStatic; + +import java.lang.reflect.Field; + +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.doCallRealMethod; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.mockStatic; +import static org.mockito.Mockito.when; + +public class ColumnarForbidTest { + + @Rule + public ExpectedException thrown = ExpectedException.none(); + + @Test + public void ForbidTruncateCciTable() throws Exception { + TruncateTableValidateTask truncateTableValidateTask = mock(TruncateTableValidateTask.class); + ExecutionContext ec = mock(ExecutionContext.class); + + try (MockedStatic staticTableValidator = mockStatic(TableValidator.class)) { + staticTableValidator.when( + () -> TableValidator.validateTableExistence(any(String.class), any(String.class), + any(ExecutionContext.class))).thenAnswer(invocation -> null); + staticTableValidator.when( + () -> TableValidator.validateTableNotReferenceFk(any(String.class), any(String.class), + any(ExecutionContext.class))).thenAnswer(invocation -> null); + staticTableValidator.when( + () -> TableValidator.validateTableWithCCI("schema", "table", ec, SqlKind.TRUNCATE_TABLE)) + .thenCallRealMethod(); + + try (MockedStatic staticOptimizerContext = mockStatic(OptimizerContext.class)) { + OptimizerContext optimizerContext = mock(OptimizerContext.class); + SchemaManager schemaManager = mock(SchemaManager.class); + TableMeta tableMeta = mock(TableMeta.class); + ParamManager paramManager = mock(ParamManager.class); + staticOptimizerContext.when(() -> OptimizerContext.getContext(any())).thenReturn(optimizerContext); + when(optimizerContext.getLatestSchemaManager()).thenReturn(schemaManager); + when(schemaManager.getTableWithNull(any())).thenReturn(tableMeta); + when(ec.getParamManager()).thenReturn(paramManager); + when(paramManager.getBoolean(any())).thenReturn(true); + when(tableMeta.withCci()).thenReturn(true); + + Field field1 = AbstractDdlTask.class.getDeclaredField("schemaName"); + field1.setAccessible(true); + field1.set(truncateTableValidateTask, "schema"); + Field field2 = TruncateTableValidateTask.class.getDeclaredField("logicalTableName"); + field2.setAccessible(true); + field2.set(truncateTableValidateTask, "table"); + + thrown.expect(TddlRuntimeException.class); + thrown.expectMessage("Do not support current ddl"); + doCallRealMethod().when(truncateTableValidateTask).executeImpl(ec); + truncateTableValidateTask.executeImpl(ec); + } + } + + } + + @Test + public void ForbidTruncateCciTable1() { + TruncateTableValidateTask truncateTableValidateTask = mock(TruncateTableValidateTask.class); + ExecutionContext ec = mock(ExecutionContext.class); + + try (MockedStatic staticTableValidator = mockStatic(TableValidator.class)) { + staticTableValidator.when( + () -> TableValidator.validateTableExistence(any(String.class), any(String.class), + any(ExecutionContext.class))).thenAnswer(invocation -> null); + staticTableValidator.when( + () -> TableValidator.validateTableNotReferenceFk(any(String.class), any(String.class), + any(ExecutionContext.class))).thenAnswer(invocation -> null); + staticTableValidator.when( + () -> TableValidator.validateTableWithCCI("schema", "table", ec, SqlKind.TRUNCATE_TABLE)) + .thenAnswer(invocation -> null); + + doCallRealMethod().when(truncateTableValidateTask).executeImpl(ec); + truncateTableValidateTask.executeImpl(ec); + } + } +} diff --git a/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/ddl/job/task/basic/CloneTableDataFileTaskTest.java b/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/ddl/job/task/basic/CloneTableDataFileTaskTest.java new file mode 100644 index 000000000..95648ee96 --- /dev/null +++ b/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/ddl/job/task/basic/CloneTableDataFileTaskTest.java @@ -0,0 +1,218 @@ +package com.alibaba.polardbx.executor.ddl.job.task.basic; + +import com.alibaba.polardbx.common.properties.ParamManager; +import com.alibaba.polardbx.common.utils.Pair; +import com.alibaba.polardbx.common.utils.thread.ServerThreadPool; +import com.alibaba.polardbx.executor.backfill.BatchConsumer; +import com.alibaba.polardbx.executor.physicalbackfill.PhysicalBackfillManager; +import com.alibaba.polardbx.executor.physicalbackfill.PhysicalBackfillUtils; +import com.alibaba.polardbx.gms.partition.PhysicalBackfillDetailInfoFieldJSON; +import com.alibaba.polardbx.gms.topology.DbGroupInfoRecord; +import com.alibaba.polardbx.gms.topology.DbInfoManager; +import com.alibaba.polardbx.optimizer.OptimizerContext; +import com.alibaba.polardbx.optimizer.config.table.ScaleOutPlanUtil; +import com.alibaba.polardbx.optimizer.context.ExecutionContext; +import com.alibaba.polardbx.rpc.pool.XConnection; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; +import com.mysql.cj.polarx.protobuf.PolarxPhysicalBackfill; +import org.junit.After; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.mockito.MockedConstruction; +import org.mockito.MockedStatic; +import org.mockito.Mockito; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.FutureTask; + +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyBoolean; +import static org.mockito.ArgumentMatchers.anyInt; +import static org.mockito.ArgumentMatchers.anyLong; +import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.spy; + +/** + * Test for {@link CloneTableDataFileTaskTest} + * + * @author luoyanxin + */ +public class CloneTableDataFileTaskTest { + private BatchConsumer consumerMock; + private ExecutionContext ecMock; + private ServerThreadPool serverThreadPoolMock; + + @Before + public void setUp() { + consumerMock = mock(BatchConsumer.class); + Mockito.doNothing().when(consumerMock) + .consume(any(), any(), any(), any(), any(PolarxPhysicalBackfill.TransferFileDataOperator.class)); + ecMock = mock(ExecutionContext.class); + serverThreadPoolMock = mock(ServerThreadPool.class); + Mockito.when(ecMock.getExecutorService()).thenReturn(serverThreadPoolMock); + } + + @After + public void tearDown() { + Mockito.reset(consumerMock, ecMock, serverThreadPoolMock); + } + + @Test + public void testForeachPhysicalFile_success() throws Exception { + prepareAndRunCloneTableDataFileTask(false, false, false); + prepareAndRunCloneTableDataFileTask(false, true, false); + } + + public void testForeachPhysicalFile_failed() throws Exception { + try { + prepareAndRunCloneTableDataFileTask(false, false, false); + Assert.fail("should throw exception"); + } catch (Exception ex) { + Assert.assertTrue(ex.getMessage().indexOf("the status of BackfillBean is empty or init ") > 0); + } + try { + prepareAndRunCloneTableDataFileTask(false, true, false); + Assert.fail("should throw exception"); + } catch (Exception ex) { + Assert.assertTrue(ex.getMessage().indexOf("the status of BackfillBean is empty or init ") > 0); + } + + try { + prepareAndRunCloneTableDataFileTask(true, false, true); + Assert.fail("should throw exception"); + } catch (Exception ex) { + Assert.assertTrue(ex.getCause() instanceof NullPointerException); + } + try { + prepareAndRunCloneTableDataFileTask(true, true, true); + Assert.fail("should throw exception"); + } catch (Exception ex) { + Assert.assertTrue(ex.getCause() instanceof NullPointerException); + } + } + + /** + * 准备并运行物理回填任务,根据参数模拟不同的初始化状态、加密情况及连接是否为空的情况 + * + * @param inited 是否已初始化 + * @param encrypted 数据是否加密 + * @param connectIsNull 连接是否为null + * @throws Exception 可能抛出的异常 + */ + public void prepareAndRunCloneTableDataFileTask(boolean inited, boolean encrypted, boolean connectIsNull) + throws Exception { + //OptimizerContext.getContext(schemaName) + // Arrange + OptimizerContext optimizerContext = new OptimizerContext("d1"); + DbInfoManager dbInfoManager = mock(DbInfoManager.class); + try (MockedStatic mockedScaleOutPlanUtil = Mockito.mockStatic(ScaleOutPlanUtil.class); + MockedStatic mockedPhysicalBackfillUtils = Mockito.mockStatic( + PhysicalBackfillUtils.class); + MockedConstruction mocked = Mockito.mockConstruction(PhysicalBackfillManager.class, + (mock, context) -> { + Mockito.when(mock.loadBackfillMeta(anyLong(), anyString(), anyString(), anyString(), anyString())) + .thenReturn(mockBackfillBean(inited)); + }); MockedStatic mockedOptimizerContext = Mockito.mockStatic(OptimizerContext.class) + ; MockedStatic mockedDbInfoManager = Mockito.mockStatic(DbInfoManager.class); + MockedConstruction mockedFuture = Mockito.mockConstruction(FutureTask.class);) { + mockedPhysicalBackfillUtils.when( + () -> PhysicalBackfillUtils.getTempIbdFileInfo(any(Pair.class), any(Pair.class), any(Pair.class), + any(String.class), any(String.class), any(Pair.class), any(Long.class), any(Boolean.class), + any(List.class))) + .thenAnswer(invocation -> { + List> offsetAndSize = invocation.getArgument(8); + // 根据你的测试需要,对 offsetAndSize 进行修改 + offsetAndSize.add(new Pair<>(123L, 456L)); + return null; + }); + Mockito.when(dbInfoManager.isNewPartitionDb(anyString())) + .thenReturn(true); + mockedDbInfoManager.when(() -> DbInfoManager.getInstance()).thenReturn(dbInfoManager); + ParamManager paramManager = new ParamManager(new HashMap()); + paramManager.getProps().put("PHYSICAL_BACKFILL_SPEED_LIMIT", "-1"); + optimizerContext.setParamManager(paramManager); + mockedOptimizerContext.when(() -> OptimizerContext.getContext(anyString())).thenReturn(optimizerContext); + + mockedScaleOutPlanUtil.when(() -> ScaleOutPlanUtil.getDbGroupInfoByGroupName(anyString())).thenReturn( + getMockTarGroupInfoRecord()); + + List list = new ArrayList(); + list.add(Pair.of("11.112.141.109", 31175)); + list.add(Pair.of("26.12.156.152", 31096)); + CloneTableDataFileTask task = + spy(new CloneTableDataFileTask("schema", "t1", Pair.of("d1_p00000", "d1_p00000_group"), + Pair.of("d1_p00001", "d1_p00001_group"), "t1_za6v_00000", ImmutableList.of(""), "dn0", + Pair.of("26.12.155.86", 31159), list, 1000L, + encrypted)); + task.setTaskId(1L); + + XConnection conn = mock(XConnection.class); + mockedPhysicalBackfillUtils.when( + () -> PhysicalBackfillUtils.getXConnectionForStorage(anyString(), anyString(), anyInt(), anyString(), + anyString(), anyInt())) + .thenReturn(connectIsNull ? null : conn); + + mockedPhysicalBackfillUtils.when( + () -> PhysicalBackfillUtils.getUserPasswd(anyString())) + .thenReturn(Pair.of("user1", "pwd1")); + + Map> srcFileAndDirs = new HashMap<>(); + srcFileAndDirs.put("p1", Pair.of("d1_p00000", "t1_za6v_00000.ibd")); + srcFileAndDirs.put("p2", Pair.of("d1_p00000", "t1_za6v_00001.ibd")); + mockedPhysicalBackfillUtils.when( + () -> PhysicalBackfillUtils.getSourceTableInfo(any(), anyString(), anyString(), any(), anyBoolean(), + any())).thenReturn(srcFileAndDirs); + + PolarxPhysicalBackfill.TransferFileDataOperator transferFileDataOperator = + mock(PolarxPhysicalBackfill.TransferFileDataOperator.class); + Mockito.when(transferFileDataOperator.getBufferLen()).thenReturn(2000l).thenReturn(1l); + Mockito.when(conn.execReadBufferFromFile(any())).thenReturn(transferFileDataOperator); + + mockedPhysicalBackfillUtils.when( + () -> PhysicalBackfillUtils.convertToCfgFileName(any(String.class), any(String.class))) + .thenCallRealMethod(); + + Mockito.doNothing().when(task).updateTaskStateInNewTxn(any()); + task.beforeTransaction(ecMock); + + mockedPhysicalBackfillUtils.verify( + () -> PhysicalBackfillUtils.convertToCfgFileName(any(String.class), any(String.class)), + Mockito.times(encrypted ? 4 : 2) + ); + } + } + + private PhysicalBackfillManager.BackfillBean mockBackfillBean(boolean isInit) { + return new PhysicalBackfillManager.BackfillBean(1709745034997297152l, "d1", "t1", "d1", "t1", + mockBackfillObjectRecord(isInit)); + } + + private PhysicalBackfillManager.BackfillObjectBean mockBackfillObjectRecord(boolean isInit) { + PhysicalBackfillDetailInfoFieldJSON detailInfo = PhysicalBackfillDetailInfoFieldJSON.fromJson( + "{\"msg\":\"\",\"sourceHostAndPort\":{\"key\":\"26.12.155.86\",\"value\":31159},\"targetHostAndPorts\":[{\"key\":\"11.112.141.109\",\"value\":31175},{\"key\":\"26.12.156.152\",\"value\":31096}]}"); + PhysicalBackfillManager.BackfillObjectBean record = + new PhysicalBackfillManager.BackfillObjectBean(1, 1709745034997297152l, "d1", "t1", "d1", "t1", + "d1_p00000", "t1_za6v_00000", "", "d1_p00000_group", "d1_p00001_group", "d1_p00000/t1_za6v_00000", + "./d1_p00000/t1_za6v_00000.ibd.TEMPFILE", "d1_p00001/t1_za6v_00000", + "./d1_p00000/t1_za6v_00001.ibd", + isInit ? PhysicalBackfillManager.BackfillStatus.RUNNING : PhysicalBackfillManager.BackfillStatus.INIT, + detailInfo, 2, 65536, + 0, 2, "2024-03-27 17:10:43", "2024-03-27 17:10:43", null, 0, 0); + return record; + } + + private DbGroupInfoRecord getMockTarGroupInfoRecord() { + DbGroupInfoRecord tarDbGroupInfoRecord = new DbGroupInfoRecord(); + tarDbGroupInfoRecord.groupName = "d1_p00001_group"; + tarDbGroupInfoRecord.phyDbName = "d1_p00001"; + tarDbGroupInfoRecord.groupType = DbGroupInfoRecord.GROUP_TYPE_NORMAL; + tarDbGroupInfoRecord.id = 1L; + return tarDbGroupInfoRecord; + } +} diff --git a/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/ddl/job/task/basic/PhysicalBackfillTaskTest.java b/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/ddl/job/task/basic/PhysicalBackfillTaskTest.java new file mode 100644 index 000000000..5b73905fd --- /dev/null +++ b/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/ddl/job/task/basic/PhysicalBackfillTaskTest.java @@ -0,0 +1,177 @@ +package com.alibaba.polardbx.executor.ddl.job.task.basic; + +import com.alibaba.polardbx.common.properties.ParamManager; +import com.alibaba.polardbx.common.utils.Pair; +import com.alibaba.polardbx.executor.backfill.BatchConsumer; +import com.alibaba.polardbx.executor.physicalbackfill.PhysicalBackfillManager; +import com.alibaba.polardbx.executor.physicalbackfill.PhysicalBackfillUtils; +import com.alibaba.polardbx.gms.partition.PhysicalBackfillDetailInfoFieldJSON; +import com.alibaba.polardbx.gms.topology.DbInfoManager; +import com.alibaba.polardbx.optimizer.OptimizerContext; +import com.alibaba.polardbx.optimizer.config.table.ScaleOutPlanUtil; +import com.alibaba.polardbx.optimizer.context.ExecutionContext; +import com.alibaba.polardbx.rpc.pool.XConnection; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; +import com.mysql.cj.polarx.protobuf.PolarxPhysicalBackfill; +import org.junit.After; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.mockito.MockedConstruction; +import org.mockito.MockedStatic; +import org.mockito.Mockito; + +import java.util.HashMap; +import java.util.List; +import java.util.concurrent.FutureTask; + +import static org.mockito.Mockito.*; + +/** + * Created by luoyanxin. + * + * @author luoyanxin + */ +//@RunWith(PowerMockRunner.class) +//@PrepareForTest({PhysicalBackfillUtils.class}) +public class PhysicalBackfillTaskTest { + + private BatchConsumer consumerMock; + private ExecutionContext ecMock; + + @Before + public void setUp() { + consumerMock = mock(BatchConsumer.class); + Mockito.doNothing().when(consumerMock) + .consume(any(), any(), any(), any(), any(PolarxPhysicalBackfill.TransferFileDataOperator.class)); + ecMock = mock(ExecutionContext.class); + } + + @After + public void tearDown() { + Mockito.reset(consumerMock, ecMock); + } + + @Test + public void testForeachPhysicalFile_success() throws Exception { + prepareAndRunPhysicalBackfillTask(true, false, false); + prepareAndRunPhysicalBackfillTask(true, true, false); + } + + @Test + public void testForeachPhysicalFile_failed() throws Exception { + try { + prepareAndRunPhysicalBackfillTask(false, false, false); + Assert.fail("should throw exception"); + } catch (Exception ex) { + Assert.assertTrue(ex.getMessage().indexOf("the status of BackfillBean is empty or init ") > 0); + } + try { + prepareAndRunPhysicalBackfillTask(false, true, false); + Assert.fail("should throw exception"); + } catch (Exception ex) { + Assert.assertTrue(ex.getMessage().indexOf("the status of BackfillBean is empty or init ") > 0); + } + + try { + prepareAndRunPhysicalBackfillTask(true, false, true); + Assert.fail("should throw exception"); + } catch (Exception ex) { + Assert.assertTrue(ex.getCause() instanceof NullPointerException); + } + try { + prepareAndRunPhysicalBackfillTask(true, true, true); + Assert.fail("should throw exception"); + } catch (Exception ex) { + Assert.assertTrue(ex.getCause() instanceof NullPointerException); + } + } + + /** + * 准备并运行物理回填任务,根据参数模拟不同的初始化状态、加密情况及连接是否为空的情况 + * + * @param inited 是否已初始化 + * @param encrypted 数据是否加密 + * @param connectIsNull 连接是否为null + * @throws Exception 可能抛出的异常 + */ + public void prepareAndRunPhysicalBackfillTask(boolean inited, boolean encrypted, boolean connectIsNull) + throws Exception { + //OptimizerContext.getContext(schemaName) + // Arrange + OptimizerContext optimizerContext = new OptimizerContext("d1"); + DbInfoManager dbInfoManager = mock(DbInfoManager.class); + try (MockedStatic mockedPhysicalBackfillUtils = Mockito.mockStatic( + PhysicalBackfillUtils.class); + MockedConstruction mocked = Mockito.mockConstruction(PhysicalBackfillManager.class, + (mock, context) -> { + Mockito.when(mock.loadBackfillMeta(anyLong(), anyString(), anyString(), anyString(), anyString())) + .thenReturn(mockBackfillBean(inited)); + }); MockedStatic mockedOptimizerContext = Mockito.mockStatic(OptimizerContext.class) + ; MockedStatic mockedDbInfoManager = Mockito.mockStatic(DbInfoManager.class); + MockedConstruction mockedFuture = Mockito.mockConstruction(FutureTask.class);) { + mockedPhysicalBackfillUtils.when( + () -> PhysicalBackfillUtils.getTempIbdFileInfo(any(Pair.class), any(Pair.class), any(Pair.class), + any(String.class), any(String.class), any(Pair.class), any(Long.class), any(Boolean.class), + any(List.class))) + .thenAnswer(invocation -> { + List> offsetAndSize = invocation.getArgument(8); + // 根据你的测试需要,对 offsetAndSize 进行修改 + offsetAndSize.add(new Pair<>(123L, 456L)); + return null; + }); + Mockito.when(dbInfoManager.isNewPartitionDb(anyString())) + .thenReturn(true); + mockedDbInfoManager.when(() -> DbInfoManager.getInstance()).thenReturn(dbInfoManager); + ParamManager paramManager = new ParamManager(new HashMap()); + paramManager.getProps().put("PHYSICAL_BACKFILL_SPEED_LIMIT", "-1"); + optimizerContext.setParamManager(paramManager); + mockedOptimizerContext.when(() -> OptimizerContext.getContext(anyString())).thenReturn(optimizerContext); + + PhysicalBackfillTask task = new PhysicalBackfillTask("schema", 123L, "logicalTable", "physicalTable", + ImmutableList.of("partition1"), Pair.of("srcGroup", "srcDn"), Pair.of("srcGroup", "tarGroup"), + ImmutableMap.of("srcGroup", Pair.of("username", "password"), "tarGroup", + Pair.of("username", "password")), 1000L, 0L, 500L, false, encrypted); + + XConnection conn = mock(XConnection.class); + mockedPhysicalBackfillUtils.when( + () -> PhysicalBackfillUtils.getXConnectionForStorage(anyString(), anyString(), anyInt(), anyString(), + anyString(), anyInt())) + .thenReturn(connectIsNull ? null : conn); + + PolarxPhysicalBackfill.TransferFileDataOperator transferFileDataOperator = + mock(PolarxPhysicalBackfill.TransferFileDataOperator.class); + Mockito.when(transferFileDataOperator.getBufferLen()).thenReturn(2000l).thenReturn(1l); + Mockito.when(conn.execReadBufferFromFile(any())).thenReturn(transferFileDataOperator); + + mockedPhysicalBackfillUtils.when( + () -> PhysicalBackfillUtils.convertToCfgFileName(any(String.class), any(String.class))) + .thenCallRealMethod(); + + task.foreachPhysicalFile(Pair.of("srcDb", "srcGroup"), Pair.of("tarDb", "tarGroup"), "partition1", + consumerMock, + ecMock); + } + } + + private PhysicalBackfillManager.BackfillBean mockBackfillBean(boolean isInit) { + return new PhysicalBackfillManager.BackfillBean(1709745034997297152l, "d1", "t1", "d1", "t1", + mockBackfillObjectRecord(isInit)); + } + + private PhysicalBackfillManager.BackfillObjectBean mockBackfillObjectRecord(boolean isInit) { + PhysicalBackfillDetailInfoFieldJSON detailInfo = PhysicalBackfillDetailInfoFieldJSON.fromJson( + "{\"msg\":\"\",\"sourceHostAndPort\":{\"key\":\"26.12.155.86\",\"value\":31159},\"targetHostAndPorts\":[{\"key\":\"11.112.141.109\",\"value\":31175},{\"key\":\"26.12.156.152\",\"value\":31096}]}"); + PhysicalBackfillManager.BackfillObjectBean record = + new PhysicalBackfillManager.BackfillObjectBean(1, 1709745034997297152l, "d1", "t1", "d1", "t1", + "d1_p00000", "t1_za6v_00000", "", "d1_p00000_group", "d1_p00001_group", "d1_p00000/t1_za6v_00000", + "./d1_p00000/t1_za6v_00000.ibd.TEMPFILE", "d1_p00001/t1_za6v_00000", + "./d1_p00000/t1_za6v_00001.ibd", + isInit ? PhysicalBackfillManager.BackfillStatus.RUNNING : PhysicalBackfillManager.BackfillStatus.INIT, + detailInfo, 2, 65536, + 0, 2, "2024-03-27 17:10:43", "2024-03-27 17:10:43", null, 0, 0); + return record; + } + // 更多测试用例,例如处理异常、不同的状态等 +} diff --git a/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/ddl/job/task/tablegroup/TableGroupSyncTaskTest.java b/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/ddl/job/task/tablegroup/TableGroupSyncTaskTest.java new file mode 100644 index 000000000..10daf1ee4 --- /dev/null +++ b/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/ddl/job/task/tablegroup/TableGroupSyncTaskTest.java @@ -0,0 +1,34 @@ +package com.alibaba.polardbx.executor.ddl.job.task.tablegroup; + +import com.alibaba.polardbx.optimizer.context.ExecutionContext; +import com.google.common.collect.ImmutableList; +import org.junit.Test; + +import java.sql.Connection; + +import static org.mockito.Mockito.doNothing; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.spy; + +/** + * Created by luoyanxin. + * + * @author luoyanxin + */ +public class TableGroupSyncTaskTest { + /** + * 初始化 Mockito 注解,用于模拟对象 + */ + public void setUp() { + } + + /** + * TC1: 在回滚事务期间,测试 `duringRollbackTransaction` 是否正确调用了 `syncTableGroup` + */ + @Test + public void testDuringRollbackTransaction() { + TableGroupSyncTask tableGroupsSyncTask = spy(new TableGroupSyncTask("d1", "group1")); + doNothing().when(tableGroupsSyncTask).syncTableGroup(); + tableGroupsSyncTask.duringRollbackTransaction(mock(Connection.class), mock(ExecutionContext.class)); + } +} diff --git a/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/ddl/job/task/tablegroup/TableGroupsSyncTaskTest.java b/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/ddl/job/task/tablegroup/TableGroupsSyncTaskTest.java new file mode 100644 index 000000000..3d35ca5cd --- /dev/null +++ b/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/ddl/job/task/tablegroup/TableGroupsSyncTaskTest.java @@ -0,0 +1,35 @@ +package com.alibaba.polardbx.executor.ddl.job.task.tablegroup; + +import com.alibaba.polardbx.optimizer.context.ExecutionContext; +import com.google.common.collect.ImmutableList; +import org.junit.Test; + +import java.sql.Connection; + +import static org.mockito.Mockito.doNothing; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.spy; + +/** + * Created by luoyanxin. + * + * @author luoyanxin + */ +public class TableGroupsSyncTaskTest { + + /** + * 初始化 Mockito 注解,用于模拟对象 + */ + public void setUp() { + } + + /** + * TC1: 在回滚事务期间,测试 `duringRollbackTransaction` 是否正确调用了 `syncTableGroup` + */ + @Test + public void testDuringRollbackTransaction() { + TableGroupsSyncTask tableGroupsSyncTask = spy(new TableGroupsSyncTask("d1", ImmutableList.of("group1"))); + doNothing().when(tableGroupsSyncTask).syncTableGroup(); + tableGroupsSyncTask.duringRollbackTransaction(mock(Connection.class), mock(ExecutionContext.class)); + } +} diff --git a/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/ddl/job/validator/ForeignKeyValidatorTest.java b/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/ddl/job/validator/ForeignKeyValidatorTest.java new file mode 100644 index 000000000..898a3726a --- /dev/null +++ b/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/ddl/job/validator/ForeignKeyValidatorTest.java @@ -0,0 +1,127 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.alibaba.polardbx.executor.ddl.job.validator; + +import com.alibaba.polardbx.common.charset.CharsetName; +import com.alibaba.polardbx.common.charset.CollationName; +import org.apache.calcite.rel.type.RelDataType; +import org.apache.calcite.rel.type.RelDataTypeFactory; +import org.apache.calcite.sql.SqlColumnDeclaration; +import org.apache.calcite.sql.SqlCreateTable; +import org.apache.calcite.sql.SqlDataTypeSpec; +import org.apache.calcite.sql.type.SqlTypeUtil; +import org.apache.calcite.util.Pair; +import org.junit.Test; +import org.mockito.MockedStatic; +import org.mockito.Mockito; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +public class ForeignKeyValidatorTest { + +// @Test +// public void fkRefIndexTest() { +// String tableName = "tableName"; +// String columnName = "columnName"; +// ForeignKeyData foreignKeyData = Mockito.spy(new ForeignKeyData()); +// foreignKeyData.refTableName = tableName; +// foreignKeyData.refColumns = new ArrayList() {{ +// add(columnName); +// }}; +// +// ExecutionContext executionContext = Mockito.spy(new ExecutionContext()); +// SqlCreateTable sqlCreateTable = mock(SqlCreateTable.class); +// +// SqlIndexDefinition idx1 = new SqlIndexDefinition(SqlParserPos.ZERO, false, null, null, null, null, null, null, +// ImmutableList.of( +// new SqlIndexColumnName(SqlParserPos.ZERO, new SqlIdentifier(columnName, SqlParserPos.ZERO), null, +// null)), +// null, null, null, null, null, null, false, null, true); +// +// List> uniqueKeys = new ArrayList<>(); +// uniqueKeys.add(Pair.of(new SqlIdentifier(columnName, SqlParserPos.ZERO), idx1)); +// +// when(sqlCreateTable.getUniqueKeys()).thenReturn(uniqueKeys); +// ForeignKeyValidator.validateAddReferredTableFkIndex(foreignKeyData, executionContext, tableName, +// sqlCreateTable); +// } + + @Test + public void testGetCharsetCollationName() { + SqlDataTypeSpec datatypeMock = mock(SqlDataTypeSpec.class); + SqlColumnDeclaration defMock = mock(SqlColumnDeclaration.class); + SqlCreateTable sqlCreateTableMock = mock(SqlCreateTable.class); + + when(defMock.getDataType()).thenReturn(datatypeMock); + when(datatypeMock.getCharSetName()).thenReturn("utf8"); + when(datatypeMock.getCollationName()).thenReturn("utf8_bin"); + + try (MockedStatic mockedCharsetName = Mockito.mockStatic(CharsetName.class)) { + try (MockedStatic mockedCollationName = Mockito.mockStatic(CollationName.class)) { + try (MockedStatic mockedSqlTypeUtil = Mockito.mockStatic(SqlTypeUtil.class)) { + CollationName collationNameMock = CollationName.UTF8_BIN; + CharsetName charsetNameMock = CharsetName.UTF8; + + mockedCollationName.when(() -> CollationName.findCollationName("utf8_bin")) + .thenReturn(collationNameMock); + mockedCollationName.when(() -> CollationName.getCharsetOf(collationNameMock)) + .thenReturn(charsetNameMock); + + when(sqlCreateTableMock.getDefaultCharset()).thenReturn("default_charset"); + when(sqlCreateTableMock.getDefaultCollation()).thenReturn("default_collation"); + + Pair result = + ForeignKeyValidator.getCharsetCollationName(defMock, sqlCreateTableMock); + + assertEquals("UTF8", result.getKey()); + assertEquals("UTF8_BIN", result.getValue()); + + when(defMock.getNotNull()).thenReturn(SqlColumnDeclaration.ColumnNull.NULL); + + RelDataType relDataTypeMock = mock(RelDataType.class); + when(datatypeMock.deriveType(any(RelDataTypeFactory.class), eq(true))) + .thenReturn(relDataTypeMock); // nullable为true时返回的模拟对象 + + mockedCollationName.when(() -> CollationName.getCharsetOf(collationNameMock)) + .thenReturn(null); + mockedSqlTypeUtil.when(() -> SqlTypeUtil.inCharFamily(any(RelDataType.class))) + .thenReturn(true); + + result = + ForeignKeyValidator.getCharsetCollationName(defMock, sqlCreateTableMock); + assertEquals("default_charset", result.getKey()); + assertEquals("default_collation", result.getValue()); + + mockedSqlTypeUtil.when(() -> SqlTypeUtil.inCharFamily(any(RelDataType.class))) + .thenReturn(false); + + result = + ForeignKeyValidator.getCharsetCollationName(defMock, sqlCreateTableMock); + assertNull(result); + + } + } + } + } +} diff --git a/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/ddl/newengine/backfill/BackfillHandlerTest.java b/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/ddl/newengine/backfill/BackfillHandlerTest.java new file mode 100644 index 000000000..f9f104fe3 --- /dev/null +++ b/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/ddl/newengine/backfill/BackfillHandlerTest.java @@ -0,0 +1,31 @@ +package com.alibaba.polardbx.executor.ddl.newengine.backfill; + +import com.alibaba.polardbx.optimizer.config.table.GsiMetaManager; +import com.alibaba.polardbx.optimizer.config.table.SchemaManager; +import com.alibaba.polardbx.optimizer.config.table.TableMeta; +import com.alibaba.polardbx.optimizer.context.ExecutionContext; +import com.alibaba.polardbx.repo.mysql.handler.GsiBackfillHandler; +import org.junit.Assert; +import org.junit.Test; +import org.mockito.Mockito; + +public class BackfillHandlerTest { + + @Test + public void testGetPrimaryTableName() { + ExecutionContext executionContext = Mockito.mock(ExecutionContext.class); + SchemaManager schemaManager = Mockito.mock(SchemaManager.class); + TableMeta tableMeta = Mockito.mock(TableMeta.class); + GsiMetaManager.GsiTableMetaBean gsiTableMetaBean = Mockito.mock(GsiMetaManager.GsiTableMetaBean.class); + GsiMetaManager.GsiIndexMetaBean gsiIndexMetaBean = Mockito.mock(GsiMetaManager.GsiIndexMetaBean.class); + + Mockito.when(executionContext.getSchemaManager(Mockito.anyString())).thenReturn(schemaManager); + Mockito.when(schemaManager.getTable(Mockito.anyString())).thenReturn(tableMeta); + Mockito.when(tableMeta.isGsi()).thenReturn(true); + Mockito.when(tableMeta.getGsiTableMetaBean()).thenReturn(gsiTableMetaBean); + gsiTableMetaBean.gsiMetaBean = gsiIndexMetaBean; + + String tableName = GsiBackfillHandler.getPrimaryTableName("wumu", "gsi", true, executionContext); + Assert.assertNull(tableName); + } +} diff --git a/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/ddl/newengine/backfill/LoaderTest.java b/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/ddl/newengine/backfill/LoaderTest.java new file mode 100644 index 000000000..c4632d1b5 --- /dev/null +++ b/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/ddl/newengine/backfill/LoaderTest.java @@ -0,0 +1,292 @@ +package com.alibaba.polardbx.executor.ddl.newengine.backfill; + +import com.alibaba.polardbx.common.exception.TddlRuntimeException; +import com.alibaba.polardbx.common.exception.code.ErrorCode; +import com.alibaba.polardbx.common.jdbc.ITransactionPolicy; +import com.alibaba.polardbx.common.jdbc.ParameterContext; +import com.alibaba.polardbx.common.jdbc.Parameters; +import com.alibaba.polardbx.common.properties.ParamManager; +import com.alibaba.polardbx.common.utils.Pair; +import com.alibaba.polardbx.config.ConfigDataMode; +import com.alibaba.polardbx.executor.backfill.Loader; +import com.alibaba.polardbx.executor.columns.ColumnBackfillExecutor; +import com.alibaba.polardbx.executor.common.ExecutorContext; +import com.alibaba.polardbx.executor.common.StorageInfoManager; +import com.alibaba.polardbx.executor.common.TopologyHandler; +import com.alibaba.polardbx.executor.cursor.Cursor; +import com.alibaba.polardbx.executor.gsi.backfill.GsiLoader; +import com.alibaba.polardbx.executor.spi.ITransactionManager; +import com.alibaba.polardbx.optimizer.context.ExecutionContext; +import com.alibaba.polardbx.optimizer.core.planner.ExecutionPlan; +import com.alibaba.polardbx.optimizer.utils.ITransaction; +import org.apache.calcite.rel.RelNode; +import org.apache.calcite.sql.SqlInsert; +import org.junit.Assert; +import org.junit.Test; +import org.mockito.MockedStatic; +import org.mockito.Mockito; + +import javax.sql.DataSource; +import java.lang.reflect.Constructor; +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.function.BiFunction; + +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.doThrow; +import static org.mockito.Mockito.when; + +public class LoaderTest { + + @Test + public void testCanUseBackfillReturning() { + ExecutionContext ec = Mockito.mock(ExecutionContext.class); + ParamManager pm = Mockito.mock(ParamManager.class); + ExecutorContext executorContext = Mockito.mock(ExecutorContext.class); + TopologyHandler topologyHandler = Mockito.mock(TopologyHandler.class); + StorageInfoManager sm = Mockito.mock(StorageInfoManager.class); + + when(ec.getParamManager()).thenReturn(pm); + when(pm.getBoolean(Mockito.any())).thenReturn(true); + + when(executorContext.getTopologyHandler()).thenReturn(topologyHandler); + when(executorContext.getStorageInfoManager()).thenReturn(sm); + when(sm.supportsBackfillReturning()).thenReturn(true); + + try (MockedStatic executorContextMockedStatic = Mockito.mockStatic(ExecutorContext.class)) { + when(ExecutorContext.getContext(Mockito.anyString())).thenReturn(executorContext); + + try (MockedStatic mockedStatic = Mockito.mockStatic(ColumnBackfillExecutor.class)) { + when(ColumnBackfillExecutor.isAllDnUseXDataSource(Mockito.any(TopologyHandler.class))) + .thenReturn(true); + + Assert.assertTrue(Loader.canUseBackfillReturning(ec, "wumu")); + } + } + } + + @Test + public void testFillIntoIndex() throws Exception { + Class loaderClass = Class.forName("com.alibaba.polardbx.executor.gsi.backfill.GsiLoader"); + Constructor[] constructors = loaderClass.getDeclaredConstructors(); + Constructor protectedConstructor = constructors[0]; + protectedConstructor.setAccessible(true); + + BiFunction, ExecutionContext, List> executeFunc = + (List inputs, ExecutionContext executionContext1) -> { + List inputCursors = new ArrayList<>(inputs.size()); + return inputCursors; + }; + + ExecutionContext ec = Mockito.mock(ExecutionContext.class); + ITransactionManager tm = Mockito.mock(ITransactionManager.class); + ExecutorContext executorContext = Mockito.mock(ExecutorContext.class); + SqlInsert sqlInsert = Mockito.mock(SqlInsert.class); + ExecutionPlan executionPlan = Mockito.mock(ExecutionPlan.class); + ITransaction transaction = Mockito.mock(ITransaction.class); + + when(ec.getBackfillReturning()).thenReturn(null); + when(ec.copy()).thenReturn(ec); + when(ec.isReadOnly()).thenReturn(false); + when(ec.getTransaction()).thenReturn(transaction); + when(tm.createTransaction(Mockito.any(ITransactionPolicy.TransactionClass.class), + Mockito.any(ExecutionContext.class))).thenReturn(transaction); + when(executorContext.getTransactionManager()).thenReturn(tm); + + List> batchParams = new ArrayList<>(); + Map param = new HashMap<>(); + batchParams.add(param); + + Pair> baseEcAndIndexPair = new Pair<>(ec, new Pair<>("wumu", "t1")); + + try (MockedStatic executorContextMockedStatic = Mockito.mockStatic(ExecutorContext.class)) { + when(ExecutorContext.getContext(Mockito.anyString())).thenReturn(executorContext); + + Object[] constructorArgs = + new Object[] { + "wumu", "t1", sqlInsert, sqlInsert, executionPlan, new int[2], new int[2], executeFunc, "a"}; + Object loaderObject = protectedConstructor.newInstance(constructorArgs); + + GsiLoader loader = Mockito.spy((GsiLoader) loaderObject); + doReturn(1024).when(loader) + .executeInsert(Mockito.any(SqlInsert.class), Mockito.anyString(), Mockito.anyString(), + Mockito.any(ExecutionContext.class), Mockito.anyString(), Mockito.anyString()); + + Assert.assertEquals(1024, loader.fillIntoIndex(batchParams, baseEcAndIndexPair, () -> true)); + } + } + + @Test + public void testFillIntoIndexErr() throws Exception { + Class loaderClass = Class.forName("com.alibaba.polardbx.executor.gsi.backfill.GsiLoader"); + Constructor[] constructors = loaderClass.getDeclaredConstructors(); + Constructor protectedConstructor = constructors[0]; + protectedConstructor.setAccessible(true); + + BiFunction, ExecutionContext, List> executeFunc = + (List inputs, ExecutionContext executionContext1) -> { + List inputCursors = new ArrayList<>(inputs.size()); + return inputCursors; + }; + + ExecutionContext ec = Mockito.mock(ExecutionContext.class); + ITransactionManager tm = Mockito.mock(ITransactionManager.class); + ExecutorContext executorContext = Mockito.mock(ExecutorContext.class); + SqlInsert sqlInsert = Mockito.mock(SqlInsert.class); + ExecutionPlan executionPlan = Mockito.mock(ExecutionPlan.class); + ITransaction transaction = Mockito.mock(ITransaction.class); + + when(ec.getBackfillReturning()).thenReturn(null); + when(ec.copy()).thenReturn(ec); + when(ec.isReadOnly()).thenReturn(false); + when(ec.getTransaction()).thenReturn(transaction); + when(tm.createTransaction(Mockito.any(ITransactionPolicy.TransactionClass.class), + Mockito.any(ExecutionContext.class))).thenReturn(transaction); + when(executorContext.getTransactionManager()).thenReturn(tm); + + List> batchParams = new ArrayList<>(); + Map param = new HashMap<>(); + batchParams.add(param); + + Pair> baseEcAndIndexPair = new Pair<>(ec, new Pair<>("wumu", "t1")); + + try (MockedStatic executorContextMockedStatic = Mockito.mockStatic(ExecutorContext.class)) { + when(ExecutorContext.getContext(Mockito.anyString())).thenReturn(executorContext); + + Object[] constructorArgs = + new Object[] { + "wumu", "t1", sqlInsert, sqlInsert, executionPlan, new int[2], new int[2], executeFunc, "a"}; + Object loaderObject = protectedConstructor.newInstance(constructorArgs); + + GsiLoader loader = Mockito.spy((GsiLoader) loaderObject); + doThrow(new TddlRuntimeException(ErrorCode.ERR_GLOBAL_SECONDARY_INDEX_BACKFILL_DUPLICATE_ENTRY, "error")) + .when(loader) + .executeInsert(Mockito.any(SqlInsert.class), Mockito.anyString(), Mockito.anyString(), + Mockito.any(ExecutionContext.class), Mockito.anyString(), Mockito.anyString()); + + try { + loader.fillIntoIndex(batchParams, baseEcAndIndexPair, () -> true); + } catch (TddlRuntimeException e) { + Assert.assertTrue(e.getMessage().contains("error")); + } + } + } + + @Test + public void testCheckSupportBackfillReturning() throws SQLException { + DataSource dataSource = Mockito.mock(DataSource.class); + Connection connection = Mockito.mock(Connection.class); + Statement statement = Mockito.mock(Statement.class); + ResultSet resultSet = Mockito.mock(ResultSet.class); + + when(dataSource.getConnection()).thenReturn(connection); + when(connection.createStatement()).thenReturn(statement); + when(statement.executeQuery(Mockito.anyString())).thenReturn(resultSet); + when(resultSet.next()).thenReturn(true); + when(resultSet.getString(1)).thenReturn("dbms_trans"); + when(resultSet.getString(2)).thenReturn("backfill"); + + try (MockedStatic configDataModeMockedStatic = Mockito.mockStatic(ConfigDataMode.class)) { + when(ConfigDataMode.isPolarDbX()).thenReturn(true); + + Assert.assertTrue(StorageInfoManager.checkSupportBackfillReturning(dataSource)); + } + } + + @Test + public void testCheckSupportBackfillReturningErr() throws SQLException { + DataSource dataSource = Mockito.mock(DataSource.class); + Connection connection = Mockito.mock(Connection.class); + Statement statement = Mockito.mock(Statement.class); + + when(dataSource.getConnection()).thenReturn(connection); + when(connection.createStatement()).thenReturn(statement); + when(statement.executeQuery(Mockito.anyString())).thenThrow( + new SQLException("Command not supported by pluggable protocols", "HY000", 3130)); + + try (MockedStatic configDataModeMockedStatic = Mockito.mockStatic(ConfigDataMode.class)) { + when(ConfigDataMode.isPolarDbX()).thenReturn(true); + + Assert.assertFalse(StorageInfoManager.checkSupportBackfillReturning(dataSource)); + } + } + + @Test + public void testCheckSupportBackfillReturningErr2() throws SQLException { + DataSource dataSource = Mockito.mock(DataSource.class); + Connection connection = Mockito.mock(Connection.class); + Statement statement = Mockito.mock(Statement.class); + + when(dataSource.getConnection()).thenReturn(connection); + when(connection.createStatement()).thenReturn(statement); + when(statement.executeQuery(Mockito.anyString())).thenThrow( + new SQLException("does not exist", "42000", 1305)); + + try (MockedStatic configDataModeMockedStatic = Mockito.mockStatic(ConfigDataMode.class)) { + when(ConfigDataMode.isPolarDbX()).thenReturn(true); + + Assert.assertFalse(StorageInfoManager.checkSupportBackfillReturning(dataSource)); + } + } + + @Test + public void testBackfillReturningLoader() { + ExecutionContext ec = Mockito.mock(ExecutionContext.class); + + Parameters parameters = Mockito.mock(Parameters.class); + + List> params = new ArrayList<>(); + params.add(new HashMap<>()); + params.add(new HashMap<>()); + + when(parameters.getBatchParameters()).thenReturn(params); + + when(ec.getParams()).thenReturn(parameters); + + List> returningResult = new ArrayList<>(); + + Assert.assertEquals(Loader.getReturningAffectRows(returningResult, ec), 2); + } + + @Test + public void testBackfillReturningLoader2() { + ExecutionContext ec = Mockito.mock(ExecutionContext.class); + + Parameters parameters = Mockito.mock(Parameters.class); + + List> params = new ArrayList<>(); + params.add(new HashMap<>()); + params.add(new HashMap<>()); + + when(parameters.getBatchParameters()).thenReturn(params); + + when(ec.getParams()).thenReturn(parameters); + + List> returningResult = new ArrayList<>(); + Map res = new HashMap<>(); + ParameterContext pc = Mockito.mock(ParameterContext.class); + res.put(1, pc); + returningResult.add(res); + + Object[] objects = new Object[2]; + objects[0] = 1; + objects[1] = "wumu"; + + when(pc.getArgs()).thenReturn(objects); + + try { + Loader.getReturningAffectRows(returningResult, ec); + } catch (TddlRuntimeException e) { + Assert.assertTrue(e.getMessage().contains("Duplicated entry 'wumu' for key 'PRIMARY'")); + return; + } + + Assert.fail(); + } +} diff --git a/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/ddl/newengine/backfill/OmcExtractorTest.java b/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/ddl/newengine/backfill/OmcExtractorTest.java index 694486905..3629f3865 100644 --- a/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/ddl/newengine/backfill/OmcExtractorTest.java +++ b/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/ddl/newengine/backfill/OmcExtractorTest.java @@ -35,7 +35,8 @@ public void testBuildInsertSelectForOMCBackfillWithChangeSetON() { primaryKeys.add("b"); SqlInsert sqlInsert = builder.buildSqlInsertSelectForOMCBackfill( - targetTableColumns, sourceTableColumns, primaryKeys, true, true, SqlSelect.LockMode.SHARED_LOCK, true); + targetTableColumns, sourceTableColumns, primaryKeys, true, true, SqlSelect.LockMode.SHARED_LOCK, true, + true); Assert.assertEquals(sqlInsert.toString(), "INSERT IGNORE\n" + "INTO ? (`a`, `b`, `c`)\n" @@ -65,7 +66,7 @@ public void testBuildInsertSelectForOMCBackfillWithChangeSetOFF() { primaryKeys.add("b"); SqlInsert sqlInsert = builder.buildSqlInsertSelectForOMCBackfill( - targetTableColumns, sourceTableColumns, primaryKeys, true, true, SqlSelect.LockMode.UNDEF, false); + targetTableColumns, sourceTableColumns, primaryKeys, true, true, SqlSelect.LockMode.UNDEF, false, true); Assert.assertEquals(sqlInsert.toString(), "INSERT\n" + "INTO ? (`a`, `b`, `c`)\n" @@ -73,4 +74,35 @@ public void testBuildInsertSelectForOMCBackfillWithChangeSetOFF() { + "FROM ? AS `tb` FORCE INDEX(PRIMARY)\n" + "WHERE (((`a` > ?) OR ((`a` = ?) AND (`b` > ?))) AND ((`a` < ?) OR ((`a` = ?) AND (`b` <= ?)))))"); } + + @Test + public void testBuildInsertSelectForOMCBackfillWithChangeSetAndForceIndexOFF() { + ExecutionContext ec = mock(ExecutionContext.class); + + final PhysicalPlanBuilder builder = new PhysicalPlanBuilder("wumu", true, ec); + + List targetTableColumns = new ArrayList<>(); + targetTableColumns.add("a"); + targetTableColumns.add("b"); + targetTableColumns.add("c"); + + List sourceTableColumns = new ArrayList<>(); + sourceTableColumns.add("a"); + sourceTableColumns.add("b"); + sourceTableColumns.add("e"); + + List primaryKeys = new ArrayList<>(); + primaryKeys.add("a"); + primaryKeys.add("b"); + + SqlInsert sqlInsert = builder.buildSqlInsertSelectForOMCBackfill( + targetTableColumns, sourceTableColumns, primaryKeys, true, true, SqlSelect.LockMode.SHARED_LOCK, true, + false); + + Assert.assertEquals(sqlInsert.toString(), "INSERT IGNORE\n" + + "INTO ? (`a`, `b`, `c`)\n" + + "(SELECT `a`, `b`, `e`\n" + + "FROM ?\n" + + "WHERE (((`a` > ?) OR ((`a` = ?) AND (`b` > ?))) AND ((`a` < ?) OR ((`a` = ?) AND (`b` <= ?)))) LOCK IN SHARE MODE)"); + } } diff --git a/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/ddl/newengine/dag/DdlEngineRequesterTest.java b/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/ddl/newengine/dag/DdlEngineRequesterTest.java new file mode 100644 index 000000000..e93f1d947 --- /dev/null +++ b/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/ddl/newengine/dag/DdlEngineRequesterTest.java @@ -0,0 +1,29 @@ +package com.alibaba.polardbx.executor.ddl.newengine.dag; + +import com.alibaba.polardbx.executor.ddl.newengine.DdlEngineRequester; +import com.alibaba.polardbx.executor.ddl.newengine.job.DdlJob; +import com.alibaba.polardbx.optimizer.context.DdlContext; +import com.alibaba.polardbx.optimizer.context.ExecutionContext; +import org.junit.Assert; +import org.junit.Test; +import org.mockito.Mockito; + +public class DdlEngineRequesterTest { + + @Test + public void testExecute() { + DdlJob ddlJob = Mockito.mock(DdlJob.class); + ExecutionContext ec = Mockito.mock(ExecutionContext.class); + DdlContext ddlContext = Mockito.mock(DdlContext.class); + + Mockito.when(ddlContext.getSchemaName()).thenReturn("information_schema"); + + DdlEngineRequester requester = new DdlEngineRequester(ddlJob, ec, ddlContext); + + try { + requester.execute(); + } catch (Exception e) { + Assert.assertTrue(e.getMessage().contains("The DDL job can not be executed")); + } + } +} diff --git a/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/gms/MultiVersionColumnarSchemaTest.java b/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/gms/MultiVersionColumnarSchemaTest.java new file mode 100644 index 000000000..1bdfb5113 --- /dev/null +++ b/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/gms/MultiVersionColumnarSchemaTest.java @@ -0,0 +1,446 @@ +package com.alibaba.polardbx.executor.gms; + +import com.alibaba.polardbx.common.exception.NotSupportException; +import com.alibaba.polardbx.common.exception.code.ErrorCode; +import com.alibaba.polardbx.executor.archive.schemaevolution.ColumnMetaWithTs; +import com.alibaba.polardbx.gms.metadb.table.ColumnarColumnEvolutionAccessor; +import com.alibaba.polardbx.gms.metadb.table.ColumnarColumnEvolutionRecord; +import com.alibaba.polardbx.gms.metadb.table.ColumnarTableEvolutionAccessor; +import com.alibaba.polardbx.gms.metadb.table.ColumnarTableEvolutionRecord; +import com.alibaba.polardbx.gms.metadb.table.ColumnarTableMappingAccessor; +import com.alibaba.polardbx.gms.metadb.table.ColumnarTableMappingRecord; +import com.alibaba.polardbx.gms.util.MetaDbUtil; +import com.alibaba.polardbx.optimizer.config.table.ColumnMeta; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.mockito.MockedConstruction; +import org.mockito.MockedStatic; +import org.mockito.Mockito; +import org.yaml.snakeyaml.Yaml; +import org.yaml.snakeyaml.constructor.Constructor; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.concurrent.ExecutionException; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertSame; +import static org.junit.Assert.assertTrue; + +public class MultiVersionColumnarSchemaTest { + private MultiVersionColumnarSchema multiVersionColumnarSchema; + + private MockedStatic mockMetaDbUtil; + private MockedConstruction tableEvolutionAccessorMockedConstruction; + private MockedConstruction columnEvolutionAccessorMockedConstruction; + private MockedConstruction tableMappingAccessorMockedConstruction; + + private static final Long TABLE_ID = 1L; + private static final int DDL_ROUND_COUNT = 15; + private static final List SOLID_FIELD_IDS = Arrays.asList(1L, 2L, 3L, 4L); + + private static final ColumnarTableEvolutionRecord[] TABLE_EVOLUTION_RECORDS = { + new ColumnarTableEvolutionRecord(7193543211267129408L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608426958393344L, "CREATE_INDEX", 7193543213288783936L, Arrays.asList(1L, 2L, 3L, 4L)), + new ColumnarTableEvolutionRecord(7193543479677419648L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608695356104704L, "ALTER_TABLE_ADD_COLUMN", 7193543481715851328L, + Arrays.asList(1L, 2L, 3L, 4L, 5L)), + new ColumnarTableEvolutionRecord(7193543486010818688L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608701685309440L, "ALTER_TABLE_ADD_COLUMN", 7193543488070221888L, + Arrays.asList(6L, 7L, 8L, 9L, 10L, 11L)), + new ColumnarTableEvolutionRecord(7193543493531205696L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608709188919296L, "ALTER_TABLE_ADD_COLUMN", 7193543495498334272L, + Arrays.asList(6L, 12L, 13L, 14L, 15L, 16L, 17L)), + new ColumnarTableEvolutionRecord(7193543500346949760L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608716004663296L, "ALTER_TABLE_DROP_COLUMN", 7193543504839049280L, + Arrays.asList(6L, 12L, 13L, 14L, 15L, 16L)), + new ColumnarTableEvolutionRecord(7193543510081929280L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608725844500480L, "ALTER_TABLE_DROP_COLUMN", 7193543513747751040L, + Arrays.asList(20L, 21L, 22L, 23L, 24L)), + new ColumnarTableEvolutionRecord(7193543518810275968L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608734459600896L, "ALTER_TABLE_MODIFY_COLUMN", 7193543520727072896L, + Arrays.asList(20L, 21L, 25L, 26L, 27L)), + new ColumnarTableEvolutionRecord(7193543524187373632L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608739840892928L, "ALTER_TABLE_MODIFY_COLUMN", 7193543525730877504L, + Arrays.asList(20L, 21L, 28L, 29L, 30L)), + new ColumnarTableEvolutionRecord(7193543530847928512L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608746514030592L, "ALTER_TABLE_MODIFY_COLUMN", 7193543532404015168L, + Arrays.asList(31L, 32L, 33L, 34L, 35L)), + new ColumnarTableEvolutionRecord(7193543535960785024L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608751610109952L, "ALTER_TABLE_MODIFY_COLUMN", 7193543537814667328L, + Arrays.asList(36L, 37L, 38L, 39L, 40L)), + new ColumnarTableEvolutionRecord(7193543542566813760L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608758224527360L, "ALTER_TABLE_CHANGE_COLUMN", 7193543544571691072L, + Arrays.asList(41L, 42L, 43L, 44L, 45L)), + new ColumnarTableEvolutionRecord(7193543547780333632L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608763429658624L, "ALTER_TABLE_CHANGE_COLUMN", 7193543549244145728L, + Arrays.asList(46L, 47L, 48L, 49L, 50L)), + new ColumnarTableEvolutionRecord(7193543553971126336L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608769637228544L, "ALTER_TABLE_ADD_COLUMN", 7193543555581739072L, + Arrays.asList(46L, 47L, 48L, 49L, 50L, 51L)), + new ColumnarTableEvolutionRecord(7193543559344029760L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608774997549056L, "ALTER_TABLE_DROP_COLUMN", 7193543563106320448L, + Arrays.asList(46L, 53L, 54L, 55L, 56L)), + new ColumnarTableEvolutionRecord(7193543569020289088L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608784665419776L, "ALTER_TABLE_DROP_COLUMN", 7193543573315256384L, + Arrays.asList(46L, 53L, 54L, 55L)), + new ColumnarTableEvolutionRecord(7193543578759462976L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608794408787968L, "ALTER_TABLE_MODIFY_COLUMN", 7193543580323938560L, + Arrays.asList(46L, 58L, 59L, 60L)), + new ColumnarTableEvolutionRecord(7193543583968788544L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608799722971136L, "ALTER_TABLE_ADD_COLUMN", 7193543585772339264L, + Arrays.asList(46L, 58L, 59L, 60L, 61L)), + new ColumnarTableEvolutionRecord(7193543589274583104L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608804953268224L, "ALTER_TABLE_ADD_COLUMN", 7193543590679675008L, + Arrays.asList(62L, 63L, 64L, 65L, 66L, 67L)), + new ColumnarTableEvolutionRecord(7193543593737322688L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608809399230464L, "ALTER_TABLE_ADD_COLUMN", 7193543595851251776L, + Arrays.asList(62L, 68L, 69L, 70L, 71L, 72L, 73L)), + new ColumnarTableEvolutionRecord(7193543599181529216L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608814826659840L, "ALTER_TABLE_DROP_COLUMN", 7193543602138513472L, + Arrays.asList(62L, 68L, 69L, 70L, 71L, 72L)), + new ColumnarTableEvolutionRecord(7193543605280047168L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608820925177856L, "ALTER_TABLE_DROP_COLUMN", 7193543608513855552L, + Arrays.asList(76L, 77L, 78L, 79L, 80L)), + new ColumnarTableEvolutionRecord(7193543611466645568L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608827115970560L, "ALTER_TABLE_MODIFY_COLUMN", 7193543613047898176L, + Arrays.asList(76L, 77L, 81L, 82L, 83L)), + new ColumnarTableEvolutionRecord(7193543616805994560L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608832455319552L, "ALTER_TABLE_MODIFY_COLUMN", 7193543618370470016L, + Arrays.asList(76L, 77L, 84L, 85L, 86L)), + new ColumnarTableEvolutionRecord(7193543622447333504L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608838084075520L, "ALTER_TABLE_MODIFY_COLUMN", 7193543624234106944L, + Arrays.asList(87L, 88L, 89L, 90L, 91L)), + new ColumnarTableEvolutionRecord(7193543627287560320L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608842928496640L, "ALTER_TABLE_MODIFY_COLUMN", 7193543643221721152L, + Arrays.asList(92L, 93L, 94L, 95L, 96L)), + new ColumnarTableEvolutionRecord(7193543645553754176L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608861198884864L, "ALTER_TABLE_CHANGE_COLUMN", 7193543646430363712L, + Arrays.asList(97L, 98L, 99L, 100L, 101L)), + new ColumnarTableEvolutionRecord(7193543648217137216L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608863866462208L, "ALTER_TABLE_CHANGE_COLUMN", 7193543649295073344L, + Arrays.asList(102L, 103L, 104L, 105L, 106L)), + new ColumnarTableEvolutionRecord(7193543650888908864L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608866550816768L, "ALTER_TABLE_ADD_COLUMN", 7193543651815850048L, + Arrays.asList(102L, 103L, 104L, 105L, 106L, 107L)), + new ColumnarTableEvolutionRecord(7193543653569069120L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608869222588416L, "ALTER_TABLE_DROP_COLUMN", 7193543655351648320L, + Arrays.asList(102L, 109L, 110L, 111L, 112L)), + new ColumnarTableEvolutionRecord(7193543656660271168L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608872305401856L, "ALTER_TABLE_DROP_COLUMN", 7193543658417684544L, + Arrays.asList(102L, 109L, 110L, 111L)), + new ColumnarTableEvolutionRecord(7193543660166709312L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608875816034304L, "ALTER_TABLE_MODIFY_COLUMN", 7193543661244645440L, + Arrays.asList(102L, 114L, 115L, 116L)), + new ColumnarTableEvolutionRecord(7193543662834286656L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608878487805952L, "ALTER_TABLE_ADD_COLUMN", 7193543663752839232L, + Arrays.asList(102L, 114L, 115L, 116L, 117L)), + new ColumnarTableEvolutionRecord(7193543665086627904L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608880744341504L, "ALTER_TABLE_ADD_COLUMN", 7193543666227478592L, + Arrays.asList(118L, 119L, 120L, 121L, 122L, 123L)), + new ColumnarTableEvolutionRecord(7193543667762593856L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608883416113152L, "ALTER_TABLE_ADD_COLUMN", 7193543668916027456L, + Arrays.asList(118L, 124L, 125L, 126L, 127L, 128L, 129L)), + new ColumnarTableEvolutionRecord(7193543670430171200L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608886079496192L, "ALTER_TABLE_DROP_COLUMN", 7193543672191778880L, + Arrays.asList(118L, 124L, 125L, 126L, 127L, 128L)), + new ColumnarTableEvolutionRecord(7193543673936609344L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608889585934336L, "ALTER_TABLE_DROP_COLUMN", 7193543675698217024L, + Arrays.asList(132L, 133L, 134L, 135L, 136L)), + new ColumnarTableEvolutionRecord(7193543677023617088L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608892664553472L, "ALTER_TABLE_MODIFY_COLUMN", 7193543678097358912L, + Arrays.asList(132L, 133L, 137L, 138L, 139L)), + new ColumnarTableEvolutionRecord(7193543679687000128L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608895336325120L, "ALTER_TABLE_MODIFY_COLUMN", 7193543680764936256L, + Arrays.asList(132L, 133L, 140L, 141L, 142L)), + new ColumnarTableEvolutionRecord(7193543682354577472L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608897995513856L, "ALTER_TABLE_MODIFY_COLUMN", 7193543683424124992L, + Arrays.asList(143L, 144L, 145L, 146L, 147L)), + new ColumnarTableEvolutionRecord(7193543685017960512L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608900663091200L, "ALTER_TABLE_MODIFY_COLUMN", 7193543686091702336L, + Arrays.asList(148L, 149L, 150L, 151L, 152L)), + new ColumnarTableEvolutionRecord(7193543687677149248L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608903322279936L, "ALTER_TABLE_CHANGE_COLUMN", 7193543688536981568L, + Arrays.asList(153L, 154L, 155L, 156L, 157L)), + new ColumnarTableEvolutionRecord(7193543690336337984L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608905989857280L, "ALTER_TABLE_CHANGE_COLUMN", 7193543691418468416L, + Arrays.asList(158L, 159L, 160L, 161L, 162L)), + new ColumnarTableEvolutionRecord(7193543693008109632L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608908661628928L, "ALTER_TABLE_ADD_COLUMN", 7193543693922467904L, + Arrays.asList(158L, 159L, 160L, 161L, 162L, 163L)), + new ColumnarTableEvolutionRecord(7193543695675686976L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608911320817664L, "ALTER_TABLE_DROP_COLUMN", 7193543697441488960L, + Arrays.asList(158L, 165L, 166L, 167L, 168L)), + new ColumnarTableEvolutionRecord(7193543699177930816L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608914823061504L, "ALTER_TABLE_DROP_COLUMN", 7193543700931149888L, + Arrays.asList(158L, 165L, 166L, 167L)), + new ColumnarTableEvolutionRecord(7193543702260744256L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608917905874944L, "ALTER_TABLE_MODIFY_COLUMN", 7193543703330291776L, + Arrays.asList(158L, 170L, 171L, 172L)), + new ColumnarTableEvolutionRecord(7193543704919932992L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608920590229504L, "ALTER_TABLE_ADD_COLUMN", 7193543705846874176L, + Arrays.asList(158L, 170L, 171L, 172L, 173L)), + new ColumnarTableEvolutionRecord(7193543707604287552L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608923266195456L, "ALTER_TABLE_ADD_COLUMN", 7193543708736749632L, + Arrays.asList(174L, 175L, 176L, 177L, 178L, 179L)), + new ColumnarTableEvolutionRecord(7193543710284447808L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608925946355712L, "ALTER_TABLE_ADD_COLUMN", 7193543711416909888L, + Arrays.asList(174L, 180L, 181L, 182L, 183L, 184L, 185L)), + new ColumnarTableEvolutionRecord(7193543712964608064L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608928601350144L, "ALTER_TABLE_DROP_COLUMN", 7193543714709438528L, + Arrays.asList(174L, 180L, 181L, 182L, 183L, 184L)), + new ColumnarTableEvolutionRecord(7193543716454268992L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608932086816768L, "ALTER_TABLE_DROP_COLUMN", 7193543718194905152L, + Arrays.asList(188L, 189L, 190L, 191L, 192L)), + new ColumnarTableEvolutionRecord(7193543719939735616L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608935589060608L, "ALTER_TABLE_MODIFY_COLUMN", 7193543721013477440L, + Arrays.asList(188L, 189L, 193L, 194L, 195L)), + new ColumnarTableEvolutionRecord(7193543722607312960L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608938248249344L, "ALTER_TABLE_MODIFY_COLUMN", 7193543723681054784L, + Arrays.asList(188L, 189L, 196L, 197L, 198L)), + new ColumnarTableEvolutionRecord(7193543725681737792L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608941326868480L, "ALTER_TABLE_MODIFY_COLUMN", 7193543726742896704L, + Arrays.asList(199L, 200L, 201L, 202L, 203L)), + new ColumnarTableEvolutionRecord(7193543728336732224L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608943977668608L, "ALTER_TABLE_MODIFY_COLUMN", 7193543729397891136L, + Arrays.asList(204L, 205L, 206L, 207L, 208L)), + new ColumnarTableEvolutionRecord(7193543730991726656L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608946645245952L, "ALTER_TABLE_CHANGE_COLUMN", 7193543731859947584L, + Arrays.asList(209L, 210L, 211L, 212L, 213L)), + new ColumnarTableEvolutionRecord(7193543733667692608L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608949312823296L, "ALTER_TABLE_CHANGE_COLUMN", 7193543734728851520L, + Arrays.asList(214L, 215L, 216L, 217L, 218L)), + new ColumnarTableEvolutionRecord(7193543736326881344L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608951980400640L, "ALTER_TABLE_ADD_COLUMN", 7193543737237045312L, + Arrays.asList(214L, 215L, 216L, 217L, 218L, 219L)), + new ColumnarTableEvolutionRecord(7193543739002847296L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608954647977984L, "ALTER_TABLE_DROP_COLUMN", 7193543740764454976L, + Arrays.asList(214L, 221L, 222L, 223L, 224L)), + new ColumnarTableEvolutionRecord(7193543742509285440L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608958154416128L, "ALTER_TABLE_DROP_COLUMN", 7193543744262504512L, + Arrays.asList(214L, 221L, 222L, 223L)), + new ColumnarTableEvolutionRecord(7193543746003140672L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608961648271360L, "ALTER_TABLE_MODIFY_COLUMN", 7193543747076882496L, + Arrays.asList(214L, 226L, 227L, 228L)), + new ColumnarTableEvolutionRecord(7193543748666523712L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608964320043008L, "ALTER_TABLE_ADD_COLUMN", 7193543749576687680L, + Arrays.asList(214L, 226L, 227L, 228L, 229L)), + new ColumnarTableEvolutionRecord(7193543751338295360L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608966996008960L, "ALTER_TABLE_ADD_COLUMN", 7193543752474951744L, + Arrays.asList(230L, 231L, 232L, 233L, 234L, 235L)), + new ColumnarTableEvolutionRecord(7193543754010067008L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608969671974912L, "ALTER_TABLE_ADD_COLUMN", 7193543755150917696L, + Arrays.asList(230L, 236L, 237L, 238L, 239L, 240L, 241L)), + new ColumnarTableEvolutionRecord(7193543756694421568L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608972343746560L, "ALTER_TABLE_DROP_COLUMN", 7193543758451834944L, + Arrays.asList(230L, 236L, 237L, 238L, 239L, 240L)), + new ColumnarTableEvolutionRecord(7193543760205054016L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608975837601792L, "ALTER_TABLE_DROP_COLUMN", 7193543761937301568L, + Arrays.asList(244L, 245L, 246L, 247L, 248L)), + new ColumnarTableEvolutionRecord(7193543763694714944L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608979339845632L, "ALTER_TABLE_MODIFY_COLUMN", 7193543764764262464L, + Arrays.asList(244L, 245L, 249L, 250L, 251L)), + new ColumnarTableEvolutionRecord(7193543766349709376L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608981994840064L, "ALTER_TABLE_MODIFY_COLUMN", 7193543767419256896L, + Arrays.asList(244L, 245L, 252L, 253L, 254L)), + new ColumnarTableEvolutionRecord(7193543769013092416L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608984649834496L, "ALTER_TABLE_MODIFY_COLUMN", 7193543770074251328L, + Arrays.asList(255L, 256L, 257L, 258L, 259L)), + new ColumnarTableEvolutionRecord(7193543771668086848L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608987329994752L, "ALTER_TABLE_MODIFY_COLUMN", 7193543772758605888L, + Arrays.asList(260L, 261L, 262L, 263L, 264L)), + new ColumnarTableEvolutionRecord(7193543774344052800L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608989989183488L, "ALTER_TABLE_CHANGE_COLUMN", 7193543775199690816L, + Arrays.asList(265L, 266L, 267L, 268L, 269L)), + new ColumnarTableEvolutionRecord(7193543777003241536L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608992648372224L, "ALTER_TABLE_CHANGE_COLUMN", 7193543778076983360L, + Arrays.asList(270L, 271L, 272L, 273L, 274L)), + new ColumnarTableEvolutionRecord(7193543779666624576L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608995336921088L, "ALTER_TABLE_ADD_COLUMN", 7193543780610342976L, + Arrays.asList(270L, 271L, 272L, 273L, 274L, 275L)), + new ColumnarTableEvolutionRecord(7193543781931548736L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724608997580873728L, "ALTER_TABLE_DROP_COLUMN", 7193543783688962112L, + Arrays.asList(270L, 277L, 278L, 279L, 280L)), + new ColumnarTableEvolutionRecord(7193543785429598272L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724609001074728960L, "ALTER_TABLE_DROP_COLUMN", 7193543787195400256L, + Arrays.asList(270L, 277L, 278L, 279L)), + new ColumnarTableEvolutionRecord(7193543788931842112L, 1L, "transfer", "accounts", "accounts_col_index_$c9a1", + null, 1724609004572778496L, "ALTER_TABLE_MODIFY_COLUMN", 7193543789993001024L, + Arrays.asList(270L, 282L, 283L, 284L)), + + }; + + private static final ColumnarColumnEvolutionRecord[] COLUMN_EVOLUTION_RECORDS; + + static { + Yaml yaml = new Yaml(new Constructor((List.class))); + List> recordObjectList = + yaml.load(MultiVersionColumnarSchemaTest.class.getResourceAsStream("columnar_column_evolution.yml")); + + COLUMN_EVOLUTION_RECORDS = new ColumnarColumnEvolutionRecord[recordObjectList.size()]; + for (int i = 0; i < recordObjectList.size(); i++) { + List recordObject = recordObjectList.get(i); + COLUMN_EVOLUTION_RECORDS[i] = new ColumnarColumnEvolutionRecord( + ((Integer) recordObject.get(0)).longValue(), + ((Integer) recordObject.get(1)).longValue(), + (String) recordObject.get(2), + (Long) recordObject.get(3), + (Long) recordObject.get(4), + ColumnarColumnEvolutionRecord.deserializeFromJson((String) recordObject.get(5)) + ); + } + + for (int i = 0; i < COLUMN_EVOLUTION_RECORDS.length; i++) { + COLUMN_EVOLUTION_RECORDS[i].id = i + 1; + } + } + + @Before + public void setUp() { + mockMetaDbUtil = Mockito.mockStatic(MetaDbUtil.class); + mockMetaDbUtil.when(MetaDbUtil::getConnection).thenReturn(null); + multiVersionColumnarSchema = new MultiVersionColumnarSchema(null); + tableEvolutionAccessorMockedConstruction = Mockito.mockConstruction( + ColumnarTableEvolutionAccessor.class, + (mock, context) -> { + Mockito.when(mock.queryTableIdAndGreaterThanTso(Mockito.anyLong(), Mockito.anyLong())).thenAnswer( + invocation -> { + return Arrays.asList(TABLE_EVOLUTION_RECORDS); + } + ); + }); + columnEvolutionAccessorMockedConstruction = Mockito.mockConstruction( + ColumnarColumnEvolutionAccessor.class, + (mock, context) -> { + Mockito.when(mock.queryTableIdAndVersionIdsOrderById(Mockito.anyLong(), Mockito.anyList())).thenAnswer( + invocation -> { + return Arrays.asList(COLUMN_EVOLUTION_RECORDS); + } + ); + }); + tableMappingAccessorMockedConstruction = Mockito.mockConstruction( + ColumnarTableMappingAccessor.class, + (mock, context) -> { + List records = new ArrayList<>(); + records.add(new ColumnarTableMappingRecord("transfer", "accounts", "accounts_col_index_$c9a1", + 7193543788931842112L, "PUBLIC")); + records.get(0).tableId = 1L; + Mockito.when(mock.querySchemaIndex(Mockito.anyString(), Mockito.anyString())).thenReturn(records); + }); + } + + @After + public void tearDown() throws Exception { + if (mockMetaDbUtil != null) { + mockMetaDbUtil.close(); + } + + if (tableEvolutionAccessorMockedConstruction != null) { + tableEvolutionAccessorMockedConstruction.close(); + } + + if (columnEvolutionAccessorMockedConstruction != null) { + columnEvolutionAccessorMockedConstruction.close(); + } + + if (tableMappingAccessorMockedConstruction != null) { + tableMappingAccessorMockedConstruction.close(); + } + } + + @Test + public void getSortKeyColumns() throws ExecutionException { + multiVersionColumnarSchema.getSortKeyColumns(0, "transfer", "accounts"); + } + + @Test + public void getTableId() throws ExecutionException { + assertEquals(1L, multiVersionColumnarSchema.getTableId(0, "transfer", "accounts").longValue()); + } + + @Test + public void getColumnMetas() { + for (int i = 0; i < DDL_ROUND_COUNT; i++) { + List pivotMetas = + multiVersionColumnarSchema.getColumnMetas(TABLE_EVOLUTION_RECORDS[i].commitTs, TABLE_ID); + for (int j = 1; i + j * DDL_ROUND_COUNT < TABLE_EVOLUTION_RECORDS.length; j++) { + List currentMetas = + multiVersionColumnarSchema.getColumnMetas(TABLE_EVOLUTION_RECORDS[i + j * DDL_ROUND_COUNT].commitTs, + TABLE_ID); + assertEquals(currentMetas.size(), pivotMetas.size()); + for (int k = 0; k < currentMetas.size(); k++) { + assertEquals(currentMetas.get(k).getFullName(), pivotMetas.get(k).getFullName()); + assertSame(currentMetas.get(k).getDataType().getClass(), + pivotMetas.get(k).getDataType().getClass()); + assertEquals(currentMetas.get(k).getLength(), pivotMetas.get(k).getLength()); + assertEquals(currentMetas.get(k).getStatus(), pivotMetas.get(k).getStatus()); + assertEquals(currentMetas.get(k).isFillDefault(), currentMetas.get(k).isFillDefault()); + assertEquals(currentMetas.get(k).getOriginColumnName(), pivotMetas.get(k).getOriginColumnName()); + assertEquals(currentMetas.get(k).getOriginTableName(), pivotMetas.get(k).getOriginTableName()); + assertEquals(currentMetas.get(k).getTableName(), pivotMetas.get(k).getTableName()); + assertEquals(currentMetas.get(k).getMappingName(), pivotMetas.get(k).getMappingName()); + } + } + } + } + + @Test + public void getColumnIndexMap() { + for (ColumnarTableEvolutionRecord record : TABLE_EVOLUTION_RECORDS) { + long schemaTs = record.commitTs; + Map result = multiVersionColumnarSchema.getColumnIndexMap(schemaTs, TABLE_ID); + for (Long fieldId : SOLID_FIELD_IDS) { + assertTrue(result.containsKey(fieldId)); + } + } + } + + @Test + public void testGetColumnFieldIdList() { + // For any schema, it must contain this four columns: 1, 2, 3, 4 + for (ColumnarTableEvolutionRecord record : TABLE_EVOLUTION_RECORDS) { + long versionId = record.versionId; + List result = multiVersionColumnarSchema.getColumnFieldIdList(versionId, TABLE_ID); + assertTrue(result.containsAll(SOLID_FIELD_IDS)); + } + } + + @Test + public void getInitColumnMeta() { + for (Long fieldId : SOLID_FIELD_IDS) { + ColumnMetaWithTs result = multiVersionColumnarSchema.getInitColumnMeta(TABLE_ID, fieldId); + ColumnMeta meta = result.getMeta(); + ColumnarColumnEvolutionRecord record = COLUMN_EVOLUTION_RECORDS[(int) (fieldId - 1)]; + assertEquals(meta.getFullName(), record.columnsRecord.tableName + "." + record.columnName); + System.out.println(meta); + } + } + + @Test + public void getPrimaryKeyColumns() { + for (ColumnarTableEvolutionRecord record : TABLE_EVOLUTION_RECORDS) { + long schemaTs = record.commitTs; + int[] result = multiVersionColumnarSchema.getPrimaryKeyColumns(schemaTs, TABLE_ID); + assertEquals(result.length, 1); + List columnMetas = multiVersionColumnarSchema.getColumnMetas(schemaTs, TABLE_ID); + assertEquals("id", columnMetas.get(result[0] - 1).getName()); + } + } + + @Test + public void purge() { + // TODO(siyun): + boolean failed = false; + try { + multiVersionColumnarSchema.purge(0); + } catch (NotSupportException exception) { + assertEquals(exception.getMessage(), + ErrorCode.ERR_NOT_SUPPORT.getMessage("purge columnar schema not supported now!")); + failed = true; + } + assertTrue(failed); + } +} \ No newline at end of file diff --git a/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/gms/util/StatisticUtilsUnitTest.java b/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/gms/util/StatisticUtilsUnitTest.java index 97ea3846e..7f8061dda 100644 --- a/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/gms/util/StatisticUtilsUnitTest.java +++ b/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/gms/util/StatisticUtilsUnitTest.java @@ -1,15 +1,19 @@ package com.alibaba.polardbx.executor.gms.util; +import com.alibaba.polardbx.common.properties.ConnectionParams; import com.alibaba.polardbx.common.utils.Assert; import com.alibaba.polardbx.common.utils.Pair; import com.alibaba.polardbx.executor.utils.ExecUtils; import com.alibaba.polardbx.gms.config.impl.InstConfUtil; import com.alibaba.polardbx.gms.config.impl.MetaDbInstConfigManager; +import com.alibaba.polardbx.optimizer.config.table.ColumnMeta; import com.google.common.collect.Lists; import org.junit.Test; +import java.util.ArrayList; import java.util.Calendar; import java.util.Collections; +import java.util.List; import static com.alibaba.polardbx.common.properties.ConnectionParams.ENABLE_BACKGROUND_STATISTIC_COLLECTION; import static com.alibaba.polardbx.common.properties.ConnectionParams.ENABLE_HLL; @@ -21,6 +25,28 @@ */ public class StatisticUtilsUnitTest { + @Test + public void testConstructScanSamplingSql() { + // 准备测试数据 + String logicalTableName = "testTable"; + float sampleRate = 0.5f; + List columnMetaList = new ArrayList<>(); + columnMetaList.add(new ColumnMeta("testTable", "col1", "c1", null)); + columnMetaList.add(new ColumnMeta("testTable", "col2", "c2", null)); + + // 调用待测试的函数 + String sql = StatisticUtils.constructScanSamplingSql(logicalTableName, columnMetaList, sampleRate); + + // 构建期望的结果 + String expectedSqlStart = + "/*+TDDL:cmd_extra(enable_post_planner=false,enable_index_selection=false,merge_union=false,enable_direct_plan=false,sample_percentage=50.0) */ " + + "select `col1`,`col2` from `testTable`"; + + // 断言结果是否正确 + Assert.assertTrue(sql.startsWith(expectedSqlStart)); + + } + @Test public void testBuildCollectRowCountSql() { String[] tbls = { @@ -93,30 +119,37 @@ public void testIsInMaintenanceTimeWindow() { Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.HOUR_OF_DAY, 1); - Assert.assertTrue(!InstConfUtil.isInMaintenanceTimeWindow(calendar)); + Assert.assertTrue(!InstConfUtil.isInMaintenanceTimeWindow(calendar, ConnectionParams.MAINTENANCE_TIME_START, + ConnectionParams.MAINTENANCE_TIME_END)); calendar.set(Calendar.HOUR_OF_DAY, 2); - Assert.assertTrue(InstConfUtil.isInMaintenanceTimeWindow(calendar)); + Assert.assertTrue(InstConfUtil.isInMaintenanceTimeWindow(calendar, ConnectionParams.MAINTENANCE_TIME_START, + ConnectionParams.MAINTENANCE_TIME_END)); calendar.set(Calendar.HOUR_OF_DAY, 3); - Assert.assertTrue(InstConfUtil.isInMaintenanceTimeWindow(calendar)); + Assert.assertTrue(InstConfUtil.isInMaintenanceTimeWindow(calendar, ConnectionParams.MAINTENANCE_TIME_START, + ConnectionParams.MAINTENANCE_TIME_END)); calendar.set(Calendar.HOUR_OF_DAY, 4); - Assert.assertTrue(InstConfUtil.isInMaintenanceTimeWindow(calendar)); + Assert.assertTrue(InstConfUtil.isInMaintenanceTimeWindow(calendar, ConnectionParams.MAINTENANCE_TIME_START, + ConnectionParams.MAINTENANCE_TIME_END)); calendar.set(Calendar.HOUR_OF_DAY, 4); calendar.set(Calendar.MINUTE, 40); - Assert.assertTrue(InstConfUtil.isInMaintenanceTimeWindow(calendar)); + Assert.assertTrue(InstConfUtil.isInMaintenanceTimeWindow(calendar, ConnectionParams.MAINTENANCE_TIME_START, + ConnectionParams.MAINTENANCE_TIME_END)); calendar.set(Calendar.HOUR_OF_DAY, 5); calendar.set(Calendar.MINUTE, 1); - Assert.assertTrue(!InstConfUtil.isInMaintenanceTimeWindow(calendar)); + Assert.assertTrue(!InstConfUtil.isInMaintenanceTimeWindow(calendar, ConnectionParams.MAINTENANCE_TIME_START, + ConnectionParams.MAINTENANCE_TIME_END)); // mock error config for MAINTENANCE_TIME_START / MAINTENANCE_TIME_END MetaDbInstConfigManager.getInstance().getCnVariableConfigMap().put("MAINTENANCE_TIME_START", "xx"); Assert.assertTrue(InstConfUtil.getOriginVal(MAINTENANCE_TIME_START).equals("xx")); - Assert.assertTrue(!InstConfUtil.isInMaintenanceTimeWindow(calendar)); + Assert.assertTrue(!InstConfUtil.isInMaintenanceTimeWindow(calendar, ConnectionParams.MAINTENANCE_TIME_START, + ConnectionParams.MAINTENANCE_TIME_END)); MetaDbInstConfigManager.getInstance().getCnVariableConfigMap().remove("MAINTENANCE_TIME_START"); Assert.assertTrue(InstConfUtil.getOriginVal(MAINTENANCE_TIME_START).equals("02:00")); @@ -124,12 +157,15 @@ public void testIsInMaintenanceTimeWindow() { MetaDbInstConfigManager.getInstance().getCnVariableConfigMap().put("MAINTENANCE_TIME_START", "23:00"); MetaDbInstConfigManager.getInstance().getCnVariableConfigMap().put("MAINTENANCE_TIME_END", "03:00"); calendar.set(Calendar.HOUR_OF_DAY, 1); - Assert.assertTrue(InstConfUtil.isInMaintenanceTimeWindow(calendar)); + Assert.assertTrue(InstConfUtil.isInMaintenanceTimeWindow(calendar, ConnectionParams.MAINTENANCE_TIME_START, + ConnectionParams.MAINTENANCE_TIME_END)); calendar.set(Calendar.HOUR_OF_DAY, 0); - Assert.assertTrue(InstConfUtil.isInMaintenanceTimeWindow(calendar)); + Assert.assertTrue(InstConfUtil.isInMaintenanceTimeWindow(calendar, ConnectionParams.MAINTENANCE_TIME_START, + ConnectionParams.MAINTENANCE_TIME_END)); calendar.set(Calendar.HOUR_OF_DAY, 4); - Assert.assertTrue(!InstConfUtil.isInMaintenanceTimeWindow(calendar)); + Assert.assertTrue(!InstConfUtil.isInMaintenanceTimeWindow(calendar, ConnectionParams.MAINTENANCE_TIME_START, + ConnectionParams.MAINTENANCE_TIME_END)); } } diff --git a/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/handler/LogicalShowCreateTablesForPartitionDatabaseHandlerTest.java b/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/handler/LogicalShowCreateTablesForPartitionDatabaseHandlerTest.java index bf534426c..0765fb607 100644 --- a/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/handler/LogicalShowCreateTablesForPartitionDatabaseHandlerTest.java +++ b/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/handler/LogicalShowCreateTablesForPartitionDatabaseHandlerTest.java @@ -21,6 +21,9 @@ import com.alibaba.polardbx.executor.common.ExecutorContext; import com.alibaba.polardbx.executor.cursor.Cursor; import com.alibaba.polardbx.executor.cursor.impl.ArrayResultCursor; +import com.alibaba.polardbx.gms.metadb.MetaDbDataSource; +import com.alibaba.polardbx.gms.metadb.table.TablesAccessor; +import com.alibaba.polardbx.gms.metadb.table.TablesRecord; import com.alibaba.polardbx.optimizer.OptimizerContext; import com.alibaba.polardbx.optimizer.context.ExecutionContext; import com.alibaba.polardbx.optimizer.core.rel.dal.LogicalShow; @@ -32,16 +35,21 @@ import com.alibaba.polardbx.repo.mysql.spi.MyRepository; import com.google.common.truth.Truth; import org.apache.calcite.sql.SqlNodeList; +import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.MockedConstruction; import org.mockito.MockedStatic; import org.mockito.junit.MockitoJUnitRunner; +import java.sql.Connection; + import static com.alibaba.polardbx.common.properties.ConnectionParams.OUTPUT_MYSQL_INDENT; import static com.alibaba.polardbx.common.properties.ConnectionParams.SHOW_HASH_PARTITIONS_BY_RANGE; import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.doCallRealMethod; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.mockConstruction; import static org.mockito.Mockito.mockStatic; @@ -118,4 +126,32 @@ public void showWithMySqlIndentTest() { Truth.assertThat(row.getString(1)).isEqualTo(CREATE_TABLE_WITH_SPACE); } } + + @Test + public void testGetColumnarIndexEngineReturnsExternalDisk() { + try (MockedStatic mockedDataSource = mockStatic(MetaDbDataSource.class)) { + MetaDbDataSource mockDataSource = mock(MetaDbDataSource.class); + Connection mockConnection = mock(Connection.class); + TablesAccessor mockAccessor = mock(TablesAccessor.class); + + mockedDataSource.when(MetaDbDataSource::getInstance).thenReturn(mockDataSource); + when(mockDataSource.getConnection()).thenReturn(mockConnection); + + TablesRecord expectedRecord = new TablesRecord(); + expectedRecord.engine = "EXTERNAL_DISK"; + when(mockAccessor.query(anyString(), anyString(), eq(false))).thenReturn(expectedRecord); + + LogicalShowCreateTablesForPartitionDatabaseHandler service = mock( + LogicalShowCreateTablesForPartitionDatabaseHandler.class); + doCallRealMethod().when(service).getColumnarIndexEngine(anyString(), anyString(), any()); + String engine = service.getColumnarIndexEngine("schemaName", "indexName", mockAccessor); + + Assert.assertEquals("EXTERNAL_DISK", engine); + + when(mockAccessor.query(anyString(), anyString(), eq(false))).thenReturn(null); + engine = service.getColumnarIndexEngine("schemaName", "indexName", mockAccessor); + Assert.assertNull(engine); + } + } + } diff --git a/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/handler/ddl/LogicalCreateFileStorageHandlerTest.java b/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/handler/ddl/LogicalCreateFileStorageHandlerTest.java new file mode 100644 index 000000000..3fbfa310f --- /dev/null +++ b/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/handler/ddl/LogicalCreateFileStorageHandlerTest.java @@ -0,0 +1,391 @@ +/* + * Copyright [2013-2021], Alibaba Group Holding Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.alibaba.polardbx.executor.handler.ddl; + +import com.alibaba.polardbx.common.Engine; +import com.alibaba.polardbx.common.exception.TddlRuntimeException; +import com.alibaba.polardbx.common.exception.code.ErrorCode; +import com.alibaba.polardbx.common.mock.MockUtils; +import com.alibaba.polardbx.common.oss.filesystem.cache.FileMergeCachingFileSystem; +import com.alibaba.polardbx.executor.ddl.newengine.job.DdlJob; +import com.alibaba.polardbx.executor.ddl.newengine.job.DdlTask; +import com.alibaba.polardbx.executor.ddl.newengine.job.TransientDdlJob; +import com.alibaba.polardbx.gms.config.impl.InstConfUtil; +import com.alibaba.polardbx.gms.engine.FileSystemGroup; +import com.alibaba.polardbx.gms.engine.FileSystemManager; +import com.alibaba.polardbx.gms.metadb.misc.DdlEngineTaskAccessor; +import com.alibaba.polardbx.gms.topology.ServerInstIdManager; +import com.alibaba.polardbx.gms.util.MetaDbUtil; +import com.alibaba.polardbx.gms.util.PasswdUtil; +import com.alibaba.polardbx.optimizer.context.ExecutionContext; +import com.alibaba.polardbx.optimizer.core.rel.ddl.LogicalCreateFileStorage; +import com.google.common.cache.CacheBuilder; +import com.google.common.cache.CacheLoader; +import com.google.common.cache.LoadingCache; +import com.google.common.collect.Maps; +import org.apache.calcite.rel.ddl.CreateFileStorage; +import org.apache.hadoop.fs.Path; +import org.jetbrains.annotations.NotNull; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.mockito.Mock; +import org.mockito.MockedConstruction; +import org.mockito.MockedStatic; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.SQLException; +import java.util.Base64; +import java.util.HashMap; +import java.util.Map; +import java.util.Optional; + +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.when; + +public class LogicalCreateFileStorageHandlerTest { + + final static private String MOCK_AK = "ThisIsAnAk"; + final static private String MOCK_SK = "ThisISASk"; + final private static Map MOCK_OSS_WITH = new HashMap<>(); + final private static Map MOCK_S3_WITH = new HashMap<>(); + final private static Map MOCK_ABS_WITH = new HashMap<>(); + + static { + MOCK_OSS_WITH.put("file_uri", "oss://polardbx-bucket-name/"); + MOCK_OSS_WITH.put("access_key_id", MOCK_AK); + MOCK_OSS_WITH.put("access_key_secret", PasswdUtil.encrypt(MOCK_SK)); + MOCK_OSS_WITH.put("endpoint", "oss-cn-hangzhou.aliyuncs.com"); + + MOCK_S3_WITH.put("file_uri", "s3a://polardbx-bucket-name/"); + MOCK_S3_WITH.put("access_key_id", MOCK_AK); + MOCK_S3_WITH.put("access_key_secret", PasswdUtil.encrypt(MOCK_SK)); + + MOCK_ABS_WITH.put("azure_container_name", "polardbx-container-name"); + MOCK_ABS_WITH.put( + "azure_connection_string", + String.format( + "DefaultEndpointsProtocol=https;AccountName=polardbx-account-name;AccountKey=%s;EndpointSuffix=core.windows.net", + Base64.getEncoder().encodeToString("polardbx-account-key".getBytes()) + ) + ); + } + + @Mock + private ExecutionContext executionContext; + @Mock + private LogicalCreateFileStorage logicalCreateFileStorage; + @Mock + private CreateFileStorage createFileStorage; + + private LogicalCreateFileStorageHandler handler; + + private AutoCloseable mockitoCloseable; + + private MockedStatic mockedMetaDbUtil; + private MockedStatic mockedInstConf; + private MockedStatic mockedServerInstId; + + private MockedConstruction fileSystemMockedConstruction; + private MockedConstruction mockedDdlEngineTaskAccessor; + private MockedConstruction fileSystemManagerMockedConstruction; + + @Before + public void setUp() throws SQLException { + mockitoCloseable = MockitoAnnotations.openMocks(this); + handler = new LogicalCreateFileStorageHandler(null); + + mockedMetaDbUtil = Mockito.mockStatic(MetaDbUtil.class); + Connection mockConnection = Mockito.mock(Connection.class); + when(MetaDbUtil.getConnection()).thenReturn(mockConnection); + when(mockConnection.prepareStatement(Mockito.anyString(), Mockito.anyInt())).thenReturn(Mockito.mock( + PreparedStatement.class)); + mockedInstConf = Mockito.mockStatic(InstConfUtil.class); + mockedInstConf.when(InstConfUtil::fetchLongConfigs).thenReturn(Maps.newHashMap()); + mockedServerInstId = Mockito.mockStatic(ServerInstIdManager.class); + mockedServerInstId.when(ServerInstIdManager::getInstance).thenReturn(Mockito.mock(ServerInstIdManager.class)); + + fileSystemMockedConstruction = Mockito.mockConstruction(FileMergeCachingFileSystem.class, (mock, context) -> { + when(mock.exists(Mockito.any())).thenReturn(true); + when(mock.getWorkingDirectory()).thenReturn(new Path("/")); + }); + + mockedDdlEngineTaskAccessor = Mockito.mockConstruction(DdlEngineTaskAccessor.class, (mock, context) -> { + when(mock.updateTask(Mockito.any())).thenReturn(1); + }); + + fileSystemManagerMockedConstruction = Mockito.mockConstruction(FileSystemManager.class, (mock, context) -> { + LoadingCache> mockCache = CacheBuilder.newBuilder().build( + new CacheLoader>() { + @Override + public Optional load(@NotNull Engine key) { + if (key == Engine.OSS) { + return Optional.of(Mockito.mock(FileSystemGroup.class)); + } + return Optional.empty(); + } + }); + + when(mock.getCache()).thenReturn(mockCache); + }); + } + + @After + public void tearDown() throws Exception { + if (mockitoCloseable != null) { + mockitoCloseable.close(); + } + + if (mockedMetaDbUtil != null) { + mockedMetaDbUtil.close(); + } + + if (mockedInstConf != null) { + mockedInstConf.close(); + } + + if (mockedServerInstId != null) { + mockedServerInstId.close(); + } + + if (fileSystemMockedConstruction != null) { + fileSystemMockedConstruction.close(); + } + + if (mockedDdlEngineTaskAccessor != null) { + mockedDdlEngineTaskAccessor.close(); + } + + if (fileSystemManagerMockedConstruction != null) { + fileSystemManagerMockedConstruction.close(); + } + } + + @Test + public void testBuildDdlJobWithOss() { + when(logicalCreateFileStorage.getCreateFileStorage()).thenReturn(createFileStorage); + when(createFileStorage.getEngineName()).thenReturn("OSS"); + when(createFileStorage.isIfNotExists()).thenReturn(false); + when(createFileStorage.getWith()).thenReturn(MOCK_OSS_WITH); + + DdlJob ddlJob = handler.buildDdlJob(logicalCreateFileStorage, executionContext); + DdlTask ddlTask = ddlJob.getAllTasks().get(0); + prepareDdlTask(ddlTask); + ddlTask.execute(new ExecutionContext()); + + // Test for incomplete settings + MOCK_OSS_WITH.remove("access_key_secret"); + MockUtils.assertThrows( + TddlRuntimeException.class, + ErrorCode.ERR_EXECUTE_ON_OSS.getMessage("Should contain ACCESS_KEY_SECRET in with!"), + () -> { + handler.buildDdlJob(logicalCreateFileStorage, executionContext); + } + ); + + MOCK_OSS_WITH.remove("access_key_id"); + MockUtils.assertThrows( + TddlRuntimeException.class, + ErrorCode.ERR_EXECUTE_ON_OSS.getMessage("Should contain ACCESS_KEY_ID in with!"), + () -> { + handler.buildDdlJob(logicalCreateFileStorage, executionContext); + } + ); + + MOCK_OSS_WITH.put("endpoint", "invalid_enpoint"); + MockUtils.assertThrows( + TddlRuntimeException.class, + ErrorCode.ERR_EXECUTE_ON_OSS.getMessage("bad ENDPOINT value in with!"), + () -> { + handler.buildDdlJob(logicalCreateFileStorage, executionContext); + } + ); + + MOCK_OSS_WITH.remove("endpoint"); + MockUtils.assertThrows( + TddlRuntimeException.class, + ErrorCode.ERR_EXECUTE_ON_OSS.getMessage("Should contain ENDPOINT in with!"), + () -> { + handler.buildDdlJob(logicalCreateFileStorage, executionContext); + } + ); + + MOCK_OSS_WITH.remove("file_uri"); + MockUtils.assertThrows( + TddlRuntimeException.class, + ErrorCode.ERR_EXECUTE_ON_OSS.getMessage("Should contain FILE_URI in with!"), + () -> { + handler.buildDdlJob(logicalCreateFileStorage, executionContext); + } + ); + } + + @Test + public void testBuildDdlJobWithS3() { + when(logicalCreateFileStorage.getCreateFileStorage()).thenReturn(createFileStorage); + when(createFileStorage.getEngineName()).thenReturn("S3"); + when(createFileStorage.isIfNotExists()).thenReturn(false); + when(createFileStorage.getWith()).thenReturn(MOCK_S3_WITH); + + DdlJob ddlJob = handler.buildDdlJob(logicalCreateFileStorage, executionContext); + DdlTask ddlTask = ddlJob.getAllTasks().get(0); + prepareDdlTask(ddlTask); + ddlTask.execute(new ExecutionContext()); + + // Test for incomplete settings + MOCK_S3_WITH.remove("access_key_secret"); + MockUtils.assertThrows( + TddlRuntimeException.class, + ErrorCode.ERR_EXECUTE_ON_OSS.getMessage("Should contain ACCESS_KEY_SECRET in with!"), + () -> { + handler.buildDdlJob(logicalCreateFileStorage, executionContext); + } + ); + + MOCK_S3_WITH.remove("access_key_id"); + MockUtils.assertThrows( + TddlRuntimeException.class, + ErrorCode.ERR_EXECUTE_ON_OSS.getMessage("Should contain ACCESS_KEY_ID in with!"), + () -> { + handler.buildDdlJob(logicalCreateFileStorage, executionContext); + } + ); + + MOCK_S3_WITH.remove("file_uri"); + MockUtils.assertThrows( + TddlRuntimeException.class, + ErrorCode.ERR_EXECUTE_ON_OSS.getMessage("Should contain FILE_URI in with!"), + () -> { + handler.buildDdlJob(logicalCreateFileStorage, executionContext); + } + ); + } + + @Test + public void testBuildDdlJobWithAbs() { + when(logicalCreateFileStorage.getCreateFileStorage()).thenReturn(createFileStorage); + when(createFileStorage.getEngineName()).thenReturn("ABS"); + when(createFileStorage.isIfNotExists()).thenReturn(false); + when(createFileStorage.getWith()).thenReturn(MOCK_ABS_WITH); + + DdlJob ddlJob = handler.buildDdlJob(logicalCreateFileStorage, executionContext); + DdlTask ddlTask = ddlJob.getAllTasks().get(0); + prepareDdlTask(ddlTask); + ddlTask.execute(new ExecutionContext()); + + // Test for incomplete or invalid settings + MOCK_ABS_WITH.put("azure_connection_string", String.format( + "DefaultEndpointsProtocol=https;AccountName=polardbx-account-name;AccountKey=%s;InvalidKey=123", + Base64.getEncoder().encodeToString("polardbx-account-key".getBytes()) + )); + MockUtils.assertThrows( + TddlRuntimeException.class, + ErrorCode.ERR_EXECUTE_ON_OSS.getMessage("error key of connection string: InvalidKey"), + () -> { + handler.buildDdlJob(logicalCreateFileStorage, executionContext); + } + ); + + MOCK_ABS_WITH.put("azure_connection_string", String.format( + "DefaultEndpointsProtocol=https;AccountName=polardbx-account-name;AccountKey=%s", + Base64.getEncoder().encodeToString("polardbx-account-key".getBytes()) + )); + MockUtils.assertThrows( + TddlRuntimeException.class, + ErrorCode.ERR_EXECUTE_ON_OSS.getMessage("Should contain EndpointSuffix in connection string!"), + () -> { + handler.buildDdlJob(logicalCreateFileStorage, executionContext); + } + ); + + MOCK_ABS_WITH.put("azure_connection_string", + "DefaultEndpointsProtocol=https;AccountName=polardbx-account-name"); + MockUtils.assertThrows( + TddlRuntimeException.class, + ErrorCode.ERR_EXECUTE_ON_OSS.getMessage("Should contain AccountKey in connection string!"), + () -> { + handler.buildDdlJob(logicalCreateFileStorage, executionContext); + } + ); + + MOCK_ABS_WITH.put("azure_connection_string", "DefaultEndpointsProtocol=https"); + MockUtils.assertThrows( + TddlRuntimeException.class, + ErrorCode.ERR_EXECUTE_ON_OSS.getMessage("Should contain AccountName in connection string!"), + () -> { + handler.buildDdlJob(logicalCreateFileStorage, executionContext); + } + ); + + MOCK_ABS_WITH.put("azure_connection_string", ""); + MockUtils.assertThrows( + TddlRuntimeException.class, + ErrorCode.ERR_EXECUTE_ON_OSS.getMessage("Should contain DefaultEndpointsProtocol in connection string!"), + () -> { + handler.buildDdlJob(logicalCreateFileStorage, executionContext); + } + ); + + MOCK_ABS_WITH.remove("azure_container_name"); + MockUtils.assertThrows( + TddlRuntimeException.class, + ErrorCode.ERR_EXECUTE_ON_OSS.getMessage("Should contain AZURE_CONTAINER_NAME in with!"), + () -> { + handler.buildDdlJob(logicalCreateFileStorage, executionContext); + } + ); + + MOCK_ABS_WITH.remove("azure_connection_string"); + MockUtils.assertThrows( + TddlRuntimeException.class, + ErrorCode.ERR_EXECUTE_ON_OSS.getMessage("Should contain AZURE_CONNECTION_STRING in with!"), + () -> { + handler.buildDdlJob(logicalCreateFileStorage, executionContext); + } + ); + } + + @Test + public void testBuildDdlJobWithInvalidEngine() { + when(logicalCreateFileStorage.getCreateFileStorage()).thenReturn(createFileStorage); + when(createFileStorage.getEngineName()).thenReturn("invalid_engine"); + + MockUtils.assertThrows(RuntimeException.class, null, () -> + handler.buildDdlJob(logicalCreateFileStorage, executionContext)); + } + + @Test + public void testBuildDdlJobWithIfNotExistsAndExists() { + when(logicalCreateFileStorage.getCreateFileStorage()).thenReturn(createFileStorage); + when(createFileStorage.getEngineName()).thenReturn("OSS"); + when(createFileStorage.isIfNotExists()).thenReturn(true); + + // Here, we assume the FileSystemManager returns a present optional indicating the storage already exists. + DdlJob ddlJob = handler.buildDdlJob(logicalCreateFileStorage, executionContext); + assertTrue(ddlJob instanceof TransientDdlJob); + } + + static private void prepareDdlTask(DdlTask ddlTask) { + ddlTask.setRootJobId(1L); + ddlTask.setJobId(1L); + ddlTask.setTaskId(1L); + ddlTask.setSchemaName("test"); + } +} \ No newline at end of file diff --git a/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/mpp/execution/scheduler/ColumnarNodeSelectorTest.java b/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/mpp/execution/scheduler/ColumnarNodeSelectorTest.java new file mode 100644 index 000000000..958413e3b --- /dev/null +++ b/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/mpp/execution/scheduler/ColumnarNodeSelectorTest.java @@ -0,0 +1,106 @@ +package com.alibaba.polardbx.executor.mpp.execution.scheduler; + +import com.alibaba.polardbx.common.utils.Assert; +import com.alibaba.polardbx.executor.mpp.split.OssSplit; +import com.alibaba.polardbx.gms.node.InternalNode; +import com.alibaba.polardbx.gms.node.InternalNodeManager; +import com.alibaba.polardbx.gms.node.Node; +import com.alibaba.polardbx.executor.mpp.metadata.Split; +import com.alibaba.polardbx.executor.mpp.execution.NodeTaskMap; +import com.alibaba.polardbx.gms.node.NodeVersion; +import com.google.common.collect.HashMultimap; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.Multimap; +import org.junit.Before; +import org.junit.Test; +import org.mockito.MockedStatic; +import org.mockito.Mockito; + +import java.util.Arrays; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +import static org.mockito.Mockito.*; + +public class ColumnarNodeSelectorTest { + + private ColumnarNodeSelector nodeSelector; + private List candidateNodes; + + @Before + public void setUp() { + InternalNodeManager nodeManager = Mockito.mock(InternalNodeManager.class); + NodeTaskMap nodeTaskMap = Mockito.mock(NodeTaskMap.class); + InternalNode node1 = new InternalNode("node1", "cluster1", "inst1", "11.11.11.11", 1234, 12345, + NodeVersion.UNKNOWN, true, true, false, false); + InternalNode node2 = new InternalNode("node2", "cluster1", "inst1", "10.10.10.10", 1234, 12345, + NodeVersion.UNKNOWN, true, true, false, false); + Set nodes = new HashSet<>(Arrays.asList(node1, node2)); + nodeSelector = new ColumnarNodeSelector(nodeManager, nodeTaskMap, nodes, 2, 1024, false, false, true, false); + candidateNodes = Arrays.asList(node1, node2); // Fill with mock or real nodes + } + + @Test + public void testScheduleOssSplit() { + nodeSelector.setScheduleByPartition(true); + OssSplit split = Mockito.mock(OssSplit.class); + when(split.getPartIndex()).thenReturn(-1); + when(split.getLogicalSchema()).thenReturn("test"); + when(split.getLogicalTableName()).thenReturn("test"); + when(split.getPhysicalSchema()).thenReturn("test"); + when(split.getPhyTableNameList()).thenReturn(Arrays.asList("test")); + + List splits = ImmutableList.of(new Split(true, split)); + NodeAssignmentStats assignmentStats = mock(NodeAssignmentStats.class); + Multimap assignment = HashMultimap.create(); + try (MockedStatic theMock = Mockito.mockStatic(OssSplit.class)) { + when(OssSplit.calcPartition("test", "test", "test", "test")).thenReturn(1); + Multimap result = + nodeSelector.scheduleOssSplit(splits, candidateNodes, assignmentStats, assignment); + + Assert.assertTrue(result.size() == 1, "assign result should be one"); + result.entries().stream().forEach(entry -> { + Node node = entry.getKey(); + Assert.assertTrue(node.getNodeIdentifier().equals("node1"), "assign result should be node1"); + }); + } + } + + @Test + public void testScheduleOssSplitWithPartition() { + nodeSelector.setScheduleByPartition(false); + OssSplit split = Mockito.mock(OssSplit.class); + when(split.getPartIndex()).thenReturn(1); + + List splits = ImmutableList.of(new Split(true, split)); + NodeAssignmentStats assignmentStats = mock(NodeAssignmentStats.class); + Multimap assignment = HashMultimap.create(); + Multimap result = + nodeSelector.scheduleOssSplit(splits, candidateNodes, assignmentStats, assignment); + + Assert.assertTrue(result.size() == 1, "assign result should be one"); + result.entries().stream().forEach(entry -> { + Node node = entry.getKey(); + Assert.assertTrue(node.getNodeIdentifier().equals("node1"), "assign result should be node1"); + }); + } + + @Test + public void testScheduleOssSplitWithoutPartition() { + nodeSelector.setScheduleByPartition(false); + OssSplit split = Mockito.mock(OssSplit.class); + when(split.getPartIndex()).thenReturn(-1); + when(split.getDesignatedFile()).thenReturn(Arrays.asList("asdfagagasgdaga.orc")); + List splits = ImmutableList.of(new Split(true, split)); + NodeAssignmentStats assignmentStats = mock(NodeAssignmentStats.class); + Multimap assignment = HashMultimap.create(); + Multimap result = + nodeSelector.scheduleOssSplit(splits, candidateNodes, assignmentStats, assignment); + Assert.assertTrue(result.size() == 1, "assign result should be one"); + result.entries().stream().forEach(entry -> { + Node node = entry.getKey(); + Assert.assertTrue(node.getNodeIdentifier().equals("node2"), "assign result should be node2"); + }); + } +} diff --git a/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/operator/scan/Decimal64ColumnReaderTest.java b/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/operator/scan/Decimal64ColumnReaderTest.java index 81d5c7ce0..a1ac7df8c 100644 --- a/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/operator/scan/Decimal64ColumnReaderTest.java +++ b/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/operator/scan/Decimal64ColumnReaderTest.java @@ -7,6 +7,8 @@ import com.alibaba.polardbx.executor.operator.scan.metrics.ProfileUnit; import com.alibaba.polardbx.executor.operator.scan.metrics.RuntimeMetrics; import com.alibaba.polardbx.optimizer.context.ExecutionContext; +import com.alibaba.polardbx.optimizer.core.datatype.DataTypes; +import com.alibaba.polardbx.optimizer.core.datatype.DecimalType; import com.google.common.collect.ImmutableList; import org.apache.hadoop.fs.Path; import org.apache.hadoop.hive.ql.exec.vector.ColumnVector; @@ -17,6 +19,7 @@ import org.apache.orc.Reader; import org.apache.orc.RecordReader; import org.apache.orc.StripeInformation; +import org.apache.orc.TypeDescription; import org.apache.orc.impl.InStream; import org.apache.orc.impl.OrcIndex; import org.apache.orc.impl.StreamName; @@ -33,9 +36,25 @@ public class Decimal64ColumnReaderTest extends DecimalScanTestBase { public static final String METRICS_NAME = "ScanWork$" + "1d74bd93f993225$" + "943268$" + 0; + @Override + protected void initSchema() { + // 2 col = 1 bigint + 1 decimal + SCHEMA.addField("112__id__", TypeDescription.createLong()); + SCHEMA.addField("113__id__", TypeDescription.createDecimal().withPrecision(15).withScale(2)); + + INPUT_TYPES.add(DataTypes.LongType); + INPUT_TYPES.add(new DecimalType(15, 2)); + + } + + @Override + String getOrcFileName() { + return "dec64.orc"; + } + @Test public void testSingleGroup() throws IOException { - doTest(0, 1, + doTest(0, 2, new boolean[] {true, true, true}, fromRowGroupIds(0, new int[] {0}), ImmutableList.of( @@ -138,7 +157,7 @@ private void doValidate( } Path path = new Path(getFileFromClasspath - (TEST_ORC_FILE_NAME)); + (getOrcFileName())); Reader.Options options = new Reader.Options(CONFIGURATION).schema(SCHEMA) .range(stripeInformation.getOffset(), stripeInformation.getLength()); @@ -154,30 +173,7 @@ private void doValidate( VectorizedRowBatch batch = SCHEMA.createRowBatch(location.positionCount); rows.nextBatch(batch); - check(targetBlock, batch, targetColumnId); - } - } - - private static void check(DecimalBlock block, VectorizedRowBatch batch, int targetColumnId) { - Assert.assertTrue(block.isDecimal64()); - - for (int row = 0; row < batch.size; row++) { - for (int columnIndex = 0; columnIndex < batch.cols.length; columnIndex++) { - if (targetColumnId != columnIndex + 1) { - continue; - } - - ColumnVector vector = batch.cols[columnIndex]; - - if (vector.isNull[row]) { - // check null - Assert.assertTrue(block.isNull(row)); - } else { - Assert.assertTrue(vector instanceof LongColumnVector); - Assert.assertEquals(block.getLong(row), ((LongColumnVector) vector).vector[row]); - } - } - + checkDecimal64(targetBlock, batch, targetColumnId); } } } diff --git a/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/operator/scan/DecimalScanTestBase.java b/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/operator/scan/DecimalScanTestBase.java index 5e0b1f6ff..e077d6f88 100644 --- a/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/operator/scan/DecimalScanTestBase.java +++ b/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/operator/scan/DecimalScanTestBase.java @@ -1,8 +1,13 @@ package com.alibaba.polardbx.executor.operator.scan; +import com.alibaba.polardbx.common.charset.MySQLUnicodeUtils; +import com.alibaba.polardbx.common.datatype.DecimalConverter; +import com.alibaba.polardbx.common.datatype.DecimalStructure; +import com.alibaba.polardbx.common.datatype.FastDecimalUtils; import com.alibaba.polardbx.executor.chunk.Block; import com.alibaba.polardbx.executor.chunk.BlockBuilder; import com.alibaba.polardbx.executor.chunk.BlockBuilders; +import com.alibaba.polardbx.executor.chunk.DecimalBlock; import com.alibaba.polardbx.executor.operator.scan.impl.AsyncStripeLoader; import com.alibaba.polardbx.executor.operator.scan.impl.PreheatFileMeta; import com.alibaba.polardbx.executor.operator.scan.impl.StaticStripePlanner; @@ -19,6 +24,8 @@ import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; +import org.apache.hadoop.hive.ql.exec.vector.BytesColumnVector; +import org.apache.hadoop.hive.ql.exec.vector.ColumnVector; import org.apache.hadoop.hive.ql.exec.vector.LongColumnVector; import org.apache.hadoop.hive.ql.exec.vector.VectorizedRowBatch; import org.apache.orc.CompressionKind; @@ -32,8 +39,8 @@ import org.apache.orc.impl.OrcTail; import org.apache.orc.impl.reader.ReaderEncryption; import org.jetbrains.annotations.NotNull; +import org.junit.Assert; import org.junit.Before; -import org.junit.BeforeClass; import java.io.IOException; import java.net.URL; @@ -47,7 +54,7 @@ import java.util.concurrent.Executors; import java.util.stream.Collectors; -public class DecimalScanTestBase { +public abstract class DecimalScanTestBase { private MemoryAllocatorCtx memoryAllocatorCtx; @@ -78,15 +85,9 @@ public int compareTo(@NotNull DecimalScanTestBase.BlockLocation that) { } } - public static final String TRACE_ID = "1d3hfeq89fdc"; public static final int DEFAULT_CHUNK_LIMIT = 1000; public static final int IO_THREADS = 2; - public static final int RG_INDEX = 10000; public static final long STRIPE_SIZE_IN_MB = 8L; - public static final String TEST_ORC_FILE_NAME = "dec64.orc"; - - public static final int SEQUENCE_ID = 156428234; - public static final int FILE_ID = 1; // IO params. protected static Configuration CONFIGURATION; @@ -137,16 +138,11 @@ protected static PreheatFileMeta preheat() throws IOException { } - @BeforeClass - public static void prepareStaticParams() throws IOException { + @Before + public void prepareParams() throws IOException { SCHEMA = TypeDescription.createStruct(); INPUT_TYPES = new ArrayList<>(); - // 2 col = 1 bigint + 1 decimal - SCHEMA.addField("112__id__", TypeDescription.createLong()); - SCHEMA.addField("113__id__", TypeDescription.createDecimal().withPrecision(15).withScale(2)); - - INPUT_TYPES.add(DataTypes.LongType); - INPUT_TYPES.add(new DecimalType(15, 2)); + initSchema(); IO_EXECUTOR = Executors.newFixedThreadPool(IO_THREADS); @@ -157,15 +153,11 @@ public static void prepareStaticParams() throws IOException { OrcConf.STRIPE_SIZE.setLong(CONFIGURATION, STRIPE_SIZE_IN_MB * 1024 * 1024); FILE_PATH = new Path( - getFileFromClasspath(TEST_ORC_FILE_NAME)); + getFileFromClasspath(getOrcFileName())); FILESYSTEM = FileSystem.get( FILE_PATH.toUri(), CONFIGURATION ); - } - - @Before - public void prepareParams() throws IOException { preheatFileMeta = preheat(); orcTail = preheatFileMeta.getPreheatTail(); @@ -218,6 +210,10 @@ public void prepareParams() throws IOException { this.memoryAllocatorCtx = memoryPool.getMemoryAllocatorCtx(); } + protected abstract void initSchema(); + + abstract String getOrcFileName(); + @NotNull protected StripeLoader createStripeLoader(int stripeId, boolean[] columnIncluded, RuntimeMetrics runtimeMetrics) { StripeLoader stripeLoader; @@ -347,7 +343,7 @@ private SortedMap createBlock(int stripeId, } Path path = new Path(getFileFromClasspath - (TEST_ORC_FILE_NAME)); + (getOrcFileName())); Reader.Options options = new Reader.Options(CONFIGURATION).schema(SCHEMA) .range(stripeInformation.getOffset(), stripeInformation.getLength()); @@ -389,4 +385,58 @@ private SortedMap createBlock(int stripeId, return result; } + protected static void check(DecimalBlock block, VectorizedRowBatch batch, int targetColumnId) { + for (int row = 0; row < batch.size; row++) { + ColumnVector vector = batch.cols[1]; + int idx = row; + if (vector.isRepeating) { + idx = 0; + } + if (vector.isNull[idx]) { + // check null + Assert.assertTrue(block.isNull(row)); + } else { + Assert.assertTrue(vector instanceof BytesColumnVector); + BytesColumnVector bytesColumnVector = (BytesColumnVector) vector; + int pos = bytesColumnVector.start[idx]; + int len = bytesColumnVector.length[idx]; + byte[] tmp = new byte[len]; + + boolean isUtf8FromLatin1 = + MySQLUnicodeUtils.utf8ToLatin1(bytesColumnVector.vector[idx], pos, pos + len, tmp); + if (!isUtf8FromLatin1) { + // in columnar, decimals are stored already in latin1 encoding + System.arraycopy(bytesColumnVector.vector[idx], pos, tmp, 0, len); + } + DecimalStructure targetDec = new DecimalStructure(); + DecimalConverter.binToDecimal(tmp, targetDec, INPUT_TYPES.get(targetColumnId - 1).getPrecision(), + INPUT_TYPES.get(targetColumnId - 1).getScale()); + Assert.assertEquals(0, + FastDecimalUtils.compare(targetDec, block.getDecimal(row).getDecimalStructure())); + } + } + } + + protected static void checkDecimal64(DecimalBlock block, VectorizedRowBatch batch, int targetColumnId) { + Assert.assertTrue(block.isDecimal64()); + + for (int row = 0; row < batch.size; row++) { + for (int columnIndex = 0; columnIndex < batch.cols.length; columnIndex++) { + if (targetColumnId != columnIndex + 1) { + continue; + } + + ColumnVector vector = batch.cols[columnIndex]; + + if (vector.isNull[row]) { + // check null + Assert.assertTrue(block.isNull(row)); + } else { + Assert.assertTrue(vector instanceof LongColumnVector); + Assert.assertEquals(block.getLong(row), ((LongColumnVector) vector).vector[row]); + } + } + + } + } } diff --git a/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/operator/scan/DictDecimalColumnReader1Test.java b/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/operator/scan/DictDecimalColumnReader1Test.java new file mode 100644 index 000000000..7fedafa73 --- /dev/null +++ b/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/operator/scan/DictDecimalColumnReader1Test.java @@ -0,0 +1,177 @@ +package com.alibaba.polardbx.executor.operator.scan; + +import com.alibaba.polardbx.executor.chunk.DecimalBlock; +import com.alibaba.polardbx.executor.operator.scan.impl.AsyncStripeLoader; +import com.alibaba.polardbx.executor.operator.scan.impl.DictionaryDecimalColumnReader; +import com.alibaba.polardbx.executor.operator.scan.impl.StaticStripePlanner; +import com.alibaba.polardbx.executor.operator.scan.metrics.ProfileAccumulatorType; +import com.alibaba.polardbx.executor.operator.scan.metrics.ProfileUnit; +import com.alibaba.polardbx.executor.operator.scan.metrics.RuntimeMetrics; +import com.alibaba.polardbx.optimizer.context.ExecutionContext; +import com.alibaba.polardbx.optimizer.core.datatype.DataTypes; +import com.alibaba.polardbx.optimizer.core.datatype.DecimalType; +import com.google.common.collect.ImmutableList; +import org.apache.hadoop.fs.Path; +import org.apache.hadoop.hive.ql.exec.vector.VectorizedRowBatch; +import org.apache.orc.OrcFile; +import org.apache.orc.OrcProto; +import org.apache.orc.Reader; +import org.apache.orc.RecordReader; +import org.apache.orc.StripeInformation; +import org.apache.orc.TypeDescription; +import org.apache.orc.impl.InStream; +import org.apache.orc.impl.OrcIndex; +import org.apache.orc.impl.StreamName; +import org.junit.Test; + +import java.io.IOException; +import java.util.List; +import java.util.Map; +import java.util.SortedMap; +import java.util.TreeMap; +import java.util.concurrent.CompletableFuture; +import java.util.stream.Collectors; + +public class DictDecimalColumnReader1Test extends DecimalScanTestBase { + + public static final String METRICS_NAME = "ScanWork$" + + "1d74bd93f97a5141$" + "123456$1"; + + @Override + protected void initSchema() { + // 2 col = 1 bigint + 1 decimal + SCHEMA.addField("2203__id__", TypeDescription.createLong()); + SCHEMA.addField("2204__id__", TypeDescription.createDecimal().withPrecision(20).withScale(2)); + + INPUT_TYPES.add(DataTypes.LongType); + INPUT_TYPES.add(new DecimalType(20, 2)); + } + + @Override + String getOrcFileName() { + return "dict_dec_all_null.orc"; + } + + @Test + public void testSingleGroup() throws IOException { + doTest(0, 2, + new boolean[] {true, true, true}, + fromRowGroupIds(0, new int[] {0}), + ImmutableList.of( + new BlockLocation(0, 0, 1000), + new BlockLocation(0, 1000, 1000) + )); + } + + public void doTest(int stripeId, int columnId, + boolean[] columnIncluded, + boolean[] rowGroupIncluded, + List locationList) + throws IOException { + final StripeInformation stripeInformation = stripeInformationMap.get(stripeId); + final ExecutionContext context = new ExecutionContext(); + final OrcIndex orcIndex = preheatFileMeta.getOrcIndex( + stripeInformation.getStripeId() + ); + + // metrics named ColumnReaderTest + RuntimeMetrics runtimeMetrics = RuntimeMetrics.create(METRICS_NAME); + runtimeMetrics.addDerivedCounter(AsyncStripeLoader.ASYNC_STRIPE_LOADER_MEMORY, + null, ProfileUnit.BYTES, ProfileAccumulatorType.SUM); + runtimeMetrics.addDerivedCounter(AsyncStripeLoader.ASYNC_STRIPE_LOADER_TIMER, + null, ProfileUnit.NANO_SECOND, ProfileAccumulatorType.SUM); + runtimeMetrics.addDerivedCounter(AsyncStripeLoader.ASYNC_STRIPE_LOADER_BYTES_RANGE, + null, ProfileUnit.BYTES, ProfileAccumulatorType.SUM); + + runtimeMetrics.addDerivedCounter(ColumnReader.COLUMN_READER_MEMORY, + null, ProfileUnit.BYTES, ProfileAccumulatorType.SUM); + runtimeMetrics.addDerivedCounter(ColumnReader.COLUMN_READER_TIMER, + null, ProfileUnit.NANO_SECOND, ProfileAccumulatorType.SUM); + + runtimeMetrics.addDerivedCounter(LogicalRowGroup.BLOCK_LOAD_TIMER, + null, ProfileUnit.NANO_SECOND, ProfileAccumulatorType.SUM); + runtimeMetrics.addDerivedCounter(LogicalRowGroup.BLOCK_MEMORY_COUNTER, + null, ProfileUnit.BYTES, ProfileAccumulatorType.SUM); + + StripeLoader stripeLoader = null; + ColumnReader columnReader = null; + try { + stripeLoader = createStripeLoader(stripeId, columnIncluded, runtimeMetrics); + stripeLoader.open(); + List stripeInformationList = orcTail.getStripes(); + SortedMap encodingMap = + stripeInformationList.stream().collect(Collectors.toMap( + stripe -> (int) stripe.getStripeId(), + stripe -> StaticStripePlanner.buildEncodings( + encryption, + columnIncluded, + preheatFileMeta.getStripeFooter((int) stripe.getStripeId())), + (s1, s2) -> s1, + () -> new TreeMap<>() + )); + final OrcProto.ColumnEncoding[] encodings = encodingMap.get(stripeId); + CompletableFuture> loadFuture = + stripeLoader.load(columnId, rowGroupIncluded); + + // Use async mode and wait for completion of stripe loader. + columnReader = new DictionaryDecimalColumnReader(columnId, true, stripeLoader, orcIndex, runtimeMetrics, + encodings[columnId], indexStride, true); + columnReader.open(loadFuture, false, rowGroupIncluded); + + for (BlockLocation location : locationList) { + // block builder matched with raw orc data. + DecimalBlock decimalBlock = new DecimalBlock(INPUT_TYPES.get(1), location.positionCount, true); + + // move index of column-reader and start reading from this index. + columnReader.startAt(location.rowGroupId, location.startPosition); + columnReader.next(decimalBlock, location.positionCount); + + doValidate(decimalBlock, columnId, stripeId, orcTail.getStripes(), location); + } + + } finally { + if (stripeLoader != null) { + stripeLoader.close(); + } + if (columnReader != null) { + columnReader.close(); + } + } + } + + private void doValidate( + DecimalBlock targetBlock, + int targetColumnId, + int stripeId, + List stripeInformationList, + BlockLocation location) throws IOException { + StripeInformation stripeInformation = stripeInformationList.get(stripeId); + + // count the total rows before this stripe. + int stripeStartRows = 0; + for (int i = 0; i < stripeId; i++) { + stripeStartRows += stripeInformationList.get(i).getNumberOfRows(); + } + + Path path = new Path(getFileFromClasspath + (getOrcFileName())); + + Reader.Options options = new Reader.Options(CONFIGURATION).schema(SCHEMA) + .range(stripeInformation.getOffset(), stripeInformation.getLength()); + + try (Reader reader = OrcFile.createReader(path, OrcFile.readerOptions(CONFIGURATION)); + RecordReader rows = reader.rows(options)) { + + // count start row position in given row group. + int startPositionInGroup = stripeStartRows + location.rowGroupId * indexStride; + rows.seekToRow(startPositionInGroup + location.startPosition); + + // seek and read values with position count. + VectorizedRowBatch batch = SCHEMA.createRowBatch(location.positionCount); + rows.nextBatch(batch); + + check(targetBlock, batch, targetColumnId); + } + } + +} diff --git a/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/operator/scan/DictDecimalColumnReader2Test.java b/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/operator/scan/DictDecimalColumnReader2Test.java new file mode 100644 index 000000000..004b0442d --- /dev/null +++ b/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/operator/scan/DictDecimalColumnReader2Test.java @@ -0,0 +1,176 @@ +package com.alibaba.polardbx.executor.operator.scan; + +import com.alibaba.polardbx.executor.chunk.DecimalBlock; +import com.alibaba.polardbx.executor.operator.scan.impl.AsyncStripeLoader; +import com.alibaba.polardbx.executor.operator.scan.impl.DictionaryDecimalColumnReader; +import com.alibaba.polardbx.executor.operator.scan.impl.StaticStripePlanner; +import com.alibaba.polardbx.executor.operator.scan.metrics.ProfileAccumulatorType; +import com.alibaba.polardbx.executor.operator.scan.metrics.ProfileUnit; +import com.alibaba.polardbx.executor.operator.scan.metrics.RuntimeMetrics; +import com.alibaba.polardbx.optimizer.context.ExecutionContext; +import com.alibaba.polardbx.optimizer.core.datatype.DataTypes; +import com.alibaba.polardbx.optimizer.core.datatype.DecimalType; +import com.google.common.collect.ImmutableList; +import org.apache.hadoop.fs.Path; +import org.apache.hadoop.hive.ql.exec.vector.VectorizedRowBatch; +import org.apache.orc.OrcFile; +import org.apache.orc.OrcProto; +import org.apache.orc.Reader; +import org.apache.orc.RecordReader; +import org.apache.orc.StripeInformation; +import org.apache.orc.TypeDescription; +import org.apache.orc.impl.InStream; +import org.apache.orc.impl.OrcIndex; +import org.apache.orc.impl.StreamName; +import org.junit.Test; + +import java.io.IOException; +import java.util.List; +import java.util.Map; +import java.util.SortedMap; +import java.util.TreeMap; +import java.util.concurrent.CompletableFuture; +import java.util.stream.Collectors; + +public class DictDecimalColumnReader2Test extends DecimalScanTestBase { + + public static final String METRICS_NAME = "ScanWork$" + + "1d74bd93f97a5141$" + "123456$1"; + + @Override + protected void initSchema() { + // 2 col = 1 bigint + 1 decimal + SCHEMA.addField("2209__id__", TypeDescription.createLong()); + SCHEMA.addField("2210__id__", TypeDescription.createDecimal().withPrecision(20).withScale(2)); + + INPUT_TYPES.add(DataTypes.LongType); + INPUT_TYPES.add(new DecimalType(20, 2)); + } + + @Override + String getOrcFileName() { + return "dec_val.orc"; + } + + @Test + public void testSingleGroup() throws IOException { + doTest(0, 2, + new boolean[] {true, true, true}, + fromRowGroupIds(0, new int[] {0}), + ImmutableList.of( + new BlockLocation(0, 0, 1000) + )); + } + + public void doTest(int stripeId, int columnId, + boolean[] columnIncluded, + boolean[] rowGroupIncluded, + List locationList) + throws IOException { + final StripeInformation stripeInformation = stripeInformationMap.get(stripeId); + final ExecutionContext context = new ExecutionContext(); + final OrcIndex orcIndex = preheatFileMeta.getOrcIndex( + stripeInformation.getStripeId() + ); + + // metrics named ColumnReaderTest + RuntimeMetrics runtimeMetrics = RuntimeMetrics.create(METRICS_NAME); + runtimeMetrics.addDerivedCounter(AsyncStripeLoader.ASYNC_STRIPE_LOADER_MEMORY, + null, ProfileUnit.BYTES, ProfileAccumulatorType.SUM); + runtimeMetrics.addDerivedCounter(AsyncStripeLoader.ASYNC_STRIPE_LOADER_TIMER, + null, ProfileUnit.NANO_SECOND, ProfileAccumulatorType.SUM); + runtimeMetrics.addDerivedCounter(AsyncStripeLoader.ASYNC_STRIPE_LOADER_BYTES_RANGE, + null, ProfileUnit.BYTES, ProfileAccumulatorType.SUM); + + runtimeMetrics.addDerivedCounter(ColumnReader.COLUMN_READER_MEMORY, + null, ProfileUnit.BYTES, ProfileAccumulatorType.SUM); + runtimeMetrics.addDerivedCounter(ColumnReader.COLUMN_READER_TIMER, + null, ProfileUnit.NANO_SECOND, ProfileAccumulatorType.SUM); + + runtimeMetrics.addDerivedCounter(LogicalRowGroup.BLOCK_LOAD_TIMER, + null, ProfileUnit.NANO_SECOND, ProfileAccumulatorType.SUM); + runtimeMetrics.addDerivedCounter(LogicalRowGroup.BLOCK_MEMORY_COUNTER, + null, ProfileUnit.BYTES, ProfileAccumulatorType.SUM); + + StripeLoader stripeLoader = null; + ColumnReader columnReader = null; + try { + stripeLoader = createStripeLoader(stripeId, columnIncluded, runtimeMetrics); + stripeLoader.open(); + List stripeInformationList = orcTail.getStripes(); + SortedMap encodingMap = + stripeInformationList.stream().collect(Collectors.toMap( + stripe -> (int) stripe.getStripeId(), + stripe -> StaticStripePlanner.buildEncodings( + encryption, + columnIncluded, + preheatFileMeta.getStripeFooter((int) stripe.getStripeId())), + (s1, s2) -> s1, + () -> new TreeMap<>() + )); + final OrcProto.ColumnEncoding[] encodings = encodingMap.get(stripeId); + CompletableFuture> loadFuture = + stripeLoader.load(columnId, rowGroupIncluded); + + // Use async mode and wait for completion of stripe loader. + columnReader = new DictionaryDecimalColumnReader(columnId, true, stripeLoader, orcIndex, runtimeMetrics, + encodings[columnId], indexStride, true); + columnReader.open(loadFuture, false, rowGroupIncluded); + + for (BlockLocation location : locationList) { + // block builder matched with raw orc data. + DecimalBlock decimalBlock = new DecimalBlock(INPUT_TYPES.get(1), location.positionCount, true); + + // move index of column-reader and start reading from this index. + columnReader.startAt(location.rowGroupId, location.startPosition); + columnReader.next(decimalBlock, location.positionCount); + + doValidate(decimalBlock, columnId, stripeId, orcTail.getStripes(), location); + } + + } finally { + if (stripeLoader != null) { + stripeLoader.close(); + } + if (columnReader != null) { + columnReader.close(); + } + } + } + + private void doValidate( + DecimalBlock targetBlock, + int targetColumnId, + int stripeId, + List stripeInformationList, + BlockLocation location) throws IOException { + StripeInformation stripeInformation = stripeInformationList.get(stripeId); + + // count the total rows before this stripe. + int stripeStartRows = 0; + for (int i = 0; i < stripeId; i++) { + stripeStartRows += stripeInformationList.get(i).getNumberOfRows(); + } + + Path path = new Path(getFileFromClasspath + (getOrcFileName())); + + Reader.Options options = new Reader.Options(CONFIGURATION).schema(SCHEMA) + .range(stripeInformation.getOffset(), stripeInformation.getLength()); + + try (Reader reader = OrcFile.createReader(path, OrcFile.readerOptions(CONFIGURATION)); + RecordReader rows = reader.rows(options)) { + + // count start row position in given row group. + int startPositionInGroup = stripeStartRows + location.rowGroupId * indexStride; + rows.seekToRow(startPositionInGroup + location.startPosition); + + // seek and read values with position count. + VectorizedRowBatch batch = SCHEMA.createRowBatch(location.positionCount); + rows.nextBatch(batch); + + check(targetBlock, batch, targetColumnId); + } + } + +} diff --git a/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/operator/scan/DictDecimalColumnReader3Test.java b/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/operator/scan/DictDecimalColumnReader3Test.java new file mode 100644 index 000000000..74b89b2c8 --- /dev/null +++ b/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/operator/scan/DictDecimalColumnReader3Test.java @@ -0,0 +1,176 @@ +package com.alibaba.polardbx.executor.operator.scan; + +import com.alibaba.polardbx.executor.chunk.DecimalBlock; +import com.alibaba.polardbx.executor.operator.scan.impl.AsyncStripeLoader; +import com.alibaba.polardbx.executor.operator.scan.impl.DictionaryDecimalColumnReader; +import com.alibaba.polardbx.executor.operator.scan.impl.StaticStripePlanner; +import com.alibaba.polardbx.executor.operator.scan.metrics.ProfileAccumulatorType; +import com.alibaba.polardbx.executor.operator.scan.metrics.ProfileUnit; +import com.alibaba.polardbx.executor.operator.scan.metrics.RuntimeMetrics; +import com.alibaba.polardbx.optimizer.context.ExecutionContext; +import com.alibaba.polardbx.optimizer.core.datatype.DataTypes; +import com.alibaba.polardbx.optimizer.core.datatype.DecimalType; +import com.google.common.collect.ImmutableList; +import org.apache.hadoop.fs.Path; +import org.apache.hadoop.hive.ql.exec.vector.VectorizedRowBatch; +import org.apache.orc.OrcFile; +import org.apache.orc.OrcProto; +import org.apache.orc.Reader; +import org.apache.orc.RecordReader; +import org.apache.orc.StripeInformation; +import org.apache.orc.TypeDescription; +import org.apache.orc.impl.InStream; +import org.apache.orc.impl.OrcIndex; +import org.apache.orc.impl.StreamName; +import org.junit.Test; + +import java.io.IOException; +import java.util.List; +import java.util.Map; +import java.util.SortedMap; +import java.util.TreeMap; +import java.util.concurrent.CompletableFuture; +import java.util.stream.Collectors; + +public class DictDecimalColumnReader3Test extends DecimalScanTestBase { + + public static final String METRICS_NAME = "ScanWork$" + + "1d74bd93f97a5141$" + "123456$1"; + + @Override + protected void initSchema() { + // 2 col = 1 bigint + 1 decimal + SCHEMA.addField("2211__id__", TypeDescription.createLong()); + SCHEMA.addField("2212__id__", TypeDescription.createDecimal().withPrecision(20).withScale(2)); + + INPUT_TYPES.add(DataTypes.LongType); + INPUT_TYPES.add(new DecimalType(20, 2)); + } + + @Override + String getOrcFileName() { + return "dec_val_null.orc"; + } + + @Test + public void testSingleGroup() throws IOException { + doTest(0, 2, + new boolean[] {true, true, true}, + fromRowGroupIds(0, new int[] {0}), + ImmutableList.of( + new BlockLocation(0, 0, 1000), + new BlockLocation(0, 1000, 400) + )); + } + + public void doTest(int stripeId, int columnId, + boolean[] columnIncluded, + boolean[] rowGroupIncluded, + List locationList) + throws IOException { + final StripeInformation stripeInformation = stripeInformationMap.get(stripeId); + final ExecutionContext context = new ExecutionContext(); + final OrcIndex orcIndex = preheatFileMeta.getOrcIndex( + stripeInformation.getStripeId() + ); + + // metrics named ColumnReaderTest + RuntimeMetrics runtimeMetrics = RuntimeMetrics.create(METRICS_NAME); + runtimeMetrics.addDerivedCounter(AsyncStripeLoader.ASYNC_STRIPE_LOADER_MEMORY, + null, ProfileUnit.BYTES, ProfileAccumulatorType.SUM); + runtimeMetrics.addDerivedCounter(AsyncStripeLoader.ASYNC_STRIPE_LOADER_TIMER, + null, ProfileUnit.NANO_SECOND, ProfileAccumulatorType.SUM); + runtimeMetrics.addDerivedCounter(AsyncStripeLoader.ASYNC_STRIPE_LOADER_BYTES_RANGE, + null, ProfileUnit.BYTES, ProfileAccumulatorType.SUM); + + runtimeMetrics.addDerivedCounter(ColumnReader.COLUMN_READER_MEMORY, + null, ProfileUnit.BYTES, ProfileAccumulatorType.SUM); + runtimeMetrics.addDerivedCounter(ColumnReader.COLUMN_READER_TIMER, + null, ProfileUnit.NANO_SECOND, ProfileAccumulatorType.SUM); + + runtimeMetrics.addDerivedCounter(LogicalRowGroup.BLOCK_LOAD_TIMER, + null, ProfileUnit.NANO_SECOND, ProfileAccumulatorType.SUM); + runtimeMetrics.addDerivedCounter(LogicalRowGroup.BLOCK_MEMORY_COUNTER, + null, ProfileUnit.BYTES, ProfileAccumulatorType.SUM); + StripeLoader stripeLoader = null; + ColumnReader columnReader = null; + try { + stripeLoader = createStripeLoader(stripeId, columnIncluded, runtimeMetrics); + stripeLoader.open(); + List stripeInformationList = orcTail.getStripes(); + SortedMap encodingMap = + stripeInformationList.stream().collect(Collectors.toMap( + stripe -> (int) stripe.getStripeId(), + stripe -> StaticStripePlanner.buildEncodings( + encryption, + columnIncluded, + preheatFileMeta.getStripeFooter((int) stripe.getStripeId())), + (s1, s2) -> s1, + () -> new TreeMap<>() + )); + final OrcProto.ColumnEncoding[] encodings = encodingMap.get(stripeId); + CompletableFuture> loadFuture = + stripeLoader.load(columnId, rowGroupIncluded); + + // Use async mode and wait for completion of stripe loader. + columnReader = new DictionaryDecimalColumnReader(columnId, true, stripeLoader, orcIndex, runtimeMetrics, + encodings[columnId], indexStride, true); + columnReader.open(loadFuture, false, rowGroupIncluded); + + for (BlockLocation location : locationList) { + // block builder matched with raw orc data. + DecimalBlock decimalBlock = new DecimalBlock(INPUT_TYPES.get(1), location.positionCount, true); + + // move index of column-reader and start reading from this index. + columnReader.startAt(location.rowGroupId, location.startPosition); + columnReader.next(decimalBlock, location.positionCount); + + doValidate(decimalBlock, columnId, stripeId, orcTail.getStripes(), location); + } + + } finally { + if (stripeLoader != null) { + stripeLoader.close(); + } + if (columnReader != null) { + columnReader.close(); + } + } + } + + private void doValidate( + DecimalBlock targetBlock, + int targetColumnId, + int stripeId, + List stripeInformationList, + BlockLocation location) throws IOException { + StripeInformation stripeInformation = stripeInformationList.get(stripeId); + + // count the total rows before this stripe. + int stripeStartRows = 0; + for (int i = 0; i < stripeId; i++) { + stripeStartRows += stripeInformationList.get(i).getNumberOfRows(); + } + + Path path = new Path(getFileFromClasspath + (getOrcFileName())); + + Reader.Options options = new Reader.Options(CONFIGURATION).schema(SCHEMA) + .range(stripeInformation.getOffset(), stripeInformation.getLength()); + + try (Reader reader = OrcFile.createReader(path, OrcFile.readerOptions(CONFIGURATION)); + RecordReader rows = reader.rows(options)) { + + // count start row position in given row group. + int startPositionInGroup = stripeStartRows + location.rowGroupId * indexStride; + rows.seekToRow(startPositionInGroup + location.startPosition); + + // seek and read values with position count. + VectorizedRowBatch batch = SCHEMA.createRowBatch(location.positionCount); + rows.nextBatch(batch); + + check(targetBlock, batch, targetColumnId); + } + } + +} diff --git a/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/operator/scan/NormalDecimalColumnReaderTest.java b/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/operator/scan/NormalDecimalColumnReaderTest.java index ad25f6cd1..6c5f15a42 100644 --- a/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/operator/scan/NormalDecimalColumnReaderTest.java +++ b/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/operator/scan/NormalDecimalColumnReaderTest.java @@ -61,17 +61,17 @@ protected void check(Block block, VectorizedRowBatch batch, int targetColumnId) for (int row = 0; row < batch.size; row++) { ColumnVector vector = batch.cols[COLUMN_ID]; - - if (vector.isNull[row]) { + int idx = row; + if (vector.isRepeating) { + idx = 0; + } + if (vector.isNull[idx]) { // check null Assert.assertTrue(block.isNull(row)); } else { Assert.assertTrue(vector instanceof BytesColumnVector); BytesColumnVector bytesColumnVector = (BytesColumnVector) vector; - int idx = row; - if (vector.isRepeating) { - idx = 0; - } + int pos = bytesColumnVector.start[idx]; int len = bytesColumnVector.length[idx]; byte[] tmp = new byte[len]; diff --git a/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/operator/scan/impl/RowGroupIteratorTest.java b/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/operator/scan/impl/RowGroupIteratorTest.java new file mode 100644 index 000000000..2d4ba0a27 --- /dev/null +++ b/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/operator/scan/impl/RowGroupIteratorTest.java @@ -0,0 +1,57 @@ +package com.alibaba.polardbx.executor.operator.scan.impl; + +import com.alibaba.polardbx.executor.operator.scan.ColumnReader; +import com.alibaba.polardbx.optimizer.context.ExecutionContext; +import com.alibaba.polardbx.optimizer.core.datatype.DataType; +import com.alibaba.polardbx.optimizer.core.datatype.DecimalType; +import org.apache.orc.OrcProto; +import org.junit.Assert; +import org.junit.Test; +import org.mockito.Mockito; + +public class RowGroupIteratorTest { + + @Test + public void testDecimalReader() { + DataType dec64Type = new DecimalType(16, 4); + ExecutionContext context = new ExecutionContext(); + context.getParamManager().getProps().put("ENABLE_COLUMNAR_DECIMAL64", "true"); + OrcProto.ColumnEncoding directEncoding = mockDirectEncoding(); + + ColumnReader decimal64Reader = RowGroupIteratorImpl.getDecimalReader(true, context, dec64Type, 0, false, null, + null, null, 1000, directEncoding, false); + Assert.assertTrue(decimal64Reader instanceof LongColumnReader); + + ColumnReader decimalReader = RowGroupIteratorImpl.getDecimalReader(false, context, dec64Type, 0, false, null, + null, null, 1000, directEncoding, false); + Assert.assertTrue(decimalReader instanceof DecimalColumnReader); + + context.getParamManager().getProps().put("ENABLE_COLUMNAR_DECIMAL64", "false"); + ColumnReader decimal64ToDecReader = + RowGroupIteratorImpl.getDecimalReader(true, context, dec64Type, 0, false, null, + null, null, 1000, directEncoding, false); + Assert.assertTrue(decimal64ToDecReader instanceof Decimal64ToDecimalColumnReader); + + DataType decType = new DecimalType(19, 4); + ColumnReader decimalReader2 = RowGroupIteratorImpl.getDecimalReader(true, context, decType, 0, false, null, + null, null, 1000, directEncoding, false); + Assert.assertTrue(decimalReader2 instanceof DecimalColumnReader); + + OrcProto.ColumnEncoding dictEncoding = mockDictEncoding(); + ColumnReader dictDecimalReader = RowGroupIteratorImpl.getDecimalReader(true, context, decType, 0, false, null, + null, null, 1000, dictEncoding, false); + Assert.assertTrue(dictDecimalReader instanceof DictionaryDecimalColumnReader); + } + + private OrcProto.ColumnEncoding mockDictEncoding() { + OrcProto.ColumnEncoding encoding = Mockito.mock(OrcProto.ColumnEncoding.class); + Mockito.when(encoding.getKind()).thenReturn(OrcProto.ColumnEncoding.Kind.DICTIONARY); + return encoding; + } + + private OrcProto.ColumnEncoding mockDirectEncoding() { + OrcProto.ColumnEncoding encoding = Mockito.mock(OrcProto.ColumnEncoding.class); + Mockito.when(encoding.getKind()).thenReturn(OrcProto.ColumnEncoding.Kind.DIRECT); + return encoding; + } +} diff --git a/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/partitionmanagement/rebalance/RebalanceDdlPlanManagerTest.java b/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/partitionmanagement/rebalance/RebalanceDdlPlanManagerTest.java new file mode 100644 index 000000000..680ad5d8b --- /dev/null +++ b/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/partitionmanagement/rebalance/RebalanceDdlPlanManagerTest.java @@ -0,0 +1,160 @@ +package com.alibaba.polardbx.executor.partitionmanagement.rebalance; + +import com.alibaba.polardbx.common.properties.BooleanConfigParam; +import com.alibaba.polardbx.common.properties.ConnectionParams; +import com.alibaba.polardbx.common.properties.ConnectionProperties; +import com.alibaba.polardbx.common.properties.StringConfigParam; +import com.alibaba.polardbx.common.utils.Assert; +import com.alibaba.polardbx.executor.ddl.newengine.meta.DdlJobManager; +import com.alibaba.polardbx.gms.config.impl.InstConfUtil; +import com.alibaba.polardbx.gms.config.impl.MetaDbInstConfigManager; +import com.alibaba.polardbx.gms.metadb.misc.DdlEngineRecord; +import com.alibaba.polardbx.gms.scheduler.DdlPlanAccessor; +import com.alibaba.polardbx.gms.scheduler.DdlPlanRecord; +import com.alibaba.polardbx.gms.util.MetaDbUtil; +import com.alibaba.polardbx.optimizer.config.server.DefaultServerConfigManager; +import com.alibaba.polardbx.optimizer.utils.OptimizerHelper; +import org.junit.Test; +import org.mockito.Mock; +import org.mockito.MockedConstruction; +import org.mockito.MockedStatic; +import org.mockito.Mockito; + +import java.util.Calendar; +import java.util.GregorianCalendar; + +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyLong; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.spy; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +/** + * Created by luoyanxin. + * + * @author luoyanxin + */ +public class RebalanceDdlPlanManagerTest { + + @Test + // 测试INIT状态 + public void testOnInit() { + try (MockedStatic mockedInstConfUtil = Mockito.mockStatic(InstConfUtil.class); + MockedStatic mockedMetaDbUtil = Mockito.mockStatic(MetaDbUtil.class); + MockedConstruction mockedDdlPlanAccessor = Mockito.mockConstruction(DdlPlanAccessor.class, + (mockObj, context) -> { + Mockito.when(mockObj.queryForUpdate(anyLong())) + .thenReturn(mock(DdlPlanRecord.class)); + });) { + mockedInstConfUtil.when(() -> InstConfUtil.isInRebalanceMaintenanceTimeWindow()) + .thenReturn(false).thenReturn(true); + DdlPlanRecord ddlPlanRecord = + DdlPlanRecord.constructNewDdlPlanRecord("test", 1L, "REBALANCE", "REBALANCE DATABASE"); + RebalanceDdlPlanManager manager = spy(new RebalanceDdlPlanManager()); + manager.process(ddlPlanRecord); + Mockito.doNothing().when(manager).onInit(any(DdlPlanRecord.class)); + manager.process(ddlPlanRecord); + } + } + + @Test + // EXECUTING + public void testOnExecuting() { + try (MockedStatic mockedInstConfUtil = Mockito.mockStatic(InstConfUtil.class); + MockedStatic mockedMetaDbUtil = Mockito.mockStatic(MetaDbUtil.class); + ) { + mockedInstConfUtil.when(() -> InstConfUtil.isInRebalanceMaintenanceTimeWindow()) + .thenReturn(false).thenReturn(true); + DdlPlanRecord ddlPlanRecord = + DdlPlanRecord.constructNewDdlPlanRecord("test", 1L, "REBALANCE", "REBALANCE DATABASE"); + ddlPlanRecord.setJobId(123l); + ddlPlanRecord.setState("EXECUTING"); + RebalanceDdlPlanManager manager = spy(new RebalanceDdlPlanManager()); + Mockito.doNothing().when(manager).terminateRebalanceJob(any(DdlPlanRecord.class)); + manager.process(ddlPlanRecord); + Mockito.doNothing().when(manager).onExecuting(any(DdlPlanRecord.class)); + manager.process(ddlPlanRecord); + } + } + + @Test + // PAUSE_ON_NON_MAINTENANCE_WINDOW + public void testOnPauseOnNonMaintenanceWindow() { + DdlEngineRecord ddlEngineRecord = new DdlEngineRecord(); + ddlEngineRecord.state = "RUNNING"; + ddlEngineRecord.jobId = 123l; + try (MockedStatic mockedInstConfUtil = Mockito.mockStatic(InstConfUtil.class); + MockedStatic mockedMetaDbUtil = Mockito.mockStatic(MetaDbUtil.class); + MockedStatic mockedOptimizerHelper = Mockito.mockStatic(OptimizerHelper.class); + MockedConstruction DdlJobManager = Mockito.mockConstruction(DdlJobManager.class, + (mockObj, context) -> { + Mockito.when(mockObj.fetchRecordByJobId(anyLong())) + .thenReturn(null).thenReturn(ddlEngineRecord).thenReturn(ddlEngineRecord); + });) { + mockedOptimizerHelper.when(() -> OptimizerHelper.getServerConfigManager()) + .thenReturn(mock(DefaultServerConfigManager.class)); + mockedInstConfUtil.when(() -> InstConfUtil.isInRebalanceMaintenanceTimeWindow()) + .thenReturn(false).thenReturn(false).thenReturn(true).thenReturn(false); + DdlPlanRecord ddlPlanRecord = + DdlPlanRecord.constructNewDdlPlanRecord("test", 1L, "REBALANCE", "REBALANCE DATABASE"); + ddlPlanRecord.setJobId(123l); + ddlPlanRecord.setState("PAUSE_ON_NON_MAINTENANCE_WINDOW"); + RebalanceDdlPlanManager manager = spy(new RebalanceDdlPlanManager()); + manager.process(ddlPlanRecord); + manager.process(ddlPlanRecord); + Mockito.doNothing().when(manager).onExecuting(any(DdlPlanRecord.class)); + manager.process(ddlPlanRecord); + ddlPlanRecord.setJobId(-1l); + manager.process(ddlPlanRecord); + } + } + + @Test + public void testIsInMaintenanceTimeWindow() { + try (MockedStatic mockedInstConfUtil = Mockito.mockStatic(InstConfUtil.class);) { + mockedInstConfUtil.when(() -> InstConfUtil.isInRebalanceMaintenanceTimeWindow()).thenCallRealMethod(); + mockedInstConfUtil.when(() -> InstConfUtil.isInRebalanceMaintenanceTimeWindow(any(StringConfigParam.class), + any(StringConfigParam.class), any( + BooleanConfigParam.class))).thenCallRealMethod(); + mockedInstConfUtil.when(() -> InstConfUtil.isInMaintenanceTimeWindow(any(GregorianCalendar.class), + any(StringConfigParam.class), any(StringConfigParam.class))).thenCallRealMethod(); + + mockedInstConfUtil.when(() -> InstConfUtil.getBool(any())).thenReturn(false).thenReturn(true); + Assert.assertTrue(InstConfUtil.isInRebalanceMaintenanceTimeWindow()); + InstConfUtil.isInRebalanceMaintenanceTimeWindow(); + InstConfUtil.isInMaintenanceTimeWindow(); + + Assert.assertTrue( + InstConfUtil.isInRebalanceMaintenanceTimeWindow(ConnectionParams.REBALANCE_MAINTENANCE_TIME_START, + ConnectionParams.REBALANCE_MAINTENANCE_TIME_END, ConnectionParams.REBALANCE_MAINTENANCE_ENABLE)); + + Assert.assertTrue( + InstConfUtil.isInRebalanceMaintenanceTimeWindow(ConnectionParams.REBALANCE_MAINTENANCE_TIME_START, + ConnectionParams.REBALANCE_MAINTENANCE_TIME_END, + new BooleanConfigParam("REBALANCE_MAINTENANCE_ENABLE", false, true))); + + Assert.assertTrue( + InstConfUtil.isInRebalanceMaintenanceTimeWindow(ConnectionParams.REBALANCE_MAINTENANCE_TIME_START, + ConnectionParams.REBALANCE_MAINTENANCE_TIME_END, + new BooleanConfigParam("REBALANCE_MAINTENANCE_ENABLE", true, true))); + + MetaDbInstConfigManager.setConfigFromMetaDb(false); + + mockedInstConfUtil.when(() -> InstConfUtil.getOriginVal(any())).thenCallRealMethod(); + mockedInstConfUtil.when(() -> InstConfUtil.getBool(any())).thenCallRealMethod(); + mockedInstConfUtil.when(() -> InstConfUtil.getMinute(any())).thenCallRealMethod(); + + Assert.assertTrue( + !InstConfUtil.isInRebalanceMaintenanceTimeWindow( + new StringConfigParam(ConnectionProperties.REBALANCE_MAINTENANCE_TIME_START, "00:00:00", true), + new StringConfigParam(ConnectionProperties.REBALANCE_MAINTENANCE_TIME_END, "xxx", true) + , new BooleanConfigParam("REBALANCE_MAINTENANCE_ENABLE", true, true))); + + Calendar calendar = Calendar.getInstance(); + InstConfUtil.isInMaintenanceTimeWindow(calendar, + new StringConfigParam(ConnectionProperties.REBALANCE_MAINTENANCE_TIME_START, "00:00:00", true), + new StringConfigParam(ConnectionProperties.REBALANCE_MAINTENANCE_TIME_END, "-01:00:00", true)); + } + } +} \ No newline at end of file diff --git a/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/physicalbackfill/physicalbackfillUtilsTest.java b/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/physicalbackfill/physicalbackfillUtilsTest.java new file mode 100644 index 000000000..16a4b47f7 --- /dev/null +++ b/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/physicalbackfill/physicalbackfillUtilsTest.java @@ -0,0 +1,233 @@ +package com.alibaba.polardbx.executor.physicalbackfill; + +import static org.mockito.Mockito.*; +import static org.mockito.Mockito.mock; + +import com.alibaba.polardbx.common.utils.Pair; +import com.alibaba.polardbx.gms.metadb.misc.DdlEngineAccessor; +import com.alibaba.polardbx.gms.topology.DbGroupInfoRecord; +import com.alibaba.polardbx.optimizer.config.table.ScaleOutPlanUtil; +import com.alibaba.polardbx.optimizer.context.ExecutionContext; +import org.junit.After; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.mockito.MockedConstruction; +import org.mockito.MockedStatic; +import org.mockito.Mockito; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created by luoyanxin. + * + * @author luoyanxin + */ +//@RunWith(PowerMockRunner.class) +//@PowerMockIgnore("javax.management.*") +//@PrepareForTest({PhysicalBackfillUtils.class, PhysicalBackfillManager.class, ScaleOutPlanUtil.class}) +public class physicalbackfillUtilsTest { + + @Test + // 测试backfillId非空,tableSchema非空,tableName非空,type=2,查询到一个回填对象记录 + public void testRollbackCopyIbd_withTypeTwo() throws Exception { + Long backfillId = 1709745034997297152L; + String tableSchema = "d1"; + String tableName = "t1"; + int type = 2; + ExecutionContext ec = mock(ExecutionContext.class); + + List backfillObjectRecords = new ArrayList<>(); + backfillObjectRecords.add(mockBackfillObjectRecord()); + + DbGroupInfoRecord dbGroupInfoRecord = mock(DbGroupInfoRecord.class); + dbGroupInfoRecord.groupType = 0; + dbGroupInfoRecord.groupName = "d1_p00000_group"; + dbGroupInfoRecord.phyDbName = "d1_p00000"; + + try (MockedStatic mockedScaleOutPlanUtil = Mockito.mockStatic(ScaleOutPlanUtil.class); + MockedStatic mockedPhysicalBackfillUtils = Mockito.mockStatic( + PhysicalBackfillUtils.class); + MockedConstruction mocked = Mockito.mockConstruction(PhysicalBackfillManager.class, + (mock, context) -> { + Mockito.when(mock.queryBackfillObject(backfillId, tableSchema, tableName)) + .thenReturn(backfillObjectRecords); + })) { + + mockedScaleOutPlanUtil.when(() -> ScaleOutPlanUtil.getDbGroupInfoByGroupName(Mockito.anyString())) + .thenReturn(dbGroupInfoRecord); + + mockedPhysicalBackfillUtils.when(() -> PhysicalBackfillUtils.deleteInnodbDataFile( + anyString(), + anyString(), + anyString(), + anyString(), + anyInt(), + anyString(), + anyBoolean(), + any(ExecutionContext.class))) + .thenAnswer(invocation -> null); // 对于 void 方法使用 thenAnswer 回调并返回 null + + // Call the actual method that triggers the static method call + //PowerMockito.doCallRealMethod().when(PhysicalBackfillUtils.class, "rollbackCopyIbd", backfillId, tableSchema, tableName, type, ec); + + mockedPhysicalBackfillUtils.when( + () -> PhysicalBackfillUtils.rollbackCopyIbd(backfillId, tableSchema, tableName, type, ec)) + .thenCallRealMethod(); + + mockedPhysicalBackfillUtils.when( + () -> PhysicalBackfillUtils.deleteInnodbDataFiles(anyString(), any(Pair.class), anyString(), + anyString(), anyString(), anyBoolean(), any(ExecutionContext.class))).thenCallRealMethod() + .thenCallRealMethod(); + + PhysicalBackfillUtils.rollbackCopyIbd(backfillId, tableSchema, tableName, type, ec); + + // 验证 staticMethod 被正确的用参数调用 + mockedScaleOutPlanUtil.verify(() -> ScaleOutPlanUtil.getDbGroupInfoByGroupName(Mockito.anyString()), + Mockito.times(1)); + mockedPhysicalBackfillUtils.verify( + () -> PhysicalBackfillUtils.deleteInnodbDataFile(Mockito.anyString(), Mockito.anyString(), + Mockito.anyString(), Mockito.anyString(), Mockito.anyInt(), Mockito.anyString(), + Mockito.anyBoolean(), Mockito.any(ExecutionContext.class)), Mockito.times(2)); + } + } + + @Test + // 测试backfillId非空,tableSchema非空,tableName非空,type=1,查询到一个回填对象记录 + public void testRollbackCopyIbd_withTypeOne() throws Exception { + Long backfillId = 1709745034997297152L; + String tableSchema = "d1"; + String tableName = "t1"; + int type = 1; + ExecutionContext ec = mock(ExecutionContext.class); + + List backfillObjectRecords = new ArrayList<>(); + backfillObjectRecords.add(mockBackfillObjectRecord()); + + DbGroupInfoRecord dbGroupInfoRecord = mock(DbGroupInfoRecord.class); + dbGroupInfoRecord.groupType = 0; + dbGroupInfoRecord.groupName = "d1_p00000_group"; + dbGroupInfoRecord.phyDbName = "d1_p00000"; + + try (MockedStatic mockedScaleOutPlanUtil = Mockito.mockStatic(ScaleOutPlanUtil.class); + MockedStatic mockedPhysicalBackfillUtils = Mockito.mockStatic( + PhysicalBackfillUtils.class); + MockedConstruction mocked = Mockito.mockConstruction(PhysicalBackfillManager.class, + (mock, context) -> { + Mockito.when(mock.queryBackfillObject(backfillId, tableSchema, tableName)) + .thenReturn(backfillObjectRecords); + })) { + + mockedScaleOutPlanUtil.when(() -> ScaleOutPlanUtil.getDbGroupInfoByGroupName(Mockito.anyString())) + .thenReturn(dbGroupInfoRecord); + + mockedPhysicalBackfillUtils.when(() -> PhysicalBackfillUtils.deleteInnodbDataFile( + anyString(), + anyString(), + anyString(), + anyString(), + anyInt(), + anyString(), + anyBoolean(), + any(ExecutionContext.class))) + .thenAnswer(invocation -> null); // 对于 void 方法使用 thenAnswer 回调并返回 null + + // Call the actual method that triggers the static method call + //PowerMockito.doCallRealMethod().when(PhysicalBackfillUtils.class, "rollbackCopyIbd", backfillId, tableSchema, tableName, type, ec); + + mockedPhysicalBackfillUtils.when( + () -> PhysicalBackfillUtils.rollbackCopyIbd(backfillId, tableSchema, tableName, type, ec)) + .thenCallRealMethod(); + + mockedPhysicalBackfillUtils.when( + () -> PhysicalBackfillUtils.deleteInnodbDataFiles(anyString(), any(Pair.class), anyString(), + anyString(), anyString(), anyBoolean(), any(ExecutionContext.class))).thenCallRealMethod() + .thenCallRealMethod(); + + PhysicalBackfillUtils.rollbackCopyIbd(backfillId, tableSchema, tableName, type, ec); + + // 验证 staticMethod 被正确的用参数调用 + mockedScaleOutPlanUtil.verify(() -> ScaleOutPlanUtil.getDbGroupInfoByGroupName(Mockito.anyString()), + Mockito.times(0)); + mockedPhysicalBackfillUtils.verify( + () -> PhysicalBackfillUtils.deleteInnodbDataFile(Mockito.anyString(), Mockito.anyString(), + Mockito.anyString(), Mockito.anyString(), Mockito.anyInt(), Mockito.anyString(), + Mockito.anyBoolean(), Mockito.any(ExecutionContext.class)), Mockito.times(1)); + } + } + + @Test + // 测试正常情况,ibd文件名包含IBD但不包含TEMP_FILE_POSTFIX + public void testConvertToCfgFileName_normal() { + Assert.assertEquals("test.cfg", PhysicalBackfillUtils.convertToCfgFileName("test.ibd", "cfg")); + } + + @Test + // 测试临时文件情况,ibd文件名同时包含IBD和TEMP_FILE_POSTFIX + public void testConvertToCfgFileName_tempFile() { + Assert.assertEquals("test.cfg.TEMPFILE", + PhysicalBackfillUtils.convertToCfgFileName("test.ibd.TEMPFILE", "cfg")); + } + + @Test + // 测试空字符串输入 + public void testConvertToCfgFileName_emptyString() { + try { + PhysicalBackfillUtils.convertToCfgFileName("", ".cfg"); + Assert.fail("Expected an AssertionError to be thrown"); + } catch (AssertionError e) { + Assert.assertTrue(true); + } + } + + @Test + // 测试不含IBD的文件名 + public void testConvertToCfgFileName_withoutIBD() { + try { + Assert.assertEquals("test.cfg", PhysicalBackfillUtils.convertToCfgFileName("test", ".cfg")); + Assert.fail("Expected an AssertionError to be thrown"); + } catch (AssertionError e) { + Assert.assertTrue(true); + } + + } + + @Test + // 测试ibdIndex为-1的情况 + public void testConvertToCfgFileName_ibdIndexMinusOne() { + try { + PhysicalBackfillUtils.convertToCfgFileName("test_IBD-", ".cfg"); + Assert.fail("Expected an AssertionError to be thrown"); + } catch (AssertionError e) { + Assert.assertTrue(true); + } + } + + private PhysicalBackfillManager.BackfillObjectRecord mockBackfillObjectRecord() { + PhysicalBackfillManager.BackfillObjectRecord record = new PhysicalBackfillManager.BackfillObjectRecord(); + record.setJobId(1709745034997297152l); + record.setTableSchema("d1"); + record.setTableName("t1"); + record.setIndexSchema("d1"); + record.setIndexName("t1"); + record.setPhysicalDb("d1_p00000"); + record.setPhysicalTable("t1_za6v_00000"); + record.setSourceGroupName("d1_p00000_group"); + record.setTargetGroupName("d1_p00001_group"); + record.setSourceFileName("d1_p00000/t1_za6v_00000"); + record.setSourceDirName("./d1_p00000/t1_za6v_00000.ibd.TEMPFILE"); + record.setTargetFileName("d1_p00001/t1_za6v_00000"); + record.setTargetDirName("./d1_p00001/t1_za6v_00000.ibd.TEMPFILE"); + record.setStatus(2); + record.setDetailInfo( + "{\"msg\":\"\",\"sourceHostAndPort\":{\"key\":\"26.12.155.86\",\"value\":31159},\"targetHostAndPorts\":[{\"key\":\"11.112.141.109\",\"value\":31175},{\"key\":\"26.12.156.152\",\"value\":31096}]}"); + record.setTotalBatch(2); + record.setBatchSize(65536); + record.setOffset(2); + record.setStartTime("2024-03-27 17:10:43"); + record.setEndTime("2024-03-27 17:10:43"); + record.setLsn(0); + return record; + } +} diff --git a/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/statistics/SketchByColumnarTest.java b/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/statistics/SketchByColumnarTest.java new file mode 100644 index 000000000..49443f4e8 --- /dev/null +++ b/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/statistics/SketchByColumnarTest.java @@ -0,0 +1,113 @@ +package com.alibaba.polardbx.executor.statistics; + +import com.alibaba.polardbx.common.properties.BooleanConfigParam; +import com.alibaba.polardbx.common.properties.ConnectionParams; +import com.alibaba.polardbx.common.properties.ParamManager; +import com.alibaba.polardbx.executor.statistic.ndv.NDVShardSketch; +import com.alibaba.polardbx.gms.config.impl.InstConfUtil; +import com.alibaba.polardbx.optimizer.context.ExecutionContext; +import org.junit.Test; +import org.mockito.MockedStatic; +import org.mockito.Mockito; + +import static com.google.common.truth.Truth.assertThat; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +public class SketchByColumnarTest { + + @Test + public void testGenColumnarHllHintWithoutEc() { + + try (MockedStatic instConfUtilMockedStatic = Mockito.mockStatic(InstConfUtil.class)) { + instConfUtilMockedStatic.when(() -> InstConfUtil.getBool(any(BooleanConfigParam.class))).thenReturn(false); + assertThat(NDVShardSketch.genColumnarHllHint(null)).isNull(); + } + + try (MockedStatic instConfUtilMockedStatic = Mockito.mockStatic(InstConfUtil.class)) { + instConfUtilMockedStatic.when(() -> InstConfUtil.getBool(any(BooleanConfigParam.class))).thenAnswer( + invocation -> { + BooleanConfigParam param = invocation.getArgument(0); + if (param.equals(ConnectionParams.ENABLE_NDV_USE_COLUMNAR)) { + return true; + } + return false; + } + ); + + String hint = NDVShardSketch.genColumnarHllHint(null); + assertThat(hint).isNotEmpty(); + assertThat(hint).contains("ENABLE_DIRECT_PLAN=false"); + assertThat(hint).doesNotContain("ENABLE_HTAP"); + } + + try (MockedStatic instConfUtilMockedStatic = Mockito.mockStatic(InstConfUtil.class)) { + instConfUtilMockedStatic.when(() -> InstConfUtil.getBool(any(BooleanConfigParam.class))).thenAnswer( + invocation -> { + BooleanConfigParam param = invocation.getArgument(0); + if (param.equals(ConnectionParams.ENABLE_MPP_NDV_USE_COLUMNAR)) { + return true; + } + return false; + } + ); + + String hint = NDVShardSketch.genColumnarHllHint(null); + assertThat(hint).isNotEmpty(); + assertThat(hint).contains("ENABLE_DIRECT_PLAN=false"); + assertThat(hint).contains("ENABLE_HTAP=true"); + } + } + + @Test + public void testGenColumnarHllHint() { + ExecutionContext ec = mock(ExecutionContext.class); + ParamManager pm = mock(ParamManager.class); + Mockito.when(ec.getParamManager()).thenReturn(pm); + + when(pm.getBoolean(any(BooleanConfigParam.class))).thenReturn(false); + assertThat(NDVShardSketch.genColumnarHllHint(ec)).isNull(); + + // enable ENABLE_NDV_USE_COLUMNAR + when(pm.getBoolean(any(BooleanConfigParam.class))).thenAnswer( + invocation -> { + BooleanConfigParam param = invocation.getArgument(0); + if (param.equals(ConnectionParams.ENABLE_NDV_USE_COLUMNAR)) { + return true; + } + return false; + }); + + String hint; + hint = NDVShardSketch.genColumnarHllHint(ec); + assertThat(NDVShardSketch.genColumnarHllHint(ec)).isNotEmpty(); + assertThat(hint).doesNotContain("ENABLE_HTAP"); + assertThat(hint).doesNotContain("ENABLE_MASTER_MPP"); + + when(pm.getBoolean(any(BooleanConfigParam.class))).thenAnswer( + invocation -> { + BooleanConfigParam param = invocation.getArgument(0); + if (param.equals(ConnectionParams.ENABLE_MPP_NDV_USE_COLUMNAR)) { + return true; + } + return false; + }); + hint = NDVShardSketch.genColumnarHllHint(ec); + assertThat(hint).contains("ENABLE_MASTER_MPP=true"); + + when(pm.getBoolean(any(BooleanConfigParam.class))).thenAnswer( + invocation -> { + BooleanConfigParam param = invocation.getArgument(0); + if (param.equals(ConnectionParams.ENABLE_NDV_USE_COLUMNAR)) { + return true; + } + if (param.equals(ConnectionParams.ENABLE_MPP_NDV_USE_COLUMNAR)) { + return true; + } + return false; + }); + hint = NDVShardSketch.genColumnarHllHint(ec); + assertThat(hint).contains("ENABLE_MASTER_MPP=true"); + } +} diff --git a/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/statistics/StatisticManagerTest.java b/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/statistics/StatisticManagerTest.java index dc51047c7..de1024efc 100644 --- a/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/statistics/StatisticManagerTest.java +++ b/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/statistics/StatisticManagerTest.java @@ -8,6 +8,7 @@ import com.alibaba.polardbx.optimizer.core.datatype.DataTypeUtil; import org.junit.Assert; import org.junit.Before; +import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.MockedStatic; @@ -19,14 +20,15 @@ import static org.mockito.ArgumentMatchers.anyBoolean; import static org.mockito.ArgumentMatchers.anyString; -@RunWith(MockitoJUnitRunner.class) +//@RunWith(MockitoJUnitRunner.class) +@Ignore public class StatisticManagerTest { @Before public void setMetaDBInfo() { MetaDbInstConfigManager.setConfigFromMetaDb(false); } - @Test + @Ignore public void statisticStringTruncatedTest() { final int DATA_MAX_LEN = StatisticUtils.DATA_MAX_LEN; diff --git a/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/test/ParameterContextJSONTest.java b/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/test/ParameterContextJSONTest.java index 885121c95..70e759463 100644 --- a/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/test/ParameterContextJSONTest.java +++ b/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/test/ParameterContextJSONTest.java @@ -188,7 +188,6 @@ public void testPruneRawStringListList() throws JsonProcessingException { Assert.assertTrue(target.getObjList().size() == 1); Assert.assertTrue(target.getObj(0, 0).equals("1234")); Assert.assertTrue(target.getObj(0, 1).toString().equals("4.6")); - Assert.assertTrue(target.toString().equals(source.toString())); Assert.assertTrue(target.buildRawString().equals(source.buildRawString())); } diff --git a/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/vectorized/compare/LikeVarcharColCharConstVectorizedExpressionTest.java b/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/vectorized/compare/LikeVarcharColCharConstVectorizedExpressionTest.java new file mode 100644 index 000000000..9dbaca35d --- /dev/null +++ b/polardbx-executor/src/test/java/com/alibaba/polardbx/executor/vectorized/compare/LikeVarcharColCharConstVectorizedExpressionTest.java @@ -0,0 +1,380 @@ +package com.alibaba.polardbx.executor.vectorized.compare; + +import com.alibaba.polardbx.common.charset.CollationName; +import com.alibaba.polardbx.executor.chunk.Block; +import com.alibaba.polardbx.executor.chunk.Chunk; +import com.alibaba.polardbx.executor.chunk.LongBlock; +import com.alibaba.polardbx.executor.chunk.MutableChunk; +import com.alibaba.polardbx.executor.chunk.ObjectBlockBuilder; +import com.alibaba.polardbx.executor.chunk.RandomAccessBlock; +import com.alibaba.polardbx.executor.chunk.ReferenceBlock; +import com.alibaba.polardbx.executor.chunk.SliceBlock; +import com.alibaba.polardbx.executor.chunk.SliceBlockBuilder; +import com.alibaba.polardbx.executor.vectorized.EvaluationContext; +import com.alibaba.polardbx.executor.vectorized.InputRefVectorizedExpression; +import com.alibaba.polardbx.executor.vectorized.LiteralVectorizedExpression; +import com.alibaba.polardbx.executor.vectorized.VectorizedExpression; +import com.alibaba.polardbx.executor.vectorized.compare.LikeVarcharColCharConstVectorizedExpression; +import com.alibaba.polardbx.optimizer.context.ExecutionContext; +import com.alibaba.polardbx.optimizer.core.datatype.DataTypes; +import com.alibaba.polardbx.optimizer.core.datatype.SliceType; +import io.airlift.slice.Slices; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +@RunWith(Parameterized.class) +public class LikeVarcharColCharConstVectorizedExpressionTest { + + private final int count = 10; + private final String[] strs = new String[] { + "abc", "aabbcc", "acb", "bacdabc", "zxcvb", + "aaabccccdd", "ccbbaacb", "a1b1c1", "a比c", null}; + private ExecutionContext context; + + public LikeVarcharColCharConstVectorizedExpressionTest(boolean ossCompatible) { + this.context = new ExecutionContext(); + context.getParamManager().getProps().put("ENABLE_OSS_COMPATIBLE", Boolean.toString(ossCompatible)); + } + + @Parameterized.Parameters(name = "ossCompatible={0}") + public static List generateParameters() { + List list = new ArrayList<>(); + list.add(new Object[] {true}); + list.add(new Object[] {false}); + return list; + } + + @Before + public void before() { + Assert.assertEquals(count, strs.length); + } + + @Test + public void testSliceWithLatin1Match() { + SliceBlockBuilder sliceBlockBuilder = + new SliceBlockBuilder(new SliceType(CollationName.LATIN1_BIN), count, context, true); + for (String s : strs) { + if (s == null) { + sliceBlockBuilder.appendNull(); + } else { + sliceBlockBuilder.writeString(s); + } + } + SliceBlock sliceBlock = (SliceBlock) sliceBlockBuilder.build(); + Chunk inputChunk = new Chunk(sliceBlock.getPositionCount(), sliceBlock); + + LongBlock expectBlock = LongBlock.of(1L, 0L, 0L, 1L, 0L, 1L, 0L, 0L, 0L, null); + + doTest(inputChunk, expectBlock, "%abc%", null); + } + + @Test + public void testSliceWithLatin1SubStrMatch() { + SliceBlockBuilder sliceBlockBuilder = new SliceBlockBuilder(new SliceType(), count, context, true); + for (String s : strs) { + if (s == null) { + sliceBlockBuilder.appendNull(); + } else { + sliceBlockBuilder.writeString(s); + } + } + SliceBlock sliceBlock = (SliceBlock) sliceBlockBuilder.build(); + Chunk inputChunk = new Chunk(sliceBlock.getPositionCount(), sliceBlock); + + LongBlock expectBlock = LongBlock.of(1L, 0L, 0L, 1L, 0L, 1L, 0L, 0L, 0L, null); + + doTest(inputChunk, expectBlock, "%abc%", null); + } + + @Test + public void testSliceWithLatin1SubStrMatch2() { + SliceBlockBuilder sliceBlockBuilder = new SliceBlockBuilder(new SliceType(), count, context, true); + for (String s : strs) { + if (s == null) { + sliceBlockBuilder.appendNull(); + } else { + sliceBlockBuilder.writeString(s); + } + } + SliceBlock sliceBlock = (SliceBlock) sliceBlockBuilder.build(); + Chunk inputChunk = new Chunk(sliceBlock.getPositionCount(), sliceBlock); + + LongBlock expectBlock = LongBlock.of(0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, null); + + doTest(inputChunk, expectBlock, "%aaa%", null); + } + + @Test + public void testSliceWithLatin1SubStrMatch3() { + int[] sel = new int[] {0, 1, 2, 3, 4, 5, 8, 9}; + SliceBlockBuilder sliceBlockBuilder = new SliceBlockBuilder(new SliceType(), count, context, true); + for (String s : strs) { + if (s == null) { + sliceBlockBuilder.appendNull(); + } else { + sliceBlockBuilder.writeString(s); + } + } + SliceBlock sliceBlock = (SliceBlock) sliceBlockBuilder.build(); + Chunk inputChunk = new Chunk(sliceBlock.getPositionCount(), sliceBlock); + + LongBlock expectBlock = LongBlock.of(0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, null); + + doTest(inputChunk, expectBlock, "%aaa%", sel); + } + + @Test + public void testSliceWithSubStrMatch() { + SliceBlockBuilder sliceBlockBuilder = new SliceBlockBuilder(new SliceType(), count, context, true); + for (String s : strs) { + if (s == null) { + sliceBlockBuilder.appendNull(); + } else { + sliceBlockBuilder.writeString(s); + } + } + SliceBlock sliceBlock = (SliceBlock) sliceBlockBuilder.build(); + Chunk inputChunk = new Chunk(sliceBlock.getPositionCount(), sliceBlock); + + LongBlock expectBlock = LongBlock.of(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, null); + + doTest(inputChunk, expectBlock, "%a比c%", null); + } + + @Test + public void testSliceWitWildcardMatch() { + SliceBlockBuilder sliceBlockBuilder = new SliceBlockBuilder(new SliceType(), count, context, true); + for (String s : strs) { + if (s == null) { + sliceBlockBuilder.appendNull(); + } else { + sliceBlockBuilder.writeString(s); + } + } + SliceBlock sliceBlock = (SliceBlock) sliceBlockBuilder.build(); + Chunk inputChunk = new Chunk(sliceBlock.getPositionCount(), sliceBlock); + + LongBlock expectBlock = LongBlock.of(1L, 0L, 0L, 1L, 0L, 1L, 1L, 0L, 1L, null); + + doTest(inputChunk, expectBlock, "%a_c%", null); + } + + @Test + public void testSliceWithSuffixMatch() { + SliceBlockBuilder sliceBlockBuilder = new SliceBlockBuilder(new SliceType(), count, context, true); + for (String s : strs) { + if (s == null) { + sliceBlockBuilder.appendNull(); + } else { + sliceBlockBuilder.writeString(s); + } + } + SliceBlock sliceBlock = (SliceBlock) sliceBlockBuilder.build(); + Chunk inputChunk = new Chunk(sliceBlock.getPositionCount(), sliceBlock); + + LongBlock expectBlock = LongBlock.of(1L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, null); + + doTest(inputChunk, expectBlock, "%abc", null); + } + + @Test + public void testSliceWithSuffixMatchAndSelection() { + int[] sel = new int[] {0, 1, 2, 3, 4, 5, 8, 9}; + SliceBlockBuilder sliceBlockBuilder = new SliceBlockBuilder(new SliceType(), count, context, true); + for (String s : strs) { + if (s == null) { + sliceBlockBuilder.appendNull(); + } else { + sliceBlockBuilder.writeString(s); + } + } + SliceBlock sliceBlock = (SliceBlock) sliceBlockBuilder.build(); + Chunk inputChunk = new Chunk(sliceBlock.getPositionCount(), sliceBlock); + + LongBlock expectBlock = LongBlock.of(1L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, null); + + doTest(inputChunk, expectBlock, "%abc", sel); + } + + @Test + public void testRef() { + ObjectBlockBuilder objectBlockBuilder = new ObjectBlockBuilder(count); + for (String s : strs) { + if (s == null) { + objectBlockBuilder.appendNull(); + } else { + objectBlockBuilder.writeObject(Slices.utf8Slice(s)); + } + } + ReferenceBlock strBlock = (ReferenceBlock) objectBlockBuilder.build(); + Chunk inputChunk = new Chunk(strBlock.getPositionCount(), strBlock); + + LongBlock expectBlock = LongBlock.of(1L, 0L, 0L, 1L, 0L, 1L, 0L, 0L, 0L, null); + + doTest(inputChunk, expectBlock, "%abc%", null); + } + + @Test + public void testRefWithSel() { + int[] sel = new int[] {0, 1, 2, 4, 5, 9}; + ObjectBlockBuilder objectBlockBuilder = new ObjectBlockBuilder(count); + for (String s : strs) { + if (s == null) { + objectBlockBuilder.appendNull(); + } else { + objectBlockBuilder.writeObject(Slices.utf8Slice(s)); + } + } + ReferenceBlock strBlock = (ReferenceBlock) objectBlockBuilder.build(); + Chunk inputChunk = new Chunk(strBlock.getPositionCount(), strBlock); + + LongBlock expectBlock = LongBlock.of(1L, 0L, 0L, 1L, 0L, 1L, 0L, 0L, 0L, null); + + doTest(inputChunk, expectBlock, "%abc%", sel); + } + + @Test + public void testRef2() { + ObjectBlockBuilder objectBlockBuilder = new ObjectBlockBuilder(count); + for (String s : strs) { + if (s == null) { + objectBlockBuilder.appendNull(); + } else { + objectBlockBuilder.writeObject(Slices.utf8Slice(s)); + } + } + ReferenceBlock strBlock = (ReferenceBlock) objectBlockBuilder.build(); + Chunk inputChunk = new Chunk(strBlock.getPositionCount(), strBlock); + + LongBlock expectBlock = LongBlock.of(1L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, null); + + doTest(inputChunk, expectBlock, "%abc", null); + } + + @Test + public void testRefWithSel2() { + int[] sel = new int[] {0, 1, 2, 4, 5, 9}; + ObjectBlockBuilder objectBlockBuilder = new ObjectBlockBuilder(count); + for (String s : strs) { + if (s == null) { + objectBlockBuilder.appendNull(); + } else { + objectBlockBuilder.writeObject(Slices.utf8Slice(s)); + } + } + ReferenceBlock strBlock = (ReferenceBlock) objectBlockBuilder.build(); + Chunk inputChunk = new Chunk(strBlock.getPositionCount(), strBlock); + + LongBlock expectBlock = LongBlock.of(1L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, null); + + doTest(inputChunk, expectBlock, "%abc", sel); + } + + @Test + public void testNull() { + ObjectBlockBuilder objectBlockBuilder = new ObjectBlockBuilder(count); + for (String s : strs) { + if (s == null) { + objectBlockBuilder.appendNull(); + } else { + objectBlockBuilder.writeObject(Slices.utf8Slice(s)); + } + } + ReferenceBlock strBlock = (ReferenceBlock) objectBlockBuilder.build(); + Chunk inputChunk = new Chunk(strBlock.getPositionCount(), strBlock); + + LongBlock expectBlock = LongBlock.of(null, null, null, null, null, null, null, null, null, null); + + doTest(inputChunk, expectBlock, null, null); + } + + @Test + public void testNullWithSel() { + int[] sel = new int[] {0, 1, 2, 4, 5, 9}; + + ObjectBlockBuilder objectBlockBuilder = new ObjectBlockBuilder(count); + for (String s : strs) { + if (s == null) { + objectBlockBuilder.appendNull(); + } else { + objectBlockBuilder.writeObject(Slices.utf8Slice(s)); + } + } + ReferenceBlock strBlock = (ReferenceBlock) objectBlockBuilder.build(); + Chunk inputChunk = new Chunk(strBlock.getPositionCount(), strBlock); + + LongBlock expectBlock = LongBlock.of(null, null, null, null, null, null, null, null, null, null); + + doTest(inputChunk, expectBlock, null, sel); + } + + private void doTest(Chunk inputChunk, RandomAccessBlock expectBlock, String target, int[] sel) { + LikeVarcharColCharConstVectorizedExpression condition = + new LikeVarcharColCharConstVectorizedExpression( + 2, + new VectorizedExpression[] { + new InputRefVectorizedExpression(DataTypes.VarcharType, 0, 0), + new LiteralVectorizedExpression(DataTypes.CharType, target, 1) + }); + + // placeholder for input and output blocks + MutableChunk preAllocatedChunk = MutableChunk.newBuilder(context.getExecutorChunkLimit()) + .addEmptySlots(Collections.singletonList(DataTypes.VarcharType)) + .addEmptySlots(Arrays.asList(DataTypes.CharType, DataTypes.LongType)) + .addChunkLimit(context.getExecutorChunkLimit()) + .addOutputIndexes(new int[] {condition.getOutputIndex()}) + .build(); + + preAllocatedChunk.reallocate(inputChunk.getPositionCount(), inputChunk.getBlockCount(), false); + + // Prepare selection array for evaluation. + if (sel != null) { + preAllocatedChunk.setBatchSize(sel.length); + preAllocatedChunk.setSelection(sel); + preAllocatedChunk.setSelectionInUse(true); + } else { + preAllocatedChunk.setBatchSize(inputChunk.getPositionCount()); + preAllocatedChunk.setSelection(null); + preAllocatedChunk.setSelectionInUse(false); + } + + for (int i = 0; i < inputChunk.getBlockCount(); i++) { + Block block = inputChunk.getBlock(i); + preAllocatedChunk.setSlotAt(block.cast(RandomAccessBlock.class), i); + } + + // Do evaluation + EvaluationContext evaluationContext = new EvaluationContext(preAllocatedChunk, context); + condition.eval(evaluationContext); + + // check resultBlock + RandomAccessBlock resultBlock = preAllocatedChunk.slotIn(condition.getOutputIndex()); + + if (sel != null) { + for (int i = 0; i < sel.length; i++) { + int j = sel[i]; + if (((Block) expectBlock).isNull(j)) { + Assert.assertTrue("Failed at pos: " + j, ((Block) resultBlock).isNull(j)); + continue; + } + Assert.assertEquals("Failed at pos: " + j, expectBlock.elementAt(j), resultBlock.elementAt(j)); + } + } else { + for (int i = 0; i < inputChunk.getPositionCount(); i++) { + if (((Block) expectBlock).isNull(i)) { + Assert.assertTrue("Failed at pos: " + i, ((Block) resultBlock).isNull(i)); + continue; + } + Assert.assertEquals("Failed at pos: " + i, expectBlock.elementAt(i), resultBlock.elementAt(i)); + } + } + } +} diff --git a/polardbx-executor/src/test/java/com/alibaba/polardbx/repo/mysql/handler/ColumnarCheckTableTest.java b/polardbx-executor/src/test/java/com/alibaba/polardbx/repo/mysql/handler/ColumnarCheckTableTest.java new file mode 100644 index 000000000..61c741772 --- /dev/null +++ b/polardbx-executor/src/test/java/com/alibaba/polardbx/repo/mysql/handler/ColumnarCheckTableTest.java @@ -0,0 +1,104 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.alibaba.polardbx.repo.mysql.handler; + +import com.alibaba.polardbx.executor.common.ExecutorContext; +import com.alibaba.polardbx.executor.cursor.impl.ArrayResultCursor; +import com.alibaba.polardbx.executor.gsi.GsiManager; +import com.alibaba.polardbx.gms.metadb.table.IndexStatus; +import com.alibaba.polardbx.gms.metadb.table.IndexVisibility; +import com.alibaba.polardbx.optimizer.config.table.GsiMetaManager; +import com.alibaba.polardbx.optimizer.context.ExecutionContext; +import org.junit.Before; +import org.junit.Test; +import org.mockito.Mock; +import org.mockito.MockedStatic; +import org.mockito.MockitoAnnotations; + +import java.lang.reflect.Method; +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; + +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.mockStatic; +import static org.mockito.Mockito.spy; +import static org.mockito.Mockito.when; + +public class ColumnarCheckTableTest { + + private final String schemaName = "schema_name"; + private final String tableName = "table_name"; + private final String indexName = "index_name"; + + private GsiMetaManager.GsiMetaBean gsiMetaBean; + + @Mock + private Map gsiTableMeta; + + @Before + public void setUp() { + MockitoAnnotations.initMocks(this); + gsiMetaBean = new GsiMetaManager.GsiMetaBean(); + gsiMetaBean.setTableMeta(gsiTableMeta); + } + + Map indexMap = new HashMap<>(); + GsiMetaManager.GsiIndexMetaBean indexMetaBean = + new GsiMetaManager.GsiIndexMetaBean(null, schemaName, tableName, true, schemaName, indexName, + Collections.emptyList(), null, null, null, null, null, null, + IndexStatus.PUBLIC, 1, true, true, IndexVisibility.VISIBLE); + + GsiMetaManager.GsiIndexMetaBean indexMetaBean1 = + new GsiMetaManager.GsiIndexMetaBean(null, schemaName, tableName, true, schemaName, indexName, + Collections.emptyList(), null, null, null, null, null, null, + IndexStatus.PUBLIC, 1, true, false, IndexVisibility.VISIBLE); + + GsiMetaManager.GsiTableMetaBean tableMetaBean = new GsiMetaManager.GsiTableMetaBean(null, + schemaName, tableName, GsiMetaManager.TableType.SHARDING, null, null, null, + null, null, null, indexMap, null, null); + + @Test + public void CheckTableWithCciTest() throws Exception { + LogicalCheckTableHandler logicalCheckTableHandler = mock(LogicalCheckTableHandler.class); + ExecutionContext executionContext = spy(new ExecutionContext()); + ExecutorContext ec = mock(ExecutorContext.class); + GsiManager gsiManager = mock(GsiManager.class); + GsiMetaManager gsiMetaManager = mock(GsiMetaManager.class); + ArrayResultCursor resultCursor = spy(new ArrayResultCursor(tableName)); + + when(ec.getGsiManager()).thenReturn(gsiManager); + when(gsiManager.getGsiMetaManager()).thenReturn(gsiMetaManager); + when(gsiMetaManager.getTableAndIndexMeta(any(), any())).thenReturn(gsiMetaBean); + + try (MockedStatic mockedEc = mockStatic(ExecutorContext.class)) { + mockedEc.when(() -> ExecutorContext.getContext(any())).thenReturn(ec); + + Method privateMethod = logicalCheckTableHandler.getClass() + .getDeclaredMethod("doCheckForOnePartTableGsi", String.class, String.class, ExecutionContext.class, + ArrayResultCursor.class); + privateMethod.setAccessible(true); + + indexMap.clear(); + indexMap.put("myIndex", indexMetaBean); + privateMethod.invoke(logicalCheckTableHandler, schemaName, tableName, executionContext, resultCursor); + } + } +} diff --git a/polardbx-executor/src/test/java/com/alibaba/polardbx/repo/mysql/handler/ddl/newengine/DdlEngineCancelJobsHandlerTest.java b/polardbx-executor/src/test/java/com/alibaba/polardbx/repo/mysql/handler/ddl/newengine/DdlEngineCancelJobsHandlerTest.java new file mode 100644 index 000000000..5b29948ba --- /dev/null +++ b/polardbx-executor/src/test/java/com/alibaba/polardbx/repo/mysql/handler/ddl/newengine/DdlEngineCancelJobsHandlerTest.java @@ -0,0 +1,86 @@ +package com.alibaba.polardbx.repo.mysql.handler.ddl.newengine; + +import com.alibaba.polardbx.common.ddl.newengine.DdlPlanState; +import com.alibaba.polardbx.common.exception.TddlNestableRuntimeException; +import com.alibaba.polardbx.common.exception.TddlRuntimeException; +import com.alibaba.polardbx.common.exception.code.ErrorCode; +import com.alibaba.polardbx.common.properties.ParamManager; +import com.alibaba.polardbx.common.utils.Assert; +import com.alibaba.polardbx.executor.ddl.newengine.meta.DdlEngineSchedulerManager; +import com.alibaba.polardbx.executor.partitionmanagement.rebalance.RebalanceDdlPlanManager; +import com.alibaba.polardbx.executor.physicalbackfill.PhysicalBackfillManager; +import com.alibaba.polardbx.executor.physicalbackfill.PhysicalBackfillUtils; +import com.alibaba.polardbx.gms.metadb.misc.DdlEngineRecord; +import com.alibaba.polardbx.gms.topology.DbInfoManager; +import com.alibaba.polardbx.optimizer.OptimizerContext; +import com.alibaba.polardbx.optimizer.config.table.ScaleOutPlanUtil; +import com.alibaba.polardbx.optimizer.context.ExecutionContext; +import com.alibaba.polardbx.repo.mysql.spi.MyRepository; +import org.junit.Test; +import org.mockito.MockedConstruction; +import org.mockito.MockedStatic; +import org.mockito.Mockito; + +import java.util.HashMap; + +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyLong; +import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.Mockito.mock; + +/** + * Created by luoyanxin. + * + * @author luoyanxin + */ +public class DdlEngineCancelJobsHandlerTest { + + @Test + public void cancelTest() + throws Exception { + DdlEngineRecord ddlEngineRecord = new DdlEngineRecord(); + ddlEngineRecord.state = "ROLLBACK_RUNNING"; + ddlEngineRecord.ddlType = "REBALANCE"; + ddlEngineRecord.ddlStmt = "REBALANCE DATABASE drain_node='dn1'"; + MyRepository repository = mock(MyRepository.class); + ExecutionContext ecMock = mock(ExecutionContext.class); + //OptimizerContext.getContext(schemaName) + // Arrange + OptimizerContext optimizerContext = new OptimizerContext("d1"); + DbInfoManager dbInfoManager = mock(DbInfoManager.class); + try (MockedConstruction mocked = Mockito.mockConstruction( + DdlEngineSchedulerManager.class, + (mock, context) -> { + Mockito.when(mock.fetchRecordByJobId(anyLong())) + .thenReturn(ddlEngineRecord); + }); MockedConstruction mockedRebalanceDdlPlanManager = Mockito.mockConstruction( + RebalanceDdlPlanManager.class, (mock, context) -> { + Mockito.doNothing().when(mock) + .updateRebalanceScheduleState(anyLong(), any(DdlPlanState.class), anyString()); + });) { + DdlEngineCancelJobsHandler ddlEngineCancelJobsHandler = new DdlEngineCancelJobsHandler(repository); + ParamManager paramManager = new ParamManager(new HashMap()); + optimizerContext.setParamManager(paramManager); + + Mockito.when(ecMock.getParamManager()).thenReturn(paramManager); + paramManager.getProps().put("CANCEL_REBALANCE_JOB_DUE_MAINTENANCE", "false"); + try { + ddlEngineCancelJobsHandler.doCancel(123l, ecMock); + } catch (TddlRuntimeException ex) { + Assert.assertTrue(ex.getMessage().contains("Only RUNNING/PAUSED jobs can be cancelled")); + } + ddlEngineRecord.ddlStmt = "REBALANCE DATABASE"; + try { + ddlEngineCancelJobsHandler.doCancel(123l, ecMock); + } catch (TddlRuntimeException ex) { + Assert.assertTrue(ex.getMessage().contains("Only RUNNING/PAUSED jobs can be cancelled")); + } + paramManager.getProps().put("CANCEL_REBALANCE_JOB_DUE_MAINTENANCE", "true"); + try { + ddlEngineCancelJobsHandler.doCancel(123l, ecMock); + } catch (TddlRuntimeException ex) { + Assert.assertTrue(ex.getMessage().contains("Only RUNNING/PAUSED jobs can be cancelled")); + } + } + } +} diff --git a/polardbx-executor/src/test/resources/com/alibaba/polardbx/executor/gms/columnar_column_evolution.yml b/polardbx-executor/src/test/resources/com/alibaba/polardbx/executor/gms/columnar_column_evolution.yml new file mode 100644 index 000000000..8552c23dd --- /dev/null +++ b/polardbx-executor/src/test/resources/com/alibaba/polardbx/executor/gms/columnar_column_evolution.yml @@ -0,0 +1,3753 @@ +- + - 1 + - 1 + - id + - 7193543211267129408 + - 1724608426958393344 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "bigint", "jdbcType": + -5, "columnKey": "PRI", "tableName": "accounts_col_index_$c9a1", "columnName": + "id", "columnType": "bigint(20)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 20, "tableSchema": "transfer", "jdbcTypeName": "BIGINT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 1, "numericPrecision": 19, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 2 + - balance + - 7193543211267129408 + - 1724608426958393344 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "balance", + "columnType": "int(11)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 2, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 3 + - version + - 7193543211267129408 + - 1724608426958393344 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "version", + "columnType": "int(11)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "0", "ordinalPosition": 3, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 4 + - gmt_modified + - 7193543211267129408 + - 1724608426958393344 + - '{"flag": 0, "extra": "on update CURRENT_TIMESTAMP", "status": 1, "version": 1, + "dataType": "datetime", "jdbcType": 93, "columnKey": "", "tableName": "accounts_col_index_$c9a1", + "columnName": "gmt_modified", "columnType": "datetime", "isNullable": "YES", "privileges": + "select,insert,update,references", "fieldLength": 19, "tableSchema": "transfer", + "jdbcTypeName": "DATETIME", "numericScale": 0, "columnComment": "", "columnDefault": + "CURRENT_TIMESTAMP", "ordinalPosition": 4, "numericPrecision": 0, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 5 + - ncol1 + - 7193543479677419648 + - 1724608695356104704 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol1", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 5, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 6 + - ncol2 + - 7193543486010818688 + - 1724608701685309440 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol2", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "999", "ordinalPosition": 1, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 1 + - id + - 7193543486010818688 + - 1724608701685309440 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "bigint", "jdbcType": + -5, "columnKey": "PRI", "tableName": "accounts_col_index_$c9a1", "columnName": + "id", "columnType": "bigint(20)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 20, "tableSchema": "transfer", "jdbcTypeName": "BIGINT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 2, "numericPrecision": 19, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 2 + - balance + - 7193543486010818688 + - 1724608701685309440 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "balance", + "columnType": "int(11)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 3, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 3 + - version + - 7193543486010818688 + - 1724608701685309440 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "version", + "columnType": "int(11)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "0", "ordinalPosition": 4, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 4 + - gmt_modified + - 7193543486010818688 + - 1724608701685309440 + - '{"flag": 0, "extra": "on update CURRENT_TIMESTAMP", "status": 1, "version": 1, + "dataType": "datetime", "jdbcType": 93, "columnKey": "", "tableName": "accounts_col_index_$c9a1", + "columnName": "gmt_modified", "columnType": "datetime", "isNullable": "YES", "privileges": + "select,insert,update,references", "fieldLength": 19, "tableSchema": "transfer", + "jdbcTypeName": "DATETIME", "numericScale": 0, "columnComment": "", "columnDefault": + "CURRENT_TIMESTAMP", "ordinalPosition": 5, "numericPrecision": 0, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 5 + - ncol1 + - 7193543486010818688 + - 1724608701685309440 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol1", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 6, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 12 + - ncol3 + - 7193543493531205696 + - 1724608709188919296 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol3", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 2, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 1 + - id + - 7193543493531205696 + - 1724608709188919296 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "bigint", "jdbcType": + -5, "columnKey": "PRI", "tableName": "accounts_col_index_$c9a1", "columnName": + "id", "columnType": "bigint(20)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 20, "tableSchema": "transfer", "jdbcTypeName": "BIGINT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 3, "numericPrecision": 19, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 2 + - balance + - 7193543493531205696 + - 1724608709188919296 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "balance", + "columnType": "int(11)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 4, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 3 + - version + - 7193543493531205696 + - 1724608709188919296 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "version", + "columnType": "int(11)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "0", "ordinalPosition": 5, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 4 + - gmt_modified + - 7193543493531205696 + - 1724608709188919296 + - '{"flag": 0, "extra": "on update CURRENT_TIMESTAMP", "status": 1, "version": 1, + "dataType": "datetime", "jdbcType": 93, "columnKey": "", "tableName": "accounts_col_index_$c9a1", + "columnName": "gmt_modified", "columnType": "datetime", "isNullable": "YES", "privileges": + "select,insert,update,references", "fieldLength": 19, "tableSchema": "transfer", + "jdbcTypeName": "DATETIME", "numericScale": 0, "columnComment": "", "columnDefault": + "CURRENT_TIMESTAMP", "ordinalPosition": 6, "numericPrecision": 0, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 5 + - ncol1 + - 7193543493531205696 + - 1724608709188919296 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol1", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 7, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 5 + - ncol1 + - 7193543500346949760 + - 1724608716004663296 + - '{"flag": 0, "extra": "", "status": 0, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol1", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 7, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 6 + - ncol2 + - 7193543510081929280 + - 1724608725844500480 + - '{"flag": 0, "extra": "", "status": 0, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol2", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "999", "ordinalPosition": 1, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 12 + - ncol3 + - 7193543510081929280 + - 1724608725844500480 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol3", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 1, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 1 + - id + - 7193543510081929280 + - 1724608725844500480 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "bigint", "jdbcType": + -5, "columnKey": "PRI", "tableName": "accounts_col_index_$c9a1", "columnName": + "id", "columnType": "bigint(20)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 20, "tableSchema": "transfer", "jdbcTypeName": "BIGINT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 2, "numericPrecision": 19, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 2 + - balance + - 7193543510081929280 + - 1724608725844500480 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "balance", + "columnType": "int(11)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 3, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 3 + - version + - 7193543510081929280 + - 1724608725844500480 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "version", + "columnType": "int(11)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "0", "ordinalPosition": 4, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 4 + - gmt_modified + - 7193543510081929280 + - 1724608725844500480 + - '{"flag": 0, "extra": "on update CURRENT_TIMESTAMP", "status": 1, "version": 1, + "dataType": "datetime", "jdbcType": 93, "columnKey": "", "tableName": "accounts_col_index_$c9a1", + "columnName": "gmt_modified", "columnType": "datetime", "isNullable": "YES", "privileges": + "select,insert,update,references", "fieldLength": 19, "tableSchema": "transfer", + "jdbcTypeName": "DATETIME", "numericScale": 0, "columnComment": "", "columnDefault": + "CURRENT_TIMESTAMP", "ordinalPosition": 5, "numericPrecision": 0, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 2 + - balance + - 7193543518810275968 + - 1724608734459600896 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "bigint", "jdbcType": + -5, "columnKey": "MUL", "tableName": "accounts_col_index_$c9a1", "columnName": + "balance", "columnType": "bigint(20)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 20, "tableSchema": "transfer", "jdbcTypeName": "BIGINT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 3, "numericPrecision": 19, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 3 + - version + - 7193543518810275968 + - 1724608734459600896 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "version", + "columnType": "int(11)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "0", "ordinalPosition": 4, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 4 + - gmt_modified + - 7193543518810275968 + - 1724608734459600896 + - '{"flag": 0, "extra": "on update CURRENT_TIMESTAMP", "status": 1, "version": 1, + "dataType": "datetime", "jdbcType": 93, "columnKey": "", "tableName": "accounts_col_index_$c9a1", + "columnName": "gmt_modified", "columnType": "datetime", "isNullable": "YES", "privileges": + "select,insert,update,references", "fieldLength": 19, "tableSchema": "transfer", + "jdbcTypeName": "DATETIME", "numericScale": 0, "columnComment": "", "columnDefault": + "CURRENT_TIMESTAMP", "ordinalPosition": 5, "numericPrecision": 0, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 2 + - balance + - 7193543524187373632 + - 1724608739840892928 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "varchar", "jdbcType": + 12, "columnKey": "MUL", "tableName": "accounts_col_index_$c9a1", "columnName": + "balance", "columnType": "varchar(20)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 80, "tableSchema": "transfer", "jdbcTypeName": "VARCHAR", "numericScale": + 0, "collationName": "utf8mb4_general_ci", "columnComment": "", "ordinalPosition": + 3, "characterSetName": "utf8mb4", "numericPrecision": 0, "datetimePrecision": + 0, "characterOctetLength": 80, "generationExpression": "", "characterMaximumLength": + 20}' +- + - 1 + - 3 + - version + - 7193543524187373632 + - 1724608739840892928 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "version", + "columnType": "int(11)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "0", "ordinalPosition": 4, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 4 + - gmt_modified + - 7193543524187373632 + - 1724608739840892928 + - '{"flag": 0, "extra": "on update CURRENT_TIMESTAMP", "status": 1, "version": 1, + "dataType": "datetime", "jdbcType": 93, "columnKey": "", "tableName": "accounts_col_index_$c9a1", + "columnName": "gmt_modified", "columnType": "datetime", "isNullable": "YES", "privileges": + "select,insert,update,references", "fieldLength": 19, "tableSchema": "transfer", + "jdbcTypeName": "DATETIME", "numericScale": 0, "columnComment": "", "columnDefault": + "CURRENT_TIMESTAMP", "ordinalPosition": 5, "numericPrecision": 0, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 2 + - balance + - 7193543530847928512 + - 1724608746514030592 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "MUL", "tableName": "accounts_col_index_$c9a1", "columnName": + "balance", "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 1, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 12 + - ncol3 + - 7193543530847928512 + - 1724608746514030592 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol3", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 2, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 1 + - id + - 7193543530847928512 + - 1724608746514030592 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "bigint", "jdbcType": + -5, "columnKey": "PRI", "tableName": "accounts_col_index_$c9a1", "columnName": + "id", "columnType": "bigint(20)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 20, "tableSchema": "transfer", "jdbcTypeName": "BIGINT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 3, "numericPrecision": 19, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 3 + - version + - 7193543530847928512 + - 1724608746514030592 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "version", + "columnType": "int(11)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "0", "ordinalPosition": 4, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 4 + - gmt_modified + - 7193543530847928512 + - 1724608746514030592 + - '{"flag": 0, "extra": "on update CURRENT_TIMESTAMP", "status": 1, "version": 1, + "dataType": "datetime", "jdbcType": 93, "columnKey": "", "tableName": "accounts_col_index_$c9a1", + "columnName": "gmt_modified", "columnType": "datetime", "isNullable": "YES", "privileges": + "select,insert,update,references", "fieldLength": 19, "tableSchema": "transfer", + "jdbcTypeName": "DATETIME", "numericScale": 0, "columnComment": "", "columnDefault": + "CURRENT_TIMESTAMP", "ordinalPosition": 5, "numericPrecision": 0, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 12 + - ncol3 + - 7193543535960785024 + - 1724608751610109952 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol3", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 1, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 1 + - id + - 7193543535960785024 + - 1724608751610109952 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "bigint", "jdbcType": + -5, "columnKey": "PRI", "tableName": "accounts_col_index_$c9a1", "columnName": + "id", "columnType": "bigint(20)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 20, "tableSchema": "transfer", "jdbcTypeName": "BIGINT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 2, "numericPrecision": 19, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 3 + - version + - 7193543535960785024 + - 1724608751610109952 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "version", + "columnType": "int(11)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "0", "ordinalPosition": 3, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 4 + - gmt_modified + - 7193543535960785024 + - 1724608751610109952 + - '{"flag": 0, "extra": "on update CURRENT_TIMESTAMP", "status": 1, "version": 1, + "dataType": "datetime", "jdbcType": 93, "columnKey": "", "tableName": "accounts_col_index_$c9a1", + "columnName": "gmt_modified", "columnType": "datetime", "isNullable": "YES", "privileges": + "select,insert,update,references", "fieldLength": 19, "tableSchema": "transfer", + "jdbcTypeName": "DATETIME", "numericScale": 0, "columnComment": "", "columnDefault": + "CURRENT_TIMESTAMP", "ordinalPosition": 4, "numericPrecision": 0, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 2 + - balance + - 7193543535960785024 + - 1724608751610109952 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "MUL", "tableName": "accounts_col_index_$c9a1", "columnName": + "balance", "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 5, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 12 + - ncol_3 + - 7193543542566813760 + - 1724608758224527360 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol_3", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 1, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 1 + - id + - 7193543542566813760 + - 1724608758224527360 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "bigint", "jdbcType": + -5, "columnKey": "PRI", "tableName": "accounts_col_index_$c9a1", "columnName": + "id", "columnType": "bigint(20)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 20, "tableSchema": "transfer", "jdbcTypeName": "BIGINT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 2, "numericPrecision": 19, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 3 + - version + - 7193543542566813760 + - 1724608758224527360 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "version", + "columnType": "int(11)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "0", "ordinalPosition": 3, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 4 + - gmt_modified + - 7193543542566813760 + - 1724608758224527360 + - '{"flag": 0, "extra": "on update CURRENT_TIMESTAMP", "status": 1, "version": 1, + "dataType": "datetime", "jdbcType": 93, "columnKey": "", "tableName": "accounts_col_index_$c9a1", + "columnName": "gmt_modified", "columnType": "datetime", "isNullable": "YES", "privileges": + "select,insert,update,references", "fieldLength": 19, "tableSchema": "transfer", + "jdbcTypeName": "DATETIME", "numericScale": 0, "columnComment": "", "columnDefault": + "CURRENT_TIMESTAMP", "ordinalPosition": 4, "numericPrecision": 0, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 2 + - balance + - 7193543542566813760 + - 1724608758224527360 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "MUL", "tableName": "accounts_col_index_$c9a1", "columnName": + "balance", "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 5, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 1 + - id + - 7193543547780333632 + - 1724608763429658624 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "bigint", "jdbcType": + -5, "columnKey": "PRI", "tableName": "accounts_col_index_$c9a1", "columnName": + "id", "columnType": "bigint(20)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 20, "tableSchema": "transfer", "jdbcTypeName": "BIGINT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 1, "numericPrecision": 19, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 12 + - ncol3 + - 7193543547780333632 + - 1724608763429658624 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "bigint", "jdbcType": + -5, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol3", + "columnType": "bigint(20)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 20, "tableSchema": "transfer", "jdbcTypeName": "BIGINT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 2, "numericPrecision": 19, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 3 + - version + - 7193543547780333632 + - 1724608763429658624 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "version", + "columnType": "int(11)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "0", "ordinalPosition": 3, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 4 + - gmt_modified + - 7193543547780333632 + - 1724608763429658624 + - '{"flag": 0, "extra": "on update CURRENT_TIMESTAMP", "status": 1, "version": 1, + "dataType": "datetime", "jdbcType": 93, "columnKey": "", "tableName": "accounts_col_index_$c9a1", + "columnName": "gmt_modified", "columnType": "datetime", "isNullable": "YES", "privileges": + "select,insert,update,references", "fieldLength": 19, "tableSchema": "transfer", + "jdbcTypeName": "DATETIME", "numericScale": 0, "columnComment": "", "columnDefault": + "CURRENT_TIMESTAMP", "ordinalPosition": 4, "numericPrecision": 0, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 2 + - balance + - 7193543547780333632 + - 1724608763429658624 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "MUL", "tableName": "accounts_col_index_$c9a1", "columnName": + "balance", "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 5, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 51 + - ncol4 + - 7193543553971126336 + - 1724608769637228544 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol4", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "1000", "ordinalPosition": 6, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 12 + - ncol3 + - 7193543559344029760 + - 1724608774997549056 + - '{"flag": 0, "extra": "", "status": 0, "version": 1, "dataType": "bigint", "jdbcType": + -5, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol3", + "columnType": "bigint(20)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 20, "tableSchema": "transfer", "jdbcTypeName": "BIGINT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 2, "numericPrecision": 19, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 3 + - version + - 7193543559344029760 + - 1724608774997549056 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "version", + "columnType": "int(11)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "0", "ordinalPosition": 2, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 4 + - gmt_modified + - 7193543559344029760 + - 1724608774997549056 + - '{"flag": 0, "extra": "on update CURRENT_TIMESTAMP", "status": 1, "version": 1, + "dataType": "datetime", "jdbcType": 93, "columnKey": "", "tableName": "accounts_col_index_$c9a1", + "columnName": "gmt_modified", "columnType": "datetime", "isNullable": "YES", "privileges": + "select,insert,update,references", "fieldLength": 19, "tableSchema": "transfer", + "jdbcTypeName": "DATETIME", "numericScale": 0, "columnComment": "", "columnDefault": + "CURRENT_TIMESTAMP", "ordinalPosition": 3, "numericPrecision": 0, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 2 + - balance + - 7193543559344029760 + - 1724608774997549056 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "MUL", "tableName": "accounts_col_index_$c9a1", "columnName": + "balance", "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 4, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 51 + - ncol4 + - 7193543559344029760 + - 1724608774997549056 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol4", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "1000", "ordinalPosition": 5, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 51 + - ncol4 + - 7193543569020289088 + - 1724608784665419776 + - '{"flag": 0, "extra": "", "status": 0, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol4", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "1000", "ordinalPosition": 5, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 2 + - balance + - 7193543578759462976 + - 1724608794408787968 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "MUL", "tableName": "accounts_col_index_$c9a1", "columnName": + "balance", "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 2, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 3 + - version + - 7193543578759462976 + - 1724608794408787968 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "version", + "columnType": "int(11)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "0", "ordinalPosition": 3, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 4 + - gmt_modified + - 7193543578759462976 + - 1724608794408787968 + - '{"flag": 0, "extra": "on update CURRENT_TIMESTAMP", "status": 1, "version": 1, + "dataType": "datetime", "jdbcType": 93, "columnKey": "", "tableName": "accounts_col_index_$c9a1", + "columnName": "gmt_modified", "columnType": "datetime", "isNullable": "YES", "privileges": + "select,insert,update,references", "fieldLength": 19, "tableSchema": "transfer", + "jdbcTypeName": "DATETIME", "numericScale": 0, "columnComment": "", "columnDefault": + "CURRENT_TIMESTAMP", "ordinalPosition": 4, "numericPrecision": 0, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 61 + - ncol1 + - 7193543583968788544 + - 1724608799722971136 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol1", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 5, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 62 + - ncol2 + - 7193543589274583104 + - 1724608804953268224 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol2", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "999", "ordinalPosition": 1, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 1 + - id + - 7193543589274583104 + - 1724608804953268224 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "bigint", "jdbcType": + -5, "columnKey": "PRI", "tableName": "accounts_col_index_$c9a1", "columnName": + "id", "columnType": "bigint(20)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 20, "tableSchema": "transfer", "jdbcTypeName": "BIGINT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 2, "numericPrecision": 19, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 2 + - balance + - 7193543589274583104 + - 1724608804953268224 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "MUL", "tableName": "accounts_col_index_$c9a1", "columnName": + "balance", "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 3, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 3 + - version + - 7193543589274583104 + - 1724608804953268224 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "version", + "columnType": "int(11)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "0", "ordinalPosition": 4, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 4 + - gmt_modified + - 7193543589274583104 + - 1724608804953268224 + - '{"flag": 0, "extra": "on update CURRENT_TIMESTAMP", "status": 1, "version": 1, + "dataType": "datetime", "jdbcType": 93, "columnKey": "", "tableName": "accounts_col_index_$c9a1", + "columnName": "gmt_modified", "columnType": "datetime", "isNullable": "YES", "privileges": + "select,insert,update,references", "fieldLength": 19, "tableSchema": "transfer", + "jdbcTypeName": "DATETIME", "numericScale": 0, "columnComment": "", "columnDefault": + "CURRENT_TIMESTAMP", "ordinalPosition": 5, "numericPrecision": 0, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 61 + - ncol1 + - 7193543589274583104 + - 1724608804953268224 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol1", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 6, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 68 + - ncol3 + - 7193543593737322688 + - 1724608809399230464 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol3", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 2, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 1 + - id + - 7193543593737322688 + - 1724608809399230464 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "bigint", "jdbcType": + -5, "columnKey": "PRI", "tableName": "accounts_col_index_$c9a1", "columnName": + "id", "columnType": "bigint(20)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 20, "tableSchema": "transfer", "jdbcTypeName": "BIGINT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 3, "numericPrecision": 19, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 2 + - balance + - 7193543593737322688 + - 1724608809399230464 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "MUL", "tableName": "accounts_col_index_$c9a1", "columnName": + "balance", "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 4, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 3 + - version + - 7193543593737322688 + - 1724608809399230464 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "version", + "columnType": "int(11)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "0", "ordinalPosition": 5, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 4 + - gmt_modified + - 7193543593737322688 + - 1724608809399230464 + - '{"flag": 0, "extra": "on update CURRENT_TIMESTAMP", "status": 1, "version": 1, + "dataType": "datetime", "jdbcType": 93, "columnKey": "", "tableName": "accounts_col_index_$c9a1", + "columnName": "gmt_modified", "columnType": "datetime", "isNullable": "YES", "privileges": + "select,insert,update,references", "fieldLength": 19, "tableSchema": "transfer", + "jdbcTypeName": "DATETIME", "numericScale": 0, "columnComment": "", "columnDefault": + "CURRENT_TIMESTAMP", "ordinalPosition": 6, "numericPrecision": 0, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 61 + - ncol1 + - 7193543593737322688 + - 1724608809399230464 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol1", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 7, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 61 + - ncol1 + - 7193543599181529216 + - 1724608814826659840 + - '{"flag": 0, "extra": "", "status": 0, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol1", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 7, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 62 + - ncol2 + - 7193543605280047168 + - 1724608820925177856 + - '{"flag": 0, "extra": "", "status": 0, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol2", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "999", "ordinalPosition": 1, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 68 + - ncol3 + - 7193543605280047168 + - 1724608820925177856 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol3", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 1, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 1 + - id + - 7193543605280047168 + - 1724608820925177856 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "bigint", "jdbcType": + -5, "columnKey": "PRI", "tableName": "accounts_col_index_$c9a1", "columnName": + "id", "columnType": "bigint(20)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 20, "tableSchema": "transfer", "jdbcTypeName": "BIGINT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 2, "numericPrecision": 19, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 2 + - balance + - 7193543605280047168 + - 1724608820925177856 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "MUL", "tableName": "accounts_col_index_$c9a1", "columnName": + "balance", "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 3, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 3 + - version + - 7193543605280047168 + - 1724608820925177856 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "version", + "columnType": "int(11)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "0", "ordinalPosition": 4, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 4 + - gmt_modified + - 7193543605280047168 + - 1724608820925177856 + - '{"flag": 0, "extra": "on update CURRENT_TIMESTAMP", "status": 1, "version": 1, + "dataType": "datetime", "jdbcType": 93, "columnKey": "", "tableName": "accounts_col_index_$c9a1", + "columnName": "gmt_modified", "columnType": "datetime", "isNullable": "YES", "privileges": + "select,insert,update,references", "fieldLength": 19, "tableSchema": "transfer", + "jdbcTypeName": "DATETIME", "numericScale": 0, "columnComment": "", "columnDefault": + "CURRENT_TIMESTAMP", "ordinalPosition": 5, "numericPrecision": 0, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 2 + - balance + - 7193543611466645568 + - 1724608827115970560 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "bigint", "jdbcType": + -5, "columnKey": "MUL", "tableName": "accounts_col_index_$c9a1", "columnName": + "balance", "columnType": "bigint(20)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 20, "tableSchema": "transfer", "jdbcTypeName": "BIGINT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 3, "numericPrecision": 19, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 3 + - version + - 7193543611466645568 + - 1724608827115970560 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "version", + "columnType": "int(11)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "0", "ordinalPosition": 4, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 4 + - gmt_modified + - 7193543611466645568 + - 1724608827115970560 + - '{"flag": 0, "extra": "on update CURRENT_TIMESTAMP", "status": 1, "version": 1, + "dataType": "datetime", "jdbcType": 93, "columnKey": "", "tableName": "accounts_col_index_$c9a1", + "columnName": "gmt_modified", "columnType": "datetime", "isNullable": "YES", "privileges": + "select,insert,update,references", "fieldLength": 19, "tableSchema": "transfer", + "jdbcTypeName": "DATETIME", "numericScale": 0, "columnComment": "", "columnDefault": + "CURRENT_TIMESTAMP", "ordinalPosition": 5, "numericPrecision": 0, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 2 + - balance + - 7193543616805994560 + - 1724608832455319552 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "varchar", "jdbcType": + 12, "columnKey": "MUL", "tableName": "accounts_col_index_$c9a1", "columnName": + "balance", "columnType": "varchar(20)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 80, "tableSchema": "transfer", "jdbcTypeName": "VARCHAR", "numericScale": + 0, "collationName": "utf8mb4_general_ci", "columnComment": "", "ordinalPosition": + 3, "characterSetName": "utf8mb4", "numericPrecision": 0, "datetimePrecision": + 0, "characterOctetLength": 80, "generationExpression": "", "characterMaximumLength": + 20}' +- + - 1 + - 3 + - version + - 7193543616805994560 + - 1724608832455319552 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "version", + "columnType": "int(11)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "0", "ordinalPosition": 4, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 4 + - gmt_modified + - 7193543616805994560 + - 1724608832455319552 + - '{"flag": 0, "extra": "on update CURRENT_TIMESTAMP", "status": 1, "version": 1, + "dataType": "datetime", "jdbcType": 93, "columnKey": "", "tableName": "accounts_col_index_$c9a1", + "columnName": "gmt_modified", "columnType": "datetime", "isNullable": "YES", "privileges": + "select,insert,update,references", "fieldLength": 19, "tableSchema": "transfer", + "jdbcTypeName": "DATETIME", "numericScale": 0, "columnComment": "", "columnDefault": + "CURRENT_TIMESTAMP", "ordinalPosition": 5, "numericPrecision": 0, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 2 + - balance + - 7193543622447333504 + - 1724608838084075520 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "MUL", "tableName": "accounts_col_index_$c9a1", "columnName": + "balance", "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 1, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 68 + - ncol3 + - 7193543622447333504 + - 1724608838084075520 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol3", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 2, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 1 + - id + - 7193543622447333504 + - 1724608838084075520 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "bigint", "jdbcType": + -5, "columnKey": "PRI", "tableName": "accounts_col_index_$c9a1", "columnName": + "id", "columnType": "bigint(20)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 20, "tableSchema": "transfer", "jdbcTypeName": "BIGINT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 3, "numericPrecision": 19, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 3 + - version + - 7193543622447333504 + - 1724608838084075520 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "version", + "columnType": "int(11)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "0", "ordinalPosition": 4, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 4 + - gmt_modified + - 7193543622447333504 + - 1724608838084075520 + - '{"flag": 0, "extra": "on update CURRENT_TIMESTAMP", "status": 1, "version": 1, + "dataType": "datetime", "jdbcType": 93, "columnKey": "", "tableName": "accounts_col_index_$c9a1", + "columnName": "gmt_modified", "columnType": "datetime", "isNullable": "YES", "privileges": + "select,insert,update,references", "fieldLength": 19, "tableSchema": "transfer", + "jdbcTypeName": "DATETIME", "numericScale": 0, "columnComment": "", "columnDefault": + "CURRENT_TIMESTAMP", "ordinalPosition": 5, "numericPrecision": 0, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 68 + - ncol3 + - 7193543627287560320 + - 1724608842928496640 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol3", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 1, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 1 + - id + - 7193543627287560320 + - 1724608842928496640 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "bigint", "jdbcType": + -5, "columnKey": "PRI", "tableName": "accounts_col_index_$c9a1", "columnName": + "id", "columnType": "bigint(20)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 20, "tableSchema": "transfer", "jdbcTypeName": "BIGINT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 2, "numericPrecision": 19, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 3 + - version + - 7193543627287560320 + - 1724608842928496640 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "version", + "columnType": "int(11)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "0", "ordinalPosition": 3, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 4 + - gmt_modified + - 7193543627287560320 + - 1724608842928496640 + - '{"flag": 0, "extra": "on update CURRENT_TIMESTAMP", "status": 1, "version": 1, + "dataType": "datetime", "jdbcType": 93, "columnKey": "", "tableName": "accounts_col_index_$c9a1", + "columnName": "gmt_modified", "columnType": "datetime", "isNullable": "YES", "privileges": + "select,insert,update,references", "fieldLength": 19, "tableSchema": "transfer", + "jdbcTypeName": "DATETIME", "numericScale": 0, "columnComment": "", "columnDefault": + "CURRENT_TIMESTAMP", "ordinalPosition": 4, "numericPrecision": 0, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 2 + - balance + - 7193543627287560320 + - 1724608842928496640 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "MUL", "tableName": "accounts_col_index_$c9a1", "columnName": + "balance", "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 5, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 68 + - ncol_3 + - 7193543645553754176 + - 1724608861198884864 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol_3", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 1, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 1 + - id + - 7193543645553754176 + - 1724608861198884864 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "bigint", "jdbcType": + -5, "columnKey": "PRI", "tableName": "accounts_col_index_$c9a1", "columnName": + "id", "columnType": "bigint(20)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 20, "tableSchema": "transfer", "jdbcTypeName": "BIGINT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 2, "numericPrecision": 19, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 3 + - version + - 7193543645553754176 + - 1724608861198884864 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "version", + "columnType": "int(11)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "0", "ordinalPosition": 3, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 4 + - gmt_modified + - 7193543645553754176 + - 1724608861198884864 + - '{"flag": 0, "extra": "on update CURRENT_TIMESTAMP", "status": 1, "version": 1, + "dataType": "datetime", "jdbcType": 93, "columnKey": "", "tableName": "accounts_col_index_$c9a1", + "columnName": "gmt_modified", "columnType": "datetime", "isNullable": "YES", "privileges": + "select,insert,update,references", "fieldLength": 19, "tableSchema": "transfer", + "jdbcTypeName": "DATETIME", "numericScale": 0, "columnComment": "", "columnDefault": + "CURRENT_TIMESTAMP", "ordinalPosition": 4, "numericPrecision": 0, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 2 + - balance + - 7193543645553754176 + - 1724608861198884864 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "MUL", "tableName": "accounts_col_index_$c9a1", "columnName": + "balance", "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 5, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 1 + - id + - 7193543648217137216 + - 1724608863866462208 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "bigint", "jdbcType": + -5, "columnKey": "PRI", "tableName": "accounts_col_index_$c9a1", "columnName": + "id", "columnType": "bigint(20)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 20, "tableSchema": "transfer", "jdbcTypeName": "BIGINT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 1, "numericPrecision": 19, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 68 + - ncol3 + - 7193543648217137216 + - 1724608863866462208 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "bigint", "jdbcType": + -5, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol3", + "columnType": "bigint(20)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 20, "tableSchema": "transfer", "jdbcTypeName": "BIGINT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 2, "numericPrecision": 19, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 3 + - version + - 7193543648217137216 + - 1724608863866462208 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "version", + "columnType": "int(11)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "0", "ordinalPosition": 3, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 4 + - gmt_modified + - 7193543648217137216 + - 1724608863866462208 + - '{"flag": 0, "extra": "on update CURRENT_TIMESTAMP", "status": 1, "version": 1, + "dataType": "datetime", "jdbcType": 93, "columnKey": "", "tableName": "accounts_col_index_$c9a1", + "columnName": "gmt_modified", "columnType": "datetime", "isNullable": "YES", "privileges": + "select,insert,update,references", "fieldLength": 19, "tableSchema": "transfer", + "jdbcTypeName": "DATETIME", "numericScale": 0, "columnComment": "", "columnDefault": + "CURRENT_TIMESTAMP", "ordinalPosition": 4, "numericPrecision": 0, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 2 + - balance + - 7193543648217137216 + - 1724608863866462208 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "MUL", "tableName": "accounts_col_index_$c9a1", "columnName": + "balance", "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 5, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 107 + - ncol4 + - 7193543650888908864 + - 1724608866550816768 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol4", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "1000", "ordinalPosition": 6, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 68 + - ncol3 + - 7193543653569069120 + - 1724608869222588416 + - '{"flag": 0, "extra": "", "status": 0, "version": 1, "dataType": "bigint", "jdbcType": + -5, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol3", + "columnType": "bigint(20)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 20, "tableSchema": "transfer", "jdbcTypeName": "BIGINT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 2, "numericPrecision": 19, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 3 + - version + - 7193543653569069120 + - 1724608869222588416 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "version", + "columnType": "int(11)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "0", "ordinalPosition": 2, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 4 + - gmt_modified + - 7193543653569069120 + - 1724608869222588416 + - '{"flag": 0, "extra": "on update CURRENT_TIMESTAMP", "status": 1, "version": 1, + "dataType": "datetime", "jdbcType": 93, "columnKey": "", "tableName": "accounts_col_index_$c9a1", + "columnName": "gmt_modified", "columnType": "datetime", "isNullable": "YES", "privileges": + "select,insert,update,references", "fieldLength": 19, "tableSchema": "transfer", + "jdbcTypeName": "DATETIME", "numericScale": 0, "columnComment": "", "columnDefault": + "CURRENT_TIMESTAMP", "ordinalPosition": 3, "numericPrecision": 0, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 2 + - balance + - 7193543653569069120 + - 1724608869222588416 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "MUL", "tableName": "accounts_col_index_$c9a1", "columnName": + "balance", "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 4, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 107 + - ncol4 + - 7193543653569069120 + - 1724608869222588416 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol4", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "1000", "ordinalPosition": 5, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 107 + - ncol4 + - 7193543656660271168 + - 1724608872305401856 + - '{"flag": 0, "extra": "", "status": 0, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol4", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "1000", "ordinalPosition": 5, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 2 + - balance + - 7193543660166709312 + - 1724608875816034304 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "MUL", "tableName": "accounts_col_index_$c9a1", "columnName": + "balance", "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 2, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 3 + - version + - 7193543660166709312 + - 1724608875816034304 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "version", + "columnType": "int(11)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "0", "ordinalPosition": 3, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 4 + - gmt_modified + - 7193543660166709312 + - 1724608875816034304 + - '{"flag": 0, "extra": "on update CURRENT_TIMESTAMP", "status": 1, "version": 1, + "dataType": "datetime", "jdbcType": 93, "columnKey": "", "tableName": "accounts_col_index_$c9a1", + "columnName": "gmt_modified", "columnType": "datetime", "isNullable": "YES", "privileges": + "select,insert,update,references", "fieldLength": 19, "tableSchema": "transfer", + "jdbcTypeName": "DATETIME", "numericScale": 0, "columnComment": "", "columnDefault": + "CURRENT_TIMESTAMP", "ordinalPosition": 4, "numericPrecision": 0, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 117 + - ncol1 + - 7193543662834286656 + - 1724608878487805952 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol1", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 5, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 118 + - ncol2 + - 7193543665086627904 + - 1724608880744341504 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol2", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "999", "ordinalPosition": 1, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 1 + - id + - 7193543665086627904 + - 1724608880744341504 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "bigint", "jdbcType": + -5, "columnKey": "PRI", "tableName": "accounts_col_index_$c9a1", "columnName": + "id", "columnType": "bigint(20)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 20, "tableSchema": "transfer", "jdbcTypeName": "BIGINT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 2, "numericPrecision": 19, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 2 + - balance + - 7193543665086627904 + - 1724608880744341504 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "MUL", "tableName": "accounts_col_index_$c9a1", "columnName": + "balance", "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 3, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 3 + - version + - 7193543665086627904 + - 1724608880744341504 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "version", + "columnType": "int(11)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "0", "ordinalPosition": 4, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 4 + - gmt_modified + - 7193543665086627904 + - 1724608880744341504 + - '{"flag": 0, "extra": "on update CURRENT_TIMESTAMP", "status": 1, "version": 1, + "dataType": "datetime", "jdbcType": 93, "columnKey": "", "tableName": "accounts_col_index_$c9a1", + "columnName": "gmt_modified", "columnType": "datetime", "isNullable": "YES", "privileges": + "select,insert,update,references", "fieldLength": 19, "tableSchema": "transfer", + "jdbcTypeName": "DATETIME", "numericScale": 0, "columnComment": "", "columnDefault": + "CURRENT_TIMESTAMP", "ordinalPosition": 5, "numericPrecision": 0, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 117 + - ncol1 + - 7193543665086627904 + - 1724608880744341504 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol1", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 6, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 124 + - ncol3 + - 7193543667762593856 + - 1724608883416113152 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol3", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 2, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 1 + - id + - 7193543667762593856 + - 1724608883416113152 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "bigint", "jdbcType": + -5, "columnKey": "PRI", "tableName": "accounts_col_index_$c9a1", "columnName": + "id", "columnType": "bigint(20)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 20, "tableSchema": "transfer", "jdbcTypeName": "BIGINT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 3, "numericPrecision": 19, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 2 + - balance + - 7193543667762593856 + - 1724608883416113152 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "MUL", "tableName": "accounts_col_index_$c9a1", "columnName": + "balance", "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 4, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 3 + - version + - 7193543667762593856 + - 1724608883416113152 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "version", + "columnType": "int(11)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "0", "ordinalPosition": 5, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 4 + - gmt_modified + - 7193543667762593856 + - 1724608883416113152 + - '{"flag": 0, "extra": "on update CURRENT_TIMESTAMP", "status": 1, "version": 1, + "dataType": "datetime", "jdbcType": 93, "columnKey": "", "tableName": "accounts_col_index_$c9a1", + "columnName": "gmt_modified", "columnType": "datetime", "isNullable": "YES", "privileges": + "select,insert,update,references", "fieldLength": 19, "tableSchema": "transfer", + "jdbcTypeName": "DATETIME", "numericScale": 0, "columnComment": "", "columnDefault": + "CURRENT_TIMESTAMP", "ordinalPosition": 6, "numericPrecision": 0, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 117 + - ncol1 + - 7193543667762593856 + - 1724608883416113152 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol1", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 7, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 117 + - ncol1 + - 7193543670430171200 + - 1724608886079496192 + - '{"flag": 0, "extra": "", "status": 0, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol1", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 7, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 118 + - ncol2 + - 7193543673936609344 + - 1724608889585934336 + - '{"flag": 0, "extra": "", "status": 0, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol2", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "999", "ordinalPosition": 1, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 124 + - ncol3 + - 7193543673936609344 + - 1724608889585934336 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol3", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 1, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 1 + - id + - 7193543673936609344 + - 1724608889585934336 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "bigint", "jdbcType": + -5, "columnKey": "PRI", "tableName": "accounts_col_index_$c9a1", "columnName": + "id", "columnType": "bigint(20)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 20, "tableSchema": "transfer", "jdbcTypeName": "BIGINT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 2, "numericPrecision": 19, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 2 + - balance + - 7193543673936609344 + - 1724608889585934336 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "MUL", "tableName": "accounts_col_index_$c9a1", "columnName": + "balance", "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 3, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 3 + - version + - 7193543673936609344 + - 1724608889585934336 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "version", + "columnType": "int(11)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "0", "ordinalPosition": 4, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 4 + - gmt_modified + - 7193543673936609344 + - 1724608889585934336 + - '{"flag": 0, "extra": "on update CURRENT_TIMESTAMP", "status": 1, "version": 1, + "dataType": "datetime", "jdbcType": 93, "columnKey": "", "tableName": "accounts_col_index_$c9a1", + "columnName": "gmt_modified", "columnType": "datetime", "isNullable": "YES", "privileges": + "select,insert,update,references", "fieldLength": 19, "tableSchema": "transfer", + "jdbcTypeName": "DATETIME", "numericScale": 0, "columnComment": "", "columnDefault": + "CURRENT_TIMESTAMP", "ordinalPosition": 5, "numericPrecision": 0, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 2 + - balance + - 7193543677023617088 + - 1724608892664553472 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "bigint", "jdbcType": + -5, "columnKey": "MUL", "tableName": "accounts_col_index_$c9a1", "columnName": + "balance", "columnType": "bigint(20)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 20, "tableSchema": "transfer", "jdbcTypeName": "BIGINT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 3, "numericPrecision": 19, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 3 + - version + - 7193543677023617088 + - 1724608892664553472 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "version", + "columnType": "int(11)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "0", "ordinalPosition": 4, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 4 + - gmt_modified + - 7193543677023617088 + - 1724608892664553472 + - '{"flag": 0, "extra": "on update CURRENT_TIMESTAMP", "status": 1, "version": 1, + "dataType": "datetime", "jdbcType": 93, "columnKey": "", "tableName": "accounts_col_index_$c9a1", + "columnName": "gmt_modified", "columnType": "datetime", "isNullable": "YES", "privileges": + "select,insert,update,references", "fieldLength": 19, "tableSchema": "transfer", + "jdbcTypeName": "DATETIME", "numericScale": 0, "columnComment": "", "columnDefault": + "CURRENT_TIMESTAMP", "ordinalPosition": 5, "numericPrecision": 0, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 2 + - balance + - 7193543679687000128 + - 1724608895336325120 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "varchar", "jdbcType": + 12, "columnKey": "MUL", "tableName": "accounts_col_index_$c9a1", "columnName": + "balance", "columnType": "varchar(20)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 80, "tableSchema": "transfer", "jdbcTypeName": "VARCHAR", "numericScale": + 0, "collationName": "utf8mb4_general_ci", "columnComment": "", "ordinalPosition": + 3, "characterSetName": "utf8mb4", "numericPrecision": 0, "datetimePrecision": + 0, "characterOctetLength": 80, "generationExpression": "", "characterMaximumLength": + 20}' +- + - 1 + - 3 + - version + - 7193543679687000128 + - 1724608895336325120 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "version", + "columnType": "int(11)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "0", "ordinalPosition": 4, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 4 + - gmt_modified + - 7193543679687000128 + - 1724608895336325120 + - '{"flag": 0, "extra": "on update CURRENT_TIMESTAMP", "status": 1, "version": 1, + "dataType": "datetime", "jdbcType": 93, "columnKey": "", "tableName": "accounts_col_index_$c9a1", + "columnName": "gmt_modified", "columnType": "datetime", "isNullable": "YES", "privileges": + "select,insert,update,references", "fieldLength": 19, "tableSchema": "transfer", + "jdbcTypeName": "DATETIME", "numericScale": 0, "columnComment": "", "columnDefault": + "CURRENT_TIMESTAMP", "ordinalPosition": 5, "numericPrecision": 0, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 2 + - balance + - 7193543682354577472 + - 1724608897995513856 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "MUL", "tableName": "accounts_col_index_$c9a1", "columnName": + "balance", "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 1, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 124 + - ncol3 + - 7193543682354577472 + - 1724608897995513856 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol3", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 2, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 1 + - id + - 7193543682354577472 + - 1724608897995513856 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "bigint", "jdbcType": + -5, "columnKey": "PRI", "tableName": "accounts_col_index_$c9a1", "columnName": + "id", "columnType": "bigint(20)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 20, "tableSchema": "transfer", "jdbcTypeName": "BIGINT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 3, "numericPrecision": 19, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 3 + - version + - 7193543682354577472 + - 1724608897995513856 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "version", + "columnType": "int(11)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "0", "ordinalPosition": 4, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 4 + - gmt_modified + - 7193543682354577472 + - 1724608897995513856 + - '{"flag": 0, "extra": "on update CURRENT_TIMESTAMP", "status": 1, "version": 1, + "dataType": "datetime", "jdbcType": 93, "columnKey": "", "tableName": "accounts_col_index_$c9a1", + "columnName": "gmt_modified", "columnType": "datetime", "isNullable": "YES", "privileges": + "select,insert,update,references", "fieldLength": 19, "tableSchema": "transfer", + "jdbcTypeName": "DATETIME", "numericScale": 0, "columnComment": "", "columnDefault": + "CURRENT_TIMESTAMP", "ordinalPosition": 5, "numericPrecision": 0, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 124 + - ncol3 + - 7193543685017960512 + - 1724608900663091200 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol3", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 1, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 1 + - id + - 7193543685017960512 + - 1724608900663091200 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "bigint", "jdbcType": + -5, "columnKey": "PRI", "tableName": "accounts_col_index_$c9a1", "columnName": + "id", "columnType": "bigint(20)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 20, "tableSchema": "transfer", "jdbcTypeName": "BIGINT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 2, "numericPrecision": 19, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 3 + - version + - 7193543685017960512 + - 1724608900663091200 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "version", + "columnType": "int(11)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "0", "ordinalPosition": 3, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 4 + - gmt_modified + - 7193543685017960512 + - 1724608900663091200 + - '{"flag": 0, "extra": "on update CURRENT_TIMESTAMP", "status": 1, "version": 1, + "dataType": "datetime", "jdbcType": 93, "columnKey": "", "tableName": "accounts_col_index_$c9a1", + "columnName": "gmt_modified", "columnType": "datetime", "isNullable": "YES", "privileges": + "select,insert,update,references", "fieldLength": 19, "tableSchema": "transfer", + "jdbcTypeName": "DATETIME", "numericScale": 0, "columnComment": "", "columnDefault": + "CURRENT_TIMESTAMP", "ordinalPosition": 4, "numericPrecision": 0, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 2 + - balance + - 7193543685017960512 + - 1724608900663091200 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "MUL", "tableName": "accounts_col_index_$c9a1", "columnName": + "balance", "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 5, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 124 + - ncol_3 + - 7193543687677149248 + - 1724608903322279936 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol_3", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 1, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 1 + - id + - 7193543687677149248 + - 1724608903322279936 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "bigint", "jdbcType": + -5, "columnKey": "PRI", "tableName": "accounts_col_index_$c9a1", "columnName": + "id", "columnType": "bigint(20)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 20, "tableSchema": "transfer", "jdbcTypeName": "BIGINT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 2, "numericPrecision": 19, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 3 + - version + - 7193543687677149248 + - 1724608903322279936 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "version", + "columnType": "int(11)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "0", "ordinalPosition": 3, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 4 + - gmt_modified + - 7193543687677149248 + - 1724608903322279936 + - '{"flag": 0, "extra": "on update CURRENT_TIMESTAMP", "status": 1, "version": 1, + "dataType": "datetime", "jdbcType": 93, "columnKey": "", "tableName": "accounts_col_index_$c9a1", + "columnName": "gmt_modified", "columnType": "datetime", "isNullable": "YES", "privileges": + "select,insert,update,references", "fieldLength": 19, "tableSchema": "transfer", + "jdbcTypeName": "DATETIME", "numericScale": 0, "columnComment": "", "columnDefault": + "CURRENT_TIMESTAMP", "ordinalPosition": 4, "numericPrecision": 0, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 2 + - balance + - 7193543687677149248 + - 1724608903322279936 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "MUL", "tableName": "accounts_col_index_$c9a1", "columnName": + "balance", "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 5, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 1 + - id + - 7193543690336337984 + - 1724608905989857280 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "bigint", "jdbcType": + -5, "columnKey": "PRI", "tableName": "accounts_col_index_$c9a1", "columnName": + "id", "columnType": "bigint(20)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 20, "tableSchema": "transfer", "jdbcTypeName": "BIGINT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 1, "numericPrecision": 19, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 124 + - ncol3 + - 7193543690336337984 + - 1724608905989857280 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "bigint", "jdbcType": + -5, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol3", + "columnType": "bigint(20)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 20, "tableSchema": "transfer", "jdbcTypeName": "BIGINT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 2, "numericPrecision": 19, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 3 + - version + - 7193543690336337984 + - 1724608905989857280 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "version", + "columnType": "int(11)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "0", "ordinalPosition": 3, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 4 + - gmt_modified + - 7193543690336337984 + - 1724608905989857280 + - '{"flag": 0, "extra": "on update CURRENT_TIMESTAMP", "status": 1, "version": 1, + "dataType": "datetime", "jdbcType": 93, "columnKey": "", "tableName": "accounts_col_index_$c9a1", + "columnName": "gmt_modified", "columnType": "datetime", "isNullable": "YES", "privileges": + "select,insert,update,references", "fieldLength": 19, "tableSchema": "transfer", + "jdbcTypeName": "DATETIME", "numericScale": 0, "columnComment": "", "columnDefault": + "CURRENT_TIMESTAMP", "ordinalPosition": 4, "numericPrecision": 0, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 2 + - balance + - 7193543690336337984 + - 1724608905989857280 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "MUL", "tableName": "accounts_col_index_$c9a1", "columnName": + "balance", "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 5, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 163 + - ncol4 + - 7193543693008109632 + - 1724608908661628928 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol4", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "1000", "ordinalPosition": 6, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 124 + - ncol3 + - 7193543695675686976 + - 1724608911320817664 + - '{"flag": 0, "extra": "", "status": 0, "version": 1, "dataType": "bigint", "jdbcType": + -5, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol3", + "columnType": "bigint(20)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 20, "tableSchema": "transfer", "jdbcTypeName": "BIGINT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 2, "numericPrecision": 19, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 3 + - version + - 7193543695675686976 + - 1724608911320817664 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "version", + "columnType": "int(11)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "0", "ordinalPosition": 2, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 4 + - gmt_modified + - 7193543695675686976 + - 1724608911320817664 + - '{"flag": 0, "extra": "on update CURRENT_TIMESTAMP", "status": 1, "version": 1, + "dataType": "datetime", "jdbcType": 93, "columnKey": "", "tableName": "accounts_col_index_$c9a1", + "columnName": "gmt_modified", "columnType": "datetime", "isNullable": "YES", "privileges": + "select,insert,update,references", "fieldLength": 19, "tableSchema": "transfer", + "jdbcTypeName": "DATETIME", "numericScale": 0, "columnComment": "", "columnDefault": + "CURRENT_TIMESTAMP", "ordinalPosition": 3, "numericPrecision": 0, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 2 + - balance + - 7193543695675686976 + - 1724608911320817664 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "MUL", "tableName": "accounts_col_index_$c9a1", "columnName": + "balance", "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 4, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 163 + - ncol4 + - 7193543695675686976 + - 1724608911320817664 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol4", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "1000", "ordinalPosition": 5, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 163 + - ncol4 + - 7193543699177930816 + - 1724608914823061504 + - '{"flag": 0, "extra": "", "status": 0, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol4", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "1000", "ordinalPosition": 5, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 2 + - balance + - 7193543702260744256 + - 1724608917905874944 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "MUL", "tableName": "accounts_col_index_$c9a1", "columnName": + "balance", "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 2, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 3 + - version + - 7193543702260744256 + - 1724608917905874944 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "version", + "columnType": "int(11)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "0", "ordinalPosition": 3, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 4 + - gmt_modified + - 7193543702260744256 + - 1724608917905874944 + - '{"flag": 0, "extra": "on update CURRENT_TIMESTAMP", "status": 1, "version": 1, + "dataType": "datetime", "jdbcType": 93, "columnKey": "", "tableName": "accounts_col_index_$c9a1", + "columnName": "gmt_modified", "columnType": "datetime", "isNullable": "YES", "privileges": + "select,insert,update,references", "fieldLength": 19, "tableSchema": "transfer", + "jdbcTypeName": "DATETIME", "numericScale": 0, "columnComment": "", "columnDefault": + "CURRENT_TIMESTAMP", "ordinalPosition": 4, "numericPrecision": 0, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 173 + - ncol1 + - 7193543704919932992 + - 1724608920590229504 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol1", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 5, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 174 + - ncol2 + - 7193543707604287552 + - 1724608923266195456 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol2", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "999", "ordinalPosition": 1, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 1 + - id + - 7193543707604287552 + - 1724608923266195456 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "bigint", "jdbcType": + -5, "columnKey": "PRI", "tableName": "accounts_col_index_$c9a1", "columnName": + "id", "columnType": "bigint(20)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 20, "tableSchema": "transfer", "jdbcTypeName": "BIGINT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 2, "numericPrecision": 19, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 2 + - balance + - 7193543707604287552 + - 1724608923266195456 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "MUL", "tableName": "accounts_col_index_$c9a1", "columnName": + "balance", "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 3, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 3 + - version + - 7193543707604287552 + - 1724608923266195456 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "version", + "columnType": "int(11)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "0", "ordinalPosition": 4, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 4 + - gmt_modified + - 7193543707604287552 + - 1724608923266195456 + - '{"flag": 0, "extra": "on update CURRENT_TIMESTAMP", "status": 1, "version": 1, + "dataType": "datetime", "jdbcType": 93, "columnKey": "", "tableName": "accounts_col_index_$c9a1", + "columnName": "gmt_modified", "columnType": "datetime", "isNullable": "YES", "privileges": + "select,insert,update,references", "fieldLength": 19, "tableSchema": "transfer", + "jdbcTypeName": "DATETIME", "numericScale": 0, "columnComment": "", "columnDefault": + "CURRENT_TIMESTAMP", "ordinalPosition": 5, "numericPrecision": 0, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 173 + - ncol1 + - 7193543707604287552 + - 1724608923266195456 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol1", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 6, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 180 + - ncol3 + - 7193543710284447808 + - 1724608925946355712 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol3", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 2, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 1 + - id + - 7193543710284447808 + - 1724608925946355712 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "bigint", "jdbcType": + -5, "columnKey": "PRI", "tableName": "accounts_col_index_$c9a1", "columnName": + "id", "columnType": "bigint(20)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 20, "tableSchema": "transfer", "jdbcTypeName": "BIGINT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 3, "numericPrecision": 19, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 2 + - balance + - 7193543710284447808 + - 1724608925946355712 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "MUL", "tableName": "accounts_col_index_$c9a1", "columnName": + "balance", "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 4, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 3 + - version + - 7193543710284447808 + - 1724608925946355712 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "version", + "columnType": "int(11)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "0", "ordinalPosition": 5, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 4 + - gmt_modified + - 7193543710284447808 + - 1724608925946355712 + - '{"flag": 0, "extra": "on update CURRENT_TIMESTAMP", "status": 1, "version": 1, + "dataType": "datetime", "jdbcType": 93, "columnKey": "", "tableName": "accounts_col_index_$c9a1", + "columnName": "gmt_modified", "columnType": "datetime", "isNullable": "YES", "privileges": + "select,insert,update,references", "fieldLength": 19, "tableSchema": "transfer", + "jdbcTypeName": "DATETIME", "numericScale": 0, "columnComment": "", "columnDefault": + "CURRENT_TIMESTAMP", "ordinalPosition": 6, "numericPrecision": 0, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 173 + - ncol1 + - 7193543710284447808 + - 1724608925946355712 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol1", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 7, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 173 + - ncol1 + - 7193543712964608064 + - 1724608928601350144 + - '{"flag": 0, "extra": "", "status": 0, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol1", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 7, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 174 + - ncol2 + - 7193543716454268992 + - 1724608932086816768 + - '{"flag": 0, "extra": "", "status": 0, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol2", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "999", "ordinalPosition": 1, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 180 + - ncol3 + - 7193543716454268992 + - 1724608932086816768 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol3", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 1, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 1 + - id + - 7193543716454268992 + - 1724608932086816768 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "bigint", "jdbcType": + -5, "columnKey": "PRI", "tableName": "accounts_col_index_$c9a1", "columnName": + "id", "columnType": "bigint(20)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 20, "tableSchema": "transfer", "jdbcTypeName": "BIGINT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 2, "numericPrecision": 19, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 2 + - balance + - 7193543716454268992 + - 1724608932086816768 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "MUL", "tableName": "accounts_col_index_$c9a1", "columnName": + "balance", "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 3, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 3 + - version + - 7193543716454268992 + - 1724608932086816768 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "version", + "columnType": "int(11)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "0", "ordinalPosition": 4, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 4 + - gmt_modified + - 7193543716454268992 + - 1724608932086816768 + - '{"flag": 0, "extra": "on update CURRENT_TIMESTAMP", "status": 1, "version": 1, + "dataType": "datetime", "jdbcType": 93, "columnKey": "", "tableName": "accounts_col_index_$c9a1", + "columnName": "gmt_modified", "columnType": "datetime", "isNullable": "YES", "privileges": + "select,insert,update,references", "fieldLength": 19, "tableSchema": "transfer", + "jdbcTypeName": "DATETIME", "numericScale": 0, "columnComment": "", "columnDefault": + "CURRENT_TIMESTAMP", "ordinalPosition": 5, "numericPrecision": 0, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 2 + - balance + - 7193543719939735616 + - 1724608935589060608 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "bigint", "jdbcType": + -5, "columnKey": "MUL", "tableName": "accounts_col_index_$c9a1", "columnName": + "balance", "columnType": "bigint(20)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 20, "tableSchema": "transfer", "jdbcTypeName": "BIGINT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 3, "numericPrecision": 19, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 3 + - version + - 7193543719939735616 + - 1724608935589060608 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "version", + "columnType": "int(11)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "0", "ordinalPosition": 4, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 4 + - gmt_modified + - 7193543719939735616 + - 1724608935589060608 + - '{"flag": 0, "extra": "on update CURRENT_TIMESTAMP", "status": 1, "version": 1, + "dataType": "datetime", "jdbcType": 93, "columnKey": "", "tableName": "accounts_col_index_$c9a1", + "columnName": "gmt_modified", "columnType": "datetime", "isNullable": "YES", "privileges": + "select,insert,update,references", "fieldLength": 19, "tableSchema": "transfer", + "jdbcTypeName": "DATETIME", "numericScale": 0, "columnComment": "", "columnDefault": + "CURRENT_TIMESTAMP", "ordinalPosition": 5, "numericPrecision": 0, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 2 + - balance + - 7193543722607312960 + - 1724608938248249344 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "varchar", "jdbcType": + 12, "columnKey": "MUL", "tableName": "accounts_col_index_$c9a1", "columnName": + "balance", "columnType": "varchar(20)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 80, "tableSchema": "transfer", "jdbcTypeName": "VARCHAR", "numericScale": + 0, "collationName": "utf8mb4_general_ci", "columnComment": "", "ordinalPosition": + 3, "characterSetName": "utf8mb4", "numericPrecision": 0, "datetimePrecision": + 0, "characterOctetLength": 80, "generationExpression": "", "characterMaximumLength": + 20}' +- + - 1 + - 3 + - version + - 7193543722607312960 + - 1724608938248249344 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "version", + "columnType": "int(11)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "0", "ordinalPosition": 4, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 4 + - gmt_modified + - 7193543722607312960 + - 1724608938248249344 + - '{"flag": 0, "extra": "on update CURRENT_TIMESTAMP", "status": 1, "version": 1, + "dataType": "datetime", "jdbcType": 93, "columnKey": "", "tableName": "accounts_col_index_$c9a1", + "columnName": "gmt_modified", "columnType": "datetime", "isNullable": "YES", "privileges": + "select,insert,update,references", "fieldLength": 19, "tableSchema": "transfer", + "jdbcTypeName": "DATETIME", "numericScale": 0, "columnComment": "", "columnDefault": + "CURRENT_TIMESTAMP", "ordinalPosition": 5, "numericPrecision": 0, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 2 + - balance + - 7193543725681737792 + - 1724608941326868480 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "MUL", "tableName": "accounts_col_index_$c9a1", "columnName": + "balance", "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 1, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 180 + - ncol3 + - 7193543725681737792 + - 1724608941326868480 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol3", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 2, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 1 + - id + - 7193543725681737792 + - 1724608941326868480 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "bigint", "jdbcType": + -5, "columnKey": "PRI", "tableName": "accounts_col_index_$c9a1", "columnName": + "id", "columnType": "bigint(20)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 20, "tableSchema": "transfer", "jdbcTypeName": "BIGINT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 3, "numericPrecision": 19, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 3 + - version + - 7193543725681737792 + - 1724608941326868480 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "version", + "columnType": "int(11)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "0", "ordinalPosition": 4, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 4 + - gmt_modified + - 7193543725681737792 + - 1724608941326868480 + - '{"flag": 0, "extra": "on update CURRENT_TIMESTAMP", "status": 1, "version": 1, + "dataType": "datetime", "jdbcType": 93, "columnKey": "", "tableName": "accounts_col_index_$c9a1", + "columnName": "gmt_modified", "columnType": "datetime", "isNullable": "YES", "privileges": + "select,insert,update,references", "fieldLength": 19, "tableSchema": "transfer", + "jdbcTypeName": "DATETIME", "numericScale": 0, "columnComment": "", "columnDefault": + "CURRENT_TIMESTAMP", "ordinalPosition": 5, "numericPrecision": 0, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 180 + - ncol3 + - 7193543728336732224 + - 1724608943977668608 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol3", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 1, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 1 + - id + - 7193543728336732224 + - 1724608943977668608 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "bigint", "jdbcType": + -5, "columnKey": "PRI", "tableName": "accounts_col_index_$c9a1", "columnName": + "id", "columnType": "bigint(20)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 20, "tableSchema": "transfer", "jdbcTypeName": "BIGINT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 2, "numericPrecision": 19, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 3 + - version + - 7193543728336732224 + - 1724608943977668608 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "version", + "columnType": "int(11)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "0", "ordinalPosition": 3, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 4 + - gmt_modified + - 7193543728336732224 + - 1724608943977668608 + - '{"flag": 0, "extra": "on update CURRENT_TIMESTAMP", "status": 1, "version": 1, + "dataType": "datetime", "jdbcType": 93, "columnKey": "", "tableName": "accounts_col_index_$c9a1", + "columnName": "gmt_modified", "columnType": "datetime", "isNullable": "YES", "privileges": + "select,insert,update,references", "fieldLength": 19, "tableSchema": "transfer", + "jdbcTypeName": "DATETIME", "numericScale": 0, "columnComment": "", "columnDefault": + "CURRENT_TIMESTAMP", "ordinalPosition": 4, "numericPrecision": 0, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 2 + - balance + - 7193543728336732224 + - 1724608943977668608 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "MUL", "tableName": "accounts_col_index_$c9a1", "columnName": + "balance", "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 5, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 180 + - ncol_3 + - 7193543730991726656 + - 1724608946645245952 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol_3", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 1, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 1 + - id + - 7193543730991726656 + - 1724608946645245952 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "bigint", "jdbcType": + -5, "columnKey": "PRI", "tableName": "accounts_col_index_$c9a1", "columnName": + "id", "columnType": "bigint(20)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 20, "tableSchema": "transfer", "jdbcTypeName": "BIGINT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 2, "numericPrecision": 19, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 3 + - version + - 7193543730991726656 + - 1724608946645245952 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "version", + "columnType": "int(11)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "0", "ordinalPosition": 3, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 4 + - gmt_modified + - 7193543730991726656 + - 1724608946645245952 + - '{"flag": 0, "extra": "on update CURRENT_TIMESTAMP", "status": 1, "version": 1, + "dataType": "datetime", "jdbcType": 93, "columnKey": "", "tableName": "accounts_col_index_$c9a1", + "columnName": "gmt_modified", "columnType": "datetime", "isNullable": "YES", "privileges": + "select,insert,update,references", "fieldLength": 19, "tableSchema": "transfer", + "jdbcTypeName": "DATETIME", "numericScale": 0, "columnComment": "", "columnDefault": + "CURRENT_TIMESTAMP", "ordinalPosition": 4, "numericPrecision": 0, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 2 + - balance + - 7193543730991726656 + - 1724608946645245952 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "MUL", "tableName": "accounts_col_index_$c9a1", "columnName": + "balance", "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 5, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 1 + - id + - 7193543733667692608 + - 1724608949312823296 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "bigint", "jdbcType": + -5, "columnKey": "PRI", "tableName": "accounts_col_index_$c9a1", "columnName": + "id", "columnType": "bigint(20)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 20, "tableSchema": "transfer", "jdbcTypeName": "BIGINT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 1, "numericPrecision": 19, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 180 + - ncol3 + - 7193543733667692608 + - 1724608949312823296 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "bigint", "jdbcType": + -5, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol3", + "columnType": "bigint(20)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 20, "tableSchema": "transfer", "jdbcTypeName": "BIGINT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 2, "numericPrecision": 19, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 3 + - version + - 7193543733667692608 + - 1724608949312823296 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "version", + "columnType": "int(11)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "0", "ordinalPosition": 3, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 4 + - gmt_modified + - 7193543733667692608 + - 1724608949312823296 + - '{"flag": 0, "extra": "on update CURRENT_TIMESTAMP", "status": 1, "version": 1, + "dataType": "datetime", "jdbcType": 93, "columnKey": "", "tableName": "accounts_col_index_$c9a1", + "columnName": "gmt_modified", "columnType": "datetime", "isNullable": "YES", "privileges": + "select,insert,update,references", "fieldLength": 19, "tableSchema": "transfer", + "jdbcTypeName": "DATETIME", "numericScale": 0, "columnComment": "", "columnDefault": + "CURRENT_TIMESTAMP", "ordinalPosition": 4, "numericPrecision": 0, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 2 + - balance + - 7193543733667692608 + - 1724608949312823296 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "MUL", "tableName": "accounts_col_index_$c9a1", "columnName": + "balance", "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 5, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 219 + - ncol4 + - 7193543736326881344 + - 1724608951980400640 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol4", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "1000", "ordinalPosition": 6, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 180 + - ncol3 + - 7193543739002847296 + - 1724608954647977984 + - '{"flag": 0, "extra": "", "status": 0, "version": 1, "dataType": "bigint", "jdbcType": + -5, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol3", + "columnType": "bigint(20)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 20, "tableSchema": "transfer", "jdbcTypeName": "BIGINT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 2, "numericPrecision": 19, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 3 + - version + - 7193543739002847296 + - 1724608954647977984 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "version", + "columnType": "int(11)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "0", "ordinalPosition": 2, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 4 + - gmt_modified + - 7193543739002847296 + - 1724608954647977984 + - '{"flag": 0, "extra": "on update CURRENT_TIMESTAMP", "status": 1, "version": 1, + "dataType": "datetime", "jdbcType": 93, "columnKey": "", "tableName": "accounts_col_index_$c9a1", + "columnName": "gmt_modified", "columnType": "datetime", "isNullable": "YES", "privileges": + "select,insert,update,references", "fieldLength": 19, "tableSchema": "transfer", + "jdbcTypeName": "DATETIME", "numericScale": 0, "columnComment": "", "columnDefault": + "CURRENT_TIMESTAMP", "ordinalPosition": 3, "numericPrecision": 0, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 2 + - balance + - 7193543739002847296 + - 1724608954647977984 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "MUL", "tableName": "accounts_col_index_$c9a1", "columnName": + "balance", "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 4, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 219 + - ncol4 + - 7193543739002847296 + - 1724608954647977984 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol4", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "1000", "ordinalPosition": 5, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 219 + - ncol4 + - 7193543742509285440 + - 1724608958154416128 + - '{"flag": 0, "extra": "", "status": 0, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol4", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "1000", "ordinalPosition": 5, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 2 + - balance + - 7193543746003140672 + - 1724608961648271360 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "MUL", "tableName": "accounts_col_index_$c9a1", "columnName": + "balance", "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 2, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 3 + - version + - 7193543746003140672 + - 1724608961648271360 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "version", + "columnType": "int(11)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "0", "ordinalPosition": 3, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 4 + - gmt_modified + - 7193543746003140672 + - 1724608961648271360 + - '{"flag": 0, "extra": "on update CURRENT_TIMESTAMP", "status": 1, "version": 1, + "dataType": "datetime", "jdbcType": 93, "columnKey": "", "tableName": "accounts_col_index_$c9a1", + "columnName": "gmt_modified", "columnType": "datetime", "isNullable": "YES", "privileges": + "select,insert,update,references", "fieldLength": 19, "tableSchema": "transfer", + "jdbcTypeName": "DATETIME", "numericScale": 0, "columnComment": "", "columnDefault": + "CURRENT_TIMESTAMP", "ordinalPosition": 4, "numericPrecision": 0, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 229 + - ncol1 + - 7193543748666523712 + - 1724608964320043008 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol1", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 5, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 230 + - ncol2 + - 7193543751338295360 + - 1724608966996008960 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol2", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "999", "ordinalPosition": 1, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 1 + - id + - 7193543751338295360 + - 1724608966996008960 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "bigint", "jdbcType": + -5, "columnKey": "PRI", "tableName": "accounts_col_index_$c9a1", "columnName": + "id", "columnType": "bigint(20)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 20, "tableSchema": "transfer", "jdbcTypeName": "BIGINT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 2, "numericPrecision": 19, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 2 + - balance + - 7193543751338295360 + - 1724608966996008960 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "MUL", "tableName": "accounts_col_index_$c9a1", "columnName": + "balance", "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 3, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 3 + - version + - 7193543751338295360 + - 1724608966996008960 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "version", + "columnType": "int(11)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "0", "ordinalPosition": 4, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 4 + - gmt_modified + - 7193543751338295360 + - 1724608966996008960 + - '{"flag": 0, "extra": "on update CURRENT_TIMESTAMP", "status": 1, "version": 1, + "dataType": "datetime", "jdbcType": 93, "columnKey": "", "tableName": "accounts_col_index_$c9a1", + "columnName": "gmt_modified", "columnType": "datetime", "isNullable": "YES", "privileges": + "select,insert,update,references", "fieldLength": 19, "tableSchema": "transfer", + "jdbcTypeName": "DATETIME", "numericScale": 0, "columnComment": "", "columnDefault": + "CURRENT_TIMESTAMP", "ordinalPosition": 5, "numericPrecision": 0, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 229 + - ncol1 + - 7193543751338295360 + - 1724608966996008960 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol1", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 6, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 236 + - ncol3 + - 7193543754010067008 + - 1724608969671974912 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol3", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 2, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 1 + - id + - 7193543754010067008 + - 1724608969671974912 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "bigint", "jdbcType": + -5, "columnKey": "PRI", "tableName": "accounts_col_index_$c9a1", "columnName": + "id", "columnType": "bigint(20)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 20, "tableSchema": "transfer", "jdbcTypeName": "BIGINT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 3, "numericPrecision": 19, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 2 + - balance + - 7193543754010067008 + - 1724608969671974912 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "MUL", "tableName": "accounts_col_index_$c9a1", "columnName": + "balance", "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 4, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 3 + - version + - 7193543754010067008 + - 1724608969671974912 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "version", + "columnType": "int(11)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "0", "ordinalPosition": 5, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 4 + - gmt_modified + - 7193543754010067008 + - 1724608969671974912 + - '{"flag": 0, "extra": "on update CURRENT_TIMESTAMP", "status": 1, "version": 1, + "dataType": "datetime", "jdbcType": 93, "columnKey": "", "tableName": "accounts_col_index_$c9a1", + "columnName": "gmt_modified", "columnType": "datetime", "isNullable": "YES", "privileges": + "select,insert,update,references", "fieldLength": 19, "tableSchema": "transfer", + "jdbcTypeName": "DATETIME", "numericScale": 0, "columnComment": "", "columnDefault": + "CURRENT_TIMESTAMP", "ordinalPosition": 6, "numericPrecision": 0, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 229 + - ncol1 + - 7193543754010067008 + - 1724608969671974912 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol1", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 7, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 229 + - ncol1 + - 7193543756694421568 + - 1724608972343746560 + - '{"flag": 0, "extra": "", "status": 0, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol1", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 7, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 230 + - ncol2 + - 7193543760205054016 + - 1724608975837601792 + - '{"flag": 0, "extra": "", "status": 0, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol2", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "999", "ordinalPosition": 1, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 236 + - ncol3 + - 7193543760205054016 + - 1724608975837601792 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol3", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 1, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 1 + - id + - 7193543760205054016 + - 1724608975837601792 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "bigint", "jdbcType": + -5, "columnKey": "PRI", "tableName": "accounts_col_index_$c9a1", "columnName": + "id", "columnType": "bigint(20)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 20, "tableSchema": "transfer", "jdbcTypeName": "BIGINT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 2, "numericPrecision": 19, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 2 + - balance + - 7193543760205054016 + - 1724608975837601792 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "MUL", "tableName": "accounts_col_index_$c9a1", "columnName": + "balance", "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 3, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 3 + - version + - 7193543760205054016 + - 1724608975837601792 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "version", + "columnType": "int(11)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "0", "ordinalPosition": 4, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 4 + - gmt_modified + - 7193543760205054016 + - 1724608975837601792 + - '{"flag": 0, "extra": "on update CURRENT_TIMESTAMP", "status": 1, "version": 1, + "dataType": "datetime", "jdbcType": 93, "columnKey": "", "tableName": "accounts_col_index_$c9a1", + "columnName": "gmt_modified", "columnType": "datetime", "isNullable": "YES", "privileges": + "select,insert,update,references", "fieldLength": 19, "tableSchema": "transfer", + "jdbcTypeName": "DATETIME", "numericScale": 0, "columnComment": "", "columnDefault": + "CURRENT_TIMESTAMP", "ordinalPosition": 5, "numericPrecision": 0, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 2 + - balance + - 7193543763694714944 + - 1724608979339845632 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "bigint", "jdbcType": + -5, "columnKey": "MUL", "tableName": "accounts_col_index_$c9a1", "columnName": + "balance", "columnType": "bigint(20)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 20, "tableSchema": "transfer", "jdbcTypeName": "BIGINT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 3, "numericPrecision": 19, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 3 + - version + - 7193543763694714944 + - 1724608979339845632 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "version", + "columnType": "int(11)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "0", "ordinalPosition": 4, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 4 + - gmt_modified + - 7193543763694714944 + - 1724608979339845632 + - '{"flag": 0, "extra": "on update CURRENT_TIMESTAMP", "status": 1, "version": 1, + "dataType": "datetime", "jdbcType": 93, "columnKey": "", "tableName": "accounts_col_index_$c9a1", + "columnName": "gmt_modified", "columnType": "datetime", "isNullable": "YES", "privileges": + "select,insert,update,references", "fieldLength": 19, "tableSchema": "transfer", + "jdbcTypeName": "DATETIME", "numericScale": 0, "columnComment": "", "columnDefault": + "CURRENT_TIMESTAMP", "ordinalPosition": 5, "numericPrecision": 0, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 2 + - balance + - 7193543766349709376 + - 1724608981994840064 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "varchar", "jdbcType": + 12, "columnKey": "MUL", "tableName": "accounts_col_index_$c9a1", "columnName": + "balance", "columnType": "varchar(20)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 80, "tableSchema": "transfer", "jdbcTypeName": "VARCHAR", "numericScale": + 0, "collationName": "utf8mb4_general_ci", "columnComment": "", "ordinalPosition": + 3, "characterSetName": "utf8mb4", "numericPrecision": 0, "datetimePrecision": + 0, "characterOctetLength": 80, "generationExpression": "", "characterMaximumLength": + 20}' +- + - 1 + - 3 + - version + - 7193543766349709376 + - 1724608981994840064 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "version", + "columnType": "int(11)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "0", "ordinalPosition": 4, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 4 + - gmt_modified + - 7193543766349709376 + - 1724608981994840064 + - '{"flag": 0, "extra": "on update CURRENT_TIMESTAMP", "status": 1, "version": 1, + "dataType": "datetime", "jdbcType": 93, "columnKey": "", "tableName": "accounts_col_index_$c9a1", + "columnName": "gmt_modified", "columnType": "datetime", "isNullable": "YES", "privileges": + "select,insert,update,references", "fieldLength": 19, "tableSchema": "transfer", + "jdbcTypeName": "DATETIME", "numericScale": 0, "columnComment": "", "columnDefault": + "CURRENT_TIMESTAMP", "ordinalPosition": 5, "numericPrecision": 0, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 2 + - balance + - 7193543769013092416 + - 1724608984649834496 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "MUL", "tableName": "accounts_col_index_$c9a1", "columnName": + "balance", "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 1, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 236 + - ncol3 + - 7193543769013092416 + - 1724608984649834496 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol3", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 2, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 1 + - id + - 7193543769013092416 + - 1724608984649834496 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "bigint", "jdbcType": + -5, "columnKey": "PRI", "tableName": "accounts_col_index_$c9a1", "columnName": + "id", "columnType": "bigint(20)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 20, "tableSchema": "transfer", "jdbcTypeName": "BIGINT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 3, "numericPrecision": 19, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 3 + - version + - 7193543769013092416 + - 1724608984649834496 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "version", + "columnType": "int(11)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "0", "ordinalPosition": 4, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 4 + - gmt_modified + - 7193543769013092416 + - 1724608984649834496 + - '{"flag": 0, "extra": "on update CURRENT_TIMESTAMP", "status": 1, "version": 1, + "dataType": "datetime", "jdbcType": 93, "columnKey": "", "tableName": "accounts_col_index_$c9a1", + "columnName": "gmt_modified", "columnType": "datetime", "isNullable": "YES", "privileges": + "select,insert,update,references", "fieldLength": 19, "tableSchema": "transfer", + "jdbcTypeName": "DATETIME", "numericScale": 0, "columnComment": "", "columnDefault": + "CURRENT_TIMESTAMP", "ordinalPosition": 5, "numericPrecision": 0, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 236 + - ncol3 + - 7193543771668086848 + - 1724608987329994752 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol3", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 1, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 1 + - id + - 7193543771668086848 + - 1724608987329994752 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "bigint", "jdbcType": + -5, "columnKey": "PRI", "tableName": "accounts_col_index_$c9a1", "columnName": + "id", "columnType": "bigint(20)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 20, "tableSchema": "transfer", "jdbcTypeName": "BIGINT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 2, "numericPrecision": 19, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 3 + - version + - 7193543771668086848 + - 1724608987329994752 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "version", + "columnType": "int(11)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "0", "ordinalPosition": 3, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 4 + - gmt_modified + - 7193543771668086848 + - 1724608987329994752 + - '{"flag": 0, "extra": "on update CURRENT_TIMESTAMP", "status": 1, "version": 1, + "dataType": "datetime", "jdbcType": 93, "columnKey": "", "tableName": "accounts_col_index_$c9a1", + "columnName": "gmt_modified", "columnType": "datetime", "isNullable": "YES", "privileges": + "select,insert,update,references", "fieldLength": 19, "tableSchema": "transfer", + "jdbcTypeName": "DATETIME", "numericScale": 0, "columnComment": "", "columnDefault": + "CURRENT_TIMESTAMP", "ordinalPosition": 4, "numericPrecision": 0, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 2 + - balance + - 7193543771668086848 + - 1724608987329994752 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "MUL", "tableName": "accounts_col_index_$c9a1", "columnName": + "balance", "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 5, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 236 + - ncol_3 + - 7193543774344052800 + - 1724608989989183488 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol_3", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 1, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 1 + - id + - 7193543774344052800 + - 1724608989989183488 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "bigint", "jdbcType": + -5, "columnKey": "PRI", "tableName": "accounts_col_index_$c9a1", "columnName": + "id", "columnType": "bigint(20)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 20, "tableSchema": "transfer", "jdbcTypeName": "BIGINT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 2, "numericPrecision": 19, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 3 + - version + - 7193543774344052800 + - 1724608989989183488 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "version", + "columnType": "int(11)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "0", "ordinalPosition": 3, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 4 + - gmt_modified + - 7193543774344052800 + - 1724608989989183488 + - '{"flag": 0, "extra": "on update CURRENT_TIMESTAMP", "status": 1, "version": 1, + "dataType": "datetime", "jdbcType": 93, "columnKey": "", "tableName": "accounts_col_index_$c9a1", + "columnName": "gmt_modified", "columnType": "datetime", "isNullable": "YES", "privileges": + "select,insert,update,references", "fieldLength": 19, "tableSchema": "transfer", + "jdbcTypeName": "DATETIME", "numericScale": 0, "columnComment": "", "columnDefault": + "CURRENT_TIMESTAMP", "ordinalPosition": 4, "numericPrecision": 0, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 2 + - balance + - 7193543774344052800 + - 1724608989989183488 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "MUL", "tableName": "accounts_col_index_$c9a1", "columnName": + "balance", "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 5, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 1 + - id + - 7193543777003241536 + - 1724608992648372224 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "bigint", "jdbcType": + -5, "columnKey": "PRI", "tableName": "accounts_col_index_$c9a1", "columnName": + "id", "columnType": "bigint(20)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 20, "tableSchema": "transfer", "jdbcTypeName": "BIGINT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 1, "numericPrecision": 19, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 236 + - ncol3 + - 7193543777003241536 + - 1724608992648372224 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "bigint", "jdbcType": + -5, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol3", + "columnType": "bigint(20)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 20, "tableSchema": "transfer", "jdbcTypeName": "BIGINT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 2, "numericPrecision": 19, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 3 + - version + - 7193543777003241536 + - 1724608992648372224 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "version", + "columnType": "int(11)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "0", "ordinalPosition": 3, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 4 + - gmt_modified + - 7193543777003241536 + - 1724608992648372224 + - '{"flag": 0, "extra": "on update CURRENT_TIMESTAMP", "status": 1, "version": 1, + "dataType": "datetime", "jdbcType": 93, "columnKey": "", "tableName": "accounts_col_index_$c9a1", + "columnName": "gmt_modified", "columnType": "datetime", "isNullable": "YES", "privileges": + "select,insert,update,references", "fieldLength": 19, "tableSchema": "transfer", + "jdbcTypeName": "DATETIME", "numericScale": 0, "columnComment": "", "columnDefault": + "CURRENT_TIMESTAMP", "ordinalPosition": 4, "numericPrecision": 0, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 2 + - balance + - 7193543777003241536 + - 1724608992648372224 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "MUL", "tableName": "accounts_col_index_$c9a1", "columnName": + "balance", "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 5, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 275 + - ncol4 + - 7193543779666624576 + - 1724608995336921088 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol4", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "1000", "ordinalPosition": 6, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 236 + - ncol3 + - 7193543781931548736 + - 1724608997580873728 + - '{"flag": 0, "extra": "", "status": 0, "version": 1, "dataType": "bigint", "jdbcType": + -5, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol3", + "columnType": "bigint(20)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 20, "tableSchema": "transfer", "jdbcTypeName": "BIGINT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 2, "numericPrecision": 19, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 3 + - version + - 7193543781931548736 + - 1724608997580873728 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "version", + "columnType": "int(11)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "0", "ordinalPosition": 2, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 4 + - gmt_modified + - 7193543781931548736 + - 1724608997580873728 + - '{"flag": 0, "extra": "on update CURRENT_TIMESTAMP", "status": 1, "version": 1, + "dataType": "datetime", "jdbcType": 93, "columnKey": "", "tableName": "accounts_col_index_$c9a1", + "columnName": "gmt_modified", "columnType": "datetime", "isNullable": "YES", "privileges": + "select,insert,update,references", "fieldLength": 19, "tableSchema": "transfer", + "jdbcTypeName": "DATETIME", "numericScale": 0, "columnComment": "", "columnDefault": + "CURRENT_TIMESTAMP", "ordinalPosition": 3, "numericPrecision": 0, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 2 + - balance + - 7193543781931548736 + - 1724608997580873728 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "MUL", "tableName": "accounts_col_index_$c9a1", "columnName": + "balance", "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 4, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 275 + - ncol4 + - 7193543781931548736 + - 1724608997580873728 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol4", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "1000", "ordinalPosition": 5, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 275 + - ncol4 + - 7193543785429598272 + - 1724609001074728960 + - '{"flag": 0, "extra": "", "status": 0, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "ncol4", + "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "1000", "ordinalPosition": 5, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 2 + - balance + - 7193543788931842112 + - 1724609004572778496 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "MUL", "tableName": "accounts_col_index_$c9a1", "columnName": + "balance", "columnType": "int(11)", "isNullable": "YES", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "ordinalPosition": 2, "numericPrecision": 10, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' +- + - 1 + - 3 + - version + - 7193543788931842112 + - 1724609004572778496 + - '{"flag": 0, "extra": "", "status": 1, "version": 1, "dataType": "int", "jdbcType": + 4, "columnKey": "", "tableName": "accounts_col_index_$c9a1", "columnName": "version", + "columnType": "int(11)", "isNullable": "NO", "privileges": "select,insert,update,references", + "fieldLength": 11, "tableSchema": "transfer", "jdbcTypeName": "INT", "numericScale": + 0, "columnComment": "", "columnDefault": "0", "ordinalPosition": 3, "numericPrecision": + 10, "datetimePrecision": 0, "characterOctetLength": 0, "generationExpression": + "", "characterMaximumLength": 0}' +- + - 1 + - 4 + - gmt_modified + - 7193543788931842112 + - 1724609004572778496 + - '{"flag": 0, "extra": "on update CURRENT_TIMESTAMP", "status": 1, "version": 1, + "dataType": "datetime", "jdbcType": 93, "columnKey": "", "tableName": "accounts_col_index_$c9a1", + "columnName": "gmt_modified", "columnType": "datetime", "isNullable": "YES", "privileges": + "select,insert,update,references", "fieldLength": 19, "tableSchema": "transfer", + "jdbcTypeName": "DATETIME", "numericScale": 0, "columnComment": "", "columnDefault": + "CURRENT_TIMESTAMP", "ordinalPosition": 4, "numericPrecision": 0, "datetimePrecision": + 0, "characterOctetLength": 0, "generationExpression": "", "characterMaximumLength": + 0}' diff --git a/polardbx-executor/src/test/resources/dec_val.orc b/polardbx-executor/src/test/resources/dec_val.orc new file mode 100644 index 000000000..cb83ba46d Binary files /dev/null and b/polardbx-executor/src/test/resources/dec_val.orc differ diff --git a/polardbx-executor/src/test/resources/dec_val_null.orc b/polardbx-executor/src/test/resources/dec_val_null.orc new file mode 100644 index 000000000..85b37ee33 Binary files /dev/null and b/polardbx-executor/src/test/resources/dec_val_null.orc differ diff --git a/polardbx-executor/src/test/resources/dict_dec_all_null.orc b/polardbx-executor/src/test/resources/dict_dec_all_null.orc new file mode 100644 index 000000000..801b6e742 Binary files /dev/null and b/polardbx-executor/src/test/resources/dict_dec_all_null.orc differ diff --git a/polardbx-gms/pom.xml b/polardbx-gms/pom.xml index ca3c36702..0e7e646cf 100644 --- a/polardbx-gms/pom.xml +++ b/polardbx-gms/pom.xml @@ -73,6 +73,31 @@ ${truth.version} test + + org.apache.hadoop + hadoop-client + ${hadoop.version} + + + commons-logging + commons-logging + + + slf4j-api + org.slf4j + + + + + org.apache.hadoop + hadoop-aws + ${hadoop.version} + + + org.apache.hadoop + hadoop-azure + ${hadoop.version} + diff --git a/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/config/impl/InstConfUtil.java b/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/config/impl/InstConfUtil.java index 0181bdfc7..9484f9717 100644 --- a/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/config/impl/InstConfUtil.java +++ b/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/config/impl/InstConfUtil.java @@ -21,16 +21,19 @@ import com.alibaba.polardbx.common.properties.FloatConfigParam; import com.alibaba.polardbx.common.properties.IntConfigParam; import com.alibaba.polardbx.common.properties.LongConfigParam; +import com.alibaba.polardbx.common.properties.StringConfigParam; import com.alibaba.polardbx.common.utils.logger.Logger; import com.alibaba.polardbx.common.utils.logger.LoggerFactory; -import java.text.ParseException; import java.util.Calendar; import java.util.HashMap; import java.util.Map; import static com.alibaba.polardbx.common.properties.ConnectionParams.MAINTENANCE_TIME_END; import static com.alibaba.polardbx.common.properties.ConnectionParams.MAINTENANCE_TIME_START; +import static com.alibaba.polardbx.common.properties.ConnectionParams.REBALANCE_MAINTENANCE_ENABLE; +import static com.alibaba.polardbx.common.properties.ConnectionParams.REBALANCE_MAINTENANCE_TIME_END; +import static com.alibaba.polardbx.common.properties.ConnectionParams.REBALANCE_MAINTENANCE_TIME_START; /** * @author fangwu @@ -49,13 +52,45 @@ public static Map fetchLongConfigs(LongConfigParam... props) { } public static boolean isInMaintenanceTimeWindow() { - return isInMaintenanceTimeWindow(Calendar.getInstance()); + return isInMaintenanceTimeWindow(Calendar.getInstance(), MAINTENANCE_TIME_START, MAINTENANCE_TIME_END); } - public static boolean isInMaintenanceTimeWindow(Calendar calendar) { + public static boolean isInRebalanceMaintenanceTimeWindow() { + return isInRebalanceMaintenanceTimeWindow(REBALANCE_MAINTENANCE_TIME_START, REBALANCE_MAINTENANCE_TIME_END, + REBALANCE_MAINTENANCE_ENABLE); + } + + public static boolean isInRebalanceMaintenanceTimeWindow(StringConfigParam maintenanceTimeStart, + StringConfigParam maintenanceTimeEnd, + BooleanConfigParam rebalanceMainTenanceEnable) { + boolean enabled = getBool(rebalanceMainTenanceEnable); + if (!enabled) { + return true;// no limit, always works. + } + String startTime = getOriginVal(maintenanceTimeStart); + String endTime = getOriginVal(maintenanceTimeEnd); + try { + int startTimeInt = getMinute(startTime); + int endTimeInt = getMinute(endTime); + if (startTimeInt == endTimeInt) { + return true;// no limit, always works. + } + } catch (Exception e) { + logger.error( + "rebalance maintenance time parse error, check config " + maintenanceTimeStart + "/" + + maintenanceTimeEnd, + e); + return false; + } + return isInMaintenanceTimeWindow(Calendar.getInstance(), + maintenanceTimeStart, maintenanceTimeEnd); + } + + public static boolean isInMaintenanceTimeWindow(Calendar calendar, StringConfigParam maintenanceTimeStart, + StringConfigParam maintenanceTimeEnd) { int currentMinute = calendar.get(Calendar.MINUTE) + calendar.get(Calendar.HOUR_OF_DAY) * 60; - String startTime = getOriginVal(MAINTENANCE_TIME_START); - String endTime = getOriginVal(MAINTENANCE_TIME_END); + String startTime = getOriginVal(maintenanceTimeStart); + String endTime = getOriginVal(maintenanceTimeEnd); try { int startTimeInt = getMinute(startTime); int endTimeInt = getMinute(endTime); @@ -72,7 +107,7 @@ public static boolean isInMaintenanceTimeWindow(Calendar calendar) { } catch (Exception e) { logger.error( - "maintenance time parse error, check config " + MAINTENANCE_TIME_START + "/" + MAINTENANCE_TIME_END, + "maintenance time parse error, check config " + maintenanceTimeStart + "/" + maintenanceTimeEnd, e); return false; } @@ -90,7 +125,7 @@ private static void checkTimeValid(int startTimeInt, int endTimeInt) throws Exce /** * @param time like 05:00 */ - private static int getMinute(String time) { + public static int getMinute(String time) { int hour = Integer.parseInt(time.split(":")[0]); int minute = Integer.parseInt(time.split(":")[1]); @@ -105,6 +140,14 @@ public static Boolean getBool(BooleanConfigParam c) { return Boolean.valueOf(val).booleanValue(); } + public static Boolean getValBool(String name) { + String val = MetaDbInstConfigManager.getInstance().getCnVariableConfigMap().getProperty(name); + if (val == null) { + return false; + } + return Boolean.valueOf(val).booleanValue(); + } + /** * Get this parameter from the environment wide configuration settings. * diff --git a/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/engine/ABSInstanceInitializer.java b/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/engine/ABSInstanceInitializer.java new file mode 100644 index 000000000..aa7fb838b --- /dev/null +++ b/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/engine/ABSInstanceInitializer.java @@ -0,0 +1,129 @@ +/* + * Copyright [2013-2021], Alibaba Group Holding Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.alibaba.polardbx.gms.engine; + +import com.alibaba.polardbx.common.Engine; +import com.alibaba.polardbx.common.oss.filesystem.FileSystemRateLimiter; +import com.alibaba.polardbx.common.oss.filesystem.cache.CacheManager; +import com.alibaba.polardbx.common.oss.filesystem.cache.FileMergeCacheManager; +import com.alibaba.polardbx.common.oss.filesystem.cache.FileMergeCachingFileSystem; +import com.alibaba.polardbx.common.properties.FileConfig; +import com.alibaba.polardbx.common.utils.GeneralUtil; +import com.alibaba.polardbx.gms.engine.decorator.FileSystemDecorator; +import com.alibaba.polardbx.gms.engine.decorator.FileSystemStrategy; +import com.alibaba.polardbx.gms.engine.decorator.impl.ABSFileSystemWrapper; +import com.alibaba.polardbx.gms.engine.decorator.impl.FileSystemStrategyImpl; +import com.alibaba.polardbx.gms.engine.decorator.impl.SecureABSFileSystemWrapper; +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.fs.FileSystem; + +import java.io.IOException; +import java.net.URI; + +import static com.alibaba.polardbx.common.oss.filesystem.Constants.ABS_ACCOUNT_KEY_PATTERN; +import static com.alibaba.polardbx.common.oss.filesystem.Constants.AZURE_WASBS_SCHEME; + +public class ABSInstanceInitializer { + public String accessKeyIdValue; + public String accessKeySecretValue; + public String bucketUri; + public String endpointValue; + public CachePolicy cachePolicy; + + private ABSInstanceInitializer() { + } + + public static ABSInstanceInitializer newBuilder() { + return new ABSInstanceInitializer(); + } + + public ABSInstanceInitializer accessKeyIdValue(String accessKeyIdValue) { + this.accessKeyIdValue = accessKeyIdValue; + return this; + } + + public ABSInstanceInitializer accessKeySecretValue(String accessKeySecretValue) { + this.accessKeySecretValue = accessKeySecretValue; + return this; + } + + public ABSInstanceInitializer bucketName(String bucketUri) { + this.bucketUri = bucketUri; + return this; + } + + public ABSInstanceInitializer endpointValue(String endpointValue) { + this.endpointValue = endpointValue; + return this; + } + + public ABSInstanceInitializer cachePolicy(CachePolicy cachePolicy) { + this.cachePolicy = cachePolicy; + return this; + } + + public FileSystem initialize() { + CacheManager cacheManager = null; + FileSystem absFileSystem = null; + try { + cacheManager = FileMergeCacheManager.createMergeCacheManager(Engine.S3); + URI s3FileUri = URI.create(this.bucketUri); + absFileSystem = createABSFileSystem(s3FileUri, + cachePolicy == CachePolicy.META_CACHE || cachePolicy == CachePolicy.META_AND_DATA_CACHE); + URI fsUri = absFileSystem.getUri(); + Configuration factoryConfig = new Configuration(); + final boolean validationEnabled = FileConfig.getInstance().getCacheConfig().isValidationEnabled(); + + return new FileMergeCachingFileSystem(fsUri, factoryConfig, cacheManager, absFileSystem, validationEnabled, + true); + } catch (Throwable t) { + if (cacheManager != null) { + try { + cacheManager.close(); + } catch (Throwable t1) { + // ignore + } + } + if (absFileSystem != null) { + try { + absFileSystem.close(); + } catch (Throwable t1) { + // ignore + } + } + throw GeneralUtil.nestedException("Fail to create ABS file system!", t); + } + } + + private synchronized FileSystem createABSFileSystem(URI absFileUri, boolean enableCache) throws IOException { + FileSystemRateLimiter rateLimiter = FileSystemUtils.newRateLimiter(); + FileSystemStrategy strategy = new FileSystemStrategyImpl(enableCache, rateLimiter); + FileSystemDecorator fsDecorator; + if (AZURE_WASBS_SCHEME.equalsIgnoreCase(absFileUri.getScheme())) { + // wasbs:// + fsDecorator = new FileSystemDecorator(new SecureABSFileSystemWrapper(), strategy); + } else { + // wasb:// + fsDecorator = new FileSystemDecorator(new ABSFileSystemWrapper(), strategy); + } + Configuration fsConf = new Configuration(); + String absAccountKey = String.format(ABS_ACCOUNT_KEY_PATTERN, this.accessKeyIdValue, this.endpointValue); + fsConf.set(absAccountKey, this.accessKeySecretValue); + fsDecorator.initialize(absFileUri, fsConf); + return fsDecorator; + } +} diff --git a/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/engine/FileStorageInfoKey.java b/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/engine/FileStorageInfoKey.java index 76ea4f176..aedd0ddc0 100644 --- a/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/engine/FileStorageInfoKey.java +++ b/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/engine/FileStorageInfoKey.java @@ -37,7 +37,30 @@ public enum FileStorageInfoKey { DELETE_POLICY, STATUS, - ENDPOINT_ORDINAL; + ENDPOINT_ORDINAL, + + // DefaultEndpointsProtocol=https;AccountName=openpolardbx;AccountKey=xxxxxxxxxx+x/xxxxxxxxx/xxxx+xx==;EndpointSuffix=core.windows.net + AZURE_CONNECTION_STRING, + AZURE_CONTAINER_NAME; + + public enum AzureConnectionStringKey { + DefaultEndpointsProtocol, + AccountName, + AccountKey, + EndpointSuffix; + + public static AzureConnectionStringKey of(String key) { + if (TStringUtil.isEmpty(key)) { + return null; + } + for (AzureConnectionStringKey record : values()) { + if (record.name().equalsIgnoreCase(key)) { + return record; + } + } + return null; + } + } public static FileStorageInfoKey of(String key) { if (TStringUtil.isEmpty(key)) { diff --git a/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/engine/FileStoreStatistics.java b/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/engine/FileStoreStatistics.java index 751a8bc9f..cf28f2bcf 100644 --- a/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/engine/FileStoreStatistics.java +++ b/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/engine/FileStoreStatistics.java @@ -21,6 +21,7 @@ import com.alibaba.polardbx.common.oss.filesystem.FileSystemRateLimiter; import com.alibaba.polardbx.common.oss.filesystem.NFSFileSystem; import com.alibaba.polardbx.common.oss.filesystem.OSSFileSystem; +import com.alibaba.polardbx.common.oss.filesystem.RateLimitable; import com.alibaba.polardbx.common.oss.filesystem.cache.CacheConfig; import com.alibaba.polardbx.common.oss.filesystem.cache.CacheManager; import com.alibaba.polardbx.common.oss.filesystem.cache.CacheStats; @@ -109,12 +110,8 @@ private static void foreachFileSystem(FileSystem fileSystem, Engine engine, bool if (fileSystem instanceof FileMergeCachingFileSystem) { FileSystem dataTierFileSystem = ((FileMergeCachingFileSystem) fileSystem).getDataTier(); - if (dataTierFileSystem instanceof OSSFileSystem) { - FileSystemRateLimiter rateLimiter = ((OSSFileSystem) dataTierFileSystem).getRateLimiter(); - statsBuilder.put(StatisticItem.MAX_READ_RATE, String.valueOf(rateLimiter.getReadRate())); - statsBuilder.put(StatisticItem.MAX_WRITE_RATE, String.valueOf(rateLimiter.getWriteRate())); - } else if (dataTierFileSystem instanceof NFSFileSystem) { - FileSystemRateLimiter rateLimiter = ((NFSFileSystem) dataTierFileSystem).getRateLimiter(); + if (dataTierFileSystem instanceof RateLimitable) { + FileSystemRateLimiter rateLimiter = ((RateLimitable) dataTierFileSystem).getRateLimiter(); statsBuilder.put(StatisticItem.MAX_READ_RATE, String.valueOf(rateLimiter.getReadRate())); statsBuilder.put(StatisticItem.MAX_WRITE_RATE, String.valueOf(rateLimiter.getWriteRate())); } else { diff --git a/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/engine/FileSystemManager.java b/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/engine/FileSystemManager.java index ae0c01164..665382a74 100644 --- a/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/engine/FileSystemManager.java +++ b/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/engine/FileSystemManager.java @@ -20,15 +20,10 @@ import com.alibaba.polardbx.common.exception.TddlRuntimeException; import com.alibaba.polardbx.common.exception.code.ErrorCode; import com.alibaba.polardbx.common.oss.filesystem.FileSystemRateLimiter; -import com.alibaba.polardbx.common.oss.filesystem.NFSFileSystem; -import com.alibaba.polardbx.common.oss.filesystem.OSSFileSystem; -import com.alibaba.polardbx.common.oss.filesystem.cache.CacheManager; -import com.alibaba.polardbx.common.oss.filesystem.cache.CacheType; -import com.alibaba.polardbx.common.oss.filesystem.cache.FileMergeCacheManager; +import com.alibaba.polardbx.common.oss.filesystem.RateLimitable; import com.alibaba.polardbx.common.oss.filesystem.cache.FileMergeCachingFileSystem; import com.alibaba.polardbx.common.properties.ConnectionParams; import com.alibaba.polardbx.common.properties.ConnectionProperties; -import com.alibaba.polardbx.common.properties.FileConfig; import com.alibaba.polardbx.common.utils.GeneralUtil; import com.alibaba.polardbx.common.utils.thread.NamedThreadFactory; import com.alibaba.polardbx.common.utils.time.parser.StringNumericParser; @@ -62,8 +57,6 @@ import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; -import static com.google.common.base.Preconditions.checkState; - public class FileSystemManager { private ThreadPoolExecutor executor; @@ -147,27 +140,30 @@ public static void resetRate() { final Long writeRate = Optional.ofNullable(configs.get(ConnectionProperties.OSS_FS_MAX_WRITE_RATE)) .orElse(StringNumericParser.simplyParseLong(ConnectionParams.OSS_FS_MAX_WRITE_RATE.getDefault())); - FileSystemGroup fileSystemGroup = getFileSystemGroup(Engine.OSS); + for (Engine engine : Engine.values()) { + if (Engine.hasCache(engine)) { + // If the engine does not exist, just skip + FileSystemGroup fileSystemGroup = FileSystemManager.getFileSystemGroup(engine, false); + // reset rate-limiter of master && slave file system. + if (fileSystemGroup == null) { + continue; + } + FileMergeCachingFileSystem masterFs = (FileMergeCachingFileSystem) fileSystemGroup.getMaster(); + reloadRateLimiter(readRate, writeRate, masterFs); + for (FileSystem fs : fileSystemGroup.getSlaves()) { + FileMergeCachingFileSystem slaveFs = (FileMergeCachingFileSystem) fs; + reloadRateLimiter(readRate, writeRate, slaveFs); + } + } + } + } - // reset rate-limiter of master && slave file system. - FileMergeCachingFileSystem masterFs = (FileMergeCachingFileSystem) fileSystemGroup.getMaster(); - if (masterFs.getDataTier() instanceof OSSFileSystem) { - FileSystemRateLimiter rateLimiter = ((OSSFileSystem) masterFs.getDataTier()).getRateLimiter(); - rateLimiter.setReadRate(readRate); - rateLimiter.setWriteRate(writeRate); - } else if (masterFs.getDataTier() instanceof NFSFileSystem) { - FileSystemRateLimiter rateLimiter = ((NFSFileSystem) masterFs.getDataTier()).getRateLimiter(); + private static void reloadRateLimiter(Long readRate, Long writeRate, FileMergeCachingFileSystem cachingFileSystem) { + if (cachingFileSystem.getDataTier() instanceof RateLimitable) { + FileSystemRateLimiter rateLimiter = ((RateLimitable) cachingFileSystem.getDataTier()).getRateLimiter(); rateLimiter.setReadRate(readRate); rateLimiter.setWriteRate(writeRate); } - for (FileSystem fs : fileSystemGroup.getSlaves()) { - FileMergeCachingFileSystem slaveFs = (FileMergeCachingFileSystem) fs; - if (slaveFs.getDataTier() instanceof OSSFileSystem) { - FileSystemRateLimiter rateLimiter = ((OSSFileSystem) slaveFs.getDataTier()).getRateLimiter(); - rateLimiter.setReadRate(readRate); - rateLimiter.setWriteRate(writeRate); - } - } } private static FileStorageInfoRecord queryLatest(Engine engine) { @@ -281,8 +277,29 @@ public static FileSystem buildFileSystem(FileStorageInfoRecord record) throws IO .initialize(); return fileSystemWithDefaultDirectory(record.fileUri, nfsFileSystem); } + case S3: { + FileSystem s3FileSystem = + S3InstanceInitializer.newBuilder() + .accessKeyIdValue(record.accessKeyId) + .accessKeySecretValue(PasswdUtil.decrypt(record.accessKeySecret)) + .bucketName(record.fileUri) + .cachePolicy(CachePolicy.MAP.get(record.cachePolicy)) + .initialize(); + return fileSystemWithDefaultDirectory(record.fileUri, s3FileSystem); + } + case ABS: { + FileSystem absFileSystem = + ABSInstanceInitializer.newBuilder() + .endpointValue(record.externalEndpoint) + .accessKeyIdValue(record.accessKeyId) + .accessKeySecretValue(PasswdUtil.decrypt(record.accessKeySecret)) + .bucketName(record.fileUri) + .cachePolicy(CachePolicy.MAP.get(record.cachePolicy)) + .initialize(); + return fileSystemWithDefaultDirectory(record.fileUri, absFileSystem); + } default: - return null; + throw new TddlRuntimeException(ErrorCode.ERR_EXECUTE_ON_OSS, "bad engine = " + engine); } } diff --git a/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/engine/FileSystemUtils.java b/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/engine/FileSystemUtils.java index 5bfb5d414..8dc73f3e2 100644 --- a/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/engine/FileSystemUtils.java +++ b/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/engine/FileSystemUtils.java @@ -17,12 +17,16 @@ package com.alibaba.polardbx.gms.engine; import com.alibaba.polardbx.common.Engine; +import com.alibaba.polardbx.common.oss.filesystem.FileSystemRateLimiter; +import com.alibaba.polardbx.common.oss.filesystem.GuavaFileSystemRateLimiter; import com.alibaba.polardbx.common.oss.filesystem.OSSFileSystem; import com.alibaba.polardbx.common.oss.filesystem.cache.CachingFileSystem; import com.alibaba.polardbx.common.properties.ConnectionParams; import com.alibaba.polardbx.common.properties.ConnectionProperties; import com.alibaba.polardbx.common.properties.DynamicConfig; import com.alibaba.polardbx.common.utils.GeneralUtil; +import com.alibaba.polardbx.common.utils.time.parser.StringNumericParser; +import com.alibaba.polardbx.gms.config.impl.InstConfUtil; import com.alibaba.polardbx.gms.config.impl.MetaDbInstConfigManager; import com.alibaba.polardbx.gms.topology.ServerInstIdManager; import org.apache.commons.io.IOUtils; @@ -35,6 +39,8 @@ import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; +import java.util.Map; +import java.util.Optional; public class FileSystemUtils { @@ -161,4 +167,21 @@ private static String getColumnarDirectory() { private static String getColdDataDirectory() { return ServerInstIdManager.getInstance().getMasterInstId(); } + + public static GuavaFileSystemRateLimiter newRateLimiter() { + // fetch rate params + Map globalVariables = InstConfUtil.fetchLongConfigs( + ConnectionParams.OSS_FS_MAX_READ_RATE, + ConnectionParams.OSS_FS_MAX_WRITE_RATE + ); + Long maxReadRate = Optional.ofNullable(globalVariables.get(ConnectionProperties.OSS_FS_MAX_READ_RATE)) + .orElse(StringNumericParser.simplyParseLong(ConnectionParams.OSS_FS_MAX_READ_RATE.getDefault())); + Long maxWriteRate = Optional.ofNullable(globalVariables.get(ConnectionProperties.OSS_FS_MAX_WRITE_RATE)) + .orElse(StringNumericParser.simplyParseLong(ConnectionParams.OSS_FS_MAX_WRITE_RATE.getDefault())); + + return new GuavaFileSystemRateLimiter( + maxReadRate == null ? -1 : maxReadRate, + maxWriteRate == null ? -1 : maxWriteRate + ); + } } diff --git a/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/engine/NFSInstanceInitializer.java b/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/engine/NFSInstanceInitializer.java index 98bf7c582..6e06a9632 100644 --- a/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/engine/NFSInstanceInitializer.java +++ b/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/engine/NFSInstanceInitializer.java @@ -106,18 +106,8 @@ public FileSystem initialize() throws IOException { } private synchronized NFSFileSystem createNFSFileSystem(URI nfsUri, boolean enableCache) throws IOException { - Map globalVariables = InstConfUtil.fetchLongConfigs( - ConnectionParams.OSS_FS_MAX_READ_RATE, - ConnectionParams.OSS_FS_MAX_WRITE_RATE - ); - Long maxReadRate = Optional.ofNullable(globalVariables.get(ConnectionProperties.OSS_FS_MAX_READ_RATE)) - .orElse(StringNumericParser.simplyParseLong(ConnectionParams.OSS_FS_MAX_READ_RATE.getDefault())); - Long maxWriteRate = Optional.ofNullable(globalVariables.get(ConnectionProperties.OSS_FS_MAX_WRITE_RATE)) - .orElse(StringNumericParser.simplyParseLong(ConnectionParams.OSS_FS_MAX_WRITE_RATE.getDefault())); - - FileSystemRateLimiter rateLimiter = new GuavaFileSystemRateLimiter(maxReadRate, maxWriteRate); + FileSystemRateLimiter rateLimiter = FileSystemUtils.newRateLimiter(); NFSFileSystem nfsFileSystem = new NFSFileSystem(enableCache, rateLimiter); - nfsFileSystem.initialize(nfsUri, new Configuration()); return nfsFileSystem; } diff --git a/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/engine/OSSInstanceInitializer.java b/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/engine/OSSInstanceInitializer.java index f1c65134d..7164685dc 100644 --- a/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/engine/OSSInstanceInitializer.java +++ b/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/engine/OSSInstanceInitializer.java @@ -128,19 +128,9 @@ public FileSystem initialize() { private synchronized OSSFileSystem createOSSFileSystem(URI ossFileUri, boolean enableCache) throws IOException { - // fetch rate params - Map globalVariables = InstConfUtil.fetchLongConfigs( - ConnectionParams.OSS_FS_MAX_READ_RATE, - ConnectionParams.OSS_FS_MAX_WRITE_RATE - ); - Long maxReadRate = Optional.ofNullable(globalVariables.get(ConnectionProperties.OSS_FS_MAX_READ_RATE)) - .orElse(StringNumericParser.simplyParseLong(ConnectionParams.OSS_FS_MAX_READ_RATE.getDefault())); - Long maxWriteRate = Optional.ofNullable(globalVariables.get(ConnectionProperties.OSS_FS_MAX_WRITE_RATE)) - .orElse(StringNumericParser.simplyParseLong(ConnectionParams.OSS_FS_MAX_WRITE_RATE.getDefault())); - + FileSystemRateLimiter rateLimiter = FileSystemUtils.newRateLimiter(); // oss file system // oss://[accessKeyId:accessKeySecret@]bucket[.endpoint]/object/path - FileSystemRateLimiter rateLimiter = new GuavaFileSystemRateLimiter(maxReadRate, maxWriteRate); OSSFileSystem OSS_FILE_SYSTEM = new OSSFileSystem(enableCache, rateLimiter); Configuration fsConf = new Configuration(); fsConf.set(ACCESS_KEY_ID, this.accessKeyIdValue); diff --git a/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/engine/S3InstanceInitializer.java b/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/engine/S3InstanceInitializer.java new file mode 100644 index 000000000..9806c4875 --- /dev/null +++ b/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/engine/S3InstanceInitializer.java @@ -0,0 +1,117 @@ +/* + * Copyright [2013-2021], Alibaba Group Holding Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.alibaba.polardbx.gms.engine; + +import com.alibaba.polardbx.common.Engine; +import com.alibaba.polardbx.common.oss.filesystem.FileSystemRateLimiter; +import com.alibaba.polardbx.common.oss.filesystem.cache.CacheManager; +import com.alibaba.polardbx.common.oss.filesystem.cache.FileMergeCacheManager; +import com.alibaba.polardbx.common.oss.filesystem.cache.FileMergeCachingFileSystem; +import com.alibaba.polardbx.common.properties.FileConfig; +import com.alibaba.polardbx.common.utils.GeneralUtil; +import com.alibaba.polardbx.gms.engine.decorator.FileSystemDecorator; +import com.alibaba.polardbx.gms.engine.decorator.FileSystemStrategy; +import com.alibaba.polardbx.gms.engine.decorator.impl.FileSystemStrategyImpl; +import com.alibaba.polardbx.gms.engine.decorator.impl.S3AFileSystemWrapper; +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.fs.FileSystem; + +import java.io.IOException; +import java.net.URI; + +import static com.alibaba.polardbx.common.oss.filesystem.Constants.S3_ACCESS_KEY; +import static com.alibaba.polardbx.common.oss.filesystem.Constants.S3_SECRET_KEY; + +public class S3InstanceInitializer { + + public String accessKeyIdValue; + public String accessKeySecretValue; + public String bucketUri; + public CachePolicy cachePolicy; + + private S3InstanceInitializer() { + } + + public static S3InstanceInitializer newBuilder() { + return new S3InstanceInitializer(); + } + + public S3InstanceInitializer accessKeyIdValue(String accessKeyIdValue) { + this.accessKeyIdValue = accessKeyIdValue; + return this; + } + + public S3InstanceInitializer accessKeySecretValue(String accessKeySecretValue) { + this.accessKeySecretValue = accessKeySecretValue; + return this; + } + + public S3InstanceInitializer bucketName(String bucketUri) { + this.bucketUri = bucketUri; + return this; + } + + public S3InstanceInitializer cachePolicy(CachePolicy cachePolicy) { + this.cachePolicy = cachePolicy; + return this; + } + + public FileSystem initialize() { + CacheManager cacheManager = null; + FileSystem s3FileSystem = null; + try { + cacheManager = FileMergeCacheManager.createMergeCacheManager(Engine.S3); + URI s3FileUri = URI.create(this.bucketUri); + s3FileSystem = createS3FileSystem(s3FileUri, + cachePolicy == CachePolicy.META_CACHE || cachePolicy == CachePolicy.META_AND_DATA_CACHE); + URI fsUri = s3FileSystem.getUri(); + Configuration factoryConfig = new Configuration(); + final boolean validationEnabled = FileConfig.getInstance().getCacheConfig().isValidationEnabled(); + + return new FileMergeCachingFileSystem(fsUri, factoryConfig, cacheManager, s3FileSystem, validationEnabled, + true); + } catch (Throwable t) { + if (cacheManager != null) { + try { + cacheManager.close(); + } catch (Throwable t1) { + // ignore + } + } + if (s3FileSystem != null) { + try { + s3FileSystem.close(); + } catch (Throwable t1) { + // ignore + } + } + throw GeneralUtil.nestedException("Fail to create S3 file system!", t); + } + } + + private synchronized FileSystem createS3FileSystem(URI s3FileUri, boolean enableCache) throws IOException { + FileSystemRateLimiter rateLimiter = FileSystemUtils.newRateLimiter(); + FileSystemStrategy strategy = new FileSystemStrategyImpl(enableCache, rateLimiter); + S3AFileSystemWrapper fs = new S3AFileSystemWrapper(); + FileSystemDecorator fsDecorator = new FileSystemDecorator(fs, strategy); + Configuration fsConf = new Configuration(); + fsConf.set(S3_ACCESS_KEY, this.accessKeyIdValue); + fsConf.set(S3_SECRET_KEY, this.accessKeySecretValue); + fsDecorator.initialize(s3FileUri, fsConf); + return fsDecorator; + } +} diff --git a/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/engine/decorator/FileSystemDecorator.java b/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/engine/decorator/FileSystemDecorator.java new file mode 100644 index 000000000..f0e916943 --- /dev/null +++ b/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/engine/decorator/FileSystemDecorator.java @@ -0,0 +1,300 @@ +/* + * Copyright [2013-2021], Alibaba Group Holding Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.alibaba.polardbx.gms.engine.decorator; + +import com.alibaba.polardbx.common.oss.filesystem.FileSystemRateLimiter; +import com.alibaba.polardbx.common.oss.filesystem.RateLimitable; +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.fs.BlockLocation; +import org.apache.hadoop.fs.ContentSummary; +import org.apache.hadoop.fs.CreateFlag; +import org.apache.hadoop.fs.FSDataInputStream; +import org.apache.hadoop.fs.FSDataOutputStream; +import org.apache.hadoop.fs.FSDataOutputStreamBuilder; +import org.apache.hadoop.fs.FileChecksum; +import org.apache.hadoop.fs.FileStatus; +import org.apache.hadoop.fs.FileSystem; +import org.apache.hadoop.fs.LocatedFileStatus; +import org.apache.hadoop.fs.Path; +import org.apache.hadoop.fs.PathFilter; +import org.apache.hadoop.fs.RemoteIterator; +import org.apache.hadoop.fs.XAttrSetFlag; +import org.apache.hadoop.fs.permission.FsAction; +import org.apache.hadoop.fs.permission.FsPermission; +import org.apache.hadoop.security.token.DelegationTokenIssuer; +import org.apache.hadoop.util.Progressable; + +import java.io.FileNotFoundException; +import java.io.IOException; +import java.net.URI; +import java.util.EnumSet; +import java.util.List; +import java.util.Map; + +public class FileSystemDecorator extends FileSystem implements RateLimitable { + + FileSystem delegate; + FileSystemStrategy strategy; + + public FileSystemDecorator(FileSystem delegate, FileSystemStrategy strategy) { + if (!(delegate instanceof FileSystemWrapper)) { + throw new IllegalArgumentException("file system delegate must be a FileSystemWrapper"); + } + this.delegate = delegate; + this.strategy = strategy; + } + + /******************* Decorated Methods *******************/ + + @Override + public FSDataInputStream open(Path f, int bufferSize) throws IOException { + return strategy.open(delegate, f, bufferSize); + } + + @Override + public FSDataOutputStream create(Path f, FsPermission permission, boolean overwrite, int bufferSize, + short replication, long blockSize, Progressable progress) throws IOException { + return strategy.create(delegate, f, permission, overwrite, bufferSize, replication, blockSize, progress); + } + + @Override + public FSDataOutputStream append(Path f, int bufferSize, Progressable progress) throws IOException { + return strategy.append(delegate, f, bufferSize, progress); + } + + @Override + public FileStatus getFileStatus(Path f) throws IOException { + return strategy.getFileStatus(delegate, f); + } + + @Override + public FSDataOutputStream createNonRecursive(Path p, FsPermission permission, EnumSet flags, + int bufferSize, short replication, long blockSize, + Progressable progress) throws IOException { + return strategy.createNonRecursive(delegate, + p, permission, flags, bufferSize, replication, blockSize, progress); + } + + @Override + public FileSystemRateLimiter getRateLimiter() { + return strategy.getRateLimiter(); + } + + /******************* Forwarding Methods *******************/ + + @Override + public void initialize(URI uri, Configuration conf) throws IOException { + delegate.initialize(uri, conf); + } + + @Override + public boolean rename(Path src, Path dst) throws IOException { + return delegate.rename(src, dst); + } + + @Override + public boolean delete(Path f, boolean recursive) throws IOException { + return delegate.delete(f, recursive); + } + + @Override + public FileStatus[] listStatus(Path f) throws FileNotFoundException, IOException { + return delegate.listStatus(f); + } + + @Override + public void setWorkingDirectory(Path newDir) { + delegate.setWorkingDirectory(newDir); + } + + @Override + public Path getWorkingDirectory() { + return delegate.getWorkingDirectory(); + } + + @Override + public boolean mkdirs(Path f, FsPermission permission) throws IOException { + return delegate.mkdirs(f, permission); + } + + @Override + public URI getUri() { + return delegate.getUri(); + } + + @Override + public String getScheme() { + return delegate.getScheme(); + } + + @Override + public Path makeQualified(Path path) { + return delegate.makeQualified(path); + } + + @Override + public FSDataOutputStreamBuilder createFile(Path path) { + return delegate.createFile(path); + } + + @Override + public RemoteIterator listStatusIterator(Path p) throws FileNotFoundException, IOException { + return delegate.listStatusIterator(p); + } + + @Override + public ContentSummary getContentSummary(Path f) throws IOException { + return delegate.getContentSummary(f); + } + + @Override + public void access(Path path, FsAction action) throws IOException { + delegate.access(path, action); + } + + @Override + public void copyFromLocalFile(boolean delSrc, boolean overwrite, Path src, Path dst) throws IOException { + delegate.copyFromLocalFile(delSrc, overwrite, src, dst); + } + + @Override + public boolean deleteOnExit(Path f) throws IOException { + return delegate.deleteOnExit(f); + } + + @Override + public boolean cancelDeleteOnExit(Path f) { + return delegate.cancelDeleteOnExit(f); + } + + @Override + public void close() throws IOException { + delegate.close(); + } + + @Override + public String getCanonicalServiceName() { + return delegate.getCanonicalServiceName(); + } + + @Override + public DelegationTokenIssuer[] getAdditionalTokenIssuers() throws IOException { + return delegate.getAdditionalTokenIssuers(); + } + + @Override + public long getDefaultBlockSize() { + return delegate.getDefaultBlockSize(); + } + + @Override + public String toString() { + return delegate.toString(); + } + + @Override + public FileStatus[] globStatus(Path pathPattern) throws IOException { + return delegate.globStatus(pathPattern); + } + + @Override + public FileStatus[] globStatus(Path pathPattern, PathFilter filter) throws IOException { + return delegate.globStatus(pathPattern, filter); + } + + @Override + public boolean exists(Path f) throws IOException { + return delegate.exists(f); + } + + @Override + public boolean isDirectory(Path f) throws IOException { + return delegate.isDirectory(f); + } + + @Override + public boolean isFile(Path f) throws IOException { + return delegate.isFile(f); + } + + @Override + public FileChecksum getFileChecksum(Path f, long length) throws IOException { + return delegate.getFileChecksum(f, length); + } + + @Override + public Map getXAttrs(Path path) throws IOException { + return delegate.getXAttrs(path); + } + + @Override + public List listXAttrs(Path path) throws IOException { + return delegate.listXAttrs(path); + } + + @Override + public RemoteIterator listFiles(Path f, boolean recursive) + throws FileNotFoundException, IOException { + return delegate.listFiles(f, recursive); + } + + @Override + public RemoteIterator listLocatedStatus(Path f) + throws FileNotFoundException, IOException { + return delegate.listLocatedStatus(f); + } + + @Override + public boolean hasPathCapability(Path path, String capability) throws IOException { + return delegate.hasPathCapability(path, capability); + } + + @Override + public Path getHomeDirectory() { + return delegate.getHomeDirectory(); + } + + @Override + public BlockLocation[] getFileBlockLocations(FileStatus file, long start, long len) throws IOException { + return delegate.getFileBlockLocations(file, start, len); + } + + @Override + public void setOwner(Path path, String owner, String group) throws IOException { + delegate.setOwner(path, owner, group); + } + + @Override + public void setXAttr(Path path, String name, byte[] value, EnumSet flag) throws IOException { + delegate.setXAttr(path, name, value, flag); + } + + @Override + public byte[] getXAttr(Path path, String name) throws IOException { + return delegate.getXAttr(path, name); + } + + @Override + public void setPermission(Path path, FsPermission permission) throws IOException { + delegate.setPermission(path, permission); + } + + @Override + public Configuration getConf() { + return delegate.getConf(); + } +} diff --git a/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/engine/decorator/FileSystemStrategy.java b/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/engine/decorator/FileSystemStrategy.java new file mode 100644 index 000000000..419832a41 --- /dev/null +++ b/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/engine/decorator/FileSystemStrategy.java @@ -0,0 +1,49 @@ +/* + * Copyright [2013-2021], Alibaba Group Holding Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.alibaba.polardbx.gms.engine.decorator; + +import com.alibaba.polardbx.common.oss.filesystem.FileSystemRateLimiter; +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.fs.CreateFlag; +import org.apache.hadoop.fs.FSDataInputStream; +import org.apache.hadoop.fs.FSDataOutputStream; +import org.apache.hadoop.fs.FileStatus; +import org.apache.hadoop.fs.FileSystem; +import org.apache.hadoop.fs.Path; +import org.apache.hadoop.fs.permission.FsPermission; +import org.apache.hadoop.util.Progressable; + +import java.io.IOException; +import java.net.URI; +import java.util.EnumSet; + +public interface FileSystemStrategy { + FileSystemRateLimiter getRateLimiter(); + + FSDataInputStream open(FileSystem fs, Path f, int bufferSize) throws IOException; + + FSDataOutputStream create(FileSystem fs, Path f, FsPermission permission, boolean overwrite, int bufferSize, + short replication, long blockSize, Progressable progress) throws IOException; + + FSDataOutputStream append(FileSystem fs, Path f, int bufferSize, Progressable progress) throws IOException; + + FSDataOutputStream createNonRecursive(FileSystem fs, Path p, FsPermission permission, EnumSet flags, + int bufferSize, short replication, long blockSize, + Progressable progress) throws IOException; + + FileStatus getFileStatus(FileSystem fs, Path path) throws IOException; +} diff --git a/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/engine/decorator/FileSystemWrapper.java b/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/engine/decorator/FileSystemWrapper.java new file mode 100644 index 000000000..b6617b2d6 --- /dev/null +++ b/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/engine/decorator/FileSystemWrapper.java @@ -0,0 +1,23 @@ +/* + * Copyright [2013-2021], Alibaba Group Holding Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.alibaba.polardbx.gms.engine.decorator; + +import org.apache.hadoop.fs.FileSystem; + +public interface FileSystemWrapper { + FileSystem.Statistics getInnerStatistics(); +} diff --git a/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/engine/decorator/impl/ABSFileSystemWrapper.java b/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/engine/decorator/impl/ABSFileSystemWrapper.java new file mode 100644 index 000000000..544f9c9bd --- /dev/null +++ b/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/engine/decorator/impl/ABSFileSystemWrapper.java @@ -0,0 +1,27 @@ +/* + * Copyright [2013-2021], Alibaba Group Holding Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.alibaba.polardbx.gms.engine.decorator.impl; + +import com.alibaba.polardbx.gms.engine.decorator.FileSystemWrapper; +import org.apache.hadoop.fs.azure.NativeAzureFileSystem; + +public class ABSFileSystemWrapper extends NativeAzureFileSystem implements FileSystemWrapper { + @Override + public Statistics getInnerStatistics() { + return statistics; + } +} diff --git a/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/engine/decorator/impl/FileSystemStrategyImpl.java b/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/engine/decorator/impl/FileSystemStrategyImpl.java new file mode 100644 index 000000000..4c49dc0ad --- /dev/null +++ b/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/engine/decorator/impl/FileSystemStrategyImpl.java @@ -0,0 +1,127 @@ +/* + * Copyright [2013-2021], Alibaba Group Holding Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.alibaba.polardbx.gms.engine.decorator.impl; + +import com.alibaba.polardbx.common.oss.filesystem.FileSystemRateLimiter; +import com.alibaba.polardbx.common.oss.filesystem.InputStreamWithRateLimiter; +import com.alibaba.polardbx.common.oss.filesystem.OutputStreamWithRateLimiter; +import com.alibaba.polardbx.gms.engine.decorator.FileSystemStrategy; +import com.alibaba.polardbx.gms.engine.decorator.FileSystemWrapper; +import com.google.common.cache.Cache; +import com.google.common.cache.CacheBuilder; +import org.apache.hadoop.fs.CreateFlag; +import org.apache.hadoop.fs.FSDataInputStream; +import org.apache.hadoop.fs.FSDataOutputStream; +import org.apache.hadoop.fs.FileStatus; +import org.apache.hadoop.fs.FileSystem; +import org.apache.hadoop.fs.Path; +import org.apache.hadoop.fs.permission.FsPermission; +import org.apache.hadoop.util.Progressable; + +import java.io.FileNotFoundException; +import java.io.IOException; +import java.util.EnumSet; +import java.util.concurrent.Callable; +import java.util.concurrent.ExecutionException; + +import static java.util.concurrent.TimeUnit.SECONDS; + +public class FileSystemStrategyImpl implements FileSystemStrategy { + + final private Cache metaCache; + final private boolean enableCache; + final private FileSystemRateLimiter rateLimiter; + + public FileSystemStrategyImpl(boolean enableCache, FileSystemRateLimiter rateLimiter) { + this.enableCache = enableCache; + this.rateLimiter = rateLimiter; + this.metaCache = CacheBuilder.newBuilder() + .maximumSize(4096) + .expireAfterAccess(300, SECONDS) + .build(); + } + + @Override + public FileStatus getFileStatus(FileSystem fs, Path path) throws IOException { + final Callable valueLoader = () -> fs.getFileStatus(path); + FileStatus fileStatus; + try { + if (enableCache) { + fileStatus = metaCache.get(path, valueLoader); + } else { + fileStatus = fs.getFileStatus(path); + } + } catch (FileNotFoundException fnfe) { + throw fnfe; + } catch (ExecutionException ex) { + fileStatus = fs.getFileStatus(path); + } + return fileStatus; + } + + @Override + public FileSystemRateLimiter getRateLimiter() { + return rateLimiter; + } + + @Override + public FSDataInputStream open(FileSystem fs, Path f, int bufferSize) throws IOException { + return new FSDataInputStream( + new InputStreamWithRateLimiter( + fs.open(f, bufferSize), + rateLimiter + ) + ); + } + + @Override + public FSDataOutputStream create(FileSystem fs, Path f, FsPermission permission, boolean overwrite, int bufferSize, + short replication, long blockSize, Progressable progress) throws IOException { + return new FSDataOutputStream( + new OutputStreamWithRateLimiter( + fs.create(f, permission, overwrite, bufferSize, replication, blockSize, progress), + rateLimiter + ), + ((FileSystemWrapper) fs).getInnerStatistics() + ); + } + + @Override + public FSDataOutputStream append(FileSystem fs, Path f, int bufferSize, Progressable progress) throws IOException { + return new FSDataOutputStream( + new OutputStreamWithRateLimiter( + fs.append(f, bufferSize, progress), + rateLimiter + ), + ((FileSystemWrapper) fs).getInnerStatistics() + ); + } + + @Override + public FSDataOutputStream createNonRecursive(FileSystem fs, Path p, FsPermission permission, + EnumSet flags, + int bufferSize, short replication, long blockSize, + Progressable progress) throws IOException { + return new FSDataOutputStream( + new OutputStreamWithRateLimiter( + fs.createNonRecursive(p, permission, flags, bufferSize, replication, blockSize, progress), + rateLimiter + ), + ((FileSystemWrapper) fs).getInnerStatistics() + ); + } +} diff --git a/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/engine/decorator/impl/S3AFileSystemWrapper.java b/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/engine/decorator/impl/S3AFileSystemWrapper.java new file mode 100644 index 000000000..5355a7ce7 --- /dev/null +++ b/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/engine/decorator/impl/S3AFileSystemWrapper.java @@ -0,0 +1,27 @@ +/* + * Copyright [2013-2021], Alibaba Group Holding Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.alibaba.polardbx.gms.engine.decorator.impl; + +import com.alibaba.polardbx.gms.engine.decorator.FileSystemWrapper; +import org.apache.hadoop.fs.s3a.S3AFileSystem; + +public class S3AFileSystemWrapper extends S3AFileSystem implements FileSystemWrapper { + @Override + public Statistics getInnerStatistics() { + return statistics; + } +} diff --git a/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/engine/decorator/impl/SecureABSFileSystemWrapper.java b/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/engine/decorator/impl/SecureABSFileSystemWrapper.java new file mode 100644 index 000000000..017036cb7 --- /dev/null +++ b/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/engine/decorator/impl/SecureABSFileSystemWrapper.java @@ -0,0 +1,27 @@ +/* + * Copyright [2013-2021], Alibaba Group Holding Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.alibaba.polardbx.gms.engine.decorator.impl; + +import com.alibaba.polardbx.gms.engine.decorator.FileSystemWrapper; +import org.apache.hadoop.fs.azure.NativeAzureFileSystem; + +public class SecureABSFileSystemWrapper extends NativeAzureFileSystem.Secure implements FileSystemWrapper { + @Override + public Statistics getInnerStatistics() { + return statistics; + } +} diff --git a/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/ha/impl/StorageHaManager.java b/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/ha/impl/StorageHaManager.java index 2c9c086be..1846a98a3 100644 --- a/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/ha/impl/StorageHaManager.java +++ b/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/ha/impl/StorageHaManager.java @@ -538,7 +538,7 @@ public void getStorageHaSwitchParamsForInitGroupDs(Set instIds, String phyDbName = null; try { - phyDbName = DbTopologyManager.getPhysicalDbNameByGroupKey(dbName, groupName); + phyDbName = DbTopologyManager.getPhysicalDbNameByGroupKeyFromMetaDb(dbName, groupName); } catch (Throwable ex) { throw ex; } @@ -1126,7 +1126,7 @@ public GroupHaSwitcherProxy(String storageInstId, String dbName, String groupNam this.storageInstId = storageInstId; this.dbName = dbName; this.groupName = groupName; - this.phyDbName = DbTopologyManager.getPhysicalDbNameByGroupKey(dbName, groupName); + this.phyDbName = DbTopologyManager.getPhysicalDbNameByGroupKeyFromMetaDb(dbName, groupName); } @Override diff --git a/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/listener/impl/MetaDbDataIdBuilder.java b/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/listener/impl/MetaDbDataIdBuilder.java index f996f9063..0f0a463a1 100644 --- a/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/listener/impl/MetaDbDataIdBuilder.java +++ b/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/listener/impl/MetaDbDataIdBuilder.java @@ -59,6 +59,16 @@ public class MetaDbDataIdBuilder { /** * {0} : instId, {1}: dbName, {2}: groupName + *
+     *     max data_id_length:
+     *     max pxc_id_len: 18, e.g. pxc-hkrmowavo1r123
+     *     max db_name_len: 64, e.g.abcd012345678901234567890123456789012345678901234567890123456789
+     *     max group_name_len: 70, e.g. ABCD01234567890123456789012345678901234567890123_2827BA7D_P00000_GROUP
+     *     fix len : 24
+     *     all len: 176
+     *     such as
+     *      polardbx.group.config.pxc-hkrmowavo1r123.abcd012345678901234567890123456789012345678901234567890123456789.ABCD01234567890123456789012345678901234567890123_2827BA7D_P00000_GROUP
+     * 
*/ public static final MessageFormat GROUP_CONFIG_DATA_ID = new MessageFormat("polardbx.group.config.{0}.{1}.{2}"); diff --git a/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/metadb/ccl/CclRuleRecord.java b/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/metadb/ccl/CclRuleRecord.java index c0e5184f5..124917335 100644 --- a/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/metadb/ccl/CclRuleRecord.java +++ b/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/metadb/ccl/CclRuleRecord.java @@ -40,7 +40,7 @@ public class CclRuleRecord implements SystemTableRecord { public static final int DEFAULT_WAIT_TIMEOUT = 600; public static final int DEFAULT_FAST_MATCH = 1; public static final int DEFAULT_TRIGGER_PRIORITY = -1; - public static final int DEFAULT_LIGHT_WAIT = 1; + public static final int DEFAULT_LIGHT_WAIT = 0; public static final int THREAD_WAIT = 0; public static final int NO_THREAD_WAIT = 1; diff --git a/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/metadb/misc/PersistentReadWriteLock.java b/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/metadb/misc/PersistentReadWriteLock.java index f78784c18..04aaaf33f 100644 --- a/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/metadb/misc/PersistentReadWriteLock.java +++ b/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/metadb/misc/PersistentReadWriteLock.java @@ -61,6 +61,8 @@ public class PersistentReadWriteLock { private static final long RETRY_INTERVAL = 1000L; public static final String OWNER_PREFIX = "DDL_"; + public static final long GET_LOCK_TIMEOUT = 50l; // the same as default innodb_lock_wait_timeout + private PersistentReadWriteLock() { } @@ -486,6 +488,7 @@ public boolean tryReadWriteLockBatch(String schemaName, boolean isSuccess = new ReadWriteLockAccessDelegate() { @Override protected Boolean invoke() { + boolean needRelease = false; try { MetaDbUtil.beginTransaction(connection); if (CollectionUtils.isEmpty(readLocks) && CollectionUtils.isEmpty(writeLocks)) { @@ -494,6 +497,10 @@ protected Boolean invoke() { MetaDbUtil.endTransaction(connection, LOGGER); return true; } + needRelease = true; + if (!MetaDbUtil.tryGetLock(connection, schemaName, GET_LOCK_TIMEOUT)) { + return false; + } List allLocks = Lists.newArrayList(Sets.union(readLocks, writeLocks)); List currentLocks = new ArrayList<>(allLocks.size()); List> allLocksPartition = Lists.partition(allLocks, 100); @@ -568,6 +575,10 @@ protected Boolean invoke() { //rollback all, if any resource is unable to acquire MetaDbUtil.rollback(connection, e, LOGGER, "acquire write lock"); return false; + } finally { + if (needRelease) { + MetaDbUtil.releaseLock(connection, schemaName); + } } } }.execute().booleanValue(); diff --git a/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/topology/CreateDbInfo.java b/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/topology/CreateDbInfo.java index f31eef8be..ce81a0e04 100644 --- a/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/topology/CreateDbInfo.java +++ b/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/topology/CreateDbInfo.java @@ -18,6 +18,7 @@ import com.alibaba.polardbx.gms.locality.LocalityDesc; +import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -59,6 +60,11 @@ public class CreateDbInfo { */ protected Map groupPhyDbMap; + /** + * The list of all the group names of db + */ + protected List groupNameList = new ArrayList<>(); + /** * All the storage inst list */ diff --git a/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/topology/DbTopologyManager.java b/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/topology/DbTopologyManager.java index 1e0806eba..c94b0ff21 100644 --- a/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/topology/DbTopologyManager.java +++ b/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/topology/DbTopologyManager.java @@ -17,6 +17,7 @@ package com.alibaba.polardbx.gms.topology; import com.alibaba.polardbx.common.Engine; +import com.alibaba.polardbx.common.exception.NotSupportException; import com.alibaba.polardbx.common.exception.TddlRuntimeException; import com.alibaba.polardbx.common.exception.code.ErrorCode; import com.alibaba.polardbx.common.properties.ConnectionProperties; @@ -75,7 +76,9 @@ import java.util.List; import java.util.Map; import java.util.Set; +import java.util.TreeMap; import java.util.TreeSet; +import java.util.concurrent.locks.ReentrantLock; import java.util.function.Predicate; import java.util.stream.Collectors; @@ -117,6 +120,17 @@ public class DbTopologyManager { public static List singleGroupStorageInstList = new ArrayList<>(); + /** + * A topology mapping from GroupKey to logicalDbName + *
+     *      key: The upperCase of GroupKey
+     *      val: the name of logical dbName from db_info
+     *  
+ */ + private static final ReentrantLock groupTopologyMappingLock = new ReentrantLock(); + private static volatile Map groupTopologyMapping = + new TreeMap<>(CaseInsensitive.CASE_INSENSITIVE_ORDER); + public static void initDbTopologyManager(SchemaMetaCleaner cleanerImpl) { schemaMetaCleaner = cleanerImpl; refreshSingleGroupStorageInsts(); @@ -283,13 +297,23 @@ public static long createLogicalDb(CreateDbInfo createDbInfo) { DbInfoRecord dbInfo = dbInfoAccessor.getDbInfoByDbName(dbName); boolean hasDbConfig = false; if (dbInfo != null) { - if (dbInfo.dbStatus == DbInfoRecord.DB_STATUS_RUNNING) { - if (createIfNotExist) { - return dbId; + if (dbInfo.dbStatus == DbInfoRecord.DB_STATUS_RUNNING + || dbInfo.dbStatus == DbInfoRecord.DB_STATUS_DROPPING) { + if (dbInfo.dbStatus == DbInfoRecord.DB_STATUS_RUNNING) { + if (createIfNotExist) { + return dbId; + } + // throw exception + throw new TddlRuntimeException(ErrorCode.ERR_GMS_GENERIC, + String.format("Create db error, db[%s] has already exist", dbName)); + } else { + // throw exception + throw new TddlRuntimeException(ErrorCode.ERR_GMS_GENERIC, + String.format( + "Create db error, db[%s] has not finished dropping, please retry to drop it by using 'drop database if exists `%s`'", + dbName, dbName)); } - // throw exception - throw new TddlRuntimeException(ErrorCode.ERR_GMS_GENERIC, - String.format("Create db error, db[%s] has already exist", dbName)); + } else if (dbInfo.dbStatus == DbInfoRecord.DB_STATUS_CREATING) { // ignore, just continue to create phy dbs hasDbConfig = true; @@ -338,6 +362,10 @@ public static long createLogicalDb(CreateDbInfo createDbInfo) { // commit configs metaDbConn.commit(); + // refresh local group topology of db topology manager + DbTopologyManager.refreshGroupKeysIntoTopologyMapping(createDbInfo.groupNameList, new ArrayList<>(), + createDbInfo.dbName); + // sync other node to reload dbInfo quickly MetaDbConfigManager.getInstance().sync(MetaDbDataIdBuilder.getDbInfoDataId()); @@ -443,10 +471,28 @@ protected static void dropLogicalDbWithConn(String dbName, boolean isDropIfExist schemaMetaCleaner.clearSchemaMeta(dbName, metaDbConn); } + // clear group_detail_info + List allGrpNames = getGroupNamesFromMetaDb(metaDbConn, instId, dbName); + // ---- remove topology configs removeDbTopologyConfig(dbName, metaDbConn); metaDbConn.commit(); + // refresh local group topology of db topology manager of memory + DbTopologyManager.unregisterGroupKeysIntoTopologyMapping(allGrpNames); + + } + + private static List getGroupNamesFromMetaDb(Connection metaDbConn, String instId, String dbName) { + List allGrpNames = new ArrayList<>(); + GroupDetailInfoAccessor groupDetailInfoAccessor = new GroupDetailInfoAccessor(); + groupDetailInfoAccessor.setConnection(metaDbConn); + List grpInfos = groupDetailInfoAccessor.getGroupDetailInfoByInstIdAndDbName(instId, + dbName); + for (int i = 0; i < grpInfos.size(); i++) { + allGrpNames.add(grpInfos.get(i).getGroupName()); + } + return allGrpNames; } public static void dropLogicalDb(DropDbInfo dropDbInfo) { @@ -727,7 +773,6 @@ public static void addDbTopologyConfig(CreateDbInfo createDbInfo) { // ---- commit trx ---- conn.commit(); - } catch (Throwable ex) { throw new TddlRuntimeException(ErrorCode.ERR_GMS_GENERIC, ex, String.format("Failed to create db[%s], err is %s", dbName, ex.getMessage()) @@ -1236,6 +1281,7 @@ public static CreateDbInfo initCreateDbInfo(String dbName, createDbInfo.dbType = dbType; String grpNameSingleGroup = ""; + List groupNames = new ArrayList<>(); if (createDbInfo.dbType == DbInfoRecord.DB_TYPE_PART_DB || createDbInfo.dbType == DbInfoRecord.DB_TYPE_CDC_DB) { grpNameSingleGroup = GroupInfoUtil.buildGroupName(dbName, -1, false); String phyDbNameSingle = GroupInfoUtil.buildPhyDbName(dbName, -1, false); @@ -1260,9 +1306,11 @@ public static CreateDbInfo initCreateDbInfo(String dbName, createDbInfo.defaultSingle = defaultSingle; } } + groupNames.addAll(grpAndPhyDbNameMap.keySet()); createDbInfo.locality = locality; createDbInfo.groupPhyDbMap = grpAndPhyDbNameMap; + createDbInfo.groupNameList = groupNames; createDbInfo.singleGroup = grpNameSingleGroup; createDbInfo.defaultDbIndex = grpNameSingleGroup; createDbInfo.groupLocator = @@ -2050,7 +2098,7 @@ public static void switchGroupStorageInfos(String schemaName, } - public static String getPhysicalDbNameByGroupKey(String dbName, String groupName) { + public static String getPhysicalDbNameByGroupKeyFromMetaDb(String dbName, String groupName) { if (SystemDbHelper.INFO_SCHEMA_DB_NAME.equalsIgnoreCase(dbName) && SystemDbHelper.INFO_SCHEMA_DB_GROUP_NAME.equalsIgnoreCase(groupName)) { @@ -2586,4 +2634,43 @@ public static void checkRefForeignKeyWhenDropDatabase(String dbName) { throw GeneralUtil.nestedException(ex); } } + + public static void refreshGroupKeysIntoTopologyMapping(List groupKeysToBeAdded, + List groupKeysToBeRemoved, + String schemaName) { + try { + groupTopologyMappingLock.lock(); + Map newGroupTopologyMapping = new TreeMap<>(CaseInsensitive.CASE_INSENSITIVE_ORDER); + newGroupTopologyMapping.putAll(DbTopologyManager.groupTopologyMapping); + for (String grp : groupKeysToBeAdded) { + newGroupTopologyMapping.put(grp, schemaName); + } + for (String grp : groupKeysToBeRemoved) { + newGroupTopologyMapping.remove(grp); + } + DbTopologyManager.groupTopologyMapping = newGroupTopologyMapping; + } finally { + groupTopologyMappingLock.unlock(); + } + } + + public static void unregisterGroupKeysIntoTopologyMapping(List groupKeys) { + try { + groupTopologyMappingLock.lock(); + Map newGroupTopologyMapping = new TreeMap<>(CaseInsensitive.CASE_INSENSITIVE_ORDER); + newGroupTopologyMapping.putAll(DbTopologyManager.groupTopologyMapping); + for (String grp : groupKeys) { + newGroupTopologyMapping.remove(grp); + } + DbTopologyManager.groupTopologyMapping = newGroupTopologyMapping; + } finally { + groupTopologyMappingLock.unlock(); + } + } + + public static String getDbNameByGroupKey(String groupKey) { + Map groupTopologyMapping = DbTopologyManager.groupTopologyMapping; + return groupTopologyMapping.get(groupKey); + } + } diff --git a/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/util/DbNameUtil.java b/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/util/DbNameUtil.java index 54d28d916..bd3c09ecb 100644 --- a/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/util/DbNameUtil.java +++ b/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/util/DbNameUtil.java @@ -27,7 +27,7 @@ */ public class DbNameUtil { - private final static int MAX_DB_NAME_LENGTH = 32; + private final static int MAX_DB_NAME_LENGTH = 64; public static boolean validateDbName(String dbName, boolean isKeyWords) { diff --git a/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/util/GroupInfoUtil.java b/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/util/GroupInfoUtil.java index 3bd8c8fbd..89a498891 100644 --- a/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/util/GroupInfoUtil.java +++ b/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/util/GroupInfoUtil.java @@ -16,14 +16,19 @@ package com.alibaba.polardbx.gms.util; +import com.alibaba.polardbx.common.partition.MurmurHashUtils; import com.alibaba.polardbx.common.properties.ConnectionParams; import com.alibaba.polardbx.common.properties.ConnectionProperties; import com.alibaba.polardbx.common.utils.AddressUtils; import com.alibaba.polardbx.common.utils.Pair; +import com.alibaba.polardbx.druid.util.HexBin; import com.alibaba.polardbx.gms.config.impl.MetaDbInstConfigManager; import com.alibaba.polardbx.gms.topology.DbTopologyManager; +import com.alibaba.polardbx.gms.topology.SystemDbHelper; import org.apache.commons.lang.StringUtils; +import java.nio.ByteBuffer; +import java.nio.charset.StandardCharsets; import java.util.Collections; import java.util.List; @@ -37,6 +42,47 @@ public class GroupInfoUtil { private static final String GROUP_NAME_TEMPLATE = "%s_%06d_group"; private static final String GROUP_NAME_TEMPLATE_FOR_PARTITIONED_TABLES = "%s_p%05d_group"; + /** + * The max length of logical db_name prefix during building new group_key, default value is 36 + * it cannot be change!!! + * + *
+     *     The max len of log_db_name is 64,
+     *     The max len of phy_db_name is 64,
+     *     The max len of gtrid and bqual is 63,
+     *     butt he format of bqual is 'xxxx_group@0000',
+     *     so the allowed len of group_key is 63-5=58.
+     *
+     *     The len of fixed postfix of group_key is 13, e.g "_P00000_group",
+     *     so the max len of group_key_prefix is 58-13=45.
+     *
+     *     The len of fixed postfix of group_index is 7, e.g "_P00000",
+     *     and then the actual allowed len of phy_db_name is 45+7=52.
+     *
+     *     The len of hexStr of hashVal of dbName 9, such e.g. "_2827BA7D",
+     *     so the max len of db_name_prefix of group_key_prefix is 45-9=36.
+     *     That means when the len of db_name is longer then 36, its group_key_prefix
+     *     will be made up of 32-len-db-name-prefix and 9-len-full-name-hash-hex-str.
+     *     for example,
+     *     if
+     *      db_name='abcd012345678901234567890123456789012345678901234567890123456789', len:64
+     *     its
+     *      db_name_prefix='ABCD01234567890123456789012345678901', len:36;
+     *      full_db_name_hash_hex_str='_2827BA7D' , len:9;
+     *      group_key_prefix='ABCD01234567890123456789012345678901_2827BA7D', len:45;
+     *      group_key = 'ABCD01234567890123456789012345678901_2827BA7D_P00000_GROUP', len:58;
+     *      phy_db_name = 'ABCD01234567890123456789012345678901_2827BA7D_P00000', len:52 ;
+     *      xid's bqual = 'ABCD01234567890123456789012345678901_2827BA7D_P00000_GROUP@0000', len:63
+     *
+     * 
+ */ + private static final int MAX_DB_NAME_PREFIX_LENGTH = 36; + + /** + * The prefix of group key build from dbName, format: dbPrefix_36len + "_" + hashCodeHexStr_8len= 45en + */ + private static final String GROUP_NAME_PREFIX_TEMPLATE = "%s_%s"; + /** * dbName_%06d */ @@ -77,29 +123,24 @@ public static String buildGroupName(String dbName, int groupIdx) { */ public static String buildGroupName(String dbName, int groupIdx, boolean forPartitionTable) { String grpName = null; + String grpNamePrefix = buildGroupNamePrefixByDbName(dbName); if (groupIdx < 0) { - grpName = String.format(GROUP_NAME_SINGLE_TEMPLATE, dbName); + grpName = java.lang.String.format(GROUP_NAME_SINGLE_TEMPLATE, grpNamePrefix); } else { - grpName = String + grpName = java.lang.String .format(forPartitionTable ? GROUP_NAME_TEMPLATE_FOR_PARTITIONED_TABLES : GROUP_NAME_TEMPLATE, - dbName, groupIdx); + grpNamePrefix, groupIdx); } // all group name use upper case grpName = grpName.toUpperCase(); return grpName; } - public static String buildSchemaNameFromGroupName(String groupName) { - int len = groupName.length(); - String schemaName = groupName.substring(0, len - 13); - return schemaName; - } - - public static String buildGroupNamePattern(String dbName, boolean forPartitionTable) { - String grpNamePattern = String + String grpNamePrefixStr = buildGroupNamePrefixByDbName(dbName); + String grpNamePattern = java.lang.String .format(forPartitionTable ? GROUP_NAME_TEMPLATE_FOR_PARTITIONED_TABLES : GROUP_NAME_TEMPLATE, - dbName, 0); + grpNamePrefixStr, 0); if (forPartitionTable) { grpNamePattern = grpNamePattern.toUpperCase().replace("P00000", "P{0000}"); } else { @@ -108,6 +149,10 @@ public static String buildGroupNamePattern(String dbName, boolean forPartitionTa return grpNamePattern; } + public static String buildSchemaNameFromGroupName(String groupName) { + return DbTopologyManager.getDbNameByGroupKey(groupName); + } + public static String buildGroupNameFromPhysicalDb(String physicalDb) { /** * 修复正常physicalDb的名字后缀带s时,被误strip掉的问题 @@ -154,8 +199,9 @@ public static String buildAtomKey(String groupKey, String storageInstId, String if (phyDbName == null) { phyDbName = ""; } - String atomKey = String - .format("dsKey_%s#%s#%s-%s#%s", groupKey, storageInstId, ipPort.getKey(), String.valueOf(ipPort.getValue()), + String atomKey = java.lang.String + .format("dsKey_%s#%s#%s-%s#%s", groupKey, storageInstId, ipPort.getKey(), + java.lang.String.valueOf(ipPort.getValue()), phyDbName); return atomKey.toLowerCase(); } @@ -170,17 +216,19 @@ public static String parseStorageId(String atomKey) { } public static String buildWeightStr(int r, int w) { - String atomKey = String.format("r%sw%s", r, w); + String atomKey = java.lang.String.format("r%sw%s", r, w); return atomKey.toLowerCase(); } public static String buildPhyDbName(String dbName, int groupIdx, boolean forPartitionTable) { String phyDbName = null; + String grpNamePrefixStr = buildGroupNamePrefixByDbName(dbName); if (groupIdx < 0) { - phyDbName = String.format(PHY_DB_NAME_SINGLE_TEMPLATE, dbName); + phyDbName = java.lang.String.format(PHY_DB_NAME_SINGLE_TEMPLATE, grpNamePrefixStr); } else { - phyDbName = String - .format(forPartitionTable ? PHY_DB_NAME_TEMPLATE_FOR_PARTITIONED_TABLES : PHY_DB_NAME_TEMPLATE, dbName, + phyDbName = java.lang.String + .format(forPartitionTable ? PHY_DB_NAME_TEMPLATE_FOR_PARTITIONED_TABLES : PHY_DB_NAME_TEMPLATE, + grpNamePrefixStr, groupIdx); } // all group name use lower case @@ -189,7 +237,7 @@ public static String buildPhyDbName(String dbName, int groupIdx, boolean forPart } // from *_xxxxxx_group to *_Sxxxxx_group - public static String buildScaloutGroupName(String sourceGroupName) { + public static String buildScaleOutGroupName(String sourceGroupName) { assert sourceGroupName.toLowerCase().lastIndexOf("_group") != -1; assert !sourceGroupName.toLowerCase().endsWith(SINGLE_GROUP_POSTFIX_TEMPLATE); int len = sourceGroupName.length() - GROUP_NAME_POSTFIX_TEMPLATE.length(); @@ -202,14 +250,47 @@ public static String buildScaloutGroupName(String sourceGroupName) { * Build physical database name for scaleout */ public static String buildScaleOutPhyDbName(String schemaName, String sourceGroupName) { - String sourcePhyDb = DbTopologyManager.getPhysicalDbNameByGroupKey(schemaName, sourceGroupName); + String sourcePhyDb = DbTopologyManager.getPhysicalDbNameByGroupKeyFromMetaDb(schemaName, sourceGroupName); String targetPhyDb = sourcePhyDb + "s"; return targetPhyDb; } public static String buildHaGroupKey(String storageInstId, String groupName) { - String haGroupKey = String.format(HA_GROUP_KEY_TEMPLATE, groupName.toUpperCase(), storageInstId); + String haGroupKey = java.lang.String.format(HA_GROUP_KEY_TEMPLATE, groupName.toUpperCase(), storageInstId); return haGroupKey; } + private static String buildGroupNamePrefixByDbName(String dbName) { + if (StringUtils.isEmpty(dbName)) { + return ""; + } + if (SystemDbHelper.isDBBuildIn(dbName)) { + /** + * all the build-in dbname use full-db as group_name prefix + */ + return dbName; + } + int length = dbName.length(); + String grpPrefixStr = dbName; + if (length > GroupInfoUtil.MAX_DB_NAME_PREFIX_LENGTH) { + String dbNamePrefixStr = dbName.substring(0, GroupInfoUtil.MAX_DB_NAME_PREFIX_LENGTH); + String fullDbNameHashCodeHexStr = doMurmur3Hash32(dbName); + grpPrefixStr = String.format(GROUP_NAME_PREFIX_TEMPLATE, dbNamePrefixStr, fullDbNameHashCodeHexStr); + } + return grpPrefixStr; + } + + private static byte[] intToBytesByBigEnd(int intVal) { + byte[] bytes = ByteBuffer.allocate(4).putInt(intVal).array(); + return bytes; + } + + private static String doMurmur3Hash32(String dbName) { + String dbNameLowerCase = dbName.toLowerCase(); + byte[] rawData = dbNameLowerCase.getBytes(StandardCharsets.UTF_8); + int hashIntVal = MurmurHashUtils.murmurHash32WithZeroSeed(rawData); + byte[] hashValBytes = intToBytesByBigEnd(hashIntVal); + String hashCodeHexStr = HexBin.encode(hashValBytes); + return hashCodeHexStr; + } } diff --git a/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/util/MetaDbUtil.java b/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/util/MetaDbUtil.java index 78f45e1e7..05f63c8c0 100644 --- a/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/util/MetaDbUtil.java +++ b/polardbx-gms/src/main/java/com/alibaba/polardbx/gms/util/MetaDbUtil.java @@ -394,7 +394,7 @@ public static T queryMetaDbWrapper(Connection metaDbConn, Function mockedStaticMetaDbInstConfigManager = + mockStatic(MetaDbInstConfigManager.class)) { + MetaDbInstConfigManager metaDbInstConfigManager = mock(MetaDbInstConfigManager.class); + when(metaDbInstConfigManager.getCnVariableConfigMap()).thenReturn(properties); + mockedStaticMetaDbInstConfigManager.when(MetaDbInstConfigManager::getInstance) + .thenReturn(metaDbInstConfigManager); + Assert.assertTrue(InstConfUtil.getValBool(ConnectionProperties.ALERT_STATISTIC_INTERRUPT)); + } + } + +} diff --git a/polardbx-gms/src/test/java/com/alibaba/polardbx/gms/engine/FileSystemManagerTest.java b/polardbx-gms/src/test/java/com/alibaba/polardbx/gms/engine/FileSystemManagerTest.java new file mode 100644 index 000000000..557f1896f --- /dev/null +++ b/polardbx-gms/src/test/java/com/alibaba/polardbx/gms/engine/FileSystemManagerTest.java @@ -0,0 +1,242 @@ +/* + * Copyright [2013-2021], Alibaba Group Holding Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.alibaba.polardbx.gms.engine; + +import com.alibaba.polardbx.common.Engine; +import com.alibaba.polardbx.common.exception.TddlRuntimeException; +import com.alibaba.polardbx.common.exception.code.ErrorCode; +import com.alibaba.polardbx.common.mock.MockUtils; +import com.alibaba.polardbx.common.oss.filesystem.NFSFileSystem; +import com.alibaba.polardbx.common.oss.filesystem.OSSFileSystem; +import com.alibaba.polardbx.common.oss.filesystem.cache.FileMergeCachingFileSystem; +import com.alibaba.polardbx.gms.config.impl.InstConfUtil; +import com.alibaba.polardbx.gms.engine.decorator.FileSystemDecorator; +import com.alibaba.polardbx.gms.listener.impl.MetaDbConfigManager; +import com.alibaba.polardbx.gms.topology.ServerInstIdManager; +import com.alibaba.polardbx.gms.util.MetaDbUtil; +import com.alibaba.polardbx.gms.util.PasswdUtil; +import com.emc.ecs.nfsclient.nfs.nfs3.Nfs3; +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; +import org.apache.hadoop.fs.FileSystem; +import org.apache.hadoop.fs.azure.AzureNativeFileSystemStore; +import org.junit.After; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.MockedConstruction; +import org.mockito.MockedStatic; +import org.mockito.Mockito; +import org.mockito.junit.MockitoJUnitRunner; + +import java.io.IOException; + +@RunWith(MockitoJUnitRunner.class) +public class FileSystemManagerTest { + + final static private FileStorageInfoRecord MOCK_OSS_RECORD = new FileStorageInfoRecord(); + final static private FileStorageInfoRecord MOCK_LOCAL_DISK_RECORD = new FileStorageInfoRecord(); + final static private FileStorageInfoRecord MOCK_EXTERNAL_DISK_RECORD = new FileStorageInfoRecord(); + final static private FileStorageInfoRecord MOCK_NFS_RECORD = new FileStorageInfoRecord(); + final static private FileStorageInfoRecord MOCK_S3_RECORD = new FileStorageInfoRecord(); + final static private FileStorageInfoRecord MOCK_ABS_RECORD = new FileStorageInfoRecord(); + final static private FileStorageInfoRecord MOCK_ABS_HTTPS_RECORD = new FileStorageInfoRecord(); + final static private FileStorageInfoRecord MOCK_INVALID_RECORD = new FileStorageInfoRecord(); + + final static private String MOCK_AK = "ThisIsAnAk"; + final static private String MOCK_SK = "ThisISASk"; + + private MockedStatic mockedInstConf; + private MockedStatic mockedServerInstId; + private MockedStatic mockedMetaDbInstConfig; + private MockedStatic mockedMetaDbUtil; + private MockedConstruction nfs3MockedConstruction; + private MockedConstruction azureNativeFileSystemStoreMockedConstruction; + private MockedConstruction accessorMockedConstruction; + + static { + MOCK_OSS_RECORD.engine = Engine.OSS.name(); + MOCK_OSS_RECORD.externalEndpoint + = MOCK_OSS_RECORD.internalClassicEndpoint + = MOCK_OSS_RECORD.internalVpcEndpoint + = "oss-cn-hangzhou.aliyuncs.com"; + MOCK_OSS_RECORD.accessKeyId = MOCK_AK; + MOCK_OSS_RECORD.accessKeySecret = PasswdUtil.encrypt(MOCK_SK); + MOCK_OSS_RECORD.fileUri = "oss://polardbx-bucket-name/"; + + MOCK_LOCAL_DISK_RECORD.engine = Engine.LOCAL_DISK.name(); + MOCK_LOCAL_DISK_RECORD.fileUri = "file:///test-dir/"; + + MOCK_EXTERNAL_DISK_RECORD.engine = Engine.EXTERNAL_DISK.name(); + MOCK_EXTERNAL_DISK_RECORD.fileUri = "file:///test-dir-2/"; + + MOCK_NFS_RECORD.engine = Engine.NFS.name(); + MOCK_NFS_RECORD.fileUri = "nfs://127.0.0.1/polardbx-test"; + + MOCK_S3_RECORD.engine = Engine.S3.name(); + MOCK_S3_RECORD.fileUri = "s3://polardbx-bucket-name/"; + MOCK_S3_RECORD.accessKeyId = MOCK_AK; + MOCK_S3_RECORD.accessKeySecret = PasswdUtil.encrypt(MOCK_SK); + + MOCK_ABS_RECORD.engine = Engine.ABS.name(); + MOCK_ABS_RECORD.fileUri = "wasb://polardbx-container-name/"; + MOCK_ABS_RECORD.externalEndpoint = "localhost"; + MOCK_ABS_RECORD.accessKeyId = MOCK_AK; + MOCK_ABS_RECORD.accessKeySecret = PasswdUtil.encrypt(MOCK_SK); + + MOCK_ABS_HTTPS_RECORD.engine = Engine.ABS.name(); + MOCK_ABS_HTTPS_RECORD.fileUri = "wasbs://polardbx-container-name/"; + MOCK_ABS_HTTPS_RECORD.externalEndpoint = "localhost"; + MOCK_ABS_HTTPS_RECORD.accessKeyId = MOCK_AK; + MOCK_ABS_HTTPS_RECORD.accessKeySecret = PasswdUtil.encrypt(MOCK_SK); + } + + @Before + public void setUp() { + mockedInstConf = Mockito.mockStatic(InstConfUtil.class); + mockedServerInstId = Mockito.mockStatic(ServerInstIdManager.class); + mockedInstConf.when(InstConfUtil::fetchLongConfigs).thenReturn(Maps.newHashMap()); + ServerInstIdManager mockedServerInstIdManager = Mockito.mock(ServerInstIdManager.class); + mockedServerInstId.when(ServerInstIdManager::getInstance).thenReturn(mockedServerInstIdManager); + + nfs3MockedConstruction = Mockito.mockConstruction(Nfs3.class); + + azureNativeFileSystemStoreMockedConstruction = Mockito.mockConstruction(AzureNativeFileSystemStore.class); + + mockedMetaDbInstConfig = Mockito.mockStatic(MetaDbConfigManager.class); + mockedMetaDbInstConfig.when(MetaDbConfigManager::getInstance).thenReturn(Mockito.mock( + MetaDbConfigManager.class)); + + mockedMetaDbUtil = Mockito.mockStatic(MetaDbUtil.class); + + accessorMockedConstruction = Mockito.mockConstruction(FileStorageInfoAccessor.class, (mock, context) -> { + Mockito.when(mock.query(Mockito.any(Engine.class))).thenAnswer(invocation -> { + Engine engine = invocation.getArgument(0); + if (engine == Engine.OSS) { + return Lists.newArrayList(MOCK_OSS_RECORD); + } else if (engine == Engine.LOCAL_DISK) { + return Lists.newArrayList(MOCK_LOCAL_DISK_RECORD); + } else if (engine == Engine.EXTERNAL_DISK) { + return Lists.newArrayList(MOCK_EXTERNAL_DISK_RECORD); + } else if (engine == Engine.NFS) { + return Lists.newArrayList(MOCK_NFS_RECORD); + } else if (engine == Engine.S3) { + return Lists.newArrayList(MOCK_S3_RECORD); + } else if (engine == Engine.ABS) { + return Lists.newArrayList(MOCK_ABS_RECORD); + } + return null; + }); + }); + } + + @After + public void clear() { + if (mockedInstConf != null) { + mockedInstConf.close(); + } + + if (mockedServerInstId != null) { + mockedServerInstId.close(); + } + + if (nfs3MockedConstruction != null) { + nfs3MockedConstruction.close(); + } + + if (azureNativeFileSystemStoreMockedConstruction != null) { + azureNativeFileSystemStoreMockedConstruction.close(); + } + + if (mockedMetaDbInstConfig != null) { + mockedMetaDbInstConfig.close(); + } + + if (mockedMetaDbUtil != null) { + mockedMetaDbUtil.close(); + } + + if (accessorMockedConstruction != null) { + accessorMockedConstruction.close(); + } + } + + @Test + public void buildFileSystem() throws IOException { + FileSystem fs = FileSystemManager.buildFileSystem(MOCK_OSS_RECORD); + Assert.assertTrue(fs instanceof FileMergeCachingFileSystem); + FileSystem dataTier = ((FileMergeCachingFileSystem) fs).getDataTier(); + Assert.assertTrue(dataTier instanceof OSSFileSystem); + Assert.assertEquals("oss", dataTier.getScheme()); + fs.close(); + + fs = FileSystemManager.buildFileSystem(MOCK_LOCAL_DISK_RECORD); + Assert.assertEquals("file", fs.getScheme()); + Assert.assertFalse(fs instanceof FileMergeCachingFileSystem); + fs.close(); + + fs = FileSystemManager.buildFileSystem(MOCK_EXTERNAL_DISK_RECORD); + Assert.assertEquals("file", fs.getScheme()); + Assert.assertTrue(fs instanceof FileMergeCachingFileSystem); + fs.close(); + + fs = FileSystemManager.buildFileSystem(MOCK_NFS_RECORD); + Assert.assertTrue(fs instanceof FileMergeCachingFileSystem); + dataTier = ((FileMergeCachingFileSystem) fs).getDataTier(); + Assert.assertTrue(dataTier instanceof NFSFileSystem); + Assert.assertEquals("nfs", dataTier.getScheme()); + fs.close(); + + fs = FileSystemManager.buildFileSystem(MOCK_S3_RECORD); + Assert.assertTrue(fs instanceof FileMergeCachingFileSystem); + dataTier = ((FileMergeCachingFileSystem) fs).getDataTier(); + Assert.assertTrue(dataTier instanceof FileSystemDecorator); + Assert.assertEquals("s3a", dataTier.getScheme()); + fs.close(); + + fs = FileSystemManager.buildFileSystem(MOCK_ABS_RECORD); + Assert.assertTrue(fs instanceof FileMergeCachingFileSystem); + dataTier = ((FileMergeCachingFileSystem) fs).getDataTier(); + Assert.assertTrue(dataTier instanceof FileSystemDecorator); + Assert.assertEquals("wasb", dataTier.getScheme()); + fs.close(); + + fs = FileSystemManager.buildFileSystem(MOCK_ABS_HTTPS_RECORD); + Assert.assertTrue(fs instanceof FileMergeCachingFileSystem); + dataTier = ((FileMergeCachingFileSystem) fs).getDataTier(); + Assert.assertTrue(dataTier instanceof FileSystemDecorator); + Assert.assertEquals("wasbs", dataTier.getScheme()); + fs.close(); + + TddlRuntimeException exception = MockUtils.assertThrows( + TddlRuntimeException.class, + ErrorCode.ERR_EXECUTE_ON_OSS.getMessage("bad engine = INNODB"), + () -> { + FileSystem tmpFs = FileSystemManager.buildFileSystem(MOCK_INVALID_RECORD); + tmpFs.close(); + } + ); + + Assert.assertEquals(ErrorCode.ERR_EXECUTE_ON_OSS.getCode(), exception.getErrorCode()); + } + + @Test + public void resetRate() { + FileSystemManager.resetRate(); + } +} \ No newline at end of file diff --git a/polardbx-gms/src/test/java/com/alibaba/polardbx/gms/engine/decorator/FileSystemDecoratorTest.java b/polardbx-gms/src/test/java/com/alibaba/polardbx/gms/engine/decorator/FileSystemDecoratorTest.java new file mode 100644 index 000000000..9d0fe7f91 --- /dev/null +++ b/polardbx-gms/src/test/java/com/alibaba/polardbx/gms/engine/decorator/FileSystemDecoratorTest.java @@ -0,0 +1,198 @@ +/* + * Copyright [2013-2021], Alibaba Group Holding Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.alibaba.polardbx.gms.engine.decorator; + +import com.alibaba.polardbx.common.mock.MockUtils; +import com.alibaba.polardbx.common.oss.filesystem.GuavaFileSystemRateLimiter; +import com.alibaba.polardbx.common.oss.filesystem.InputStreamWithRateLimiter; +import com.alibaba.polardbx.common.oss.filesystem.OutputStreamWithRateLimiter; +import com.alibaba.polardbx.gms.engine.decorator.impl.FileSystemStrategyImpl; +import com.alibaba.polardbx.gms.engine.decorator.impl.S3AFileSystemWrapper; +import org.apache.hadoop.conf.Configured; +import org.apache.hadoop.fs.FSDataInputStream; +import org.apache.hadoop.fs.FSDataOutputStream; +import org.apache.hadoop.fs.FileStatus; +import org.apache.hadoop.fs.FileSystem; +import org.apache.hadoop.fs.Path; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mockito; +import org.mockito.junit.MockitoJUnitRunner; + +import java.io.IOException; + +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyBoolean; +import static org.mockito.ArgumentMatchers.anyInt; +import static org.mockito.ArgumentMatchers.anyLong; +import static org.mockito.ArgumentMatchers.anyShort; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +@RunWith(MockitoJUnitRunner.class) +public class FileSystemDecoratorTest { + + private static final Path MOCK_PATH = new Path("/"); + + private FileSystem delegate; + private FileSystemDecorator fileSystemDecorator; + private FileSystemDecorator fileSystemDecoratorWithoutCache; + private FSDataInputStream mockInputStream; + private FSDataOutputStream mockOutputStream; + private FileStatus mockFileStatus; + + @Before + public void setUp() throws IOException { + // Mock the FileSystemStrategy and FileSystem + FileSystemStrategy strategy = + new FileSystemStrategyImpl(true, new GuavaFileSystemRateLimiter(100, 100)); + FileSystemStrategy strategyWithoutCache = + new FileSystemStrategyImpl(false, new GuavaFileSystemRateLimiter(100, 100)); + + delegate = Mockito.mock(S3AFileSystemWrapper.class); + + mockInputStream = Mockito.mock(FSDataInputStream.class); + mockOutputStream = Mockito.mock(FSDataOutputStream.class); + mockFileStatus = Mockito.mock(FileStatus.class); + + when(delegate.open( + any(Path.class), anyInt()) + ).thenReturn(mockInputStream); + when(delegate.create( + any(Path.class), any(), anyBoolean(), anyInt(), anyShort(), anyLong(), any()) + ).thenReturn(mockOutputStream); + when(delegate.append( + any(Path.class), anyInt(), any()) + ).thenReturn(mockOutputStream); + when(delegate.getFileStatus( + any()) + ).thenReturn(mockFileStatus); + when(delegate.createNonRecursive( + any(), any(), any(), anyInt(), anyShort(), anyLong(), any()) + ).thenReturn(mockOutputStream); + + // Initialize FileSystemDecorator with mocked strategy and delegate + fileSystemDecorator = new FileSystemDecorator(delegate, strategy); + fileSystemDecoratorWithoutCache = new FileSystemDecorator(delegate, strategyWithoutCache); + } + + @Test + public void testOpen() throws IOException { + FSDataInputStream actualInputStream = fileSystemDecorator.open(MOCK_PATH, 4096); + + Assert.assertTrue(actualInputStream.getWrappedStream() instanceof InputStreamWithRateLimiter); + Assert.assertEquals( + mockInputStream, + ((InputStreamWithRateLimiter) actualInputStream.getWrappedStream()).getWrappedStream() + ); + } + + @Test + public void testCreate() throws IOException { + FSDataOutputStream actualOutputStream = + fileSystemDecorator.create( + MOCK_PATH, null, true, 4096, (short) 1, 1024, null + ); + Assert.assertTrue(actualOutputStream.getWrappedStream() instanceof OutputStreamWithRateLimiter); + Assert.assertEquals( + mockOutputStream, + ((OutputStreamWithRateLimiter) actualOutputStream.getWrappedStream()).getWrappedStream() + ); + } + + @Test + public void testAppend() throws IOException { + FSDataOutputStream actualOutputStream = + fileSystemDecorator.append(MOCK_PATH, 4096, null); + Assert.assertTrue(actualOutputStream.getWrappedStream() instanceof OutputStreamWithRateLimiter); + Assert.assertEquals( + mockOutputStream, + ((OutputStreamWithRateLimiter) actualOutputStream.getWrappedStream()).getWrappedStream() + ); + } + + @Test + public void testGetFileStatus() throws IOException { + FileStatus actualFileStatus = fileSystemDecorator.getFileStatus(MOCK_PATH); + Assert.assertEquals(mockFileStatus, actualFileStatus); + + actualFileStatus = fileSystemDecoratorWithoutCache.getFileStatus(MOCK_PATH); + Assert.assertEquals(mockFileStatus, actualFileStatus); + } + + @Test + public void testCreateNonRecursive() throws IOException { + FSDataOutputStream actualOutputStream = fileSystemDecorator.createNonRecursive(MOCK_PATH, null, + null, 4096, (short) 1, 1024, null); + Assert.assertTrue(actualOutputStream.getWrappedStream() instanceof OutputStreamWithRateLimiter); + Assert.assertEquals( + mockOutputStream, + ((OutputStreamWithRateLimiter) actualOutputStream.getWrappedStream()).getWrappedStream() + ); + } + + private void verifyForward(MockUtils.ThrowableConsumer consumer) { + try { + consumer.accept(fileSystemDecorator); + consumer.accept(verify(delegate, times(1))); + } catch (Throwable e) { + throw new RuntimeException(e); + } + } + + @Test + public void testForwardingMethods() throws Throwable { + verifyForward(fs -> fs.rename(MOCK_PATH, MOCK_PATH)); + verifyForward(fs -> fs.delete(MOCK_PATH, true)); + verifyForward(fs -> fs.listStatus(MOCK_PATH)); + verifyForward(FileSystem::getWorkingDirectory); + verifyForward(fs -> fs.mkdirs(MOCK_PATH, null)); + verifyForward(fs -> fs.makeQualified(MOCK_PATH)); + verifyForward(fs -> fs.createFile(MOCK_PATH)); + verifyForward(fs -> fs.listStatusIterator(MOCK_PATH)); + verifyForward(fs -> fs.getContentSummary(MOCK_PATH)); + verifyForward(fs -> fs.access(MOCK_PATH, null)); + verifyForward(fs -> fs.copyFromLocalFile(false, false, MOCK_PATH, MOCK_PATH)); + verifyForward(fs -> fs.deleteOnExit(MOCK_PATH)); + verifyForward(fs -> fs.cancelDeleteOnExit(MOCK_PATH)); + verifyForward(FileSystem::getCanonicalServiceName); + verifyForward(FileSystem::getAdditionalTokenIssuers); + verifyForward(FileSystem::getDefaultBlockSize); + verifyForward(fs -> fs.globStatus(MOCK_PATH)); + verifyForward(fs -> fs.globStatus(MOCK_PATH, null)); + verifyForward(fs -> fs.exists(MOCK_PATH)); + verifyForward(fs -> fs.isDirectory(MOCK_PATH)); + verifyForward(fs -> fs.isFile(MOCK_PATH)); + verifyForward(fs -> fs.getFileChecksum(MOCK_PATH, 0)); + verifyForward(fs -> fs.getXAttrs(MOCK_PATH)); + verifyForward(fs -> fs.listXAttrs(MOCK_PATH)); + verifyForward(fs -> fs.listFiles(MOCK_PATH, false)); + verifyForward(fs -> fs.listLocatedStatus(MOCK_PATH)); + verifyForward(fs -> fs.hasPathCapability(MOCK_PATH, "")); + verifyForward(FileSystem::getHomeDirectory); + verifyForward(fs -> fs.getFileBlockLocations(mockFileStatus, 0, 1)); + verifyForward(fs -> fs.setOwner(MOCK_PATH, "", "")); + verifyForward(fs -> fs.setXAttr(MOCK_PATH, "", new byte[0], null)); + verifyForward(fs -> fs.getXAttr(MOCK_PATH, "")); + verifyForward(fs -> fs.setPermission(MOCK_PATH, null)); + verifyForward(Configured::getConf); + } + +} \ No newline at end of file diff --git a/polardbx-gms/src/test/java/com/alibaba/polardbx/gms/metadb/misc/PersistentReadWriteLockTest.java b/polardbx-gms/src/test/java/com/alibaba/polardbx/gms/metadb/misc/PersistentReadWriteLockTest.java new file mode 100644 index 000000000..987b712c4 --- /dev/null +++ b/polardbx-gms/src/test/java/com/alibaba/polardbx/gms/metadb/misc/PersistentReadWriteLockTest.java @@ -0,0 +1,62 @@ +package com.alibaba.polardbx.gms.metadb.misc; + +import com.alibaba.polardbx.gms.util.MetaDbUtil; +import com.google.common.collect.ImmutableSet; +import org.junit.Test; +import org.mockito.MockedStatic; +import org.mockito.Mockito; + +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; +import java.util.HashSet; + +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyList; +import static org.mockito.ArgumentMatchers.anyLong; +import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +/** + * Created by luoyanxin. + * + * @author luoyanxin + */ +public class PersistentReadWriteLockTest { + + @Test + public void testTryReadWriteLockBatch() throws SQLException { + try (MockedStatic mockedMetaDbUtil = Mockito.mockStatic(MetaDbUtil.class)) { + Connection conn = mock(Connection.class); + Statement statement = mock(Statement.class); + when(conn.createStatement()).thenReturn(statement); + mockedMetaDbUtil.when(() -> MetaDbUtil.getConnection()).thenReturn(conn); + mockedMetaDbUtil.when(() -> MetaDbUtil.insert(anyString(), anyList(), any(Connection.class))) + .thenReturn(new int[] {1}); + + mockedMetaDbUtil.when(() -> MetaDbUtil.tryGetLock(any(Connection.class), any(String.class), anyLong())) + .thenCallRealMethod(); + mockedMetaDbUtil.when(() -> MetaDbUtil.releaseLock(any(Connection.class), any(String.class))) + .thenCallRealMethod(); + + ResultSet lockRs = mock(ResultSet.class); + when(lockRs.next()).thenReturn(true); + when(lockRs.getInt(1)).thenReturn(0).thenReturn(1); + when(statement.executeQuery(any())).thenReturn(lockRs); + + PersistentReadWriteLock persistentReadWriteLock = PersistentReadWriteLock.create(); + persistentReadWriteLock.tryReadWriteLockBatch("schemaName", "owner", new HashSet<>(), new HashSet<>()); + persistentReadWriteLock.tryReadWriteLockBatch("schemaName", "owner", ImmutableSet.of("d1"), + new HashSet<>()); + + ResultSet emptyLockRs = mock(ResultSet.class); + when(emptyLockRs.next()).thenReturn(true).thenReturn(false); + when(emptyLockRs.getInt(1)).thenThrow(new SQLException()); + when(statement.executeQuery(any())).thenReturn(emptyLockRs); + persistentReadWriteLock.tryReadWriteLockBatch("schemaName", "owner", ImmutableSet.of("d1"), + new HashSet<>()); + } + } +} diff --git a/polardbx-gms/src/test/java/com/alibaba/polardbx/gms/topology/DbTopologyManagerDropDbTest.java b/polardbx-gms/src/test/java/com/alibaba/polardbx/gms/topology/DbTopologyManagerDropDbTest.java new file mode 100644 index 000000000..69d456373 --- /dev/null +++ b/polardbx-gms/src/test/java/com/alibaba/polardbx/gms/topology/DbTopologyManagerDropDbTest.java @@ -0,0 +1,86 @@ +package com.alibaba.polardbx.gms.topology; + +import com.alibaba.polardbx.common.utils.logger.Logger; +import com.alibaba.polardbx.common.utils.logger.LoggerFactory; +import com.alibaba.polardbx.gms.metadb.MetaDbDataSource; +import com.alibaba.polardbx.gms.util.LockUtil; +import com.alibaba.polardbx.gms.util.MetaDbUtil; +import org.junit.Assert; +import org.junit.Test; +import org.mockito.MockedStatic; +import org.mockito.Mockito; + +import java.sql.Connection; +import java.util.ArrayList; +import java.util.List; + +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyInt; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +/** + * @author chenghui.lch + */ +public class DbTopologyManagerDropDbTest { + private static final Logger logger = LoggerFactory.getLogger(DbTopologyManagerDropDbTest.class); + + @Test + public void testDropDb() { + + try { + + final CreateDbInfo mockCreateDbInfo = new CreateDbInfo(); + mockCreateDbInfo.setDbName("mydb"); + + final DbInfoRecord mockDbInfoRec = new DbInfoRecord(); + mockDbInfoRec.dbName = "mydb"; + mockDbInfoRec.dbStatus = DbInfoRecord.DB_STATUS_DROPPING; + + final DbInfoRecord mockDbInfoRec2 = new DbInfoRecord(); + mockDbInfoRec2.dbName = "mydb"; + mockDbInfoRec2.dbStatus = mockDbInfoRec2.DB_STATUS_RUNNING; + + List mockDbInfoRecList = new ArrayList<>(); + mockDbInfoRecList.add(mockDbInfoRec); + + List mockDbInfoRecList2 = new ArrayList<>(); + mockDbInfoRecList2.add(mockDbInfoRec2); + + final MetaDbDataSource metaDbDs = mock(MetaDbDataSource.class); + final Connection mockMetaDbConn = mock(Connection.class); + when(metaDbDs.getConnection()).thenReturn(mockMetaDbConn); + try (MockedStatic mockedMetaDbClass = Mockito.mockStatic(MetaDbDataSource.class)) { + try (MockedStatic mockLockUtilClass = Mockito.mockStatic(LockUtil.class)) { + try (MockedStatic mockMetaDbUtilClass = Mockito.mockStatic(MetaDbUtil.class)) { + mockedMetaDbClass.when(() -> MetaDbDataSource.getInstance()).thenReturn(metaDbDs); + mockLockUtilClass.when(() -> LockUtil.waitToAcquireMetaDbLock(any(), any())) + .thenAnswer(invocation -> null); + mockMetaDbUtilClass.when(() -> MetaDbUtil.setParameter(anyInt(), any(), any(), any())) + .thenAnswer(invocation -> null); + try { + mockMetaDbUtilClass.when(() -> MetaDbUtil.query(any(), any(), any(), any())) + .thenReturn(mockDbInfoRecList); + DbTopologyManager.createLogicalDb(mockCreateDbInfo); + Assert.fail("should throw error"); + } catch (Throwable ex) { + Assert.assertTrue(ex.getMessage().contains("retry to drop it by using")); + } + + try { + mockMetaDbUtilClass.when(() -> MetaDbUtil.query(any(), any(), any(), any())) + .thenReturn(mockDbInfoRecList2); + DbTopologyManager.createLogicalDb(mockCreateDbInfo); + Assert.fail("should throw error"); + } catch (Throwable ex) { + Assert.assertTrue(ex.getMessage().contains("has already exist")); + } + } + } + } + } catch (Throwable e) { + logger.error(e); + Assert.fail(e.getMessage()); + } + } +} diff --git a/polardbx-gms/src/test/java/com/alibaba/polardbx/gms/topology/DbTopologyManagerTest2.java b/polardbx-gms/src/test/java/com/alibaba/polardbx/gms/topology/DbTopologyManagerTest2.java new file mode 100644 index 000000000..e69de29bb diff --git a/polardbx-gms/src/test/java/com/alibaba/polardbx/gms/util/MetaDbUtilTest.java b/polardbx-gms/src/test/java/com/alibaba/polardbx/gms/util/MetaDbUtilTest.java index 709769986..8f25bb50d 100644 --- a/polardbx-gms/src/test/java/com/alibaba/polardbx/gms/util/MetaDbUtilTest.java +++ b/polardbx-gms/src/test/java/com/alibaba/polardbx/gms/util/MetaDbUtilTest.java @@ -50,9 +50,35 @@ public void testGmsPolardbVersion() throws SQLException { Mockito.when(resultSet.getString(1)).thenReturn(mockEngineVersion); Mockito.when(resultSet.getString(2)).thenReturn(mockReleaseDate); - final String gmsPolardbVersion = MetaDbUtil.getGmsPolardbVersion(); - + String gmsPolardbVersion = null; + try { + gmsPolardbVersion = MetaDbUtil.getGmsPolardbVersion(); + } catch (Exception e) { + Assert.fail(e.getMessage()); + } + Assert.assertNotNull(gmsPolardbVersion); Assert.assertEquals(String.format("%s-%s", mockEngineVersion, mockReleaseDate), gmsPolardbVersion); } + @Test + public void testGmsPolardbVersionWithException() throws SQLException { + + final String mockExceptionMessage = "Mock SQLException"; + + Connection mockConnection = mock(Connection.class); + mockMetaDbUtil.when(MetaDbUtil::getConnection).thenAnswer(i -> mockConnection); + Statement statement = mock(Statement.class); + Mockito.when(mockConnection.createStatement()).thenReturn(statement); + ResultSet resultSet = mock(ResultSet.class); + Mockito.when(statement.executeQuery(Mockito.anyString())).thenThrow(new SQLException(mockExceptionMessage)); + + String gmsPolardbVersion = null; + try { + gmsPolardbVersion = MetaDbUtil.getGmsPolardbVersion(); + Assert.fail("Expect failed with exception"); + } catch (Exception e) { + Assert.assertTrue(e.getMessage().contains(mockExceptionMessage)); + } + Assert.assertNull(gmsPolardbVersion); + } } diff --git a/polardbx-optimizer/pom.xml b/polardbx-optimizer/pom.xml index 385b2c375..ce3e22b03 100644 --- a/polardbx-optimizer/pom.xml +++ b/polardbx-optimizer/pom.xml @@ -178,6 +178,11 @@ commons-compiler 3.1.9 - + + org.mockito + mockito-core + ${mockito.verison} + test + diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/PlannerContext.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/PlannerContext.java index c1109fce9..54d0c2f1d 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/PlannerContext.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/PlannerContext.java @@ -153,6 +153,8 @@ public class PlannerContext implements Context, PlannerContextWithParam { private boolean useColumnar = false; + private boolean inExprToLookupJoin = false; + public T unwrap(Class clazz) { return clazz.isInstance(this) ? clazz.cast(this) : null; } @@ -647,4 +649,12 @@ public Set getConstantParamIndex() { public void setConstantParamIndex(Set constantParamIndex) { this.constantParamIndex = constantParamIndex; } + + public boolean isInExprToLookupJoin() { + return inExprToLookupJoin; + } + + public void setInExprToLookupJoin(boolean inExprToLookupJoin) { + this.inExprToLookupJoin = inExprToLookupJoin; + } } diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/ccl/exception/CclRescheduleException.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/ccl/exception/CclRescheduleException.java index b4f80348c..93a8ed45e 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/ccl/exception/CclRescheduleException.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/ccl/exception/CclRescheduleException.java @@ -16,21 +16,24 @@ package com.alibaba.polardbx.optimizer.ccl.exception; -import com.alibaba.polardbx.common.exception.TddlNestableRuntimeException; +import com.alibaba.polardbx.common.exception.TddlRuntimeException; +import com.alibaba.polardbx.common.exception.code.ErrorCode; import com.alibaba.polardbx.optimizer.ccl.common.RescheduleCallback; -import lombok.Data; +import lombok.Getter; +import lombok.Setter; /** * @author busu * date: 2021/2/22 9:02 下午 */ -@Data -public class CclRescheduleException extends TddlNestableRuntimeException { +@Setter +@Getter +public class CclRescheduleException extends TddlRuntimeException { private RescheduleCallback rescheduleCallback; public CclRescheduleException(String msg, RescheduleCallback rescheduleCallback) { - super(msg); + super(ErrorCode.ERR_CCL_RESCHEDULE, msg); this.rescheduleCallback = rescheduleCallback; } diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/ccl/service/impl/CclConfigService.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/ccl/service/impl/CclConfigService.java index a25cd932f..19b684aa9 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/ccl/service/impl/CclConfigService.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/ccl/service/impl/CclConfigService.java @@ -130,7 +130,6 @@ private void startRescheduleTimeoutCheckTask() { rescheduleTask.getWaitStartTs() + cclRuleInfo.getCclRuleRecord().waitTimeout * 1000 + CclUtils.generateNoise(); if (rescheduleTask == polledRescheduleTask && deadline < ts) { - rescheduleTask.getReschedulable().setRescheduled(false, null); rescheduleTask.getCclRuleInfo().getCclRuntimeStat().killedCount.getAndIncrement(); rescheduleTask.getReschedulable() .handleRescheduleError(new TddlRuntimeException(ErrorCode.ERR_CCL, String @@ -140,6 +139,7 @@ private void startRescheduleTimeoutCheckTask() { cclRuleInfo.getCclRuleRecord().id, (ts - rescheduleTask.getWaitStartTs())), null)); + rescheduleTask.getReschedulable().setRescheduled(false, null); cclRuleInfo.getStayCount().decrementAndGet(); } else { cclRuleInfo.getWaitQueue().addFirst(polledRescheduleTask); diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/config/meta/DrdsRelMdCost.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/config/meta/DrdsRelMdCost.java index db898af78..d7db86036 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/config/meta/DrdsRelMdCost.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/config/meta/DrdsRelMdCost.java @@ -218,7 +218,7 @@ public RelOptCost getCumulativeCost(MysqlLimit rel, RelMetadataQuery mq) { Double inputRowCount = mq.getRowCount(rel.getInput()); Map params = PlannerContext.getPlannerContext(rel).getParams().getCurrentParameter(); - long skipPlusFetch = 0; + double skipPlusFetch = 0; if (rel.fetch != null) { skipPlusFetch += getRexParam(rel.fetch, params); @@ -263,7 +263,7 @@ private RelOptCost getCumulativeLimitCost(Sort rel, RelMetadataQuery mq) { Double inputRowCount = mq.getRowCount(rel.getInput()); Map params = PlannerContext.getPlannerContext(rel).getParams().getCurrentParameter(); - long skipPlusFetch = 0; + double skipPlusFetch = 0; if (rel.fetch != null) { skipPlusFetch += getRexParam(rel.fetch, params); @@ -300,7 +300,7 @@ public RelOptCost getCumulativeCost(MysqlTopN rel, RelMetadataQuery mq) { } Map params = PlannerContext.getPlannerContext(rel).getParams().getCurrentParameter(); - long skipPlusFetch = 0; + double skipPlusFetch = 0; if (rel.fetch != null) { skipPlusFetch += getRexParam(rel.fetch, params); diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/config/meta/DrdsRelMdRowCount.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/config/meta/DrdsRelMdRowCount.java index 111025e21..282efdce9 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/config/meta/DrdsRelMdRowCount.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/config/meta/DrdsRelMdRowCount.java @@ -92,7 +92,7 @@ public Double getRowCount(Sort rel, RelMetadataQuery mq) { rowCount = Math.max(rowCount - offset, 0D); if (rel.fetch != null) { - long limit = CBOUtil.getRexParam(rel.fetch, params); + long limit = Math.max(CBOUtil.getRexParam(rel.fetch, params), 1); if (limit < rowCount) { return (double) limit; } diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/config/table/FileMeta.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/config/table/FileMeta.java index 0952e19ea..d954f36ef 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/config/table/FileMeta.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/config/table/FileMeta.java @@ -110,6 +110,7 @@ public static FileMeta parseFrom(FilesRecord filesRecord, Function e.columnarIndex); } public boolean isGsiOrCci(String tableName) { diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/config/table/ScaleOutPlanUtil.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/config/table/ScaleOutPlanUtil.java index 860c48dcc..b06f3fca0 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/config/table/ScaleOutPlanUtil.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/config/table/ScaleOutPlanUtil.java @@ -286,7 +286,7 @@ public static boolean preCheckAndRemoveDuplicatedKeyForMoveDatabase(SqlMoveDatab final String sourceInstId = DbTopologyManager .getStorageInstIdByGroupName(InstIdUtil.getInstId(), schemaName, sourceGroupKey); - final String targetGroupKey = GroupInfoUtil.buildScaloutGroupName(sourceGroupKey); + final String targetGroupKey = GroupInfoUtil.buildScaleOutGroupName(sourceGroupKey); if (entry.getKey().equalsIgnoreCase(sourceInstId)) { /*SQLRecorderLogger.scaleOutTaskLogger.info(MessageFormat.format( "move database [{0}] to [{1}] is skip due to it is already in [{2}], ts={3} ", sourceGroupKey, diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/config/table/TableMeta.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/config/table/TableMeta.java index 0d7a23e38..ad7c35d13 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/config/table/TableMeta.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/config/table/TableMeta.java @@ -174,8 +174,6 @@ public class TableMeta implements Serializable, Cloneable, Table, Wrapper { private Boolean hasLogicalGeneratedColumnCache = null; private Boolean hasDefaultExprColumnCache = null; private Boolean hasGeneratedColumnCache = null; - private Boolean withGsi = null; - private Boolean withCci = null; private boolean hasPrimaryKey = true; @@ -215,6 +213,8 @@ public class TableMeta implements Serializable, Cloneable, Table, Wrapper { private String defaultCollation; + private boolean encryption; + public TableMeta(String schemaName, String tableName, List allColumnsOrderByDefined, IndexMeta primaryIndex, List secondaryIndexes, boolean hasPrimaryKey, TableStatus status, long version, @@ -794,11 +794,8 @@ public void setGsiTableMetaBean(GsiMetaManager.GsiTableMetaBean gsiTableMetaBean } public boolean withGsi() { - if (withGsi == null) { - withGsi = null != getGsiTableMetaBean() && getGsiTableMetaBean().tableType != GsiMetaManager.TableType.GSI - && GeneralUtil.isNotEmpty(getGsiTableMetaBean().indexMap); - } - return withGsi; + return null != getGsiTableMetaBean() && getGsiTableMetaBean().tableType != GsiMetaManager.TableType.GSI + && GeneralUtil.isNotEmpty(getGsiTableMetaBean().indexMap); } public boolean withGsi(String indexName) { @@ -806,13 +803,9 @@ public boolean withGsi(String indexName) { } public boolean withCci() { - if (withCci == null) { - withCci = - null != getGsiTableMetaBean() && getGsiTableMetaBean().tableType != GsiMetaManager.TableType.COLUMNAR - && GeneralUtil.isNotEmpty(getGsiTableMetaBean().indexMap) && getGsiTableMetaBean().indexMap.values() - .stream().anyMatch(index -> index.columnarIndex); - } - return withCci; + return null != getGsiTableMetaBean() && getGsiTableMetaBean().tableType != GsiMetaManager.TableType.COLUMNAR + && GeneralUtil.isNotEmpty(getGsiTableMetaBean().indexMap) && getGsiTableMetaBean().indexMap.values() + .stream().anyMatch(index -> index.columnarIndex); } public boolean hasCci(String indexName) { @@ -1176,4 +1169,12 @@ public Map> getLatestTopology() { return OptimizerContext.getContext(schemaName).getRuleManager().getTableRule(tableName).getActualTopology(); } } + + public boolean isEncryption() { + return encryption; + } + + public void setEncryption(boolean encryption) { + this.encryption = encryption; + } } diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/config/table/charset/CharsetFactoryImpl.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/config/table/charset/CharsetFactoryImpl.java index 82eaeb16c..bcb878f04 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/config/table/charset/CharsetFactoryImpl.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/config/table/charset/CharsetFactoryImpl.java @@ -52,6 +52,8 @@ public CharsetHandler createCharsetHandler(CharsetName charset, CollationName co return CollationHandlers.COLLATION_HANDLER_UTF8MB4_0900_AI_CI.getCharsetHandler(); case UTF8MB4_UNICODE_520_CI: return CollationHandlers.COLLATION_HANDLER_UTF8MB4_UNICODE_520_CI.getCharsetHandler(); + case UTF8MB4_ZH_0900_AS_CS: + return CollationHandlers.COLLATION_HANDLER_UTF8MB4_ZH_0900_AS_CS.getCharsetHandler(); } case UTF8: switch (collation) { @@ -163,6 +165,8 @@ public CollationHandler createCollationHandler(CollationName collation) { return CollationHandlers.COLLATION_HANDLER_UTF8MB4_0900_AI_CI; case UTF8MB4_UNICODE_520_CI: return CollationHandlers.COLLATION_HANDLER_UTF8MB4_UNICODE_520_CI; + case UTF8MB4_ZH_0900_AS_CS: + return CollationHandlers.COLLATION_HANDLER_UTF8MB4_ZH_0900_AS_CS; case UTF8_GENERAL_CI: return CollationHandlers.COLLATION_HANDLER_UTF8_GENERAL_CI; case UTF8_UNICODE_CI: diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/config/table/charset/CollationHandlers.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/config/table/charset/CollationHandlers.java index 2ca4a847b..06d0c6d44 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/config/table/charset/CollationHandlers.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/config/table/charset/CollationHandlers.java @@ -36,6 +36,10 @@ public class CollationHandlers { new Utf8mb4CharsetHandler(CollationName.UTF8MB4_0900_AI_CI).getCollationHandler(); public final static CollationHandler COLLATION_HANDLER_UTF8MB4_UNICODE_520_CI = new Utf8mb4CharsetHandler(CollationName.UTF8MB4_UNICODE_520_CI).getCollationHandler(); + + public final static CollationHandler COLLATION_HANDLER_UTF8MB4_ZH_0900_AS_CS = + new Utf8mb4CharsetHandler(CollationName.UTF8MB4_ZH_0900_AS_CS).getCollationHandler(); + public final static CollationHandler COLLATION_HANDLER_UTF8MB4_BIN = new Utf8mb4CharsetHandler(CollationName.UTF8MB4_BIN).getCollationHandler(); public final static CollationHandler COLLATION_HANDLER_UTF16_GENERAL_CI = diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/config/table/charset/Utf8mb4CharsetHandler.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/config/table/charset/Utf8mb4CharsetHandler.java index 38fe342b7..6b439e1db 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/config/table/charset/Utf8mb4CharsetHandler.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/config/table/charset/Utf8mb4CharsetHandler.java @@ -18,6 +18,7 @@ import com.alibaba.polardbx.common.charset.CharsetName; import com.alibaba.polardbx.common.charset.CollationName; +import com.alibaba.polardbx.optimizer.config.table.collation.UTF8mb4Zh0900AsCsCollationHandler; import com.alibaba.polardbx.optimizer.config.table.collation.Utf8mb40900AiCiCollationHandler; import com.alibaba.polardbx.optimizer.config.table.collation.Utf8mb4BinCollationHandler; import com.alibaba.polardbx.optimizer.config.table.collation.Utf8mb4GeneralCiCollationHandler; @@ -45,6 +46,9 @@ public class Utf8mb4CharsetHandler extends AbstractCharsetHandler { case UTF8MB4_UNICODE_520_CI: this.collationHandler = new Utf8mb4Unicode520CiCollationHandler(this); break; + case UTF8MB4_ZH_0900_AS_CS: + this.collationHandler = new UTF8mb4Zh0900AsCsCollationHandler(this); + break; default: throw new UnsupportedOperationException(); } diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/config/table/collation/AbstractCollationHandler.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/config/table/collation/AbstractCollationHandler.java index d81c6936e..3f4bb34b9 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/config/table/collation/AbstractCollationHandler.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/config/table/collation/AbstractCollationHandler.java @@ -28,12 +28,124 @@ import java.util.function.Function; public abstract class AbstractCollationHandler implements CollationHandler { + /* wm_wc and wc_mb return codes */ + /* clang-format off */ + static final int MY_CS_ILSEQ = 0; /* Wrong by sequence: wb_wc */ + static final int MY_CS_ILUNI = 0; /* Cannot encode Unicode to charset: wc_mb */ + static final int MY_CS_TOOSMALL = -101; /* Need at least one byte: wc_mb and mb_wc */ + static final int MY_CS_TOOSMALL2 = -102; /* Need at least two bytes: wc_mb and mb_wc */ + static final int MY_CS_TOOSMALL3 = -103; /* Need at least three bytes: wc_mb and mb_wc */ + + /* These following three are currently not really used */ + static final int MY_CS_TOOSMALL4 = -104; /* Need at least 4 bytes: wc_mb and mb_wc */ + static final int MY_CS_TOOSMALL5 = -105; /* Need at least 5 bytes: wc_mb and mb_wc */ + static final int MY_CS_TOOSMALL6 = -106; /* Need at least 6 bytes: wc_mb and mb_wc */ + protected final CharsetHandler charsetHandler; AbstractCollationHandler(CharsetHandler charsetHandler) { this.charsetHandler = charsetHandler; } + /** + * 0x0 - 0x7f | 0xxxxxxx + * 0x80 - 0x7ff | 110xxxxx 10xxxxxx + * 0x800 - 0xffff | 1110xxxx 10xxxxxx 10xxxxxx + * 0x10000 - 0x10ffff | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx + */ + public static int codepointOfUTF8(int[] parsedWildCharacter, Slice str, int s, int e, + boolean rangeCheck, boolean supportMB4) { + if (rangeCheck && s >= e) { + return MY_CS_TOOSMALL; + } + + byte c = str.getByte(s); + if (Byte.toUnsignedInt(c) < 0x80) { + parsedWildCharacter[0] = c; + return 1; + } + + if (Byte.toUnsignedInt(c) < 0xe0) { + // Resulting code point would be less than 0x80. + if (Byte.toUnsignedInt(c) < 0xc2) { + return MY_CS_ILSEQ; + } + + if (rangeCheck && s + 2 > e) { + return MY_CS_TOOSMALL2; + } + + // Next byte must be a continuation byte. + if ((str.getByte(s + 1) & 0xc0) != 0x80) { + return MY_CS_ILSEQ; + } + + parsedWildCharacter[0] = ((c & 0x1f) << 6) + (str.getByte(s + 1) & 0x3f); + return 2; + } + + if (Byte.toUnsignedInt(c) < 0xf0) { + if (rangeCheck && s + 3 > e) { + return MY_CS_TOOSMALL3; + } + + // Next two bytes must be continuation bytes. + int two_bytes = ((str.getByte(s + 1) & 0xFF) << 8) | (str.getByte(s + 2) & 0xFF); + + // Endianness does not matter. + if ((two_bytes & 0xc0c0) != 0x8080) { + return MY_CS_ILSEQ; + } + + parsedWildCharacter[0] = ((c & 0x0f) << 12) + + ((str.getByte(s + 1) & 0x3f) << 6) + + (str.getByte(s + 2) & 0x3f); + + if (parsedWildCharacter[0] < 0x800) { + return MY_CS_ILSEQ; + } + + // According to RFC 3629, UTF-8 should prohibit characters between + // U+D800 and U+DFFF, which are reserved for surrogate pairs and do + // not directly represent characters. + if (parsedWildCharacter[0] >= 0xd800 && parsedWildCharacter[0] <= 0xdfff) { + return MY_CS_ILSEQ; + } + return 3; + } + + if (supportMB4) { + // We need 4 characters + if (rangeCheck && s + 4 > e) { + return MY_CS_TOOSMALL4; + } + + // This byte must be of the form 11110xxx, and the next three bytes + // must be continuation bytes. + long four_bytes = ((0xFF & str.getByte(s)) << 24) | ((0xFF & str.getByte(s + 1)) << 16) | + ((0xFF & str.getByte(s + 2)) << 8) | (0xFF & str.getByte(s + 3)); + + if ((four_bytes & 0xf8c0c0c0) != 0xf0808080) { + return MY_CS_ILSEQ; + } + + parsedWildCharacter[0] = ((c & 0x07) << 18) + ((str.getByte(s + 1) & 0x3f) << 12) + + ((str.getByte(s + 2) & 0x3f) << 6) + (str.getByte(s + 3) & 0x3f); + if (parsedWildCharacter[0] < 0x10000 || parsedWildCharacter[0] > 0x10ffff) { + return MY_CS_ILSEQ; + } + return 4; + } + + return MY_CS_ILSEQ; + } + + /** + * 0x0 - 0x7f | 0xxxxxxx + * 0x80 - 0x7ff | 110xxxxx 10xxxxxx + * 0x800 - 0xffff | 1110xxxx 10xxxxxx 10xxxxxx + * 0x10000 - 0x10ffff | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx + */ public static int codepointOfUTF8(SliceInput buff) { if (!buff.isReadable()) { return INVALID_CODE; diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/config/table/collation/AbstractUCACollationHandler.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/config/table/collation/AbstractUCACollationHandler.java index b3ed190dc..8ad0ada2b 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/config/table/collation/AbstractUCACollationHandler.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/config/table/collation/AbstractUCACollationHandler.java @@ -289,6 +289,7 @@ int next() { code = codepoint & 0xFF; weightPage = UCA_WEIGHTS[page]; + // If weight page for codepoint does not exist, then calculate algorithmically if (weightPage == null) { code = (page << 8) + code; implicit[0] = (code & 0x7FFF) | 0x8000; diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/config/table/collation/CTypeUCA.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/config/table/collation/CTypeUCA.java new file mode 100644 index 000000000..4d749b104 --- /dev/null +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/config/table/collation/CTypeUCA.java @@ -0,0 +1,172 @@ +/* + * Copyright [2013-2021], Alibaba Group Holding Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.alibaba.polardbx.optimizer.config.table.collation; + +import com.alibaba.polardbx.optimizer.config.table.collation.StrUcaType.Coll_param; +import com.alibaba.polardbx.optimizer.config.table.collation.StrUcaType.Reorder_param; +import com.alibaba.polardbx.optimizer.config.table.collation.StrUcaType.Reorder_wt_rec; +import com.alibaba.polardbx.optimizer.config.table.collation.StrUcaType.Weight_boundary; +import com.alibaba.polardbx.optimizer.config.table.collation.StrUcaType.enum_case_first; +import com.alibaba.polardbx.optimizer.config.table.collation.StrUcaType.enum_char_grp; + +import static com.alibaba.polardbx.optimizer.config.table.collation.Uca900Data.my_uca_v900; +import static com.alibaba.polardbx.optimizer.config.table.collation.Uca900Data.my_unicase_unicode900; +import static com.alibaba.polardbx.optimizer.config.table.collation.Uca900ZhData.my_uca_v900_zh_cs_as; + +public class CTypeUCA { + public static Reorder_param zh_reorder_param = new Reorder_param( + new enum_char_grp[] { + enum_char_grp.CHARGRP_NONE, + enum_char_grp.CHARGRP_NONE, + enum_char_grp.CHARGRP_NONE, + enum_char_grp.CHARGRP_NONE + }, + new Reorder_wt_rec[] { + new Reorder_wt_rec( + new Weight_boundary(0x1C47, 0x54A3), + new Weight_boundary(0xBDC4, 0xF620) + ), + new Reorder_wt_rec( + new Weight_boundary(0, 0), + new Weight_boundary(0, 0) + ), + new Reorder_wt_rec( + new Weight_boundary(0, 0), + new Weight_boundary(0, 0) + ), + new Reorder_wt_rec( + new Weight_boundary(0, 0), + new Weight_boundary(0, 0) + ), + new Reorder_wt_rec( + new Weight_boundary(0, 0), + new Weight_boundary(0, 0) + ), + new Reorder_wt_rec( + new Weight_boundary(0, 0), + new Weight_boundary(0, 0) + ), + new Reorder_wt_rec( + new Weight_boundary(0, 0), + new Weight_boundary(0, 0) + ), + new Reorder_wt_rec( + new Weight_boundary(0, 0), + new Weight_boundary(0, 0) + ), + }, + 1, 0x54A3); + + public static Coll_param zh_coll_param = new Coll_param( + zh_reorder_param, false, enum_case_first.CASE_FIRST_OFF); + + /* CHARSET_INFO::state flags */ + /* clang-format off */ + static final int MY_CHARSET_UNDEFINED = 0; // for unit testing + static final int MY_CS_COMPILED = 1 << 0; // compiled-in charsets + static final int MY_CS_CONFIG_UNUSED = 1 << 1; // unused bitmask + static final int MY_CS_INDEX_UNUSED = 1 << 2; // unused bitmask + static final int MY_CS_LOADED = 1 << 3; // charsets that are currently loaded + static final int MY_CS_BINSORT = 1 << 4; // if binary sort order + static final int MY_CS_PRIMARY = 1 << 5; // if primary collation + static final int MY_CS_STRNXFRM = 1 << 6; // if _not_ set, sort_order will + // give same result as strnxfrm -- + // all new collations should have + // this flag set, + // do not check it in new code + static final int MY_CS_UNICODE = 1 << 7; // if a charset is BMP Unicode + static final int MY_CS_READY = 1 << 8; // if a charset is initialized + static final int MY_CS_AVAILABLE = 1 << 9; // if either compiled-in or loaded + static final int MY_CS_CSSORT = 1 << 10; // if case sensitive sort order + static final int MY_CS_HIDDEN = 1 << 11; // don't display in SHOW + static final int MY_CS_PUREASCII = 1 << 12; // if a charset is pure ascii + static final int MY_CS_NONASCII = 1 << 13; // if not ASCII-compatible + static final int MY_CS_UNICODE_SUPPLEMENT = 1 << 14; // Non-BMP Unicode characters + static final int MY_CS_LOWER_SORT = 1 << 15; // if use lower case as weight + static final int MY_CS_INLINE = 1 << 16; // CS definition is C++ source + + /* Character repertoire flags */ + static final int MY_REPERTOIRE_ASCII = 1; /* Pure ASCII U+0000..U+007F */ + static final int MY_REPERTOIRE_EXTENDED = 2; /* Extended characters: U+0080..U+FFFF */ + static final int MY_REPERTOIRE_UNICODE30 = 3; /* ASCII | EXTENDED: U+0000..U+FFFF */ + + /* Flags for strxfrm */ + static final int MY_STRXFRM_PAD_TO_MAXLEN = 0x00000080; /* if pad tail(for filesort) */ + + static final int MY_CS_UTF8MB4_UCA_FLAGS = + MY_CS_COMPILED | MY_CS_STRNXFRM | MY_CS_UNICODE | MY_CS_UNICODE_SUPPLEMENT; + + /* We consider bytes with code more than 127 as a letter. + This guarantees that word boundaries work fine with regular + expressions. Note, there is no need to mark byte 255 as a + letter, it is illegal byte in UTF8. + */ + static final int[] ctype_utf8 = { + 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 40, 40, 40, 40, 40, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 72, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 16, 16, 16, 16, 16, + 16, 16, 129, 129, 129, 129, 129, 129, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 16, 16, 16, 16, + 16, 16, 130, 130, 130, 130, 130, 130, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 16, 16, 16, 16, + 32, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 0}; + + public static MCType.CHARSET_INFO my_charset_utf8mb4_zh_0900_as_cs = new MCType.CHARSET_INFO( + 308, + 0, + 0, + MY_CS_UTF8MB4_UCA_FLAGS | MY_CS_CSSORT, + "utf8mb4", + "utf8mb4_zh_0900_as_cs", + "", + Uca900ZhData.ZH_CLDR_30, + CTypeUCA.zh_coll_param, + ctype_utf8, + null, + null, + null, + my_uca_v900_zh_cs_as, + null, + null, + my_unicase_unicode900, + null, + null, + 0, + 1, + 1, + 1, + 4, + 1, + 32, + 0x10FFFF, + ' ', + false, + 3, + null, + null, + MCType.Pad_attribute.NO_PAD + ); +} diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/config/table/collation/CollationHandler.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/config/table/collation/CollationHandler.java index 50ddf3858..e00330f6c 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/config/table/collation/CollationHandler.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/config/table/collation/CollationHandler.java @@ -87,6 +87,19 @@ default boolean wildCompare(Slice slice, Slice wildCard) { return false; } + /** + * match pattern '%xxx%' + */ + default boolean containsCompare(Slice slice, byte[] wildCard, int[] lps) { + return false; + } + + /** + * Hash code of utf8 string should obey all three criteria in the contract: + * 1. internal consistency: the value of hashCode() may only change if a property that is in equals() changes + * 2. equals consistency: objects that are equal to each other must return the same hashCode + * 3. collisions: unequal objects may have the same hashCode + */ default int hashcode(Slice str) { return Optional.ofNullable(str) .map(CharsetFactory.INSTANCE.DEFAULT_CHARSET_HANDLER::decode) diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/config/table/collation/Latin1BinCollationHandler.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/config/table/collation/Latin1BinCollationHandler.java index dde5eb76b..1bfac8989 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/config/table/collation/Latin1BinCollationHandler.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/config/table/collation/Latin1BinCollationHandler.java @@ -153,6 +153,34 @@ public boolean wildCompare(Slice slice, Slice wildCard) { return doWildCompare(slice, 0, wildCard, 0) == 0; } + @Override + public boolean containsCompare(Slice slice, byte[] wildCard, int[] lps) { + if (wildCard == null || wildCard.length == 0) { + // like '%%' always match + return true; + } + int length = slice.length(); + int i = 0; + int j = 0; + + while (i < length) { + if (wildCard[j] == slice.getByteUnchecked(i)) { + i++; + j++; + } + if (j == wildCard.length) { + return true; + } else if (i < length && wildCard[j] != slice.getByteUnchecked(i)) { + if (j != 0) { + j = lps[j - 1]; + } else { + i++; + } + } + } + return false; + } + /** * @return -1代表不匹配,0代表匹配,1代表继续 */ diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/config/table/collation/MCType.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/config/table/collation/MCType.java new file mode 100644 index 000000000..a1b60213a --- /dev/null +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/config/table/collation/MCType.java @@ -0,0 +1,210 @@ +/* + * Copyright [2013-2021], Alibaba Group Holding Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.alibaba.polardbx.optimizer.config.table.collation; + +import com.alibaba.polardbx.optimizer.config.table.charset.CharsetHandler; + +public class MCType { + /** + * A ure containing data for charset+collation pair implementation. + *

+ * Virtual functions that use this data are collected into separate + * ures, MY_CHARSET_HANDLER and MY_COLLATION_HANDLER. + */ + public static class CHARSET_INFO { + long number; + long primary_number; + long binary_number; + long state; + String csname; + String m_coll_name; + String comment; + String tailoring; + StrUcaType.Coll_param coll_param; + int[] ctype; + int[] to_lower; + int[] to_upper; + int[] sort_order; + StrUcaType.MY_UCA_INFO uca; /* This can be changed in apply_one_rule() */ + int[] tab_to_uni; + MY_UNI_IDX tab_from_uni; + MY_UNICASE_INFO caseinfo; + lex_state_maps_st state_maps; /* parser internal data */ + int[] ident_map; /* parser internal data */ + long strxfrm_multiply; + int caseup_multiply; + int casedn_multiply; + long mbminlen; + long mbmaxlen; + long mbmaxlenlen; + int min_sort_char; + int max_sort_char; /* For LIKE optimization */ + int pad_char; + boolean escape_with_backslash_is_dangerous; + int levels_for_compare; + + CharsetHandler cset; + CollationHandler coll; + + /** + * If this collation is PAD_SPACE, it collates as if all inputs were + * padded with a given number of spaces at the end (see the "num_codepoints" + * flag to strnxfrm). NO_PAD simply compares unextended strings. + *

+ * Note that this is fundamentally about the behavior of coll->strnxfrm. + */ + Pad_attribute pad_attribute; + + public CHARSET_INFO(long number, long primary_number, long binary_number, long state, String csname, + String m_coll_name, + String comment, String tailoring, StrUcaType.Coll_param coll_param, int[] ctype, + int[] to_lower, + int[] to_upper, int[] sort_order, StrUcaType.MY_UCA_INFO uca, int[] tab_to_uni, + MY_UNI_IDX tab_from_uni, MY_UNICASE_INFO caseinfo, lex_state_maps_st state_maps, + int[] ident_map, + long strxfrm_multiply, int caseup_multiply, int casedn_multiply, long mbminlen, + long mbmaxlen, + long mbmaxlenlen, int min_sort_char, int max_sort_char, int pad_char, + boolean escape_with_backslash_is_dangerous, int levels_for_compare, CharsetHandler cset, + CollationHandler coll, Pad_attribute pad_attribute) { + this.number = number; + this.primary_number = primary_number; + this.binary_number = binary_number; + this.state = state; + this.csname = csname; + this.m_coll_name = m_coll_name; + this.comment = comment; + this.tailoring = tailoring; + this.coll_param = coll_param; + this.ctype = ctype; + this.to_lower = to_lower; + this.to_upper = to_upper; + this.sort_order = sort_order; + this.uca = uca; + this.tab_to_uni = tab_to_uni; + this.tab_from_uni = tab_from_uni; + this.caseinfo = caseinfo; + this.state_maps = state_maps; + this.ident_map = ident_map; + this.strxfrm_multiply = strxfrm_multiply; + this.caseup_multiply = caseup_multiply; + this.casedn_multiply = casedn_multiply; + this.mbminlen = mbminlen; + this.mbmaxlen = mbmaxlen; + this.mbmaxlenlen = mbmaxlenlen; + this.min_sort_char = min_sort_char; + this.max_sort_char = max_sort_char; + this.pad_char = pad_char; + this.escape_with_backslash_is_dangerous = escape_with_backslash_is_dangerous; + this.levels_for_compare = levels_for_compare; + this.cset = cset; + this.coll = coll; + this.pad_attribute = pad_attribute; + } + } + + enum Pad_attribute {PAD_SPACE, NO_PAD} + + ; + + public static class MY_UNI_IDX { + int from; + int to; + int[] tab; + } + + public static class MY_UNICASE_INFO { + int maxchar; + MY_UNICASE_CHARACTER[][] page; + + public MY_UNICASE_INFO(int maxchar, MY_UNICASE_CHARACTER[][] page) { + this.maxchar = maxchar; + this.page = page; + } + } + + public static class MY_UNICASE_CHARACTER { + int toupper; + int tolower; + int sort; + + public MY_UNICASE_CHARACTER(int toupper, int tolower, int sort) { + this.toupper = toupper; + this.tolower = tolower; + this.sort = sort; + } + } + + public static class lex_state_maps_st { + my_lex_states[] main_map = new my_lex_states[256]; + hint_lex_char_classes[] hint_map = new hint_lex_char_classes[256]; + } + + enum my_lex_states { + MY_LEX_START, + MY_LEX_CHAR, + MY_LEX_IDENT, + MY_LEX_IDENT_SEP, + MY_LEX_IDENT_START, + MY_LEX_REAL, + MY_LEX_HEX_NUMBER, + MY_LEX_BIN_NUMBER, + MY_LEX_CMP_OP, + MY_LEX_LONG_CMP_OP, + MY_LEX_STRING, + MY_LEX_COMMENT, + MY_LEX_END, + MY_LEX_NUMBER_IDENT, + MY_LEX_INT_OR_REAL, + MY_LEX_REAL_OR_POINT, + MY_LEX_BOOL, + MY_LEX_EOL, + MY_LEX_LONG_COMMENT, + MY_LEX_END_LONG_COMMENT, + MY_LEX_SEMICOLON, + MY_LEX_SET_VAR, + MY_LEX_USER_END, + MY_LEX_HOSTNAME, + MY_LEX_SKIP, + MY_LEX_USER_VARIABLE_DELIMITER, + MY_LEX_SYSTEM_VAR, + MY_LEX_IDENT_OR_KEYWORD, + MY_LEX_IDENT_OR_HEX, + MY_LEX_IDENT_OR_BIN, + MY_LEX_IDENT_OR_NCHAR, + MY_LEX_IDENT_OR_DOLLAR_QUOTED_TEXT, + MY_LEX_STRING_OR_DELIMITER + } + + enum hint_lex_char_classes { + HINT_CHR_ASTERISK, // [*] + HINT_CHR_AT, // [@] + HINT_CHR_BACKQUOTE, // [`] + HINT_CHR_CHAR, // default state + HINT_CHR_DIGIT, // [[:digit:]] + HINT_CHR_DOT, // '.' + HINT_CHR_DOUBLEQUOTE, // ["] + HINT_CHR_EOF, // pseudo-class + HINT_CHR_IDENT, // [_$[:alpha:]] + HINT_CHR_MB, // multibyte character + HINT_CHR_NL, // \n + HINT_CHR_QUOTE, // ['] + HINT_CHR_SLASH, // [/] + HINT_CHR_SPACE // [[:space:]] excluding \n + } + +} diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/config/table/collation/StrUcaType.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/config/table/collation/StrUcaType.java new file mode 100644 index 000000000..03b9011f5 --- /dev/null +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/config/table/collation/StrUcaType.java @@ -0,0 +1,230 @@ +/* + * Copyright [2013-2021], Alibaba Group Holding Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.alibaba.polardbx.optimizer.config.table.collation; + +import java.util.List; + +public class StrUcaType { + public static final int MY_UCA_CNT_FLAG_SIZE = 4096; + public static final int MY_UCA_CNT_FLAG_MASK = 4095; + public static final int UCA_MAX_CHAR_GRP = 4; + public static final int MY_UCA_PREVIOUS_CONTEXT_TAIL = 128; + public static final int MY_UCA_PREVIOUS_CONTEXT_HEAD = 64; + public static final int MY_UCA_CNT_HEAD = 1; + public static final int MY_UCA_CNT_TAIL = 2; + + public static class Coll_param { + Reorder_param reorder_param; + boolean norm_enabled; // false = normalization off, default; true = on + enum_case_first case_first; + + public Coll_param(Reorder_param reorder_param, boolean norm_enabled, enum_case_first case_first) { + this.reorder_param = reorder_param; + this.norm_enabled = norm_enabled; + this.case_first = case_first; + } + } + + enum enum_case_first {CASE_FIRST_OFF, CASE_FIRST_UPPER, CASE_FIRST_LOWER} + + public static class Reorder_param { + enum_char_grp[] reorder_grp = new enum_char_grp[UCA_MAX_CHAR_GRP]; + Reorder_wt_rec[] wt_rec = new Reorder_wt_rec[2 * UCA_MAX_CHAR_GRP]; + int wt_rec_num; + int max_weight; + + public Reorder_param(enum_char_grp[] reorder_grp, Reorder_wt_rec[] wt_rec, int wt_rec_num, int max_weight) { + this.reorder_grp = reorder_grp; + this.wt_rec = wt_rec; + this.wt_rec_num = wt_rec_num; + this.max_weight = max_weight; + } + } + + enum enum_char_grp { + CHARGRP_NONE, + CHARGRP_CORE, + CHARGRP_LATIN, + CHARGRP_CYRILLIC, + CHARGRP_ARAB, + CHARGRP_KANA, + CHARGRP_OTHERS + } + + public static class Reorder_wt_rec { + Weight_boundary old_wt_bdy; + Weight_boundary new_wt_bdy; + + public Reorder_wt_rec(Weight_boundary old_wt_bdy, Weight_boundary new_wt_bdy) { + this.old_wt_bdy = old_wt_bdy; + this.new_wt_bdy = new_wt_bdy; + } + } + + public static class Weight_boundary { + int begin; + int end; + + public Weight_boundary(int begin, int end) { + this.begin = begin; + this.end = end; + } + } + + enum enum_uca_ver {UCA_V400, UCA_V520, UCA_V900} + + public static final int MY_UCA_MAX_WEIGHT_SIZE = 25; + + /** + * We store all the contractions in a trie, indexed on the codepoints they + * consist of. The trie is organized as: + * 1. Each node stores one code point (ch) of contraction, and a list of nodes + * (child_nodes) store all possible following code points. + * 2. The vector in MY_UCA_INFO stores a list of nodes which store the first + * code points of all contractions. + * 3. Each node has a boolean value (is_contraction_tail) which shows + * whether the code point stored in the node is the end of a contraction. + * This is necessary because even if one code point is the end of a + * contraction, there might be longer contraction contains all the + * code points in the path (e.g., for Hungarian, both 'DZ' and 'DZS' are + * contractions). + * 4. A contraction is formed by all the code points in the path until the + * end of the contraction. + * 5. If it is the end of a contraction (is_contraction_tail == true), the + * weight of this contraction is stored in array weight. + * 6. If it is the end of a contraction (is_contraction_tail == true), + * with_context shows whether it is common contraction (with_context == + * false), or previous context contraction (with_context == true). + * 7. If it is the end of a contraction (is_contraction_tail == true), + * contraction_len shows how many code points this contraction consists of. + */ + public static class MY_CONTRACTION { + long ch; + // Lists of following nodes. + List child_nodes; + List child_nodes_context; + + // weight and with_context are only useful when is_contraction_tail is true. + int[] weight = new int[MY_UCA_MAX_WEIGHT_SIZE]; /* Its weight string, 0-terminated */ + boolean is_contraction_tail; + int contraction_len; + + public MY_CONTRACTION(long ch, List child_nodes, List child_nodes_context, + int[] weight, + boolean is_contraction_tail, int contraction_len) { + this.ch = ch; + this.child_nodes = child_nodes; + this.child_nodes_context = child_nodes_context; + this.weight = weight; + this.is_contraction_tail = is_contraction_tail; + this.contraction_len = contraction_len; + } + } + + public static class MY_UCA_INFO { + enum_uca_ver version = enum_uca_ver.UCA_V400; + MY_UCA_INFO m_based_on = null; + + // Collation weights. + long maxchar = 0; + + int[] lengths = null; + List m_allocated_weights = null; + int[][] weights = null; + + boolean have_contractions = false; + List contraction_nodes = null; + /** + * contraction_flags is only used when a collation has contraction rule. + * UCA collation supports at least 65535 characters, but only a few of + * them can be part of contraction, it is huge waste of time to find out + * whether one character is in contraction list for every character. + * contraction_flags points to memory which is allocated when a collation + * has contraction rule. For a character in contraction, its corresponding + * byte (contraction_flags[ch & 0x1000]) will be set to a certain value + * according to the position (head, tail or middle) of this character in + * contraction. This byte will be used to quick check whether one character + * can be part of contraction. + */ + + byte[] contraction_flags = null; + + /* Logical positions */ + long first_non_ignorable = 0; + long last_non_ignorable = 0; + long first_primary_ignorable = 0; + long last_primary_ignorable = 0; + long first_secondary_ignorable = 0; + long last_secondary_ignorable = 0; + long first_tertiary_ignorable = 0; + long last_tertiary_ignorable = 0; + long first_trailing = 0; + long last_trailing = 0; + long first_variable = 0; + long last_variable = 0; + + /** + * extra_ce_pri_base, extra_ce_sec_base and extra_ce_ter_base are only used for + * the UCA collations whose UCA version is not smaller than UCA_V900. For why + * we need this extra CE, please see the comment in my_char_weight_put_900() + * and apply_primary_shift_900(). + *

+ * The value of these three variables is set by the definition of my_uca_v900. + * The value of extra_ce_pri_base is usually 0x54A4 (which is the maximum + * regular weight value pluses one, 0x54A3 + 1 = 0x54A4). But for the Chinese + * collation, the extra_ce_pri_base needs to change. This is because 0x54A4 has + * been occupied to do reordering. There might be weight conflict if we still + * use 0x54A4. Please also see the comment on modify_all_zh_pages(). + */ + int extra_ce_pri_base = 0; // Primary weight of extra CE + int extra_ce_sec_base = 0; // Secondary weight of extra CE + int extra_ce_ter_base = 0; // Tertiary weight of extra CE + + public MY_UCA_INFO(enum_uca_ver version, MY_UCA_INFO m_based_on, long maxchar, int[] lengths, + List m_allocated_weights, int[][] weights, boolean have_contractions, + List contraction_nodes, byte[] contraction_flags, long first_non_ignorable, + long last_non_ignorable, long first_primary_ignorable, long last_primary_ignorable, + long first_secondary_ignorable, long last_secondary_ignorable, long first_tertiary_ignorable, + long last_tertiary_ignorable, long first_trailing, long last_trailing, long first_variable, + long last_variable, int extra_ce_pri_base, int extra_ce_sec_base, int extra_ce_ter_base) { + this.version = version; + this.m_based_on = m_based_on; + this.maxchar = maxchar; + this.lengths = lengths; + this.m_allocated_weights = m_allocated_weights; + this.weights = weights; + this.have_contractions = have_contractions; + this.contraction_nodes = contraction_nodes; + this.contraction_flags = contraction_flags; + this.first_non_ignorable = first_non_ignorable; + this.last_non_ignorable = last_non_ignorable; + this.first_primary_ignorable = first_primary_ignorable; + this.last_primary_ignorable = last_primary_ignorable; + this.first_secondary_ignorable = first_secondary_ignorable; + this.last_secondary_ignorable = last_secondary_ignorable; + this.first_tertiary_ignorable = first_tertiary_ignorable; + this.last_tertiary_ignorable = last_tertiary_ignorable; + this.first_trailing = first_trailing; + this.last_trailing = last_trailing; + this.first_variable = first_variable; + this.last_variable = last_variable; + this.extra_ce_pri_base = extra_ce_pri_base; + this.extra_ce_sec_base = extra_ce_sec_base; + this.extra_ce_ter_base = extra_ce_ter_base; + } + } +} diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/config/table/collation/UTF8mb4Zh0900AsCsCollationHandler.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/config/table/collation/UTF8mb4Zh0900AsCsCollationHandler.java new file mode 100644 index 000000000..0d9450a1e --- /dev/null +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/config/table/collation/UTF8mb4Zh0900AsCsCollationHandler.java @@ -0,0 +1,658 @@ +/* + * Copyright [2013-2021], Alibaba Group Holding Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.alibaba.polardbx.optimizer.config.table.collation; + +import com.alibaba.polardbx.common.charset.CollationName; +import com.alibaba.polardbx.common.charset.SortKey; +import com.alibaba.polardbx.optimizer.config.table.charset.CharsetHandler; +import io.airlift.slice.Slice; +import io.airlift.slice.SliceInput; +import io.airlift.slice.Slices; + +import java.util.Arrays; +import java.util.List; + +import static com.alibaba.polardbx.optimizer.config.table.collation.CTypeUCA.my_charset_utf8mb4_zh_0900_as_cs; +import static com.alibaba.polardbx.optimizer.config.table.collation.CTypeUCA.zh_coll_param; +import static com.alibaba.polardbx.optimizer.config.table.collation.StrUcaType.*; +import static com.alibaba.polardbx.optimizer.config.table.collation.StrUcaType.MY_UCA_PREVIOUS_CONTEXT_HEAD; +import static com.alibaba.polardbx.optimizer.config.table.collation.StrUcaType.MY_UCA_PREVIOUS_CONTEXT_TAIL; +import static com.alibaba.polardbx.optimizer.config.table.collation.StrUcaType.enum_case_first.CASE_FIRST_UPPER; +import static com.alibaba.polardbx.optimizer.config.table.collation.StrUcaType.enum_uca_ver.UCA_V900; +import static com.alibaba.polardbx.optimizer.config.table.collation.Uca900Data.MY_UCA_900_CE_SIZE; +import static com.alibaba.polardbx.optimizer.config.table.collation.Uca900Data.UCA900_DISTANCE_BETWEEN_WEIGHTS; +import static com.alibaba.polardbx.optimizer.config.table.collation.Uca900Data.UCA900_WEIGHT_ADDR; + +public class UTF8mb4Zh0900AsCsCollationHandler extends AbstractCollationHandler { + + public UTF8mb4Zh0900AsCsCollationHandler(CharsetHandler charsetHandler) { + super(charsetHandler); + } + + @Override + public CollationName getName() { + return CollationName.UTF8MB4_ZH_0900_AS_CS; + } + + @Override + public CharsetHandler getCharsetHandler() { + return charsetHandler; + } + + @Override + public int compare(Slice str1, Slice str2) { + MCType.CHARSET_INFO cs = my_charset_utf8mb4_zh_0900_as_cs; + boolean t_is_prefix = false; + + ZhUcaScanner sscanner = new ZhUcaScanner(str1); + ZhUcaScanner tscanner = new ZhUcaScanner(str2); + int s_res = 0; + int t_res = 0; + + // We compare 2 strings in same level first. If only string A's scanner + // has gone to next level, which means another string, B's weight of + // current level is longer than A's. We'll compare B's remaining weights + // with space. + for (int current_lv = 0; current_lv < cs.levels_for_compare; ++current_lv) { + /* Run the scanners until one of them runs out of current lv */ + do { + s_res = sscanner.next(); + t_res = tscanner.next(); + } while (s_res == t_res && s_res >= 0 && + sscanner.get_weight_level() == current_lv && + tscanner.get_weight_level() == current_lv); + + // Two scanners run to next level at same time, or we found a difference, + // or we found an error. + if (sscanner.get_weight_level() == tscanner.get_weight_level()) { + if (s_res == t_res && s_res >= 0) { + continue; + } + break; // Error or inequality found, end. + } + + if (tscanner.get_weight_level() > current_lv) { + // t ran out of weights on this level, and s didn't. + if (t_is_prefix) { + // Consume the rest of the weights from s. + do { + s_res = sscanner.next(); + } while (s_res >= 0 && sscanner.get_weight_level() == current_lv); + + if (s_res < 0) { + break; // Error found, end. + } + + // s is now also on the next level. Continue comparison. + continue; + } else { + // s is longer than t (and t_prefix isn't set). + return 1; + } + } + + if (sscanner.get_weight_level() > current_lv) { + // s ran out of weights on this level, and t didn't. + return -1; + } + + break; + } + + return (s_res - t_res); + } + + @Override + public int compareSp(Slice str1, Slice str2) { + return compare(str1, str2); + } + + class ZhUcaScanner { + private final int nochar[] = {0, 0}; + + MCType.CHARSET_INFO cs = my_charset_utf8mb4_zh_0900_as_cs; + StrUcaType.MY_UCA_INFO uca = cs.uca; + + /** + * 0 = Primary, 1 = Secondary, 2 = Tertiary. + */ + int weight_lv = 0; + int levelsForCompare; + + long num_of_ce_left = 0; + + Slice str; + + // Beginning of the current weight string + int wbeg = 0; + int[] weightStr = nochar; + + // Number of bytes between weights in string + int wbeg_stride = 0; + + int sbeg = 0; + int sbeg_dup = 0; + int send = 0; + + int implicit[] = new int[10]; + + // Previous code point we scanned, if any. + int prev_char = 0; + + ZhUcaScanner(Slice str) { + this.str = str; + this.send = str.length(); + this.levelsForCompare = cs.levels_for_compare; + } + + public func_lambda new_func_lambda(byte[] dstStr, int dst, int dst_end) { + return new func_lambda(dstStr, dst, dst_end); + } + + class func_lambda { + byte[] dstStr; + int dst; + int dst_end; + + public func_lambda(byte[] dstStr, int dst, int dst_end) { + this.dstStr = dstStr; + this.dst = dst; + this.dst_end = dst_end; + } + + boolean func(int s_res, boolean is_level_separator) { + assert (is_level_separator == (s_res == 0)); + if (levelsForCompare == 1) { + assert (!is_level_separator); + } + + // dst = store16be(dst, s_res); + + dstStr[dst] = (byte) (s_res >>> 8); + dstStr[dst + 1] = (byte) s_res; + dst = dst + 2; + + return dst < dst_end; + } + } + + class preaccept_data_lambda { + byte[] dstStr; + int dst; + int dst_end; + + public preaccept_data_lambda(byte[] dstStr, int dst, int dst_end) { + this.dstStr = dstStr; + this.dst = dst; + this.dst_end = dst_end; + } + + boolean preaccept_data(int num_weights) { + return (dst < dst_end - num_weights * 2); + } + } + + void for_each_weight( + func_lambda func, preaccept_data_lambda preaccept_data) { + if (cs.tailoring != null || cs.mbminlen != 1 || cs.coll_param != null) { + // Slower, generic path. + int s_res; + while ((s_res = next()) >= 0) { + if (!func.func(s_res, s_res == 0)) { + return; + } + } + return; + } + + // Don't handle the case that cs.tailoring == null + throw new UnsupportedOperationException(); + } + + int next() { + int res = next_raw(); + StrUcaType.Coll_param param = cs.coll_param; + if (res > 0 && param != null) { + // Reorder weight change only on primary level. + if (param.reorder_param != null && weight_lv == 0) { + res = apply_reorder_param(res); + } + if (param.case_first != StrUcaType.enum_case_first.CASE_FIRST_OFF) { + res = apply_case_first(res); + } + } + return res; + } + + /** + * Get the level the scanner is currently working on. The string + * can be scanned multiple times (if the collation requires multi-level + * comparisons, e.g. for accent or case sensitivity); first to get + * primary weights, then from the start again for secondary, etc. + */ + int get_weight_level() { + return weight_lv; + } + + int more_weight() { + + // Check if the weights for the previous code point have been + // already fully scanned. If no, return the first non-zero + // weight. + while (num_of_ce_left != 0 && weightStr[wbeg] == 0) { + wbeg += wbeg_stride; + --num_of_ce_left; + } + if (num_of_ce_left != 0) { + int rtn = weightStr[wbeg]; + wbeg += wbeg_stride; + --num_of_ce_left; + return rtn; /* return the next weight from expansion */ + } + return -1; + } + + int change_zh_implicit(int weight) { + assert (weight >= 0xFB00); + switch (weight) { + case 0xFB00: + return 0xF621; + case 0xFB40: + return 0xBDBF; + case 0xFB41: + return 0xBDC0; + case 0xFB80: + return 0xBDC1; + case 0xFB84: + return 0xBDC2; + case 0xFB85: + return 0xBDC3; + default: + return weight + 0xF622 - 0xFBC0; + } + } + + int next_implicit(int ch) { + // Don't handle HANGUL JAMO. + + // We give the Chinese collation different leading primary weight to make + // sure there are enough single weight values to be assigned to character + // groups like Latin, Cyrillic, etc. + int page = 0; + if (ch >= 0x17000 && ch <= 0x18AFF) // Tangut character + { + page = 0xFB00; + implicit[3] = (ch - 0x17000) | 0x8000; + } else { + page = ch >> 15; + implicit[3] = (ch & 0x7FFF) | 0x8000; + if ((ch >= 0x3400 && ch <= 0x4DB5) || (ch >= 0x20000 && ch <= 0x2A6D6) || + (ch >= 0x2A700 && ch <= 0x2B734) || (ch >= 0x2B740 && ch <= 0x2B81D) || + (ch >= 0x2B820 && ch <= 0x2CEA1)) { + page += 0xFB80; + } else if ((ch >= 0x4E00 && ch <= 0x9FD5) || (ch >= 0xFA0E && ch <= 0xFA29)) { + page += 0xFB40; + } else { + page += 0xFBC0; + } + } + if (cs.coll_param == zh_coll_param) { + page = change_zh_implicit(page); + } + implicit[0] = page; + implicit[1] = 0x0020; + implicit[2] = 0x0002; + // implicit[3] is set above. + implicit[4] = 0; + implicit[5] = 0; + num_of_ce_left = 1; + wbeg = MY_UCA_900_CE_SIZE + weight_lv; + weightStr = implicit; + wbeg_stride = MY_UCA_900_CE_SIZE; + + return implicit[weight_lv]; + } + + boolean my_uca_have_contractions(StrUcaType.MY_UCA_INFO uca) { + return uca.have_contractions; + } + + boolean my_uca_can_be_previous_context_tail( + byte[] flags, int wc) { + return (flags[wc & MY_UCA_CNT_FLAG_MASK] & MY_UCA_PREVIOUS_CONTEXT_TAIL) != 0; + } + + boolean my_uca_can_be_previous_context_head( + byte[] flags, int wc) { + return (flags[wc & MY_UCA_CNT_FLAG_MASK] & MY_UCA_PREVIOUS_CONTEXT_HEAD) != 0; + } + + boolean my_uca_can_be_contraction_head(byte[] flags, int wc) { + return (flags[wc & MY_UCA_CNT_FLAG_MASK] & MY_UCA_CNT_HEAD) != 0; + } + + MY_CONTRACTION find_contraction_part_in_trie( + List cont_nodes, int ch) { + if (cont_nodes == null || cont_nodes.isEmpty()) { + return null; + } + for (int i = 0; i < cont_nodes.size(); i++) { + if (cont_nodes.get(i).ch >= ch) { + return cont_nodes.get(i); + } + } + return null; + } + + Object[] previous_context_find(int wc0, int wc1) { + MY_CONTRACTION node_it1 = find_contraction_part_in_trie(uca.contraction_nodes, wc1); + if (node_it1 == null || node_it1.ch != wc1) { + return null; + } + + MY_CONTRACTION node_it2 = + find_contraction_part_in_trie(node_it1.child_nodes_context, wc0); + if (node_it2 != null && node_it2.ch == wc0) { + if (uca.version == UCA_V900) { + weightStr = node_it2.weight; + wbeg = MY_UCA_900_CE_SIZE + weight_lv; + wbeg_stride = MY_UCA_900_CE_SIZE; + num_of_ce_left = 7; + } else { + weightStr = node_it2.weight; + wbeg = 1; + wbeg_stride = MY_UCA_900_CE_SIZE; + } + // index = weight_lv + return new Object[] {node_it2.weight, weight_lv}; + } + return null; + } + + Object[] contraction_find(int wc0, int[] chars_skipped) { + int beg = 0; + int s = sbeg; + + List cont_nodes = uca.contraction_nodes; + MY_CONTRACTION longest_contraction = null; + MY_CONTRACTION node_it; + for (; ; ) { + node_it = find_contraction_part_in_trie(cont_nodes, wc0); + if (node_it == null || node_it.ch != wc0) { + break; + } + if (node_it.is_contraction_tail) { + longest_contraction = node_it; + beg = s; + chars_skipped[0] = node_it.contraction_len - 1; + } + int mblen; + + int[] parsedWildCharacter = new int[1]; + + mblen = codepointOfUTF8(parsedWildCharacter, str, s, send, true, true); + wc0 = parsedWildCharacter[0]; + + if (mblen <= 0) { + break; + } + s += mblen; + cont_nodes = node_it.child_nodes; + } + + if (longest_contraction != null) { + int[] cweightStr = longest_contraction.weight; + int cweight = 0; + if (uca.version == UCA_V900) { + cweight += weight_lv; + weightStr = cweightStr; + wbeg = cweight + MY_UCA_900_CE_SIZE; + wbeg_stride = MY_UCA_900_CE_SIZE; + num_of_ce_left = 7; + } else { + weightStr = cweightStr; + wbeg = cweight + 1; + wbeg_stride = MY_UCA_900_CE_SIZE; + } + sbeg = beg; + return new Object[] {cweightStr, cweight}; + } + return null; /* No contractions were found */ + } + + int next_raw() { + int remain_weight = more_weight(); + if (remain_weight >= 0) { + return remain_weight; + } + + do { + int wc = 0; + int[] parsedWildCharacter = new int[1]; + + /* Get next code point */ + + int mblen = codepointOfUTF8(parsedWildCharacter, str, sbeg, send, true, true); + wc = parsedWildCharacter[0]; + if (mblen <= 0) { + if (levelsForCompare == 1) { + ++weight_lv; + return -1; + } + + if (++weight_lv < levelsForCompare) { + // Don't handle: levelsForCompare == 4 && cs.coll_param == &ja_coll_param + + // Restart scanning from the beginning of the string, and add + // a level separator. + sbeg = sbeg_dup; + return 0; + } + + // If we don't have any more levels left, we're done. + return -1; + } + + sbeg += mblen; + assert (wc <= uca.maxchar); // mb_wc() has already checked this. + + if (my_uca_have_contractions(uca)) { + int[] cweightStr = null; + int cweight = 0; + Object[] cweightPointer = null; + + // If we have scanned a code point which can have previous context, + // and there were some more code points already before, + // then verify that {prev_char, wc} together form + // a real previous context pair. + // Note, we support only 2-character long sequences with previous + // context at the moment. CLDR does not have longer sequences. + // CLDR doesn't have previous context rule whose first character is + // 0x0000, so the initial value (0) of prev_char won't break the logic. + + if (my_uca_can_be_previous_context_tail(uca.contraction_flags, wc) && + my_uca_can_be_previous_context_head(uca.contraction_flags, prev_char) && + (cweightPointer = previous_context_find(prev_char, wc)) != null) { + // Don't Handle: For Japanese kana-sensitive collation. + + prev_char = 0; /* Clear for the next code point */ + + cweightStr = (int[]) cweightPointer[0]; + cweight = (int) cweightPointer[1]; + return cweightStr[cweight]; + } else if (my_uca_can_be_contraction_head(uca.contraction_flags, wc)) { + /* Check if wc starts a contraction */ + int[] chars_skipped = new int[1]; // Ignored. + if ((cweightPointer = contraction_find(wc, chars_skipped)) != null) { + cweightStr = (int[]) cweightPointer[0]; + cweight = (int) cweightPointer[1]; + return cweightStr[cweight]; + } + + } + prev_char = wc; + } + + // Don't handle: For Japanese kana-sensitive collation. + + // Process single code point + int page = wc >> 8; + int code = wc & 0xFF; + + // If weight page for wc does not exist, then calculate algorithmically + int[] wpage = uca.weights[page]; + if (wpage == null) { + return next_implicit(wc); + } + + // Calculate pointer to wc's weight, using page and offset + wbeg = UCA900_WEIGHT_ADDR(weight_lv, code); + weightStr = wpage; + wbeg_stride = UCA900_DISTANCE_BETWEEN_WEIGHTS; + num_of_ce_left = wpage[code]; + } while (weightStr[wbeg + 0] == 0); // Skip ignorable code points + + int rtn = weightStr[wbeg]; + wbeg += wbeg_stride; + --num_of_ce_left; + return rtn; + } + + int apply_reorder_param(int weight) { + // Chinese collation's reordering is done in next_implicit() and + // modify_all_zh_pages(). See the comment on zh_reorder_param and + // change_zh_implicit(). + if (cs.coll_param == zh_coll_param) { + return weight; + } + throw new UnsupportedOperationException(); + } + + int apply_case_first(int weight) { + // We only apply case weight change here when the character is not tailored. + // Tailored character's case weight has been changed in + // my_char_weight_put_900(). + // We have only 1 collation (Danish) needs to implement [caseFirst upper]. + if (cs.coll_param.case_first == CASE_FIRST_UPPER && weight_lv == 2 && + weight < 0x20) { + if (is_tertiary_weight_upper_case(weight)) { + weight |= Uca900Data.CASE_FIRST_UPPER_MASK; + } else { + weight |= Uca900Data.CASE_FIRST_LOWER_MASK; + } + } + return weight; + } + + // See Unicode TR35 section 3.14.1. + boolean is_tertiary_weight_upper_case(int weight) { + if ((weight >= 0x08 && weight <= 0x0C) || weight == 0x0E || weight == 0x11 || + weight == 0x12 || weight == 0x1D) { + return true; + } + return false; + } + } + + /** + * In a loop, scans weights from the source string and writes + * them into the binary image. In a case insensitive collation, + * upper and lower cases of the same letter will produce the + * same image subsequences. When we have reached the end-of-string + * or found an illegal multibyte sequence, the loop stops. + *

+ * It is impossible to restore the original string using its + * binary image. + *

+ * Binary images are used for bulk comparison purposes, + * e.g. in ORDER BY, when it is more efficient to create + * a binary image and use it instead of weight scanner + * for the original strings for every comparison. + */ + @Override + public SortKey getSortKey(Slice str, int maxLength) { + byte[] dstStr = new byte[maxLength]; + int dst = 0; + int d0 = 0; + int dst_end = maxLength; + + ZhUcaScanner scanner = new ZhUcaScanner(str); + + assert ((maxLength % 2) == 0); + if ((maxLength % 2) == 1) { + // Emergency workaround for optimized mode. + --dst_end; + } + + if (dst != dst_end) { + ZhUcaScanner.func_lambda func_lambda = scanner.new_func_lambda(dstStr, dst, dst_end); + + scanner.for_each_weight(func_lambda, null); + + dst = func_lambda.dst; + dst_end = func_lambda.dst_end; + } + + Arrays.fill(dstStr, dst, dst_end, (byte) 0); + dst = dst_end; + + return new SortKey(getCharsetName(), getName(), str.getInput(), dstStr); + } + + /** + * ctype-uca.c my_hash_sort_uca: + * Calculates hash value for the given string, according to the collation, and ignoring trailing spaces. + *

+ * Warning: equality inconsistency for invalid characters. + */ + @Override + public int hashcode(Slice str) { + long n1 = 1L; + ZhUcaScanner scanner = new ZhUcaScanner(str); + + long h = n1; + h ^= 0xcbf29ce484222325L; + + int s_res; + while ((s_res = scanner.next()) >= 0) { + h ^= s_res; + h *= 0x100000001B3L; + } + return (int) h; + } + + @Override + public void hashcode(byte[] bytes, int begin, int end, long[] numbers) { + long n1 = numbers[0]; + Slice str = Slices.wrappedBuffer(bytes, begin, end - begin); + ZhUcaScanner scanner = new ZhUcaScanner(str); + + long h = n1; + h ^= 0xcbf29ce484222325L; + + int s_res; + while ((s_res = scanner.next()) >= 0) { + h ^= s_res; + h *= 0x100000001B3L; + } + numbers[0] = h; + } + + public int getCodePoint(SliceInput sliceInput) { + return codepointOfUTF8(sliceInput); + } +} diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/config/table/collation/Uca900Data.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/config/table/collation/Uca900Data.java new file mode 100644 index 000000000..cf6e92ce8 --- /dev/null +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/config/table/collation/Uca900Data.java @@ -0,0 +1,1996 @@ +/* + * Copyright [2013-2021], Alibaba Group Holding Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.alibaba.polardbx.optimizer.config.table.collation; + +import com.alibaba.polardbx.common.utils.GeneralUtil; +import com.alibaba.polardbx.optimizer.config.table.collation.StrUcaType.*; +import com.alibaba.polardbx.optimizer.config.table.collation.MCType.*; +import com.google.common.base.Preconditions; +import org.yaml.snakeyaml.Yaml; + +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.alibaba.polardbx.optimizer.config.table.collation.StrUcaType.enum_uca_ver.UCA_V900; + +public class Uca900Data { + public static final int CASE_FIRST_UPPER_MASK = 0x0100; + public static final int CASE_FIRST_MIXED_MASK = 0x0200; + public static final int CASE_FIRST_LOWER_MASK = 0x0300; + + public static final int MY_UCA_900_CE_SIZE = 3; + + public static int UCA900_WEIGHT_ADDR(int level, int subcode) { + return 256 + level * 256 + subcode; + } + + public static int UCA900_NUM_OF_CE(int[] page, int subcode) { + return page[subcode]; + } + + public static int UCA900_DISTANCE_BETWEEN_WEIGHTS = MY_UCA_900_CE_SIZE * 256; + + public static int[] uca900_p000; + public static int[] uca900_p001; + public static int[] uca900_p002; + public static int[] uca900_p003; + public static int[] uca900_p004; + public static int[] uca900_p005; + public static int[] uca900_p006; + public static int[] uca900_p007; + public static int[] uca900_p008; + public static int[] uca900_p009; + public static int[] uca900_p00A; + public static int[] uca900_p00B; + public static int[] uca900_p00C; + public static int[] uca900_p00D; + public static int[] uca900_p00E; + public static int[] uca900_p00F; + public static int[] uca900_p010; + public static int[] uca900_p011; + public static int[] uca900_p012; + public static int[] uca900_p013; + public static int[] uca900_p014; + public static int[] uca900_p015; + public static int[] uca900_p016; + public static int[] uca900_p017; + public static int[] uca900_p018; + public static int[] uca900_p019; + public static int[] uca900_p01A; + public static int[] uca900_p01B; + public static int[] uca900_p01C; + public static int[] uca900_p01D; + public static int[] uca900_p01E; + public static int[] uca900_p01F; + public static int[] uca900_p020; + public static int[] uca900_p021; + public static int[] uca900_p022; + public static int[] uca900_p023; + public static int[] uca900_p024; + public static int[] uca900_p025; + public static int[] uca900_p026; + public static int[] uca900_p027; + public static int[] uca900_p028; + public static int[] uca900_p029; + public static int[] uca900_p02A; + public static int[] uca900_p02B; + public static int[] uca900_p02C; + public static int[] uca900_p02D; + public static int[] uca900_p02E; + public static int[] uca900_p02F; + public static int[] uca900_p030; + public static int[] uca900_p031; + public static int[] uca900_p032; + public static int[] uca900_p033; + public static int[] uca900_p04D; + public static int[] uca900_p0A0; + public static int[] uca900_p0A1; + public static int[] uca900_p0A2; + public static int[] uca900_p0A3; + public static int[] uca900_p0A4; + public static int[] uca900_p0A5; + public static int[] uca900_p0A6; + public static int[] uca900_p0A7; + public static int[] uca900_p0A8; + public static int[] uca900_p0A9; + public static int[] uca900_p0AA; + public static int[] uca900_p0AB; + public static int[] uca900_p0D7; + public static int[] uca900_p0F9; + public static int[] uca900_p0FA; + public static int[] uca900_p0FB; + public static int[] uca900_p0FC; + public static int[] uca900_p0FD; + public static int[] uca900_p0FE; + public static int[] uca900_p0FF; + public static int[] uca900_p100; + public static int[] uca900_p101; + public static int[] uca900_p102; + public static int[] uca900_p103; + public static int[] uca900_p104; + public static int[] uca900_p105; + public static int[] uca900_p106; + public static int[] uca900_p107; + public static int[] uca900_p108; + public static int[] uca900_p109; + public static int[] uca900_p10A; + public static int[] uca900_p10B; + public static int[] uca900_p10C; + public static int[] uca900_p10E; + public static int[] uca900_p110; + public static int[] uca900_p111; + public static int[] uca900_p112; + public static int[] uca900_p113; + public static int[] uca900_p114; + public static int[] uca900_p115; + public static int[] uca900_p116; + public static int[] uca900_p117; + public static int[] uca900_p118; + public static int[] uca900_p11A; + public static int[] uca900_p11C; + public static int[] uca900_p120; + public static int[] uca900_p121; + public static int[] uca900_p122; + public static int[] uca900_p123; + public static int[] uca900_p124; + public static int[] uca900_p125; + public static int[] uca900_p130; + public static int[] uca900_p131; + public static int[] uca900_p132; + public static int[] uca900_p133; + public static int[] uca900_p134; + public static int[] uca900_p144; + public static int[] uca900_p145; + public static int[] uca900_p146; + public static int[] uca900_p168; + public static int[] uca900_p169; + public static int[] uca900_p16A; + public static int[] uca900_p16B; + public static int[] uca900_p16F; + public static int[] uca900_p1B0; + public static int[] uca900_p1BC; + public static int[] uca900_p1D0; + public static int[] uca900_p1D1; + public static int[] uca900_p1D2; + public static int[] uca900_p1D3; + public static int[] uca900_p1D4; + public static int[] uca900_p1D5; + public static int[] uca900_p1D6; + public static int[] uca900_p1D7; + public static int[] uca900_p1D8; + public static int[] uca900_p1D9; + public static int[] uca900_p1DA; + public static int[] uca900_p1E0; + public static int[] uca900_p1E8; + public static int[] uca900_p1E9; + public static int[] uca900_p1EE; + public static int[] uca900_p1F0; + public static int[] uca900_p1F1; + public static int[] uca900_p1F2; + public static int[] uca900_p1F3; + public static int[] uca900_p1F4; + public static int[] uca900_p1F5; + public static int[] uca900_p1F6; + public static int[] uca900_p1F7; + public static int[] uca900_p1F8; + public static int[] uca900_p1F9; + public static int[] uca900_p2F8; + public static int[] uca900_p2F9; + public static int[] uca900_p2FA; + public static int[] uca900_pE00; + public static int[] uca900_pE01; + + static { + Yaml yaml = new Yaml(); + int[][] uca900 = + yaml.loadAs(AbstractUCACollationHandler.class.getResourceAsStream("uca900.yml"), int[][].class); + int i = 0; + uca900_p000 = uca900[i++]; + uca900_p001 = uca900[i++]; + uca900_p002 = uca900[i++]; + uca900_p003 = uca900[i++]; + uca900_p004 = uca900[i++]; + uca900_p005 = uca900[i++]; + uca900_p006 = uca900[i++]; + uca900_p007 = uca900[i++]; + uca900_p008 = uca900[i++]; + uca900_p009 = uca900[i++]; + uca900_p00A = uca900[i++]; + uca900_p00B = uca900[i++]; + uca900_p00C = uca900[i++]; + uca900_p00D = uca900[i++]; + uca900_p00E = uca900[i++]; + uca900_p00F = uca900[i++]; + uca900_p010 = uca900[i++]; + uca900_p011 = uca900[i++]; + uca900_p012 = uca900[i++]; + uca900_p013 = uca900[i++]; + uca900_p014 = uca900[i++]; + uca900_p015 = uca900[i++]; + uca900_p016 = uca900[i++]; + uca900_p017 = uca900[i++]; + uca900_p018 = uca900[i++]; + uca900_p019 = uca900[i++]; + uca900_p01A = uca900[i++]; + uca900_p01B = uca900[i++]; + uca900_p01C = uca900[i++]; + uca900_p01D = uca900[i++]; + uca900_p01E = uca900[i++]; + uca900_p01F = uca900[i++]; + uca900_p020 = uca900[i++]; + uca900_p021 = uca900[i++]; + uca900_p022 = uca900[i++]; + uca900_p023 = uca900[i++]; + uca900_p024 = uca900[i++]; + uca900_p025 = uca900[i++]; + uca900_p026 = uca900[i++]; + uca900_p027 = uca900[i++]; + uca900_p028 = uca900[i++]; + uca900_p029 = uca900[i++]; + uca900_p02A = uca900[i++]; + uca900_p02B = uca900[i++]; + uca900_p02C = uca900[i++]; + uca900_p02D = uca900[i++]; + uca900_p02E = uca900[i++]; + uca900_p02F = uca900[i++]; + uca900_p030 = uca900[i++]; + uca900_p031 = uca900[i++]; + uca900_p032 = uca900[i++]; + uca900_p033 = uca900[i++]; + uca900_p04D = uca900[i++]; + uca900_p0A0 = uca900[i++]; + uca900_p0A1 = uca900[i++]; + uca900_p0A2 = uca900[i++]; + uca900_p0A3 = uca900[i++]; + uca900_p0A4 = uca900[i++]; + uca900_p0A5 = uca900[i++]; + uca900_p0A6 = uca900[i++]; + uca900_p0A7 = uca900[i++]; + uca900_p0A8 = uca900[i++]; + uca900_p0A9 = uca900[i++]; + uca900_p0AA = uca900[i++]; + uca900_p0AB = uca900[i++]; + uca900_p0D7 = uca900[i++]; + uca900_p0F9 = uca900[i++]; + uca900_p0FA = uca900[i++]; + uca900_p0FB = uca900[i++]; + uca900_p0FC = uca900[i++]; + uca900_p0FD = uca900[i++]; + uca900_p0FE = uca900[i++]; + uca900_p0FF = uca900[i++]; + uca900_p100 = uca900[i++]; + uca900_p101 = uca900[i++]; + uca900_p102 = uca900[i++]; + uca900_p103 = uca900[i++]; + uca900_p104 = uca900[i++]; + uca900_p105 = uca900[i++]; + uca900_p106 = uca900[i++]; + uca900_p107 = uca900[i++]; + uca900_p108 = uca900[i++]; + uca900_p109 = uca900[i++]; + uca900_p10A = uca900[i++]; + uca900_p10B = uca900[i++]; + uca900_p10C = uca900[i++]; + uca900_p10E = uca900[i++]; + uca900_p110 = uca900[i++]; + uca900_p111 = uca900[i++]; + uca900_p112 = uca900[i++]; + uca900_p113 = uca900[i++]; + uca900_p114 = uca900[i++]; + uca900_p115 = uca900[i++]; + uca900_p116 = uca900[i++]; + uca900_p117 = uca900[i++]; + uca900_p118 = uca900[i++]; + uca900_p11A = uca900[i++]; + uca900_p11C = uca900[i++]; + uca900_p120 = uca900[i++]; + uca900_p121 = uca900[i++]; + uca900_p122 = uca900[i++]; + uca900_p123 = uca900[i++]; + uca900_p124 = uca900[i++]; + uca900_p125 = uca900[i++]; + uca900_p130 = uca900[i++]; + uca900_p131 = uca900[i++]; + uca900_p132 = uca900[i++]; + uca900_p133 = uca900[i++]; + uca900_p134 = uca900[i++]; + uca900_p144 = uca900[i++]; + uca900_p145 = uca900[i++]; + uca900_p146 = uca900[i++]; + uca900_p168 = uca900[i++]; + uca900_p169 = uca900[i++]; + uca900_p16A = uca900[i++]; + uca900_p16B = uca900[i++]; + uca900_p16F = uca900[i++]; + uca900_p1B0 = uca900[i++]; + uca900_p1BC = uca900[i++]; + uca900_p1D0 = uca900[i++]; + uca900_p1D1 = uca900[i++]; + uca900_p1D2 = uca900[i++]; + uca900_p1D3 = uca900[i++]; + uca900_p1D4 = uca900[i++]; + uca900_p1D5 = uca900[i++]; + uca900_p1D6 = uca900[i++]; + uca900_p1D7 = uca900[i++]; + uca900_p1D8 = uca900[i++]; + uca900_p1D9 = uca900[i++]; + uca900_p1DA = uca900[i++]; + uca900_p1E0 = uca900[i++]; + uca900_p1E8 = uca900[i++]; + uca900_p1E9 = uca900[i++]; + uca900_p1EE = uca900[i++]; + uca900_p1F0 = uca900[i++]; + uca900_p1F1 = uca900[i++]; + uca900_p1F2 = uca900[i++]; + uca900_p1F3 = uca900[i++]; + uca900_p1F4 = uca900[i++]; + uca900_p1F5 = uca900[i++]; + uca900_p1F6 = uca900[i++]; + uca900_p1F7 = uca900[i++]; + uca900_p1F8 = uca900[i++]; + uca900_p1F9 = uca900[i++]; + uca900_p2F8 = uca900[i++]; + uca900_p2F9 = uca900[i++]; + uca900_p2FA = uca900[i++]; + uca900_pE00 = uca900[i++]; + uca900_pE01 = uca900[i++]; + + Preconditions.checkArgument(i == 149); + } + + public static final int[][] uca900_weight = new int[][] { + uca900_p000, uca900_p001, uca900_p002, uca900_p003, uca900_p004, + uca900_p005, uca900_p006, uca900_p007, uca900_p008, uca900_p009, + uca900_p00A, uca900_p00B, uca900_p00C, uca900_p00D, uca900_p00E, + uca900_p00F, uca900_p010, uca900_p011, uca900_p012, uca900_p013, + uca900_p014, uca900_p015, uca900_p016, uca900_p017, uca900_p018, + uca900_p019, uca900_p01A, uca900_p01B, uca900_p01C, uca900_p01D, + uca900_p01E, uca900_p01F, uca900_p020, uca900_p021, uca900_p022, + uca900_p023, uca900_p024, uca900_p025, uca900_p026, uca900_p027, + uca900_p028, uca900_p029, uca900_p02A, uca900_p02B, uca900_p02C, + uca900_p02D, uca900_p02E, uca900_p02F, uca900_p030, uca900_p031, + uca900_p032, uca900_p033, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, uca900_p04D, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + uca900_p0A0, uca900_p0A1, uca900_p0A2, uca900_p0A3, uca900_p0A4, + uca900_p0A5, uca900_p0A6, uca900_p0A7, uca900_p0A8, uca900_p0A9, + uca900_p0AA, uca900_p0AB, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + uca900_p0D7, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, uca900_p0F9, + uca900_p0FA, uca900_p0FB, uca900_p0FC, uca900_p0FD, uca900_p0FE, + uca900_p0FF, uca900_p100, uca900_p101, uca900_p102, uca900_p103, + uca900_p104, uca900_p105, uca900_p106, uca900_p107, uca900_p108, + uca900_p109, uca900_p10A, uca900_p10B, uca900_p10C, null, + uca900_p10E, null, uca900_p110, uca900_p111, uca900_p112, + uca900_p113, uca900_p114, uca900_p115, uca900_p116, uca900_p117, + uca900_p118, null, uca900_p11A, null, uca900_p11C, + null, null, null, uca900_p120, uca900_p121, + uca900_p122, uca900_p123, uca900_p124, uca900_p125, null, + null, null, null, null, null, + null, null, null, null, uca900_p130, + uca900_p131, uca900_p132, uca900_p133, uca900_p134, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, uca900_p144, + uca900_p145, uca900_p146, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + uca900_p168, uca900_p169, uca900_p16A, uca900_p16B, null, + null, null, uca900_p16F, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, uca900_p1B0, null, null, + null, null, null, null, null, + null, null, null, null, uca900_p1BC, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, uca900_p1D0, + uca900_p1D1, uca900_p1D2, uca900_p1D3, uca900_p1D4, uca900_p1D5, + uca900_p1D6, uca900_p1D7, uca900_p1D8, uca900_p1D9, uca900_p1DA, + null, null, null, null, null, + uca900_p1E0, null, null, null, null, + null, null, null, uca900_p1E8, uca900_p1E9, + null, null, null, null, uca900_p1EE, + null, uca900_p1F0, uca900_p1F1, uca900_p1F2, uca900_p1F3, + uca900_p1F4, uca900_p1F5, uca900_p1F6, uca900_p1F7, uca900_p1F8, + uca900_p1F9, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + uca900_p2F8, uca900_p2F9, uca900_p2FA, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, uca900_pE00, + uca900_pE01, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, null, + null, null}; + + public static MY_UNICASE_CHARACTER[] u900p000 = null; + public static MY_UNICASE_CHARACTER[] u900p001 = null; + public static MY_UNICASE_CHARACTER[] u900p002 = null; + public static MY_UNICASE_CHARACTER[] u900p003 = null; + public static MY_UNICASE_CHARACTER[] u900p004 = null; + public static MY_UNICASE_CHARACTER[] u900p005 = null; + public static MY_UNICASE_CHARACTER[] u900p010 = null; + public static MY_UNICASE_CHARACTER[] u900p013 = null; + public static MY_UNICASE_CHARACTER[] u900p01C = null; + public static MY_UNICASE_CHARACTER[] u900p01D = null; + public static MY_UNICASE_CHARACTER[] u900p01E = null; + public static MY_UNICASE_CHARACTER[] u900p01F = null; + public static MY_UNICASE_CHARACTER[] u900p021 = null; + public static MY_UNICASE_CHARACTER[] u900p024 = null; + public static MY_UNICASE_CHARACTER[] u900p02C = null; + public static MY_UNICASE_CHARACTER[] u900p02D = null; + public static MY_UNICASE_CHARACTER[] u900p0A6 = null; + public static MY_UNICASE_CHARACTER[] u900p0A7 = null; + public static MY_UNICASE_CHARACTER[] u900p0AB = null; + public static MY_UNICASE_CHARACTER[] u900p0FF = null; + public static MY_UNICASE_CHARACTER[] u900p104 = null; + public static MY_UNICASE_CHARACTER[] u900p10C = null; + public static MY_UNICASE_CHARACTER[] u900p118 = null; + public static MY_UNICASE_CHARACTER[] u900p1E9 = null; + + public static MY_UNICASE_CHARACTER[][] my_unicase_pages_unicode900 = null; + + static { + Yaml yaml = new Yaml(); + Map arrayMap = new HashMap<>(); + + try (InputStream inputStream = Uca900Data.class.getResourceAsStream("uca900_unicase.yml")) { + Map>> yamlData = yaml.load(inputStream); + + for (Map.Entry>> entry : yamlData.entrySet()) { + List> list2D = entry.getValue(); + int[][] array = new int[list2D.size()][]; + for (int i = 0; i < list2D.size(); i++) { + List rowList = list2D.get(i); + array[i] = rowList.stream().mapToInt(Integer::intValue).toArray(); + } + arrayMap.put(entry.getKey(), array); + } + + } catch (FileNotFoundException e) { + throw GeneralUtil.nestedException("The YAML file was not found: " + e.getMessage()); + } catch (Exception e) { + throw GeneralUtil.nestedException("Error processing the YAML file: " + e.getMessage()); + } + + // load all planes. + Map results = new HashMap<>(); + for (Map.Entry entry : arrayMap.entrySet()) { + // for each plane + int[][] array = entry.getValue(); + + MY_UNICASE_CHARACTER[] uniCaseCharacters = new MY_UNICASE_CHARACTER[array.length]; + + for (int i = 0; i < array.length; i++) { + + // for each parameter list, build MY_UNICASE_CHARACTER obj. + uniCaseCharacters[i] = new MY_UNICASE_CHARACTER(array[i][0], array[i][1], array[i][2]); + } + + results.put(entry.getKey(), uniCaseCharacters); + } + + u900p000 = results.get("u900p000"); + u900p001 = results.get("u900p001"); + u900p002 = results.get("u900p002"); + u900p003 = results.get("u900p003"); + u900p004 = results.get("u900p004"); + u900p005 = results.get("u900p005"); + u900p010 = results.get("u900p010"); + u900p013 = results.get("u900p013"); + u900p01C = results.get("u900p01C"); + u900p01D = results.get("u900p01D"); + u900p01E = results.get("u900p01E"); + u900p01F = results.get("u900p01F"); + u900p021 = results.get("u900p021"); + u900p024 = results.get("u900p024"); + u900p02C = results.get("u900p02C"); + u900p02D = results.get("u900p02D"); + u900p0A6 = results.get("u900p0A6"); + u900p0A7 = results.get("u900p0A7"); + u900p0AB = results.get("u900p0AB"); + u900p0FF = results.get("u900p0FF"); + u900p104 = results.get("u900p104"); + u900p10C = results.get("u900p10C"); + u900p118 = results.get("u900p118"); + u900p1E9 = results.get("u900p1E9"); + + my_unicase_pages_unicode900 = new MY_UNICASE_CHARACTER[][] { + u900p000, u900p001, u900p002, u900p003, u900p004, u900p005, null, + null, null, null, null, null, null, null, + null, null, u900p010, null, null, u900p013, null, + null, null, null, null, null, null, null, + u900p01C, u900p01D, u900p01E, u900p01F, null, u900p021, null, + null, u900p024, null, null, null, null, null, + null, null, u900p02C, u900p02D, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, u900p0A6, u900p0A7, + null, null, null, u900p0AB, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, u900p0FF, null, null, null, + null, u900p104, null, null, null, null, null, + null, null, u900p10C, null, null, null, null, + null, null, null, null, null, null, null, + u900p118, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, u900p1E9, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, null, null, + null, null, null, null, null, + }; + } + + public static final MY_UCA_INFO my_uca_v900 = new MY_UCA_INFO( + UCA_V900, + null, + + 0x10FFFF, /* maxchar */ + null, /* length - not used */ + null, /* m_allocated_weights */ + uca900_weight, false, null, /* contractions */ + null, + + 0x0009, /* first_non_ignorable p != ignore */ + 0x14646, /* last_non_ignorable Not a CJK and not UASSIGNED */ + + 0x0332, /* first_primary_ignorable p == ignore */ + 0x101FD, /* last_primary_ignorable */ + + 0x0000, /* first_secondary_ignorable p,s= ignore */ + 0xFE73, /* last_secondary_ignorable */ + + 0x0000, /* first_tertiary_ignorable p,s,t == ignore */ + 0xFE73, /* last_tertiary_ignorable */ + + 0x0000, /* first_trailing */ + 0x0000, /* last_trailing */ + + 0x0009, /* first_variable if alt=non-ignorable: p != ignore */ + 0x1D371, /* last_variable if alt=shifter: p,s,t == ignore */ + /* + By definition of DUCET 9.0.0, the weight range is: + Primary weight range: 0200..54A3 (21156) + Secondary weight range: 0020..0114 (245) + Variant secondaries: 0110..0114 (5) + Tertiary weight range: 0002..001F (30) + To make the extra CE's weight bigger than any weight else, we define it + as the 'max + 1'. + */ + 0x54A4, /* extra_ce_pri_base */ + 0x0115, /* extra_ce_sec_base */ + 0x0020 /* extra_ce_ter_base */ + ); + + public static final MY_UNICASE_INFO my_unicase_unicode900 = new MY_UNICASE_INFO( + 0x10FFFF, + my_unicase_pages_unicode900 + ); +} diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/config/table/collation/Uca900ZhData.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/config/table/collation/Uca900ZhData.java new file mode 100644 index 000000000..2e7d124f1 --- /dev/null +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/config/table/collation/Uca900ZhData.java @@ -0,0 +1,852 @@ +/* + * Copyright [2013-2021], Alibaba Group Holding Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.alibaba.polardbx.optimizer.config.table.collation; + +import com.alibaba.polardbx.common.utils.GeneralUtil; +import com.google.common.collect.ImmutableList; +import org.yaml.snakeyaml.Yaml; + +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Map; + +import static com.alibaba.polardbx.optimizer.config.table.collation.StrUcaType.MY_CONTRACTION; +import static com.alibaba.polardbx.optimizer.config.table.collation.StrUcaType.enum_uca_ver.UCA_V900; +import static com.alibaba.polardbx.optimizer.config.table.collation.Uca900Data.my_uca_v900; +import static com.alibaba.polardbx.optimizer.config.table.collation.Uca900Data.uca900_weight; + +public class Uca900ZhData { + + static byte[] zh_flags_type = new byte[4096]; + static List zh_contraction_nodes = new ArrayList<>(); + + static { + Arrays.fill(zh_flags_type, (byte) 0); + + MY_CONTRACTION contraction_69_770_768 = new MY_CONTRACTION( + 768, + ImmutableList.of(), ImmutableList.of(), + new int[] { + 48679, 32, 2, 0, 281, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2 + }, + true, 3 + ); + + MY_CONTRACTION contraction_69_770_769 = new MY_CONTRACTION( + 769, + ImmutableList.of(), ImmutableList.of(), + new int[] { + 48679, 32, 2, 0, 279, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2 + }, + true, 3 + ); + + MY_CONTRACTION contraction_69_770_772 = new MY_CONTRACTION( + 772, + ImmutableList.of(), ImmutableList.of(), + new int[] { + 48679, 32, 2, 0, 278, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2 + }, + true, 3 + ); + + MY_CONTRACTION contraction_69_770_780 = new MY_CONTRACTION( + 780, + ImmutableList.of(), ImmutableList.of(), + new int[] { + 48679, 32, 2, 0, 280, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2 + }, + true, 3 + ); + + MY_CONTRACTION contraction_69_770 = new MY_CONTRACTION( + 770, + ImmutableList.of(contraction_69_770_768, contraction_69_770_769, contraction_69_770_772, + contraction_69_770_780), + ImmutableList.of(), + new int[] { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }, + false, 0 + ); + + MY_CONTRACTION contraction_69 = new MY_CONTRACTION( + 69, + ImmutableList.of(contraction_69_770), + ImmutableList.of(), + new int[] { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }, + false, 0 + ); + + MY_CONTRACTION contraction_77_768 = new MY_CONTRACTION( + 768, + ImmutableList.of(), ImmutableList.of(), + new int[] { + 48935, 31, 2, 0, 281, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2 + }, + true, 2 + ); + + MY_CONTRACTION contraction_77_772 = new MY_CONTRACTION( + 772, + ImmutableList.of(), ImmutableList.of(), + new int[] { + 48935, 31, 2, 0, 278, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2 + }, + true, 2 + ); + + MY_CONTRACTION contraction_77_780 = new MY_CONTRACTION( + 780, + ImmutableList.of(), ImmutableList.of(), + new int[] { + 48935, 31, 2, 0, 280, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2 + }, + true, 2 + ); + + MY_CONTRACTION contraction_77 = new MY_CONTRACTION( + 77, + ImmutableList.of(contraction_77_768, contraction_77_772, contraction_77_780), + ImmutableList.of(), + new int[] { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }, + false, 0 + ); + + MY_CONTRACTION contraction_78_772 = new MY_CONTRACTION( + 772, + ImmutableList.of(), ImmutableList.of(), + new int[] { + 48950, 31, 2, 0, 278, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2 + }, + true, 2 + ); + + MY_CONTRACTION contraction_78 = new MY_CONTRACTION( + 78, + ImmutableList.of(contraction_78_772), + ImmutableList.of(), + new int[] { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }, + false, 0 + ); + + MY_CONTRACTION contraction_101_770_768 = new MY_CONTRACTION( + 768, + ImmutableList.of(), ImmutableList.of(), + new int[] { + 48679, 32, 2, 0, 281, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2 + }, + true, 3 + ); + + MY_CONTRACTION contraction_101_770_769 = new MY_CONTRACTION( + 769, + ImmutableList.of(), ImmutableList.of(), + new int[] { + 48679, 32, 2, 0, 279, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2 + }, + true, 3 + ); + + MY_CONTRACTION contraction_101_770_772 = new MY_CONTRACTION( + 772, + ImmutableList.of(), ImmutableList.of(), + new int[] { + 48679, 32, 2, 0, 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2 + }, + true, 3 + ); + + MY_CONTRACTION contraction_101_770_780 = new MY_CONTRACTION( + 780, + ImmutableList.of(), ImmutableList.of(), + new int[] { + 48679, 32, 2, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2 + }, + true, 3 + ); + + MY_CONTRACTION contraction_101_770 = new MY_CONTRACTION( + 770, + ImmutableList.of(contraction_101_770_768, contraction_101_770_769, contraction_101_770_772, + contraction_101_770_780), + ImmutableList.of(), + new int[] { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }, + false, 0 + ); + + MY_CONTRACTION contraction_101 = new MY_CONTRACTION( + 101, + ImmutableList.of(contraction_101_770), + ImmutableList.of(), + new int[] { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }, + false, 0 + ); + + MY_CONTRACTION contraction_109_768 = new MY_CONTRACTION( + 768, + ImmutableList.of(), ImmutableList.of(), + new int[] { + 48935, 31, 2, 0, 281, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2 + }, + true, 2 + ); + + MY_CONTRACTION contraction_109_772 = new MY_CONTRACTION( + 772, + ImmutableList.of(), ImmutableList.of(), + new int[] { + 48935, 31, 2, 0, 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2 + }, + true, 2 + ); + + MY_CONTRACTION contraction_109_780 = new MY_CONTRACTION( + 780, + ImmutableList.of(), ImmutableList.of(), + new int[] { + 48935, 31, 2, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2 + }, + true, 2 + ); + + MY_CONTRACTION contraction_109 = new MY_CONTRACTION( + 109, + ImmutableList.of(contraction_109_768, contraction_109_772, contraction_109_780), + ImmutableList.of(), + new int[] { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }, + false, 0 + ); + + MY_CONTRACTION contraction_110_772 = new MY_CONTRACTION( + 772, + ImmutableList.of(), ImmutableList.of(), + new int[] { + 48950, 31, 2, 0, 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2 + }, + true, 2 + ); + + MY_CONTRACTION contraction_110 = new MY_CONTRACTION( + 110, + ImmutableList.of(contraction_110_772), + ImmutableList.of(), + new int[] { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }, + false, 0 + ); + + MY_CONTRACTION contraction_27784_38451 = new MY_CONTRACTION( + 38451, + ImmutableList.of(), ImmutableList.of(), + new int[] { + 33932, 32, 2, 42011, 32, 2, 63045, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3 + }, + true, 2 + ); + + MY_CONTRACTION contraction_27784 = new MY_CONTRACTION( + 27784, + ImmutableList.of(contraction_27784_38451), + ImmutableList.of(), + new int[] { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }, + false, 0 + ); + + MY_CONTRACTION contraction_34255_25991 = new MY_CONTRACTION( + 25991, + ImmutableList.of(), ImmutableList.of(), + new int[] { + 45414, 32, 2, 38179, 32, 2, 63045, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3 + }, + true, 2 + ); + + MY_CONTRACTION contraction_34255 = new MY_CONTRACTION( + 34255, + ImmutableList.of(contraction_34255_25991), + ImmutableList.of(), + new int[] { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }, + false, 0 + ); + + MY_CONTRACTION contraction_37325_24198 = new MY_CONTRACTION( + 24198, + ImmutableList.of(), ImmutableList.of(), + new int[] { + 10967, 32, 2, 31685, 32, 2, 63045, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3 + }, + true, 2 + ); + + MY_CONTRACTION contraction_37325 = new MY_CONTRACTION( + 37325, + ImmutableList.of(contraction_37325_24198), + ImmutableList.of(), + new int[] { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }, + false, 0 + ); + + zh_contraction_nodes.add(contraction_69); + zh_contraction_nodes.add(contraction_77); + zh_contraction_nodes.add(contraction_78); + zh_contraction_nodes.add(contraction_101); + zh_contraction_nodes.add(contraction_109); + zh_contraction_nodes.add(contraction_110); + zh_contraction_nodes.add(contraction_27784); + zh_contraction_nodes.add(contraction_34255); + zh_contraction_nodes.add(contraction_37325); + } + + public static final int ZH_HAN_WEIGHT_PAIRS = 41336; + public static final int MIN_ZH_HAN_PAGE = 46; + public static final int MAX_ZH_HAN_PAGE = 718; + + public static int[][] zh_uca900_weight = new int[uca900_weight.length][]; + + public static void directlyLoadingWeights(String yamlFileName, int[][] weight) { + Yaml yaml = new Yaml(); + try (InputStream inputStream = Uca900ZhData.class.getResourceAsStream(yamlFileName)) { + Map dataMap = yaml.load(inputStream); + + for (Map.Entry entry : dataMap.entrySet()) { + Integer rowIndex = entry.getKey(); + String arrayStr = entry.getValue(); + String[] numberStrings = arrayStr.split(",\\s+"); + int[] numbers = Arrays.stream(numberStrings) + .mapToInt(Integer::parseInt) + .toArray(); + + if (rowIndex != null && rowIndex >= 0 && rowIndex < weight.length) { + weight[rowIndex] = numbers; + } + } + } catch (FileNotFoundException e) { + throw GeneralUtil.nestedException("YAML file not found: " + yamlFileName); + } catch (IOException e) { + throw GeneralUtil.nestedException("Error reading YAML file: " + yamlFileName); + } + } + + public static StrUcaType.MY_UCA_INFO my_uca_v900_zh_cs_as; + + static { + directlyLoadingWeights("zh_plane.yml", zh_uca900_weight); + + my_uca_v900_zh_cs_as = new StrUcaType.MY_UCA_INFO( + UCA_V900, + my_uca_v900, + + 1114111, /* maxchar */ + null, /* length - not used */ + new ArrayList<>(), /* m_allocated_weights */ + zh_uca900_weight, + true, + zh_contraction_nodes, /* contractions */ + zh_flags_type, + + 0, /* first_non_ignorable p != ignore */ + 0, /* last_non_ignorable Not a CJK and not UASSIGNED */ + + 0, /* first_primary_ignorable p == ignore */ + 0, /* last_primary_ignorable */ + + 0, /* first_secondary_ignorable p,s= ignore */ + 0, /* last_secondary_ignorable */ + + 0, /* first_tertiary_ignorable p,s,t == ignore */ + 0, /* last_tertiary_ignorable */ + + 0, /* first_trailing */ + 0, /* last_trailing */ + + 0, /* first_variable if alt=non-ignorable: p != ignore */ + 0, /* last_variable if alt=shifter: p,s,t == ignore */ + /* + By definition of DUCET 9.0.0, the weight range is: + Primary weight range: 0200..54A3 (21156) + Secondary weight range: 0020..0114 (245) + Variant secondaries: 0110..0114 (5) + Tertiary weight range: 0002..001F (30) + To make the extra CE's weight bigger than any weight else, we define it + as the 'max + 1'. + */ + 63044, /* extra_ce_pri_base */ + 277, /* extra_ce_sec_base */ + 32 /* extra_ce_ter_base */ + ); + } + + public static final String ZH_CLDR_30 = + "&[before 2]a<<\u0101<<<\u0100<<\u00E1<<<\u00C1<<\u01CE<<<\u01CD" + + "<<\u00E0<<<\u00C0" + + "&[before 2]e<<\u0113<<<\u0112<<\u00E9<<<\u00C9<<\u011B<<<\u011A" + + "<<\u00E8<<<\u00C8" + + "&e< sketch - */ private final Map cardinalitySketch = Maps.newConcurrentMap(); private Map correctionsMap = Maps.newConcurrentMap(); @@ -369,20 +366,19 @@ public StatisticResult getCardinality(String schema, String logicalTableName, St } CacheLine cacheLine = getCacheLine(schema, logicalTableName); Long cardinality = cardinalitySketch.get(buildSketchKey(schema, logicalTableName, columnName)); + + if (fromOptimizer) { + cacheLine.setLastAccessTime(unixTimeStamp()); + } if (DynamicConfig.getInstance().enableHll() && - cardinality != null && - cardinality != -1 && - // exclude outliers - !isCardinalityOutliers(cardinality.longValue(), cacheLine)) { + !isCardinalityOutliers(cardinality, columnName, cacheLine)) { StatisticTrace statisticTrace = isNeedTrace ? StatisticUtils.buildTrace(schema + "," + logicalTableName + "," + columnName, "getCardinality", cardinality, HLL_SKETCH, sds.ndvModifyTime(schema, logicalTableName, columnName), "") : null; return StatisticResult.build(HLL_SKETCH).setValue(cardinality, statisticTrace); } - if (fromOptimizer) { - cacheLine.setLastAccessTime(unixTimeStamp()); - } + Map cardinalityMap = cacheLine.getCardinalityMap(); if (cardinalityMap != null) { cardinality = cardinalityMap.get(columnName.toLowerCase()); @@ -408,9 +404,21 @@ public StatisticResult getCardinality(String schema, String logicalTableName, St } } - private boolean isCardinalityOutliers(long cardinality, CacheLine cacheLine) { - if (cardinality == 0L && cacheLine.getRowCount() > 0) { + private boolean isCardinalityOutliers(Long cardinality, String columnName, CacheLine cacheLine) { + if (StringUtils.isEmpty(columnName) || cacheLine == null) { + throw new IllegalArgumentException("columnName or cacheLine is null"); + } + if (cardinality == null || cardinality < 0) { return true; + } else if (cardinality == 0L) { + boolean topNNull = cacheLine.getTopN(columnName) == null; + Histogram histogram = + cacheLine.getHistogramMap() == null ? null : cacheLine.getHistogramMap().get(columnName); + boolean bothNull = topNNull && histogram == null; + // if rowcount > 0 and column topn/histogram has values, then cardinality(ndv) couldn't be 0 + if (cacheLine.getRowCount() > 0 && !bothNull) { + return true; + } } return false; } @@ -1241,6 +1249,13 @@ public String workload() { return null; } + /** + * schemaName:table name:columns name -> sketch + */ + Map getCardinalitySketch() { + return cardinalitySketch; + } + public enum AutoAnalyzeState { RUNNING, WAITING diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/context/ExecutionContext.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/context/ExecutionContext.java index d7b011b49..fdb36b81c 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/context/ExecutionContext.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/context/ExecutionContext.java @@ -361,6 +361,8 @@ public boolean isEnableTwoPhaseDdl() { private String returning = null; + private String backfillReturning = null; + private boolean optimizedWithReturning = false; /** * For DirectShardingKeyTableOperation @@ -418,6 +420,8 @@ public boolean isCursorFetchMode() { private List readOrcFiles = null; + private long pruningTime = 0L; + private String partitionName; public ExecutionContext() { @@ -860,26 +864,6 @@ public void clearPreparedStmt() { this.preparedStmtCache = null; } - public Map>, Parameters> getPruneRawStringMap() { - return pruneRawStringMap; - } - - public void setPruneRawStringMap( - Map>, Parameters> pruneRawStringMap) { - this.pruneRawStringMap = pruneRawStringMap; - } - - public Map getPruneParams(String dbIndex, List tableNames) { - if (pruneRawStringMap == null) { - return null; - } - Pair> pair = new Pair<>(dbIndex, tableNames); - if (pruneRawStringMap.get(pair) == null) { - return null; - } - return pruneRawStringMap.get(pair).getCurrentParameter(); - } - public String getPartitionHint() { return partitionHint; } @@ -904,6 +888,14 @@ public void setColumnarTracer(ColumnarTracer columnarTracer) { this.columnarTracer = columnarTracer; } + public long getPruningTime() { + return pruningTime; + } + + public void addPruningTime(long pruningTime) { + this.pruningTime += pruningTime; + } + public static class ErrorMessage { final int code; @@ -1286,6 +1278,7 @@ public ExecutionContext copy(CopyOption option) { ec.sqlId = getSqlId(); ec.planSource = getPlanSource(); ec.returning = getReturning(); + ec.backfillReturning = getBackfillReturning(); ec.optimizedWithReturning = isOptimizedWithReturning(); ec.readOnly = isReadOnly(); ec.backfillId = getBackfillId(); @@ -1300,6 +1293,7 @@ public ExecutionContext copy(CopyOption option) { ec.needAutoSavepoint = isNeedAutoSavepoint(); ec.setColumnarTracer(getColumnarTracer()); ec.columnarMaxShard = getColumnarMaxShard(); + ec.pruningTime = getPruningTime(); return ec; } @@ -1786,14 +1780,12 @@ public void clearContextInsideTrans() { // clear params to release memory params = null; - if (pruneRawStringMap != null) { - pruneRawStringMap = null; - } calcitePlanOptimizerTrace = null; // reset use hint flag useHint = false; xplanStat = null; + pruningTime = 0L; } /** @@ -1904,9 +1896,6 @@ public void clearContextAfterTrans() { clientFoundRows = true; enableRuleCounter = false; ruleCount = 0; - if (pruneRawStringMap != null) { - pruneRawStringMap = null; - } executingPreparedStmt = false; blockBuilderCapacity = null; @@ -1916,7 +1905,7 @@ public void clearContextAfterTrans() { } public boolean useReturning() { - return null != returning; + return null != returning || null != backfillReturning; } public String getReturning() { @@ -1927,6 +1916,14 @@ public void setReturning(String returning) { this.returning = returning; } + public String getBackfillReturning() { + return backfillReturning; + } + + public void setBackfillReturning(String backfillReturning) { + this.backfillReturning = backfillReturning; + } + public boolean isOptimizedWithReturning() { return optimizedWithReturning; } @@ -2331,4 +2328,11 @@ public boolean isEnableAutoCommitTso() { } return false; } + + public boolean isEnable1PCOpt() { + if (null != this.getParamManager()) { + return this.getParamManager().getBoolean(ConnectionParams.ENABLE_1PC_OPT); + } + return true; + } } diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/datatype/BytesType.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/datatype/BytesType.java index 53d1b063d..e9ace8698 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/datatype/BytesType.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/datatype/BytesType.java @@ -100,31 +100,23 @@ public int compare(Object o1, Object o2) { int actualLength = value.length - notZeroOffset; int actualTargetLength = targetValue.length - targetNotZeroOffset; - if (actualLength > actualTargetLength) { - return 1; - } else if (actualLength < actualTargetLength) { - return -1; - } else { - int index = notZeroOffset; - int targetIndex = targetNotZeroOffset; - while (true) { - if (index >= value.length || targetIndex >= targetValue.length) { - break; - } - short shortValue = (short) (value[index] & 0xff); - short shortTargetValue = (short) (targetValue[targetIndex] & 0xff); - boolean re = (shortValue == shortTargetValue); - if (re) { - index++; - targetIndex++; - continue; - } else { - return shortValue > shortTargetValue ? 1 : -1; - } + int minLength = Math.min(actualLength, actualTargetLength); + int index = notZeroOffset; + int targetIndex = targetNotZeroOffset; + + while (index - notZeroOffset < minLength) { + int code1 = Byte.toUnsignedInt(value[index]); + int code2 = Byte.toUnsignedInt(targetValue[targetIndex]); + int flag = code1 - code2; + if (flag != 0) { + return flag; } - return 0; + index++; + targetIndex++; } + + return actualLength - actualTargetLength; } @Override diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/datatype/EnumType.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/datatype/EnumType.java index f5948f3f5..f41d84509 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/datatype/EnumType.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/datatype/EnumType.java @@ -89,7 +89,13 @@ public String getMinValue() { public Object convertTo(DataType toType, EnumValue value) { if (toType instanceof NumberType) { - return toType.convertFrom(this.enumValues.get(value.value)); + Integer intValue; + if ("".equals(value.value)) { + intValue = 0; + } else { + intValue = this.enumValues.get(value.value); + } + return toType.convertFrom(intValue); } return toType.convertFrom(value.value); @@ -134,8 +140,11 @@ private String checkResult(String value) { } public String convertTo(Integer value) { - return enumIndexs.get(value); - + if (value.equals(0)) { + return ""; + } else { + return enumIndexs.get(value); + } } public Map getEnumValues() { diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/function/SqlBitAndFunction.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/function/SqlBitAndFunction.java index 891c8d70f..881df2bd6 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/function/SqlBitAndFunction.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/function/SqlBitAndFunction.java @@ -23,6 +23,7 @@ import org.apache.calcite.sql.type.OperandTypes; import org.apache.calcite.sql.type.ReturnTypes; import org.apache.calcite.sql.type.SqlTypeFamily; +import org.apache.calcite.util.Optionality; public class SqlBitAndFunction extends SqlAggFunction { public SqlBitAndFunction() { @@ -37,4 +38,9 @@ public SqlBitAndFunction() { false, false); } + + @Override + public Optionality getDistinctOptionality() { + return Optionality.IGNORED; + } } \ No newline at end of file diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/function/SqlBitOrFunction.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/function/SqlBitOrFunction.java index f8d106fdf..68ccb5551 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/function/SqlBitOrFunction.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/function/SqlBitOrFunction.java @@ -23,6 +23,7 @@ import org.apache.calcite.sql.type.OperandTypes; import org.apache.calcite.sql.type.ReturnTypes; import org.apache.calcite.sql.type.SqlTypeFamily; +import org.apache.calcite.util.Optionality; /** * Created by chuanqin on 17/12/8. @@ -40,4 +41,9 @@ public SqlBitOrFunction() { false, false); } + + @Override + public Optionality getDistinctOptionality() { + return Optionality.IGNORED; + } } diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/ExecutionPlan.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/ExecutionPlan.java index 885345a77..d579da32e 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/ExecutionPlan.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/ExecutionPlan.java @@ -190,6 +190,14 @@ public ExecutionPlan(SqlNode ast, RelNode plan, CursorMeta columnMeta) { } } + private ExecutionPlan(SqlNode ast, RelNode plan, CursorMeta columnMeta, + Map> referencedGsiNames) { + this.ast = ast; + this.plan = plan; + this.cursorMeta = columnMeta; + this.referencedGsiNames = referencedGsiNames; + } + public RelNode getPlan() { return plan; } @@ -227,7 +235,7 @@ public void setPlanProperties(BitSet planProperties) { } public ExecutionPlan copy(RelNode plan) { - ExecutionPlan newExecutionPlan = new ExecutionPlan(ast, plan, this.cursorMeta); + ExecutionPlan newExecutionPlan = new ExecutionPlan(ast, plan, this.cursorMeta, this.referencedGsiNames); newExecutionPlan.hitCache = this.hitCache; newExecutionPlan.isExplain = this.isExplain; newExecutionPlan.getPlanProperties().or(this.planProperties); @@ -249,7 +257,6 @@ public ExecutionPlan copy(RelNode plan) { newExecutionPlan.isDirectShardingKey = this.isDirectShardingKey; newExecutionPlan.dbIndexAndTableName = this.dbIndexAndTableName; newExecutionPlan.canOptByForcePrimary = this.canOptByForcePrimary; - newExecutionPlan.referencedGsiNames = this.referencedGsiNames; newExecutionPlan.constantParams = this.constantParams; newExecutionPlan.hintCollection = this.hintCollection; newExecutionPlan.useColumnar = this.useColumnar; diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/PlanCache.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/PlanCache.java index 4fa23377f..51e1b18f1 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/PlanCache.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/PlanCache.java @@ -291,7 +291,7 @@ private ExecutionPlan getFromCache(String schema, SqlParameterized sqlParameteri // There may be an issue of excessive encapsulation throw ex; } else { - throw new TddlRuntimeException(ErrorCode.ERR_OPTIMIZER, ex.getMessage()); + throw new TddlRuntimeException(ErrorCode.ERR_OPTIMIZER, ex, ex.getMessage()); } } diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/Planner.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/Planner.java index 829526fc0..8ef2861be 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/Planner.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/Planner.java @@ -474,7 +474,8 @@ public ExecutionPlan doBuildPlan(SqlNodeList astList, plan = getPlan(ast, plannerContext); plan.setExplain(executionContext.getExplain() != null); plan.setUsePostPlanner( - PostPlanner.usePostPlanner(executionContext.getExplain(), executionContext.isUseHint())); + PostPlanner.usePostPlanner(executionContext.getExplain(), + executionContext.isUseHint())); } // build foreign key sub plans @@ -828,7 +829,8 @@ private ExecutionPlan buildPlanWithHint(SqlNode ast, PlannerContext plannerConte executionPlan.setExplain(isExplain); executionPlan.setUsePostPlanner( StringUtils.isEmpty(ec.getPartitionHint()) && - (PostPlanner.usePostPlanner(explain, ec.isUseHint()) || hintCollection.usePostPlanner())); + (PostPlanner.usePostPlanner(explain, ec.isUseHint()) + || hintCollection.usePostPlanner())); executionPlan.setHintCollection(hintCollection); return executionPlan; } diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/PostPlanner.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/PostPlanner.java index 352720e1e..74b02f54f 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/PostPlanner.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/PostPlanner.java @@ -49,6 +49,7 @@ import com.alibaba.polardbx.optimizer.core.rel.BaseTableOperation; import com.alibaba.polardbx.optimizer.core.rel.BroadcastTableModify; import com.alibaba.polardbx.optimizer.core.rel.DirectTableOperation; +import com.alibaba.polardbx.optimizer.core.rel.Gather; import com.alibaba.polardbx.optimizer.core.rel.HashWindow; import com.alibaba.polardbx.optimizer.core.rel.LogicalInsert; import com.alibaba.polardbx.optimizer.core.rel.LogicalModify; @@ -346,7 +347,8 @@ public ExecutionPlan optimize(ExecutionPlan executionPlan, ExecutionContext exec schemaNamesOfAst, logTableNames, true, - true); + true, + null); builder.setUnionSize(0); List phyTableScans = builder.build(executionContext); RelNode ret = phyTableScans.get(0); @@ -816,7 +818,9 @@ private boolean allAtOnePhyTable(Map>> targetTables, i } public static boolean usePostPlanner(ExplainResult explain, boolean usingHint) { - return !usingHint && !isExplainOptimizer(explain) && !isExplainSharding(explain); + return !usingHint && + !isExplainOptimizer(explain) && + !isExplainSharding(explain); } private boolean existUnPushableRelNode(RelNode node) { diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/SqlConverter.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/SqlConverter.java index 7e27a2171..c3d4315ea 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/SqlConverter.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/SqlConverter.java @@ -206,6 +206,9 @@ public RelNode toRel(final SqlNode validatedNode, final RelOptCluster cluster) { } } + boolean enablePushDownDistinct = plannerContext.getExecutionContext().getParamManager().getBoolean( + ConnectionParams.ENABLE_PUSHDOWN_DISTINCT); + final SqlToRelConverter sqlToRelConverter = new TddlSqlToRelConverter( new DrdsViewExpander(cluster, this, catalog), validator, @@ -214,7 +217,8 @@ public RelNode toRel(final SqlNode validatedNode, final RelOptCluster cluster) { StandardConvertletTable.INSTANCE, converterConfig, PlannerContext.getPlannerContext(cluster), - threshold); + threshold, + enablePushDownDistinct); RelRoot root = sqlToRelConverter.convertQuery(validatedNode, false, true); return root.rel; diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/rule/AccessPathRule.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/rule/AccessPathRule.java index 27a72ad6d..ce226a1a8 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/rule/AccessPathRule.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/rule/AccessPathRule.java @@ -29,13 +29,12 @@ import com.alibaba.polardbx.optimizer.config.table.TableMeta; import com.alibaba.polardbx.optimizer.context.ExecutionContext; import com.alibaba.polardbx.optimizer.core.DrdsConvention; -import com.alibaba.polardbx.optimizer.core.planner.rule.util.CBOUtil; import com.alibaba.polardbx.optimizer.core.rel.LogicalIndexScan; import com.alibaba.polardbx.optimizer.core.rel.LogicalModifyView; import com.alibaba.polardbx.optimizer.core.rel.LogicalView; import com.alibaba.polardbx.optimizer.core.rel.MysqlTableScan; -import com.alibaba.polardbx.optimizer.index.TableScanFinder; import com.alibaba.polardbx.optimizer.index.IndexUtil; +import com.alibaba.polardbx.optimizer.index.TableScanFinder; import com.alibaba.polardbx.optimizer.partition.PartitionInfo; import com.alibaba.polardbx.optimizer.planmanager.LogicalViewFinder; import com.alibaba.polardbx.optimizer.rule.TddlRuleManager; @@ -633,9 +632,11 @@ public RelNode visit(TableScan scan) { final LogicalView primary = RelUtils.createLogicalView(scan, lockMode); final LogicalTableScan indexTableScan = LogicalTableScan.create(scan.getCluster(), this.indexTable, scan.getHints(), null, scan.getFlashback(), + scan.getFlashbackOperator(), null); final LogicalIndexScan index = new LogicalIndexScan(this.indexTable, indexTableScan, lockMode); index.setFlashback(scan.getFlashback()); + index.setFlashbackOperator(scan.getFlashbackOperator()); return RelUtils.createTableLookup(primary, index, index.getTable()); } } @@ -687,7 +688,8 @@ public RelNode visit(TableScan scan) { } final LogicalTableScan indexTableScan = - LogicalTableScan.create(scan.getCluster(), index, scan.getHints(), null, scan.getFlashback(), null); + LogicalTableScan.create(scan.getCluster(), index, scan.getHints(), null, scan.getFlashback(), + scan.getFlashbackOperator(), null); indexTableScan.setIndexNode(Optional.ofNullable(scan.getIndexNode()) .filter(indexNode -> indexNode instanceof SqlNodeList && ((SqlNodeList) indexNode).size() > 0) diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/rule/CBOPushAggRule.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/rule/CBOPushAggRule.java index 5a6d788e6..4fe8e7ec1 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/rule/CBOPushAggRule.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/rule/CBOPushAggRule.java @@ -57,8 +57,11 @@ import org.apache.calcite.util.ImmutableIntList; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Set; +import static com.alibaba.polardbx.optimizer.utils.PlannerUtils.canSplitDistinct; import static com.alibaba.polardbx.optimizer.utils.PlannerUtils.haveAggWithDistinct; public class CBOPushAggRule extends RelOptRule { @@ -127,14 +130,6 @@ private RelNode tryPushAgg(LogicalAggregate logicalAggregate, LogicalView logica if (logicalAggregate.getAggOptimizationContext().isAggPushed()) { return null; } - // agg(distinct) -> agg + group by, don't push agg to dn if agg has multi-columns - if (logicalAggregate.getAggOptimizationContext().isFromDistinctAgg()) { - for (AggregateCall call : logicalAggregate.getAggCallList()) { - if ((!call.isDistinct()) && call.getArgList().size() > 1) { - return null; - } - } - } TddlRuleManager tddlRuleManager = PlannerContext.getPlannerContext(logicalAggregate).getExecutionContext() .getSchemaManager(logicalView.getSchemaName()).getTddlRuleManager(); @@ -150,7 +145,8 @@ private RelNode tryPushAgg(LogicalAggregate logicalAggregate, LogicalView logica return null; } - if (fullMatchSharding(logicalAggregate, logicalView, shardColumns)) { + Set shardIndex = new HashSet<>(); + if (fullMatchSharding(logicalAggregate, logicalView, shardColumns, shardIndex)) { // fullMatchSharding should not match AccessPathRule // so we convert LogicalView to DrdsConvention (AccessPathRule only match Convention.None!) LogicalView newLogicalView = logicalView.copy(logicalView.getTraitSet().replace(DrdsConvention.INSTANCE)); @@ -160,14 +156,33 @@ private RelNode tryPushAgg(LogicalAggregate logicalAggregate, LogicalView logica return newLogicalView; } - if (haveAggWithDistinct(logicalAggregate.getAggCallList())) { - return null; + boolean enablePushDownDistinct = PlannerContext.getPlannerContext( + logicalAggregate).getParamManager().getBoolean(ConnectionParams.ENABLE_PUSHDOWN_DISTINCT); + boolean enableSplitDistinct = false; + if (enablePushDownDistinct && logicalAggregate.groupSets.size() <= 1 && haveAggWithDistinct( + logicalAggregate.getAggCallList())) { + enableSplitDistinct = canSplitDistinct(shardIndex, logicalAggregate); + } + + TwoPhaseAggComponent twoPhaseAggComponent = null; + if (enableSplitDistinct) { + twoPhaseAggComponent = splitAgg( + logicalAggregate, logicalView instanceof OSSTableScan, true); + } + + if (twoPhaseAggComponent == null) { + if (haveAggWithDistinct(logicalAggregate.getAggCallList())) { + return null; + } + + twoPhaseAggComponent = splitAgg( + logicalAggregate, logicalView instanceof OSSTableScan, false); } - TwoPhaseAggComponent twoPhaseAggComponent = splitAgg(logicalAggregate, logicalView instanceof OSSTableScan); if (twoPhaseAggComponent == null) { return null; } + List childExps = twoPhaseAggComponent.getProjectChildExps(); List globalAggCalls = twoPhaseAggComponent.getGlobalAggCalls(); ImmutableBitSet globalAggGroupSet = twoPhaseAggComponent.getGlobalAggGroupSet(); @@ -202,13 +217,14 @@ private RelNode tryPushAgg(LogicalAggregate logicalAggregate, LogicalView logica } private boolean fullMatchSharding(LogicalAggregate logicalAggregate, LogicalView logicalView, - List shardColumns) { + List shardColumns, Set shardIndex) { int matchNum = 0; for (String shardName : shardColumns) { int shardRef = logicalView.getRefByColumnName(logicalView.getShardingTable(), shardName, false, true); if (shardRef != -1 && logicalAggregate.getGroupSet().asList().contains(shardRef)) { matchNum++; } + shardIndex.add(shardRef); } return matchNum != 0 && matchNum == shardColumns.size(); } @@ -253,10 +269,10 @@ public ImmutableBitSet getPartialAggGroupSet() { } public static TwoPhaseAggComponent splitAgg(Aggregate agg) { - return splitAgg(agg, true); + return splitAgg(agg, true, false); } - public static TwoPhaseAggComponent splitAgg(Aggregate agg, boolean canSplitOrcHash) { + public static TwoPhaseAggComponent splitAgg(Aggregate agg, boolean canSplitOrcHash, boolean withDistinct) { TddlTypeFactoryImpl tddlTypeFactory = new TddlTypeFactoryImpl(TddlRelDataTypeSystemImpl.getInstance()); List childExps = new ArrayList<>(); final int aggGroupSetCardinality = agg.getGroupSet().cardinality(); @@ -269,186 +285,252 @@ public static TwoPhaseAggComponent splitAgg(Aggregate agg, boolean canSplitOrcHa for (int i = 0; i < agg.getAggCallList().size(); i++) { AggregateCall aggCall = agg.getAggCallList().get(i); - SqlAggFunction function = aggCall.getAggregation(); - switch (function.getKind()) { - case COUNT: - SqlSumEmptyIsZeroAggFunction sumAggFunction = new SqlSumEmptyIsZeroAggFunction(); - - AggregateCall sumAggregateCall = AggregateCall.create(sumAggFunction, - aggCall.isDistinct(), - aggCall.isApproximate(), - ImmutableList.of(aggGroupSetCardinality + partialAggCalls.size()), - aggCall.filterArg, - aggCall.getType(), - aggCall.getName()); - - globalAggCalls.add(sumAggregateCall); - - childExps.add(new RexInputRef(aggGroupSetCardinality + partialAggCalls.size(), aggCall.getType())); - - partialAggCalls.add(aggCall); - break; - case AVG: - SqlSumAggFunction partialSumAggFunc = new SqlSumAggFunction(null); - AggregateCall partialSumAggCall = AggregateCall.create(partialSumAggFunc, - aggCall.isDistinct(), - aggCall.isApproximate(), - aggCall.getArgList(), - aggCall.filterArg, - aggCall.getType(), - "partial_sum"); - - AggregateCall globalSumAggCall = - partialSumAggCall.copy(ImmutableIntList.of(aggGroupSetCardinality + partialAggCalls.size()), - -1, - false, - "global_sum"); - - partialAggCalls.add(partialSumAggCall); - - SqlCountAggFunction pushedCountFunc = new SqlCountAggFunction("COUNT"); - AggregateCall partialCountAggCall = AggregateCall.create(pushedCountFunc, - aggCall.isDistinct(), - aggCall.isApproximate(), - aggCall.getArgList(), - aggCall.filterArg, - tddlTypeFactory.createSqlType(SqlTypeName.BIGINT), - "partial_count"); - - AggregateCall globalCountAggCall = AggregateCall.create(partialSumAggFunc, - partialCountAggCall.isDistinct(), - partialCountAggCall.isApproximate(), - ImmutableIntList.of(aggGroupSetCardinality + partialAggCalls.size()), - partialCountAggCall.filterArg, - partialCountAggCall.getType(), - "global_count"); - - partialAggCalls.add(partialCountAggCall); - - RexInputRef partialSumRef = - new RexInputRef(globalSumAggCall.getArgList().get(0), partialSumAggCall.getType()); - RexInputRef partialCountRef = - new RexInputRef(globalCountAggCall.getArgList().get(0), partialCountAggCall.getType()); - - RexBuilder rexBuilder = agg.getCluster().getRexBuilder(); - RexCall divide = (RexCall) rexBuilder.makeCall(SqlStdOperatorTable.DIVIDE, - partialSumRef, - partialCountRef); - - RelDataType relDataType = aggCall.getType(); - if (!divide.getType().getSqlTypeName().equals(relDataType.getSqlTypeName())) { - RexNode castNode = rexBuilder.makeCastForConvertlet(relDataType, divide); - childExps.add(castNode); + boolean isDistinct = aggCall.isDistinct() && withDistinct; + try { + if (isDistinct) { + buildTwoAggCallsWithDistinct( + aggCall, aggGroupSetCardinality, globalAggCalls, partialAggCalls, childExps); } else { - childExps.add(divide); + buildTwoAggCalls( + aggCall, tddlTypeFactory, aggGroupSetCardinality, globalAggCalls, partialAggCalls, childExps, + canSplitOrcHash, agg.getCluster().getRexBuilder()); } + } catch (UnsupportedOperationException t) { + // ignore + return null; + } + } + return new TwoPhaseAggComponent(childExps, globalAggCalls, + ImmutableBitSet.range(agg.getGroupSet().cardinality()), + partialAggCalls, agg.getGroupSet()); + } - globalAggCalls.add(globalSumAggCall); - globalAggCalls.add(globalCountAggCall); - break; - case MIN: - case MAX: - case SUM: - case BIT_OR: - case BIT_XOR: - case BIT_AND: - case __FIRST_VALUE: - AggregateCall newAggCall = - aggCall.copy(ImmutableIntList.of(aggGroupSetCardinality + partialAggCalls.size()), -1); - globalAggCalls.add(newAggCall); - - childExps.add(new RexInputRef(aggGroupSetCardinality + partialAggCalls.size(), aggCall.getType())); - - partialAggCalls.add(aggCall); - break; - case GROUP_CONCAT: - GroupConcatAggregateCall groupConcatAggregateCall = (GroupConcatAggregateCall) aggCall; - if (groupConcatAggregateCall.getOrderList() != null - && groupConcatAggregateCall.getOrderList().size() != 0) { - return null; - } - GroupConcatAggregateCall newGroupConcatAggregateCall = - groupConcatAggregateCall.copy(ImmutableIntList.of(aggGroupSetCardinality + partialAggCalls.size()), - -1, groupConcatAggregateCall.getOrderList()); - globalAggCalls.add(newGroupConcatAggregateCall); - - childExps.add(new RexInputRef(aggGroupSetCardinality + partialAggCalls.size(), aggCall.getType())); - - partialAggCalls.add(aggCall); - break; - case HYPER_LOGLOG: - SqlPartialHyperloglogFunction partialHllFunction = new SqlPartialHyperloglogFunction(); - AggregateCall partialHllAggregateCall = AggregateCall.create(partialHllFunction, - aggCall.isDistinct(), - aggCall.isApproximate(), - aggCall.getArgList(), - aggCall.filterArg, - tddlTypeFactory.createSqlType(SqlTypeName.VARBINARY), - "partial_hll"); - - SqlFinalHyperloglogFunction finalHllFunction = new SqlFinalHyperloglogFunction(); - AggregateCall finalHllAggregateCall = AggregateCall.create(finalHllFunction, - aggCall.isDistinct(), - aggCall.isApproximate(), - ImmutableList.of(aggGroupSetCardinality + partialAggCalls.size()), - aggCall.filterArg, - aggCall.getType(), - "final_hll"); - - globalAggCalls.add(finalHllAggregateCall); - - childExps.add(new RexInputRef(aggGroupSetCardinality + partialAggCalls.size(), - tddlTypeFactory.createSqlType(SqlTypeName.VARBINARY))); - - partialAggCalls.add(partialHllAggregateCall); - break; - case CHECK_SUM: - if (!canSplitOrcHash) { - return null; - } - SqlCheckSumMergeFunction crcAggFunction = new SqlCheckSumMergeFunction(); + private static void buildTwoAggCallsWithDistinct(AggregateCall aggCall, + int aggGroupSetCardinality, + List globalAggCalls, + List partialAggCalls, + List childExps) { + SqlAggFunction function = aggCall.getAggregation(); + switch (function.getKind()) { + case COUNT: + SqlSumEmptyIsZeroAggFunction sumAggFunction = new SqlSumEmptyIsZeroAggFunction(); + + AggregateCall sumAggregateCall = AggregateCall.create(sumAggFunction, + false, + aggCall.isApproximate(), + ImmutableList.of(aggGroupSetCardinality + partialAggCalls.size()), + aggCall.filterArg, + aggCall.getType(), + aggCall.getName()); + + globalAggCalls.add(sumAggregateCall); + + childExps.add(new RexInputRef(aggGroupSetCardinality + partialAggCalls.size(), aggCall.getType())); + + partialAggCalls.add(aggCall); + break; + case SUM: + AggregateCall newAggCall = + aggCall.copy( + ImmutableIntList.of(aggGroupSetCardinality + partialAggCalls.size()), -1).withDistinct(false); + globalAggCalls.add(newAggCall); + + childExps.add(new RexInputRef(aggGroupSetCardinality + partialAggCalls.size(), aggCall.getType())); + + partialAggCalls.add(aggCall); + break; + default: + throw new UnsupportedOperationException(); + } - AggregateCall crcHashAggregateCall = AggregateCall.create(crcAggFunction, - aggCall.isDistinct(), - aggCall.isApproximate(), - ImmutableList.of(aggGroupSetCardinality + partialAggCalls.size()), - aggCall.filterArg, - aggCall.getType(), - aggCall.getName()); + } - globalAggCalls.add(crcHashAggregateCall); + private static void buildTwoAggCalls(AggregateCall aggCall, TddlTypeFactoryImpl tddlTypeFactory, + int aggGroupSetCardinality, + List globalAggCalls, List partialAggCalls, + List childExps, + boolean canSplitOrcHash, RexBuilder rexBuilder) { - childExps.add(new RexInputRef(aggGroupSetCardinality + partialAggCalls.size(), aggCall.getType())); + SqlAggFunction function = aggCall.getAggregation(); + switch (function.getKind()) { + case COUNT: + SqlSumEmptyIsZeroAggFunction sumAggFunction = new SqlSumEmptyIsZeroAggFunction(); - partialAggCalls.add(aggCall); - break; - case CHECK_SUM_V2: - if (!canSplitOrcHash) { - return null; - } - SqlCheckSumV2MergeFunction func = new SqlCheckSumV2MergeFunction(); + AggregateCall sumAggregateCall = AggregateCall.create(sumAggFunction, + aggCall.isDistinct(), + aggCall.isApproximate(), + ImmutableList.of(aggGroupSetCardinality + partialAggCalls.size()), + aggCall.filterArg, + aggCall.getType(), + aggCall.getName()); - AggregateCall call = AggregateCall.create(func, - aggCall.isDistinct(), - aggCall.isApproximate(), - ImmutableList.of(aggGroupSetCardinality + partialAggCalls.size()), - aggCall.filterArg, - aggCall.getType(), - aggCall.getName()); + globalAggCalls.add(sumAggregateCall); - globalAggCalls.add(call); + childExps.add(new RexInputRef(aggGroupSetCardinality + partialAggCalls.size(), aggCall.getType())); - childExps.add(new RexInputRef(aggGroupSetCardinality + partialAggCalls.size(), aggCall.getType())); + if (aggCall.getArgList().size() > 1) { + //make sure the count with one column, not with multi columns + aggCall = aggCall.copy(ImmutableList.of(aggCall.getArgList().get(0)), aggCall.filterArg); + } - partialAggCalls.add(aggCall); - break; - default: - return null; + partialAggCalls.add(aggCall); + break; + case AVG: + SqlSumAggFunction partialSumAggFunc = new SqlSumAggFunction(null); + AggregateCall partialSumAggCall = AggregateCall.create(partialSumAggFunc, + aggCall.isDistinct(), + aggCall.isApproximate(), + aggCall.getArgList(), + aggCall.filterArg, + aggCall.getType(), + "partial_sum"); + + AggregateCall globalSumAggCall = + partialSumAggCall.copy(ImmutableIntList.of(aggGroupSetCardinality + partialAggCalls.size()), + -1, + false, + "global_sum"); + + partialAggCalls.add(partialSumAggCall); + + SqlCountAggFunction pushedCountFunc = new SqlCountAggFunction("COUNT"); + AggregateCall partialCountAggCall = AggregateCall.create(pushedCountFunc, + aggCall.isDistinct(), + aggCall.isApproximate(), + aggCall.getArgList(), + aggCall.filterArg, + tddlTypeFactory.createSqlType(SqlTypeName.BIGINT), + "partial_count"); + + AggregateCall globalCountAggCall = AggregateCall.create(partialSumAggFunc, + partialCountAggCall.isDistinct(), + partialCountAggCall.isApproximate(), + ImmutableIntList.of(aggGroupSetCardinality + partialAggCalls.size()), + partialCountAggCall.filterArg, + partialCountAggCall.getType(), + "global_count"); + + partialAggCalls.add(partialCountAggCall); + + RexInputRef partialSumRef = + new RexInputRef(globalSumAggCall.getArgList().get(0), partialSumAggCall.getType()); + RexInputRef partialCountRef = + new RexInputRef(globalCountAggCall.getArgList().get(0), partialCountAggCall.getType()); + + RexCall divide = (RexCall) rexBuilder.makeCall(SqlStdOperatorTable.DIVIDE, + partialSumRef, + partialCountRef); + + RelDataType relDataType = aggCall.getType(); + if (!divide.getType().getSqlTypeName().equals(relDataType.getSqlTypeName())) { + RexNode castNode = rexBuilder.makeCastForConvertlet(relDataType, divide); + childExps.add(castNode); + } else { + childExps.add(divide); } + + globalAggCalls.add(globalSumAggCall); + globalAggCalls.add(globalCountAggCall); + break; + case MIN: + case MAX: + case SUM: + case BIT_OR: + case BIT_XOR: + case __FIRST_VALUE: + AggregateCall newAggCall = + aggCall.copy(ImmutableIntList.of(aggGroupSetCardinality + partialAggCalls.size()), -1); + globalAggCalls.add(newAggCall); + + childExps.add(new RexInputRef(aggGroupSetCardinality + partialAggCalls.size(), aggCall.getType())); + + partialAggCalls.add(aggCall); + break; + case GROUP_CONCAT: + GroupConcatAggregateCall groupConcatAggregateCall = (GroupConcatAggregateCall) aggCall; + if (groupConcatAggregateCall.getOrderList() != null + && groupConcatAggregateCall.getOrderList().size() != 0) { + throw new UnsupportedOperationException(); + } + GroupConcatAggregateCall newGroupConcatAggregateCall = + groupConcatAggregateCall.copy(ImmutableIntList.of(aggGroupSetCardinality + partialAggCalls.size()), + -1, groupConcatAggregateCall.getOrderList()); + globalAggCalls.add(newGroupConcatAggregateCall); + + childExps.add(new RexInputRef(aggGroupSetCardinality + partialAggCalls.size(), aggCall.getType())); + + partialAggCalls.add(aggCall); + break; + case HYPER_LOGLOG: + SqlPartialHyperloglogFunction partialHllFunction = new SqlPartialHyperloglogFunction(); + AggregateCall partialHllAggregateCall = AggregateCall.create(partialHllFunction, + aggCall.isDistinct(), + aggCall.isApproximate(), + aggCall.getArgList(), + aggCall.filterArg, + tddlTypeFactory.createSqlType(SqlTypeName.VARBINARY), + "partial_hll"); + + SqlFinalHyperloglogFunction finalHllFunction = new SqlFinalHyperloglogFunction(); + AggregateCall finalHllAggregateCall = AggregateCall.create(finalHllFunction, + aggCall.isDistinct(), + aggCall.isApproximate(), + ImmutableList.of(aggGroupSetCardinality + partialAggCalls.size()), + aggCall.filterArg, + aggCall.getType(), + "final_hll"); + + globalAggCalls.add(finalHllAggregateCall); + + childExps.add(new RexInputRef(aggGroupSetCardinality + partialAggCalls.size(), + tddlTypeFactory.createSqlType(SqlTypeName.VARBINARY))); + + partialAggCalls.add(partialHllAggregateCall); + break; + case CHECK_SUM: + if (!canSplitOrcHash) { + throw new UnsupportedOperationException(); + } + SqlCheckSumMergeFunction crcAggFunction = new SqlCheckSumMergeFunction(); + + AggregateCall crcHashAggregateCall = AggregateCall.create(crcAggFunction, + aggCall.isDistinct(), + aggCall.isApproximate(), + ImmutableList.of(aggGroupSetCardinality + partialAggCalls.size()), + aggCall.filterArg, + aggCall.getType(), + aggCall.getName()); + + globalAggCalls.add(crcHashAggregateCall); + + childExps.add(new RexInputRef(aggGroupSetCardinality + partialAggCalls.size(), aggCall.getType())); + + partialAggCalls.add(aggCall); + break; + case CHECK_SUM_V2: + if (!canSplitOrcHash) { + throw new UnsupportedOperationException(); + } + SqlCheckSumV2MergeFunction func = new SqlCheckSumV2MergeFunction(); + + AggregateCall call = AggregateCall.create(func, + aggCall.isDistinct(), + aggCall.isApproximate(), + ImmutableList.of(aggGroupSetCardinality + partialAggCalls.size()), + aggCall.filterArg, + aggCall.getType(), + aggCall.getName()); + + globalAggCalls.add(call); + + childExps.add(new RexInputRef(aggGroupSetCardinality + partialAggCalls.size(), aggCall.getType())); + + partialAggCalls.add(aggCall); + break; + default: + throw new UnsupportedOperationException(); } - return new TwoPhaseAggComponent(childExps, globalAggCalls, - ImmutableBitSet.range(agg.getGroupSet().cardinality()), - partialAggCalls, agg.getGroupSet()); } + } diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/rule/DrdsAggregateExpandDistinctAggregatesRule.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/rule/DrdsAggregateExpandDistinctAggregatesRule.java index 8f070dd3a..1cef34d41 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/rule/DrdsAggregateExpandDistinctAggregatesRule.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/rule/DrdsAggregateExpandDistinctAggregatesRule.java @@ -492,6 +492,7 @@ private void rewriteUsingGroupingSets(RelOptRuleCall call, // Some aggregate functions (e.g. COUNT) have the special property that they can return a // non-null result without any input. We need to make sure we return a result in this case. final List needDefaultValueAggCalls = new ArrayList<>(); + Set nullRefs = new HashSet<>(); for (AggregateCall aggCall : aggregate.getAggCallList()) { final int newFilterArg; final List newArgList; @@ -532,6 +533,8 @@ private void rewriteUsingGroupingSets(RelOptRuleCall call, aggCallIdx++; } + buildNullFilter(nullRefs, relBuilder); + relBuilder.aggregate( relBuilder.groupKey( remap(fullGroupSet, aggregate.getGroupSet()), @@ -643,8 +646,12 @@ private RelBuilder convertMonopole(RelBuilder relBuilder, LogicalAggregate aggre // Create an aggregate on top, with the new aggregate list. final List newAggCalls = com.google.common.collect.Lists.newArrayList(aggregate.getAggCallList()); - rewriteAggCalls(newAggCalls, argList, sourceOf); + final Set nullRefs = new HashSet<>(); + rewriteAggCalls(newAggCalls, argList, sourceOf, nullRefs); final int cardinality = aggregate.getGroupSet().cardinality(); + + buildNullFilter(nullRefs, relBuilder); + relBuilder.push( aggregate.copy(aggregate.getTraitSet(), relBuilder.build(), aggregate.indicator, ImmutableBitSet.range(cardinality), null, @@ -740,6 +747,7 @@ private void doRewrite(RelBuilder relBuilder, Aggregate aggregate, int n, final int groupAndIndicatorCount = aggregate.getGroupCount() + aggregate.getIndicatorCount(); int i = groupAndIndicatorCount - 1; + Set nullRefs = new HashSet<>(); for (AggregateCall aggCall : aggCalls) { ++i; @@ -807,7 +815,7 @@ private void doRewrite(RelBuilder relBuilder, Aggregate aggregate, int n, ImmutableBitSet.ORDERING.immutableSortedCopy( ImmutableBitSet.permute(aggregate.getGroupSets(), map)); } - + buildNullFilter(nullRefs, relBuilder); relBuilder.push( aggregate.copy(aggregate.getTraitSet(), relBuilder.build(), aggregate.indicator, newGroupSet, newGroupingSets, aggCallList)); @@ -841,7 +849,8 @@ private void doRewrite(RelBuilder relBuilder, Aggregate aggregate, int n, private static void rewriteAggCalls( List newAggCalls, List argList, - Map sourceOf) { + Map sourceOf, + Set nullRefs) { // Rewrite the agg calls. Each distinct agg becomes a non-distinct call // to the corresponding field from the right; for example, // "COUNT(DISTINCT e.sal)" becomes "COUNT(distinct_e.sal)". @@ -981,4 +990,19 @@ private RelBuilder createSelectDistinct(RelBuilder relBuilder, null, com.google.common.collect.ImmutableList.of())); return relBuilder; } + + private void buildNullFilter(Set nullRefs, RelBuilder relBuilder) { + if (nullRefs.size() > 0) { + final List fields = new ArrayList<>(relBuilder.fields()); + List isNotNullOperands = new ArrayList<>(); + for (Integer nullRef : nullRefs) { + if (fields.get(nullRef).getType().isNullable()) { + isNotNullOperands.add(relBuilder.isNotNull(fields.get(nullRef))); + } + } + if (isNotNullOperands.size() > 0) { + relBuilder.filter(isNotNullOperands); + } + } + } } diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/rule/MergeIndexRule.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/rule/MergeIndexRule.java index 0fd26a20f..37608e136 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/rule/MergeIndexRule.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/rule/MergeIndexRule.java @@ -345,7 +345,7 @@ private RelNode buildPrimaryIndexAccess(RelOptTable primary, RexNode predicate, LogicalTableScan logicalTableScan) { final LogicalTableScan primaryScan = LogicalTableScan.create(logicalTableScan.getCluster(), primary, logicalTableScan.getHints(), null, - logicalTableScan.getFlashback(), null); + logicalTableScan.getFlashback(), logicalTableScan.getFlashbackOperator(), null); LogicalView logicalView = LogicalView.create(primaryScan, primary); logicalView.setFromMergeIndex(true); LogicalFilter logicalFilter = LogicalFilter.create(logicalView, predicate); @@ -425,7 +425,7 @@ private RelNode buildIndexAccess(RelOptTable index, RelOptTable primary, RexNode // build index scan final LogicalTableScan indexTableScan = LogicalTableScan.create(logicalTableScan.getCluster(), index, logicalTableScan.getHints(), null, - logicalTableScan.getFlashback(), null); + logicalTableScan.getFlashback(), logicalTableScan.getFlashbackOperator(), null); final LogicalIndexScan indexScan = new LogicalIndexScan(index, indexTableScan, lockMode); // filter, the predicate must be cover by indexScan diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/rule/MysqlJoinRule.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/rule/MysqlJoinRule.java index c19a0fab2..54b924dba 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/rule/MysqlJoinRule.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/rule/MysqlJoinRule.java @@ -34,7 +34,6 @@ import org.apache.calcite.rel.core.JoinInfo; import org.apache.calcite.rel.core.JoinRelType; import org.apache.calcite.rel.logical.LogicalJoin; -import org.apache.calcite.rel.metadata.RelMetadataQuery; /** * @author dylan diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/rule/MysqlSemiJoinRule.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/rule/MysqlSemiJoinRule.java index d406c1dd9..fa7f70a16 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/rule/MysqlSemiJoinRule.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/rule/MysqlSemiJoinRule.java @@ -37,7 +37,6 @@ import org.apache.calcite.rel.core.JoinInfo; import org.apache.calcite.rel.core.JoinRelType; import org.apache.calcite.rel.logical.LogicalSemiJoin; -import org.apache.calcite.rel.metadata.RelMetadataQuery; import org.apache.calcite.sql.SqlKind; import java.util.Comparator; diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/rule/MysqlTableScanRule.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/rule/MysqlTableScanRule.java index 50d413788..adb434d54 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/rule/MysqlTableScanRule.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/rule/MysqlTableScanRule.java @@ -53,12 +53,14 @@ public void onMatch(RelOptRuleCall call) { mysqlTableScan = MysqlTableScan .create(logicalTableScan.getCluster(), logicalTableScan.getTable(), logicalFilter.getChildExps(), logicalTableScan.getHints(), logicalTableScan.getIndexNode(), logicalTableScan.getFlashback(), + logicalTableScan.getFlashbackOperator(), logicalTableScan.getPartitions()); } else { LogicalTableScan logicalTableScan = call.rel(0); mysqlTableScan = MysqlTableScan .create(logicalTableScan.getCluster(), logicalTableScan.getTable(), ImmutableList.of(), logicalTableScan.getHints(), logicalTableScan.getIndexNode(), logicalTableScan.getFlashback(), + logicalTableScan.getFlashbackOperator(), logicalTableScan.getPartitions()); } call.transformTo(mysqlTableScan); diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/rule/OptimizeLogicalInsertRule.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/rule/OptimizeLogicalInsertRule.java index 2d4f894b2..6ab4ef634 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/rule/OptimizeLogicalInsertRule.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/rule/OptimizeLogicalInsertRule.java @@ -158,6 +158,7 @@ public void onMatch(RelOptRuleCall call) { break; case LOGICAL: if (origin.isReplace()) { + origin.setUkContainsAllSkAndGsiContainsAllUk(executionStrategyRs.ukContainsAllSkAndGsiContainsAllUk); updated = handleReplace(origin, context, executionStrategyRs, ec); } else if (origin.isUpsert()) { updated = handleUpsert(origin, context, ec); @@ -446,6 +447,7 @@ private LogicalInsert handleReplace(LogicalInsert replace, PlannerContext contex final LogicalInsert newInsert = replaceExpAndSeqWithParam(replace, true, false, ec); + newInsert.setUkContainsAllSkAndGsiContainsAllUk(replace.isUkContainsAllSkAndGsiContainsAllUk()); // Writer for primary table InsertWriter primaryInsertWriter = null; ReplaceRelocateWriter primaryReplaceRelocateWriter = null; @@ -1332,7 +1334,7 @@ private LogicalInsert replaceExpAndSeqWithParam(LogicalInsert origin, boolean lo result.getGenColRexNodes(), result.getInputToEvalFieldsMapping(), result.getDefaultExprColMetas(), result.getDefaultExprColRexNodes(), result.getDefaultExprEvalFieldsMapping(), result.isPushablePrimaryKeyCheck(), result.isPushableForeignConstraintCheck(), - result.isModifyForeignKey()); + result.isModifyForeignKey(), result.isUkContainsAllSkAndGsiContainsAllUk()); /** * 2、update the index of RexDynamicParam in onDuplicatedUpdate list recursively * how to update them? firstly, find out the minimum RexDynamicPara and compute the offset diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/rule/OrcTableScanRule.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/rule/OrcTableScanRule.java index 92e50acf4..79209d471 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/rule/OrcTableScanRule.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/rule/OrcTableScanRule.java @@ -84,27 +84,31 @@ public void onMatch(RelOptRuleCall call) { orcTableScan = OrcTableScan.create(logicalTableScan.getCluster(), logicalTableScan.getTable(), new ArrayList<>(), logicalFilter.getChildExps(), getColumnRefProjects(logicalProject.getProjects()), logicalTableScan.getHints(), - logicalTableScan.getIndexNode(), logicalTableScan.getFlashback(), logicalTableScan.getPartitions()); + logicalTableScan.getIndexNode(), logicalTableScan.getFlashback(), + logicalTableScan.getFlashbackOperator(), logicalTableScan.getPartitions()); } else if (!withInProject && withFilter && !withOutProject) { LogicalFilter logicalFilter = call.rel(0); LogicalTableScan logicalTableScan = call.rel(1); orcTableScan = OrcTableScan.create(logicalTableScan.getCluster(), logicalTableScan.getTable(), new ArrayList<>(), logicalFilter.getChildExps(), new ArrayList<>(), logicalTableScan.getHints(), - logicalTableScan.getIndexNode(), logicalTableScan.getFlashback(), logicalTableScan.getPartitions()); + logicalTableScan.getIndexNode(), logicalTableScan.getFlashback(), + logicalTableScan.getFlashbackOperator(), logicalTableScan.getPartitions()); } else if (withInProject && !withFilter && !withOutProject) { LogicalProject logicalProject = call.rel(0); LogicalTableScan logicalTableScan = call.rel(1); orcTableScan = OrcTableScan.create(logicalTableScan.getCluster(), logicalTableScan.getTable(), new ArrayList<>(), new ArrayList<>(), getColumnRefProjects(logicalProject.getProjects()), logicalTableScan.getHints(), - logicalTableScan.getIndexNode(), logicalTableScan.getFlashback(), logicalTableScan.getPartitions()); + logicalTableScan.getIndexNode(), logicalTableScan.getFlashback(), + logicalTableScan.getFlashbackOperator(), logicalTableScan.getPartitions()); } else if (!withInProject && !withFilter && !withOutProject) { LogicalTableScan logicalTableScan = call.rel(0); orcTableScan = OrcTableScan.create(logicalTableScan.getCluster(), logicalTableScan.getTable(), new ArrayList<>(), new ArrayList<>(), new ArrayList<>(), - logicalTableScan.getHints(), logicalTableScan.getIndexNode(), logicalTableScan.getFlashback(), + logicalTableScan.getHints(), logicalTableScan.getIndexNode(), logicalTableScan.getFlashback(), + logicalTableScan.getFlashbackOperator(), logicalTableScan.getPartitions()); } else if (!withInProject && withFilter && withOutProject) { LogicalProject logicalProject = call.rel(0); @@ -113,7 +117,8 @@ public void onMatch(RelOptRuleCall call) { orcTableScan = OrcTableScan.create(logicalTableScan.getCluster(), logicalTableScan.getTable(), getColumnRefProjects(logicalProject.getProjects()), logicalFilter.getChildExps(), new ArrayList<>(), logicalTableScan.getHints(), - logicalTableScan.getIndexNode(), logicalTableScan.getFlashback(), logicalTableScan.getPartitions()); + logicalTableScan.getIndexNode(), logicalTableScan.getFlashback(), + logicalTableScan.getFlashbackOperator(), logicalTableScan.getPartitions()); } else if (withInProject && withFilter && withOutProject) { LogicalProject outProject = call.rel(0); LogicalFilter logicalFilter = call.rel(1); @@ -123,7 +128,8 @@ public void onMatch(RelOptRuleCall call) { logicalTableScan.getTable(), getColumnRefProjects(outProject.getProjects()), logicalFilter.getChildExps(), getColumnRefProjects(inProject.getProjects()), logicalTableScan.getHints(), - logicalTableScan.getIndexNode(), logicalTableScan.getFlashback(), logicalTableScan.getPartitions()); + logicalTableScan.getIndexNode(), logicalTableScan.getFlashback(), + logicalTableScan.getFlashbackOperator(), logicalTableScan.getPartitions()); } else { throw new AssertionError("impossible case"); } diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/rule/PushAggRule.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/rule/PushAggRule.java index 80e178560..be741ae8c 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/rule/PushAggRule.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/rule/PushAggRule.java @@ -57,10 +57,13 @@ import org.apache.calcite.util.ImmutableIntList; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Set; import static com.alibaba.polardbx.optimizer.core.planner.rule.util.CBOUtil.isGroupSets; import static com.alibaba.polardbx.optimizer.utils.PlannerUtils.buildNewGroupSet; +import static com.alibaba.polardbx.optimizer.utils.PlannerUtils.canSplitDistinct; /** * Created by lingce.ldm on 2016/11/2. @@ -279,7 +282,7 @@ protected void pushDownAggregate(RelOptRuleCall call, LogicalAggregate aggregate // 3. switch aggregate and push // 4. build new RelNode tree // 5. transform - PushDownAggCtx ctx = new PushDownAggCtx(tableScan, aggregate); + logger.debug("tableScan.aggIsPushed:" + tableScan.aggIsPushed()); TddlRuleManager or = @@ -298,9 +301,11 @@ protected void pushDownAggregate(RelOptRuleCall call, LogicalAggregate aggregate boolean fullMatch = false; int matchNum = 0; + Set shardIndex = new HashSet<>(); for (String shardName : shardColumns) { boolean match = false; int shardRef = tableScan.getRefByColumnName(tableScan.getShardingTable(), shardName, false, true); + shardIndex.add(shardRef); if (shardRef == -1) { break; } else { @@ -333,11 +338,7 @@ protected void pushDownAggregate(RelOptRuleCall call, LogicalAggregate aggregate RelUtils.changeRowType(aggregate.getInput(), tableScan.getRowType()); // 已经执行过下压 - if (ctx.getTableScan().aggIsPushed()) { - return; - } - - if (PlannerUtils.shouldNotPushDistinctAgg(aggregate, shardColumns)) { + if (tableScan.aggIsPushed()) { return; } @@ -346,6 +347,37 @@ protected void pushDownAggregate(RelOptRuleCall call, LogicalAggregate aggregate */ List aggCalls = aggregate.getAggCallList(); if (PlannerUtils.haveAggWithDistinct(aggCalls)) { + + PlannerContext plannerContext = PlannerContext.getPlannerContext(aggregate); + boolean enablePushDownDistinct = plannerContext.getParamManager().getBoolean( + ConnectionParams.ENABLE_PUSHDOWN_DISTINCT); + if (aggregate.groupSets.size() <= 1 && enablePushDownDistinct) { + boolean enableSplitDistinct = canSplitDistinct(shardIndex, aggregate); + PushDownAggCtx ctx = new PushDownAggCtx(tableScan, aggregate); + if (enableSplitDistinct) { + try { + for (int i = 0; i < ctx.getAggCallCount(); ++i) { + AggregateCall aggregateCall = ctx.getOneAggCall(i); + SqlAggFunction function = aggregateCall.getAggregation(); + if (aggregateCall.isDistinct()) { + buildNewAggWithDistinct(function, ctx, i, aggregateCall); + } else { + buildNewAgg(function, ctx, i, aggregateCall); + } + } + aggregate.getAggOptimizationContext().setAggPushed(true); + build(ctx, call, aggregate); + return; + } catch (Throwable t) { + //ignore + } + } + } + + if (PlannerUtils.shouldNotPushDistinctAgg(aggregate, shardColumns)) { + return; + } + if (PlannerUtils.isAllowedAggWithDistinct(aggregate, shardColumns)) { List groupSet = buildNewGroupSet(aggregate); ImmutableBitSet bitSet = ImmutableBitSet.of(groupSet); @@ -388,100 +420,134 @@ protected void pushDownAggregate(RelOptRuleCall call, LogicalAggregate aggregate } // main routine + PushDownAggCtx ctx = new PushDownAggCtx(tableScan, aggregate); for (int i = 0; i < ctx.getAggCallCount(); ++i) { AggregateCall aggCall = ctx.getOneAggCall(i); SqlAggFunction function = aggCall.getAggregation(); - switch (function.getKind()) { - // 将count下压,并将count修改为sum - case COUNT: - SqlSumEmptyIsZeroAggFunction sumAggFunction = new SqlSumEmptyIsZeroAggFunction(); - - // NOTE: Aggregate节点的输出总是groupSet列在前,对应agg列在后 - AggregateCall sumAggregateCall = ctx.create(sumAggFunction, false); - ctx.addNewAggCalls(i, sumAggregateCall); - ctx.addPushedAggCalls(i, aggCall); - ctx.addPushedToPartitionAggCalls(i, sumAggregateCall); - break; - /** - * 将AVG分解为sum和count下压至tableScan,并将当前Agg节点中的avg替换为两个sum: - * sum(sum()) 计算总和 SUM_ALL sum(count(*)) 计算总数 COUNT_ALL - * 最后为当前Agg节点添加一个Project父节点,计算 SUM_ALL/COUNT_ALL - */ - case AVG: - TddlTypeFactoryImpl tddlTypeFactory = new TddlTypeFactoryImpl(TddlRelDataTypeSystemImpl.getInstance()); - - SqlSumAggFunction pushedSumAggFunc = new SqlSumAggFunction(null); - AggregateCall pushedSumAggCall = ctx.create(pushedSumAggFunc, - aggCall.getArgList(), - aggCall.getType(), - "pushed_sum"); - - SqlCountAggFunction pushedCountFunc = new SqlCountAggFunction("COUNT"); - AggregateCall pushedCountAggCall = ctx.create(pushedCountFunc, - aggCall.getArgList(), - tddlTypeFactory.createSqlType(SqlTypeName.BIGINT), - "pushed_count"); - - // 下压至TableScan,并转换为nativeSQL的聚合函数,物理表级别聚合 - int addedAggIndex = ctx.getCurAvgCount() + ctx.getAggCallCount(); - ctx.addPushedAggCalls(i, pushedSumAggCall); - ctx.addPushedAggCalls(addedAggIndex, pushedCountAggCall); - - AggregateCall sumSumAggCall = pushedSumAggCall.copy(ImmutableIntList.of(i + ctx.getGroupSetLen()), - -1, - false, - "sum_pushed_sum"); - - AggregateCall sumCountAggCall = pushedSumAggCall - .copy(ImmutableIntList.of(addedAggIndex + ctx.getGroupSetLen()), -1, false, "sum_pushed_count"); - - // 保留在TableScan上层的聚合函数(全局聚合) - ctx.addNewAggCalls(i, sumSumAggCall); - ctx.addNewAggCalls(addedAggIndex, sumCountAggCall); - - // 下压至partition级别的聚合函数,partition级别的局部集合 - ctx.addPushedToPartitionAggCalls(i, sumSumAggCall); - ctx.addPushedToPartitionAggCalls(addedAggIndex, sumCountAggCall); - - ctx.addAvgIndex(ctx.getCurAvgCount(), i); - ctx.curAvgCountPlusOne(); - ctx.setNeedNewAgg(true); - break; - // 以下三种可以直接下压,当前Agg节点需要修改引用参数 - case MIN: - case MAX: - case SUM: - case BIT_OR: - case BIT_XOR: - case BIT_AND: - case __FIRST_VALUE: - AggregateCall newAggCall = aggCall.copy(ImmutableIntList.of(ctx.getGroupSetLen() + i), -1); - ctx.addNewAggCalls(i, newAggCall); - ctx.addPushedAggCalls(i, aggCall); - ctx.addPushedToPartitionAggCalls(i, aggCall); - break; - case GROUP_CONCAT: - GroupConcatAggregateCall groupConcatAggregateCall = (GroupConcatAggregateCall) aggCall; - if (groupConcatAggregateCall.getOrderList() != null - && groupConcatAggregateCall.getOrderList().size() != 0) { - return; - } - GroupConcatAggregateCall newGroupConcatAggregateCall = - groupConcatAggregateCall.copy(ImmutableIntList.of(ctx.getGroupSetLen() + i), - -1, groupConcatAggregateCall.getOrderList()); - ctx.addNewAggCalls(i, newGroupConcatAggregateCall); - ctx.addPushedAggCalls(i, groupConcatAggregateCall); - ctx.addPushedToPartitionAggCalls(i, groupConcatAggregateCall); - break; - default: - throw new UnsupportedOperationException( - "Unsupported agg function to push down:" + function.getKind().name()); + boolean ret = buildNewAgg(function, ctx, i, aggCall); + if (!ret) { + return; } } aggregate.getAggOptimizationContext().setAggPushed(true); build(ctx, call, aggregate); } + private void buildNewAggWithDistinct(SqlAggFunction function, PushDownAggCtx ctx, int i, AggregateCall aggCall) { + switch (function.getKind()) { + // 将count下压,并将count修改为sum + case COUNT: + SqlSumEmptyIsZeroAggFunction sumAggFunction = new SqlSumEmptyIsZeroAggFunction(); + + // NOTE: Aggregate节点的输出总是groupSet列在前,对应agg列在后 + AggregateCall sumAggregateCall = ctx.create(sumAggFunction, false); + ctx.addNewAggCalls(i, sumAggregateCall); + ctx.addPushedAggCalls(i, aggCall); + ctx.addPushedToPartitionAggCalls(i, sumAggregateCall); + break; + case SUM: + AggregateCall newAggCall = aggCall.copy( + ImmutableIntList.of(ctx.getGroupSetLen() + i), -1).withDistinct(false); + ctx.addNewAggCalls(i, newAggCall); + ctx.addPushedAggCalls(i, aggCall); + ctx.addPushedToPartitionAggCalls(i, aggCall); + break; + default: + throw new UnsupportedOperationException( + "Unsupported agg function to push down:" + function.getKind().name()); + } + } + + private boolean buildNewAgg(SqlAggFunction function, PushDownAggCtx ctx, int i, AggregateCall aggCall) { + switch (function.getKind()) { + // 将count下压,并将count修改为sum + case COUNT: + SqlSumEmptyIsZeroAggFunction sumAggFunction = new SqlSumEmptyIsZeroAggFunction(); + + // NOTE: Aggregate节点的输出总是groupSet列在前,对应agg列在后 + AggregateCall sumAggregateCall = ctx.create(sumAggFunction, false); + ctx.addNewAggCalls(i, sumAggregateCall); + ctx.addPushedAggCalls(i, aggCall); + ctx.addPushedToPartitionAggCalls(i, sumAggregateCall); + break; + /** + * 将AVG分解为sum和count下压至tableScan,并将当前Agg节点中的avg替换为两个sum: + * sum(sum()) 计算总和 SUM_ALL sum(count(*)) 计算总数 COUNT_ALL + * 最后为当前Agg节点添加一个Project父节点,计算 SUM_ALL/COUNT_ALL + */ + case AVG: + TddlTypeFactoryImpl tddlTypeFactory = new TddlTypeFactoryImpl(TddlRelDataTypeSystemImpl.getInstance()); + + SqlSumAggFunction pushedSumAggFunc = new SqlSumAggFunction(null); + AggregateCall pushedSumAggCall = ctx.create(pushedSumAggFunc, + aggCall.getArgList(), + aggCall.getType(), + "pushed_sum"); + + SqlCountAggFunction pushedCountFunc = new SqlCountAggFunction("COUNT"); + AggregateCall pushedCountAggCall = ctx.create(pushedCountFunc, + aggCall.getArgList(), + tddlTypeFactory.createSqlType(SqlTypeName.BIGINT), + "pushed_count"); + + // 下压至TableScan,并转换为nativeSQL的聚合函数,物理表级别聚合 + int addedAggIndex = ctx.getCurAvgCount() + ctx.getAggCallCount(); + ctx.addPushedAggCalls(i, pushedSumAggCall); + ctx.addPushedAggCalls(addedAggIndex, pushedCountAggCall); + + AggregateCall sumSumAggCall = pushedSumAggCall.copy(ImmutableIntList.of(i + ctx.getGroupSetLen()), + -1, + false, + "sum_pushed_sum"); + + AggregateCall sumCountAggCall = pushedSumAggCall + .copy(ImmutableIntList.of(addedAggIndex + ctx.getGroupSetLen()), -1, false, "sum_pushed_count"); + + // 保留在TableScan上层的聚合函数(全局聚合) + ctx.addNewAggCalls(i, sumSumAggCall); + ctx.addNewAggCalls(addedAggIndex, sumCountAggCall); + + // 下压至partition级别的聚合函数,partition级别的局部集合 + ctx.addPushedToPartitionAggCalls(i, sumSumAggCall); + ctx.addPushedToPartitionAggCalls(addedAggIndex, sumCountAggCall); + + ctx.addAvgIndex(ctx.getCurAvgCount(), i); + ctx.curAvgCountPlusOne(); + ctx.setNeedNewAgg(true); + break; + // 以下三种可以直接下压,当前Agg节点需要修改引用参数 + case MIN: + case MAX: + case SUM: + case BIT_OR: + case BIT_XOR: + case BIT_AND: + case __FIRST_VALUE: + AggregateCall newAggCall = aggCall.copy(ImmutableIntList.of(ctx.getGroupSetLen() + i), -1); + ctx.addNewAggCalls(i, newAggCall); + ctx.addPushedAggCalls(i, aggCall); + ctx.addPushedToPartitionAggCalls(i, aggCall); + break; + case GROUP_CONCAT: + GroupConcatAggregateCall groupConcatAggregateCall = (GroupConcatAggregateCall) aggCall; + if (groupConcatAggregateCall.getOrderList() != null + && groupConcatAggregateCall.getOrderList().size() != 0) { + return false; + } + GroupConcatAggregateCall newGroupConcatAggregateCall = + groupConcatAggregateCall.copy(ImmutableIntList.of(ctx.getGroupSetLen() + i), + -1, groupConcatAggregateCall.getOrderList()); + ctx.addNewAggCalls(i, newGroupConcatAggregateCall); + ctx.addPushedAggCalls(i, groupConcatAggregateCall); + ctx.addPushedToPartitionAggCalls(i, groupConcatAggregateCall); + break; + default: + throw new UnsupportedOperationException( + "Unsupported agg function to push down:" + function.getKind().name()); + } + return true; + } + private void build(PushDownAggCtx ctx, RelOptRuleCall call, LogicalAggregate aggregate) { logger.trace("Push down agg: start build"); diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/rule/mpp/RuleUtils.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/rule/mpp/RuleUtils.java index 56c773dcf..3086b587b 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/rule/mpp/RuleUtils.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/rule/mpp/RuleUtils.java @@ -152,10 +152,14 @@ public static RexNode getPartialFetch(Sort sort) { } else { long fetchVal = CBOUtil.getRexParam(sort.fetch, parameterContextMap); long offsetVal = CBOUtil.getRexParam(sort.offset, parameterContextMap); - /** - * fetch or offset be parameterized. - */ - fetch = builder.makeBigIntLiteral(offsetVal + fetchVal); + if (offsetVal == Long.MAX_VALUE || fetchVal == Long.MAX_VALUE) { + fetch = builder.makeBigIntLiteral(Long.MAX_VALUE); + } else { + /** + * fetch or offset be parameterized. + */ + fetch = builder.makeBigIntLiteral(offsetVal + fetchVal); + } } } return fetch; diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/rule/util/CBOUtil.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/rule/util/CBOUtil.java index c179b8df3..f4e20925c 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/rule/util/CBOUtil.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/rule/util/CBOUtil.java @@ -18,6 +18,8 @@ import com.alibaba.polardbx.common.Engine; import com.alibaba.polardbx.common.exception.TddlNestableRuntimeException; +import com.alibaba.polardbx.common.exception.TddlRuntimeException; +import com.alibaba.polardbx.common.exception.code.ErrorCode; import com.alibaba.polardbx.common.jdbc.ParameterContext; import com.alibaba.polardbx.common.properties.ConnectionParams; import com.alibaba.polardbx.common.type.MySQLStandardFieldType; @@ -149,6 +151,8 @@ import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; +import java.math.BigDecimal; +import java.math.BigInteger; import java.sql.Connection; import java.util.ArrayList; import java.util.Arrays; @@ -228,14 +232,23 @@ public static RexNode calPushDownFetch(Sort originalSort) { * fetch or offset be parameterized. */ fetch = builder.makeCall(SqlStdOperatorTable.PLUS, fetch, originalSort.offset); - } else { long fetchVal = getRexParam(originalSort.fetch, parameterContextMap); long offsetVal = getRexParam(originalSort.offset, parameterContextMap); - /** - * fetch or offset be parameterized. - */ - fetch = builder.makeBigIntLiteral(offsetVal + fetchVal); + if (offsetVal == Long.MAX_VALUE || fetchVal == Long.MAX_VALUE) { + fetch = builder.makeBigIntLiteral(Long.MAX_VALUE); + } else { + if (offsetVal < 0) { + throw new TddlRuntimeException(ErrorCode.ERR_OPTIMIZER, "get rex " + offsetVal); + } + if (fetchVal < 0) { + throw new TddlRuntimeException(ErrorCode.ERR_OPTIMIZER, "get rex " + fetchVal); + } + /** + * fetch or offset be parameterized. + */ + fetch = builder.makeBigIntLiteral(offsetVal + fetchVal); + } } } return fetch; @@ -654,14 +667,38 @@ public static boolean checkSortMergeConditionUnOrder(Join join, RexNode conditio return canSortMerge; } + /** + * get the long value of rex parameter, if big integer is bigger than Long.MAX_VALUE, return Long.MAX_VALUE + */ public static long getRexParam(RexNode rex, Map params) { long rs = 0L; if (rex instanceof RexDynamicParam) { if (params.size() == 0) { return rs; } - rs = - Long.valueOf(String.valueOf(params.get(((RexDynamicParam) rex).getIndex() + 1).getValue())).longValue(); + try { + return Long.valueOf(String.valueOf(params.get(((RexDynamicParam) rex).getIndex() + 1).getValue())); + } catch (NumberFormatException e) { + Object obj = params.get(((RexDynamicParam) rex).getIndex() + 1).getValue(); + if (obj instanceof BigInteger) { + if (((BigInteger) obj).signum() < 0) { + return -Long.MAX_VALUE; + } else { + return Long.MAX_VALUE; + } + } + if (obj instanceof BigDecimal) { + if (((BigDecimal) obj).scale() > 0) { + throw e; + } + if (((BigDecimal) obj).signum() < 0) { + return -Long.MAX_VALUE; + } else { + return Long.MAX_VALUE; + } + } + throw e; + } } else if (rex instanceof RexCall) { RexCall rexcall = (RexCall) rex; if (rexcall.isA(SqlKind.PLUS) && rexcall.operands.size() == 2) { @@ -669,6 +706,9 @@ public static long getRexParam(RexNode rex, Map param long r = getRexParam(rexcall.operands.get(1), params); if (l > -1 && r > -1) { rs = l + r; + if (rs < 0) { + rs = Long.MAX_VALUE; + } } } else { throw new IllegalArgumentException("Invalid RexNode " + rex); @@ -893,6 +933,7 @@ public RelNode visit(TableScan scan) { final LogicalTableScan columnarTableScan = LogicalTableScan.create(scan.getCluster(), this.indexTable, scan.getHints(), null, scan.getFlashback(), + scan.getFlashbackOperator(), null); return new OSSTableScan(columnarTableScan, lockMode); } @@ -1257,6 +1298,14 @@ public static boolean containUnpushableAgg(LogicalAggregate agg) { if (call.getAggregation().getKind() == SqlKind.FINAL_HYPER_LOGLOG) { return true; } + + if (call.getAggregation().getKind() == SqlKind.COUNT) { + if (!call.isDistinct()) { + if (call.getArgList().size() > 1) { + return true; + } + } + } } return false; } diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/rule/util/CheapestFractionalPlanReplacer.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/rule/util/CheapestFractionalPlanReplacer.java index c61e2cd7c..840a0b766 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/rule/util/CheapestFractionalPlanReplacer.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/rule/util/CheapestFractionalPlanReplacer.java @@ -121,7 +121,7 @@ private static List getFraction(RelNode rel, double fraction, RelMetadat Limit limit = ((Limit) rel); Map params = PlannerContext.getPlannerContext(rel).getParams().getCurrentParameter(); - long skipPlusFetch = 0; + double skipPlusFetch = 0; if (limit.fetch != null) { skipPlusFetch += CBOUtil.getRexParam(limit.fetch, params); diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/rule/util/ExecutionStrategy.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/rule/util/ExecutionStrategy.java index 876a2ff4a..b8884d1c7 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/rule/util/ExecutionStrategy.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/rule/util/ExecutionStrategy.java @@ -37,6 +37,7 @@ import org.apache.calcite.sql.SqlCreateTable; import org.apache.calcite.util.Pair; +import java.util.Collection; import java.util.EnumSet; import java.util.List; import java.util.Optional; @@ -134,6 +135,17 @@ public static ExecutionStrategyResult determineExecutionStrategy(LogicalInsert i final boolean ukContainsPartitionKey = GlobalIndexMeta.isEveryUkContainsAllPartitionKey(targetTable, schema, true, ec); + List autoIncColumns = primaryTableMeta.getAutoIncrementColumns(); + Collection pk = primaryTableMeta.getPrimaryKey(); + boolean skipCheckingPk = false; + if (pk.size() == 1 && autoIncColumns.size() == 1) { + skipCheckingPk = ec.getParamManager().getBoolean(ConnectionParams.DML_SKIP_DUPLICATE_CHECK_FOR_PK) + && StringUtils.equalsIgnoreCase(pk.iterator().next().getName(), autoIncColumns.get(0)); + } + final boolean ukContainsAllSkAndGsiContainsAllUk = skipCheckingPk ? + GlobalIndexMeta.isEveryUkContainsAllPartitionKey(targetTable, schema, false, ec) : + ukContainsPartitionKey; + // Statement detail final boolean canPushDuplicateCheck = withoutPkAndUk || (ukContainsPartitionKey && allGsiPublished @@ -203,6 +215,7 @@ public static ExecutionStrategyResult determineExecutionStrategy(LogicalInsert i result.doMultiWrite = doMultiWrite; result.pushablePrimaryKeyCheck = pushablePrimaryKeyCheck; result.pushableForeignConstraintCheck = pushableFkCheck; + result.ukContainsAllSkAndGsiContainsAllUk = ukContainsAllSkAndGsiContainsAllUk; // Pushdown dml on single/partition table without replica for performance if (!doMultiWrite && canPush) { diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/rule/util/ExecutionStrategyResult.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/rule/util/ExecutionStrategyResult.java index 577e8c924..08f145c2e 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/rule/util/ExecutionStrategyResult.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/planner/rule/util/ExecutionStrategyResult.java @@ -55,4 +55,6 @@ public class ExecutionStrategyResult { public boolean pushablePrimaryKeyCheck = true; public boolean pushableForeignConstraintCheck = true; + + public boolean ukContainsAllSkAndGsiContainsAllUk = false; } diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/BaseTableOperation.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/BaseTableOperation.java index 2bd8d0fc4..44433bd1b 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/BaseTableOperation.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/BaseTableOperation.java @@ -16,6 +16,11 @@ package com.alibaba.polardbx.optimizer.core.rel; +import com.alibaba.polardbx.common.jdbc.TableName; +import com.alibaba.polardbx.optimizer.context.ExecutionContext; +import com.alibaba.polardbx.optimizer.utils.CalciteUtils; +import com.googlecode.protobuf.format.JsonFormat; +import com.mysql.cj.x.protobuf.PolarxExecPlan; import com.alibaba.polardbx.common.jdbc.ParameterContext; import com.alibaba.polardbx.common.jdbc.TableName; import com.alibaba.polardbx.common.properties.ConnectionParams; diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/BuildFinalPlanVisitor.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/BuildFinalPlanVisitor.java index 4f168854b..d3a20cc2c 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/BuildFinalPlanVisitor.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/BuildFinalPlanVisitor.java @@ -28,7 +28,6 @@ import com.alibaba.polardbx.optimizer.config.table.ComplexTaskPlanUtils; import com.alibaba.polardbx.optimizer.config.table.GlobalIndexMeta; import com.alibaba.polardbx.optimizer.config.table.SchemaManager; -import com.alibaba.polardbx.optimizer.config.table.TableColumnMeta; import com.alibaba.polardbx.optimizer.config.table.TableColumnUtils; import com.alibaba.polardbx.optimizer.config.table.TableMeta; import com.alibaba.polardbx.optimizer.context.ExecutionContext; @@ -64,7 +63,6 @@ import org.apache.calcite.sql.fun.SqlStdOperatorTable; import org.apache.calcite.sql.parser.SqlParserPos; import org.apache.calcite.sql.type.SqlTypeFamily; -import org.apache.calcite.util.Pair; import java.security.MessageDigest; import java.util.ArrayList; @@ -114,7 +112,7 @@ public final RelNode visit(TableScan scan) { /** * 如果仅下发至单库单表,替换为 SingleTableOperation */ - if (tableNames.size() == 1 && !lv.hasDynamicPruning()) { + if (tableNames.size() == 1 && !lv.hasDynamicPruning() && !lv.unPushDown()) { newNode = buildSingleTableScan(oc, lv, or, false); } else if (tableNames.size() > 1) { // ignore diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/LogicalInsert.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/LogicalInsert.java index 7629ed04b..24dc29a9d 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/LogicalInsert.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/LogicalInsert.java @@ -166,6 +166,8 @@ public enum InsertSelectMode { protected List defaultExprColRexNodes = null; protected List defaultExprEvalFieldsMapping = null; + protected boolean ukContainsAllSkAndGsiContainsAllUk = false; + public LogicalInsert(TableModify modify) { this(modify.getCluster(), modify.getTraitSet(), @@ -218,7 +220,8 @@ public LogicalInsert(RelOptCluster cluster, RelTraitSet traitSet, RelOptTable ta List genColRexNodes, List inputToEvalFieldsMapping, List defaultExprColMetas, List defaultExprColRexNodes, List defaultExprEvalFieldsMapping, boolean pushablePrimaryKeyCheck, - boolean pushableForeignConstraintCheck, boolean modifyForeignKey) { + boolean pushableForeignConstraintCheck, boolean modifyForeignKey, + boolean ukContainsAllSkAndGsiContainsAllUk) { super(cluster, traitSet, table, catalogReader, input, operation, null, null, flattened, keywords, batchSize, appendedColumnIndex, hints, tableInfo); this.duplicateKeyUpdateList = duplicateKeyUpdateList; @@ -239,6 +242,7 @@ public LogicalInsert(RelOptCluster cluster, RelTraitSet traitSet, RelOptTable ta this.pushablePrimaryKeyCheck = pushablePrimaryKeyCheck; this.pushableForeignConstraintCheck = pushableForeignConstraintCheck; this.modifyForeignKey = modifyForeignKey; + this.ukContainsAllSkAndGsiContainsAllUk = ukContainsAllSkAndGsiContainsAllUk; } /** @@ -852,7 +856,8 @@ public RelNode copy(RelTraitSet traitSet, List inputs) { getDefaultExprEvalFieldsMapping(), isPushablePrimaryKeyCheck(), isPushableForeignConstraintCheck(), - isModifyForeignKey()); + isModifyForeignKey(), + isUkContainsAllSkAndGsiContainsAllUk()); newLogicalInsert.sqlTemplate = sqlTemplate; newLogicalInsert.literalColumnIndex = literalColumnIndex; newLogicalInsert.seqColumnIndex = seqColumnIndex; @@ -1221,4 +1226,12 @@ public boolean isModifyForeignKey() { public void setModifyForeignKey(boolean modifyForeignKeys) { this.modifyForeignKey = modifyForeignKeys; } + + public boolean isUkContainsAllSkAndGsiContainsAllUk() { + return ukContainsAllSkAndGsiContainsAllUk; + } + + public void setUkContainsAllSkAndGsiContainsAllUk(boolean ukContainsAllSkAndGsiContainsAllUk) { + this.ukContainsAllSkAndGsiContainsAllUk = ukContainsAllSkAndGsiContainsAllUk; + } } diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/LogicalInsertIgnore.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/LogicalInsertIgnore.java index f70544fa9..78770c649 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/LogicalInsertIgnore.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/LogicalInsertIgnore.java @@ -136,7 +136,8 @@ public LogicalInsertIgnore(LogicalInsert insert, List selectListForDupli insert.getDefaultExprEvalFieldsMapping(), insert.isPushablePrimaryKeyCheck(), insert.isPushableForeignConstraintCheck(), - insert.isModifyForeignKey() + insert.isModifyForeignKey(), + insert.isUkContainsAllSkAndGsiContainsAllUk() ); } @@ -154,12 +155,14 @@ public LogicalInsertIgnore(RelOptCluster cluster, RelTraitSet traitSet, RelOptTa List genColRexNodes, List inputToEvalFieldsMapping, List defaultExprColMetas, List defaultExprColRexNodes, List defaultExprEvalFieldsMapping, boolean pushablePrimaryKeyCheck, - boolean pushableForeignConstraintCheck, boolean modifyForeignKey) { + boolean pushableForeignConstraintCheck, boolean modifyForeignKey, + boolean ukContainsAllSkAndGsiContainsAllUk) { super(cluster, traitSet, table, catalogReader, input, operation, flattened, insertRowType, keywords, duplicateKeyUpdateList, batchSize, appendedColumnIndex, hints, tableInfo, primaryInsertWriter, gsiInsertWriters, autoIncParamIndex, logicalDynamicValues, unOpitimizedDuplicateKeyUpdateList, evalRowColMetas, genColRexNodes, inputToEvalFieldsMapping, defaultExprColMetas, defaultExprColRexNodes, - defaultExprEvalFieldsMapping, pushablePrimaryKeyCheck, pushableForeignConstraintCheck, modifyForeignKey); + defaultExprEvalFieldsMapping, pushablePrimaryKeyCheck, pushableForeignConstraintCheck, modifyForeignKey, + ukContainsAllSkAndGsiContainsAllUk); ExecutionContext ec = PlannerContext.getPlannerContext(cluster).getExecutionContext(); // Ignore DELETE_ONLY UK @@ -208,12 +211,13 @@ public LogicalInsertIgnore(RelOptCluster cluster, RelTraitSet traitSet, RelOptTa List inputToEvalFieldsMapping, List defaultExprColMetas, List defaultExprColRexNodes, List defaultExprEvalFieldsMapping, boolean pushablePrimaryKeyCheck, boolean pushableForeignConstraintCheck, - boolean modifyForeignKey) { + boolean modifyForeignKey, boolean ukContainsAllSkAndGsiContainsAllUk) { super(cluster, traitSet, table, catalogReader, input, operation, flattened, insertRowType, keywords, duplicateKeyUpdateList, batchSize, appendedColumnIndex, hints, tableInfo, primaryInsertWriter, gsiInsertWriters, autoIncParamIndex, logicalDynamicValues, unOpitimizedDuplicateKeyUpdateList, evalRowColMetas, genColRexNodes, inputToEvalFieldsMapping, defaultExprColMetas, defaultExprColRexNodes, - defaultExprEvalFieldsMapping, pushablePrimaryKeyCheck, pushableForeignConstraintCheck, modifyForeignKey); + defaultExprEvalFieldsMapping, pushablePrimaryKeyCheck, pushableForeignConstraintCheck, modifyForeignKey, + ukContainsAllSkAndGsiContainsAllUk); this.ukColumnNamesList = ukColumnNamesList; this.beforeUkMapping = beforeUkMapping; @@ -296,7 +300,8 @@ public RelNode copy(RelTraitSet traitSet, List inputs) { getDefaultExprEvalFieldsMapping(), isPushablePrimaryKeyCheck(), isPushableForeignConstraintCheck(), - isModifyForeignKey() + isModifyForeignKey(), + isUkContainsAllSkAndGsiContainsAllUk() ); return newInsertIgnore; } @@ -446,7 +451,8 @@ protected List getPhyPlanForDisplay(Execution insert.getUnOptimizedDuplicateKeyUpdateList(), insert.getEvalRowColMetas(), insert.getGenColRexNodes(), insert.getInputToEvalFieldsMapping(), insert.getDefaultExprColMetas(), insert.getDefaultExprColRexNodes(), insert.getDefaultExprEvalFieldsMapping(), insert.isPushablePrimaryKeyCheck(), - insert.isPushableForeignConstraintCheck(), insert.isModifyForeignKey()); + insert.isPushableForeignConstraintCheck(), insert.isModifyForeignKey(), + insert.isUkContainsAllSkAndGsiContainsAllUk()); final InsertWriter insertIgnoreWriter = new InsertWriter(primaryWriter.getTargetTable(), copied); return insertIgnoreWriter.getInput(executionContext); diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/LogicalModifyView.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/LogicalModifyView.java index 361a42108..246d7861c 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/LogicalModifyView.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/LogicalModifyView.java @@ -17,7 +17,9 @@ package com.alibaba.polardbx.optimizer.core.rel; import com.alibaba.polardbx.common.jdbc.ParameterContext; +import com.alibaba.polardbx.common.jdbc.Parameters; import com.alibaba.polardbx.optimizer.context.ExecutionContext; +import com.alibaba.polardbx.optimizer.utils.OptimizerUtils; import org.apache.calcite.plan.RelTraitSet; import org.apache.calcite.rel.RelNode; import org.apache.calcite.rel.core.TableModify; @@ -113,7 +115,14 @@ public List getInput(SqlNode sqlTemplate, ExecutionContext executionCon if (executionContext.getParams() != null) { executionContext.getParams().setParams(param); } - Map>> targetTables = getTargetTables(executionContext); + Map>> targetTables; + Map>, Parameters> pruningMap = + OptimizerUtils.pruningInValue(this, executionContext); + if (pruningMap == null) { + targetTables = getTargetTables(executionContext); + } else { + targetTables = transformToTargetTables(pruningMap); + } List logTbls = new ArrayList<>(); logTbls.addAll(this.tableNames); @@ -122,8 +131,9 @@ public List getInput(SqlNode sqlTemplate, ExecutionContext executionCon param, this, dbType, - logTbls, getSchemaName()); - relNodes.addAll(phyTableModifyBuilder.build(executionContext)); + logTbls, getSchemaName(), + pruningMap); + relNodes.addAll(phyTableModifyBuilder.build(executionContext)); } if (relNodes.size() > 1 && relNodes.get(0) instanceof PhyTableOperation) { return mergeGroupNode(relNodes, executionContext); diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/LogicalReplace.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/LogicalReplace.java index 4e5f45a91..7106e864c 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/LogicalReplace.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/LogicalReplace.java @@ -94,7 +94,8 @@ public LogicalReplace(LogicalInsert insert, insert.getDefaultExprEvalFieldsMapping(), insert.isPushablePrimaryKeyCheck(), insert.isPushableForeignConstraintCheck(), - insert.isModifyForeignKey() + insert.isModifyForeignKey(), + insert.isUkContainsAllSkAndGsiContainsAllUk() ); this.primaryRelocateWriter = primaryRelocateWriter; this.primaryInsertWriter = primaryInsertWriter; @@ -130,7 +131,7 @@ protected LogicalReplace(RelOptCluster cluster, RelTraitSet traitSet, RelOptTabl List inputToEvalFieldsMapping, List defaultExprColMetas, List defaultExprColRexNodes, List defaultExprEvalFieldsMapping, boolean pushablePrimaryKeyCheck, boolean pushableForeignConstraintCheck, - boolean modifyForeignKey) { + boolean modifyForeignKey, boolean ukContainsAllSkAndGsiContainsAllUk) { super(cluster, traitSet, table, catalogReader, input, operation, flattened, insertRowType, keywords, duplicateKeyUpdateList, batchSize, appendedColumnIndex, hints, tableInfo, primaryInsertWriter, gsiInsertWriters, autoIncParamIndex, ukColumnNamesList, beforeUkMapping, afterUkMapping, afterUgsiUkMapping, @@ -140,7 +141,8 @@ protected LogicalReplace(RelOptCluster cluster, RelTraitSet traitSet, RelOptTabl unOpitimizedDuplicateKeyUpdateList, pushDownInsertWriter, gsiInsertIgnoreWriter, primaryDeleteWriter, gsiDeleteWriters, usePartFieldChecker, columnMetaMap, ukContainGeneratedColumn, evalRowColMetas, genColRexNodes, inputToEvalFieldsMapping, defaultExprColMetas, defaultExprColRexNodes, - defaultExprEvalFieldsMapping, pushablePrimaryKeyCheck, pushableForeignConstraintCheck, modifyForeignKey); + defaultExprEvalFieldsMapping, pushablePrimaryKeyCheck, pushableForeignConstraintCheck, modifyForeignKey, + ukContainsAllSkAndGsiContainsAllUk); this.primaryRelocateWriter = primaryRelocateWriter; this.gsiRelocateWriters = gsiRelocateWriters; this.broadCastReplaceScaleOutWriter = broadCastReplaceScaleOutWriter; @@ -205,7 +207,8 @@ public RelNode copy(RelTraitSet traitSet, List inputs) { getDefaultExprEvalFieldsMapping(), isPushablePrimaryKeyCheck(), isPushableForeignConstraintCheck(), - isModifyForeignKey()); + isModifyForeignKey(), + isUkContainsAllSkAndGsiContainsAllUk()); return newLogicalReplace; } @@ -234,7 +237,7 @@ protected List getPhyPlanForDisplay(Execution insert.getUnOptimizedDuplicateKeyUpdateList(), insert.getEvalRowColMetas(), insert.getGenColRexNodes(), insert.getInputToEvalFieldsMapping(), insert.getDefaultExprColMetas(), insert.getDefaultExprColRexNodes(), insert.getDefaultExprEvalFieldsMapping(), insert.isPushablePrimaryKeyCheck(), - insert.isPushableForeignConstraintCheck(), isModifyForeignKey()); + insert.isPushableForeignConstraintCheck(), isModifyForeignKey(), isUkContainsAllSkAndGsiContainsAllUk()); final InsertWriter replaceWriter = new InsertWriter(primaryWriter.getTargetTable(), copied); return replaceWriter.getInput(executionContext); diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/LogicalUpsert.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/LogicalUpsert.java index 372bd1ce5..84314e2c4 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/LogicalUpsert.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/LogicalUpsert.java @@ -128,7 +128,7 @@ public LogicalUpsert(RelOptCluster cluster, RelTraitSet traitSet, RelOptTable ta List inputToEvalFieldsMapping, List defaultExprColMetas, List defaultExprColRexNodes, List defaultExprEvalFieldsMapping, boolean pushablePrimaryKeyCheck, boolean isPushableForeignConstraintCheck, - boolean modifyForeignKey) { + boolean modifyForeignKey, boolean ukContainsAllSkAndGsiContainsAllUk) { super(cluster, traitSet, table, catalogReader, input, operation, flattened, insertRowType, keywords, duplicateKeyUpdateList, batchSize, appendedColumnIndex, hints, tableInfo, primaryInsertWriter, gsiInsertWriters, autoIncParamIndex, ukColumnNamesList, beforeUkMapping, afterUkMapping, afterUgsiUkMapping, @@ -138,7 +138,8 @@ public LogicalUpsert(RelOptCluster cluster, RelTraitSet traitSet, RelOptTable ta unOptimizedDuplicateKeyUpdateList, pushDownInsertWriter, gsiInsertIgnoreWriters, primaryDeleteWriter, gsiDeleteWriters, usePartFieldChecker, columnMetaMap, ukContainGeneratedColumn, evalRowColMetas, genColRexNodes, inputToEvalFieldsMapping, defaultExprColMetas, defaultExprColRexNodes, - defaultExprEvalFieldsMapping, pushablePrimaryKeyCheck, isPushableForeignConstraintCheck, modifyForeignKey); + defaultExprEvalFieldsMapping, pushablePrimaryKeyCheck, isPushableForeignConstraintCheck, modifyForeignKey, + ukContainsAllSkAndGsiContainsAllUk); this.primaryRelocateWriter = primaryRelocateWriter; this.gsiRelocateWriters = gsiRelocateWriters; this.primaryUpsertWriter = primaryUpsertWriter; @@ -217,7 +218,8 @@ public RelNode copy(RelTraitSet traitSet, List inputs) { getDefaultExprEvalFieldsMapping(), isPushablePrimaryKeyCheck(), isPushableForeignConstraintCheck(), - isModifyForeignKey()); + isModifyForeignKey(), + isUkContainsAllSkAndGsiContainsAllUk()); return newLogicalUpsert; } @@ -274,7 +276,8 @@ protected List getPhyPlanForDisplay(Execution insert.getUnOptimizedDuplicateKeyUpdateList(), insert.getEvalRowColMetas(), insert.getGenColRexNodes(), insert.getInputToEvalFieldsMapping(), insert.getDefaultExprColMetas(), insert.getDefaultExprColRexNodes(), insert.getDefaultExprEvalFieldsMapping(), insert.isPushablePrimaryKeyCheck(), - insert.isPushableForeignConstraintCheck(), insert.isModifyForeignKey()); + insert.isPushableForeignConstraintCheck(), insert.isModifyForeignKey(), + insert.isUkContainsAllSkAndGsiContainsAllUk()); final InsertWriter upsertWriter = new InsertWriter(primaryWriter.getTargetTable(), copied); return upsertWriter.getInput(executionContext); diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/LogicalView.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/LogicalView.java index 56d89b978..3d931ace0 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/LogicalView.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/LogicalView.java @@ -22,9 +22,11 @@ import com.alibaba.polardbx.common.jdbc.BytesSql; import com.alibaba.polardbx.common.jdbc.ParameterContext; import com.alibaba.polardbx.common.jdbc.Parameters; +import com.alibaba.polardbx.common.jdbc.RawString; import com.alibaba.polardbx.common.model.sqljep.Comparative; import com.alibaba.polardbx.common.properties.ConnectionParams; import com.alibaba.polardbx.common.properties.ConnectionProperties; +import com.alibaba.polardbx.common.properties.DynamicConfig; import com.alibaba.polardbx.common.utils.GeneralUtil; import com.alibaba.polardbx.common.utils.TStringUtil; import com.alibaba.polardbx.common.utils.logger.Logger; @@ -160,6 +162,8 @@ import org.apache.calcite.util.ImmutableBitSet; import org.apache.calcite.util.Pair; import org.apache.calcite.util.Util; +import org.apache.commons.lang.StringUtils; +import org.jetbrains.annotations.NotNull; import java.io.IOException; import java.lang.reflect.InvocationTargetException; @@ -288,7 +292,7 @@ public LogicalView(RelInput relInput) { public LogicalView(TableScan scan, LockMode lockMode) { super(scan.getCluster(), scan.getTraitSet(), scan.getTable(), scan.getHints(), scan.getIndexNode(), - scan.getFlashback(), scan.getPartitions()); + scan.getFlashback(), scan.getFlashbackOperator(), scan.getPartitions()); this.dbType = DbType.MYSQL; this.tableNames.add(Util.last(table.getQualifiedName())); this.schemaName = table.getQualifiedName().size() == 2 ? table.getQualifiedName().get(0) : @@ -309,6 +313,7 @@ public LogicalView(LogicalView newLogicalView, RelTraitSet traitSet) { newLogicalView.getHints(), newLogicalView.getIndexNode(), newLogicalView.getFlashback(), + newLogicalView.getFlashbackOperator(), newLogicalView.getPartitions()); this.dbType = newLogicalView.getDbType(); this.tableNames.addAll(newLogicalView.getTableNames()); @@ -553,8 +558,14 @@ public List getInnerInput(SqlSelect sqlTemplate, UnionOptHelper helper, private List getInnerInput(SqlSelect sqlTemplate, UnionOptHelper helper, ExecutionContext executionContext, boolean forceIgnoreRF) { - - Map>> targetTables = getTargetTables(executionContext); + Map>> targetTables; + Map>, Parameters> pruningMap = + OptimizerUtils.pruningInValue(this, executionContext); + if (pruningMap == null) { + targetTables = getTargetTables(executionContext); + } else { + targetTables = transformToTargetTables(pruningMap); + } if (forceIgnoreRF) { sqlTemplate = (SqlSelect) sqlTemplate.accept(new SqlShuttle() { @Override @@ -574,7 +585,9 @@ public SqlNode visit(SqlCall call) { this, dbType, schemaName, - tableNames); + tableNames, + pruningMap + ); phyTableScanbuilder.setUnionOptHelper(helper); return phyTableScanbuilder.build(executionContext); } @@ -595,13 +608,35 @@ public Map>> buildTargetTables(ExecutionContext execut } } + protected Map>> transformToTargetTables( + Map>, Parameters> prunedParameters) { + Map>> targetTables = new HashMap<>(); + for (com.alibaba.polardbx.common.utils.Pair> pair : prunedParameters.keySet()) { + String group = pair.getKey(); + List tableNames = pair.getValue(); + List> tablesList = targetTables.get(group); + if (tablesList == null) { + tablesList = new ArrayList<>(); + targetTables.put(group, tablesList); + } + tablesList.add(tableNames); + } + return targetTables; + } + protected Map>> buildTargetTablesForPartitionTb(ExecutionContext executionContext) { - List resultList = PartitionPruner.prunePartitions(this, executionContext); - filterPrunedResultBySelectedPartitions(resultList); + final List resultList = getPartPrunedResults(executionContext); Map>> rs = PartitionPrunerUtils.buildTargetTablesByPartPrunedResults(resultList); return rs; } + @NotNull + public List getPartPrunedResults(ExecutionContext executionContext) { + List resultList = PartitionPruner.prunePartitions(this, executionContext); + filterPrunedResultBySelectedPartitions(resultList); + return resultList; + } + private void validateSelectedPartitions(boolean isNewPartDb, PartitionInfo partInfo, boolean isJoin) { if (this.partitions != null) { if (!isNewPartDb) { @@ -1269,8 +1304,9 @@ public RelWriter explainTermsForDisplay(RelWriter pw) { pw.item("XPlan", format.printToString(plan)); } } - - pw.itemIf("isDynamicParam", "true", pushDownOpt.couldDynamicPruning()); + String pruningInfo = pruningInfo(executionContext); + boolean couldPruning = pushDownOpt.couldDynamicPruning(); + pw.itemIf("pruningInfo", pruningInfo, couldPruning && StringUtils.isNotEmpty(pruningInfo)); // FIXME generate correct param for LogicalView // StringBuilder builder = new StringBuilder(); @@ -1292,6 +1328,66 @@ public RelWriter explainTermsForDisplay(RelWriter pw) { return pw; } + /** + * get pruning info, only for explain + */ + private String pruningInfo(ExecutionContext executionContext) { + Set indexes = pushDownOpt.getShardRelatedInTypeParamIndexes(); + if (indexes == null || indexes.size() == 0) { + return ""; + } + Map>, Parameters> map = + OptimizerUtils.pruningInValue(this, executionContext); + if (map == null || map.size() == 0) { + return ""; + } + int fullInFullSize = 0; + int pruningSize = 0; + Parameters allParameters = executionContext.getParams(); + + for (Integer index : indexes) { + if (allParameters.getCurrentParameter().containsKey(index) && + allParameters.getCurrentParameter().get(index).getValue() instanceof RawString) { + RawString rawString = (RawString) allParameters.getCurrentParameter().get(index).getValue(); + fullInFullSize += rawString.size(); + } + } + + StringBuilder detail = new StringBuilder(", pruning detail:"); + for (Map.Entry>, Parameters> entry : map.entrySet()) { + + detail.append(entry.getKey().toString()).append("->("); + Parameters parameters = entry.getValue(); + int pruningInSize = 0; + for (Integer index : indexes) { + if (parameters.getCurrentParameter().containsKey(index) && + parameters.getCurrentParameter().get(index).getValue() instanceof RawString) { + RawString rawString = (RawString) parameters.getCurrentParameter().get(index).getValue(); + pruningInSize += rawString.size(); + detail.append(rawString.display()).append(","); + } + } + if (detail.charAt(detail.length() - 1) == ',') { + detail.deleteCharAt(detail.length() - 1); + } + detail.append(");"); + pruningSize += fullInFullSize - pruningInSize; + } + if (pruningSize == 0) { + return ""; + } + + String info = "all size:" + fullInFullSize + "*" + map.values().size() + "(part), pruning size:" + pruningSize; + boolean outputDetail = executionContext.getParamManager().getBoolean(ConnectionParams.EXPLAIN_PRUNING_DETAIL); + if (outputDetail) { + if (detail.charAt(detail.length() - 1) == ';') { + detail.deleteCharAt(detail.length() - 1); + } + info = info + ", pruning time:" + executionContext.getPruningTime() + "ms" + detail; + } + return info; + } + public void setIsMGetEnabled(boolean isMGetEnabled) { this.isMGetEnabled = isMGetEnabled; } @@ -1570,7 +1666,7 @@ public int calShardUpperBound() { return PlannerUtils.guessShardCount(shardColumns, getRelShardInfo(executionContext), totalShardCount); } - protected int getTotalShardCount() { + public int getTotalShardCount() { TddlRuleManager ruleManager = PlannerContext.getPlannerContext(this).getExecutionContext().getSchemaManager(schemaName) .getTddlRuleManager(); @@ -2469,4 +2565,15 @@ public boolean isFromMergeIndex() { public void setFromMergeIndex(boolean fromMergeIndex) { this.fromMergeIndex = fromMergeIndex; } + + /** + * 一些特殊情况select 不可直接下推标识: + * 1、as of tso [expr], expr包含不确定性表达式, 需上层计算 + */ + public boolean unPushDown() { + if (getFlashback() != null) { + return !RexUtil.isDeterministic(getFlashback()); + } + return false; + } } diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/MysqlTableScan.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/MysqlTableScan.java index 9fe12ac98..c9246619b 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/MysqlTableScan.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/MysqlTableScan.java @@ -45,6 +45,7 @@ import org.apache.calcite.sql.SqlKind; import org.apache.calcite.sql.SqlNode; import org.apache.calcite.sql.SqlNodeList; +import org.apache.calcite.sql.SqlOperator; import java.util.ArrayList; import java.util.HashSet; @@ -69,15 +70,16 @@ public class MysqlTableScan extends TableScan implements MysqlRel { MysqlTableScan(RelOptCluster cluster, RelTraitSet traitSet, RelOptTable table, ImmutableList filters, SqlNodeList hints, SqlNode indexNode, - RexNode flashback, SqlNode partitions) { - super(cluster, traitSet, table, hints, indexNode, flashback, partitions); + RexNode flashback, SqlOperator flashbackOperator, SqlNode partitions) { + super(cluster, traitSet, table, hints, indexNode, flashback, flashbackOperator, partitions); this.filters = Preconditions.checkNotNull(filters); } public static MysqlTableScan create(RelOptCluster cluster, RelOptTable relOptTable, List filters, - SqlNodeList hints, SqlNode indexNode, RexNode flashback, SqlNode partitions) { + SqlNodeList hints, SqlNode indexNode, RexNode flashback, + SqlOperator flashbackOperator, SqlNode partitions) { return new MysqlTableScan(cluster, cluster.traitSetOf(Convention.NONE), relOptTable, - ImmutableList.copyOf(filters), hints, indexNode, flashback, partitions); + ImmutableList.copyOf(filters), hints, indexNode, flashback, flashbackOperator, partitions); } @Override @@ -141,10 +143,12 @@ public RelNode getNodeForMetaQuery() { synchronized (this) { if (filters.isEmpty()) { nodeForMetaQuery = - LogicalTableScan.create(getCluster(), table, hints, indexNode, flashback, partitions); + LogicalTableScan.create(getCluster(), table, hints, indexNode, flashback, flashbackOperator, + partitions); } else { LogicalTableScan logicalTableScan = - LogicalTableScan.create(getCluster(), table, hints, indexNode, flashback, partitions); + LogicalTableScan.create(getCluster(), table, hints, indexNode, flashback, flashbackOperator, + partitions); LogicalFilter logicalFilter = LogicalFilter.create(logicalTableScan, filters.get(0)); nodeForMetaQuery = logicalFilter; } diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/OrcTableScan.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/OrcTableScan.java index 519d4f7f2..54a632f0e 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/OrcTableScan.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/OrcTableScan.java @@ -44,6 +44,7 @@ import org.apache.calcite.rex.RexUtil; import org.apache.calcite.sql.SqlNode; import org.apache.calcite.sql.SqlNodeList; +import org.apache.calcite.sql.SqlOperator; import org.apache.calcite.sql.validate.SqlValidatorUtil; import java.util.ArrayList; @@ -79,8 +80,8 @@ public class OrcTableScan extends TableScan { OrcTableScan(RelOptCluster cluster, RelTraitSet traitSet, RelOptTable table, ImmutableList outProjects, ImmutableList filters, ImmutableList inProjects, SqlNodeList hints, SqlNode indexNode, RexNode flashback, - SqlNode partitions) { - super(cluster, traitSet, table, hints, indexNode, flashback, partitions); + SqlOperator flashbackOperator, SqlNode partitions) { + super(cluster, traitSet, table, hints, indexNode, flashback, flashbackOperator, partitions); this.outProjects = Preconditions.checkNotNull(outProjects); this.filters = Preconditions.checkNotNull(filters); this.inProjects = Preconditions.checkNotNull(inProjects); @@ -90,9 +91,11 @@ public class OrcTableScan extends TableScan { public static OrcTableScan create(RelOptCluster cluster, RelOptTable table, List outProjects, List filters, List inProjects, SqlNodeList hints, SqlNode indexNode, RexNode flashback, + SqlOperator flashbackOperator, SqlNode partitions) { return new OrcTableScan(cluster, cluster.traitSetOf(Convention.NONE), table, ImmutableList.copyOf(outProjects), - ImmutableList.copyOf(filters), ImmutableList.copyOf(inProjects), hints, indexNode, flashback, partitions); + ImmutableList.copyOf(filters), ImmutableList.copyOf(inProjects), hints, indexNode, flashback, + flashbackOperator, partitions); } public void setIndexAble(OSSTableScan.OSSIndexContext indexContext) { @@ -243,15 +246,18 @@ public RelNode getNodeForMetaQuery() { synchronized (this) { if (filters.isEmpty() && inProjects.isEmpty() && outProjects.isEmpty()) { nodeForMetaQuery = - LogicalTableScan.create(getCluster(), table, hints, indexNode, flashback, partitions); + LogicalTableScan.create(getCluster(), table, hints, indexNode, flashback, flashbackOperator, + partitions); } else if (!filters.isEmpty() && inProjects.isEmpty() && outProjects.isEmpty()) { LogicalTableScan logicalTableScan = - LogicalTableScan.create(getCluster(), table, hints, indexNode, flashback, partitions); + LogicalTableScan.create(getCluster(), table, hints, indexNode, flashback, flashbackOperator, + partitions); LogicalFilter logicalFilter = LogicalFilter.create(logicalTableScan, filters.get(0)); nodeForMetaQuery = logicalFilter; } else if (filters.isEmpty() && !inProjects.isEmpty() && outProjects.isEmpty()) { LogicalTableScan logicalTableScan = - LogicalTableScan.create(getCluster(), table, hints, indexNode, flashback, partitions); + LogicalTableScan.create(getCluster(), table, hints, indexNode, flashback, flashbackOperator, + partitions); LogicalProject inLogicalProject = LogicalProject.create(logicalTableScan, inProjects.stream() .map(idx -> new RexInputRef(idx, table.getRowType().getFieldList().get(idx).getType())) @@ -261,7 +267,8 @@ public RelNode getNodeForMetaQuery() { nodeForMetaQuery = inLogicalProject; } else if (!filters.isEmpty() && !inProjects.isEmpty() && outProjects.isEmpty()) { LogicalTableScan logicalTableScan = - LogicalTableScan.create(getCluster(), table, hints, indexNode, flashback, partitions); + LogicalTableScan.create(getCluster(), table, hints, indexNode, flashback, flashbackOperator, + partitions); LogicalProject inLogicalProject = LogicalProject.create(logicalTableScan, inProjects.stream() .map(idx -> new RexInputRef(idx, table.getRowType().getFieldList().get(idx).getType())) @@ -272,7 +279,8 @@ public RelNode getNodeForMetaQuery() { nodeForMetaQuery = logicalFilter; } else if (filters.isEmpty() && inProjects.isEmpty() && !outProjects.isEmpty()) { LogicalTableScan logicalTableScan = - LogicalTableScan.create(getCluster(), table, hints, indexNode, flashback, partitions); + LogicalTableScan.create(getCluster(), table, hints, indexNode, flashback, flashbackOperator, + partitions); LogicalProject inLogicalProject = LogicalProject.create(logicalTableScan, outProjects.stream() .map(idx -> new RexInputRef(idx, table.getRowType().getFieldList().get(idx).getType())) @@ -282,7 +290,8 @@ public RelNode getNodeForMetaQuery() { nodeForMetaQuery = inLogicalProject; } else if (!filters.isEmpty() && inProjects.isEmpty() && !outProjects.isEmpty()) { LogicalTableScan logicalTableScan = - LogicalTableScan.create(getCluster(), table, hints, indexNode, flashback, partitions); + LogicalTableScan.create(getCluster(), table, hints, indexNode, flashback, flashbackOperator, + partitions); LogicalFilter logicalFilter = LogicalFilter.create(logicalTableScan, filters.get(0)); LogicalProject outLogicalProject = LogicalProject.create(logicalFilter, outProjects.stream() @@ -293,7 +302,8 @@ public RelNode getNodeForMetaQuery() { nodeForMetaQuery = outLogicalProject; } else if (filters.isEmpty() && !inProjects.isEmpty() && !outProjects.isEmpty()) { LogicalTableScan logicalTableScan = - LogicalTableScan.create(getCluster(), table, hints, indexNode, flashback, partitions); + LogicalTableScan.create(getCluster(), table, hints, indexNode, flashback, flashbackOperator, + partitions); LogicalProject inLogicalProject = LogicalProject.create(logicalTableScan, inProjects.stream() .map(idx -> new RexInputRef(idx, table.getRowType().getFieldList().get(idx).getType())) @@ -309,7 +319,8 @@ public RelNode getNodeForMetaQuery() { nodeForMetaQuery = outLogicalProject; } else if (!filters.isEmpty() && !inProjects.isEmpty() && !outProjects.isEmpty()) { LogicalTableScan logicalTableScan = - LogicalTableScan.create(getCluster(), table, hints, indexNode, flashback, partitions); + LogicalTableScan.create(getCluster(), table, hints, indexNode, flashback, flashbackOperator, + partitions); LogicalProject inLogicalProject = LogicalProject.create(logicalTableScan, inProjects.stream() .map(idx -> new RexInputRef(idx, table.getRowType().getFieldList().get(idx).getType())) diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ParallelTableScan.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ParallelTableScan.java index 7784917a7..f1c1b8d1f 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ParallelTableScan.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ParallelTableScan.java @@ -23,6 +23,7 @@ import org.apache.calcite.rex.RexNode; import org.apache.calcite.sql.SqlNode; import org.apache.calcite.sql.SqlNodeList; +import org.apache.calcite.sql.SqlOperator; /** * ${DESCRIPTION} @@ -34,8 +35,8 @@ public class ParallelTableScan extends TableScan { private boolean paralleled; public ParallelTableScan(RelOptCluster cluster, RelTraitSet traitSet, RelOptTable table, SqlNodeList hints, - SqlNode indexNode, RexNode flashback, SqlNode partitions) { - super(cluster, traitSet, table, hints, indexNode, flashback, partitions); + SqlNode indexNode, RexNode flashback, SqlOperator flashbackOperator, SqlNode partitions) { + super(cluster, traitSet, table, hints, indexNode, flashback, flashbackOperator, partitions); } public boolean isParalleled() { @@ -49,7 +50,8 @@ public void setParalleled(boolean paralleled) { public static ParallelTableScan copy(TableScan tableScan, boolean paralleled) { final ParallelTableScan parallelTableScan = new ParallelTableScan(tableScan.getCluster(), tableScan.getTraitSet(), tableScan.getTable(), - tableScan.getHints(), tableScan.getIndexNode(), tableScan.getFlashback(), tableScan.getPartitions()); + tableScan.getHints(), tableScan.getIndexNode(), tableScan.getFlashback(), + tableScan.getFlashbackOperator(), tableScan.getPartitions()); parallelTableScan.setParalleled(paralleled); return parallelTableScan; } diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/PhyTableModifyViewBuilder.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/PhyTableModifyViewBuilder.java index 88ac494c8..db9fd4fdf 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/PhyTableModifyViewBuilder.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/PhyTableModifyViewBuilder.java @@ -18,9 +18,13 @@ import com.alibaba.polardbx.common.jdbc.BytesSql; import com.alibaba.polardbx.common.jdbc.ParameterContext; +import com.alibaba.polardbx.common.jdbc.Parameters; +import com.alibaba.polardbx.common.properties.DynamicConfig; +import com.alibaba.polardbx.common.utils.Pair; import com.alibaba.polardbx.optimizer.context.ExecutionContext; import com.alibaba.polardbx.optimizer.core.dialect.DbType; import com.alibaba.polardbx.optimizer.memory.MemoryAllocatorCtx; +import com.alibaba.polardbx.optimizer.utils.OptimizerUtils; import com.alibaba.polardbx.optimizer.utils.PlannerUtils; import com.alibaba.polardbx.optimizer.utils.RelUtils; import com.google.common.base.Preconditions; @@ -59,6 +63,20 @@ public class PhyTableModifyViewBuilder extends PhyOperationBuilderCommon { private final String schemaName; private boolean buildForPushDownOneShardOnly = false; + protected Map>, Parameters> prunedParameters; + + public PhyTableModifyViewBuilder(SqlNode sqlTemplate, + Map>> targetTables, + Map params, + RelNode parent, + DbType dbType, + List logicalTableNames, + String schemaName, + Map>, Parameters> prunedParameters) { + this(sqlTemplate, targetTables, params, parent, dbType, logicalTableNames, schemaName); + this.prunedParameters = prunedParameters; + } + public PhyTableModifyViewBuilder(SqlNode sqlTemplate, Map>> targetTables, Map params, @@ -90,6 +108,7 @@ public List build(ExecutionContext context) { long phyOpMemSize = shardPlanMemoryContext.phyOpMemSize; maOfPlanBuildingPool.allocateReservedMemory(phyOpMemSize * shardPlanMemoryContext.allShardCount); } + List phyTableScans = new ArrayList<>(); for (Map.Entry>> t : targetTables.entrySet()) { String group = t.getKey(); @@ -99,7 +118,8 @@ public List build(ExecutionContext context) { maOfPlanBuildingPool, phyTableScans, group, - subTableNames); + subTableNames, + prunedParameters != null ? prunedParameters.get(Pair.of(group, subTableNames)) : null); } } if (buildForPushDownOneShardOnly && phyTableScans.size() > 1) { @@ -113,14 +133,15 @@ public List build(ExecutionContext context) { /** * 构建 SQL 对应的参数信息 */ - private Map buildParams(List tableNames) { + private Map buildParams(List tableNames, Parameters pruned) { Preconditions.checkArgument(CollectionUtils.isNotEmpty(tableNames)); - return PlannerUtils.buildParam(tableNames, this.params, paramIndex); + return PlannerUtils.buildParam(tableNames, pruned == null ? this.params : pruned.getCurrentParameter(), + paramIndex); } private void buildOnePhyTableOperatorForModify(BytesSql sqlTemplateStr, MemoryAllocatorCtx maOfPlanBuildingPool, List phyTableScans, String group, - List subTableNames) { + List subTableNames, Parameters pruned) { // PhyTableOperation phyTableModify = // new PhyTableOperation(parent.getCluster(), parent.getTraitSet(), parent.getRowType(), null, parent); @@ -156,7 +177,7 @@ private void buildOnePhyTableOperatorForModify(BytesSql sqlTemplateStr, MemoryAl buildParams.setBytesSql(sqlTemplateStr); buildParams.setDbType(dbType); - buildParams.setDynamicParams(buildParams(subTableNames)); + buildParams.setDynamicParams(buildParams(subTableNames, pruned)); buildParams.setBatchParameters(null); PhyTableOperation phyTableModify = PhyTableOperationFactory.getInstance().buildPhyTblOpByParams(buildParams); diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/PhyTableOperation.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/PhyTableOperation.java index 97c959c4b..7ac8404be 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/PhyTableOperation.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/PhyTableOperation.java @@ -17,6 +17,7 @@ package com.alibaba.polardbx.optimizer.core.rel; import com.alibaba.polardbx.common.jdbc.ParameterContext; +import com.alibaba.polardbx.common.jdbc.TableName; import com.alibaba.polardbx.common.properties.ConnectionParams; import com.alibaba.polardbx.common.jdbc.TableName; import com.alibaba.polardbx.common.utils.Pair; diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/PhyTableScanBuilder.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/PhyTableScanBuilder.java index 05936c410..12b5b936e 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/PhyTableScanBuilder.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/PhyTableScanBuilder.java @@ -17,12 +17,12 @@ package com.alibaba.polardbx.optimizer.core.rel; import com.alibaba.polardbx.common.exception.TddlNestableRuntimeException; +import com.alibaba.polardbx.common.exception.TddlRuntimeException; +import com.alibaba.polardbx.common.exception.code.ErrorCode; import com.alibaba.polardbx.common.jdbc.BytesSql; import com.alibaba.polardbx.common.jdbc.ParameterContext; import com.alibaba.polardbx.common.jdbc.ParameterMethod; import com.alibaba.polardbx.common.jdbc.Parameters; -import com.alibaba.polardbx.common.jdbc.PruneRawString; -import com.alibaba.polardbx.common.jdbc.RawString; import com.alibaba.polardbx.common.jdbc.UnionBytesSql; import com.alibaba.polardbx.common.model.sqljep.Comparative; import com.alibaba.polardbx.common.properties.ConnectionParams; @@ -73,6 +73,8 @@ import org.apache.calcite.util.Util; import org.apache.commons.collections.CollectionUtils; +import java.math.BigDecimal; +import java.math.BigInteger; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; @@ -126,15 +128,18 @@ public class PhyTableScanBuilder extends PhyOperationBuilderCommon { protected ExecutionContext executionContext; protected boolean pushDowned = false; + protected Map>, Parameters> prunedParameters; + public PhyTableScanBuilder(SqlSelect sqlTemplate, Map>> targetTables, ExecutionContext executionContext, RelNode parent, DbType dbType, RelDataType rowType, String schemaName, List logicalTableNames, - boolean useCache, boolean pushDowned) { + boolean useCache, boolean pushDowned, + Map>, Parameters> prunedParameters) { this.executionContext = executionContext; this.targetTables = targetTables; - this.params = executionContext.getParams() == null ? null : - executionContext.getParams().getCurrentParameter(); + this.params = executionContext.getParams() == null ? null : executionContext.getParams().getCurrentParameter(); + this.prunedParameters = prunedParameters; this.parent = parent; this.dbType = dbType; this.rowType = rowType; @@ -145,7 +150,7 @@ public PhyTableScanBuilder(SqlSelect sqlTemplate, Map> (executionContext.getCorrelateFieldInViewMap() == null || executionContext .getCorrelateFieldInViewMap().isEmpty())) { this.sqlTemplate = sqlTemplate; - this.sqlTemplate.accept(new FetchPreprocessor(params, true)); + this.sqlTemplate.accept(new FetchPreprocessor(params, prunedParameters, true)); } else { this.sqlTemplate = (SqlSelect) sqlTemplate.accept( new ReplaceTableNameWithSomethingVisitor(executionContext.getCorrelateFieldInViewMap(), @@ -157,7 +162,7 @@ protected SqlNode buildSth(SqlNode sqlNode) { } } ); - this.sqlTemplate.accept(new FetchPreprocessor(params, false)); + this.sqlTemplate.accept(new FetchPreprocessor(params, prunedParameters, false)); } this.dynamicParamList = PlannerUtils.getDynamicParamInfoList(this.sqlTemplate); this.schemaName = schemaName; @@ -170,7 +175,15 @@ public PhyTableScanBuilder(SqlSelect sqlTemplate, Map> List logicalTableName) { this(sqlTemplate, targetTables, executionContext, parent, dbType, parent.getRowType(), schemaName, - logicalTableName, true, false); + logicalTableName, true, false, null); + } + + public PhyTableScanBuilder(SqlSelect sqlTemplate, Map>> targetTables, + ExecutionContext executionContext, RelNode parent, DbType dbType, String schemaName, + List logicalTableName, + Map>, Parameters> prunedParameters) { + this(sqlTemplate, targetTables, executionContext, parent, dbType, parent.getRowType(), schemaName, + logicalTableName, true, false, prunedParameters); } public PhyTableScanBuilder(SqlSelect sqlTemplate, Map>> targetTables, @@ -179,16 +192,19 @@ public PhyTableScanBuilder(SqlSelect sqlTemplate, Map> List logicalTableName, boolean useCache) { this(sqlTemplate, targetTables, executionContext, parent, dbType, parent.getRowType(), schemaName, - logicalTableName, useCache, false); + logicalTableName, useCache, false, null); } private static class FetchPreprocessor extends SqlShuttle { protected final Map params; + protected final Map>, Parameters> prunedParams; private final boolean usingCache; - private FetchPreprocessor(Map params, boolean usingCache) { + private FetchPreprocessor(Map params, + Map>, Parameters> prunedParams, boolean usingCache) { this.params = params; + this.prunedParams = prunedParams; this.usingCache = usingCache; } @@ -234,8 +250,15 @@ private void preProcessFetch(SqlSelect sqlTemplate) { // it is ok to set concurrently sqlTemplate.setComputedFetch(dynamicParam); // put the computed value to params in execution context - params.put(params.size() + 1, new ParameterContext( - OptimizerUtils.getParameterMethod(fetchVal), new Object[] {params.size() + 1, fetchVal})); + int index = params.size() + 1; + ParameterMethod method = OptimizerUtils.getParameterMethod(fetchVal); + params.put(index, new ParameterContext(method, new Object[] {index, fetchVal})); + if (prunedParams != null) { + for (Parameters parameter : prunedParams.values()) { + parameter.getCurrentParameter() + .put(index, new ParameterContext(method, new Object[] {index, fetchVal})); + } + } } else { /* When no cache, we can generate a Literal directly. @@ -259,7 +282,35 @@ private long computeFetchValue(SqlCall fetch) { return -1; } int index = ((SqlDynamicParam) op).getIndex(); - fetchVal = fetchVal + Long.valueOf(String.valueOf(params.get(index + 1).getValue())).longValue(); + long value = 0; + try { + value = Long.parseLong(String.valueOf(params.get(index + 1).getValue())); + } catch (NumberFormatException e) { + Object obj = params.get(index + 1).getValue(); + if (obj instanceof BigInteger) { + if (((BigInteger) obj).signum() < 0) { + throw new TddlRuntimeException(ErrorCode.ERR_OPTIMIZER, "get rex " + obj); + } else { + fetchVal = Long.MAX_VALUE; + continue; + } + } + if (obj instanceof BigDecimal) { + if (((BigDecimal) obj).scale() > 0) { + throw e; + } + if (((BigDecimal) obj).signum() < 0) { + throw new TddlRuntimeException(ErrorCode.ERR_OPTIMIZER, "get rex " + obj); + } else { + return Long.MAX_VALUE; + } + } + throw e; + } + if (value < 0) { + throw new TddlRuntimeException(ErrorCode.ERR_OPTIMIZER, "get rex " + value); + } + fetchVal += value; } else if (op instanceof SqlLiteral) { fetchVal = fetchVal + ((SqlLiteral) op).longValue(false); } else { @@ -267,6 +318,10 @@ private long computeFetchValue(SqlCall fetch) { throw new TddlNestableRuntimeException("Impossible be here."); } } + // over flow + if (fetchVal < 0) { + return Long.MAX_VALUE; + } return fetchVal; } } @@ -315,68 +370,6 @@ public List build(ExecutionContext executionContext) { supportGalaxyPrepare = finder.supportGalaxyPrepare(); } - if (parent instanceof LogicalView) { - LogicalView lv = (LogicalView) parent; - boolean isNeedPrune = isNeedPrune((LogicalView) parent, executionContext); - if (isNeedPrune) { - /** - * prune step 1: find all raw strings - */ - Map rawStrings = findAllRawStrings(executionContext); - - // step 2: prune args(rawstring) - int step = executionContext.getParamManager().getInt(ConnectionParams.IN_PRUNE_STEP_SIZE); - int maxPruneTime = executionContext.getParamManager().getInt(ConnectionParams.IN_PRUNE_MAX_TIME); - if (rawStrings.size() == 1) { - RawString r = rawStrings.values().iterator().next(); - step = r.size() / maxPruneTime > step ? r.size() / maxPruneTime : step; - int currentIndex = 0; - Map>, Parameters> pruneRawStringMap = Maps.newHashMap(); - while (currentIndex < r.size()) { - Parameters parameters = executionContext.getParams().clone(); - - // split rawstring ( args of in expr) - PruneRawString p = - new PruneRawString(r.getObjList(), PruneRawString.PRUNE_MODE.RANGE, currentIndex, - Math.min((currentIndex + step), r.size()), - null); - - // sub parameter - ParameterContext parameterContext = new ParameterContext(); - Object[] objs = new Object[2]; - objs[0] = rawStrings.keySet().iterator().next(); - objs[1] = p; - parameterContext.setArgs(objs); - parameterContext.setParameterMethod(ParameterMethod.setObject1); - parameters.getCurrentParameter().put(rawStrings.keySet().iterator().next(), parameterContext); - - // sub context - ExecutionContext e = executionContext.copy(parameters); - - // cal prune - Map>> groupAndTables = lv.buildTargetTables(e); - - for (Map.Entry>> entry1 : groupAndTables.entrySet()) { - String group = entry1.getKey(); - List> tables = entry1.getValue(); - for (List tbls : tables) { - Pair> pairs = new Pair<>(group, tbls); - if (pruneRawStringMap.get(pairs) == null) { - pruneRawStringMap.put(pairs, parameters); - } else { - pruneRawStringMap.put(pairs, - mergeRawStringParameters(parameters, pruneRawStringMap.get(pairs))); - } - } - } - currentIndex += step; - } - - executionContext.setPruneRawStringMap(pruneRawStringMap); - } - } - } - int totalCount = 0; for (Map.Entry>> t : targetTables.entrySet()) { totalCount += t.getValue().size(); @@ -514,38 +507,6 @@ private List buildPhyScanOp(CursorMeta cursorMeta, BytesSql bytesSql,XP return phyTableScans; } - private Parameters mergeRawStringParameters(Parameters parameterContexts, - Parameters parameterContexts1) { - Map map = parameterContexts.getCurrentParameter(); - for (Map.Entry entry : map.entrySet()) { - if (entry.getValue() != null && entry.getValue().getValue() instanceof PruneRawString) { - PruneRawString pruneRawString = (PruneRawString) entry.getValue().getValue(); - PruneRawString pruneRawString1 = - (PruneRawString) parameterContexts1.getCurrentParameter().get(entry.getKey()) - .getValue(); - pruneRawString.merge(pruneRawString1); - } - } - return new Parameters(map); - } - - private Map findAllRawStrings(ExecutionContext executionContext) { - Map allRawString = Maps.newHashMap(); - if (executionContext.getParams() != null) { - Map parameterContextMap = executionContext.getParams().getCurrentParameter(); - for (Map.Entry entry : parameterContextMap.entrySet()) { - if (entry.getValue() != null && entry.getValue().getValue() instanceof RawString) { - RawString rawString = (RawString) entry.getValue().getValue(); - int pruneSize = executionContext.getParamManager().getInt(ConnectionParams.IN_PRUNE_SIZE); - if (rawString.size() > pruneSize) { - allRawString.put(entry.getKey(), rawString); - } - } - } - } - return allRawString; - } - /** *

      * 兼容mysql5.6的时间精度,去掉毫秒.针对部分单表下推的sql在优化器层无法处理,只能在执行层做一次时间精度处理了
@@ -586,7 +547,7 @@ public List buildParams(String group, List> table
 
     public List buildSplitParams(String group, List tables, boolean useDelegate) {
         List results = new ArrayList<>();
-        Map currentParams = executionContext.getPruneParams(group, tables);
+        Map currentParams = getPruneParams(group, tables);
         int tableIndex = -1;
         for (DynamicParamInfo dynamicParamInfo : dynamicParamList) {
             if (dynamicParamInfo instanceof IndexedDynamicParamInfo) {
@@ -627,6 +588,17 @@ public List buildSplitParams(String group, List tables
         return results;
     }
 
+    public Map getPruneParams(String dbIndex, List tableNames) {
+        if (prunedParameters == null || prunedParameters.size() == 0) {
+            return null;
+        }
+        Pair> pair = new Pair<>(dbIndex, tableNames);
+        if (prunedParameters.get(pair) == null) {
+            return null;
+        }
+        return prunedParameters.get(pair).getCurrentParameter();
+    }
+
     public Map buildSplitParamMap(List tables) {
         Map results = new HashMap<>();
         int tableIndex = -1;
@@ -756,27 +728,4 @@ public String buildPhysicalOrderByClause() {
     public boolean containLimit() {
         return sqlTemplate.getFetch() != null || sqlTemplate.getOffset() != null;
     }
-
-    private boolean isNeedPrune(LogicalView logicalView, ExecutionContext executionContext) {
-        if (logicalView.hasDynamicPruning() && executionContext.getParams() != null) {
-            Map parameterContextMap = executionContext.getParams().getCurrentParameter();
-            boolean needPrune = false;
-            for (ParameterContext parameterContext : parameterContextMap.values()) {
-                if (parameterContext != null && parameterContext.getValue() instanceof RawString) {
-                    RawString rawString = (RawString) parameterContext.getValue();
-                    int pruneSize = executionContext.getParamManager().getInt(ConnectionParams.IN_PRUNE_SIZE);
-                    int pruneStep = executionContext.getParamManager().getInt(ConnectionParams.IN_PRUNE_STEP_SIZE);
-                    int maxPruneTime = executionContext.getParamManager().getInt(ConnectionParams.IN_PRUNE_MAX_TIME);
-                    if (rawString.size() > pruneStep * maxPruneTime) {
-                        return false;
-                    }
-                    if (rawString.size() > pruneSize) {
-                        needPrune = true;
-                    }
-                }
-            }
-            return needPrune;
-        }
-        return false;
-    }
 }
diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/PushDownOpt.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/PushDownOpt.java
index 172c55fd0..fc4ac18ad 100644
--- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/PushDownOpt.java
+++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/PushDownOpt.java
@@ -16,9 +16,11 @@
 
 package com.alibaba.polardbx.optimizer.core.rel;
 
+import com.alibaba.polardbx.common.jdbc.ParameterContext;
+import com.alibaba.polardbx.common.jdbc.ParameterMethod;
+import com.alibaba.polardbx.common.jdbc.Parameters;
+import com.alibaba.polardbx.common.jdbc.RawString;
 import com.alibaba.polardbx.common.model.sqljep.Comparative;
-import com.alibaba.polardbx.common.model.sqljep.ComparativeBaseList;
-import com.alibaba.polardbx.common.model.sqljep.DynamicComparative;
 import com.alibaba.polardbx.common.properties.ConnectionParams;
 import com.alibaba.polardbx.common.utils.TStringUtil;
 import com.alibaba.polardbx.common.utils.logger.Logger;
@@ -37,11 +39,13 @@
 import com.alibaba.polardbx.optimizer.partition.pruning.PartPruneStepType;
 import com.alibaba.polardbx.optimizer.partition.pruning.PartitionPruneStep;
 import com.alibaba.polardbx.optimizer.partition.pruning.PartitionPruneStepBuilder;
+import com.alibaba.polardbx.optimizer.partition.util.PartitionPruneStepVisitor;
 import com.alibaba.polardbx.optimizer.sharding.ConditionExtractor;
 import com.alibaba.polardbx.optimizer.sharding.result.ExtractionResult;
 import com.alibaba.polardbx.optimizer.sharding.result.RelShardInfo;
 import com.alibaba.polardbx.optimizer.utils.OptimizerUtils;
 import com.alibaba.polardbx.optimizer.utils.RelUtils;
+import com.alibaba.polardbx.optimizer.utils.RexUtils;
 import com.google.common.base.Preconditions;
 import com.google.common.collect.Maps;
 import org.apache.calcite.plan.Contexts;
@@ -81,6 +85,7 @@
 import org.apache.calcite.rel.type.RelDataTypeField;
 import org.apache.calcite.rel.type.RelDataTypeFieldImpl;
 import org.apache.calcite.rex.RexCall;
+import org.apache.calcite.rex.RexDynamicParam;
 import org.apache.calcite.rex.RexInputRef;
 import org.apache.calcite.rex.RexNode;
 import org.apache.calcite.rex.RexShuttle;
@@ -94,6 +99,7 @@
 
 import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
@@ -143,6 +149,8 @@ public class PushDownOpt {
      */
     private Map> allPartPruneSteps = Maps.newConcurrentMap();
 
+    private Set shardRelatedInTypeParamIndexes;
+
     public PushDownOpt(LogicalView tableScan, DbType dbType, ExecutionContext ec) {
         this.tableScan = tableScan;
         this.dbType = dbType;
@@ -208,6 +216,7 @@ public final PushDownOpt copy(LogicalView logicalView, RelNode rel) {
                     PlannerContext.getPlannerContext(rel).getExecutionContext());
             newPushDownOpt.updatePartRoutingPlanInfo(partRoutingPlanInfo);
         }
+        newPushDownOpt.shardRelatedInTypeParamIndexes = shardRelatedInTypeParamIndexes;
         return newPushDownOpt;
     }
 
@@ -228,7 +237,7 @@ private void builderScan(List qualifiedName, RelBuilder builder) {
         builder.scan(qualifiedName);
         pushedIndexHint(builder);
         if (this.tableScan.getFlashback() != null) {
-            builder.flashback(this.tableScan.getFlashback());
+            builder.flashback(this.tableScan.getFlashback(), this.tableScan.getFlashbackOperator());
         }
     }
 
@@ -524,13 +533,13 @@ private void updateComparative(Map> inferred,
 
     private void updatePartPruneSteps(Map allPartPruneStepMap) {
         List logTbNameList = tableScan.getTableNames();
+        ExecutionContext ec = PlannerContext.getPlannerContext(tableScan).getExecutionContext();
         List allPartPruneSteps = new ArrayList<>();
         for (int i = 0; i < logTbNameList.size(); i++) {
             String tbName = logTbNameList.get(i);
             PartitionPruneStep partStep = allPartPruneStepMap.get(tbName);
             if (partStep == null) {
                 // just add full table scan. for sql like column subquery
-                ExecutionContext ec = PlannerContext.getPlannerContext(tableScan).getExecutionContext();
                 partStep =
                     PartitionPruneStepBuilder.genFullScanAllPhyPartsStepInfoByDbNameAndTbName(tableScan.getSchemaName(),
                         tbName, ec);
@@ -542,6 +551,65 @@ private void updatePartPruneSteps(Map allPartPruneSt
         this.allPartPruneSteps.put(key, allPartPruneSteps);
     }
 
+    /**
+     * if any shard column is used in `IN` expr, then put it into shardRelatedInTypeParamIndexes
+     *
+     * @param ec context that contains in expr params
+     */
+    public void buildShardRelatedInTypeParamIndexes(ExecutionContext ec) {
+        // prune all raw string size to 1, avoiding part routing plan info cannot being built
+        // for too large params num of in expr.
+        if (ec.getParams() == null || ec.getParams().getCurrentParameter() == null) {
+            shardRelatedInTypeParamIndexes = new HashSet<>();
+            return;
+        }
+        Parameters tmp = ec.getParams().clone();
+        Map replace = Maps.newHashMap();
+        boolean hasRawString = false;
+        for (Map.Entry entry : tmp.getCurrentParameter().entrySet()) {
+            ParameterContext parameterContext = entry.getValue();
+            Object param = parameterContext.getValue();
+            if (param instanceof RawString) {
+                hasRawString = true;
+                RawString rawString = (RawString) param;
+                replace.put(entry.getKey(), new ParameterContext(ParameterMethod.setObject1,
+                    new Object[] {entry.getKey(), rawString.pruneStep(0)}));
+            }
+        }
+        if (!hasRawString) {
+            shardRelatedInTypeParamIndexes = new HashSet<>();
+            return;
+        }
+        tmp.getCurrentParameter().putAll(replace);
+        ExecutionContext tmpEc = ec.copy(tmp);
+
+        if (this.tableScan.isNewPartDbTbl()) {
+            PartRoutingPlanInfo partRoutingPlanInfo =
+                buildPartRoutingPlanInfo(removeSemiJoin(), tableScan.isNewPartDbTbl(), tmpEc);
+            PartitionPruneStepVisitor stepVisitor = new PartitionPruneStepVisitor();
+            for (PartitionPruneStep step : partRoutingPlanInfo.allPartPruningSteps.values()) {
+                stepVisitor.visit(step);
+            }
+            Set shardRelatedInTypeParamIndexes = stepVisitor.getDynamicIndexList();
+            shardRelatedInTypeParamIndexes.retainAll(OptimizerUtils.getInParamsIndexes(ec));
+            this.shardRelatedInTypeParamIndexes = shardRelatedInTypeParamIndexes;
+        } else {
+            RexUtils.RexDynamicParamFromComparativeVisitor visitor =
+                new RexUtils.RexDynamicParamFromComparativeVisitor();
+            Map colComparativeMap = this.getComparative(0);
+            for (Comparative comparative : colComparativeMap.values()) {
+                visitor.go(comparative);
+            }
+            List dynamicParams = visitor.getRexDynamicParams();
+            Set shardRelatedInTypeParamIndexes = new HashSet<>();
+            for (RexDynamicParam dynamicParam : dynamicParams) {
+                shardRelatedInTypeParamIndexes.add(dynamicParam.getIndex() + 1);
+            }
+            shardRelatedInTypeParamIndexes.retainAll(OptimizerUtils.getInParamsIndexes(ec));
+            this.shardRelatedInTypeParamIndexes = shardRelatedInTypeParamIndexes;
+        }
+    }
+
     private List buildNewPartPruneSteps(ExecutionContext ec) {
         List logTbNameList = tableScan.getTableNames();
         List allPartPruneSteps = new ArrayList<>();
@@ -613,28 +681,6 @@ public RelShardInfo getRelShardInfo(int tableIndex, ExecutionContext ec) {
             }
         }
 
-//        if (comparatives.size() > tableIndex) {
-//            relShardInfo.setUsePartTable(false);
-//            relShardInfo.setAllComps(comparatives.get(tableIndex));
-//            relShardInfo.setAllFullComps(fullComparatives.get(tableIndex));
-//        } else {
-//            relShardInfo.setUsePartTable(true);
-//            String key = OptimizerUtils.buildInexprKey(ec);
-//            if (this.allPartPruneSteps.containsKey(key) && this.allPartPruneSteps.get(key).size() > tableIndex) {
-//                if (this.allPartPruneSteps.get(key).get(tableIndex) != null) {
-//                    relShardInfo.setPartPruneStepInfo(this.allPartPruneSteps.get(key).get(tableIndex));
-//                } else {
-//                    relShardInfo.setPartPruneStepInfo(
-//                        PartitionPruneStepBuilder.genFullScanAllPhyPartsStepInfoByDbNameAndTbName(dbName, logTbName, ec));
-//                }
-//            } else {
-//                List list = buildNewPartPruneSteps(ec);
-//                if (list.size() > tableIndex) {
-//                    relShardInfo.setPartPruneStepInfo(list.get(tableIndex));
-//                }
-//            }
-//        }
-
         return relShardInfo;
     }
 
@@ -723,29 +769,8 @@ public void rebuildPartRoutingPlanInfo() {
     }
 
     public boolean couldDynamicPruning() {
-        if (allPartPruneSteps == null || allPartPruneSteps.size() == 0) {
-            if (comparatives != null && comparatives.size() > 0) {
-                for (Map l : comparatives) {
-                    for (Comparative c : l.values()) {
-                        if (isContainsDynamicComparative(c)) {
-                            return true;
-                        }
-                    }
-                }
-            }
-            if (fullComparatives != null && fullComparatives.size() > 0) {
-                for (Map l : fullComparatives) {
-                    for (Comparative c : l.values()) {
-                        if (isContainsDynamicComparative(c)) {
-                            return true;
-                        }
-                    }
-                }
-            }
-        } else if (allPartPruneSteps.size() >= 1 && !allPartPruneSteps.containsKey(OptimizerUtils.EMPTY_KEY)) {
-            return true;
-        }
-        return false;
+        getShardRelatedInTypeParamIndexes();
+        return shardRelatedInTypeParamIndexes != null && shardRelatedInTypeParamIndexes.size() > 0;
     }
 
     public boolean dynamicPruningContainsPartitionKey() {
@@ -766,23 +791,6 @@ public boolean dynamicPruningContainsPartitionKey() {
         return false;
     }
 
-    private boolean isContainsDynamicComparative(Comparative c) {
-        if (c == null) {
-            return false;
-        }
-        if (c instanceof DynamicComparative) {
-            return true;
-        }
-        if (c instanceof ComparativeBaseList) {
-            for (Comparative t : ((ComparativeBaseList) c).getList()) {
-                if (isContainsDynamicComparative(t)) {
-                    return true;
-                }
-            }
-        }
-        return false;
-    }
-
     /**
      * For MySQL CAST function only few type are permitted
      * 

@@ -910,15 +918,13 @@ protected PartRoutingPlanInfo buildPartRoutingPlanInfo(RelNode relPlan, boolean pruningPlanInfo.allComps = allComps; pruningPlanInfo.allFullComps = allFullComps; pruningPlanInfo.usePartitionTable = false; - return pruningPlanInfo; } else { ExtractionResult er = ConditionExtractor.predicateFrom(relPlan).extract(); Map allPartPruningSteps = er.allPartPruneSteps(ec); - pruningPlanInfo.usePartitionTable = true; pruningPlanInfo.allPartPruningSteps = allPartPruningSteps; - return pruningPlanInfo; } + return pruningPlanInfo; } protected void updatePartRoutingPlanInfo(PartRoutingPlanInfo newPruningPlanInfo) { @@ -927,6 +933,7 @@ protected void updatePartRoutingPlanInfo(PartRoutingPlanInfo newPruningPlanInfo) } else { updatePartPruneSteps(newPruningPlanInfo.allPartPruningSteps); } + ExecutionContext ec = PlannerContext.getPlannerContext(tableScan).getExecutionContext(); } class PlainRefCalculator extends RelShuttleImpl { @@ -1258,4 +1265,11 @@ public RelDataType buildCurRowType( return factory.createStructType(fieldList); } } + + public Set getShardRelatedInTypeParamIndexes() { + if (shardRelatedInTypeParamIndexes == null) { + buildShardRelatedInTypeParamIndexes(PlannerContext.getPlannerContext(tableScan).getExecutionContext()); + } + return shardRelatedInTypeParamIndexes; + } } diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ReplaceCallWithLiteralVisitor.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ReplaceCallWithLiteralVisitor.java index 3c9638b42..c54b02861 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ReplaceCallWithLiteralVisitor.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ReplaceCallWithLiteralVisitor.java @@ -29,6 +29,7 @@ import io.airlift.slice.Slice; import org.apache.calcite.rel.RelNode; import org.apache.calcite.rel.RelShuttleImpl; +import org.apache.calcite.rel.core.TableScan; import org.apache.calcite.rel.logical.LogicalFilter; import org.apache.calcite.rel.logical.LogicalProject; import org.apache.calcite.rel.type.RelDataTypeFactory; @@ -133,7 +134,8 @@ public LogicalInsert visit(LogicalInsert logicalInsert) { logicalInsert.getDefaultExprEvalFieldsMapping(), logicalInsert.isPushablePrimaryKeyCheck(), logicalInsert.isPushableForeignConstraintCheck(), - logicalInsert.isModifyForeignKey()); + logicalInsert.isModifyForeignKey(), + logicalInsert.isUkContainsAllSkAndGsiContainsAllUk()); return newInsert; } @@ -499,6 +501,24 @@ public RexNode visitDynamicParam(RexDynamicParam dynamicParam) { } } + @Override + public RelNode visit(TableScan scan) { + if (scan.getFlashback() == null) { + return super.visit(scan); + } + RexNode flashback = scan.getFlashback(); + + if (flashback instanceof RexCall) { + //遇到特殊函数,需要计算flashback + RexNode newNode = rexVisitor.mayCompute(flashback); + if (newNode != flashback) { + scan.setFlashback(newNode); + } + } + + return super.visit(scan); + } + public boolean isReplaceRexCallParam() { return replaceRexCallParam; } diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ReplaceTableNameWithSomethingVisitor.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ReplaceTableNameWithSomethingVisitor.java index 9e851e7c4..efbba8ad4 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ReplaceTableNameWithSomethingVisitor.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ReplaceTableNameWithSomethingVisitor.java @@ -20,7 +20,6 @@ import com.alibaba.polardbx.common.utils.TStringUtil; import com.alibaba.polardbx.common.utils.logger.Logger; import com.alibaba.polardbx.common.utils.logger.LoggerFactory; -import com.alibaba.polardbx.common.utils.version.InstanceVersion; import com.alibaba.polardbx.optimizer.config.table.GlobalIndexMeta; import com.alibaba.polardbx.optimizer.config.table.GlobalIndexMeta.IndexType; import com.alibaba.polardbx.optimizer.context.ExecutionContext; @@ -54,6 +53,7 @@ import org.apache.calcite.sql.SqlLiteral; import org.apache.calcite.sql.SqlNode; import org.apache.calcite.sql.SqlNodeList; +import org.apache.calcite.sql.SqlOperator; import org.apache.calcite.sql.SqlReplace; import org.apache.calcite.sql.SqlSelect; import org.apache.calcite.sql.SqlUpdate; @@ -456,7 +456,7 @@ protected SqlCall buildAsOfNode(SqlBasicCall from) { SqlIdentifier identifier = (SqlIdentifier) leftNode; this.tableNames.add(Util.last(identifier.names)); SqlNode asOfNode = new SqlBasicCall( - InstanceVersion.isMYSQL80() ? SqlStdOperatorTable.AS_OF_80 : SqlStdOperatorTable.AS_OF, + from.getOperator(), new SqlNode[] { buildSth(leftNode), rightNode, @@ -634,7 +634,9 @@ protected SqlNode buildAsNode(SqlNode oldNode) { SqlNode leftNode = call.getOperandList().get(0); SqlNode rightNode = null; boolean unwrapTablename = false; + SqlOperator asOfOperator = null; if (leftNode instanceof SqlCall && ((SqlCall) leftNode).getOperator().getKind() == SqlKind.AS_OF) { + asOfOperator = ((SqlCall) leftNode).getOperator(); rightNode = ((SqlCall) leftNode).getOperandList().get(1); leftNode = ((SqlCall) leftNode).getOperandList().get(0); unwrapTablename = true; @@ -661,7 +663,7 @@ protected SqlNode buildAsNode(SqlNode oldNode) { } if (unwrapTablename) { leftNode = new SqlBasicCall( - InstanceVersion.isMYSQL80() ? SqlStdOperatorTable.AS_OF_80 : SqlStdOperatorTable.AS_OF, + asOfOperator, new SqlNode[] { leftNode, rightNode, @@ -812,8 +814,10 @@ protected boolean addAliasForDelete(SqlNode delete) { protected SqlNode buildFlashback(SqlNode origin, SqlNode converted) { if (origin instanceof SqlIdentifier && ((SqlIdentifier) origin).flashback != null) { + SqlOperator flashbackOperator = ((SqlIdentifier) origin).getFlashbackOperator(); + return new SqlBasicCall( - InstanceVersion.isMYSQL80() ? SqlStdOperatorTable.AS_OF_80 : SqlStdOperatorTable.AS_OF, + flashbackOperator == null ? SqlStdOperatorTable.AS_OF : flashbackOperator, new SqlNode[] {converted, ((SqlIdentifier) origin).flashback}, SqlParserPos.ZERO); } return converted; diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ShardProcessor.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ShardProcessor.java index 105bb4326..bd9c7cf9f 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ShardProcessor.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ShardProcessor.java @@ -128,7 +128,7 @@ public static ShardProcessor build(LogicalView logicalView, String tableName, Ex } public static SimpleShardProcessor buildSimple(LogicalView logicalView, String tableName, ExecutionContext ec) { - TddlRuleManager or = OptimizerContext.getContext(logicalView.getSchemaName()).getRuleManager(); + TddlRuleManager or = ec.getSchemaManager().getTddlRuleManager(); TableRule tr = or.getTableRule(tableName); List shardColumns = tr.getShardColumns(); diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/SimpleShardProcessor.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/SimpleShardProcessor.java index 18fda641f..89cee42aa 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/SimpleShardProcessor.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/SimpleShardProcessor.java @@ -73,4 +73,19 @@ public Pair shard(Object value, ExecutionContext executionContex } return SimpleRuleProcessor.shardReturnPair(tableRule, value, encoding); } + + /** + * simple shard for simple rule table. return table index instead of group&phy_table name + */ + public int simpleShard(Object value, String encoding) { + if (isUnsignedType) { + BigInteger shardVal = (BigInteger) DataTypes.ULongType.convertJavaFrom(value); + if (shardVal != null && shardVal.compareTo(BigInteger.ZERO) < 0) { + value = 0; + } + } else if (dataType != null) { + value = dataType.convertJavaFrom(value); + } + return SimpleRuleProcessor.simpleShard(tableRule, value, encoding); + } } diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ToDrdsRelVisitor.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ToDrdsRelVisitor.java index 058560486..35ba3b35a 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ToDrdsRelVisitor.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ToDrdsRelVisitor.java @@ -98,8 +98,8 @@ import com.alibaba.polardbx.optimizer.core.rel.ddl.LogicalChangeConsensusLeader; import com.alibaba.polardbx.optimizer.core.rel.ddl.LogicalCheckCci; import com.alibaba.polardbx.optimizer.core.rel.ddl.LogicalCheckGsi; -import com.alibaba.polardbx.optimizer.core.rel.ddl.LogicalConvertAllSequences; import com.alibaba.polardbx.optimizer.core.rel.ddl.LogicalClearFileStorage; +import com.alibaba.polardbx.optimizer.core.rel.ddl.LogicalConvertAllSequences; import com.alibaba.polardbx.optimizer.core.rel.ddl.LogicalCreateDatabase; import com.alibaba.polardbx.optimizer.core.rel.ddl.LogicalCreateFileStorage; import com.alibaba.polardbx.optimizer.core.rel.ddl.LogicalCreateFunction; @@ -200,8 +200,8 @@ import org.apache.calcite.rel.ddl.AlterTableSetTableGroup; import org.apache.calcite.rel.ddl.AnalyzeTable; import org.apache.calcite.rel.ddl.ChangeConsensusRole; -import org.apache.calcite.rel.ddl.ConvertAllSequences; import org.apache.calcite.rel.ddl.ClearFileStorage; +import org.apache.calcite.rel.ddl.ConvertAllSequences; import org.apache.calcite.rel.ddl.CreateDatabase; import org.apache.calcite.rel.ddl.CreateFileStorage; import org.apache.calcite.rel.ddl.CreateFunction; @@ -255,6 +255,7 @@ import org.apache.calcite.rex.RexOver; import org.apache.calcite.rex.RexShuttle; import org.apache.calcite.rex.RexSubQuery; +import org.apache.calcite.rex.RexUtil; import org.apache.calcite.sql.SqlAddForeignKey; import org.apache.calcite.sql.SqlAlterTable; import org.apache.calcite.sql.SqlAlterTableAddPartition; @@ -447,6 +448,12 @@ public final RelNode visit(TableScan scan) { if (scanOrLookup instanceof LogicalView) { AccessPathRule.nomoralizeIndexNode((LogicalView) scanOrLookup); } + if (scan.getFlashback() != null) { + if (!RexUtil.isDeterministic(scan.getFlashback())) { + containUncertainValue = true; + existsNonPushDownFunc = true; + } + } return scanOrLookup; } @@ -528,7 +535,7 @@ private RelNode buildTableAccess(TableScan scan, String tableName, String schema final RelOptTable indexTable = catalog.getTableForMember(ImmutableList.of(schemaName, indexName)); final LogicalTableScan columnarTableScan = LogicalTableScan.create(scan.getCluster(), indexTable, scan.getHints(), null, - scan.getFlashback(), + scan.getFlashback(), scan.getFlashbackOperator(), null); this.withIndexHint = true; // remove force index for physical sql @@ -564,7 +571,7 @@ private RelNode buildTableAccess(TableScan scan, String tableName, String schema final LogicalTableScan indexTableScan = LogicalTableScan.create(scan.getCluster(), indexTable, scan.getHints(), null, scan.getFlashback(), - null); + scan.getFlashbackOperator(), null); final LogicalIndexScan index = new LogicalIndexScan(indexTable, indexTableScan, this.lockMode); this.withIndexHint = true; @@ -600,7 +607,7 @@ private RelNode buildTableAccess(TableScan scan, String tableName, String schema final RelOptTable indexTable = catalog.getTableForMember(indexTableNames); final LogicalTableScan indexTableScan = LogicalTableScan.create(scan.getCluster(), indexTable, scan.getHints(), null, - scan.getFlashback(), null); + scan.getFlashback(), scan.getFlashbackOperator(), null); final LogicalIndexScan index = new LogicalIndexScan(indexTable, indexTableScan, this.lockMode); this.withIndexHint = true; diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/Xplan/XPlanTableScan.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/Xplan/XPlanTableScan.java index 1d44c3729..d8d64968d 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/Xplan/XPlanTableScan.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/Xplan/XPlanTableScan.java @@ -52,7 +52,7 @@ public class XPlanTableScan extends TableScan { public XPlanTableScan(TableScan scan) { super(scan.getCluster(), scan.getTraitSet(), scan.getTable(), scan.getHints(), scan.getIndexNode(), - scan.getFlashback(), scan.getPartitions()); + scan.getFlashback(), scan.getFlashbackOperator(), scan.getPartitions()); this.originalRowType = scan.getRowType(); } @@ -78,7 +78,8 @@ public List getProjects() { public synchronized RelNode getNodeForMetaQuery() { if (nodeForMetaQuery == null) { - nodeForMetaQuery = LogicalTableScan.create(getCluster(), table, hints, indexNode, flashback, null); + nodeForMetaQuery = + LogicalTableScan.create(getCluster(), table, hints, indexNode, flashback, flashbackOperator, null); if (!getExprs.isEmpty()) { assert 1 == getExprs.size(); RexNode filter = null; diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTable.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTable.java index 4e526aaa0..e4da32289 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTable.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTable.java @@ -82,12 +82,9 @@ import org.apache.calcite.rex.RexNode; import org.apache.calcite.sql.SqlAddColumn; import org.apache.calcite.sql.SqlAddForeignKey; -import org.apache.calcite.sql.SqlAddFullTextIndex; import org.apache.calcite.sql.SqlAddIndex; import org.apache.calcite.sql.SqlAddPrimaryKey; -import org.apache.calcite.sql.SqlAddSpatialIndex; import org.apache.calcite.sql.SqlAddUniqueIndex; -import org.apache.calcite.sql.SqlAlter; import org.apache.calcite.sql.SqlAlterColumnDefaultVal; import org.apache.calcite.sql.SqlAlterSpecification; import org.apache.calcite.sql.SqlAlterTable; @@ -107,7 +104,6 @@ import org.apache.calcite.sql.SqlColumnDeclaration; import org.apache.calcite.sql.SqlColumnDeclaration.SpecialIndex; import org.apache.calcite.sql.SqlConvertToCharacterSet; -import org.apache.calcite.sql.SqlDrop; import org.apache.calcite.sql.SqlDropColumn; import org.apache.calcite.sql.SqlDropForeignKey; import org.apache.calcite.sql.SqlDropPrimaryKey; @@ -122,6 +118,7 @@ import org.apache.calcite.sql.SqlTableOptions; import org.apache.calcite.sql.parser.SqlParserPos; import org.apache.calcite.sql.type.SqlTypeUtil; +import org.apache.calcite.sql.validate.SqlValidatorImpl; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.ListUtils; import org.apache.commons.lang.StringUtils; @@ -132,9 +129,7 @@ import java.util.Collections; import java.util.HashMap; import java.util.HashSet; -import java.util.Iterator; import java.util.LinkedHashSet; -import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Optional; @@ -1052,7 +1047,7 @@ private void addLocalIndexOnClusteredTable(CreateIndexWithGsiPreparedData create // Local indexes on clustered GSIs. final GsiTableMetaBean gsiTableMeta = gsiMetaBean.getTableMeta().get(tableName); for (Map.Entry gsiEntry : gsiTableMeta.indexMap.entrySet()) { - if (gsiEntry.getValue().clusteredIndex) { + if (gsiEntry.getValue().clusteredIndex && !gsiEntry.getValue().columnarIndex) { final String clusteredTableName = gsiEntry.getKey(); createIndexWithGsiPreparedData .addLocalIndexPreparedData( @@ -1069,7 +1064,8 @@ private void dropLocalIndexOnClusteredTable(DropIndexWithGsiPreparedData dropInd // Drop generated local index on clustered. final GsiTableMetaBean gsiTableMeta = gsiMetaBean.getTableMeta().get(tableName); for (Map.Entry gsiEntry : gsiTableMeta.indexMap.entrySet()) { - if (gsiEntry.getValue().clusteredIndex && !gsiEntry.getKey().equalsIgnoreCase(indexTableName)) { + if (gsiEntry.getValue().clusteredIndex && !gsiEntry.getKey().equalsIgnoreCase(indexTableName) && + !gsiEntry.getValue().columnarIndex) { // Add all clustered index except which is dropping. final String clusteredTableName = gsiEntry.getKey(); TableMeta tableMeta = @@ -1111,7 +1107,7 @@ private void modifyColumnOnClusteredTable(AlterTableWithGsiPreparedData prepared } final GsiTableMetaBean gsiTableMeta = gsiMetaBean.getTableMeta().get(tableName); for (Map.Entry gsiEntry : gsiTableMeta.indexMap.entrySet()) { - if (gsiEntry.getValue().clusteredIndex) { + if (gsiEntry.getValue().clusteredIndex && !gsiEntry.getValue().columnarIndex) { preparedData.addAlterClusterIndex(prepareAlterTableData(gsiEntry.getKey())); } } @@ -1498,7 +1494,7 @@ private void alterClusterIndexData() { } } - private AlterTablePreparedData prepareAlterTableData(String tableName) { + public AlterTablePreparedData prepareAlterTableData(String tableName) { return prepareAlterTableData(this.schemaName, tableName, this.tableName, false); } @@ -2903,7 +2899,13 @@ public void validateColumnar() { return; } - for (SqlAlterSpecification alterItem : sqlAlterTable.getAlters()) { + // forbid multiple statements for now + if (getSqlAlterTable().getAlters().size() > 1) { + throw new TddlRuntimeException(ErrorCode.ERR_OPTIMIZER, + "Do not support multiple ALTER TABLE statements on table with clustered columnar index"); + } + + for (SqlAlterSpecification alterItem : getSqlAlterTable().getAlters()) { SqlKind alterType = alterItem.getKind(); switch (alterType) { case DROP_COLUMN: @@ -2950,6 +2952,8 @@ public void validateColumnar() { SqlModifyColumn modifyColumn = (SqlModifyColumn) alterItem; columnName = modifyColumn.getColName().getLastName(); + SqlValidatorImpl.validateUnsupportedTypeWithCciWhenModifyColumn(modifyColumn.getColDef()); + // columnar primary key column can never modified. if (tableColumns.isColumnarPrimaryKey(columnName)) { throw new TddlRuntimeException(ErrorCode.ERR_OPTIMIZER, @@ -2971,6 +2975,8 @@ public void validateColumnar() { SqlChangeColumn changeColumn = (SqlChangeColumn) alterItem; columnName = changeColumn.getOldName().getLastName(); + SqlValidatorImpl.validateUnsupportedTypeWithCciWhenModifyColumn(changeColumn.getColDef()); + // columnar primary key column can never modified. if (tableColumns.isColumnarPrimaryKey(columnName)) { throw new TddlRuntimeException(ErrorCode.ERR_OPTIMIZER, diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTableAddPartition.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTableAddPartition.java index 4c41c7931..05b5560b4 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTableAddPartition.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTableAddPartition.java @@ -108,7 +108,8 @@ public void preparedData(ExecutionContext ec) { preparedData.setOldPartitionNames(ImmutableList.of()); - preparedData.prepareInvisiblePartitionGroup(); + Boolean hasSubPartition = (partitionInfo.getPartitionBy().getSubPartitionBy() != null); + preparedData.prepareInvisiblePartitionGroup(hasSubPartition); preparedData.setSourceSql(((SqlAlterTable) alterTable.getSqlNode()).getSourceSql()); preparedData.setTableName(logicalTableName); diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTableExtractPartition.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTableExtractPartition.java index a0f0f8223..91309deb1 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTableExtractPartition.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTableExtractPartition.java @@ -136,7 +136,8 @@ public void preparedData(ExecutionContext executionContext) { preparedData.setTargetGroupDetailInfoExRecords(targetGroupDetailInfoExRecords); preparedData.setPartBoundExprInfo(alterTable.getAllRexExprInfo()); preparedData.setHotKeys(sqlAlterTableExtractPartitionByHotValue.getHotKeys()); - preparedData.prepareInvisiblePartitionGroup(); + Boolean hasSubPartition = partitionInfo.containSubPartitions(); + preparedData.prepareInvisiblePartitionGroup(hasSubPartition); preparedData.setTaskType(ComplexTaskMetaManager.ComplexTaskType.EXTRACT_PARTITION); preparedData.setSplitPoints(splitPoints); diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTableGroupAddPartition.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTableGroupAddPartition.java index e68f6cef3..ac9bae48a 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTableGroupAddPartition.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTableGroupAddPartition.java @@ -86,7 +86,8 @@ public void preparedData(ExecutionContext ec) { preparedData.setOldPartitionNames(ImmutableList.of()); - preparedData.prepareInvisiblePartitionGroup(); + Boolean hasSubPartition = partitionInfo.containSubPartitions(); + preparedData.prepareInvisiblePartitionGroup(hasSubPartition); preparedData.setTaskType(ComplexTaskMetaManager.ComplexTaskType.ADD_PARTITION); diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTableGroupExtractPartition.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTableGroupExtractPartition.java index b40251f87..fba397ecc 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTableGroupExtractPartition.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTableGroupExtractPartition.java @@ -90,7 +90,8 @@ public void preparedData(ExecutionContext executionContext) { preparedData.setTargetGroupDetailInfoExRecords(targetGroupDetailInfoExRecords); preparedData.setPartBoundExprInfo(partBoundExprInfo); preparedData.setHotKeys(sqlAlterTableGroupExtractPartition.getHotKeys()); - preparedData.prepareInvisiblePartitionGroup(); + Boolean hasSubPartition = false; + preparedData.prepareInvisiblePartitionGroup(hasSubPartition); preparedData.setTaskType(ComplexTaskMetaManager.ComplexTaskType.EXTRACT_PARTITION); preparedData.setSplitPoints(splitPoints); } diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTableGroupMergePartition.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTableGroupMergePartition.java index 74961fccd..342c2ce8d 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTableGroupMergePartition.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTableGroupMergePartition.java @@ -194,7 +194,7 @@ public void preparedData(ExecutionContext ec) { preparedData.setTableGroupName(tableGroupName); preparedData.setMergePartitions(mergePartitions); preparedData.setTargetGroupDetailInfoExRecords(targetGroupDetailInfoExRecords); - preparedData.prepareInvisiblePartitionGroup(); + preparedData.prepareInvisiblePartitionGroup(hasSubPartition); preparedData.setTaskType(ComplexTaskMetaManager.ComplexTaskType.MERGE_PARTITION); List newPartitionGroupNames = new ArrayList<>(); diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTableGroupModifyPartition.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTableGroupModifyPartition.java index 1546c2ada..91ca6292d 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTableGroupModifyPartition.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTableGroupModifyPartition.java @@ -243,7 +243,7 @@ public void preparedData(ExecutionContext ec) { * (including allocate the phy_db value for the new partition group ) */ preparedData.setDropVal(isDropVal); - preparedData.prepareInvisiblePartitionGroup(); + preparedData.prepareInvisiblePartitionGroup(preparedData.isUseSubPart()); /** * Collect all the partitionNames from the new partition groups diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTableGroupReorgPartition.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTableGroupReorgPartition.java index 094ca280a..338ffd449 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTableGroupReorgPartition.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTableGroupReorgPartition.java @@ -134,7 +134,7 @@ public void prepareData(ExecutionContext executionContext) { preparedData.setTaskType(ComplexTaskMetaManager.ComplexTaskType.REORGANIZE_PARTITION); - preparedData.prepareInvisiblePartitionGroup(); + preparedData.prepareInvisiblePartitionGroup(preparedData.isHasSubPartition()); List newPartGroupNames = new ArrayList<>(); preparedData.getInvisiblePartitionGroups().forEach(p -> newPartGroupNames.add(p.getPartition_name())); diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTableGroupSetPartitionsLocality.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTableGroupSetPartitionsLocality.java index 5ceb4a765..ec794693b 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTableGroupSetPartitionsLocality.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTableGroupSetPartitionsLocality.java @@ -31,8 +31,11 @@ import com.alibaba.polardbx.optimizer.locality.LocalityInfo; import com.alibaba.polardbx.optimizer.locality.LocalityInfoUtils; import com.alibaba.polardbx.optimizer.locality.LocalityManager; +import com.alibaba.polardbx.optimizer.partition.PartitionInfo; +import com.alibaba.polardbx.optimizer.partition.PartitionSpec; import org.apache.calcite.rel.core.DDL; import org.apache.calcite.rel.ddl.AlterTableGroupSetPartitionsLocality; +import org.apache.calcite.util.PrecedenceClimbingParser; import java.util.ArrayList; import java.util.List; @@ -67,6 +70,16 @@ public void preparedData() { TableGroupConfig tableGroupConfig = OptimizerContext.getContext(schemaName).getTableGroupInfoManager() .getTableGroupConfigByName(tableGroupName); + if (tableGroupConfig.getTables().size() == 0) { + throw new TddlRuntimeException(ErrorCode.ERR_INVALID_DDL_PARAMS, + String.format( + "invalid alter locality operation on partition! table group [%s] contains no table", + tableGroupName)); + } + String tableName = tableGroupConfig.getTables().get(0); + PartitionInfo partitionInfo = + OptimizerContext.getContext(schemaName).getPartitionInfoManager().getPartitionInfo(tableName); + int tgType = tableGroupConfig.getTableGroupRecord().tg_type; if (tgType == TableGroupRecord.TG_TYPE_BROADCAST_TBL_TG || tgType == TableGroupRecord.TG_TYPE_DEFAULT_SINGLE_TBL_TG @@ -77,8 +90,8 @@ public void preparedData() { tableGroupName)); } - PartitionGroupRecord partitionGroupRecord = tableGroupConfig.getPartitionGroupByName(partition); - String originalPartitionGroupLocality = partitionGroupRecord.getLocality(); + PartitionSpec partitionSpec = partitionInfo.getPartitionBy().getPartitionByPartName(partition); + String originalPartitionGroupLocality = partitionSpec.getLocality(); LocalityDesc originalPartitionGroupLocalityDesc = LocalityInfoUtils.parse(originalPartitionGroupLocality); Set targetDnList = targetLocalityDesc.getDnSet(); @@ -96,7 +109,7 @@ public void preparedData() { // String.format("invalid locality: '%s', conflict with locality of database [%s]: '%s'", // targetLocality, schemaName, localityDescOfDb)); // } - if (targetDnList.containsAll(orignialDnList) && !orignialDnList.isEmpty()) { + if (targetDnList.containsAll(orignialDnList) || targetDnList.isEmpty()) { withRebalance = false; } else { withRebalance = true; diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTableGroupSplitPartition.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTableGroupSplitPartition.java index a7a689dd2..e5f5a70db 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTableGroupSplitPartition.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTableGroupSplitPartition.java @@ -159,7 +159,8 @@ public void preparedData(ExecutionContext ec) { } preparedData.setLogicalParts(logicalParts); } - preparedData.prepareInvisiblePartitionGroup(); + Boolean hasSubPartition = (partitionInfo.getPartitionBy().getSubPartitionBy() != null); + preparedData.prepareInvisiblePartitionGroup(hasSubPartition); } public static LogicalAlterTableGroupSplitPartition create(DDL ddl) { diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTableGroupSplitPartitionByHotValue.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTableGroupSplitPartitionByHotValue.java index 4578e0f60..c2dd48e63 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTableGroupSplitPartitionByHotValue.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTableGroupSplitPartitionByHotValue.java @@ -259,7 +259,7 @@ public void preparedData(ExecutionContext executionContext) { preparedData.setInsertPos(insertPos); preparedData.setSplitPointInfos(splitPointInfos); preparedData.setTargetGroupDetailInfoExRecords(targetGroupDetailInfoExRecords); - preparedData.prepareInvisiblePartitionGroup(); + preparedData.prepareInvisiblePartitionGroup(hasSubPartition); preparedData.setTaskType(ComplexTaskMetaManager.ComplexTaskType.SPLIT_HOT_VALUE); preparedData.setHotKeyPartitionName(hotKeyPartNamePrefix); } diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTableMergePartition.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTableMergePartition.java index 9e3932f4a..49839bf74 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTableMergePartition.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTableMergePartition.java @@ -201,7 +201,7 @@ public void preparedData(ExecutionContext ec) { preparedData.setTableGroupName(tableGroupName); preparedData.setMergePartitions(mergePartitions); preparedData.setTargetGroupDetailInfoExRecords(targetGroupDetailInfoExRecords); - preparedData.prepareInvisiblePartitionGroup(); + preparedData.prepareInvisiblePartitionGroup(hasSubPartition); List newPartitionGroupNames = new ArrayList<>(); preparedData.getInvisiblePartitionGroups().forEach(o -> newPartitionGroupNames.add(o.getPartition_name())); diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTableModifyPartition.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTableModifyPartition.java index 778c0c1a4..2dbcbb04e 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTableModifyPartition.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTableModifyPartition.java @@ -190,7 +190,7 @@ public void preparedData(ExecutionContext ec) { * (including allocate the phy_db value for the new partition group ) */ preparedData.setDropVal(isDropVal); - preparedData.prepareInvisiblePartitionGroup(); + preparedData.prepareInvisiblePartitionGroup(preparedData.isUseSubPart()); /** * Collect all the partitionNames from the new partition groups diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTableMovePartition.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTableMovePartition.java index 4cbb0eb7f..36cc04a64 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTableMovePartition.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTableMovePartition.java @@ -220,7 +220,8 @@ protected void doPrepare(SqlAlterTableMovePartition sqlAlterTableMovePartition, preparedData.setTableGroupName(tableGroupName); preparedData.setTargetPartitionsLocation(targetPartitions); - preparedData.prepareInvisiblePartitionGroup(); + Boolean hasSubPartition = false; + preparedData.prepareInvisiblePartitionGroup(hasSubPartition); preparedData.setTaskType(ComplexTaskMetaManager.ComplexTaskType.MOVE_PARTITION); preparedData.setUsePhysicalBackfill(usePhysicalBackfill); } diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTableReorgPartition.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTableReorgPartition.java index 74ee2b838..f4494e427 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTableReorgPartition.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTableReorgPartition.java @@ -158,7 +158,7 @@ public void prepareData(ExecutionContext executionContext) { preparedData.setTaskType(ComplexTaskMetaManager.ComplexTaskType.REORGANIZE_PARTITION); - preparedData.prepareInvisiblePartitionGroup(); + preparedData.prepareInvisiblePartitionGroup(preparedData.isHasSubPartition()); List newPartGroupNames = new ArrayList<>(); preparedData.getInvisiblePartitionGroups().forEach(p -> newPartGroupNames.add(p.getPartition_name())); diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTableSplitPartition.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTableSplitPartition.java index 4393042c6..5bce52e4d 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTableSplitPartition.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTableSplitPartition.java @@ -34,6 +34,7 @@ import com.alibaba.polardbx.optimizer.config.table.ComplexTaskMetaManager; import com.alibaba.polardbx.optimizer.config.table.TableMeta; import com.alibaba.polardbx.optimizer.context.ExecutionContext; +import com.alibaba.polardbx.optimizer.core.function.calc.scalar.filter.In; import com.alibaba.polardbx.optimizer.core.planner.SqlConverter; import com.alibaba.polardbx.optimizer.core.rel.ddl.data.AlterTableGroupSplitPartitionPreparedData; import com.alibaba.polardbx.optimizer.core.rel.ddl.data.AlterTableSplitPartitionPreparedData; @@ -61,6 +62,7 @@ import org.apache.commons.lang3.StringUtils; import java.util.ArrayList; +import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; @@ -168,7 +170,8 @@ public void preparedData(ExecutionContext ec) { preparedData.setLogicalParts(logicalParts); } - preparedData.prepareInvisiblePartitionGroup(); + Boolean hasSubPartition = curPartitionInfo.getPartitionBy().getSubPartitionBy() != null; + preparedData.prepareInvisiblePartitionGroup(hasSubPartition); SqlConverter sqlConverter = SqlConverter.getInstance(curPartitionInfo.getTableSchema(), ec); PlannerContext plannerContext = PlannerContext.getPlannerContext(this.getCluster()); @@ -277,8 +280,18 @@ public void normalizeSqlSplitPartition(SqlAlterTableSplitPartition sqlAlterTable //split logical partition, will inherit the same subPartition definition as the source logical partition if (!subPartBy.isUseSubPartTemplate()) { for (PartitionSpec partitionSpec : partitionInfo.getPartitionBy().getPartitions()) { + int subPartCntOfTargetPart = partitionSpec.getSubPartitions().size(); if (partitionSpec.getName().equalsIgnoreCase(splitPartitionName)) { + + /** + * Fetch all the existed subPartNames of the target partitions to be split + * by ast of ddl provided user + */ Set existsNames = new TreeSet<>(String::compareToIgnoreCase); + /** + * hasSubPartDefinition is stat that all the target partitions to be split + * that contain subpartDefinitions + */ int hasSubPartDefinition = 0; for (SqlPartition sqlPartition : sqlAlterTableGroupSplitPartition.getNewPartitions()) { for (SqlNode subPart : GeneralUtil.emptyIfNull(sqlPartition.getSubPartitions())) { @@ -288,28 +301,118 @@ public void normalizeSqlSplitPartition(SqlAlterTableSplitPartition sqlAlterTable hasSubPartDefinition++; } } + if (hasSubPartDefinition < sqlAlterTableGroupSplitPartition.getNewPartitions().size()) { - int subPartitionSize = partitionSpec.getSubPartitions().size(); + /** + * Where hasSubPartDefinition < the size of all the parts of ddl ast to be split, + * that means some 1st-level part of ddl ast has no explicit subpart bound definitions + */ + + List newPartIdxListThatDefineSubPartBnds = new ArrayList<>(); + List newPartIdxLIstThatDefineOnlySubPartCnt = new ArrayList<>(); + List newPartIdxListThatHasNoAnySubPartDefines = new ArrayList<>(); + /** + * key: newSplitPartIdx + * Val: left:subPartCnt, right: hasBndDefinition + */ + Map> newPartIdx2SubPartCntMapping = new HashMap<>(); + Set newPartIdxSetOfCopySubPartDefineByTargetPart = new HashSet<>(); + List newSplitSqlPartAstList = + sqlAlterTableGroupSplitPartition.getNewPartitions(); + for (int i = 0; i < newSplitSqlPartAstList.size(); i++) { + SqlPartition partAst = newSplitSqlPartAstList.get(i); + int subPartCntVal = 0; + boolean hasBndDefinitions = false; + SqlNode subPartCntAst = partAst.getSubPartitionCount(); + List subPartBndList = partAst.getSubPartitions(); + if (subPartCntAst == null) { + if (subPartBndList == null || subPartBndList.isEmpty()) { + newPartIdxListThatHasNoAnySubPartDefines.add(i); + } else { + newPartIdxListThatDefineSubPartBnds.add(i); + subPartCntVal = subPartBndList.size(); + hasBndDefinitions = true; + } + } else { + if (subPartBndList == null || subPartBndList.isEmpty()) { + if (subPartCntAst instanceof SqlNumericLiteral) { + subPartCntVal = Integer.valueOf(subPartCntAst.toString()); + if (subPartCntVal > 0) { + newPartIdxLIstThatDefineOnlySubPartCnt.add(i); + } else { + newPartIdxListThatHasNoAnySubPartDefines.add(i); + } + } + } else { + newPartIdxListThatDefineSubPartBnds.add(i); + subPartCntVal = subPartBndList.size(); + hasBndDefinitions = true; + } + } + if (subPartCntVal == 0 && !hasBndDefinitions) { + /** + * all the part without any subpart defines + * use the same subpart definitions as target part + */ + subPartCntVal = subPartCntOfTargetPart; + newPartIdxSetOfCopySubPartDefineByTargetPart.add(i); + } + Pair val = new Pair<>(subPartCntVal, hasBndDefinitions); + newPartIdx2SubPartCntMapping.put(i, val); + } + + int newSubPartCntToGen = 0; + for (Map.Entry> item : newPartIdx2SubPartCntMapping.entrySet()) { + Integer spCnt = item.getValue().getKey(); + newSubPartCntToGen += spCnt; + } + TableGroupRecord tableGroupRecord = tableGroupConfig.getTableGroupRecord(); List partNames = new ArrayList<>(); List> subPartNamePairs = new ArrayList<>(); + /** + * Fetch all the current partNames and subPartNames from partInfo + */ PartitionInfoUtil.getPartitionName(partitionInfo, partNames, subPartNamePairs); List newSubPartitionNames = PartitionNameUtil.autoGeneratePartitionNames(tableGroupRecord, partNames, - subPartNamePairs, - (sqlAlterTableGroupSplitPartition.getNewPartitions().size() - hasSubPartDefinition) - * subPartitionSize, existsNames, true); + subPartNamePairs, newSubPartCntToGen, existsNames, true); + int j = 0; - for (SqlPartition sqlPartition : sqlAlterTableGroupSplitPartition.getNewPartitions()) { - if (GeneralUtil.isEmpty(sqlPartition.getSubPartitions())) { - for (int i = 0; i < subPartitionSize; i++) { - PartitionSpec subPartitionSpec = partitionSpec.getSubPartitions().get(i); + for (int i = 0; i < newSplitSqlPartAstList.size(); i++) { + SqlPartition sqlPartAst = newSplitSqlPartAstList.get(i); + List subPartListOfPartAst = sqlPartAst.getSubPartitions(); + String newSplitPartName = ((SqlIdentifier) sqlPartAst.getName()).getLastName(); + Pair subPartCntStatItem = newPartIdx2SubPartCntMapping.get(i); + Integer spCntVal = subPartCntStatItem.getKey(); + Boolean hasBnds = subPartCntStatItem.getValue(); + if (hasBnds) { + continue; + } + if (newPartIdxSetOfCopySubPartDefineByTargetPart.contains(i)) { + for (int k = 0; k < spCntVal; k++) { + String newGenSubPartName = newSubPartitionNames.get(j); + String realSubPartName = + PartitionNameUtil.autoBuildSubPartitionName(newSplitPartName, + newGenSubPartName); + PartitionSpec subPartitionSpec = partitionSpec.getSubPartitions().get(k); SqlSubPartition sqlSubPartition = new SqlSubPartition(SqlParserPos.ZERO, - new SqlIdentifier(newSubPartitionNames.get(j), SqlParserPos.ZERO), + new SqlIdentifier(realSubPartName, SqlParserPos.ZERO), (SqlPartitionValue) subPartitionSpec.getBoundSpec().getBoundRawValue() .clone(SqlParserPos.ZERO)); - sqlPartition.getSubPartitions().add(sqlSubPartition); + subPartListOfPartAst.add(sqlSubPartition); + j++; + } + } else { + for (int k = 0; k < spCntVal; k++) { + String newGenSubPartName = newSubPartitionNames.get(j); + String realSubPartName = + PartitionNameUtil.autoBuildSubPartitionName(newSplitPartName, + newGenSubPartName); + SqlSubPartition sqlSubPartition = new SqlSubPartition(SqlParserPos.ZERO, + new SqlIdentifier(realSubPartName, SqlParserPos.ZERO), null); + subPartListOfPartAst.add(sqlSubPartition); j++; } } @@ -323,9 +426,11 @@ public void normalizeSqlSplitPartition(SqlAlterTableSplitPartition sqlAlterTable for (SqlPartition sqlPartition : sqlAlterTableGroupSplitPartition.getNewPartitions()) { String logicalPartName = ((SqlIdentifier) (sqlPartition.getName())).getSimple(); for (PartitionSpec subPartitionSpec : partitionSpec.getSubPartitions()) { + String subPartTempName = subPartitionSpec.getTemplateName(); + String realSubPartName = + PartitionNameUtil.autoBuildSubPartitionName(logicalPartName, subPartTempName); SqlSubPartition sqlSubPartition = new SqlSubPartition(SqlParserPos.ZERO, - new SqlIdentifier(PartitionNameUtil.autoBuildSubPartitionName(logicalPartName, - subPartitionSpec.getTemplateName()), SqlParserPos.ZERO), + new SqlIdentifier(realSubPartName, SqlParserPos.ZERO), (SqlPartitionValue) subPartitionSpec.getBoundSpec().getBoundRawValue() .clone(SqlParserPos.ZERO)); sqlPartition.getSubPartitions().add(sqlSubPartition); diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTableSplitPartitionByHotValue.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTableSplitPartitionByHotValue.java index 9f1008910..11431f844 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTableSplitPartitionByHotValue.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalAlterTableSplitPartitionByHotValue.java @@ -251,7 +251,7 @@ public void preparedData(ExecutionContext executionContext) { preparedData.setTaskType(ComplexTaskMetaManager.ComplexTaskType.SPLIT_HOT_VALUE); preparedData.setHotKeyPartitionName(hotKeyPartNamePrefix); preparedData.setSplitPointInfos(splitPointInfos); - preparedData.prepareInvisiblePartitionGroup(); + preparedData.prepareInvisiblePartitionGroup(hasSubPartition); preparedData.setSourceSql(((SqlAlterTable) alterTable.getSqlNode()).getSourceSql()); preparedData.setTargetImplicitTableGroupName(sqlAlterTable.getTargetImplicitTableGroupName()); if (preparedData.needFindCandidateTableGroup()) { diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalCreateIndex.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalCreateIndex.java index c95967594..2aaa06645 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalCreateIndex.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalCreateIndex.java @@ -302,14 +302,14 @@ private void prepareIndexOnClusteredTable(boolean onGsi) { // Local indexes on clustered GSIs. final GsiTableMetaBean gsiTableMeta = gsiMetaBean.getTableMeta().get(tableName); for (Map.Entry gsiEntry : gsiTableMeta.indexMap.entrySet()) { - if (gsiEntry.getValue().clusteredIndex) { + if (gsiEntry.getValue().clusteredIndex && !gsiEntry.getValue().columnarIndex) { final String clusteredTableName = gsiEntry.getKey(); CreateLocalIndexPreparedData preparedData = prepareCreateLocalIndexData(clusteredTableName, indexName, true, onGsi); if (onGsi) { preparedData.setTableVersion(sm.getTable(clusteredTableName).getVersion()); } - createLocalIndexPreparedDataList.add(preparedData); + getCreateLocalIndexPreparedDataList().add(preparedData); } } } diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalCreateTable.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalCreateTable.java index f109b61e0..6538519c0 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalCreateTable.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalCreateTable.java @@ -689,7 +689,7 @@ private CreateGlobalIndexPreparedData prepareGsiData(String primaryTableName, St indexDef.isColumnar(), indexDef.getTableGroupName(), indexDef.isWithImplicitTableGroup(), - null, + indexDef.getEngineName(), // Do not set locality for cci indexDef.isColumnar() ? "" : createTablePreparedData.getLocality().toString(), ((CreateTable) relDdl).getPartBoundExprInfo(), diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalDropIndex.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalDropIndex.java index baf99ea0f..36dfa720c 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalDropIndex.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalDropIndex.java @@ -16,8 +16,8 @@ package com.alibaba.polardbx.optimizer.core.rel.ddl; -import com.alibaba.polardbx.common.utils.Pair; import com.alibaba.polardbx.common.TddlConstants; +import com.alibaba.polardbx.common.utils.Pair; import com.alibaba.polardbx.gms.metadb.table.IndexStatus; import com.alibaba.polardbx.optimizer.OptimizerContext; import com.alibaba.polardbx.optimizer.archive.CheckOSSArchiveUtil; @@ -30,6 +30,7 @@ import com.alibaba.polardbx.optimizer.core.rel.ddl.data.RenameLocalIndexPreparedData; import com.alibaba.polardbx.optimizer.core.rel.ddl.data.gsi.DropGlobalIndexPreparedData; import com.alibaba.polardbx.optimizer.core.rel.ddl.data.gsi.DropIndexWithGsiPreparedData; +import lombok.Getter; import org.apache.calcite.rel.ddl.DropIndex; import org.apache.calcite.sql.SqlDropIndex; @@ -44,6 +45,7 @@ import static com.alibaba.polardbx.optimizer.sql.sql2rel.TddlSqlToRelConverter.unwrapGsiName; import static org.apache.calcite.sql.SqlCreateTable.buildUnifyIndexName; +@Getter public class LogicalDropIndex extends LogicalTableOperation { private final SqlDropIndex sqlDropIndex; @@ -177,17 +179,18 @@ private void prepareStandaloneLocalIndexData() { * Drop local index on clustered-index table */ private void prepareIndexOnClusteredTable(boolean isDropGsi) { - if (gsiMetaBean.withGsi(tableName)) { - final GsiTableMetaBean gsiTableMeta = gsiMetaBean.getTableMeta().get(tableName); + if (getGsiMetaBean().withGsi(tableName)) { + final GsiTableMetaBean gsiTableMeta = getGsiMetaBean().getTableMeta().get(tableName); for (Map.Entry gsiEntry : gsiTableMeta.indexMap.entrySet()) { - if (gsiEntry.getValue().clusteredIndex && !gsiEntry.getKey().equalsIgnoreCase(indexName)) { + if (gsiEntry.getValue().clusteredIndex && !gsiEntry.getKey().equalsIgnoreCase(indexName) + && !gsiEntry.getValue().columnarIndex) { // Add all clustered index except which is dropping. final String clusteredTableName = gsiEntry.getKey(); TableMeta tableMeta = OptimizerContext.getContext(schemaName).getLatestSchemaManager().getTable(clusteredTableName); Set indexes = tableMeta.getLocalIndexNames(); - if (!dropIndexWithGsiPreparedData.hasLocalIndexOnClustered(clusteredTableName)) { + if (!getDropIndexWithGsiPreparedData().hasLocalIndexOnClustered(clusteredTableName)) { String targetLocalIndexName; if (isDropGsi) { targetLocalIndexName = AUTO_LOCAL_INDEX_PREFIX + unwrapGsiName(indexName); @@ -211,7 +214,7 @@ private void prepareIndexOnClusteredTable(boolean isDropGsi) { renameLocalIndexPreparedData.setNewIndexName(newName); continue; } - dropIndexWithGsiPreparedData.addLocalIndexPreparedData( + getDropIndexWithGsiPreparedData().addLocalIndexPreparedData( prepareDropLocalIndexData(clusteredTableName, indexName, true, isDropGsi)); } } diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalRefreshTopology.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalRefreshTopology.java index 5d70a6ceb..b53f9060c 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalRefreshTopology.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/LogicalRefreshTopology.java @@ -108,10 +108,11 @@ public void preparedData(ExecutionContext ec) { PartitionNameUtil.autoGeneratePartitionNames(tableGroupRecord, partNames, subPartNamePairs, groupDetailInfoExRecords.size(), new TreeSet<>(String::compareToIgnoreCase), false); + Boolean hasSubPartition = !GeneralUtil.isEmpty(subPartNamePairs); refreshDbTopologyPreparedData.setTableGroupName(tableGroupConfig.getTableGroupRecord().tg_name); refreshDbTopologyPreparedData.setNewPartitionNames(newPartitions); refreshDbTopologyPreparedData.setTargetGroupDetailInfoExRecords(groupDetailInfoExRecords); - refreshDbTopologyPreparedData.prepareInvisiblePartitionGroup(); + refreshDbTopologyPreparedData.prepareInvisiblePartitionGroup(hasSubPartition); } dbPreparedDataMap.put(dbEntry.getKey(), refreshDbTopologyPreparedData); } diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/data/AlterTableGroupBasePreparedData.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/data/AlterTableGroupBasePreparedData.java index b568de3db..4fccb1f4c 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/data/AlterTableGroupBasePreparedData.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/data/AlterTableGroupBasePreparedData.java @@ -172,7 +172,7 @@ public void setUsePhysicalBackfill(boolean usePhysicalBackfill) { throw new NotSupportException("not support physical backfill for the operation"); } - public void prepareInvisiblePartitionGroup() { + public void prepareInvisiblePartitionGroup(Boolean withSubPartition) { TableGroupConfig tableGroupConfig = OptimizerContext.getContext(getSchemaName()).getTableGroupInfoManager() .getTableGroupConfigByName(tableGroupName); int i = 0; @@ -206,10 +206,18 @@ public void prepareInvisiblePartitionGroup() { i++; } else if (!localityDesc.holdEmptyLocality()) { partitionGroupRecord.phy_db = LocalityInfoUtils.allocatePhyDb(getSchemaName(), localityDesc); - partitionGroupRecord.locality = localityDesc.toString(); + if (!withSubPartition) { + partitionGroupRecord.locality = localityDesc.toString(); + } else { + partitionGroupRecord.locality = ""; + } } else { partitionGroupRecord.phy_db = LocalityInfoUtils.allocatePhyDb(getSchemaName(), defaultLocalityDesc); - partitionGroupRecord.locality = defaultLocalityDesc.toString(); + if (!withSubPartition) { + partitionGroupRecord.locality = defaultLocalityDesc.toString(); + } else { + partitionGroupRecord.locality = ""; + } } partitionGroupRecord.pax_group_id = 0L; diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/data/AlterTableGroupMergePartitionPreparedData.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/data/AlterTableGroupMergePartitionPreparedData.java index 45c358fa0..c780ace5c 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/data/AlterTableGroupMergePartitionPreparedData.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/data/AlterTableGroupMergePartitionPreparedData.java @@ -142,7 +142,7 @@ public void setNewPartitionGroupNames(List newPartitionGroupNames) { } @Override - public void prepareInvisiblePartitionGroup() { + public void prepareInvisiblePartitionGroup(Boolean isSubPartition) { if (!mergeSubPartition && hasSubPartition) { List inVisiblePartitionGroups = new ArrayList<>(); TableGroupConfig tableGroupConfig = OptimizerContext.getContext(getSchemaName()).getTableGroupInfoManager() diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/data/AlterTableGroupModifyPartitionPreparedData.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/data/AlterTableGroupModifyPartitionPreparedData.java index 2b60c792f..e9d7133c4 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/data/AlterTableGroupModifyPartitionPreparedData.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/data/AlterTableGroupModifyPartitionPreparedData.java @@ -72,7 +72,7 @@ public AlterTableGroupModifyPartitionPreparedData() { } @Override - public void prepareInvisiblePartitionGroup() { + public void prepareInvisiblePartitionGroup(Boolean hasSubPartition) { List inVisiblePartitionGroups = new ArrayList<>(); TableGroupConfig tableGroupConfig = OptimizerContext.getContext(getSchemaName()).getTableGroupInfoManager() .getTableGroupConfigByName(getTableGroupName()); diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/data/AlterTableGroupMovePartitionPreparedData.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/data/AlterTableGroupMovePartitionPreparedData.java index f6ca7fef5..8285add32 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/data/AlterTableGroupMovePartitionPreparedData.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/data/AlterTableGroupMovePartitionPreparedData.java @@ -71,7 +71,7 @@ public void setUsePhysicalBackfill(boolean usePhysicalBackfill) { } @Override - public void prepareInvisiblePartitionGroup() { + public void prepareInvisiblePartitionGroup(Boolean useSubPartition) { TableGroupConfig tableGroupConfig = OptimizerContext.getContext(getSchemaName()).getTableGroupInfoManager() .getTableGroupConfigByName(getTableGroupName()); Long tableGroupId = tableGroupConfig.getTableGroupRecord().getId(); diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/data/AlterTableGroupReorgPartitionPreparedData.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/data/AlterTableGroupReorgPartitionPreparedData.java index 08a1495f1..1d88d57f8 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/data/AlterTableGroupReorgPartitionPreparedData.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/data/AlterTableGroupReorgPartitionPreparedData.java @@ -100,7 +100,7 @@ public void setPartRexInfoCtx(Map partRexInfoCtx) { } @Override - public void prepareInvisiblePartitionGroup() { + public void prepareInvisiblePartitionGroup(Boolean hasSubPartition) { if (!reorgSubPartition && hasSubPartition) { List inVisiblePartitionGroups = new ArrayList<>(); TableGroupConfig tableGroupConfig = OptimizerContext.getContext(getSchemaName()).getTableGroupInfoManager() @@ -122,7 +122,7 @@ public void prepareInvisiblePartitionGroup() { setInvisiblePartitionGroups(inVisiblePartitionGroups); } else { - super.prepareInvisiblePartitionGroup(); + super.prepareInvisiblePartitionGroup(hasSubPartition); } } } diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/data/AlterTableGroupSplitPartitionPreparedData.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/data/AlterTableGroupSplitPartitionPreparedData.java index d9f11b113..554934164 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/data/AlterTableGroupSplitPartitionPreparedData.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/data/AlterTableGroupSplitPartitionPreparedData.java @@ -64,11 +64,12 @@ public void setNewPartitions(List newPartitions) { for (SqlNode sqlNode : sqlPartition.getSubPartitions()) { String subPartitionName = ((SqlIdentifier) ((SqlSubPartition) sqlNode).getName()).getSimple(); newPartitionNames.add(subPartitionName); + newPartitionLocalities.put(subPartitionName, sqlPartition.getLocality()); } } else { newPartitionNames.add(partitionName); + newPartitionLocalities.put(sqlPartition.getName().toString(), sqlPartition.getLocality()); } - newPartitionLocalities.put(sqlPartition.getName().toString(), sqlPartition.getLocality()); } setNewPartitionNames(newPartitionNames); setNewPartitionLocalities(newPartitionLocalities); diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/data/MoveDatabasePreparedData.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/data/MoveDatabasePreparedData.java index 14121a69a..036335adf 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/data/MoveDatabasePreparedData.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/ddl/data/MoveDatabasePreparedData.java @@ -43,7 +43,7 @@ public MoveDatabasePreparedData(String schemaName, Map> sto groupAndStorageInstId = new HashMap<>(); for (Map.Entry> entry : storageGroups.entrySet()) { for (String sourceGroup : entry.getValue()) { - String targetGroup = GroupInfoUtil.buildScaloutGroupName(sourceGroup); + String targetGroup = GroupInfoUtil.buildScaleOutGroupName(sourceGroup); sourceTargetGroupMap.put(sourceGroup, targetGroup); final String sourceInstId = DbTopologyManager .getStorageInstIdByGroupName(InstIdUtil.getInstId(), schemaName, diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/dml/writer/BroadcastModifyGsiWriter.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/dml/writer/BroadcastModifyGsiWriter.java index 38793181a..4f9823c9b 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/dml/writer/BroadcastModifyGsiWriter.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/dml/writer/BroadcastModifyGsiWriter.java @@ -81,7 +81,7 @@ public List getInput(ExecutionContext ec, Function Connection.TRANSACTION_READ_COMMITTED; + || ec.getTxIsolation() > Connection.TRANSACTION_READ_COMMITTED + // If primary table and all GSI contain all uk, and all uk contains all sharding keys, + // we can push down REPLACE even under RC isolation level. + || parent.isUkContainsAllSkAndGsiContainsAllUk(); } public boolean isContainsAllUk() { diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/dml/writer/ReplicateBroadcastInsertWriter.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/dml/writer/ReplicateBroadcastInsertWriter.java index 14e8449a9..1656bdd5f 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/dml/writer/ReplicateBroadcastInsertWriter.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/dml/writer/ReplicateBroadcastInsertWriter.java @@ -84,7 +84,7 @@ private List getInputForMoveDatabase(List relNodes, ExecutionC if (canWrite) { RelNode moveTableRel = baseTableOperation.copy(baseTableOperation.getTraitSet(), baseTableOperation.getInputs()); - ((BaseTableOperation) moveTableRel).setDbIndex(GroupInfoUtil.buildScaloutGroupName(dbIndex)); + ((BaseTableOperation) moveTableRel).setDbIndex(GroupInfoUtil.buildScaleOutGroupName(dbIndex)); moveTableRelNodes.add(moveTableRel); logReplicateSql(tableMeta, ((BaseTableOperation) moveTableRel).getDbIndex(), (BaseQueryOperation) moveTableRel, diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/dml/writer/ReplicateBroadcastModifyWriter.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/dml/writer/ReplicateBroadcastModifyWriter.java index e7760898f..e6af3cb3d 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/dml/writer/ReplicateBroadcastModifyWriter.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/dml/writer/ReplicateBroadcastModifyWriter.java @@ -93,7 +93,7 @@ private List getInputForMoveDatabase(List relNodes, ExecutionC if (canWrite) { RelNode moveTableRel = baseTableOperation.copy(baseTableOperation.getTraitSet(), baseTableOperation.getInputs()); - ((BaseTableOperation) moveTableRel).setDbIndex(GroupInfoUtil.buildScaloutGroupName(dbIndex)); + ((BaseTableOperation) moveTableRel).setDbIndex(GroupInfoUtil.buildScaleOutGroupName(dbIndex)); moveTableRelNodes.add(moveTableRel); } } diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/dml/writer/ReplicateDistinctInsertWriter.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/dml/writer/ReplicateDistinctInsertWriter.java index 3c0cfaa98..22d1196f1 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/dml/writer/ReplicateDistinctInsertWriter.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/dml/writer/ReplicateDistinctInsertWriter.java @@ -87,7 +87,7 @@ private List getInputForMoveDatabase(List relNodes, ExecutionC if (canWrite) { RelNode moveTableRel = baseTableOperation.copy(baseTableOperation.getTraitSet(), baseTableOperation.getInputs()); - ((BaseTableOperation) moveTableRel).setDbIndex(GroupInfoUtil.buildScaloutGroupName(dbIndex)); + ((BaseTableOperation) moveTableRel).setDbIndex(GroupInfoUtil.buildScaleOutGroupName(dbIndex)); moveTableRelNodes.add(moveTableRel); } } diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/dml/writer/ReplicationInsertWriter.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/dml/writer/ReplicationInsertWriter.java index 7dad7ae50..b7348eafd 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/dml/writer/ReplicationInsertWriter.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/dml/writer/ReplicationInsertWriter.java @@ -114,13 +114,13 @@ private List getInputForMoveDatabase(List relNodes, ExecutionC List phyTableModifys = phyTableInsertbuilder.build(shardResults); assert phyTableModifys.size() == 1; moveTableRel = phyTableModifys.get(0); - ((PhyTableOperation) moveTableRel).setDbIndex(GroupInfoUtil.buildScaloutGroupName(dbIndex)); + ((PhyTableOperation) moveTableRel).setDbIndex(GroupInfoUtil.buildScaleOutGroupName(dbIndex)); moveTableRelNodes.add(moveTableRel); } else { moveTableRel = baseTableOperation.copy(baseTableOperation.getTraitSet(), baseTableOperation.getInputs()); - ((BaseTableOperation) moveTableRel).setDbIndex(GroupInfoUtil.buildScaloutGroupName(dbIndex)); + ((BaseTableOperation) moveTableRel).setDbIndex(GroupInfoUtil.buildScaleOutGroupName(dbIndex)); moveTableRelNodes.add(moveTableRel); } } diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/dml/writer/ReplicationShardingModifyWriter.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/dml/writer/ReplicationShardingModifyWriter.java index 86d41164e..18f298c63 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/dml/writer/ReplicationShardingModifyWriter.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/dml/writer/ReplicationShardingModifyWriter.java @@ -107,7 +107,7 @@ private List getInputForMoveDatabase(List relNodes) { if (canWrite) { RelNode moveTableRel = baseTableOperation.copy(baseTableOperation.getTraitSet(), baseTableOperation.getInputs()); - ((BaseTableOperation) moveTableRel).setDbIndex(GroupInfoUtil.buildScaloutGroupName(dbIndex)); + ((BaseTableOperation) moveTableRel).setDbIndex(GroupInfoUtil.buildScaleOutGroupName(dbIndex)); moveTableRelNodes.add(moveTableRel); } } diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/dml/writer/ShardingModifyGsiWriter.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/dml/writer/ShardingModifyGsiWriter.java index 36bc6c510..1cb42e0b3 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/dml/writer/ShardingModifyGsiWriter.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/rel/dml/writer/ShardingModifyGsiWriter.java @@ -78,7 +78,7 @@ public List getInput(ExecutionContext ec, Function getInput(ExecutionContext ec, Function(); this.storagePoolCacheByName = new HashMap<>(); @@ -186,7 +186,7 @@ private void initializeDefaultAndRecycleStoragePool() { initializeStoragePoolInfo = String.format("initialize %s storage pool info with %s, %s", "recycle", defaultDnIds, undeletableDnId); - logger.info(initializeStoragePoolInfo); + logger.warn(initializeStoragePoolInfo); EventLogger.log(EventType.STORAGE_POOL_INFO, initializeStoragePoolInfo); accessor.addNewStoragePoolInfo(RECYCLE_STORAGE_POOL_NAME, "", ""); for (StorageInfoRecord storageInfoRecord : storageInfoRecords) { @@ -477,7 +477,7 @@ public synchronized void reloadStoragePoolInfoFromMetaDb() { this.storagePoolCacheByName = newCacheByName; this.storagePoolMap = newStoragePoolMap; - logger.info("reload storage pool cache from metadb: "); + logger.warn("reload storage pool cache from metadb: "); } catch (SQLException e) { MetaDbLogUtil.META_DB_LOG.error(e); throw GeneralUtil.nestedException(e); diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/optimizeralert/OptimizerAlertLoggerPruningSlowImpl.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/optimizeralert/OptimizerAlertLoggerPruningSlowImpl.java new file mode 100644 index 000000000..8cbc05905 --- /dev/null +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/optimizeralert/OptimizerAlertLoggerPruningSlowImpl.java @@ -0,0 +1,24 @@ +/* + * Copyright [2013-2021], Alibaba Group Holding Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.alibaba.polardbx.optimizer.optimizeralert; + +public class OptimizerAlertLoggerPruningSlowImpl extends OptimizerAlertLoggerBaseImpl { + public OptimizerAlertLoggerPruningSlowImpl() { + super(); + this.optimizerAlertType = OptimizerAlertType.PRUNING_SLOW; + } +} diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/optimizeralert/OptimizerAlertManager.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/optimizeralert/OptimizerAlertManager.java index 7f660705a..258d60eba 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/optimizeralert/OptimizerAlertManager.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/optimizeralert/OptimizerAlertManager.java @@ -105,6 +105,7 @@ private static Map createLogger() { optimizerAlertLoggers.put(OptimizerAlertType.PLAN_CACHE_FULL, new OptimizerAlertLoggerPlanCacheImpl()); optimizerAlertLoggers.put(OptimizerAlertType.TP_SLOW, new OptimizerAlertLoggerTpImpl()); optimizerAlertLoggers.put(OptimizerAlertType.STATISTIC_MISS, new OptimizerAlertLoggerStatisticImpl()); + optimizerAlertLoggers.put(OptimizerAlertType.PRUNING_SLOW, new OptimizerAlertLoggerPruningSlowImpl()); optimizerAlertLoggers.put(OptimizerAlertType.STATISTIC_JOB_INTERRUPT, new OptimizerAlertLoggerStatisticJobInterruptImpl()); optimizerAlertLoggers.put(OptimizerAlertType.STATISTIC_INCONSISTENT, diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/optimizeralert/OptimizerAlertType.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/optimizeralert/OptimizerAlertType.java index aeb7b4ad6..afcc49afd 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/optimizeralert/OptimizerAlertType.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/optimizeralert/OptimizerAlertType.java @@ -31,4 +31,6 @@ public enum OptimizerAlertType { STATISTIC_JOB_INTERRUPT, STATISTIC_INCONSISTENT, + + PRUNING_SLOW, } diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/parse/TableMetaParser.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/parse/TableMetaParser.java index 1b2df4262..b8cef7068 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/parse/TableMetaParser.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/parse/TableMetaParser.java @@ -58,6 +58,7 @@ import org.apache.calcite.sql.parser.SqlParserPos; import org.apache.calcite.sql.type.SqlTypeUtil; import org.apache.calcite.util.Pair; +import org.apache.commons.lang.StringUtils; import java.nio.charset.Charset; import java.util.ArrayList; @@ -75,6 +76,8 @@ public class TableMetaParser { private static final RelDataTypeFactory factory = new TddlTypeFactoryImpl(TddlRelDataTypeSystemImpl.getInstance()); + private static final String ENCRYPTED = "ENCRYPTION=\"Y\""; + private static final String NO_ENCRYPTED = "ENCRYPTION=\"N\""; /** * Parse TableMeta from FastSql's statements. @@ -222,6 +225,15 @@ public static TableMeta parse(String tableName, SqlCreateTable sqlCreateTable) { TableStatus.PUBLIC, 0, 0); tableMeta.setEngine(sqlCreateTable.getEngine()); + String encryptInfo = null; + if (sqlCreateTable.getEncryption() != null) { + if (sqlCreateTable.getEncryption().equalsIgnoreCase("'Y'")) { + encryptInfo = ENCRYPTED; + } else if (sqlCreateTable.getEncryption().equalsIgnoreCase("'N'")) { + encryptInfo = NO_ENCRYPTED; + } + } + tableMeta.setEncryption(parseEncryption(schemaName, encryptInfo)); return tableMeta; } @@ -345,4 +357,22 @@ public static ColumnMeta buildColumnMeta(PolarxResultset.ColumnMetaData metaData } } + public static boolean parseEncryption(String tableSchema, String createOptions) { + String encryped = "ENCRYPTION=\"Y\""; + String noEncryped = "ENCRYPTION=\"N\""; + DbInfoRecord dbInfo = DbInfoManager.getInstance().getDbInfo(tableSchema); + boolean dbEncryped = dbInfo == null ? false : Optional.ofNullable(dbInfo.isEncryption()).orElse(false); + if (createOptions != null) { + if (dbEncryped) { + if (createOptions.toUpperCase().indexOf(noEncryped) != -1) { + return false; + } + } else { + if (createOptions.toUpperCase().indexOf(encryped) != -1) { + return true; + } + } + } + return dbEncryped; + } } diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/parse/custruct/FastSqlConstructUtils.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/parse/custruct/FastSqlConstructUtils.java index a8a906167..0249af462 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/parse/custruct/FastSqlConstructUtils.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/parse/custruct/FastSqlConstructUtils.java @@ -1152,9 +1152,13 @@ public static boolean collectSourceTable(SqlNode source, List outTarget // UPDATE t1 JOIN (SELECT t2.id FROM t2) b // UPDATE t1 JOIN (SELECT t2.id FROM t2) AS b + // UPDATE t1 JOIN (SELECT 1, 2 UNION SELECT 3, 4) b + // UPDATE t1 JOIN (SELECT 1, 2 UNION SELECT 3, 4) AS b // DELETE t1 FROM t1 JOIN (SELECT t2.id FROM t2) b // DELETE FROM t1 USING t1 JOIN (SELECT t2.id FROM t2) AS b - if (left instanceof SqlSelect) { + // DELETE t1 FROM t1 JOIN (SELECT 1, 2 UNION SELECT 3, 4) b + // DELETE FROM t1 USING t1 JOIN (SELECT 1, 2 UNION SELECT 3, 4) AS b + if (left instanceof SqlSelect || left instanceof SqlBasicCall && left.getKind() == SqlKind.UNION) { // Get tables in subquery final List tables = new ArrayList<>(); left.accept(new ReplaceTableNameWithSomethingVisitor(DefaultSchema.getSchemaName(), ec) { diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/parse/visitor/DrdsParameterizeSqlVisitor.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/parse/visitor/DrdsParameterizeSqlVisitor.java index 763fb6cb4..1cef9947c 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/parse/visitor/DrdsParameterizeSqlVisitor.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/parse/visitor/DrdsParameterizeSqlVisitor.java @@ -244,10 +244,18 @@ public boolean visit(SQLVariantRefExpr x) { } else if (StringUtils.startsWith(name, "@")) { if (parameterized) { String varText = TStringUtil.substring(name, 1); - if (executionContext != null - && executionContext.getUserDefVariables() != null - && executionContext.getUserDefVariables().containsKey(varText.toLowerCase()) - && executionContext.getUserDefVariables().get(varText.toLowerCase()) != null) { + + // TConnection will set an empty user def variables. + if (executionContext != null && executionContext.getUserDefVariables() != null) { + + String varName = varText.toLowerCase(); + + // https://dev.mysql.com/doc/refman/5.7/en/user-variables.html + // If you refer to a variable that has not been initialized, it has a value of NULL and a type of string. + if (!executionContext.getUserDefVariables().containsKey(varName)) { + executionContext.getUserDefVariables().put(varName, null); + } + print('?'); incrementReplaceCunt(); diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/parse/visitor/FastSqlToCalciteNodeVisitor.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/parse/visitor/FastSqlToCalciteNodeVisitor.java index 4308c1713..1fe39010c 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/parse/visitor/FastSqlToCalciteNodeVisitor.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/parse/visitor/FastSqlToCalciteNodeVisitor.java @@ -291,18 +291,18 @@ import com.alibaba.polardbx.druid.sql.dialect.mysql.ast.statement.DrdsCreateCclRuleStatement; import com.alibaba.polardbx.druid.sql.dialect.mysql.ast.statement.DrdsCreateCclTriggerStatement; import com.alibaba.polardbx.druid.sql.dialect.mysql.ast.statement.DrdsCreateScheduleStatement; -import com.alibaba.polardbx.druid.sql.dialect.mysql.ast.statement.DrdsCreateStoragePoolStatement; import com.alibaba.polardbx.druid.sql.dialect.mysql.ast.statement.DrdsCreateSecurityLabelComponentStatement; import com.alibaba.polardbx.druid.sql.dialect.mysql.ast.statement.DrdsCreateSecurityLabelStatement; import com.alibaba.polardbx.druid.sql.dialect.mysql.ast.statement.DrdsCreateSecurityPolicyStatement; +import com.alibaba.polardbx.druid.sql.dialect.mysql.ast.statement.DrdsCreateStoragePoolStatement; import com.alibaba.polardbx.druid.sql.dialect.mysql.ast.statement.DrdsDropCclRuleStatement; import com.alibaba.polardbx.druid.sql.dialect.mysql.ast.statement.DrdsDropCclTriggerStatement; import com.alibaba.polardbx.druid.sql.dialect.mysql.ast.statement.DrdsDropFileStorageStatement; import com.alibaba.polardbx.druid.sql.dialect.mysql.ast.statement.DrdsDropScheduleStatement; -import com.alibaba.polardbx.druid.sql.dialect.mysql.ast.statement.DrdsDropStoragePoolStatement; import com.alibaba.polardbx.druid.sql.dialect.mysql.ast.statement.DrdsDropSecurityLabelComponentStatement; import com.alibaba.polardbx.druid.sql.dialect.mysql.ast.statement.DrdsDropSecurityLabelStatement; import com.alibaba.polardbx.druid.sql.dialect.mysql.ast.statement.DrdsDropSecurityPolicyStatement; +import com.alibaba.polardbx.druid.sql.dialect.mysql.ast.statement.DrdsDropStoragePoolStatement; import com.alibaba.polardbx.druid.sql.dialect.mysql.ast.statement.DrdsFireScheduleStatement; import com.alibaba.polardbx.druid.sql.dialect.mysql.ast.statement.DrdsGrantSecurityLabelStatement; import com.alibaba.polardbx.druid.sql.dialect.mysql.ast.statement.DrdsInspectDDLJobCache; @@ -481,6 +481,7 @@ import com.alibaba.polardbx.optimizer.parse.bean.Sequence; import com.alibaba.polardbx.optimizer.parse.bean.TableMetaData; import com.alibaba.polardbx.optimizer.parse.custruct.FastSqlConstructUtils; +import com.alibaba.polardbx.optimizer.parse.privilege.PrivilegeContext; import com.alibaba.polardbx.optimizer.partition.common.LocalPartitionDefinitionInfo; import com.alibaba.polardbx.optimizer.rule.TddlRuleManager; import com.alibaba.polardbx.optimizer.sql.sql2rel.TddlSqlToRelConverter; @@ -2737,11 +2738,16 @@ public boolean visit(MySqlCreateTableStatement x) { break; case "'load_local_disk'": table.setEngine(Engine.LOCAL_DISK); + break; case "'load_nfs'": table.setEngine(Engine.NFS); + break; case "'load_external_disk'": table.setEngine(Engine.EXTERNAL_DISK); break; + case "'load_abs'": + table.setEngine(Engine.ABS); + break; default: break; } @@ -2899,7 +2905,7 @@ public SqlTableOptions convertTableOptions(String key, SQLObject valueObject, Sq "table option INSERT_METHOD"); // outTableOptions.setInsertMethod(InsertMethod.FIRST); } else if (TStringUtil.equalsIgnoreCase(key, "KEY_BLOCK_SIZE")) { - outTableOptions.setKeyBlockSize((SqlCall) value); + outTableOptions.setKeyBlockSize((SqlNumericLiteral) value); } else if (TStringUtil.equalsIgnoreCase(key, "MAX_ROWS")) { outTableOptions.setMaxRows((SqlNumericLiteral) value); } else if (TStringUtil.equalsIgnoreCase(key, "MIN_ROWS")) { @@ -3190,7 +3196,8 @@ public boolean visit(SQLAlterTableStatement x) { } MysqlForeignKey foreignKey = (MysqlForeignKey) ((SQLAlterTableAddConstraint) sqlAlterTableItem).getConstraint(); - logicalReferencedTables.add(SQLUtils.normalize(foreignKey.getReferencedTableName().getSimpleName())); + logicalReferencedTables.add( + SQLUtils.normalizeNoTrim(foreignKey.getReferencedTableName().getSimpleName())); } else if (sqlAlterTableItem instanceof MySqlAlterTableModifyColumn) { final SQLColumnDefinition sqlColumnDefinition = ((MySqlAlterTableModifyColumn) sqlAlterTableItem).getNewColumnDefinition(); @@ -4231,7 +4238,7 @@ public boolean visit(SQLAlterTableAddConstraint x) { } String schemaName = foreignKey.getReferencedTable().getSchema() == null ? getDefaultSchema() : - SQLUtils.normalize(foreignKey.getReferencedTable().getSchema()); + SQLUtils.normalizeNoTrim(foreignKey.getReferencedTable().getSchema()); final SqlIndexDefinition indexDef = SqlIndexDefinition.localIndex(SqlParserPos.ZERO, false, @@ -4452,7 +4459,7 @@ public SequenceBean convertTableElements(SqlIdentifier tableName, List options = new LinkedList<>(); @@ -4649,7 +4615,7 @@ public SequenceBean convertTableElements(SqlIdentifier tableName, List constructDictColumns(String dictColumnStr) { return dictColumns; } + public void assignConstraintName(SQLConstraintImpl constraint, Set indexNamesSet, SqlIdentifier tableName) { + if (!(constraint instanceof MySqlPrimaryKey) && + (null == constraint.getName() || constraint.getName().getSimpleName().isEmpty())) { + String baseName = null; + int prob = 0; + if (constraint instanceof MySqlKey) { + baseName = ((MySqlKey) constraint).getColumns().get(0).getExpr().toString(); + } else if (constraint instanceof MySqlTableIndex) { + SQLExpr expr = ((MySqlTableIndex) constraint).getColumns().get(0).getExpr(); + if (expr instanceof SQLMethodInvokeExpr) { + baseName = ((SQLMethodInvokeExpr) expr).getMethodName(); + } else { + baseName = expr.toString(); + } + } + if (baseName != null) { + String normalizeBaseName = SQLUtils.normalizeNoTrim(baseName); + if (!indexNamesSet.contains(normalizeBaseName)) { + constraint.setName(baseName); + indexNamesSet.add(normalizeBaseName); + } else { + prob = 2; + normalizeBaseName = normalizeBaseName + "_"; + while (indexNamesSet.contains(normalizeBaseName + prob)) { + ++prob; + } + String indexName = normalizeBaseName + prob; + String backtickIndexName = SqlIdentifier.surroundWithBacktick(normalizeBaseName + prob); + constraint.setName(backtickIndexName); + indexNamesSet.add(indexName); + } + } else { + if (constraint instanceof MysqlForeignKey) { + baseName = SQLUtils.normalizeNoTrim(tableName.getLastName().toLowerCase()) + "_ibfk_"; + prob++; + } else { + baseName = "i_"; + } + while (indexNamesSet.contains(baseName + prob)) { + ++prob; + } + String indexName = baseName + prob; + String backtickIndexName = SqlIdentifier.surroundWithBacktick(baseName + prob); + constraint.setName(backtickIndexName); + indexNamesSet.add(indexName); + } + } + } + private void convertIndexOption(List options, SQLIndexOptions fastSqlOptions) { if (fastSqlOptions.getKeyBlockSize() != null) { options.add(SqlIndexOption.createKeyBlockSize(SqlParserPos.ZERO, @@ -5071,9 +5086,11 @@ public boolean visit(SQLColumnDefinition x) { @Override public boolean visit(SQLCreateJavaFunctionStatement x) { - if (!InstConfUtil.getBool(ConnectionParams.ENABLE_JAVA_UDF)) { - throw new TddlRuntimeException(ErrorCode.ERR_UDF_NOT_SUPPORT, - "java udf not support now, you can set ENABLE_JAVA_UDF = true to enable java udf!"); + if (!ec.isGod()) { + if (!InstConfUtil.getValBool(TddlConstants.ENABLE_JAVA_UDF)) { + throw new TddlRuntimeException(ErrorCode.ERR_UDF_NOT_SUPPORT, + "java udf not support now, you can set ENABLE_JAVA_UDF = true to enable java udf!"); + } } final String funcName = SQLUtils.normalize(x.getName().getSimpleName()).toLowerCase(); this.sqlNode = SqlDdlNodes.createJavaFunction(SqlParserPos.ZERO, @@ -5089,10 +5106,13 @@ public boolean visit(SQLCreateJavaFunctionStatement x) { @Override public boolean visit(SQLDropJavaFunctionStatement x) { - if (!InstConfUtil.getBool(ConnectionParams.ENABLE_JAVA_UDF)) { - throw new TddlRuntimeException(ErrorCode.ERR_UDF_NOT_SUPPORT, - "java udf not support now, you can set ENABLE_JAVA_UDF = true to enable java udf!"); + if (!ec.isGod()) { + if (!InstConfUtil.getValBool(TddlConstants.ENABLE_JAVA_UDF)) { + throw new TddlRuntimeException(ErrorCode.ERR_UDF_NOT_SUPPORT, + "java udf not support now, you can set ENABLE_JAVA_UDF = true to enable java udf!"); + } } + final String funcName = SQLUtils.normalize(x.getName().getSimpleName()).toString(); this.sqlNode = SqlDdlNodes.dropJavaFunction(SqlParserPos.ZERO, funcName, @@ -5574,8 +5594,19 @@ public boolean visit(SQLExprTableSource x) { ((SqlIdentifier) tableNameIdentifier).indexNode = sqlNodeHint; ((SqlIdentifier) tableNameIdentifier).partitions = partitions; + SqlOperator asOfOperator = null; + + if (x.isFlashbackWithTso()) { + //as of tso: 8.0 使用 as of gcn; 5.7 使用 as of tso + asOfOperator = + InstanceVersion.isMYSQL80() ? SqlStdOperatorTable.AS_OF_80 : SqlStdOperatorTable.AS_OF_57; + } else { + //as of timestamp: 8.0 转成 as of gcn; 5.7 使用 as of timestamp + asOfOperator = InstanceVersion.isMYSQL80() ? SqlStdOperatorTable.AS_OF_80 : SqlStdOperatorTable.AS_OF; + } + tableNameIdentifier = new SqlBasicCall( - InstanceVersion.isMYSQL80() ? SqlStdOperatorTable.AS_OF_80 : SqlStdOperatorTable.AS_OF, + asOfOperator, new SqlNode[] { tableNameIdentifier, snapshotTimestampIdentifier @@ -8492,37 +8523,43 @@ public boolean visit(MySqlShowBinaryStreamsStatement x) { @Override public boolean visit(MySqlChangeMasterStatement x) { - if (CdcRpcClient.useCdc() && ec.getParamManager().getBoolean(ConnectionParams.ENABLE_REPLICA)) { - List> options = new LinkedList<>(); - for (SQLAssignItem option : x.getOptions()) { - SqlNode key = convertToSqlNode(option.getTarget()); - SqlNode value = convertToSqlNode(option.getValue()); - options.add(Pair.of(key, value)); - } - SqlNode channel = convertToSqlNode(x.getChannel()); - SqlNode subChannel = convertToSqlNode(x.getSubChannel()); - sqlNode = new SqlChangeMaster(SqlParserPos.ZERO, options, channel, subChannel); - } else { + if (!CdcRpcClient.useCdc()) { throw new TddlRuntimeException(ErrorCode.ERR_REPLICA_NOT_SUPPORT, "replica is not support yet!"); } + if (!ec.isGod()) { + PrivilegeContext pc = ec.getPrivilegeContext(); + throw new TddlRuntimeException(ErrorCode.ERR_CHECK_PRIVILEGE_FAILED, "GOD", pc.getUser(), pc.getHost()); + } + List> options = new LinkedList<>(); + for (SQLAssignItem option : x.getOptions()) { + SqlNode key = convertToSqlNode(option.getTarget()); + SqlNode value = convertToSqlNode(option.getValue()); + options.add(Pair.of(key, value)); + } + SqlNode channel = convertToSqlNode(x.getChannel()); + SqlNode subChannel = convertToSqlNode(x.getSubChannel()); + sqlNode = new SqlChangeMaster(SqlParserPos.ZERO, options, channel, subChannel); return false; } @Override public boolean visit(MySqlChangeReplicationFilterStatement x) { - if (CdcRpcClient.useCdc() && ec.getParamManager().getBoolean(ConnectionParams.ENABLE_REPLICA)) { - List> options = new LinkedList<>(); - for (SQLAssignItem option : x.getFilters()) { - SqlNode key = convertToSqlNode(option.getTarget()); - SqlNode value = convertToSqlNode(option.getValue()); - options.add(Pair.of(key, value)); - } - SqlNode channel = convertToSqlNode(x.getChannel()); - SqlNode subChannel = convertToSqlNode(x.getSubChannel()); - sqlNode = new SqlChangeReplicationFilter(SqlParserPos.ZERO, options, channel, subChannel); - } else { + if (!CdcRpcClient.useCdc()) { throw new TddlRuntimeException(ErrorCode.ERR_REPLICA_NOT_SUPPORT, "replica is not support yet!"); } + if (!ec.isGod()) { + PrivilegeContext pc = ec.getPrivilegeContext(); + throw new TddlRuntimeException(ErrorCode.ERR_CHECK_PRIVILEGE_FAILED, "GOD", pc.getUser(), pc.getHost()); + } + List> options = new LinkedList<>(); + for (SQLAssignItem option : x.getFilters()) { + SqlNode key = convertToSqlNode(option.getTarget()); + SqlNode value = convertToSqlNode(option.getValue()); + options.add(Pair.of(key, value)); + } + SqlNode channel = convertToSqlNode(x.getChannel()); + SqlNode subChannel = convertToSqlNode(x.getSubChannel()); + sqlNode = new SqlChangeReplicationFilter(SqlParserPos.ZERO, options, channel, subChannel); return false; } @@ -8616,56 +8653,61 @@ public boolean visit(SQLReplicaHashCheckStatement x) { @Override public boolean visit(MySqlStartSlaveStatement x) { - if (CdcRpcClient.useCdc() && ec.getParamManager().getBoolean(ConnectionParams.ENABLE_REPLICA)) { - List> options = new LinkedList<>(); - SqlNode channel = convertToSqlNode(x.getChannel()); - SqlNode subChannel = convertToSqlNode(x.getSubChannel()); - sqlNode = new SqlStartSlave(SqlParserPos.ZERO, options, channel, subChannel); - - } else { + if (!CdcRpcClient.useCdc()) { throw new TddlRuntimeException(ErrorCode.ERR_REPLICA_NOT_SUPPORT, "replica is not support yet!"); } + if (!ec.isGod()) { + PrivilegeContext pc = ec.getPrivilegeContext(); + throw new TddlRuntimeException(ErrorCode.ERR_CHECK_PRIVILEGE_FAILED, "GOD", pc.getUser(), pc.getHost()); + } + List> options = new LinkedList<>(); + SqlNode channel = convertToSqlNode(x.getChannel()); + SqlNode subChannel = convertToSqlNode(x.getSubChannel()); + sqlNode = new SqlStartSlave(SqlParserPos.ZERO, options, channel, subChannel); return false; } @Override public boolean visit(MySqlStopSlaveStatement x) { - if (CdcRpcClient.useCdc() && ec.getParamManager().getBoolean(ConnectionParams.ENABLE_REPLICA)) { - List> options = new LinkedList<>(); - SqlNode channel = convertToSqlNode(x.getChannel()); - SqlNode subChannel = convertToSqlNode(x.getSubChannel()); - sqlNode = new SqlStopSlave(SqlParserPos.ZERO, options, channel, subChannel); - } else { + if (!CdcRpcClient.useCdc()) { throw new TddlRuntimeException(ErrorCode.ERR_REPLICA_NOT_SUPPORT, "replica is not support yet!"); } + if (!ec.isGod()) { + PrivilegeContext pc = ec.getPrivilegeContext(); + throw new TddlRuntimeException(ErrorCode.ERR_CHECK_PRIVILEGE_FAILED, "GOD", pc.getUser(), pc.getHost()); + } + List> options = new LinkedList<>(); + SqlNode channel = convertToSqlNode(x.getChannel()); + SqlNode subChannel = convertToSqlNode(x.getSubChannel()); + sqlNode = new SqlStopSlave(SqlParserPos.ZERO, options, channel, subChannel); return false; } @Override public boolean visit(MySqlResetSlaveStatement x) { - if (CdcRpcClient.useCdc() && ec.getParamManager().getBoolean(ConnectionParams.ENABLE_REPLICA)) { - List> options = new LinkedList<>(); - SqlNode channel = convertToSqlNode(x.getChannel()); - SqlNode subChannel = convertToSqlNode(x.getSubChannel()); - sqlNode = new SqlResetSlave(SqlParserPos.ZERO, options, channel, subChannel, x.isAll()); - } else { + if (!CdcRpcClient.useCdc()) { throw new TddlRuntimeException(ErrorCode.ERR_REPLICA_NOT_SUPPORT, "replica is not support yet!"); } + if (!ec.isGod()) { + PrivilegeContext pc = ec.getPrivilegeContext(); + throw new TddlRuntimeException(ErrorCode.ERR_CHECK_PRIVILEGE_FAILED, "GOD", pc.getUser(), pc.getHost()); + } + List> options = new LinkedList<>(); + SqlNode channel = convertToSqlNode(x.getChannel()); + SqlNode subChannel = convertToSqlNode(x.getSubChannel()); + sqlNode = new SqlResetSlave(SqlParserPos.ZERO, options, channel, subChannel, x.isAll()); return false; } @Override public boolean visit(MySqlShowSlaveStatusStatement x) { - if (CdcRpcClient.useCdc() && ec.getParamManager().getBoolean(ConnectionParams.ENABLE_REPLICA)) { - List> options = new LinkedList<>(); - SqlNode channel = convertToSqlNode(x.getChannel()); - SqlNode subChannel = convertToSqlNode(x.getSubChannel()); - sqlNode = new SqlShowSlaveStatus(SqlParserPos.ZERO, options, channel, subChannel); - - } else { - this.sqlNode = new SqlShow(SqlParserPos.ZERO, ImmutableList.of(SqlSpecialIdentifier.SLAVE, - SqlSpecialIdentifier.STATUS)); + if (!CdcRpcClient.useCdc()) { + throw new TddlRuntimeException(ErrorCode.ERR_REPLICA_NOT_SUPPORT, "replica is not support yet!"); } + List> options = new LinkedList<>(); + SqlNode channel = convertToSqlNode(x.getChannel()); + SqlNode subChannel = convertToSqlNode(x.getSubChannel()); + sqlNode = new SqlShowSlaveStatus(SqlParserPos.ZERO, options, channel, subChannel); return false; } @@ -11431,113 +11473,126 @@ public boolean visit(MySqlFlushLogsStatement x) { @Override public boolean visit(SQLStartReplicaCheckTableStatement x) { - if (CdcRpcClient.useCdc() && ec.getParamManager().getBoolean(ConnectionParams.ENABLE_REPLICA)) { - final SqlNode dbName = convertToSqlNode(x.getDbName()); - final SqlNode channel = convertToSqlNode(x.getChannel()); - SqlStartReplicaCheck sqlNode = new SqlStartReplicaCheck(SqlParserPos.ZERO, channel, dbName); - if (x.getTableName() != null) { - sqlNode.setTableName(convertToSqlNode(x.getTableName())); - } - this.sqlNode = sqlNode; - } else { + if (!CdcRpcClient.useCdc()) { throw new TddlRuntimeException(ErrorCode.ERR_REPLICA_NOT_SUPPORT, "replica is not support yet!"); } + if (!ec.isGod()) { + PrivilegeContext pc = ec.getPrivilegeContext(); + throw new TddlRuntimeException(ErrorCode.ERR_CHECK_PRIVILEGE_FAILED, "GOD", pc.getUser(), pc.getHost()); + } + final SqlNode dbName = convertToSqlNode(x.getDbName()); + final SqlNode channel = convertToSqlNode(x.getChannel()); + SqlStartReplicaCheck sqlNode = new SqlStartReplicaCheck(SqlParserPos.ZERO, channel, dbName); + if (x.getTableName() != null) { + sqlNode.setTableName(convertToSqlNode(x.getTableName())); + } + this.sqlNode = sqlNode; return false; } @Override public boolean visit(SQLPauseReplicaCheckTableStatement x) { - if (CdcRpcClient.useCdc() && ec.getParamManager().getBoolean(ConnectionParams.ENABLE_REPLICA)) { - final SqlNode dbName = convertToSqlNode(x.getDbName()); - if (x.getTableName() != null) { - final SqlNode tbName = convertToSqlNode(x.getTableName()); - this.sqlNode = new SqlPauseReplicaCheck(SqlParserPos.ZERO, dbName, tbName); - } else { - this.sqlNode = new SqlPauseReplicaCheck(SqlParserPos.ZERO, dbName); - } - } else { + if (!CdcRpcClient.useCdc()) { throw new TddlRuntimeException(ErrorCode.ERR_REPLICA_NOT_SUPPORT, "replica is not support yet!"); } + if (!ec.isGod()) { + PrivilegeContext pc = ec.getPrivilegeContext(); + throw new TddlRuntimeException(ErrorCode.ERR_CHECK_PRIVILEGE_FAILED, "GOD", pc.getUser(), pc.getHost()); + } + final SqlNode dbName = convertToSqlNode(x.getDbName()); + if (x.getTableName() != null) { + final SqlNode tbName = convertToSqlNode(x.getTableName()); + this.sqlNode = new SqlPauseReplicaCheck(SqlParserPos.ZERO, dbName, tbName); + } else { + this.sqlNode = new SqlPauseReplicaCheck(SqlParserPos.ZERO, dbName); + } return false; } @Override public boolean visit(SQLContinueReplicaCheckTableStatement x) { - if (CdcRpcClient.useCdc() && ec.getParamManager().getBoolean(ConnectionParams.ENABLE_REPLICA)) { - final SqlNode dbName = convertToSqlNode(x.getDbName()); - if (x.getTableName() != null) { - final SqlNode tbName = convertToSqlNode(x.getTableName()); - this.sqlNode = new SqlContinueReplicaCheck(SqlParserPos.ZERO, dbName, tbName); - } else { - this.sqlNode = new SqlContinueReplicaCheck(SqlParserPos.ZERO, dbName); - } - } else { + if (!CdcRpcClient.useCdc()) { throw new TddlRuntimeException(ErrorCode.ERR_REPLICA_NOT_SUPPORT, "replica is not support yet!"); } + if (!ec.isGod()) { + PrivilegeContext pc = ec.getPrivilegeContext(); + throw new TddlRuntimeException(ErrorCode.ERR_CHECK_PRIVILEGE_FAILED, "GOD", pc.getUser(), pc.getHost()); + } + final SqlNode dbName = convertToSqlNode(x.getDbName()); + if (x.getTableName() != null) { + final SqlNode tbName = convertToSqlNode(x.getTableName()); + this.sqlNode = new SqlContinueReplicaCheck(SqlParserPos.ZERO, dbName, tbName); + } else { + this.sqlNode = new SqlContinueReplicaCheck(SqlParserPos.ZERO, dbName); + } return false; } @Override public boolean visit(SQLCancelReplicaCheckTableStatement x) { - if (CdcRpcClient.useCdc() && ec.getParamManager().getBoolean(ConnectionParams.ENABLE_REPLICA)) { - final SqlNode dbName = convertToSqlNode(x.getDbName()); - if (x.getTableName() != null) { - final SqlNode tbName = convertToSqlNode(x.getTableName()); - this.sqlNode = new SqlCancelReplicaCheck(SqlParserPos.ZERO, dbName, tbName); - } else { - this.sqlNode = new SqlCancelReplicaCheck(SqlParserPos.ZERO, dbName); - } - } else { + if (!CdcRpcClient.useCdc()) { throw new TddlRuntimeException(ErrorCode.ERR_REPLICA_NOT_SUPPORT, "replica is not support yet!"); } + if (!ec.isGod()) { + PrivilegeContext pc = ec.getPrivilegeContext(); + throw new TddlRuntimeException(ErrorCode.ERR_CHECK_PRIVILEGE_FAILED, "GOD", pc.getUser(), pc.getHost()); + } + final SqlNode dbName = convertToSqlNode(x.getDbName()); + if (x.getTableName() != null) { + final SqlNode tbName = convertToSqlNode(x.getTableName()); + this.sqlNode = new SqlCancelReplicaCheck(SqlParserPos.ZERO, dbName, tbName); + } else { + this.sqlNode = new SqlCancelReplicaCheck(SqlParserPos.ZERO, dbName); + } return false; } @Override public boolean visit(SQLResetReplicaCheckTableStatement x) { - if (CdcRpcClient.useCdc() && ec.getParamManager().getBoolean(ConnectionParams.ENABLE_REPLICA)) { - final SqlNode dbName = convertToSqlNode(x.getDbName()); - if (x.getTableName() != null) { - final SqlNode tbName = convertToSqlNode(x.getTableName()); - this.sqlNode = new SqlResetReplicaCheck(SqlParserPos.ZERO, dbName, tbName); - } else { - this.sqlNode = new SqlResetReplicaCheck(SqlParserPos.ZERO, dbName); - } - } else { + if (!CdcRpcClient.useCdc()) { throw new TddlRuntimeException(ErrorCode.ERR_REPLICA_NOT_SUPPORT, "replica is not support yet!"); } + if (!ec.isGod()) { + PrivilegeContext pc = ec.getPrivilegeContext(); + throw new TddlRuntimeException(ErrorCode.ERR_CHECK_PRIVILEGE_FAILED, "GOD", pc.getUser(), pc.getHost()); + } + final SqlNode dbName = convertToSqlNode(x.getDbName()); + if (x.getTableName() != null) { + final SqlNode tbName = convertToSqlNode(x.getTableName()); + this.sqlNode = new SqlResetReplicaCheck(SqlParserPos.ZERO, dbName, tbName); + } else { + this.sqlNode = new SqlResetReplicaCheck(SqlParserPos.ZERO, dbName); + } return false; } @Override public boolean visit(SQLShowReplicaCheckProgressStatement x) { - if (CdcRpcClient.useCdc() && ec.getParamManager().getBoolean(ConnectionParams.ENABLE_REPLICA)) { - final SqlNode dbName = convertToSqlNode(x.getDbName()); - if (x.getTableName() != null) { - final SqlNode tbName = convertToSqlNode(x.getTableName()); - this.sqlNode = new SqlShowReplicaCheckProgress(SqlParserPos.ZERO, dbName, tbName); - } else { - this.sqlNode = new SqlShowReplicaCheckProgress(SqlParserPos.ZERO, dbName); - } - } else { + if (!CdcRpcClient.useCdc()) { throw new TddlRuntimeException(ErrorCode.ERR_REPLICA_NOT_SUPPORT, "replica is not support yet!"); } + final SqlNode dbName = convertToSqlNode(x.getDbName()); + if (x.getTableName() != null) { + final SqlNode tbName = convertToSqlNode(x.getTableName()); + this.sqlNode = new SqlShowReplicaCheckProgress(SqlParserPos.ZERO, dbName, tbName); + } else { + this.sqlNode = new SqlShowReplicaCheckProgress(SqlParserPos.ZERO, dbName); + } return false; } @Override public boolean visit(SQLShowReplicaCheckDiffStatement x) { - if (CdcRpcClient.useCdc() && ec.getParamManager().getBoolean(ConnectionParams.ENABLE_REPLICA)) { - final SqlNode dbName = convertToSqlNode(x.getDbName()); - if (x.getTableName() != null) { - final SqlNode tbName = convertToSqlNode(x.getTableName()); - this.sqlNode = new SqlShowReplicaCheckDiff(SqlParserPos.ZERO, dbName, tbName); - } else { - this.sqlNode = new SqlShowReplicaCheckDiff(SqlParserPos.ZERO, dbName); - } - } else { + if (!CdcRpcClient.useCdc()) { throw new TddlRuntimeException(ErrorCode.ERR_REPLICA_NOT_SUPPORT, "replica is not support yet!"); } + final SqlNode dbName = convertToSqlNode(x.getDbName()); + if (x.getTableName() != null) { + final SqlNode tbName = convertToSqlNode(x.getTableName()); + this.sqlNode = new SqlShowReplicaCheckDiff(SqlParserPos.ZERO, dbName, tbName); + } else { + this.sqlNode = new SqlShowReplicaCheckDiff(SqlParserPos.ZERO, dbName); + } return false; } diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/partition/PartitionByDefinition.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/partition/PartitionByDefinition.java index 596507c43..86503ed62 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/partition/PartitionByDefinition.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/partition/PartitionByDefinition.java @@ -183,124 +183,6 @@ protected static List getActualPartitionColumnsByPartByDefAndPartitions( return targetPartColList; } - public static void normalizePartitions(PartitionsNormalizationParams params) { - StringBuilder sb = params.getBuilder(); - boolean usePartGroupNameAsPartName = params.isUsePartGroupNameAsPartName(); - Map partGrpNameInfo = params.getPartGrpNameInfo(); - boolean needSortPartitions = params.isNeedSortPartitions(); - boolean showHashByRange = params.isShowHashByRange(); - //int prefixPartColCnt = params.getPrefixPartColCnt(); - - List allLevelPrefixPartColCnt = params.getAllLevelPrefixPartColCnt(); - - boolean useSubPartBy = params.isUseSubPartBy(); - boolean useSubPartByTemp = params.isUseSubPartByTemp(); - boolean nextPartLevelUseTemp = params.isNextPartLevelUseTemp(); - boolean buildSubPartByTemp = params.isBuildSubPartByTemp(); - PartitionStrategy parentPartStrategy = params.getParentPartStrategy(); - SearchDatumComparator boundSpaceComparator = params.getBoundSpaceComparator(); - - List partSpecList = params.getPartSpecList(); - List orderedPartSpecList = params.getOrderedPartSpecList(); - String textIndentBase = params.getTextIndentBase(); - String textIndent = params.getTextIndent(); - if (needSortPartitions) { - partSpecList = orderedPartSpecList; - } - PartitionStrategy partStrategy = partSpecList.get(0).getStrategy(); - PartKeyLevel partKeyLevel = partSpecList.get(0).getPartLevel(); - boolean isSpecTemplate = partSpecList.get(0).isSpecTemplate(); - int i; - switch (partStrategy) { - case KEY: - case HASH: - case DIRECT_HASH: - case CO_HASH: - if (partKeyLevel == PartKeyLevel.PARTITION_KEY) { - if (!useSubPartBy) { - if (!showHashByRange) { - break; - } - } else { - if (nextPartLevelUseTemp) { - if (!showHashByRange) { - break; - } - } - } - } else if (partKeyLevel == PartKeyLevel.SUBPARTITION_KEY) { - if (buildSubPartByTemp) { - if (!showHashByRange) { - break; - } - } - } - case UDF_HASH: - case LIST: - case LIST_COLUMNS: - case RANGE: - case RANGE_COLUMNS: - - sb.append(textIndentBase); - sb.append(textIndent); - sb.append("("); - i = 0; - for (PartitionSpec pSpec : partSpecList) { - if (i > 0) { - sb.append(",\n"); - sb.append(textIndentBase); - sb.append(" "); - sb.append(textIndent); - } - String partGrpName = null; - if (usePartGroupNameAsPartName && partGrpNameInfo != null) { - if (!pSpec.isLogical()) { - partGrpName = partGrpNameInfo.get(pSpec.getLocation().getPartitionGroupId()); - } else { - partGrpName = pSpec.getName(); - } - } - PartSpecNormalizationParams normalSpecParams = new PartSpecNormalizationParams(); - normalSpecParams.setUsePartGroupNameAsPartName(usePartGroupNameAsPartName); - normalSpecParams.setPartGrpName(partGrpName); - normalSpecParams.setAllLevelPrefixPartColCnts(allLevelPrefixPartColCnt); - normalSpecParams.setPartSpec(pSpec); - normalSpecParams.setNeedSortBoundValues(needSortPartitions); - normalSpecParams.setPartGrpNameInfo(partGrpNameInfo); - normalSpecParams.setShowHashByRange(showHashByRange); - normalSpecParams.setBoundSpaceComparator(boundSpaceComparator); - normalSpecParams.setNeedSortPartitions(needSortPartitions); - normalSpecParams.setUseSubPartByTemp(useSubPartByTemp); - normalSpecParams.setTextIntentBase(textIndentBase); - sb.append(PartitionSpec.normalizePartSpec(normalSpecParams)); - i++; - } - sb.append(")"); - - if (buildSubPartByTemp) { - boolean hasMoreParentPartSpecsToShow = needShowMoreParentPartSpecs(showHashByRange, parentPartStrategy); - if (hasMoreParentPartSpecsToShow) { - sb.append('\n'); - } - } - break; - } - - //sb.append('\n'); - } - - private static boolean needShowMoreParentPartSpecs(boolean showHashByRange, - PartitionStrategy parentPartStrategy) { - boolean hasMoreParentPartSpecsToShow = true; - if (parentPartStrategy != null && (parentPartStrategy == PartitionStrategy.KEY - || parentPartStrategy == PartitionStrategy.HASH || parentPartStrategy == PartitionStrategy.DIRECT_HASH - || parentPartStrategy == PartitionStrategy.CO_HASH) - && !showHashByRange) { - hasMoreParentPartSpecsToShow = false; - } - return hasMoreParentPartSpecsToShow; - } - public static List getDistinctSearchDatumInfos(PartitionSpec partitionSpec, SearchDatumComparator bndSpaceComparator, List searchRecords) { @@ -1506,6 +1388,130 @@ public String normalizePartByDefForShowCreateTable(PartitionByNormalizationParam return sb.toString(); } + public static void normalizePartitions(PartitionsNormalizationParams params) { + StringBuilder sb = params.getBuilder(); + boolean usePartGroupNameAsPartName = params.isUsePartGroupNameAsPartName(); + Map partGrpNameInfo = params.getPartGrpNameInfo(); + boolean needSortPartitions = params.isNeedSortPartitions(); + boolean showHashByRange = params.isShowHashByRange(); + //int prefixPartColCnt = params.getPrefixPartColCnt(); + + List allLevelPrefixPartColCnt = params.getAllLevelPrefixPartColCnt(); + + boolean useSubPartBy = params.isUseSubPartBy(); + boolean useSubPartByTemp = params.isUseSubPartByTemp(); + boolean nextPartLevelUseTemp = params.isNextPartLevelUseTemp(); + boolean buildSubPartByTemp = params.isBuildSubPartByTemp(); + PartitionStrategy parentPartStrategy = params.getParentPartStrategy(); + SearchDatumComparator boundSpaceComparator = params.getBoundSpaceComparator(); + + List partSpecList = params.getPartSpecList(); + List orderedPartSpecList = params.getOrderedPartSpecList(); + String textIndentBase = params.getTextIndentBase(); + String textIndent = params.getTextIndent(); + if (textIndentBase == null) { + textIndentBase = ""; + } + if (textIndent == null) { + textIndent = ""; + } + if (needSortPartitions) { + partSpecList = orderedPartSpecList; + } + PartitionStrategy partStrategy = partSpecList.get(0).getStrategy(); + PartKeyLevel partKeyLevel = partSpecList.get(0).getPartLevel(); + boolean isSpecTemplate = partSpecList.get(0).isSpecTemplate(); + int i; + switch (partStrategy) { + case KEY: + case HASH: + case CO_HASH: + case DIRECT_HASH: + if (partKeyLevel == PartKeyLevel.PARTITION_KEY) { + if (!useSubPartBy) { + if (!showHashByRange) { + break; + } + } else { + if (nextPartLevelUseTemp) { + if (!showHashByRange) { + break; + } + } + } + } else if (partKeyLevel == PartKeyLevel.SUBPARTITION_KEY) { + if (buildSubPartByTemp) { + if (!showHashByRange) { + break; + } + } + } + case UDF_HASH: + case LIST: + case LIST_COLUMNS: + case RANGE: + case RANGE_COLUMNS: + + sb.append(textIndentBase); + sb.append(textIndent); + sb.append("("); + i = 0; + for (PartitionSpec pSpec : partSpecList) { + if (i > 0) { + sb.append(",\n"); + sb.append(textIndentBase); + sb.append(" "); + sb.append(textIndent); + } + String partGrpName = null; + if (usePartGroupNameAsPartName && partGrpNameInfo != null) { + if (!pSpec.isLogical()) { + partGrpName = partGrpNameInfo.get(pSpec.getLocation().getPartitionGroupId()); + } else { + partGrpName = pSpec.getName(); + } + } + PartSpecNormalizationParams normalSpecParams = new PartSpecNormalizationParams(); + normalSpecParams.setUsePartGroupNameAsPartName(usePartGroupNameAsPartName); + normalSpecParams.setPartGrpName(partGrpName); + normalSpecParams.setAllLevelPrefixPartColCnts(allLevelPrefixPartColCnt); + normalSpecParams.setPartSpec(pSpec); + normalSpecParams.setNeedSortBoundValues(needSortPartitions); + normalSpecParams.setPartGrpNameInfo(partGrpNameInfo); + normalSpecParams.setShowHashByRange(showHashByRange); + normalSpecParams.setBoundSpaceComparator(boundSpaceComparator); + normalSpecParams.setNeedSortPartitions(needSortPartitions); + normalSpecParams.setUseSubPartByTemp(useSubPartByTemp); + normalSpecParams.setTextIntentBase(textIndentBase); + sb.append(PartitionSpec.normalizePartSpec(normalSpecParams)); + i++; + } + sb.append(")"); + + if (buildSubPartByTemp) { + boolean hasMoreParentPartSpecsToShow = needShowMoreParentPartSpecs(showHashByRange, parentPartStrategy); + if (hasMoreParentPartSpecsToShow) { + sb.append('\n'); + } + } + break; + } + + //sb.append('\n'); + } + + private static boolean needShowMoreParentPartSpecs(boolean showHashByRange, + PartitionStrategy parentPartStrategy) { + boolean hasMoreParentPartSpecsToShow = true; + if (parentPartStrategy != null && (parentPartStrategy == PartitionStrategy.KEY + || parentPartStrategy == PartitionStrategy.HASH || parentPartStrategy == PartitionStrategy.DIRECT_HASH + || parentPartStrategy == PartitionStrategy.CO_HASH) + && !showHashByRange) { + hasMoreParentPartSpecsToShow = false; + } + return hasMoreParentPartSpecsToShow; + } + @Override public String toString() { PartitionByNormalizationParams partByNormParams = new PartitionByNormalizationParams(); diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/partition/PartitionInfoManager.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/partition/PartitionInfoManager.java index 35d5d32d1..f5b6021c6 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/partition/PartitionInfoManager.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/partition/PartitionInfoManager.java @@ -46,6 +46,7 @@ import java.sql.Connection; import java.util.HashMap; +import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Objects; @@ -140,7 +141,14 @@ protected void doDestroy() { public Set getPartitionTables() { Set tableNames = new TreeSet<>(CaseInsensitive.CASE_INSENSITIVE_ORDER); - tableNames.addAll(partInfoCtxCache.keySet()); + Iterator tblNameSetItor = partInfoCtxCache.keySet().iterator(); + while (tblNameSetItor.hasNext()) { + String tbName = tblNameSetItor.next(); + if (StringUtils.isEmpty(tbName)) { + continue; + } + tableNames.add(tbName); + } return tableNames; } diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/partition/PartitionLocator.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/partition/PartitionLocator.java index baab1546f..8e89b3c7d 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/partition/PartitionLocator.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/partition/PartitionLocator.java @@ -97,7 +97,7 @@ protected PartitionLocation computeLocationForRange(String dbName, String tbName //Long sortKey = (Long) partitionSpec.boundSpec.getSingleDatum().getSingletonValue().getValue(); Long sortKey = null; long sortKeyLongVal = sortKey.longValue(); - long mmhVal = MurmurHashUtils.murmurHashWithZeroSeed(sortKeyLongVal); + long mmhVal = MurmurHashUtils.murmurHash128WithZeroSeed(sortKeyLongVal); int grpIdx = findGroupIndex(mmhVal); String phyTableName = String.format(PHYSICAL_TABLENAME_PATTERN, tbName, posi); diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/partition/PartitionSpec.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/partition/PartitionSpec.java index 80edabe30..f3d762b1a 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/partition/PartitionSpec.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/partition/PartitionSpec.java @@ -513,6 +513,7 @@ public String toString() { normalSpecParams.setBoundSpaceComparator(boundSpaceComparator); normalSpecParams.setNeedSortPartitions(false); normalSpecParams.setUseSubPartByTemp(false); + normalSpecParams.setTextIntentBase(""); return normalizePartSpec(normalSpecParams); } diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/partition/datatype/function/LeftPartitionFunction.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/partition/datatype/function/LeftPartitionFunction.java index fa780a344..c1002d5c8 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/partition/datatype/function/LeftPartitionFunction.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/partition/datatype/function/LeftPartitionFunction.java @@ -18,14 +18,11 @@ import com.alibaba.polardbx.common.exception.NotSupportException; import com.alibaba.polardbx.common.utils.time.calculator.MySQLIntervalType; -import com.alibaba.polardbx.optimizer.context.ExecutionContext; import com.alibaba.polardbx.optimizer.core.TddlOperatorTable; import com.alibaba.polardbx.optimizer.core.datatype.DataType; -import com.alibaba.polardbx.optimizer.core.datatype.DataTypeUtil; import com.alibaba.polardbx.optimizer.core.datatype.DataTypes; import com.alibaba.polardbx.optimizer.core.field.SessionProperties; import com.alibaba.polardbx.optimizer.partition.datatype.PartitionField; -import com.alibaba.polardbx.optimizer.utils.FunctionUtils; import io.airlift.slice.Slice; import org.apache.calcite.sql.SqlOperator; @@ -135,6 +132,14 @@ public String[] getFunctionNames() { return new String[] {"LeftPartition"}; } + @Override + public DataType getReturnType() { + if (this.resultField != null) { + return resultField.getDataType(); + } else { + return DataTypes.VarcharType; + } + } @Override public int hashCode() { diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/partition/datatype/function/RightPartitionFunction.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/partition/datatype/function/RightPartitionFunction.java index 125b03512..add7a0da8 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/partition/datatype/function/RightPartitionFunction.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/partition/datatype/function/RightPartitionFunction.java @@ -17,16 +17,12 @@ package com.alibaba.polardbx.optimizer.partition.datatype.function; import com.alibaba.polardbx.common.exception.NotSupportException; -import com.alibaba.polardbx.common.utils.TStringUtil; import com.alibaba.polardbx.common.utils.time.calculator.MySQLIntervalType; -import com.alibaba.polardbx.optimizer.context.ExecutionContext; import com.alibaba.polardbx.optimizer.core.TddlOperatorTable; import com.alibaba.polardbx.optimizer.core.datatype.DataType; -import com.alibaba.polardbx.optimizer.core.datatype.DataTypeUtil; import com.alibaba.polardbx.optimizer.core.datatype.DataTypes; import com.alibaba.polardbx.optimizer.core.field.SessionProperties; import com.alibaba.polardbx.optimizer.partition.datatype.PartitionField; -import com.alibaba.polardbx.optimizer.utils.FunctionUtils; import io.airlift.slice.Slice; import org.apache.calcite.sql.SqlOperator; @@ -137,6 +133,14 @@ public String[] getFunctionNames() { return new String[] {"RightPartition"}; } + @Override + public DataType getReturnType() { + if (this.resultField != null) { + return resultField.getDataType(); + } else { + return DataTypes.VarcharType; + } + } @Override public int hashCode() { diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/partition/pruning/SearchDatumHasher.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/partition/pruning/SearchDatumHasher.java index 73242437f..7300d1e58 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/partition/pruning/SearchDatumHasher.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/partition/pruning/SearchDatumHasher.java @@ -213,7 +213,7 @@ public Long[] calcHashCodeForCoHashStrategy(ExecutionContext ec, SearchDatumInfo } protected long doMurmurHash(long multiFiledHashCode) { - long finalHashVal = MurmurHashUtils.murmurHashWithZeroSeed(multiFiledHashCode); + long finalHashVal = MurmurHashUtils.murmurHash128WithZeroSeed(multiFiledHashCode); /** * Make sure that all the hashCode are in the ragne [Long.MIN_VALUE+1,Long.MAX_VALUE-1] because diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/partition/util/PartitionPruneStepVisitor.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/partition/util/PartitionPruneStepVisitor.java new file mode 100644 index 000000000..1286366af --- /dev/null +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/partition/util/PartitionPruneStepVisitor.java @@ -0,0 +1,91 @@ +/* + * Copyright [2013-2021], Alibaba Group Holding Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.alibaba.polardbx.optimizer.partition.util; + +import com.alibaba.polardbx.optimizer.partition.pruning.PartClauseInfo; +import com.alibaba.polardbx.optimizer.partition.pruning.PartClauseIntervalInfo; +import com.alibaba.polardbx.optimizer.partition.pruning.PartPredPathInfo; +import com.alibaba.polardbx.optimizer.partition.pruning.PartPredPathItem; +import com.alibaba.polardbx.optimizer.partition.pruning.PartitionPruneStep; +import com.alibaba.polardbx.optimizer.partition.pruning.PartitionPruneStepCombine; +import com.alibaba.polardbx.optimizer.partition.pruning.PartitionPruneStepOp; +import org.apache.calcite.rex.RexDynamicParam; +import org.apache.calcite.rex.RexNode; + +import java.util.HashSet; +import java.util.Set; + +/** + * @author fangwu + */ +public class PartitionPruneStepVisitor { + + private Set dynamicIndexList = new HashSet<>(); + + public void visitCombine(PartitionPruneStepCombine combineStep) { + for (PartitionPruneStep step : combineStep.getSubSteps()) { + visit(step); + } + } + + public void visitOp(PartitionPruneStepOp opStep) { + if (opStep == null) { + return; + } + PartPredPathInfo partPredPathInfo = opStep.getPartPredPathInfo(); + + if (partPredPathInfo != null) { + PartPredPathItem prefixPathItem = partPredPathInfo.getPrefixPathItem(); + if (prefixPathItem != null) { + PartClauseIntervalInfo[] partIntervalArr = + new PartClauseIntervalInfo[partPredPathInfo.getPartKeyEnd() + 1]; + prefixPathItem.toPartClauseInfoArray(partIntervalArr); + for (PartClauseIntervalInfo partClauseIntervalInfo : partIntervalArr) { + if (partClauseIntervalInfo != null) { + PartClauseInfo partClause = partClauseIntervalInfo.getPartClause(); + if (partClause != null) { + RexNode rexNode = partClause.getConstExpr(); + if (rexNode instanceof RexDynamicParam) { + RexDynamicParam param = (RexDynamicParam) rexNode; + if (param.getIndex() >= 0) { + dynamicIndexList.add(param.getIndex() + 1); + } + } + } + } + } + } + } + } + + public void visit(PartitionPruneStep step) { + if (step == null) { + return; + } + if (step instanceof PartitionPruneStepCombine) { + visitCombine((PartitionPruneStepCombine) step); + } else if (step instanceof PartitionPruneStepOp) { + visitOp((PartitionPruneStepOp) step); + } else { + throw new UnsupportedOperationException(" partition prune step : " + step.getStepDigest()); + } + } + + public Set getDynamicIndexList() { + return dynamicIndexList; + } +} diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/planmanager/PlanManager.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/planmanager/PlanManager.java index 5381938fd..ef58ce7eb 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/planmanager/PlanManager.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/planmanager/PlanManager.java @@ -198,7 +198,8 @@ public ExecutionPlan choosePlan(SqlParameterized sqlParameterized, ExecutionCont executionPlan = executionPlan.copy(executionPlan.getPlan()); } executionPlan.setUsePostPlanner( - PostPlanner.usePostPlanner(executionContext.getExplain(), executionContext.isUseHint())); + PostPlanner.usePostPlanner(executionContext.getExplain(), + executionContext.isUseHint())); executionPlan.setExplain(executionContext.getExplain() != null); if (!PlanManagerUtil.useSPM(schemaName, executionPlan, sqlParameterized.getSql(), executionContext) diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/rel/rel2sql/TddlRelToSqlConverter.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/rel/rel2sql/TddlRelToSqlConverter.java index d097a2a66..59eb61b1b 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/rel/rel2sql/TddlRelToSqlConverter.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/rel/rel2sql/TddlRelToSqlConverter.java @@ -29,18 +29,13 @@ import org.apache.calcite.rel.rel2sql.RelToSqlConverter; import org.apache.calcite.rel.type.RelDataType; import org.apache.calcite.rel.type.RelDataTypeField; -import org.apache.calcite.rex.RexDynamicParam; import org.apache.calcite.rex.RexNode; -import org.apache.calcite.sql.SqlBasicCall; -import org.apache.calcite.sql.SqlCall; import org.apache.calcite.sql.SqlDialect; -import org.apache.calcite.sql.SqlDynamicParam; import org.apache.calcite.sql.SqlIdentifier; import org.apache.calcite.sql.SqlNode; import org.apache.calcite.sql.SqlNodeList; import org.apache.calcite.sql.fun.SqlStdOperatorTable; import org.apache.calcite.sql.parser.SqlParserPos; -import org.apache.calcite.sql.type.SqlTypeName; import org.apache.calcite.util.Util; import java.util.ArrayList; @@ -81,11 +76,14 @@ public Result visit(TableScan e) { //} // MySQL only support syntax showed above. // So that we must put AS OF in front of alias and index_hint_list behind alias + //将flashback表达式转成SqlNode + final Map pairs = ImmutableMap.of(); + final Context context = aliasContext(pairs, false); + SqlNode flashbackSqlNode = context.toSql(null, flashback); + final SqlIdentifier tsIdentifier = new SqlIdentifier(identifier.names, null, SqlParserPos.ZERO, null, identifier.indexNode, - identifier.partitions, - new SqlDynamicParam(((RexDynamicParam) flashback).getIndex(), SqlTypeName.TIMESTAMP, - SqlParserPos.ZERO)); + identifier.partitions, flashbackSqlNode, e.getFlashbackOperator()); result = result(tsIdentifier, ImmutableList.of(Clause.FROM), e, null); } else { result = result(identifier, ImmutableList.of(Clause.FROM), e, null); diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/sql/sql2rel/TddlSqlToRelConverter.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/sql/sql2rel/TddlSqlToRelConverter.java index 5fece1d66..a6645cfbb 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/sql/sql2rel/TddlSqlToRelConverter.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/sql/sql2rel/TddlSqlToRelConverter.java @@ -185,8 +185,9 @@ public TddlSqlToRelConverter(DrdsViewExpander viewExpander, SqlValidator validat public TddlSqlToRelConverter(DrdsViewExpander viewExpander, SqlValidator validator, CatalogReader catalogReader, RelOptCluster cluster, SqlRexConvertletTable convertletTable, Config config, - PlannerContext plannerContext, int inSubQueryThreshold) { - super(viewExpander, validator, catalogReader, cluster, convertletTable, config, inSubQueryThreshold); + PlannerContext plannerContext, int inSubQueryThreshold, boolean isRemoveDistinct) { + super(viewExpander, validator, catalogReader, cluster, convertletTable, config, inSubQueryThreshold, + isRemoveDistinct); this.plannerContext = plannerContext; } diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/tablegroup/TableGroupInfoManager.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/tablegroup/TableGroupInfoManager.java index adacb3227..90f8f10d9 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/tablegroup/TableGroupInfoManager.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/tablegroup/TableGroupInfoManager.java @@ -326,6 +326,14 @@ public void putMockEntry(PartitionInfo partitionInfo) { Map> subPartRecInfos = PartitionInfoUtil .prepareRecordForAllSubpartitions(partRecList, partitionInfo, partitionInfo.getPartitionBy().getPartitions()); + List allPhyPartRecInfos = new ArrayList<>(); + if (partitionInfo.getPartitionBy().getSubPartitionBy() != null) { + for (int i = 0; i < partRecList.size(); i++) { + allPhyPartRecInfos.addAll(subPartRecInfos.get(partRecList.get(i).getPartName())); + } + } else { + allPhyPartRecInfos = partRecList; + } TableGroupRecord tableGroupRecord = null; List partitionGroupRecords = null; @@ -368,7 +376,7 @@ public void putMockEntry(PartitionInfo partitionInfo) { for (PartitionGroupRecord partitionGroupRecord : partitionGroupRecords) { partitionGroupRecord.id = maxPartGroupId + 1; maxPartGroupId = maxPartGroupId + 1; - TablePartitionRecord tablePartitionRecord = partRecList.stream() + TablePartitionRecord tablePartitionRecord = allPhyPartRecInfos.stream() .filter(o -> o.partName.equalsIgnoreCase(partitionGroupRecord.partition_name)).findFirst() .orElse(null); assert tablePartitionRecord != null; diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/utils/ForeignKeyUtils.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/utils/ForeignKeyUtils.java index 345647acd..2a7406a8e 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/utils/ForeignKeyUtils.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/utils/ForeignKeyUtils.java @@ -577,14 +577,14 @@ public static void checkSetForeignKey(SqlAlterTable sqlAlterTable, PlannerContex // Fake one meta and do check push down. final ForeignKeyData foreignKeyData = new ForeignKeyData(); foreignKeyData.constraint = foreignKey.getConstraint() != null ? - SQLUtils.normalize(foreignKey.getConstraint().getLastName()) : null; + SQLUtils.normalizeNoTrim(foreignKey.getConstraint().getLastName()) : null; foreignKeyData.indexName = foreignKey.getIndexName() != null ? - SQLUtils.normalize(foreignKey.getIndexName().getLastName()) : null; + SQLUtils.normalizeNoTrim(foreignKey.getIndexName().getLastName()) : null; foreignKeyData.columns = foreignKey.getIndexDef().getColumns().stream() .map(c -> c.getColumnNameStr().toLowerCase()).collect(Collectors.toList()); foreignKeyData.refSchema = foreignKey.getSchemaName(); foreignKeyData.refTableName = - SQLUtils.normalize( + SQLUtils.normalizeNoTrim( foreignKey.getReferenceDefinition().getTableName().getLastName().toLowerCase()); foreignKeyData.refColumns = foreignKey.getReferenceDefinition().getColumns().stream() diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/utils/MultiRawStringPruningIterator.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/utils/MultiRawStringPruningIterator.java new file mode 100644 index 000000000..a4654810e --- /dev/null +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/utils/MultiRawStringPruningIterator.java @@ -0,0 +1,84 @@ +/* + * Copyright [2013-2021], Alibaba Group Holding Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.alibaba.polardbx.optimizer.utils; + +import com.alibaba.polardbx.common.jdbc.PruneRawString; +import com.alibaba.polardbx.common.jdbc.RawString; +import com.alibaba.polardbx.common.utils.Pair; + +import java.util.Map; + +/** + * iterator for multi raw string pruning + * + * @author fangwu + */ +public class MultiRawStringPruningIterator implements PruningRawStringStep { + private final int pruningTime; + private final Pair[] pruneRawStringArr; + private int current = 0; + private int rawStringSize; + + public MultiRawStringPruningIterator(int pruningTime, Map rawStringMap) { + this.pruningTime = pruningTime; + this.rawStringSize = rawStringMap.size(); + this.pruneRawStringArr = new Pair[rawStringSize]; + int index = 0; + for (Map.Entry entry : rawStringMap.entrySet()) { + this.pruneRawStringArr[index++] = Pair.of(entry.getKey(), entry.getValue().pruneStep(0)); + } + } + + @Override + public boolean hasNext() { + return current < pruningTime; + } + + @Override + public Void next() { + if (!hasNext()) { + throw new IllegalStateException("No more elements in the MultiRawStringPruningIterator."); + } + int totalSize = pruningTime; + int currentIndex = current; + for (int dim = 0; dim < rawStringSize; dim++) { + Pair pair = pruneRawStringArr[dim]; + int rawStringSize = pair.getValue().getSourceSize(); + int otherSize = totalSize / rawStringSize; + int curIndex = currentIndex / otherSize; + currentIndex = currentIndex % otherSize; + totalSize = otherSize; + pair.getValue().pruneStep(curIndex); + } + current++; + return null; + } + + @Override + public Pair[] getTargetPair() { + return pruneRawStringArr; + } + + @Override + public int[] getTargetIndex() { + int[] targetIndex = new int[rawStringSize]; + for (int i = 0; i < rawStringSize; i++) { + targetIndex[i] = pruneRawStringArr[i].getKey(); + } + return targetIndex; + } +} diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/utils/OptimizerUtils.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/utils/OptimizerUtils.java index 1c26f05ea..c0b31625c 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/utils/OptimizerUtils.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/utils/OptimizerUtils.java @@ -19,15 +19,32 @@ import com.alibaba.polardbx.common.exception.NotSupportException; import com.alibaba.polardbx.common.jdbc.ParameterContext; import com.alibaba.polardbx.common.jdbc.ParameterMethod; +import com.alibaba.polardbx.common.jdbc.Parameters; +import com.alibaba.polardbx.common.jdbc.PruneRawString; import com.alibaba.polardbx.common.jdbc.RawString; +import com.alibaba.polardbx.common.model.sqljep.Comparative; +import com.alibaba.polardbx.common.model.sqljep.ComparativeOR; +import com.alibaba.polardbx.common.model.sqljep.DynamicComparative; +import com.alibaba.polardbx.common.properties.ConnectionParams; +import com.alibaba.polardbx.common.properties.DynamicConfig; import com.alibaba.polardbx.common.utils.ExecutorMode; +import com.alibaba.polardbx.common.utils.Pair; import com.alibaba.polardbx.config.ConfigDataMode; import com.alibaba.polardbx.druid.sql.ast.SqlType; import com.alibaba.polardbx.optimizer.context.ExecutionContext; import com.alibaba.polardbx.optimizer.core.planner.Planner; import com.alibaba.polardbx.optimizer.core.rel.LogicalView; +import com.alibaba.polardbx.optimizer.core.rel.ShardProcessor; +import com.alibaba.polardbx.optimizer.core.rel.SimpleShardProcessor; +import com.alibaba.polardbx.optimizer.optimizeralert.OptimizerAlertManager; +import com.alibaba.polardbx.optimizer.optimizeralert.OptimizerAlertType; import com.alibaba.polardbx.optimizer.parse.bean.PreparedParamRef; +import com.alibaba.polardbx.optimizer.partition.pruning.PartPrunedResult; +import com.alibaba.polardbx.optimizer.partition.pruning.PartitionPrunerUtils; +import com.alibaba.polardbx.optimizer.rule.TddlRuleManager; +import com.alibaba.polardbx.rule.TableRule; import com.google.common.collect.Lists; +import com.google.common.collect.Maps; import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; import org.apache.calcite.rel.RelNode; import org.apache.calcite.rel.RelVisitor; @@ -47,14 +64,19 @@ import java.text.ParsePosition; import java.text.SimpleDateFormat; import java.util.ArrayList; +import java.util.BitSet; +import java.util.Comparator; import java.util.Date; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Locale; import java.util.Map; +import java.util.Set; import static com.alibaba.polardbx.common.jdbc.ITransactionPolicy.TransactionClass.EXPLICIT_TRANSACTION; import static com.alibaba.polardbx.common.jdbc.ITransactionPolicy.TransactionClass.SUPPORT_SHARE_READVIEW_TRANSACTION; +import static java.util.Collections.EMPTY_SET; /** * @since 5.0.0 @@ -87,6 +109,21 @@ public static String buildInExprKey(Map currentParame } } + public static Set getInParamsIndexes(ExecutionContext ec) { + if (ec.getParams() == null) { + return EMPTY_SET; + } + Set rs = new HashSet<>(); + Map currentParameter = ec.getParams().getCurrentParameter(); + for (int i = 1; i <= currentParameter.size(); i++) { + ParameterContext pc = currentParameter.get(i); + if (pc != null && pc.getValue() instanceof RawString) { + rs.add(i); + } + } + return rs; + } + public static String buildInExprKey(ExecutionContext ec) { if (ec.getParams() == null) { return EMPTY_KEY; @@ -357,6 +394,405 @@ boolean run(RelNode node) { return new RelSemiJoinFinder().run(rootRel); } + public static Map>, Parameters> pruningInValue(LogicalView lv, + ExecutionContext context) { + if (!DynamicConfig.getInstance().isEnablePruningIn()) { + return null; + } + Set shardIndexes = lv.getPushDownOpt().getShardRelatedInTypeParamIndexes(); + if (shardIndexes != null) { + Pair[] rawStrings = findAllRawStrings(shardIndexes, context); + int maxPruneTime = context.getParamManager().getInt(ConnectionParams.IN_PRUNE_MAX_TIME); + Parameters requestParams = context.getParams(); + if (requestParams == null || rawStrings.length == 0) { + return null; + } + + PruningRawStringStep iterator = OptimizerUtils.iterateRawStrings(rawStrings, maxPruneTime); + if (iterator == null) { + return null; + } + // final result + Map>, Parameters> pruningResult; + + // start pruning + long startTime = System.currentTimeMillis(); + Pair[] pruningPairArr = iterator.getTargetPair(); + + // reuse parameter and execution context for pruning + Parameters parameters = copy(requestParams, pruningPairArr, false); + + if (lv.isNewPartDbTbl()) { + // pruning + Pair, Parameters>, List> pair = + pruningPartTable(lv, iterator, parameters, context); + if (pair == null) { + // meaning full scan + return null; + } + + // merge + pruningResult = mergePartTablePruningResult(pair, iterator.getTargetIndex()); + } else { + Pair pair = couldSimpleShard(lv, context); + if (pair != null) { + // rawStrings length must be one in simple shard mode + int rawStringIndex = rawStrings[0].getKey(); + List pruningObject = rawStrings[0].getValue().getObjList(); + + // simple pruning + Map bitSetMap = simplePruning(lv, context, rawStringIndex, pair.getValue()); + + // merge result + pruningResult = + mergeSimplePruning(lv, context, bitSetMap, rawStringIndex, pruningObject, parameters); + } else { + // shard pruning has no middle pruning result:bitset. and this will make it merging slow + pruningResult = pruningShardTable(lv, iterator, context, parameters, pruningPairArr); + } + } + long endTime = System.currentTimeMillis(); + long pruningTime = endTime - startTime; + if (pruningTime > DynamicConfig.getInstance().getPruningTimeWarningThreshold()) { + OptimizerAlertManager.getInstance().log(OptimizerAlertType.PRUNING_SLOW, context); + } + context.addPruningTime(pruningTime); + return pruningResult; + } + return null; + } + + /** + * pruning and merge result in a same iterator, this might be really slow + */ + private static Map>, Parameters> pruningShardTable(LogicalView lv, + PruningRawStringStep iterator, + ExecutionContext context, + Parameters parameters, + Pair[] pruningPairArr) { + Map>, Parameters> pruningResult = Maps.newHashMap(); + ExecutionContext contextForInPruning = new ExecutionContext(context.getSchemaName()); + contextForInPruning.setParamManager(context.getParamManager()); + contextForInPruning.setParams(parameters); + boolean checked = false; + while (iterator.hasNext()) { + iterator.next(); + Map>> groupAndTables = lv.buildTargetTables(contextForInPruning); + + if (!checked) { + checked = true; + int shardCount = 0; + for (List list : groupAndTables.values()) { + shardCount += list.size(); + } + if (shardCount == lv.getTotalShardCount()) { + // meaning full scan + return null; + } + } + + // merge result + for (Map.Entry>> entry1 : groupAndTables.entrySet()) { + String group = entry1.getKey(); + List> tables = entry1.getValue(); + for (List tbls : tables) { + Pair> pairs = new Pair<>(group, tbls); + if (pruningResult.get(pairs) == null) { + pruningResult.put(pairs, copy(parameters, pruningPairArr, true)); + } else { + mergeRawStringParameters(pruningResult.get(pairs), pruningPairArr); + } + } + } + } + return pruningResult; + } + + /** + * merge pruning result for simple shard table + */ + private static Map>, Parameters> mergeSimplePruning(LogicalView lv, + ExecutionContext executionContext, + Map bitSetMap, + int rawStringIndex, + List pruningObject, + Parameters parameters) { + Map>, Parameters> pruningResult = Maps.newHashMap(); + TddlRuleManager or = executionContext.getSchemaManager().getTddlRuleManager(); + TableRule tr = or.getTableRule(lv.getShardingTable()); + + for (Map.Entry entry : bitSetMap.entrySet()) { + int shard = entry.getKey(); + BitSet bitSet = entry.getValue(); + Pair> pairs = + new Pair<>(tr.getDbNames()[shard], Lists.newArrayList(tr.getTbNames()[shard])); + Pair[] pruningPairArrTmp = new Pair[1]; + pruningPairArrTmp[0] = new Pair<>(rawStringIndex, + new PruneRawString(pruningObject, PruneRawString.PRUNE_MODE.MULTI_INDEX, -1, -1, bitSet)); + pruningResult.put(pairs, copy(parameters, pruningPairArrTmp, false)); + } + return pruningResult; + } + + /** + * simple pruning for shard table, pretty fast + * + * @return shard index -> bitset for pruning value + */ + private static Map simplePruning(LogicalView lv, ExecutionContext executionContext, + int rawStringIndex, int skIndex) { + SimpleShardProcessor simpleShardProcessor = + ShardProcessor.buildSimple(lv, lv.getShardingTable(), executionContext); + ParameterContext pc = executionContext.getParams().getCurrentParameter().get(rawStringIndex); + RawString rawString = (RawString) pc.getValue(); + Map bitSetMap = Maps.newHashMap(); + for (int i = 0; i < rawString.size(); i++) { + Object obj = rawString.getObj(i, skIndex); + int shard = simpleShardProcessor.simpleShard(obj, executionContext.getEncoding()); + bitSetMap.computeIfAbsent(shard, k -> new BitSet()).set(i); + } + return bitSetMap; + } + + /** + * merge pruning result for part table + */ + private static Map>, Parameters> mergePartTablePruningResult( + Pair, Parameters>, List> pair, int[] pruningTargetIndex) { + Map>, Parameters> pruneRawStringMap = Maps.newHashMap(); + Map, Parameters> pruningMapForPartTable = pair.getKey(); + List partPrunedResultsCache = pair.getValue(); + + for (Map.Entry, Parameters> entry : pruningMapForPartTable.entrySet()) { + // transform bitset to PartPrunedResult + List partPrunedResultsTmp = Lists.newArrayList(); + for (int i = 0; i < partPrunedResultsCache.size(); i++) { + PartPrunedResult partPrunedResult = partPrunedResultsCache.get(i).copy(); + partPrunedResult.setPartBitSet(entry.getKey().get(i)); + partPrunedResultsTmp.add(partPrunedResult); + } + Map>> groupAndTbl = + PartitionPrunerUtils.buildTargetTablesByPartPrunedResults(partPrunedResultsTmp); + + Parameters beMerged = entry.getValue(); + // one bitset represents multi group&shard table + for (Map.Entry>> entry1 : groupAndTbl.entrySet()) { + String group = entry1.getKey(); + List> tables = entry1.getValue(); + + for (List tbls : tables) { + // logical view might have multi logical table pushed, + // tbls represents physical table for each logical table + Pair> pairs = new Pair<>(group, tbls); + if (pruneRawStringMap.get(pairs) == null) { + pruneRawStringMap.put(pairs, copy(entry.getValue(), pruningTargetIndex, true)); + } else { + Parameters merge = pruneRawStringMap.get(pairs); + for (int rawStringIndex : pruningTargetIndex) { + PruneRawString pruneRawStringMerge = + (PruneRawString) merge.getCurrentParameter().get(rawStringIndex).getValue(); + PruneRawString pruneRawStringBeMerged = + (PruneRawString) beMerged.getCurrentParameter().get(rawStringIndex).getValue(); + pruneRawStringMerge.merge(pruneRawStringBeMerged); + } + } + } + } + } + return pruneRawStringMap; + } + + /** + * pruning part table + * + * @param lv target logicalview + * @param iterator pruning iterator + * @param parameters pruning parameters + * @param context execution context + * @return pruning result and prunedResult + */ + private static Pair, Parameters>, List> pruningPartTable(LogicalView lv, + PruningRawStringStep iterator, + Parameters parameters, + ExecutionContext context) { + boolean checked = false; + List partPrunedResultsCache = null; + ExecutionContext contextForInPruning = new ExecutionContext(context.getSchemaName()); + contextForInPruning.setParamManager(context.getParamManager()); + contextForInPruning.setParams(parameters); + + Pair[] pruningPairArr = iterator.getTargetPair(); + + // use bitset to represent part table when process iterate and pruning + Map, Parameters> pruningMapForPartTable = Maps.newHashMap(); + + while (iterator.hasNext()) { + iterator.next(); + + // pruning part table + List partPrunedResults = lv.getPartPrunedResults(contextForInPruning); + + // transform PartPrunedResult to bitset list + List physicalPartBitSet = Lists.newArrayList(); + for (int i = 0; i < partPrunedResults.size(); i++) { + physicalPartBitSet.add(partPrunedResults.get(i).getPhysicalPartBitSet()); + } + + // full scan check + if (!checked) { + checked = true; + partPrunedResultsCache = partPrunedResults; + + int shardCount = partPrunedResults.get(0).getPartBitSet().cardinality(); + if (shardCount == partPrunedResults.get(0).getPartInfo().getAllPhysicalPartitionCount()) { + return null; + } + } + + // record pruning result by bitset list + if (pruningMapForPartTable.get(physicalPartBitSet) == null) { + pruningMapForPartTable.put(physicalPartBitSet, copy(parameters, pruningPairArr, true)); + } else { + mergeRawStringParameters(pruningMapForPartTable.get(physicalPartBitSet), pruningPairArr); + } + } + return Pair.of(pruningMapForPartTable, partPrunedResultsCache); + } + + private static Parameters copy(Parameters parameters, int[] targetIndex, boolean clonePruning) { + // deep copy + Parameters newParams = parameters.clone(); + for (int index : targetIndex) { + ParameterContext pc = newParams.getCurrentParameter().get(index); + PruneRawString pruneRawString = (PruneRawString) pc.getValue(); + ParameterContext newContext = new ParameterContext(); + newContext.setParameterMethod(pc.getParameterMethod()); + newContext.setArgs(new Object[] {index, clonePruning ? pruneRawString.clone() : pruneRawString}); + newParams.getCurrentParameter().put(index, newContext); + } + return newParams; + } + + private static Pair couldSimpleShard(LogicalView lv, ExecutionContext executionContext) { + // check rule + if (lv.getTableNames().size() != 1) { + return null; + } + String tableName = lv.getTableNames().get(0); + TableRule tr = + executionContext.getSchemaManager(lv.getSchemaName()).getTddlRuleManager().getTableRule(tableName); + if (!ShardProcessor.isSimpleRule(tr)) { + return null; + } + Map comparativeMap = lv.getComparative(); + if (comparativeMap.size() != 1) { + return null; + } + if (tr.getShardColumns().size() != 1) { + return null; + } + if (!comparativeMap.containsKey(tr.getShardColumns().get(0))) { + return null; + } + + // check comparative + Comparative comparative = comparativeMap.values().iterator().next(); + if (comparative instanceof ComparativeOR) { + ComparativeOR comparativeOR = (ComparativeOR) comparative; + if (comparativeOR.getList().size() != 1) { + return null; + } + Comparative comparativeSub = comparativeOR.getList().get(0); + if (!(comparativeSub instanceof DynamicComparative)) { + return null; + } + DynamicComparative dynamicComparative = (DynamicComparative) comparativeSub; + if (dynamicComparative.getComparison() != Comparative.Equivalent) { + return null; + } + Object value = dynamicComparative.getValue(); + if (!(value instanceof RexDynamicParam)) { + return null; + } else { + return Pair.of(((RexDynamicParam) value).getIndex(), dynamicComparative.getSkIndex()); + } + } + return null; + } + + private static Parameters copy(Parameters parameters, Pair[] pruningPairArr, + boolean clonePruning) { + // deep copy + Parameters newParams = parameters.clone(); + for (Pair p : pruningPairArr) { + PruneRawString pruneRawString = p.getValue(); + ParameterContext pc = newParams.getCurrentParameter().get(p.getKey()); + ParameterContext newContext = new ParameterContext(); + newContext.setParameterMethod(pc.getParameterMethod()); + newContext.setArgs(new Object[] {p.getKey(), clonePruning ? pruneRawString.clone() : pruneRawString}); + newParams.getCurrentParameter().put(p.getKey(), newContext); + } + return newParams; + } + + public static PruningRawStringStep iterateRawStrings(Pair[] rawStrings, int maxPruneTime) { + if (rawStrings.length == 1) { + Integer rawStringIndex = rawStrings[0].getKey(); + RawString rawString = rawStrings[0].getValue(); + int pruningTime = rawString.size(); + if (pruningTime > maxPruneTime) { + return null; + } + return new SingleRawStringPruningIterator(rawString, rawStringIndex); + } + Map rawStringPruningMap = new HashMap<>(); + int currentPruningTime = 1; + for (int i = rawStrings.length - 1; i >= 0; i--) { + Pair pair = rawStrings[i]; + if (currentPruningTime * pair.getValue().size() > maxPruneTime) { + return null; + } + currentPruningTime = currentPruningTime * pair.getValue().size(); + rawStringPruningMap.put(pair.getKey(), pair.getValue()); + } + if (currentPruningTime == 1) { + return null; + } + + return new MultiRawStringPruningIterator(currentPruningTime, rawStringPruningMap); + } + + static void mergeRawStringParameters(Parameters parameterContexts, Pair[] r) { + for (Pair pair : r) { + Integer index = pair.getKey(); + PruneRawString pruneRawString = pair.getValue(); + RawString rawString = (RawString) parameterContexts.getCurrentParameter().get(index).getValue(); + if (rawString instanceof PruneRawString) { + ((PruneRawString) rawString).merge(pruneRawString); + } + } + } + + public static Pair[] findAllRawStrings(Set shardIndexes, + ExecutionContext executionContext) { + List> allRawString = Lists.newArrayList(); + if (executionContext.getParams() != null && shardIndexes != null) { + Map parameterContextMap = executionContext.getParams().getCurrentParameter(); + + for (int shardIndex : shardIndexes) { + ParameterContext parameterContext = parameterContextMap.get(shardIndex); + if (parameterContext.getValue() instanceof RawString) { + RawString rawString = (RawString) parameterContext.getValue(); + allRawString.add(Pair.of(shardIndex, rawString)); + } else { + // TODO warning + } + } + } + allRawString.sort(Comparator.comparingInt(o -> o.getValue().size())); + return allRawString.toArray(new Pair[0]); + } + static public class DynamicDeepFinder extends RexVisitorImpl { private List scalar; diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/utils/PhyTableOperationUtil.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/utils/PhyTableOperationUtil.java index d1845e50a..b29f04c15 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/utils/PhyTableOperationUtil.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/utils/PhyTableOperationUtil.java @@ -25,6 +25,7 @@ import com.alibaba.polardbx.common.utils.logger.Logger; import com.alibaba.polardbx.common.utils.logger.LoggerFactory; import com.alibaba.polardbx.gms.topology.DbInfoManager; +import com.alibaba.polardbx.gms.topology.DbTopologyManager; import com.alibaba.polardbx.gms.util.GroupInfoUtil; import com.alibaba.polardbx.optimizer.OptimizerContext; import com.alibaba.polardbx.optimizer.config.table.SchemaManager; diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/utils/PlannerUtils.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/utils/PlannerUtils.java index 1d71e0f9d..ecbb5b743 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/utils/PlannerUtils.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/utils/PlannerUtils.java @@ -27,20 +27,17 @@ import com.alibaba.polardbx.common.model.sqljep.ComparativeAND; import com.alibaba.polardbx.common.model.sqljep.ComparativeBaseList; import com.alibaba.polardbx.common.model.sqljep.ComparativeOR; -import com.alibaba.polardbx.common.utils.ExecutorMode; import com.alibaba.polardbx.common.utils.GeneralUtil; import com.alibaba.polardbx.common.utils.TStringUtil; import com.alibaba.polardbx.common.utils.logger.Logger; import com.alibaba.polardbx.common.utils.logger.LoggerFactory; import com.alibaba.polardbx.config.ConfigDataMode; -import com.alibaba.polardbx.druid.sql.ast.SqlType; import com.alibaba.polardbx.gms.topology.DbInfoManager; import com.alibaba.polardbx.optimizer.OptimizerContext; import com.alibaba.polardbx.optimizer.config.meta.DrdsRelMetadataProvider; import com.alibaba.polardbx.optimizer.config.table.TableMeta; import com.alibaba.polardbx.optimizer.context.ExecutionContext; import com.alibaba.polardbx.optimizer.core.datatype.DataType; -import com.alibaba.polardbx.optimizer.core.rel.LogicalView; import com.alibaba.polardbx.optimizer.core.rel.util.DynamicParamInfo; import com.alibaba.polardbx.optimizer.core.rel.util.IndexedDynamicParamInfo; import com.alibaba.polardbx.optimizer.core.rel.util.RuntimeFilterDynamicParamInfo; @@ -89,6 +86,7 @@ import org.apache.calcite.sql.parser.SqlParserPos; import org.apache.calcite.sql.util.SqlShuttle; import org.apache.calcite.tools.RelBuilder; +import org.apache.calcite.util.ImmutableBitSet; import org.apache.calcite.util.Permutation; import org.apache.calcite.util.Util; import org.apache.commons.collections.CollectionUtils; @@ -108,9 +106,6 @@ import java.util.Set; import java.util.stream.Collectors; -import static com.alibaba.polardbx.common.jdbc.ITransactionPolicy.TransactionClass.EXPLICIT_TRANSACTION; -import static com.alibaba.polardbx.common.jdbc.ITransactionPolicy.TransactionClass.SUPPORT_SHARE_READVIEW_TRANSACTION; - /** * @author lingce.ldm 2017-11-16 10:20 */ @@ -802,6 +797,22 @@ public static boolean shouldNotPushDistinctAgg(LogicalAggregate agg, List shardIndex, LogicalAggregate aggregate) { + boolean enableSplitDistinct = true; + for (int i = 0; i < aggregate.getAggCallList().size(); ++i) { + AggregateCall aggregateCall = aggregate.getAggCallList().get(i); + if (aggregateCall.isDistinct()) { + final List argList = aggregateCall.getArgList(); + final ImmutableBitSet distinctArg = ImmutableBitSet.builder() + .addAll(argList) + .build(); + final List columns = aggregate.getGroupSet().union(distinctArg).toList(); + enableSplitDistinct = enableSplitDistinct && shardIndex.stream().allMatch(columns::contains); + } + } + return enableSplitDistinct; + } + public static boolean isAllowedAggWithDistinct(LogicalAggregate agg, List shardColumns) { List aggCalls = agg.getAggCallList(); /** diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/utils/PruningRawStringStep.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/utils/PruningRawStringStep.java new file mode 100644 index 000000000..9a7862b38 --- /dev/null +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/utils/PruningRawStringStep.java @@ -0,0 +1,41 @@ +/* + * Copyright [2013-2021], Alibaba Group Holding Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.alibaba.polardbx.optimizer.utils; + +import com.alibaba.polardbx.common.jdbc.PruneRawString; +import com.alibaba.polardbx.common.utils.Pair; + +import java.util.Iterator; + +/** + * iterator for RawString object list, it can be used to prune RawString. + * each step will return a pair of index and pruneRawString + * + * @author fangwu + */ +public interface PruningRawStringStep extends Iterator { + + /** + * @return array: param index -> pruneRawString + */ + Pair[] getTargetPair(); + + /** + * @return param index array + */ + int[] getTargetIndex(); +} diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/utils/RexUtils.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/utils/RexUtils.java index 342be3680..d3a4619ea 100644 --- a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/utils/RexUtils.java +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/utils/RexUtils.java @@ -2050,4 +2050,29 @@ public void visit(Comparative comp, int ordinal, Comparative parent) { super.visit(comp, ordinal, parent); } } + + /** + * get all {@link RexDynamicParam} in a {@link Comparative} + */ + public static class RexDynamicParamFromComparativeVisitor extends ComparativeVisitor { + + private final List rexDynamicParams = Lists.newArrayList(); + + public RexDynamicParamFromComparativeVisitor() { + } + + @SuppressWarnings("unchecked") + @Override + public void visit(Comparative comp, int ordinal, Comparative parent) { + if (comp.getValue() instanceof RexNode) { + RexUtils.getDynamicParams((RexNode) comp.getValue()).forEach(rexDynamicParams::add); + } + + super.visit(comp, ordinal, parent); + } + + public List getRexDynamicParams() { + return rexDynamicParams; + } + } } diff --git a/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/utils/SingleRawStringPruningIterator.java b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/utils/SingleRawStringPruningIterator.java new file mode 100644 index 000000000..444aca2eb --- /dev/null +++ b/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/utils/SingleRawStringPruningIterator.java @@ -0,0 +1,72 @@ +/* + * Copyright [2013-2021], Alibaba Group Holding Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.alibaba.polardbx.optimizer.utils; + +import com.alibaba.polardbx.common.jdbc.PruneRawString; +import com.alibaba.polardbx.common.jdbc.RawString; +import com.alibaba.polardbx.common.utils.Pair; + +/** + * iterator for single raw string + * + * @author fangwu + */ +public class SingleRawStringPruningIterator implements PruningRawStringStep { + private final int pruningTime; + private final int rawStringIndex; + private final PruneRawString pruneRawString; + private int current = 0; + + public SingleRawStringPruningIterator(RawString rawString, int rawStringIndex) { + this.pruningTime = rawString.size(); + this.rawStringIndex = rawStringIndex; + this.pruneRawString = rawString.pruneStep(0); + } + + @Override + public boolean hasNext() { + return current < pruningTime; + } + + @Override + public Void next() { + if (!hasNext()) { + throw new IllegalStateException("No more elements in the iterator."); + } + pruneRawString.pruneStep(current); + current++; + return null; + } + + public int getRawStringIndex() { + return rawStringIndex; + } + + public PruneRawString getPruneRawString() { + return pruneRawString; + } + + @Override + public Pair[] getTargetPair() { + return new Pair[] {Pair.of(rawStringIndex, pruneRawString)}; + } + + @Override + public int[] getTargetIndex() { + return new int[] {rawStringIndex}; + } +} diff --git a/polardbx-optimizer/src/main/resources/com/alibaba/polardbx/optimizer/config/table/collation/uca900.yml b/polardbx-optimizer/src/main/resources/com/alibaba/polardbx/optimizer/config/table/collation/uca900.yml new file mode 100644 index 000000000..cb2cecad0 --- /dev/null +++ b/polardbx-optimizer/src/main/resources/com/alibaba/polardbx/optimizer/config/table/collation/uca900.yml @@ -0,0 +1,13395 @@ +- [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, + 3, 3, 1, 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, + 2, 2, 2, 2, 2, 2, 1, 3, 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 513, 514, 515, + 516, 517, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 521, 608, 780, 920, + 7186, 921, 918, 773, 791, 792, 911, 1558, 546, 525, 631, 916, 7229, 7230, 7231, + 7232, 7233, 7234, 7235, 7236, 7237, 7238, 569, 564, 1562, 1563, 1564, 614, 910, + 7239, 7264, 7290, 7311, 7338, 7397, 7412, 7448, 7474, 7500, 7525, 7543, 7594, 7609, + 7645, 7692, 7713, 7731, 7793, 7829, 7861, 7907, 7925, 7935, 7947, 7969, 793, 917, + 794, 1157, 523, 1154, 7239, 7264, 7290, 7311, 7338, 7397, 7412, 7448, 7474, 7500, + 7525, 7543, 7594, 7609, 7645, 7692, 7713, 7731, 7793, 7829, 7861, 7907, 7925, 7935, + 7947, 7969, 795, 1566, 796, 1568, 0, 0, 0, 0, 0, 0, 518, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 521, 609, 7185, 7187, 7184, + 7188, 1567, 905, 1161, 1412, 7239, 789, 1565, 0, 1413, 1158, 1270, 1559, 7231, 7232, + 1155, 8139, 907, 651, 1164, 7230, 7645, 790, 7230, 7230, 7232, 615, 7239, 7239, + 7239, 7239, 7239, 7239, 7239, 7290, 7338, 7338, 7338, 7338, 7474, 7474, 7474, 7474, + 7311, 7609, 7645, 7645, 7645, 7645, 7645, 1561, 7645, 7861, 7861, 7861, 7861, 7947, + 8016, 7793, 7239, 7239, 7239, 7239, 7239, 7239, 7239, 7290, 7338, 7338, 7338, 7338, + 7474, 7474, 7474, 7474, 7311, 7609, 7645, 7645, 7645, 7645, 7645, 1560, 7645, 7861, + 7861, 7861, 7861, 7947, 8016, 7947, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 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, 0, 27, 2, 2, 2, 2, 2, 2, 2, 2, 2, 20, 2, 2, 0, 2, 2, 2, 2, 20, + 20, 2, 4, 2, 2, 2, 20, 20, 2, 30, 30, 30, 2, 8, 8, 8, 8, 8, 8, 10, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 10, 8, 8, 8, 8, 8, 8, 2, 8, 8, 8, 8, 8, 8, 8, 4, 2, 2, 2, 2, 2, 2, 4, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 1574, 1574, + 1574, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 0, 37, 36, 39, 45, 43, 41, 272, + 48, 37, 36, 39, 43, 37, 36, 39, 43, 272, 45, 37, 36, 39, 45, 43, 0, 47, 37, 36, + 39, 43, 36, 0, 272, 37, 36, 39, 45, 43, 41, 272, 48, 37, 36, 39, 43, 37, 36, 39, + 43, 272, 45, 37, 36, 39, 45, 43, 0, 47, 37, 36, 39, 43, 36, 0, 43, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 30, 30, 0, 2, + 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, + 2, 2, 0, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, + 0, 2, 2, 2, 2, 2, 2, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 7233, 7231, 7233, 0, 0, 0, 0, 0, 0, 0, 7338, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7793, 0, 0, 0, 0, 0, + 0, 7338, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 30, 30, 0, 0, 0, 0, 0, 0, 0, 10, + 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, 4, 0, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, + 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, + 2, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 1, 1, 1, 1, 1, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, + 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 4, 4, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 2, 2, 2, 2, 2, + 2, 2, 2, 1, 1, 2, 2, 3, 3, 4, 4, 3, 3, 7239, 7239, 7239, 7239, 7239, 7239, 7290, + 7290, 7290, 7290, 7290, 7290, 7290, 7290, 7311, 7311, 7311, 7311, 7338, 7338, 7338, + 7338, 7338, 7338, 7338, 7338, 7338, 7338, 7412, 7412, 7412, 7412, 7412, 7412, 7412, + 7412, 7448, 7448, 7448, 7448, 7474, 7474, 7474, 7474, 7474, 7474, 7474, 7474, 7474, + 7478, 7474, 7474, 7500, 7500, 7525, 7525, 7727, 7543, 7543, 7543, 7543, 7543, 7543, + 7543, 7543, 7543, 7543, 7609, 7609, 7609, 7609, 7609, 7609, 8062, 7640, 7640, 7645, + 7645, 7645, 7645, 7645, 7645, 7645, 7645, 7731, 7731, 7731, 7731, 7731, 7731, 7793, + 7793, 7793, 7793, 7793, 7793, 7793, 7793, 7829, 7829, 7829, 7829, 7834, 7834, 7861, + 7861, 7861, 7861, 7861, 7861, 7861, 7861, 7861, 7861, 7861, 7861, 7925, 7925, 7947, + 7947, 7947, 7969, 7969, 7969, 7969, 7969, 7969, 7793, 7272, 7281, 7285, 7285, 8049, + 8049, 7664, 7301, 7301, 7319, 7323, 7328, 7328, 7969, 7352, 7357, 7362, 7406, 7406, + 7430, 7440, 7456, 7495, 7489, 7531, 7531, 7554, 7586, 7892, 7620, 7624, 7677, 7645, + 7645, 7444, 7444, 7701, 7701, 7736, 8041, 8041, 7810, 7816, 7840, 7844, 7844, 7848, + 7861, 7861, 7902, 7914, 7959, 7959, 7974, 7974, 7998, 8003, 8003, 8008, 8034, 8045, + 8045, 7829, 8022, 8089, 8093, 8097, 8101, 7311, 7311, 7311, 7543, 7543, 7543, 7609, + 7609, 7609, 7239, 7239, 7474, 7474, 7645, 7645, 7861, 7861, 7861, 7861, 7861, 7861, + 7861, 7861, 7861, 7861, 7352, 7239, 7239, 7239, 7239, 7239, 7239, 7425, 7425, 7412, + 7412, 7525, 7525, 7645, 7645, 7645, 7645, 7998, 7998, 7500, 7311, 7311, 7311, 7412, + 7412, 7456, 8022, 7609, 7609, 7239, 7239, 7239, 7239, 7645, 7645, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, + 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, + 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 10, 4, 8, 2, 8, 2, 2, 8, 2, 8, 2, 8, 2, 8, 2, + 8, 2, 8, 2, 8, 2, 8, 2, 4, 8, 2, 8, 2, 8, 2, 8, 2, 10, 4, 8, 2, 8, 2, 8, 2, 8, 2, + 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, + 2, 8, 8, 2, 8, 2, 8, 2, 4, 2, 8, 8, 2, 8, 2, 8, 8, 2, 8, 8, 8, 2, 4, 8, 8, 8, 8, + 2, 8, 8, 2, 8, 8, 8, 2, 2, 2, 8, 8, 2, 8, 8, 2, 8, 2, 8, 2, 8, 8, 2, 8, 2, 2, 8, + 2, 8, 8, 2, 8, 8, 8, 2, 8, 2, 8, 8, 2, 2, 2, 8, 2, 4, 2, 2, 2, 2, 2, 10, 10, 4, + 10, 10, 4, 10, 10, 4, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 2, 8, 2, 8, + 2, 10, 4, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 2, 10, 10, 4, 8, 2, 8, 8, 8, 2, 8, + 2, 10, 4, 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, 7500, 7500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7609, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7925, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 7793, 0, 0, 0, 0, 0, 7969, 7969, 7969, 7500, 7500, 7500, + 7500, 7500, 7500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7969, 7969, 7969, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 50, 50, 38, 38, 49, 49, 36, 36, 39, 39, 46, 46, 40, 40, 40, 40, + 57, 57, 50, 50, 38, 38, 46, 46, 49, 49, 40, 40, 39, 39, 38, 38, 46, 46, 48, 48, + 39, 39, 57, 57, 45, 45, 50, 50, 38, 38, 49, 49, 46, 0, 32, 32, 39, 39, 48, 48, 0, + 36, 36, 48, 48, 40, 40, 272, 272, 57, 57, 36, 36, 48, 48, 40, 40, 32, 0, 0, 50, + 50, 38, 38, 44, 44, 272, 272, 36, 36, 48, 48, 40, 40, 36, 36, 39, 39, 48, 48, 40, + 40, 48, 48, 40, 40, 0, 0, 45, 45, 50, 50, 38, 38, 41, 41, 44, 44, 49, 49, 39, 39, + 39, 39, 43, 36, 36, 46, 46, 40, 40, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 63, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 63, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, + 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 40, 40, 40, 40, 40, 40, 40, 40, 43, + 43, 43, 43, 43, 43, 43, 43, 0, 43, 43, 46, 46, 272, 272, 0, 0, 40, 40, 40, 40, 49, + 49, 49, 49, 40, 40, 40, 32, 32, 32, 36, 36, 0, 0, 37, 37, 41, 41, 272, 272, 47, + 47, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 10, 4, 2, + 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 0, 0, 2, 2, 2, 2, + 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 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, 2, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 4, 0, 0, 0, 0, 0, 10, 4, 4, 10, 4, 4, 10, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 4, 4, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 10, 4, 4, 2, 2, 0, 0, 2, 2, 2, 2, 4, 4, 2, 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, 7338, 7338, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7338, 7338, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 7338, 7338, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, 40, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 50, 50, 36, 36, 40, 40, 37, 37, 0, 50, 50, 50, 50, 32, 32, 0, + 0, 0, 0, 0, 0, 0, 0, 50, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 36, 32, 32, + 36, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 10, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 10, 4, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 10, 4, 2, 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, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 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, 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, 2, + 2, 0, 0] +- [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 2, 2, 3, 3, 2, 2, 1, 1, + 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 7239, 7239, 7239, 7239, 7338, 7338, 7338, + 7338, 7474, 7474, 7474, 7474, 7645, 7645, 7645, 7645, 7731, 7731, 7731, 7731, 7861, + 7861, 7861, 7861, 7793, 7793, 7829, 7829, 7965, 7965, 7448, 7448, 7624, 7332, 7687, + 7687, 7980, 7980, 7239, 7239, 7338, 7338, 7645, 7645, 7645, 7645, 7645, 7645, 7645, + 7645, 7947, 7947, 7576, 7634, 7852, 7504, 7311, 7713, 7244, 7295, 7295, 7554, 7838, + 7804, 7992, 8057, 8057, 7272, 7872, 7921, 7345, 7345, 7509, 7509, 7723, 7723, 7743, + 7743, 7955, 7955, 7249, 7253, 7259, 7281, 7664, 7305, 7319, 7323, 7367, 7357, 7371, + 7362, 7375, 7381, 7385, 7517, 7430, 7416, 7421, 7440, 7393, 7880, 7461, 7468, 7489, + 7495, 7482, 7559, 7565, 7571, 7581, 7892, 7898, 7601, 7620, 7630, 7613, 7677, 7652, + 7682, 7708, 7748, 7753, 7758, 7763, 7767, 7772, 7777, 7736, 7786, 7800, 7810, 7521, + 7820, 7825, 7857, 7848, 7872, 7902, 7914, 7921, 7931, 7590, 7951, 7984, 7988, 7998, + 8012, 8053, 8068, 8085, 8105, 8109, 7268, 7389, 7434, 7452, 7513, 7539, 7547, 7719, + 8077, 8081, 7311, 7311, 7311, 7829, 7829, 7829, 7397, 7543, 7543, 8113, 8117, 7884, + 7888, 7448, 7461, 7500, 7731, 7748, 7758, 7786, 7925, 7947, 1171, 1173, 7472, 8062, + 7473, 8064, 8072, 8061, 8073, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, + 1183, 1184, 1185, 1186, 1187, 7160, 7161, 1188, 1189, 1190, 1191, 1192, 1193, 1159, + 1160, 1162, 1165, 1156, 1163, 1194, 1195, 7440, 7543, 7793, 7935, 8068, 1196, 1197, + 1198, 1199, 1200, 1201, 1202, 1203, 1204, 8063, 1205, 1206, 1207, 1208, 1209, 1210, + 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, + 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, + 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 2, 2, 2, 2, 4, 4, 8, 8, 2, 8, 8, 2, 2, + 8, 2, 8, 8, 8, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, + 2, 2, 2, 20, 20, 20, 20, 20, 20, 20, 20, 20, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 20, 20, 20, 20, 20, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 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, 7264, 7692, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7969, 7998, 7988, 7793, 7810, 7305, 7640, 7793, 7969, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 60, 60, 62, 62, 60, 60, 62, 62, 60, 60, 62, 62, 60, 60, 62, 62, 60, 60, + 62, 62, 60, 60, 62, 62, 69, 69, 69, 69, 0, 0, 40, 40, 0, 0, 0, 0, 0, 0, 46, 46, + 48, 48, 43, 43, 45, 45, 46, 46, 46, 46, 50, 50, 0, 0, 0, 0, 32, 32, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 50, 50, 50, + 0, 0, 50, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 2, 2, 2, 0, 0, 2, 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] +- [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, + 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 1, 1, 1, 2, 2, 1, 1, 3, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 7239, 7338, 7474, 7645, 7861, 7290, 7311, 7448, 7594, 7731, 7829, 7907, + 7935, 8131, 8131, 8164, 8164, 1171, 1172, 8128, 8128, 64448, 64448, 8134, 8153, + 8152, 8154, 564, 8135, 64448, 64448, 64448, 64448, 1155, 1161, 8121, 651, 8126, + 8132, 8134, 64448, 8142, 64448, 8156, 8161, 8134, 8121, 8122, 8123, 8125, 8126, + 8130, 8132, 8133, 8134, 8136, 8137, 8139, 8140, 8141, 8142, 8143, 8148, 64448, 8151, + 8155, 8156, 8157, 8158, 8159, 8161, 8134, 8156, 8121, 8126, 8132, 8134, 8156, 8121, + 8122, 8123, 8125, 8126, 8130, 8132, 8133, 8134, 8136, 8137, 8139, 8140, 8141, 8142, + 8143, 8148, 8151, 8151, 8155, 8156, 8157, 8158, 8159, 8161, 8134, 8156, 8142, 8156, + 8161, 8136, 8122, 8133, 8156, 8156, 8156, 8157, 8143, 8136, 8147, 8147, 8129, 8129, + 8127, 8127, 8146, 8146, 8163, 8163, 8197, 8197, 8202, 8202, 8203, 8203, 8206, 8206, + 8213, 8213, 8216, 8216, 8220, 8220, 8136, 8148, 8151, 8135, 8133, 8126, 1553, 8165, + 8165, 8151, 8145, 8145, 8150, 8153, 8152, 8154, 37, 36, 39, 45, 50, 58, 38, 46, + 43, 59, 41, 44, 40, 51, 51, 60, 61, 62, 51, 34, 35, 51, 52, 52, 52, 52, 51, 63, + 52, 52, 52, 52, 52, 64, 65, 66, 67, 68, 69, 48, 49, 52, 52, 52, 52, 70, 71, 52, + 72, 73, 33, 52, 74, 57, 53, 53, 47, 75, 52, 52, 52, 51, 51, 51, 37, 36, 42, 34, + 43, 76, 51, 52, 52, 52, 51, 51, 51, 52, 52, 0, 51, 51, 51, 52, 52, 52, 52, 51, 77, + 52, 52, 51, 52, 51, 51, 52, 78, 79, 52, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 2, 8, 2, 2, 2, 8, 2, 2, 2, 4, 2, 2, 2, + 2, 8, 2, 2, 2, 2, 2, 2, 8, 2, 8, 8, 8, 2, 8, 2, 8, 8, 2, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 2, 8, 8, 8, 8, 8, 8, 8, 8, 8, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 25, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 10, 4, 4, 10, 10, 10, 4, 4, 4, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, + 2, 8, 2, 8, 2, 8, 2, 4, 4, 4, 2, 10, 4, 2, 8, 2, 10, 8, 2, 2, 8, 8, 8, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 33656, 33657, 0, 0, 0, 0, 0, 0, 33664, 33665, 33666, + 33667, 0, 0, 0, 0, 0, 0, 0, 33675, 0, 33677, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 33698, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 8121, 0, 0, 0, 0, 0, 0, 0, 8121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 36, 0, 36, + 36, 36, 0, 36, 0, 36, 36, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 43, 43, 36, 36, 36, 36, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 43, 36, 36, 36, 32, 0, 0, 0, 36, + 43, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 2, 0, 2, 2, 2, 0, 2, 0, 2, 2, + 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, + 2, 2, 2, 2, 2, 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, 2, 2, 2, 2, 4, 0, 0, 0, 2, 2, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8134, 0, 0, 0, + 0, 0, 0, 0, 8134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 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, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] +- [2, 2, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, + 2, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, + 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 8282, 8282, 8272, 8246, 8286, 8308, 8328, + 8328, 8337, 8380, 8418, 8473, 8342, 8320, 8477, 8575, 8226, 8238, 8242, 8246, 8266, + 8282, 8290, 8300, 8320, 8333, 8342, 8368, 8387, 8396, 8423, 8431, 8444, 8453, 8462, + 8477, 8494, 8498, 8537, 8548, 8579, 8584, 8591, 8596, 8600, 8613, 8617, 8623, 8226, + 8238, 8242, 8246, 8266, 8282, 8290, 8300, 8320, 8333, 8342, 8368, 8387, 8396, 8423, + 8431, 8444, 8453, 8462, 8477, 8494, 8498, 8537, 8548, 8579, 8584, 8591, 8596, 8600, + 8613, 8617, 8623, 8282, 8282, 8272, 8246, 8286, 8308, 8328, 8328, 8337, 8380, 8418, + 8473, 8342, 8320, 8477, 8575, 8520, 8520, 8608, 8608, 8628, 8628, 8632, 8632, 8642, + 8642, 8637, 8637, 8647, 8647, 8651, 8651, 8655, 8655, 8659, 8659, 8663, 8663, 8663, + 8663, 8490, 8490, 8533, 8533, 8529, 8529, 8524, 8524, 8440, 8440, 1271, 0, 0, 0, + 0, 0, 0, 0, 8324, 8324, 8604, 8604, 8448, 8448, 8246, 8246, 8250, 8250, 8258, 8258, + 8296, 8296, 8278, 8278, 8346, 8346, 8362, 8362, 8358, 8358, 8354, 8354, 8405, 8405, + 8414, 8414, 8436, 8436, 8668, 8668, 8458, 8458, 8468, 8468, 8481, 8481, 8485, 8485, + 8510, 8510, 8543, 8543, 8554, 8554, 8562, 8562, 8514, 8514, 8567, 8567, 8571, 8571, + 8673, 8290, 8290, 8350, 8350, 8373, 8373, 8409, 8409, 8401, 8401, 8558, 8558, 8391, + 8391, 8673, 8226, 8226, 8226, 8226, 8234, 8234, 8282, 8282, 8230, 8230, 8230, 8230, + 8290, 8290, 8300, 8300, 8313, 8313, 8320, 8320, 8320, 8320, 8423, 8423, 8427, 8427, + 8427, 8427, 8613, 8613, 8477, 8477, 8477, 8477, 8477, 8477, 8548, 8548, 8262, 8262, + 8596, 8596, 8254, 8254, 8502, 8502, 8506, 8506, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 80, 51, 35, 34, 51, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 8, 2, 8, + 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, + 8, 2, 8, 2, 2, 2, 2, 2, 2, 2, 0, 0, 8, 2, 8, 2, 8, 2, 10, 4, 8, 2, 8, 2, 8, 2, 8, + 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, + 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, + 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, + 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 37, 43, 0, 36, 0, 0, 0, 43, 0, 0, 0, 0, 36, 37, 38, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 43, 0, 36, 0, 0, 0, 43, 0, 0, 0, 0, 36, 37, 38, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 60, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 273, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 38, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 38, 38, 43, 43, 0, 0, 38, 38, 0, 0, 43, 43, 43, 43, 43, 43, + 0, 0, 50, 50, 43, 43, 43, 43, 0, 0, 43, 43, 43, 43, 50, 50, 43, 43, 44, 44, 43, + 43, 0, 0, 43, 43, 0, 0, 0, 0, 0, 0, 2, 2, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 2, 2, 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, 2, 2, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 2, 2, 2, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 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, 4, 4, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2, 2, 2, 2, 0, 0, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, + 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0] +- [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, + 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 8270, 8270, 8277, 8277, 8305, 8305, 8318, + 8318, 8385, 8385, 8422, 8422, 8457, 8457, 8467, 8467, 8306, 8306, 8378, 8378, 8386, + 8386, 8452, 8452, 8627, 8627, 8367, 8367, 8672, 8672, 8366, 8366, 8379, 8379, 8413, + 8413, 8435, 8435, 8518, 8518, 8400, 8400, 8294, 8294, 8552, 8552, 8377, 8377, 64448, + 8848, 8849, 8850, 8851, 8852, 8853, 8854, 8855, 8856, 8857, 8858, 8859, 8860, 8861, + 8862, 8863, 8864, 8865, 8866, 8867, 8868, 8869, 8870, 8871, 8872, 8873, 8874, 8875, + 8876, 8877, 8878, 8879, 8880, 8881, 8882, 8883, 8884, 8885, 64448, 64448, 8886, + 971, 972, 610, 550, 617, 973, 64448, 8848, 8849, 8850, 8851, 8852, 8853, 8854, 8855, + 8856, 8857, 8858, 8859, 8860, 8861, 8862, 8863, 8864, 8865, 8866, 8867, 8868, 8869, + 8870, 8871, 8872, 8873, 8874, 8875, 8876, 8877, 8878, 8879, 8880, 8881, 8882, 8883, + 8884, 8885, 8852, 64448, 570, 526, 64448, 64448, 1272, 1273, 7189, 64448, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 974, 0, 975, 0, 0, 976, 0, 0, 977, + 0, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 8887, 8888, 8889, 8890, + 8891, 8892, 8893, 8894, 8895, 8896, 8897, 8897, 8898, 8899, 8899, 8900, 8900, 8901, + 8902, 8903, 8903, 8904, 8904, 8905, 8906, 8907, 8908, 64448, 64448, 64448, 64448, + 64448, 8892, 8892, 8896, 978, 979, 64448, 64448, 64448, 64448, 64448, 64448, 64448, + 64448, 64448, 64448, 64448, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 91, 92, 95, 0, 32, 96, 32, 94, 93, 32, 0, 0, 32, 90, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 8, 2, 8, 2, 8, 2, 8, 2, + 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, + 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 2, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, + 2, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 0, + 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 25, 2, 2, 25, 2, + 25, 2, 2, 2, 25, 2, 25, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 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, 34096, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34135, 34136, 0, 0, 0, 0, 0, 0, 0, 34144, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8881, 34184, 0, 0, 34187, 34188, 0, 0, 0, 34192, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 34248, 34249, 34250, 34251, 34252, 34253, 34254, 34255, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34283, 34284, 34285, + 34286, 34287, 8892, 8896, 8896, 0, 0, 34293, 34294, 34295, 34296, 34297, 34298, + 34299, 34300, 34301, 34302, 34303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 4, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] +- [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 0, 0, 0, 0, 0, 0, 1581, 1583, 1274, 924, + 926, 7190, 551, 552, 1277, 1278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 565, 0, 64448, + 571, 618, 9167, 8957, 8958, 8959, 8962, 8963, 8967, 8971, 8973, 8988, 8989, 8990, + 8997, 9004, 9005, 9015, 9016, 9030, 9031, 9049, 9050, 9060, 9061, 9066, 9067, 9070, + 9071, 9112, 9113, 9164, 9165, 9166, 0, 9078, 9090, 9095, 9116, 9123, 9127, 9137, + 9143, 9157, 9158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 922, 553, 554, 914, + 8972, 9089, 0, 8961, 8960, 8964, 8957, 8971, 9143, 9147, 9158, 8991, 8992, 8974, + 8993, 8994, 8975, 8995, 8976, 9006, 9007, 8998, 8999, 9008, 9000, 9002, 9017, 9018, + 9019, 9020, 9021, 9022, 9024, 9025, 9026, 9032, 9033, 9034, 9035, 9036, 9037, 9038, + 9039, 9040, 9051, 9052, 9053, 9062, 9064, 9068, 9072, 9079, 9080, 9082, 9083, 9085, + 9086, 9091, 9093, 9096, 9097, 9098, 9099, 9101, 9102, 9104, 9106, 9107, 9108, 9109, + 9110, 9117, 9118, 9119, 9120, 9133, 9128, 9130, 9131, 9132, 9138, 9001, 9142, 9139, + 9139, 9140, 9144, 9145, 9146, 9147, 9148, 9149, 9150, 9151, 9159, 9160, 9161, 9153, + 9162, 9163, 9172, 9172, 633, 9142, 0, 0, 0, 0, 0, 0, 0, 0, 1279, 0, 0, 0, 0, 0, + 0, 9143, 9158, 0, 0, 1280, 0, 0, 0, 0, 9027, 9041, 7229, 7230, 7231, 7232, 7233, + 7234, 7235, 7236, 7237, 7238, 9054, 9065, 9073, 8957, 9123, 9141, 0, 0, 0, 0, 0, + 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, + 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 109, 112, 115, 118, 122, 125, 128, 129, 130, 131, 132, 134, + 135, 136, 138, 139, 140, 141, 142, 143, 133, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 152, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, + 32, 32, 0, 0, 32, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 4, 4, 0, 0, 2, 0, 0, + 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 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, 34333, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 8957, 8957, 8957, 8957, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 131, 0, 131, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 273, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 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, 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, 0, 0, 0, 0, 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, 4, 0] +- [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, + 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 708, 634, 635, 572, 573, 574, 575, 576, 577, + 619, 980, 981, 982, 983, 64448, 0, 9175, 0, 9176, 9177, 9177, 9179, 9178, 9180, + 9181, 9182, 9184, 9185, 9185, 9186, 9187, 9188, 9190, 9191, 9192, 9193, 9193, 9194, + 9195, 9195, 9197, 9198, 9199, 9200, 9201, 9176, 9177, 9179, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64448, 64448, 9183, + 9189, 9196, 8977, 8978, 8979, 8980, 8981, 8982, 8984, 9009, 9010, 9028, 9029, 9042, + 9055, 9074, 9075, 9076, 9087, 9088, 9111, 9114, 9115, 9124, 9125, 9134, 9135, 9136, + 9121, 9043, 9044, 9056, 9011, 9012, 9057, 9045, 9013, 8965, 8966, 9168, 9169, 9170, + 9154, 9155, 9173, 9174, 9014, 9058, 9059, 9100, 9227, 9230, 9231, 9232, 9234, 9235, + 9236, 9237, 9240, 9242, 9243, 9244, 9246, 9250, 9251, 9253, 9254, 9258, 9259, 9260, + 9261, 9262, 9263, 9264, 9247, 9228, 9229, 9245, 9233, 9255, 9256, 9257, 9248, 9249, + 9238, 9239, 9252, 9241, 9266, 9267, 9268, 9269, 9270, 9271, 9272, 9273, 9274, 9275, + 9276, 9265, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, + 64448, 64448, 64448, 64448, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, + 7238, 9277, 9278, 9279, 9280, 9281, 9282, 9283, 9284, 9285, 9286, 9287, 9288, 9289, + 9290, 9291, 9292, 9293, 9294, 9295, 9296, 9297, 9298, 9299, 9300, 9301, 9302, 9303, + 9304, 9305, 9306, 9289, 9290, 9292, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9307, 9308, 1298, + 709, 555, 611, 0, 64448, 64448, 64448, 64448, 64448, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 153, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 0, 51, 52, 0, 0, 51, 52, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 0, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 25, 2, + 2, 4, 2, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, + 2, 2, 0, 0, 2, 2, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, + 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34574, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34635, 34636, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34738, 34739, 34740, + 34741, 34742, 34743, 34744, 34745, 34746, 34747, 34748, 34749, 34750, 34751, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 34811, 34812, 34813, 34814, 34815, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 273, 0, 0, 0, 0, 0, 274, 274, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 272, 272, 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 4, + 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 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, 4, 4, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] +- [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 8931, 8932, 8933, 8934, 8935, 8936, 8937, + 8938, 8939, 8940, 8941, 8942, 8943, 8944, 8945, 8946, 8947, 8948, 8949, 8950, 8951, + 8952, 8953, 8954, 0, 0, 8955, 8956, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 64448, 64448, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 64448, 9202, 9203, 9204, 9205, 9206, 9207, 9208, 9209, 9210, 9211, + 9212, 9213, 9214, 9215, 9216, 9217, 9218, 9219, 9220, 9221, 9222, 9223, 9224, 9225, + 9226, 0, 0, 0, 64448, 64448, 984, 64448, 64448, 64448, 64448, 64448, 64448, 64448, + 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, + 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, + 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, + 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, + 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 8983, 8985, + 9003, 9069, 9084, 9094, 9122, 9126, 8968, 8969, 9046, 9156, 8970, 8971, 9023, 9063, + 9105, 9152, 9047, 9077, 9103, 64448, 8986, 8987, 8996, 9048, 9171, 9081, 9092, 9129, + 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, + 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 106, 107, 32, 32, 98, 98, 99, + 99, 99, 100, 100, 100, 101, 101, 102, 102, 103, 103, 103, 104, 105, 108, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 52, 52, 52, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 144, 119, 123, 126, + 111, 114, 117, 0, 0, 0, 0, 0, 0, 110, 113, 116, 0, 120, 121, 127, 145, 146, 150, + 151, 148, 149, 147, 124, 137, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, + 2, 0, 0, 0, 0, 0, 0, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 34862, 34863, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 34879, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34908, 34909, 0, 34911, 34912, 34913, 34914, 34915, + 34916, 34917, 34918, 34919, 34920, 34921, 34922, 34923, 34924, 34925, 34926, 34927, + 34928, 34929, 34930, 34931, 34932, 34933, 34934, 34935, 34936, 34937, 34938, 34939, + 34940, 34941, 34942, 34943, 34944, 34945, 34946, 34947, 34948, 34949, 34950, 34951, + 34952, 34953, 34954, 34955, 34956, 34957, 34958, 34959, 34960, 34961, 34962, 34963, + 34964, 34965, 34966, 34967, 34968, 34969, 34970, 34971, 34972, 34973, 34974, 34975, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34997, 0, 0, 0, 0, + 0, 0, 0, 0, 35006, 35007, 35008, 35009, 35010, 35011, 35012, 35013, 35014, 35015, + 35016, 35017, 35018, 35019, 35020, 35021, 35022, 35023, 35024, 35025, 35026, 35027, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, + 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, + 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 0, 0, 0, 0, 9822, 9823, 9824, 9830, 9831, + 9832, 9833, 9834, 9836, 9838, 9839, 9840, 9841, 9842, 9843, 9844, 9845, 9846, 9847, + 9848, 9850, 9851, 9852, 9853, 9854, 9857, 9858, 9859, 9860, 9862, 9864, 9865, 9866, + 9867, 9868, 9869, 9870, 9870, 9871, 9872, 9873, 9875, 9876, 9877, 9879, 9879, 9880, + 9881, 9881, 9882, 9883, 9884, 9885, 9886, 9895, 9896, 0, 9887, 9894, 9900, 9901, + 9902, 9903, 9904, 9905, 9908, 9910, 9911, 9913, 9914, 9915, 9916, 9917, 9918, 9912, + 9897, 9819, 0, 0, 0, 0, 9909, 9898, 9899, 9846, 9847, 9848, 9854, 9862, 9864, 9872, + 9877, 9835, 9837, 9906, 9907, 654, 655, 7229, 7230, 7231, 7232, 7233, 7234, 7235, + 7236, 7237, 7238, 999, 7162, 9821, 9825, 9826, 9827, 9828, 9829, 9861, 9855, 9878, + 9849, 9856, 9888, 9863, 9874, 9919, 0, 0, 0, 64448, 9920, 9921, 9922, 9923, 9924, + 9925, 9926, 9928, 64448, 64448, 9930, 9931, 64448, 64448, 9932, 9933, 9934, 9935, + 9936, 9937, 9938, 9939, 9940, 9941, 9942, 9943, 9944, 9945, 9946, 9947, 9948, 9949, + 9950, 9951, 9952, 9953, 64448, 9954, 9955, 9956, 9957, 9958, 9959, 9960, 64448, + 9962, 64448, 64448, 64448, 9964, 9965, 9966, 9967, 64448, 64448, 0, 9968, 9969, + 9970, 9971, 9972, 9973, 9974, 9975, 64448, 64448, 9978, 9979, 64448, 64448, 9980, + 9981, 9982, 9949, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 9983, + 64448, 64448, 64448, 64448, 9946, 9947, 64448, 9959, 9927, 9929, 9976, 9977, 64448, + 64448, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 9961, 9963, 7191, + 7192, 6806, 6807, 6808, 6809, 6810, 6811, 1299, 7193, 64448, 64448, 64448, 64448, + 195, 195, 196, 197, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 194, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 0, 0, 37, 36, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 195, 196, 197, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 194, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 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, 35204, 0, 0, 0, 0, 0, 0, 0, 0, 35213, 35214, 0, 0, 35217, 35218, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35241, 0, 0, 0, 0, + 0, 0, 0, 35249, 0, 35251, 35252, 35253, 0, 0, 0, 0, 35258, 35259, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 35269, 35270, 0, 0, 35273, 35274, 0, 0, 0, 9982, 35279, 35280, 35281, + 35282, 35283, 35284, 35285, 35286, 0, 35288, 35289, 35290, 35291, 0, 0, 35294, 0, + 0, 0, 0, 0, 35300, 35301, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 35324, 35325, 35326, 35327, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 194, 0, 0, 0, 0, 0, 0, 0, 194, 0, 0, 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 194, 194, 194, + 194, 194, 194, 194, 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 194, 194, + 0, 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 2, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 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, 4, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 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, 0, 0, 0, 0, 0, 0, 0] +- [2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, + 2, 2, 1, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, + 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, + 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 64448, 0, 0, 0, 64448, 9989, 9990, 9994, + 9995, 9986, 9987, 64448, 64448, 64448, 64448, 9996, 9991, 64448, 64448, 9988, 9992, + 10000, 10001, 10002, 10003, 10004, 10005, 10006, 10007, 10008, 10009, 10010, 10011, + 10012, 10013, 10014, 10015, 10016, 10017, 10018, 10019, 64448, 10020, 10021, 10022, + 10023, 10024, 10025, 10027, 64448, 10028, 10028, 64448, 10029, 9997, 64448, 9997, + 9998, 64448, 64448, 0, 64448, 10031, 10032, 10033, 10034, 10035, 64448, 64448, 64448, + 64448, 10036, 10037, 64448, 64448, 10038, 10039, 10040, 64448, 64448, 64448, 9999, + 64448, 64448, 64448, 64448, 64448, 64448, 64448, 10001, 10002, 10007, 10030, 64448, + 10021, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 7229, 7230, 7231, 7232, + 7233, 7234, 7235, 7236, 7237, 7238, 0, 0, 9993, 9985, 9984, 10026, 64448, 64448, + 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 0, 0, 0, 64448, 10042, + 10043, 10044, 10045, 10046, 10047, 10048, 10050, 10052, 64448, 10053, 10054, 10055, + 64448, 10056, 10057, 10058, 10059, 10060, 10061, 10062, 10063, 10064, 10065, 10067, + 10068, 10069, 10070, 10071, 10072, 10073, 10074, 10075, 10076, 10077, 10078, 64448, + 10079, 10080, 10081, 10082, 10083, 10084, 10085, 64448, 10086, 10092, 64448, 10087, + 10088, 10089, 10090, 10091, 64448, 64448, 0, 10093, 10094, 10095, 10096, 10097, + 10098, 10099, 10100, 10103, 64448, 10104, 10105, 10106, 64448, 10107, 10108, 10109, + 64448, 64448, 10041, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, + 64448, 64448, 64448, 64448, 64448, 64448, 10049, 10051, 10101, 10102, 64448, 64448, + 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 1004, 7194, 64448, 64448, + 64448, 64448, 64448, 64448, 64448, 10066, 64448, 64448, 64448, 64448, 64448, 64448, + 32, 195, 196, 197, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 194, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 198, 199, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 195, 196, 197, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 194, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 35328, 0, 0, 0, 35332, 0, 0, 0, 0, 0, 0, 35339, 35340, 35341, + 35342, 0, 0, 35345, 35346, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 35369, 0, 0, 0, 0, 0, 0, 0, 35377, 0, 0, 35380, 0, 0, 35383, 0, 0, 35386, + 35387, 0, 35389, 0, 0, 0, 0, 0, 35395, 35396, 35397, 35398, 0, 0, 35401, 35402, + 0, 0, 0, 35406, 35407, 35408, 0, 35410, 35411, 35412, 35413, 35414, 35415, 35416, + 0, 0, 0, 0, 35421, 0, 35423, 35424, 35425, 35426, 35427, 35428, 35429, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35446, 35447, 35448, 35449, 35450, 35451, + 35452, 35453, 35454, 35455, 35456, 0, 0, 0, 35460, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35470, + 0, 0, 0, 35474, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 35497, 0, 0, 0, 0, 0, 0, 0, 35505, 0, 0, 35508, 0, 0, 0, 0, 0, 35514, 35515, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 35526, 0, 0, 0, 35530, 0, 0, 0, 35534, 35535, 0, 35537, + 35538, 35539, 35540, 35541, 35542, 35543, 35544, 35545, 35546, 35547, 35548, 35549, + 35550, 35551, 0, 0, 0, 0, 35556, 35557, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35570, + 35571, 35572, 35573, 35574, 35575, 35576, 0, 35578, 35579, 35580, 35581, 35582, + 35583, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 194, + 0, 0, 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 194, 194, 194, 0, 0, 194, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, + 2, 2, 2, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, + 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, + 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, + 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 1, 1, 2, 1, 2, 1, 1, 2, 2, + 2, 1, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, + 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 64448, 0, 0, 0, 64448, 10110, 10111, 10112, + 10113, 10114, 10115, 10116, 10118, 64448, 64448, 10120, 10121, 64448, 64448, 10122, + 10123, 10124, 10125, 10126, 10127, 10128, 10129, 10130, 10131, 10132, 10133, 10134, + 10135, 10136, 10137, 10138, 10139, 10140, 10141, 10142, 10143, 64448, 10144, 10145, + 10146, 10147, 10148, 10149, 10151, 64448, 10152, 10153, 64448, 10154, 10156, 10157, + 10158, 10159, 64448, 64448, 0, 10160, 10161, 10162, 10163, 10164, 10165, 10166, + 10167, 64448, 64448, 10170, 10171, 64448, 64448, 10172, 10173, 10174, 64448, 64448, + 64448, 64448, 64448, 64448, 64448, 64448, 10175, 10176, 64448, 64448, 64448, 64448, + 10136, 10137, 64448, 10150, 10117, 10119, 10168, 10169, 64448, 64448, 7229, 7230, + 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 1300, 10155, 6812, 6813, 6814, 6815, + 6816, 6817, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, + 0, 10190, 64448, 10178, 10179, 10180, 10181, 10182, 10183, 64448, 64448, 64448, + 10184, 10185, 10186, 64448, 10187, 10188, 10189, 10191, 64448, 64448, 64448, 10192, + 10193, 64448, 10209, 64448, 10194, 10195, 64448, 64448, 64448, 10196, 10197, 64448, + 64448, 64448, 10198, 10208, 10199, 64448, 64448, 64448, 10200, 10201, 10202, 10207, + 10203, 10206, 10205, 10204, 10210, 10211, 10212, 10213, 64448, 64448, 64448, 64448, + 10214, 10215, 10216, 10217, 10218, 64448, 64448, 64448, 10219, 10220, 10221, 64448, + 10222, 10223, 10224, 10225, 64448, 64448, 10177, 64448, 64448, 64448, 64448, 64448, + 64448, 10226, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, + 64448, 64448, 64448, 64448, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, + 7238, 6824, 6825, 6826, 1301, 1302, 1303, 1304, 1305, 1306, 7196, 1307, 64448, 64448, + 64448, 64448, 64448, 32, 195, 196, 197, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 194, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 196, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 35584, 0, 0, 0, 35588, 0, 0, 0, + 0, 0, 0, 0, 0, 35597, 35598, 0, 0, 35601, 35602, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35625, 0, 0, 0, 0, 0, 0, 0, 35633, 0, 0, 35636, + 0, 0, 0, 0, 0, 35642, 35643, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35653, 35654, 0, 0, 35657, + 35658, 0, 0, 0, 35662, 35663, 35664, 35665, 35666, 35667, 35668, 35669, 0, 0, 35672, + 35673, 35674, 35675, 0, 0, 35678, 0, 0, 0, 0, 0, 35684, 35685, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35704, 35705, 35706, 35707, 35708, 35709, 35710, + 35711, 35712, 35713, 0, 0, 35716, 0, 0, 0, 0, 0, 0, 35723, 35724, 35725, 0, 0, 0, + 35729, 0, 0, 0, 0, 35734, 35735, 35736, 0, 0, 35739, 0, 35741, 0, 0, 35744, 35745, + 35746, 0, 0, 35749, 35750, 35751, 0, 0, 0, 35755, 35756, 35757, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 35770, 35771, 35772, 35773, 0, 0, 0, 0, 0, 35779, 35780, 35781, + 0, 0, 0, 35785, 0, 0, 0, 0, 35790, 35791, 0, 35793, 35794, 35795, 35796, 35797, + 35798, 0, 35800, 35801, 35802, 35803, 35804, 35805, 35806, 35807, 35808, 35809, + 35810, 35811, 35812, 35813, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 35835, 35836, 35837, 35838, 35839, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 194, + 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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] +- [1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, + 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, + 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, + 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 64448, 10227, 10228, 10229, 10230, + 10231, 10232, 10233, 10235, 64448, 10237, 10238, 10239, 64448, 10240, 10241, 10242, + 10243, 10244, 10245, 10246, 10247, 10248, 10250, 10251, 10253, 10254, 10255, 10256, + 10257, 10258, 10259, 10260, 10261, 10262, 10263, 10264, 64448, 10265, 10266, 10267, + 10268, 10269, 10270, 10271, 10272, 10273, 10279, 10280, 10274, 10275, 10276, 10277, + 10278, 64448, 64448, 64448, 10282, 10283, 10284, 10285, 10286, 10287, 10288, 10289, + 64448, 10292, 10293, 10294, 64448, 10295, 10296, 10297, 10298, 64448, 64448, 64448, + 64448, 64448, 64448, 64448, 10299, 10300, 64448, 10249, 10252, 10281, 64448, 64448, + 64448, 64448, 64448, 10234, 10236, 10290, 10291, 64448, 64448, 7229, 7230, 7231, + 7232, 7233, 7234, 7235, 7236, 7237, 7238, 64448, 64448, 64448, 64448, 64448, 64448, + 64448, 64448, 7229, 7230, 7231, 7232, 7230, 7231, 7232, 1308, 10356, 0, 0, 0, 64448, + 10301, 10302, 10303, 10304, 10305, 10306, 10307, 10309, 64448, 10311, 10312, 10313, + 64448, 10314, 10315, 10316, 10317, 10318, 10319, 10320, 10321, 10322, 10323, 10324, + 10325, 10326, 10327, 10328, 10329, 10330, 10331, 10332, 10333, 10334, 10335, 10336, + 64448, 10337, 10338, 10339, 10340, 10341, 10342, 10343, 10344, 10345, 10351, 64448, + 10346, 10347, 10348, 10349, 10350, 64448, 64448, 0, 10353, 10357, 10358, 10359, + 10360, 10361, 10362, 10363, 64448, 10366, 10367, 10368, 64448, 10369, 10370, 10371, + 10372, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 10373, 10374, 64448, 64448, + 64448, 64448, 64448, 64448, 64448, 10352, 64448, 10308, 10310, 10364, 10365, 64448, + 64448, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 64448, 10354, + 10355, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, + 64448, 64448, 195, 195, 196, 197, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 195, 196, 197, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 194, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 35844, 0, 0, 0, 0, 0, 0, 0, 0, + 35853, 0, 0, 0, 35857, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 35881, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35898, 35899, + 35900, 0, 0, 0, 0, 0, 0, 0, 0, 35909, 0, 0, 0, 35913, 0, 0, 0, 0, 35918, 35919, + 35920, 35921, 35922, 35923, 35924, 0, 0, 35927, 0, 0, 0, 35931, 35932, 35933, 35934, + 35935, 0, 0, 0, 0, 35940, 35941, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35952, 35953, 35954, + 35955, 35956, 35957, 35958, 35959, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35972, 0, + 0, 0, 0, 0, 0, 0, 0, 35981, 0, 0, 0, 35985, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36009, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36020, 0, + 0, 0, 0, 0, 36026, 36027, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36037, 0, 0, 0, 36041, 0, 0, + 0, 0, 36046, 36047, 36048, 36049, 36050, 36051, 36052, 0, 0, 36055, 36056, 36057, + 36058, 36059, 36060, 36061, 0, 36063, 0, 0, 0, 0, 36068, 36069, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 36080, 0, 0, 36083, 36084, 36085, 36086, 36087, 36088, 36089, 36090, + 36091, 36092, 36093, 36094, 36095, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 2, + 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, + 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, + 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 64448, 0, 0, 0, 64448, 10375, 10376, 10377, + 10378, 10380, 10381, 10382, 10384, 64448, 10386, 10387, 10388, 64448, 10389, 10390, + 10391, 10392, 10393, 10394, 10395, 10396, 10397, 10398, 10399, 10400, 10401, 10402, + 10403, 10404, 10405, 10406, 10407, 10408, 10409, 10410, 10411, 10412, 10413, 10414, + 10415, 10416, 10417, 10418, 10419, 10428, 10420, 10426, 10427, 10421, 10422, 10423, + 10424, 10425, 10429, 64448, 64448, 10430, 10431, 10432, 10433, 10434, 10435, 10436, + 10437, 64448, 10440, 10441, 10442, 64448, 10443, 10444, 10445, 10447, 10419, 1309, + 64448, 64448, 64448, 64448, 10417, 10418, 10427, 10446, 6827, 6828, 6829, 6830, + 6831, 6832, 6833, 10379, 10383, 10385, 10438, 10439, 64448, 64448, 7229, 7230, 7231, + 7232, 7233, 7234, 7235, 7236, 7237, 7238, 6834, 6835, 6836, 6837, 6838, 6839, 6840, + 6841, 6842, 1310, 10406, 10411, 10419, 10420, 10426, 10392, 64448, 64448, 0, 0, + 64448, 10448, 10449, 10450, 10451, 10452, 10453, 10454, 10455, 10456, 10457, 10458, + 10459, 10460, 10461, 10462, 10463, 10464, 10465, 64448, 64448, 64448, 10466, 10467, + 10468, 10469, 10470, 10471, 10472, 10473, 10474, 10475, 10476, 10477, 10478, 10479, + 10480, 10481, 10482, 10483, 10484, 10485, 10486, 10487, 10488, 10489, 64448, 10490, + 10491, 10492, 10493, 10494, 10495, 10496, 10497, 10498, 64448, 10499, 64448, 64448, + 10500, 10501, 10502, 10503, 10504, 10505, 10506, 64448, 64448, 64448, 10524, 64448, + 64448, 64448, 64448, 10507, 10508, 10509, 10510, 10511, 10512, 64448, 10513, 64448, + 10514, 10518, 10519, 10520, 10521, 10522, 10523, 10516, 64448, 64448, 64448, 64448, + 64448, 64448, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 64448, + 64448, 10515, 10517, 1005, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, + 64448, 64448, 64448, 32, 195, 196, 197, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 196, 197, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 4, 2, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 36096, 0, 0, 0, 36100, 0, 0, 0, + 0, 0, 0, 0, 0, 36109, 0, 0, 0, 36113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 36155, 36156, 0, 0, 0, 0, 0, 0, 0, 0, 36165, 0, 0, 0, 36169, 0, 0, 0, 0, 10447, + 0, 36176, 36177, 36178, 36179, 10447, 10447, 10447, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 36196, 36197, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 10447, 10447, 10447, 10447, 10447, 10447, 36224, 36225, 0, 0, 36228, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36247, 36248, 36249, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36274, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 36284, 0, 36286, 36287, 0, 0, 0, 0, 0, 0, 0, 36295, 36296, 36297, 0, 36299, + 36300, 36301, 36302, 0, 0, 0, 0, 0, 0, 36309, 0, 36311, 0, 0, 0, 0, 0, 0, 0, 0, + 36320, 36321, 36322, 36323, 36324, 36325, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36336, 36337, + 0, 0, 0, 36341, 36342, 36343, 36344, 36345, 36346, 36347, 36348, 36349, 36350, 36351, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, + 0, 0, 0, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 4, 4, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 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, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, + 1, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, + 1, 1, 2, 1, 2, 1, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, + 1, 2, 2, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 64448, 11635, 11636, 11637, 11638, 11639, + 11640, 11641, 11642, 11643, 11644, 11645, 11646, 11647, 11648, 11649, 11650, 11651, + 11652, 11653, 11654, 11655, 11656, 11657, 11658, 11659, 11660, 11661, 11662, 11663, + 11664, 11665, 11666, 11667, 11668, 11669, 11670, 11671, 11672, 11673, 11674, 11675, + 11676, 11677, 11678, 11679, 11680, 11681, 11682, 11683, 11684, 11685, 11686, 11687, + 11688, 11689, 11690, 11691, 11692, 64448, 64448, 64448, 64448, 7197, 11693, 11694, + 11695, 11696, 11697, 11698, 7163, 0, 0, 0, 0, 0, 0, 0, 0, 1006, 7229, 7230, 7231, + 7232, 7233, 7234, 7235, 7236, 7237, 7238, 1007, 1008, 64448, 64448, 64448, 64448, + 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, + 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, + 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 11700, 11701, 64448, + 11702, 64448, 64448, 11703, 11704, 64448, 11706, 64448, 64448, 11708, 64448, 64448, + 64448, 64448, 64448, 64448, 11709, 11710, 11711, 11712, 64448, 11713, 11714, 11715, + 11716, 11717, 11718, 11719, 64448, 11720, 11721, 11722, 64448, 11723, 64448, 11724, + 64448, 64448, 11705, 11725, 64448, 11726, 11727, 11728, 11729, 11730, 11731, 11732, + 11733, 11734, 11735, 11736, 11737, 11738, 64448, 11739, 11740, 11741, 64448, 64448, + 11742, 11743, 11744, 11745, 11746, 64448, 7164, 64448, 0, 0, 0, 0, 0, 0, 64448, + 64448, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 64448, 64448, + 11725, 11725, 11699, 11707, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, + 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, + 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 210, 211, 212, 213, 214, 215, 216, 209, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 217, 218, 219, 220, 221, 222, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 36352, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36411, 36412, 36413, 36414, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 36444, 36445, 36446, 36447, 36448, 36449, 36450, 36451, 36452, 36453, 36454, 36455, + 36456, 36457, 36458, 36459, 36460, 36461, 36462, 36463, 36464, 36465, 36466, 36467, + 36468, 36469, 36470, 36471, 36472, 36473, 36474, 36475, 36476, 36477, 36478, 36479, + 36480, 0, 0, 36483, 0, 36485, 36486, 0, 0, 36489, 0, 36491, 36492, 0, 36494, 36495, + 36496, 36497, 36498, 36499, 0, 0, 0, 0, 36504, 0, 0, 0, 0, 0, 0, 0, 36512, 0, 0, + 0, 36516, 0, 36518, 0, 36520, 36521, 0, 0, 36524, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 36538, 0, 0, 0, 36542, 36543, 0, 0, 0, 0, 0, 36549, 0, 36551, 0, 0, 0, + 0, 0, 0, 36558, 36559, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36570, 36571, 11713, 11720, + 0, 0, 36576, 36577, 36578, 36579, 36580, 36581, 36582, 36583, 36584, 36585, 36586, + 36587, 36588, 36589, 36590, 36591, 36592, 36593, 36594, 36595, 36596, 36597, 36598, + 36599, 36600, 36601, 36602, 36603, 36604, 36605, 36606, 36607, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, + 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, + 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, + 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, + 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 11884, 1318, 1319, 1320, 1011, 1012, 1013, + 1014, 1015, 1016, 1017, 1020, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1321, 600, + 1322, 1323, 1324, 0, 0, 1325, 1326, 1327, 1328, 1329, 1330, 7229, 7230, 7231, 7232, + 7233, 7234, 7235, 7236, 7237, 7238, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, + 7238, 7229, 1331, 0, 1332, 0, 1333, 0, 797, 798, 799, 800, 0, 0, 11814, 11817, 11819, + 11819, 11821, 11823, 11825, 11827, 64448, 11829, 11831, 11833, 11835, 11835, 11837, + 11839, 11841, 11843, 11843, 11845, 11847, 11849, 11851, 11851, 11853, 11855, 11857, + 11859, 11859, 11861, 11863, 11865, 11867, 11869, 11871, 11874, 11876, 11878, 11880, + 11882, 11884, 11814, 11871, 11816, 11873, 64448, 64448, 64448, 64448, 11894, 11895, + 11896, 11899, 11900, 11901, 11902, 11903, 11904, 11905, 11906, 11907, 11908, 0, + 0, 11897, 11898, 0, 0, 11909, 1027, 0, 0, 11886, 11888, 11892, 11893, 11890, 11887, + 11889, 11891, 11815, 11818, 11820, 11820, 11822, 11824, 11826, 11828, 64448, 11830, + 11832, 11834, 11836, 11836, 11838, 11840, 11842, 11844, 11844, 11846, 11848, 11850, + 11852, 11852, 11854, 11856, 11858, 11860, 11860, 11862, 11864, 11866, 11868, 11870, + 11872, 11875, 11877, 11879, 11881, 11883, 11885, 11815, 11862, 11870, 11872, 64448, + 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 0, 1342, 1343, 1344, 1345, 1346, + 1347, 64448, 1348, 1349, 1018, 1019, 1028, 1029, 1030, 1350, 1351, 1352, 1353, 1031, + 1032, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, + 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, + 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, + 64448, 64448, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 0, 32, 225, 32, + 32, 32, 32, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 196, 197, 32, 32, 0, 0, 32, 32, 0, 0, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 4, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 27, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 0, 2, 0, 2, 2, 2, 2, 2, 2, + 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 11907, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11883, 0, 0, 0, 0, 36680, + 0, 0, 0, 0, 11883, 0, 0, 0, 0, 11883, 0, 0, 0, 0, 11883, 0, 0, 0, 0, 11883, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11879, 0, 0, 0, 36717, 36718, 36719, 36720, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 11883, 0, 0, 0, 0, 36760, 0, 0, 0, 0, 11883, 0, 0, 0, 0, 11883, 0, + 0, 0, 0, 11883, 0, 0, 0, 0, 11883, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11879, 0, + 0, 0, 36797, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36813, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 36827, 36828, 36829, 36830, 36831, 36832, 36833, 36834, + 36835, 36836, 36837, 36838, 36839, 36840, 36841, 36842, 36843, 36844, 36845, 36846, + 36847, 36848, 36849, 36850, 36851, 36852, 36853, 36854, 36855, 36856, 36857, 36858, + 36859, 36860, 36861, 36862, 36863, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 32, 0, 0, 0, 0, 32, 0, 0, 0, 0, 32, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 32, 0, 0, 0, 0, 32, 0, 0, 0, 0, 32, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 273, 273, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 2, + 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 2, 0, + 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, + 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 12341, 12343, 12345, 12349, 12352, 12354, + 12357, 12361, 12366, 12373, 12377, 12378, 12380, 12382, 12385, 12388, 12392, 12393, + 12394, 12397, 12400, 12404, 12405, 12411, 12414, 12417, 12419, 12421, 12425, 12427, + 12434, 12436, 12442, 12449, 12450, 12451, 12452, 12453, 12454, 12459, 12460, 12461, + 12462, 12463, 12463, 12467, 12469, 12471, 12474, 12479, 12483, 12470, 12485, 12481, + 0, 0, 0, 12491, 12492, 12420, 12424, 12428, 12439, 12434, 7229, 7230, 7231, 7232, + 7233, 7234, 7235, 7236, 7237, 7238, 665, 666, 1038, 1039, 1040, 1041, 12431, 12432, + 12455, 12456, 12457, 12458, 12475, 12476, 12477, 12478, 12353, 12367, 12444, 12445, + 12403, 12418, 12426, 12371, 12486, 12493, 12494, 12433, 12448, 12487, 12488, 12495, + 12496, 12497, 12498, 12499, 12389, 12446, 12447, 12468, 12465, 12472, 12473, 12342, + 12344, 12346, 12355, 12364, 12374, 12395, 12401, 12406, 12407, 12412, 12430, 12437, + 12429, 12464, 12480, 12482, 12490, 12500, 12502, 12505, 12506, 12501, 12503, 12504, + 12409, 12507, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 12508, + 12509, 12466, 12484, 1355, 1356, 8763, 8765, 8767, 8769, 8771, 8773, 8775, 8779, + 8781, 8783, 8785, 8787, 8789, 8793, 8795, 8797, 8799, 8801, 8803, 8807, 8809, 8811, + 8813, 8815, 8817, 8819, 8821, 8823, 8825, 8827, 8829, 8833, 8835, 8777, 8791, 8805, + 8831, 8837, 64448, 8840, 64448, 64448, 64448, 64448, 64448, 8845, 64448, 64448, + 8762, 8764, 8766, 8768, 8770, 8772, 8774, 8778, 8780, 8782, 8784, 8786, 8788, 8792, + 8794, 8796, 8798, 8800, 8802, 8806, 8808, 8810, 8812, 8814, 8816, 8818, 8820, 8822, + 8824, 8826, 8828, 8832, 8834, 8776, 8790, 8804, 8830, 8836, 8838, 8839, 8841, 8842, + 8843, 710, 8788, 8844, 8846, 8847, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 196, 229, 197, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 2, 8, 2, 2, 2, 2, 2, 8, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 20, 2, 2, 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, + 12491, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 37062, 0, 37064, 37065, 37066, 37067, 37068, 0, 37070, 37071, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12434, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 15349, 15350, 15351, 15352, 15353, 15354, + 15355, 15356, 15357, 15358, 15359, 15360, 15361, 15362, 15363, 15364, 15365, 15366, + 15367, 15368, 15369, 15370, 15371, 15372, 15373, 15374, 15375, 15376, 15377, 15378, + 15379, 15380, 15381, 15382, 15383, 15384, 15385, 15386, 15387, 15388, 15389, 15390, + 15391, 15392, 15393, 15394, 15395, 15396, 15397, 15398, 15399, 15400, 15401, 15402, + 15403, 15404, 15405, 15406, 15407, 15408, 15409, 15410, 15411, 15412, 15413, 15414, + 15415, 15416, 15417, 15418, 15419, 15420, 15421, 15422, 15423, 15424, 15425, 15426, + 15427, 15428, 15429, 15430, 15431, 15432, 15433, 15434, 15435, 15436, 15437, 15438, + 15439, 15440, 15441, 15442, 15443, 15473, 15474, 15475, 15476, 15477, 15478, 15479, + 15480, 15481, 15482, 15483, 15484, 15485, 15486, 15487, 15488, 15489, 15490, 15491, + 15492, 15493, 15494, 15495, 15496, 15497, 15498, 15499, 15500, 15501, 15502, 15503, + 15504, 15505, 15506, 15507, 15508, 15509, 15510, 15511, 15512, 15513, 15514, 15515, + 15516, 15517, 15518, 15519, 15520, 15521, 15522, 15523, 15524, 15525, 15526, 15527, + 15528, 15529, 15530, 15531, 15532, 15533, 15534, 15535, 15536, 15537, 15538, 15539, + 15540, 15541, 15542, 15543, 15544, 15545, 15569, 15570, 15571, 15572, 15573, 15574, + 15575, 15576, 15577, 15578, 15579, 15580, 15581, 15582, 15583, 15584, 15585, 15586, + 15587, 15588, 15589, 15590, 15591, 15592, 15593, 15594, 15595, 15596, 15597, 15598, + 15599, 15600, 15601, 15602, 15603, 15604, 15605, 15606, 15607, 15608, 15609, 15610, + 15611, 15612, 15613, 15614, 15615, 15616, 15617, 15618, 15619, 15620, 15621, 15622, + 15623, 15624, 15625, 15626, 15627, 15628, 15629, 15630, 15631, 15632, 15633, 15634, + 15635, 15636, 15637, 15638, 15639, 15640, 15641, 15642, 15643, 15644, 15645, 15646, + 15647, 15648, 15649, 15650, 15651, 15652, 15653, 15654, 15655, 15656, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2] +- [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, + 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, + 1, 1, 2, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9366, 9367, 9368, 9369, 9370, 9371, 9372, + 9373, 9374, 9375, 9376, 9377, 9378, 9379, 9380, 9381, 9383, 9384, 9385, 9386, 9387, + 9388, 9389, 9390, 9391, 9392, 9393, 9394, 9395, 9396, 9397, 9398, 9404, 9405, 9406, + 9407, 9408, 9409, 9410, 9411, 9412, 9413, 9414, 9415, 9416, 9417, 9418, 9419, 9421, + 9422, 9423, 9424, 9425, 9426, 9427, 9428, 9436, 9437, 9438, 9439, 9440, 9441, 9442, + 9443, 9445, 9446, 9447, 9448, 9449, 9450, 9451, 9452, 9453, 64448, 9454, 9455, 9456, + 9457, 64448, 64448, 9458, 9459, 9460, 9461, 9462, 9463, 9464, 64448, 9465, 64448, + 9466, 9467, 9468, 9469, 64448, 64448, 9470, 9471, 9472, 9473, 9474, 9475, 9476, + 9477, 9483, 9484, 9485, 9486, 9487, 9488, 9489, 9490, 9491, 9492, 9493, 9494, 9495, + 9496, 9497, 9498, 9500, 9501, 9502, 9503, 9504, 9505, 9506, 9507, 9509, 9510, 9511, + 9512, 9513, 9514, 9515, 9516, 9517, 64448, 9518, 9519, 9520, 9521, 64448, 64448, + 9522, 9523, 9524, 9525, 9526, 9527, 9528, 9529, 9531, 9532, 9533, 9534, 9535, 9536, + 9537, 9538, 9540, 9541, 9542, 9543, 9544, 9545, 9546, 9547, 9549, 9550, 9551, 9552, + 9553, 9554, 9555, 9556, 9557, 64448, 9558, 9559, 9560, 9561, 64448, 64448, 9562, + 9563, 9564, 9565, 9566, 9567, 9568, 64448, 9569, 64448, 9570, 9571, 9572, 9573, + 64448, 64448, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9581, 9582, 9583, 9584, + 9585, 9586, 9587, 9588, 64448, 9589, 9590, 9591, 9592, 9593, 9594, 9595, 9596, 9604, + 9605, 9606, 9607, 9608, 9609, 9610, 9611, 9612, 9613, 9614, 9615, 9616, 9617, 9618, + 9619, 9620, 9621, 9622, 9623, 9624, 9625, 9626, 9627, 9635, 9636, 9637, 9638, 9639, + 9640, 9641, 9642, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 37449, 0, 0, 0, 0, 37454, 37455, 0, 0, 0, 0, 0, 0, 0, 37463, 0, 37465, + 0, 0, 0, 0, 37470, 37471, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37513, 0, 0, + 0, 0, 37518, 37519, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37553, 0, 0, 0, 0, 37558, 37559, 0, 0, 0, + 0, 0, 0, 0, 37567, 0, 37569, 0, 0, 0, 0, 37574, 37575, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 37591, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 9644, 9645, 9646, 9647, 9648, 9649, 9650, + 9651, 9653, 9654, 9655, 9656, 9657, 9658, 9659, 9660, 9661, 64448, 9662, 9663, 9664, + 9665, 64448, 64448, 9666, 9667, 9668, 9669, 9670, 9671, 9672, 9673, 9678, 9679, + 9680, 9681, 9682, 9683, 9684, 9685, 9687, 9688, 9689, 9690, 9691, 9692, 9693, 9694, + 9703, 9704, 9705, 9706, 9707, 9708, 9709, 9710, 9712, 9713, 9714, 9715, 9716, 9717, + 9718, 9719, 9727, 9728, 9729, 9730, 9731, 9732, 9733, 9734, 9735, 9736, 9737, 9738, + 9739, 9740, 9741, 9742, 9747, 9748, 9749, 9750, 9751, 9752, 9753, 9754, 9760, 9761, + 9762, 64448, 64448, 0, 0, 0, 711, 593, 636, 594, 595, 596, 597, 620, 712, 7230, + 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 6843, 6844, 6845, 6846, 6847, 6848, + 6849, 6850, 6851, 6852, 6853, 64448, 64448, 64448, 9399, 9400, 9401, 9402, 9478, + 9479, 9480, 9481, 9743, 9744, 9745, 9746, 9755, 9756, 9757, 9758, 1222, 1223, 1224, + 1225, 1226, 1227, 1228, 1229, 1230, 1231, 64448, 64448, 64448, 64448, 64448, 64448, + 13183, 13184, 13185, 13186, 13187, 13188, 13189, 13190, 13191, 13192, 13193, 13194, + 13195, 13196, 13197, 13198, 13199, 13200, 13201, 13202, 13203, 13204, 13205, 13206, + 13207, 13208, 13209, 13210, 13211, 13212, 13213, 13214, 13215, 13216, 13217, 13218, + 13219, 13220, 13221, 13222, 13223, 13224, 13225, 13226, 13227, 13228, 13229, 13230, + 13231, 13232, 13233, 13234, 13235, 13236, 13237, 13238, 13239, 13240, 13241, 13242, + 13243, 13244, 13245, 13246, 13247, 13248, 13249, 13250, 13251, 13252, 13253, 13254, + 13255, 13256, 13257, 13258, 13259, 13260, 13261, 13262, 13263, 13264, 13265, 13266, + 13267, 13268, 64448, 64448, 13263, 13264, 13265, 13266, 13267, 13268, 64448, 64448, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 181, 180, 179, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37649, 0, + 0, 0, 0, 37654, 37655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37723, 37724, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 37757, 37758, 37759, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37786, 37787, 37788, 37789, 37790, 37791, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 37878, 37879, 0, 0, 0, 0, 0, 0, 37886, 37887, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 527, 13305, 13306, 13307, 13308, 13309, 13310, + 13311, 13312, 13313, 13314, 13315, 13316, 13317, 13318, 13319, 13320, 13321, 13322, + 13323, 13324, 13325, 13326, 13327, 13328, 13329, 13330, 13331, 13332, 13333, 13334, + 13335, 13336, 13337, 13338, 13339, 13340, 13341, 13342, 13343, 13344, 13345, 13346, + 13347, 13348, 13349, 13350, 13351, 13352, 13353, 13354, 13355, 13356, 13357, 13358, + 13359, 13360, 13361, 13362, 13363, 13364, 13365, 13366, 13367, 13368, 13369, 13370, + 13371, 13372, 13373, 13374, 13375, 13376, 13377, 13378, 13379, 13380, 13381, 13382, + 13383, 13384, 13385, 13386, 13387, 13388, 13389, 13390, 13391, 13392, 13393, 13394, + 13395, 13396, 13397, 13398, 13399, 13400, 13401, 13402, 13403, 13404, 13405, 13406, + 13407, 13408, 13409, 13410, 13411, 13412, 13413, 13414, 13415, 13416, 13417, 13418, + 13419, 13420, 13421, 13422, 13423, 13424, 13425, 13426, 13427, 13428, 13429, 13430, + 13431, 13432, 13433, 13434, 13435, 13436, 13437, 13438, 13439, 13440, 13441, 13442, + 13443, 13444, 13445, 13446, 13447, 13448, 13449, 13450, 13451, 13452, 13453, 13454, + 13455, 13456, 13457, 13458, 13459, 13460, 13461, 13462, 13463, 13464, 13465, 13466, + 13467, 13468, 13469, 13470, 13471, 13472, 13473, 13474, 13475, 13476, 13477, 13478, + 13479, 13480, 13481, 13482, 13483, 13484, 13485, 13486, 13487, 13488, 13489, 13490, + 13491, 13492, 13493, 13494, 13495, 13496, 13497, 13498, 13499, 13500, 13501, 13502, + 13503, 13504, 13505, 13506, 13507, 13508, 13509, 13510, 13511, 13512, 13513, 13514, + 13515, 13516, 13517, 13518, 13519, 13520, 13521, 13522, 13523, 13524, 13525, 13526, + 13527, 13528, 13529, 13530, 13531, 13532, 13533, 13534, 13535, 13536, 13537, 13538, + 13539, 13540, 13541, 13542, 13543, 13544, 13545, 13546, 13547, 13548, 13549, 13550, + 13551, 13552, 13553, 13554, 13555, 13556, 13557, 13558, 13559, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2] +- [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 13560, 13561, 13562, 13563, 13564, 13565, + 13566, 13567, 13568, 13569, 13570, 13571, 13572, 13573, 13574, 13575, 13576, 13577, + 13578, 13579, 13580, 13581, 13582, 13583, 13584, 13585, 13586, 13587, 13588, 13589, + 13590, 13591, 13592, 13593, 13594, 13595, 13596, 13597, 13598, 13599, 13600, 13601, + 13602, 13603, 13604, 13605, 13606, 13607, 13608, 13609, 13610, 13611, 13612, 13613, + 13614, 13615, 13616, 13617, 13618, 13619, 13620, 13621, 13622, 13623, 13624, 13625, + 13626, 13627, 13628, 13629, 13630, 13631, 13632, 13633, 13634, 13635, 13636, 13637, + 13638, 13639, 13640, 13641, 13642, 13643, 13644, 13645, 13646, 13647, 13648, 13649, + 13650, 13651, 13652, 13653, 13654, 13655, 13656, 13657, 13658, 13659, 13660, 13661, + 13662, 13663, 13664, 13665, 13666, 13667, 13668, 13669, 13670, 13671, 13672, 13673, + 13674, 13675, 13676, 13677, 13678, 13679, 13680, 13681, 13682, 13683, 13734, 13684, + 13686, 13687, 13688, 13689, 13690, 13691, 13692, 13693, 13694, 13695, 13696, 13697, + 13698, 13699, 13700, 13701, 13703, 13704, 13705, 13706, 13707, 13708, 13709, 13710, + 13717, 13718, 13719, 13720, 13721, 13722, 13723, 13724, 13725, 13726, 13727, 13728, + 13729, 13730, 13731, 13732, 13733, 13735, 13736, 13737, 13738, 13739, 13740, 13741, + 13742, 13743, 13744, 13745, 13746, 13747, 13748, 13749, 13750, 13751, 13752, 13753, + 13754, 13755, 13756, 13757, 13758, 13759, 13760, 13761, 13762, 13763, 13764, 13765, + 13766, 13767, 13768, 13769, 13770, 13771, 13772, 13773, 13774, 13775, 13776, 13777, + 13778, 13779, 13780, 13781, 13782, 13783, 13784, 13785, 13786, 13787, 13788, 13789, + 13790, 13791, 13792, 13793, 13794, 13795, 13796, 13797, 13798, 13799, 13800, 13801, + 13802, 13803, 13804, 13805, 13806, 13807, 13808, 13809, 13810, 13811, 13812, 13813, + 13814, 13815, 13816, 13817, 13818, 13819, 13820, 13821, 13822, 13823, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2] +- [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, + 1, 1, 2, 2, 1, 2, 1, 2, 1, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, + 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 1, + 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 4, 2, 1, 1, + 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 13824, 13825, 13826, 13827, 13828, 13829, + 13830, 13831, 13832, 13833, 13834, 13835, 13836, 13837, 13838, 13839, 13840, 13841, + 13842, 13843, 13844, 13845, 13846, 13847, 13848, 13849, 13850, 13851, 13852, 13853, + 13854, 13855, 13856, 13857, 13858, 13859, 13860, 13861, 13862, 13863, 13864, 13865, + 13866, 13867, 13868, 13869, 13870, 13871, 13872, 13873, 13874, 13875, 13876, 13877, + 13878, 13879, 13880, 13881, 13882, 13883, 13884, 13885, 13886, 13887, 13888, 13889, + 13890, 13891, 13892, 13893, 13894, 13895, 13896, 13897, 13898, 13899, 13900, 13901, + 13902, 13903, 13904, 13905, 13906, 13907, 13908, 13909, 13910, 13911, 13912, 13913, + 13914, 13915, 13916, 13917, 13918, 13919, 13920, 13921, 13922, 13923, 13924, 13925, + 13926, 13927, 13928, 13929, 13930, 13931, 13932, 1054, 639, 13685, 13702, 13711, + 13712, 13713, 13714, 13715, 13716, 13933, 13934, 13935, 13936, 13937, 13938, 13939, + 13940, 13941, 521, 14012, 14013, 14014, 14015, 14016, 14017, 14018, 14019, 14020, + 14021, 14022, 14023, 14024, 14025, 14026, 14027, 14028, 14029, 14030, 14031, 14032, + 14033, 14034, 14035, 14036, 14037, 801, 802, 64448, 64448, 64448, 14038, 14038, + 14039, 14075, 14039, 14039, 14040, 14040, 14041, 14041, 14071, 14073, 14041, 14041, + 14041, 14043, 14044, 14045, 14046, 14046, 14046, 14046, 14046, 14048, 14078, 14049, + 14050, 14050, 14050, 14050, 14051, 14051, 14051, 14052, 14052, 14054, 14054, 14055, + 14055, 14056, 14057, 14058, 14059, 14059, 14059, 14059, 14059, 14061, 14061, 14061, + 14062, 14062, 14062, 14057, 14063, 14065, 14065, 14065, 14066, 14066, 14067, 14067, + 14068, 14069, 14076, 14080, 14081, 14077, 14079, 14082, 14083, 14083, 14083, 14049, + 14059, 604, 605, 606, 14055, 14065, 14040, 14047, 14060, 14070, 14042, 14053, 14064, + 14072, 14074, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 4, 4, 2, 4, 2, 4, 2, 2, 4, 4, + 4, 2, 2, 2, 2, 4, 4, 4, 4, 2, 2, 2, 2, 4, 4, 4, 2, 4, 4, 2, 4, 2, 4, 2, 4, 2, 2, + 2, 2, 4, 4, 4, 4, 2, 4, 4, 2, 4, 4, 4, 2, 2, 4, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 4, 4, 4, 4, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 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, 38557, 38558, + 38559, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14066, + 0, 14040, 0, 0, 0, 0, 0, 0, 0, 0, 38649, 38650, 38651, 38652, 38653, 38654, 38655, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 272, + 0, 0, 272, 273, 0, 272, 0, 272, 0, 0, 273, 274, 275, 0, 0, 0, 0, 272, 273, 274, + 275, 0, 0, 0, 0, 272, 273, 274, 0, 272, 273, 0, 272, 0, 272, 0, 272, 0, 0, 0, 0, + 272, 274, 275, 276, 0, 272, 273, 0, 272, 273, 272, 0, 0, 272, 273, 0, 272, 0, 272, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 272, 273, 272, 273, 0, 0, 0, 32, 272, 32, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 4, 0, 4, 0, 4, 0, 0, 4, 4, 4, 0, 0, 0, + 0, 4, 4, 4, 4, 0, 0, 0, 0, 4, 4, 4, 0, 4, 4, 0, 4, 0, 4, 0, 4, 0, 0, 0, 0, 4, 4, + 4, 4, 0, 4, 4, 0, 4, 4, 4, 0, 0, 4, 4, 0, 4, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, + 4, 4, 4, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14065, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 272, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0] +- [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 12134, 12135, 12136, 12137, 12138, 12139, + 12140, 12141, 12142, 12143, 12144, 12145, 12146, 64448, 12147, 12148, 12149, 12150, + 12151, 12152, 12153, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, + 64448, 64448, 12154, 12155, 12156, 12157, 12158, 12159, 12160, 12161, 12162, 12163, + 12164, 12165, 12166, 12167, 12168, 12169, 12170, 12171, 12172, 12173, 12174, 662, + 663, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 12175, 12176, + 12177, 12178, 12179, 12180, 12181, 12182, 12183, 12184, 12185, 12186, 12187, 12188, + 12189, 12190, 12191, 12192, 12193, 12194, 64448, 64448, 64448, 64448, 64448, 64448, + 64448, 64448, 64448, 64448, 64448, 64448, 12195, 12196, 12197, 12198, 12199, 12200, + 12201, 12202, 12203, 12204, 12205, 12206, 12207, 64448, 12208, 12209, 12210, 64448, + 12211, 12212, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, + 64448, 64448, 12566, 12567, 12568, 12569, 12570, 12571, 12572, 12573, 12574, 12575, + 12576, 12577, 12578, 12579, 12580, 12581, 12582, 12583, 12584, 12585, 12586, 12587, + 12588, 12589, 12590, 12591, 12592, 12593, 12594, 12595, 12596, 12597, 12598, 12599, + 12600, 12602, 12603, 12604, 12605, 12606, 12607, 12608, 12609, 12610, 12611, 12612, + 12613, 12614, 12615, 12616, 12617, 12618, 0, 0, 12619, 12620, 12621, 12622, 12623, + 12624, 12625, 12626, 12627, 12628, 12629, 12630, 12631, 12632, 12633, 12634, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12635, 0, 667, 668, 601, 7165, 1042, 1043, 1044, + 7198, 12601, 0, 64448, 64448, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, + 7238, 64448, 64448, 64448, 64448, 64448, 64448, 7229, 7230, 7231, 7232, 7233, 7234, + 7235, 7236, 7237, 7238, 64448, 64448, 64448, 64448, 64448, 64448, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 196, 197, 230, 231, 232, 51, + 51, 51, 51, 51, 51, 51, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 51, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38669, 0, 0, 0, 0, 0, 0, 0, 38677, 38678, + 38679, 38680, 38681, 38682, 38683, 38684, 38685, 38686, 38687, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38711, 38712, 38713, 38714, 38715, + 38716, 38717, 38718, 38719, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 38740, 38741, 38742, 38743, 38744, 38745, 38746, 38747, 38748, 38749, 38750, + 38751, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38765, 0, 0, 0, 38769, 0, 0, 38772, + 38773, 38774, 38775, 38776, 38777, 38778, 38779, 38780, 38781, 38782, 38783, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38878, 38879, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 38890, 38891, 38892, 38893, 38894, 38895, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38906, 38907, + 38908, 38909, 38910, 38911, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, + 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 985, 632, 556, 637, 598, 599, 529, 530, 557, + 638, 0, 0, 0, 0, 0, 64448, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, + 7238, 64448, 64448, 64448, 64448, 64448, 64448, 13024, 13026, 13029, 13035, 13037, + 13040, 13042, 13045, 13046, 13047, 13052, 13054, 13057, 13059, 13064, 13066, 13067, + 13068, 13075, 13078, 13081, 13086, 13090, 13093, 13095, 13097, 13100, 13105, 13106, + 13109, 13113, 13116, 13117, 13118, 13119, 13023, 13027, 13030, 13036, 13038, 13041, + 13043, 13048, 13053, 13055, 13058, 13060, 13065, 13076, 13079, 13082, 13087, 13107, + 13091, 13096, 13101, 13111, 13114, 13120, 13121, 13084, 13028, 13031, 13034, 13044, + 13039, 13049, 13102, 13061, 13063, 13056, 13069, 13077, 13080, 13088, 13098, 13112, + 13115, 13108, 13110, 13122, 13083, 13092, 13032, 13103, 13094, 13099, 13089, 64448, + 64448, 64448, 64448, 64448, 64448, 64448, 64448, 13016, 13017, 13018, 13019, 13020, + 13021, 13022, 13025, 13033, 13104, 13050, 13085, 13123, 13125, 13126, 13128, 13129, + 13132, 13134, 13135, 13137, 13139, 13141, 13142, 13130, 13140, 13062, 13051, 13070, + 13071, 13124, 13127, 13131, 13133, 13072, 13138, 13073, 13074, 13143, 13144, 13136, + 13146, 13145, 64448, 64448, 64448, 64448, 64448, 13942, 13943, 13944, 13945, 13946, + 13947, 13948, 13949, 13950, 13951, 13952, 13953, 13954, 13955, 13956, 13957, 13958, + 13959, 13960, 13961, 13962, 13963, 13964, 13965, 13966, 13967, 13968, 13969, 13970, + 13971, 13972, 13973, 13974, 13975, 13976, 13977, 13978, 13979, 13980, 13981, 13982, + 13983, 13984, 13985, 13986, 13987, 13988, 13989, 13990, 13991, 13992, 13993, 13994, + 13995, 13996, 13997, 13998, 13999, 14000, 14001, 14002, 14003, 14004, 14005, 14006, + 14007, 14008, 14009, 14010, 14011, 64448, 64448, 64448, 64448, 64448, 64448, 64448, + 64448, 64448, 64448, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 38927, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38938, 38939, 38940, 38941, 38942, 38943, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 39032, 39033, 39034, 39035, 39036, 39037, 39038, 39039, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39083, 39084, 39085, 39086, 39087, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39158, 39159, 39160, 39161, 39162, + 39163, 39164, 39165, 39166, 39167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 2, 2, 2, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 12084, 12085, 12086, 12087, 12088, 12089, + 12090, 12091, 12092, 12093, 12094, 12095, 12096, 12097, 12098, 12099, 12100, 12101, + 12102, 12103, 12104, 12105, 12106, 12107, 12108, 12109, 12110, 12111, 12112, 12092, + 12095, 64448, 12113, 12114, 12115, 12116, 12117, 12118, 12119, 12120, 12121, 12122, + 12123, 12124, 64448, 64448, 64448, 64448, 12125, 12126, 12127, 12128, 12129, 12130, + 12131, 12132, 12133, 0, 0, 0, 64448, 64448, 64448, 64448, 1354, 64448, 64448, 64448, + 612, 621, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 12636, 12637, + 12638, 12639, 12640, 12641, 12642, 12643, 12644, 12645, 12646, 12647, 12648, 12649, + 12650, 12651, 12652, 12653, 12654, 12655, 12656, 12657, 12658, 12659, 12660, 12661, + 12662, 12663, 12664, 12665, 64448, 64448, 12666, 12667, 12668, 12669, 12670, 64448, + 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 12671, 12672, + 12673, 12674, 12675, 12676, 12677, 12678, 12679, 12680, 12681, 12682, 12683, 12684, + 12685, 12686, 12687, 12688, 12689, 12690, 12691, 12692, 12693, 12694, 12695, 12696, + 12697, 12698, 12699, 12700, 12701, 12702, 12703, 12704, 12705, 12706, 12707, 12708, + 12709, 12710, 12711, 12712, 12713, 12714, 64448, 64448, 64448, 64448, 12715, 12716, + 12717, 12718, 12719, 12720, 12721, 12722, 12723, 12724, 12725, 12726, 12727, 12728, + 12729, 12730, 12731, 12732, 12733, 12734, 12735, 12736, 12737, 12738, 12739, 12740, + 64448, 64448, 64448, 64448, 64448, 64448, 7229, 7230, 7231, 7232, 7233, 7234, 7235, + 7236, 7237, 7238, 7230, 64448, 64448, 64448, 12699, 12699, 1361, 1362, 1363, 1364, + 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, + 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 241, 242, 243, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 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, 12122, 12123, 39199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 39212, 39213, 39214, 39215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39228, 39229, + 39230, 39231, 0, 39233, 39234, 39235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 39278, 39279, 0, 0, 0, 0, 0, 39285, 39286, 39287, 39288, 39289, 39290, 39291, + 39292, 39293, 39294, 39295, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39340, + 39341, 39342, 39343, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 39370, 39371, 39372, 39373, 39374, 39375, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 39387, 39388, 39389, 12721, 12721, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 12732, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0] +- [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 12213, 12214, 12215, 12216, 12217, 12218, + 12219, 12220, 12221, 12222, 12223, 12224, 12225, 12226, 12227, 12228, 12229, 12230, + 12231, 12232, 12233, 12234, 12235, 12236, 12237, 12238, 12239, 12240, 64448, 64448, + 713, 714, 12741, 12742, 12743, 12744, 12745, 12746, 12747, 12748, 12749, 12750, + 12751, 12752, 12753, 12754, 12755, 12756, 12757, 12758, 12759, 12760, 12761, 12762, + 12763, 12764, 12765, 12766, 12767, 12768, 12769, 12770, 12771, 12772, 12773, 12774, + 12775, 12776, 12777, 12778, 12779, 12780, 12781, 12782, 12783, 12784, 12785, 12794, + 12795, 12796, 12797, 12798, 12799, 12786, 12779, 12788, 12789, 12790, 12747, 12747, + 12768, 12768, 12791, 12792, 12793, 64448, 12817, 12800, 12802, 12803, 12803, 12804, + 12805, 12806, 12807, 12808, 12809, 12787, 12801, 12816, 12810, 12811, 12813, 12814, + 12815, 12812, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64448, 64448, 0, 7229, 7230, 7231, 7232, + 7233, 7234, 7235, 7236, 7237, 7238, 64448, 64448, 64448, 64448, 64448, 64448, 7229, + 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 64448, 64448, 64448, 64448, + 64448, 64448, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 7166, 669, 670, 671, 672, + 1052, 1053, 64448, 64448, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64448, 64448, + 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, + 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, + 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, + 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, + 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, + 64448, 64448, 64448, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 196, 233, 234, 235, 236, 237, 238, 239, 240, 32, 32, 0, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 51, 51, 51, 51, 51, 52, 52, 52, 52, 52, 52, 51, 51, 52, 54, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 39452, 39453, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12817, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 39519, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39549, 39550, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 39562, 39563, 39564, 39565, 39566, 39567, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39578, + 39579, 39580, 39581, 39582, 39583, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39598, + 39599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39615, 39616, 39617, 39618, + 39619, 39620, 39621, 39622, 39623, 39624, 39625, 39626, 39627, 39628, 39629, 39630, + 39631, 39632, 39633, 39634, 39635, 39636, 39637, 39638, 39639, 39640, 39641, 39642, + 39643, 39644, 39645, 39646, 39647, 39648, 39649, 39650, 39651, 39652, 39653, 39654, + 39655, 39656, 39657, 39658, 39659, 39660, 39661, 39662, 39663, 39664, 39665, 39666, + 39667, 39668, 39669, 39670, 39671, 39672, 39673, 39674, 39675, 39676, 39677, 39678, + 39679, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 12779, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0, 0, 12887, 12888, 12889, 12890, + 12891, 12892, 12893, 12894, 12895, 12896, 12897, 12898, 12899, 12900, 12901, 12904, + 12905, 12906, 12907, 12908, 12909, 12910, 12911, 12912, 12913, 12914, 12915, 12916, + 12917, 12918, 12920, 12921, 12922, 12923, 12924, 12926, 12927, 12928, 12929, 12930, + 12931, 12932, 12933, 12935, 12936, 12937, 12940, 0, 12941, 12942, 12943, 12944, + 12945, 12946, 12947, 12948, 12949, 12950, 12951, 12952, 12953, 12954, 12955, 12956, + 12902, 12903, 12919, 12925, 12934, 12938, 12939, 64448, 64448, 64448, 64448, 7229, + 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 715, 716, 640, 602, 673, 674, + 528, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 64448, 64448, + 64448, 0, 0, 0, 11416, 11417, 11418, 11419, 11420, 11421, 11422, 11423, 11425, 11426, + 11427, 11428, 11429, 11430, 11431, 11432, 11433, 11434, 11435, 11436, 11437, 11438, + 11440, 11442, 11444, 11447, 11450, 11452, 11453, 11455, 11443, 11445, 11448, 11456, + 11457, 11458, 11459, 11460, 11461, 11462, 11463, 11441, 11451, 11424, 11454, 7229, + 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 11416, 11446, 11449, 11439, + 11423, 11440, 12241, 12241, 12242, 12242, 12242, 12243, 12243, 12244, 12244, 12245, + 12245, 12246, 12246, 12246, 12247, 12247, 12248, 12249, 12250, 12250, 12251, 12251, + 12252, 12252, 12253, 12253, 12253, 12254, 12254, 12255, 12256, 12256, 12257, 12258, + 12259, 12260, 12261, 12262, 0, 12263, 12263, 12264, 12265, 12265, 12266, 12266, + 12267, 12267, 12268, 12269, 12270, 12271, 64448, 64448, 64448, 64448, 64448, 64448, + 64448, 64448, 1066, 1067, 1068, 1069, 195, 195, 196, 200, 197, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 194, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 196, 202, 197, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 194, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 4, 2, 2, 2, 25, 25, 2, 4, 2, 4, 4, 2, 4, 2, 4, 2, 4, 2, 4, 4, 2, 4, 2, 2, + 2, 4, 2, 4, 2, 4, 2, 4, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 4, 2, + 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 39756, 39757, 39758, 39759, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39805, 39806, 39807, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 39924, 39925, 39926, 39927, 39928, 39929, 39930, 39931, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 11974, 11975, 11976, 11977, 11978, 11979, + 11980, 11981, 11982, 11983, 11987, 11988, 11989, 11990, 11991, 11992, 11993, 11994, + 11995, 11996, 11997, 11998, 11999, 12000, 12001, 12002, 12003, 12005, 12007, 12008, + 12009, 12010, 12011, 12012, 12013, 12014, 12004, 12006, 12016, 12017, 12018, 12019, + 12020, 12021, 12022, 12023, 12024, 12025, 12026, 12027, 12028, 12029, 12030, 12031, + 12015, 0, 64448, 64448, 64448, 658, 659, 1035, 1036, 1037, 7229, 7230, 7231, 7232, + 7233, 7234, 7235, 7236, 7237, 7238, 64448, 64448, 64448, 11984, 11985, 11986, 7229, + 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 13147, 13148, 13149, 13150, + 13151, 13152, 13153, 13154, 13155, 13156, 13157, 13158, 13159, 13160, 13161, 13162, + 13163, 13164, 13165, 13166, 13167, 13168, 13169, 13170, 13171, 13172, 13173, 13174, + 13175, 13176, 13177, 13178, 13179, 13180, 13181, 13182, 706, 707, 8242, 8266, 8423, + 8453, 8462, 8462, 8591, 8608, 8489, 64448, 64448, 64448, 64448, 64448, 64448, 64448, + 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, + 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, + 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, + 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, + 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 64448, 64448, 64448, 64448, 64448, + 64448, 64448, 64448, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 9889, 9889, 9889, 9889, 0, 9889, 9889, 9889, 9889, 0, 0, 0, 9890, + 9891, 64448, 0, 0, 64448, 64448, 64448, 64448, 64448, 64448, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 194, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 32, 32, 32, 32, 196, 32, 32, 32, 32, 197, 197, 0, 32, 32, 32, 0, 0, 32, 32, + 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 4, 4, 4, 2, + 4, 4, 4, 4, 2, 2, 0, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 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, 39992, 39993, 39994, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40010, 40011, 40012, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 40073, 40074, 40075, 40076, 40077, 40078, 40079, 40080, 40081, 40082, 40083, + 40084, 40085, 40086, 40087, 40088, 40089, 40090, 40091, 40092, 40093, 40094, 40095, + 40096, 40097, 40098, 40099, 40100, 40101, 40102, 40103, 40104, 40105, 40106, 40107, + 40108, 40109, 40110, 40111, 40112, 40113, 40114, 40115, 40116, 40117, 40118, 40119, + 40120, 40121, 40122, 40123, 40124, 40125, 40126, 40127, 0, 0, 0, 0, 0, 0, 0, 0, + 40136, 40137, 40138, 40139, 40140, 40141, 40142, 40143, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 40183, 0, 0, 40186, 40187, 40188, 40189, 40190, 40191, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 2, 2, 2, + 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 2, + 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 7243, 7246, 7247, 7277, 7294, 7315, 7316, + 7342, 7380, 7488, 7508, 7529, 7552, 7598, 7618, 7649, 7668, 7650, 7669, 7662, 7656, + 7691, 7674, 7675, 7696, 7742, 7752, 7833, 7865, 7867, 7868, 7897, 7911, 7929, 7973, + 8002, 8074, 8075, 8124, 8138, 8144, 8149, 8160, 8372, 7239, 7239, 7264, 7276, 7311, + 7338, 7352, 7412, 7448, 7474, 7500, 7525, 7543, 7594, 7609, 7617, 7645, 7687, 7692, + 7731, 7829, 7861, 7925, 7239, 7249, 7253, 7247, 7264, 7311, 7338, 7357, 7362, 7380, + 7412, 7488, 7525, 7594, 7640, 7645, 7664, 7674, 7675, 7692, 7829, 7861, 7867, 7892, + 7907, 8075, 8122, 8123, 8125, 8157, 8158, 7474, 7731, 7861, 7907, 8122, 8123, 8148, + 8157, 8158, 7869, 7278, 7317, 7404, 7599, 7619, 7699, 7747, 7776, 7798, 7839, 7978, + 7438, 8396, 7412, 7829, 7493, 7499, 7697, 7877, 7906, 7280, 7318, 7405, 7429, 7530, + 7570, 7600, 7629, 7700, 7757, 7799, 7815, 7913, 7939, 7979, 7245, 7258, 7327, 7349, + 7366, 7379, 7361, 7494, 7671, 7824, 7878, 8007, 7259, 7290, 7305, 7311, 7375, 7397, + 7517, 7416, 7880, 7489, 7495, 7482, 7493, 7513, 7571, 7570, 7547, 7601, 7898, 7620, + 7630, 7613, 7677, 7708, 7800, 7810, 7840, 7872, 7902, 7865, 7914, 7921, 7969, 7984, + 7988, 7998, 8133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7731, 0, 0, 0, 0, 0, 0, 0, 8032, + 7239, 7239, 7239, 7239, 7290, 7311, 7311, 7412, 7421, 7525, 7543, 7547, 7598, 7609, + 7613, 7736, 7741, 7793, 7793, 7969, 7253, 7264, 7289, 7357, 7397, 7563, 7645, 7692, + 7810, 7861, 7925, 7239, 7645, 7861, 0, 64448, 64448, 64448, 64448, 64448, 0, 0, + 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 51, 51, 52, 51, 51, 51, + 51, 51, 51, 51, 32, 51, 51, 51, 51, 52, 52, 51, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 51, 32, 32, 32, 32, 32, 51, 52, 52, 51, 52, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 29, 20, 29, 2, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 2, 29, 29, 29, 29, 29, 29, 29, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 20, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 7645, 7907, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40438, 40439, 40440, + 40441, 40442, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 272, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 272, 272, 32, 32, 48, 273, 272, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 52, 0, 43, 43, 43, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 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, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 4, + 0, 0, 4, 0, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 7338, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 7448, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7338, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 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, 2, 2, 2, 2, 2, 2, 2, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 2, 2, 2, + 2, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 2, 2, 2, 2, 2, 2, + 2, 2, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, + 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 1, 1, 3, 1, 2, 2, + 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, + 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 7239, 7239, 7264, 7264, 7264, 7264, 7264, + 7264, 7290, 7290, 7311, 7311, 7311, 7311, 7311, 7311, 7311, 7311, 7311, 7311, 7338, + 7338, 7338, 7338, 7338, 7338, 7338, 7338, 7338, 7338, 7397, 7397, 7412, 7412, 7448, + 7448, 7448, 7448, 7448, 7448, 7448, 7448, 7448, 7448, 7474, 7474, 7474, 7474, 7525, + 7525, 7525, 7525, 7525, 7525, 7543, 7543, 7543, 7543, 7543, 7543, 7543, 7543, 7594, + 7594, 7594, 7594, 7594, 7594, 7609, 7609, 7609, 7609, 7609, 7609, 7609, 7609, 7645, + 7645, 7645, 7645, 7645, 7645, 7645, 7645, 7692, 7692, 7692, 7692, 7731, 7731, 7731, + 7731, 7731, 7731, 7731, 7731, 7793, 7793, 7793, 7793, 7793, 7793, 7793, 7793, 7793, + 7793, 7829, 7829, 7829, 7829, 7829, 7829, 7829, 7829, 7861, 7861, 7861, 7861, 7861, + 7861, 7861, 7861, 7861, 7861, 7907, 7907, 7907, 7907, 7925, 7925, 7925, 7925, 7925, + 7925, 7925, 7925, 7925, 7925, 7935, 7935, 7935, 7935, 7947, 7947, 7969, 7969, 7969, + 7969, 7969, 7969, 7448, 7829, 7925, 7947, 7239, 7793, 7808, 7809, 7793, 7337, 7239, + 7239, 7239, 7239, 7239, 7239, 7239, 7239, 7239, 7239, 7239, 7239, 7239, 7239, 7239, + 7239, 7239, 7239, 7239, 7239, 7239, 7239, 7239, 7239, 7338, 7338, 7338, 7338, 7338, + 7338, 7338, 7338, 7338, 7338, 7338, 7338, 7338, 7338, 7338, 7338, 7474, 7474, 7474, + 7474, 7645, 7645, 7645, 7645, 7645, 7645, 7645, 7645, 7645, 7645, 7645, 7645, 7645, + 7645, 7645, 7645, 7645, 7645, 7645, 7645, 7645, 7645, 7645, 7645, 7861, 7861, 7861, + 7861, 7861, 7861, 7861, 7861, 7861, 7861, 7861, 7861, 7861, 7861, 7947, 7947, 7947, + 7947, 7947, 7947, 7947, 7947, 7543, 7543, 7920, 7920, 7963, 7963, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, + 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, + 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, + 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, + 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, + 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, + 8, 2, 8, 2, 2, 2, 2, 2, 4, 4, 2, 2, 10, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, + 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, + 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, + 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 10, 4, 8, 2, + 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, 8064, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7543, 7543, 0, 0, 0, 0, 68, 68, 46, 46, 66, 66, 73, + 73, 48, 48, 46, 46, 66, 66, 73, 73, 48, 48, 70, 70, 50, 50, 50, 50, 70, 70, 72, + 72, 48, 48, 46, 46, 50, 50, 46, 46, 66, 66, 43, 43, 48, 48, 71, 71, 72, 72, 43, + 43, 36, 36, 66, 66, 73, 73, 66, 66, 66, 66, 73, 73, 70, 70, 36, 36, 46, 46, 66, + 66, 46, 46, 66, 66, 73, 73, 70, 70, 45, 45, 45, 45, 50, 50, 50, 50, 36, 36, 46, + 46, 46, 46, 66, 66, 66, 66, 73, 73, 46, 46, 66, 66, 36, 36, 40, 40, 66, 66, 46, + 46, 66, 66, 73, 73, 70, 70, 67, 67, 72, 72, 70, 70, 45, 45, 50, 50, 45, 45, 66, + 66, 37, 37, 36, 36, 43, 43, 46, 46, 66, 66, 46, 46, 43, 43, 46, 46, 39, 39, 66, + 66, 73, 73, 73, 43, 41, 41, 32, 273, 0, 0, 272, 0, 66, 66, 59, 59, 39, 39, 39, 39, + 39, 39, 39, 39, 66, 66, 38, 38, 38, 38, 38, 38, 38, 38, 66, 66, 66, 66, 59, 59, + 45, 45, 39, 39, 39, 39, 39, 39, 39, 39, 66, 66, 59, 59, 66, 66, 66, 66, 59, 59, + 39, 39, 39, 39, 39, 39, 39, 39, 66, 66, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, + 66, 66, 59, 59, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 37, 37, 66, 66, 59, 59, + 45, 45, 32, 32, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 4, 4, 0, 0, 4, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 10, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7793, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 36, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 37, 37, 36, 36, 0, 0, 0, 0, 38, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 36, 36, 0, 0, 0, 0, 0, 0, 0, 0, 50, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 36, 36, 43, 43, 37, 37, 36, 36, 0, 0, 0, 0, 0, 0, 0, 0, + 50, 50, 0, 0, 0, 0, 0, 0, 46, 46, 46, 46, 46, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 36, 36, 43, 43, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 32, 0, 0, 0, 0, 0, 36, 36, 37, + 37, 59, 59, 45, 45, 39, 39, 36, 36, 37, 37, 59, 59, 45, 45, 38, 38, 0, 0, 0, 0, + 0, 0, 36, 36, 37, 37, 59, 59, 45, 45, 39, 39, 0, 0, 0, 0, 0, 0, 0, 0, 36, 36, 37, + 37, 59, 59, 45, 45, 39, 39, 36, 36, 37, 37, 59, 59, 45, 45, 66, 66, 0, 0, 0, 0, + 36, 36, 37, 37, 59, 59, 45, 45, 66, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 0, 0, 0, + 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, + 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 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, 2, 0, 0, 10, 0, 0, 0, + 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, + 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] +- [2, 2, 3, 3, 3, 3, 3, 3, 2, 2, 3, 3, 3, 3, 3, 3, 2, 2, 3, 3, 3, 3, 2, 2, 2, 2, 3, + 3, 3, 3, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 2, 2, 3, 3, 3, 3, 3, 3, 2, 2, 3, 3, 3, 3, + 3, 3, 2, 2, 3, 3, 3, 3, 3, 3, 2, 2, 3, 3, 3, 3, 2, 2, 2, 2, 3, 3, 3, 3, 2, 2, 2, + 2, 3, 3, 3, 3, 3, 3, 2, 2, 2, 3, 2, 3, 2, 3, 2, 2, 3, 3, 3, 3, 3, 3, 2, 2, 3, 3, + 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 4, 4, 4, 4, 4, + 4, 3, 3, 4, 4, 4, 4, 4, 4, 3, 3, 4, 4, 4, 4, 4, 4, 3, 3, 4, 4, 4, 4, 4, 4, 3, 3, + 4, 4, 4, 4, 4, 4, 3, 3, 4, 4, 4, 4, 4, 4, 2, 2, 3, 2, 3, 2, 2, 3, 2, 2, 2, 2, 2, + 1, 1, 1, 1, 2, 3, 2, 3, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 2, 2, 2, 3, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 3, + 2, 3, 2, 2, 3, 2, 2, 2, 2, 2, 1, 1, 2, 8121, 8121, 8121, 8121, 8121, 8121, 8121, + 8121, 8121, 8121, 8121, 8121, 8121, 8121, 8121, 8121, 8126, 8126, 8126, 8126, 8126, + 8126, 64448, 64448, 8126, 8126, 8126, 8126, 8126, 8126, 64448, 64448, 8132, 8132, + 8132, 8132, 8132, 8132, 8132, 8132, 8132, 8132, 8132, 8132, 8132, 8132, 8132, 8132, + 8134, 8134, 8134, 8134, 8134, 8134, 8134, 8134, 8134, 8134, 8134, 8134, 8134, 8134, + 8134, 8134, 8142, 8142, 8142, 8142, 8142, 8142, 64448, 64448, 8142, 8142, 8142, + 8142, 8142, 8142, 64448, 64448, 8156, 8156, 8156, 8156, 8156, 8156, 8156, 8156, + 64448, 8156, 64448, 8156, 64448, 8156, 64448, 8156, 8161, 8161, 8161, 8161, 8161, + 8161, 8161, 8161, 8161, 8161, 8161, 8161, 8161, 8161, 8161, 8161, 8121, 8121, 8126, + 8126, 8132, 8132, 8134, 8134, 8142, 8142, 8156, 8156, 8161, 8161, 64448, 64448, + 8121, 8121, 8121, 8121, 8121, 8121, 8121, 8121, 8121, 8121, 8121, 8121, 8121, 8121, + 8121, 8121, 8132, 8132, 8132, 8132, 8132, 8132, 8132, 8132, 8132, 8132, 8132, 8132, + 8132, 8132, 8132, 8132, 8161, 8161, 8161, 8161, 8161, 8161, 8161, 8161, 8161, 8161, + 8161, 8161, 8161, 8161, 8161, 8161, 8121, 8121, 8121, 8121, 8121, 64448, 8121, 8121, + 8121, 8121, 8121, 8121, 8121, 1166, 8134, 1166, 1168, 1161, 8132, 8132, 8132, 64448, + 8132, 8132, 8126, 8126, 8132, 8132, 8132, 1166, 1166, 1166, 8134, 8134, 8134, 8134, + 64448, 64448, 8134, 8134, 8134, 8134, 8134, 8134, 64448, 1167, 1167, 1167, 8156, + 8156, 8156, 8156, 8148, 8148, 8156, 8156, 8156, 8156, 8156, 8156, 8148, 1161, 1161, + 1154, 64448, 64448, 8161, 8161, 8161, 64448, 8161, 8161, 8142, 8142, 8161, 8161, + 8161, 1155, 1167, 64448, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 8, 8, 8, 8, 8, 8, 8, 8, 2, 2, 2, 2, 2, 2, 2, 2, + 8, 8, 8, 8, 8, 8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 8, 8, 8, 8, 8, 8, 8, 8, 2, 2, 2, + 2, 2, 2, 2, 2, 8, 8, 8, 8, 8, 8, 8, 8, 2, 2, 2, 2, 2, 2, 2, 2, 8, 8, 8, 8, 8, 8, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 8, 2, 8, 2, 8, 2, 8, 2, 2, 2, 2, 2, 2, 2, 2, 8, + 8, 8, 8, 8, 8, 8, 8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 8, 8, 8, 8, 8, 8, 8, 8, 2, 2, 2, 2, 2, 2, 2, 2, 8, 8, 8, 8, 8, 8, 8, + 8, 2, 2, 2, 2, 2, 2, 2, 2, 8, 8, 8, 8, 8, 8, 8, 8, 2, 2, 2, 2, 2, 2, 2, 2, 8, 8, + 8, 8, 8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 8, 8, 8, 8, 8, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 8, 8, 8, 8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 8, 8, 8, 8, 8, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 8, 8, 8, 8, 8, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40726, 40727, 0, 0, 0, 0, 0, 0, 40734, 40735, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40774, 40775, 0, 0, 0, 0, 0, 0, 40782, 40783, 0, 0, + 0, 0, 0, 0, 0, 0, 40792, 0, 40794, 0, 40796, 0, 40798, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40830, 40831, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40885, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40901, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 40916, 40917, 0, 0, 0, 0, 0, 0, 40924, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 40944, 40945, 0, 0, 0, 40949, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 40959, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, + 34, 35, 34, 35, 0, 0, 34, 35, 34, 35, 34, 35, 0, 0, 34, 35, 34, 35, 34, 35, 34, + 35, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 34, + 35, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 0, 0, 34, 35, 34, 35, 34, 35, 0, 0, + 34, 35, 34, 35, 34, 35, 34, 35, 0, 35, 0, 35, 0, 35, 0, 35, 34, 35, 34, 35, 34, + 35, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 37, 36, 37, 36, 37, 36, 37, 36, 37, + 36, 37, 36, 37, 36, 0, 0, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, + 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, + 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 38, 50, 37, 76, 36, 0, 42, + 42, 38, 50, 37, 36, 76, 0, 0, 0, 0, 42, 37, 76, 36, 0, 42, 42, 37, 36, 37, 36, 76, + 37, 36, 42, 38, 50, 43, 43, 0, 0, 42, 43, 38, 50, 37, 36, 0, 37, 36, 42, 38, 50, + 43, 43, 34, 35, 42, 43, 38, 50, 37, 36, 35, 37, 36, 0, 0, 0, 37, 76, 36, 0, 42, + 42, 37, 36, 37, 36, 76, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 2, 0, 2, 0, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 37, 36, 36, 42, 42, 0, 0, 37, 37, 36, 36, + 42, 42, 0, 0, 37, 37, 36, 36, 0, 0, 0, 0, 37, 37, 36, 36, 0, 0, 0, 0, 37, 37, 36, + 36, 42, 42, 0, 0, 37, 37, 36, 36, 42, 42, 0, 0, 37, 37, 36, 36, 42, 42, 0, 0, 37, + 37, 36, 36, 42, 42, 0, 0, 37, 37, 36, 36, 0, 0, 0, 0, 37, 37, 36, 36, 0, 0, 0, 0, + 37, 37, 36, 36, 42, 42, 0, 0, 0, 37, 0, 36, 0, 42, 0, 0, 37, 37, 36, 36, 42, 42, + 0, 0, 37, 37, 36, 36, 42, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, + 76, 37, 37, 36, 36, 42, 42, 76, 76, 37, 37, 36, 36, 42, 42, 76, 76, 37, 37, 36, + 36, 42, 42, 76, 76, 37, 37, 36, 36, 42, 42, 76, 76, 37, 37, 36, 36, 42, 42, 76, + 76, 37, 37, 36, 36, 42, 42, 0, 0, 76, 0, 76, 0, 0, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 76, 0, 76, 0, 0, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 36, 0, 0, 0, 42, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 37, 36, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 0, + 76, 0, 0, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, + 2, 2, 0, 0, 2, 2, 2, 2, 0, 0, 0, 0, 2, 2, 2, 2, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 0, + 0, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, + 2, 2, 0, 0, 0, 0, 2, 2, 2, 2, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 0, 2, 0, + 2, 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 0, 0, 2, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, + 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 76, 76, 76, 76, 76, 76, 0, 0, 76, 76, 76, 76, 76, 76, 0, 0, + 76, 76, 76, 76, 76, 76, 0, 0, 76, 76, 76, 76, 76, 76, 0, 0, 76, 76, 76, 76, 76, + 76, 0, 0, 76, 76, 76, 76, 76, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 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, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, + 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 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] +- [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, + 2, 3, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, + 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 521, 521, 521, 521, 521, 521, 521, 521, 521, + 521, 521, 0, 0, 0, 0, 0, 531, 531, 532, 533, 534, 535, 899, 524, 774, 775, 776, + 777, 781, 782, 783, 784, 927, 928, 932, 933, 631, 631, 631, 934, 519, 520, 0, 0, + 0, 0, 0, 521, 923, 925, 938, 938, 938, 939, 939, 939, 942, 778, 779, 943, 608, 629, + 522, 944, 946, 948, 949, 935, 1574, 803, 804, 614, 614, 608, 919, 908, 936, 937, + 912, 566, 947, 913, 1570, 538, 945, 744, 745, 938, 746, 747, 748, 749, 750, 751, + 752, 521, 0, 0, 0, 0, 0, 64448, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7229, 7474, 64448, + 64448, 7233, 7234, 7235, 7236, 7237, 7238, 1558, 1569, 1563, 791, 792, 7609, 7229, + 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 1558, 1569, 1563, 791, 792, + 64448, 7239, 7338, 7645, 7935, 7357, 7448, 7525, 7543, 7594, 7609, 7692, 7793, 7829, + 64448, 64448, 64448, 7199, 7200, 7201, 7202, 7203, 7204, 7205, 7206, 7731, 7207, + 7208, 7209, 7210, 7211, 7212, 7213, 7214, 7215, 7216, 7217, 7218, 7219, 7220, 7221, + 7222, 7223, 7224, 7225, 7226, 7227, 7228, 64448, 64448, 64448, 64448, 64448, 64448, + 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, + 64448, 64448, 64448, 64448, 64448, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, + 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 257, 258, 259, 259, 260, 261, 262, 263, 53, + 53, 53, 264, 265, 54, 54, 54, 54, 266, 54, 54, 54, 53, 267, 268, 269, 270, 53, 53, + 52, 52, 52, 52, 51, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 4, 4, 4, 4, 4, 4, 4, 27, 4, 4, 4, 0, 0, 0, 0, 0, 2, 27, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 0, 0, 0, 0, 0, 27, 2, 2, 2, 4, 4, + 2, 4, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 4, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 20, 20, 2, 2, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, + 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 2, 21, 21, 21, 21, 21, 21, + 21, 21, 21, 21, 21, 21, 21, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 10, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 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, 631, 631, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 938, + 938, 0, 939, 939, 0, 0, 0, 0, 608, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 614, 608, 614, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 938, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 41061, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41074, 41075, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41103, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 41117, 41118, 41119, 0, 0, 0, 0, 0, 0, 0, 0, 7793, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41151, 41152, 41153, + 41154, 41155, 41156, 41157, 41158, 41159, 41160, 41161, 41162, 41163, 41164, 41165, + 41166, 41167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41201, 41202, 41203, 41204, 41205, 41206, 41207, + 41208, 41209, 41210, 41211, 41212, 41213, 41214, 41215, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 0, 32, 32, 0, 0, 0, 0, + 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 4, 4, 0, 4, 4, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, + 4, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 631, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 938, 0, 0, 939, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 938, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 0, 0, 4, 0, + 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 938, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 3, 1, 2, 1, 3, 3, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 2, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 3, + 3, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 2, 3, 2, 1, 2, 3, 4, 2, 1, 2, 3, + 1, 1, 1, 1, 1, 2, 3, 2, 1, 2, 3, 4, 2, 1, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 3, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 7239, 7239, 7290, 1270, 1414, 7290, 7290, + 7362, 1415, 1270, 7412, 7448, 7448, 7448, 7448, 7448, 7474, 7474, 7543, 7543, 1416, + 7609, 7609, 1417, 1418, 7692, 7713, 7731, 7731, 7731, 1419, 1420, 7793, 7829, 7829, + 1421, 7969, 1422, 8161, 1423, 7969, 1424, 7525, 7239, 7264, 7290, 1425, 7338, 7338, + 7397, 7410, 7594, 7645, 8887, 8888, 8889, 8890, 7474, 1426, 7397, 8143, 8123, 8123, + 8143, 1557, 1427, 1428, 1429, 1430, 7311, 7311, 7338, 7474, 7500, 1431, 1713, 1432, + 7239, 7410, 1433, 7230, 7230, 7230, 7230, 7231, 7230, 7231, 7232, 7233, 7230, 7234, + 7230, 7232, 7234, 7236, 7230, 7474, 7474, 7474, 7474, 7907, 7907, 7907, 7907, 7474, + 7935, 7935, 7935, 7543, 7290, 7311, 7594, 7474, 7474, 7474, 7474, 7907, 7907, 7907, + 7907, 7474, 7935, 7935, 7935, 7543, 7290, 7311, 7594, 6854, 6855, 6856, 7309, 7309, + 7235, 6857, 6858, 6859, 7229, 1434, 1435, 64448, 64448, 64448, 64448, 1436, 1438, + 1437, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1436, 1437, 1446, 1447, 1448, 1449, + 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, + 1440, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, + 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, + 1491, 1492, 1493, 1494, 1498, 1496, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, + 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, + 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, + 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 4, 4, 11, 4, 2, 4, 4, 10, + 2, 4, 5, 11, 11, 11, 5, 2, 11, 11, 11, 5, 2, 11, 10, 2, 2, 11, 11, 11, 11, 11, 2, + 2, 20, 10, 20, 2, 11, 2, 8, 2, 11, 2, 8, 8, 11, 11, 2, 5, 11, 11, 8, 11, 5, 4, 4, + 4, 4, 5, 2, 10, 5, 5, 11, 11, 5, 2, 2, 2, 2, 11, 5, 5, 5, 5, 2, 2, 2, 10, 2, 2, + 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 2, 2, 2, 8, 2, 2, 2, 2, 2, 30, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 916, + 916, 0, 7290, 0, 916, 916, 0, 0, 7397, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7645, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 7594, 7338, 7594, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 916, 0, 0, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, + 1574, 1574, 1574, 1574, 1574, 1574, 0, 7474, 7474, 7907, 0, 7474, 7474, 7474, 7935, + 0, 7474, 7474, 0, 0, 0, 0, 0, 7474, 7474, 7907, 0, 7474, 7474, 7474, 7935, 0, 7474, + 7474, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1574, 0, 0, 41356, 41357, 41358, 41359, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 32, 32, 0, 32, 0, 32, 32, 0, 0, 32, 0, 0, 0, 0, 0, 57, 0, 0, 0, 0, 0, + 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 32, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 0, 32, 32, 32, 0, 32, 32, 32, 32, 0, 32, 32, 0, 0, 0, 0, 0, 32, 32, 32, 0, 32, + 32, 32, 32, 0, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 0, 10, 0, 4, 4, 0, 0, 10, 0, 0, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 10, 20, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 4, 0, 0, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 0, 10, 10, 10, 0, 10, 10, 10, 10, 0, 10, 10, 0, 0, 0, 0, 0, 4, 4, 4, 0, + 4, 4, 4, 4, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 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, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2, 2, 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, 7290, 7793, 0, 0, 0, 7645, 7861, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7543, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7935, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 7793, 0, 0, 7236, 7238, 7230, 7232, 7232, 7234, 7234, 7234, 7234, + 7235, 7235, 7237, 7237, 7237, 7237, 0, 0, 0, 7474, 0, 0, 0, 7474, 7474, 0, 0, 0, + 7474, 0, 0, 0, 0, 0, 0, 7474, 0, 0, 0, 7474, 7474, 0, 0, 0, 7474, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 7232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 0, 0, 0, 32, + 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 32, 0, 0, 0, 32, 32, 0, 0, 0, 32, + 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 32, 32, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 30, 30, 30, 0, 0, 0, 10, 0, 0, 0, 10, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 4, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 7229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 7474, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7474, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 10, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 2, 3, 1, 2, 3, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, + 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1542, 1543, 1544, 1545, 1545, 1546, 1547, + 1548, 1549, 1549, 1550, 1551, 1551, 1552, 1554, 1555, 1556, 1557, 1569, 1571, 1572, + 1573, 1575, 1576, 1577, 1578, 1579, 1580, 1582, 1584, 1585, 1586, 1587, 1588, 1589, + 1590, 1590, 1591, 1591, 1592, 1593, 1594, 1595, 1596, 1596, 1596, 1597, 1597, 1597, + 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, + 1612, 1613, 1609, 1614, 1615, 1615, 1616, 1617, 1616, 1618, 1618, 1619, 1620, 1621, + 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, + 1636, 1637, 1638, 1639, 1640, 1563, 1641, 1641, 1642, 1643, 1644, 1645, 1646, 1647, + 1648, 1649, 1650, 1651, 1622, 1562, 1564, 1643, 1644, 1652, 1653, 1652, 1653, 1654, + 1655, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1656, 1657, 1662, 1663, 1662, + 1663, 1664, 1665, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, + 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, + 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1690, 1696, 1697, + 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, + 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, + 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, + 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1658, 1659, 1673, 1674, 1749, 1750, 1751, + 1752, 1753, 1754, 1702, 1703, 1704, 1705, 1755, 1756, 1757, 1758, 1759, 1760, 1761, + 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 4, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 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, 1596, 1596, 0, 1597, 1597, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 0, + 47, 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 47, 0, 47, 0, 0, 0, 0, 0, 32, 32, 0, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 47, 0, 0, 47, 0, 0, 47, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 47, + 47, 47, 0, 0, 47, 47, 0, 0, 47, 47, 0, 0, 0, 0, 0, 0, 47, 47, 0, 0, 47, 47, 0, 0, + 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 47, 47, 0, 0, 0, 0, 0, 0, 47, 47, 47, 47, 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, 2, + 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, 2, + 0, 2, 0, 0, 0, 0, 0, 4, 4, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2, 0, 0, 2, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 0, 0, 2, 2, + 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 2, 2, 0, 0, 2, 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, + 2, 2, 2, 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, 2, 2, + 2, 2, 0, 0, 0, 0, 0, 0, 2, 2, 2, 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, 1596, 0, 0, 1597, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1773, 1774, 1775, 1776, 1777, 1778, 1779, + 1780, 805, 806, 807, 808, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, + 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, + 1804, 1805, 1806, 1807, 1808, 1809, 879, 880, 1810, 1811, 1812, 1813, 1814, 1815, + 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, + 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843, + 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, + 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, + 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, + 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, + 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, + 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, + 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, + 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, + 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, + 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, + 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, + 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, + 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 64448, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41983, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2022, 2023, 2024, 2025, 2026, 2027, 2028, + 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2041, 2042, + 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, + 2057, 2058, 2059, 2060, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, + 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, + 64448, 64448, 64448, 64448, 64448, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, + 2069, 2070, 2071, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, + 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, + 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7230, 7230, 7230, 7230, 7230, + 7230, 7230, 7230, 7230, 7230, 7231, 791, 791, 791, 791, 791, 791, 791, 791, 791, + 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 7230, 7231, 7232, 7233, 7234, + 7235, 7236, 7237, 7238, 7230, 7230, 7230, 7230, 7230, 7230, 7230, 7230, 7230, 7230, + 7231, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, + 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 7239, 7264, 7290, 7311, 7338, + 7397, 7412, 7448, 7474, 7500, 7525, 7543, 7594, 7609, 7645, 7692, 7713, 7731, 7793, + 7829, 7861, 7907, 7925, 7935, 7947, 7969, 7239, 7264, 7290, 7311, 7338, 7397, 7412, + 7448, 7474, 7500, 7525, 7543, 7594, 7609, 7645, 7692, 7713, 7731, 7793, 7829, 7861, + 7907, 7925, 7935, 7947, 7969, 7229, 7230, 7230, 7230, 7230, 7230, 7230, 7230, 7230, + 7230, 7231, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7230, 7229, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, + 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42023, + 42024, 42025, 42026, 42027, 42028, 42029, 42030, 42031, 42032, 42033, 42034, 42035, + 42036, 42037, 42038, 42039, 42040, 42041, 42042, 42043, 42044, 42045, 42046, 42047, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42059, 42060, 42061, 42062, 42063, 42064, 42065, + 42066, 42067, 42068, 42069, 42070, 42071, 42072, 42073, 42074, 42075, 42076, 42077, + 42078, 42079, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7229, 7230, 7231, 7232, 7233, 7234, 7235, + 7236, 7237, 7238, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7230, + 7230, 7230, 7230, 7230, 7230, 7230, 7230, 7230, 7230, 7231, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, + 7229, 7239, 7264, 7290, 7311, 7338, 7397, 7412, 7448, 7474, 7500, 7525, 7543, 7594, + 7609, 7645, 7692, 7713, 7731, 7793, 7829, 7861, 7907, 7925, 7935, 7947, 7969, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7230, + 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7229, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 792, 792, 792, 792, 792, 792, 792, 792, 792, + 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7229, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 792, 792, 792, + 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, + 792, 792, 792, 792, 792, 792, 792, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 792, 792, 792, 792, 792, 792, 792, 792, 792, + 792, 792, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2072, 2073, 2074, 2075, 2076, 2077, 2078, + 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2089, 2090, 2091, 2092, + 2093, 2094, 2095, 2096, 2097, 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, + 2107, 2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119, 2120, + 2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128, 2129, 2130, 2131, 2132, 2133, 2134, + 2135, 2136, 2137, 2138, 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148, + 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158, 2159, 2160, 2161, 2162, + 2163, 2164, 2165, 2166, 2167, 2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, + 2177, 2178, 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187, 2188, 2189, 2190, + 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, + 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, + 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, + 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, + 2247, 2248, 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2256, 2257, 2258, 2259, 2260, + 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268, 2269, 2270, 2271, 2272, 2273, 2274, + 2275, 2276, 2277, 2278, 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288, + 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, 2299, 2300, 2301, 2302, + 2303, 2304, 2305, 2306, 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316, + 2317, 2318, 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2326, 2327, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2] +- [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2328, 2329, 2330, 2331, 2332, 2333, 2334, + 2335, 2336, 2337, 2338, 2339, 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347, 2348, + 2349, 2350, 2351, 2352, 2353, 2354, 2355, 2356, 2357, 2358, 2359, 2360, 2361, 2362, + 2363, 2364, 2365, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 3746, + 3747, 3748, 3749, 3750, 3751, 3752, 3753, 2376, 2377, 2378, 2379, 2380, 2381, 2382, + 2383, 2384, 2385, 2386, 2387, 2388, 2389, 2390, 2391, 2392, 2393, 2394, 2395, 2396, + 2397, 2398, 2399, 2400, 2401, 2402, 2403, 2404, 2405, 2406, 2407, 2408, 2409, 2410, + 2411, 2412, 2413, 2414, 2415, 2416, 2417, 2418, 2419, 2420, 2421, 2422, 2423, 2424, + 2425, 2426, 2427, 2428, 4339, 4340, 4341, 2429, 2430, 2431, 2432, 2433, 2434, 2435, + 2436, 2437, 2438, 2439, 2440, 2441, 2442, 2443, 2444, 2445, 2446, 2447, 2448, 2449, + 2450, 2451, 2452, 2453, 2454, 3740, 3741, 3742, 3743, 3744, 3745, 2455, 2456, 2457, + 2458, 2459, 2460, 2461, 2462, 2463, 2464, 2465, 2466, 2467, 2468, 2469, 2470, 2471, + 2472, 2473, 2474, 2475, 2476, 2477, 2478, 2479, 2480, 2481, 2482, 2483, 2484, 2485, + 2486, 2487, 2488, 2489, 2490, 2491, 2492, 2493, 2494, 2495, 2496, 2497, 2498, 2499, + 2500, 2501, 2502, 2503, 2504, 2505, 2506, 2507, 2508, 2509, 2510, 2511, 2512, 2513, + 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 2523, 2524, 2525, 2526, 2527, + 2528, 2529, 2530, 2531, 2532, 2533, 2534, 2535, 2536, 2537, 2538, 2539, 2540, 2541, + 2542, 2543, 2544, 2545, 2546, 2547, 2548, 2549, 2550, 2551, 2552, 2553, 2554, 2555, + 2556, 2557, 2558, 2559, 2560, 2561, 2562, 2563, 2564, 2565, 2566, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2] +- [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2593, 2594, 2595, 2596, 2597, 2598, 2599, + 2600, 2601, 2602, 2603, 2604, 2605, 2606, 2607, 2608, 2609, 2610, 2611, 2612, 2613, + 2614, 2615, 2616, 2617, 2618, 2619, 2620, 2621, 2622, 2623, 2624, 2625, 2626, 2627, + 2628, 2629, 2630, 2631, 2632, 2633, 2634, 2635, 2636, 2637, 2638, 2639, 2640, 2641, + 2642, 2643, 2644, 2645, 2646, 2647, 2648, 2649, 2650, 2651, 2652, 2653, 2654, 2655, + 2656, 2657, 2658, 2659, 2660, 2661, 2662, 2663, 2664, 2665, 2666, 2667, 2668, 2669, + 2670, 2671, 2672, 2673, 2674, 2675, 2676, 2677, 2678, 2679, 2680, 2681, 2682, 2683, + 2684, 2685, 2686, 2687, 2688, 2689, 2690, 2691, 2692, 2693, 2694, 2695, 2696, 845, + 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 7230, 7231, 7232, + 7233, 7234, 7235, 7236, 7237, 7238, 7230, 7230, 7231, 7232, 7233, 7234, 7235, 7236, + 7237, 7238, 7230, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7230, 2697, + 2698, 2699, 2700, 2701, 2702, 2703, 2704, 2705, 2706, 2707, 2708, 2709, 2710, 2711, + 2712, 2713, 2714, 2715, 2716, 2717, 2718, 2719, 2720, 2721, 2722, 2723, 2724, 2725, + 2726, 2727, 2728, 2729, 2730, 2731, 2732, 2733, 2734, 2735, 2736, 2737, 2738, 2739, + 2740, 2741, 2742, 2743, 2744, 2745, 833, 834, 2746, 2747, 2748, 2749, 2750, 2751, + 2752, 2753, 2754, 2755, 2756, 2757, 2758, 2759, 2760, 2761, 2762, 2763, 2764, 2765, + 2766, 2767, 2768, 2769, 2770, 2771, 2772, 2773, 2774, 2775, 2776, 835, 836, 837, + 838, 839, 840, 841, 842, 843, 844, 2777, 2778, 2779, 2780, 2781, 2782, 2783, 2784, + 2785, 2786, 2787, 2788, 2789, 2790, 2791, 2792, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 7229, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3484, 3485, 3486, 3487, 3488, 3489, 3490, + 3491, 3492, 3493, 3494, 3495, 3496, 3497, 3498, 3499, 3500, 3501, 3502, 3503, 3504, + 3505, 3506, 3507, 3508, 3509, 3510, 3511, 3512, 3513, 3514, 3515, 3516, 3517, 3518, + 3519, 3520, 3521, 3522, 3523, 3524, 3525, 3526, 3527, 3528, 3529, 3530, 3531, 3532, + 3533, 3534, 3535, 3536, 3537, 3538, 3539, 3540, 3541, 3542, 3543, 3544, 3545, 3546, + 3547, 3548, 3549, 3550, 3551, 3552, 3553, 3554, 3555, 3556, 3557, 3558, 3559, 3560, + 3561, 3562, 3563, 3564, 3565, 3566, 3567, 3568, 3569, 3570, 3571, 3572, 3573, 3574, + 3575, 3576, 3577, 3578, 3579, 3580, 3581, 3582, 3583, 3584, 3585, 3586, 3587, 3588, + 3589, 3590, 3591, 3592, 3593, 3594, 3595, 3596, 3597, 3598, 3599, 3600, 3601, 3602, + 3603, 3604, 3605, 3606, 3607, 3608, 3609, 3610, 3611, 3612, 3613, 3614, 3615, 3616, + 3617, 3618, 3619, 3620, 3621, 3622, 3623, 3624, 3625, 3626, 3627, 3628, 3629, 3630, + 3631, 3632, 3633, 3634, 3635, 3636, 3637, 3638, 3639, 3640, 3641, 3642, 3643, 3644, + 3645, 3646, 3647, 3648, 3649, 3650, 3651, 3652, 3653, 3654, 3655, 3656, 3657, 3658, + 3659, 3660, 3661, 3662, 3663, 3664, 3665, 3666, 3667, 3668, 3669, 3670, 3671, 3672, + 3673, 3674, 3675, 3676, 3677, 3678, 3679, 3680, 3681, 3682, 3683, 3684, 3685, 3686, + 3687, 3688, 3689, 3690, 3691, 3692, 3693, 3694, 3695, 3696, 3697, 3698, 3699, 3700, + 3701, 3702, 3703, 3704, 3705, 3706, 3707, 3708, 3709, 3710, 3711, 3712, 3713, 3714, + 3715, 3716, 3717, 3718, 3719, 3720, 3721, 3722, 3723, 3724, 3725, 3726, 3727, 3728, + 3729, 3730, 3731, 3732, 3733, 3734, 3735, 3736, 3737, 3738, 3739, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2] +- [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2793, 2794, 2795, 2796, 2797, 2798, 2799, + 2800, 2801, 2802, 2803, 2804, 2805, 2806, 2807, 2808, 2809, 2810, 2811, 2812, 2813, + 2814, 2815, 2816, 2817, 2818, 2819, 2820, 2821, 2822, 2823, 2824, 2825, 2826, 2827, + 2828, 2829, 2830, 2831, 2832, 2833, 2834, 2835, 2836, 2837, 2838, 2839, 2840, 2841, + 2842, 2843, 2844, 2845, 2846, 2847, 2848, 2849, 2850, 2851, 2852, 2853, 2854, 2855, + 2856, 2857, 2858, 2859, 2860, 2861, 2862, 2863, 2864, 2865, 2866, 2867, 2868, 2869, + 2870, 2871, 2872, 2873, 2874, 2875, 2876, 2877, 2878, 2879, 2880, 2881, 2882, 2883, + 2884, 2885, 2886, 2887, 2888, 2889, 2890, 2891, 2892, 2893, 2894, 2895, 2896, 2897, + 2898, 2899, 2900, 2901, 2902, 2903, 2904, 2905, 2906, 2907, 2908, 2909, 2910, 2911, + 2912, 2913, 2914, 2915, 2916, 2917, 2918, 2919, 2920, 2921, 2922, 2923, 811, 812, + 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, + 829, 830, 831, 832, 2924, 2925, 2926, 2927, 2928, 2929, 2930, 2931, 2932, 2933, + 2934, 2935, 2936, 2937, 2938, 2939, 2940, 2941, 2942, 2943, 2944, 2945, 2946, 2947, + 2948, 2949, 2950, 2951, 2952, 2953, 2954, 2955, 2956, 2957, 2958, 2959, 2960, 2961, + 2962, 2963, 2964, 2965, 2966, 2967, 2968, 2969, 2970, 2971, 2972, 2973, 2974, 2975, + 2976, 2977, 2978, 2979, 2980, 2981, 2982, 2983, 2984, 2985, 2986, 901, 902, 903, + 904, 2987, 2988, 2989, 2990, 2991, 2992, 2993, 2994, 2995, 2996, 2997, 2998, 2999, + 3000, 3001, 3002, 3003, 3004, 3005, 3006, 3007, 3008, 3009, 3010, 3011, 3012, 3013, + 3014, 3015, 3016, 3017, 3018, 809, 810, 3019, 3020, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2] +- [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3021, 3022, 3023, 3024, 3025, 3026, 3027, + 3028, 3029, 3030, 3031, 3032, 1596, 3033, 3034, 3035, 3036, 3037, 3038, 3039, 3040, + 3041, 3042, 3043, 3044, 3045, 3046, 3047, 3048, 3049, 3050, 3051, 3052, 3053, 3054, + 3055, 3056, 3057, 3058, 3059, 3060, 3061, 3062, 3063, 3064, 3065, 3066, 3067, 3068, + 3069, 3070, 3071, 3072, 3073, 3074, 3075, 3076, 3077, 3078, 3079, 3080, 3081, 3082, + 3083, 3084, 3085, 3086, 3087, 3088, 3089, 3090, 3091, 3092, 3093, 3094, 3095, 3096, + 3097, 3098, 3099, 3100, 3101, 3102, 3103, 3104, 3105, 3106, 3107, 3108, 3109, 3110, + 3111, 3112, 3113, 3114, 3115, 3116, 3117, 3118, 3119, 3120, 3121, 3122, 3123, 3124, + 3125, 3126, 3127, 3128, 3129, 3130, 3131, 3132, 3133, 3134, 3135, 569, 1563, 1563, + 3136, 3137, 3138, 3139, 3140, 3141, 3142, 3143, 3144, 3145, 3146, 3147, 3148, 3149, + 3150, 3151, 3152, 3153, 3154, 3155, 3156, 3157, 3158, 3159, 3160, 3161, 3162, 3163, + 3164, 3165, 3166, 3167, 3168, 3169, 3170, 3171, 3172, 3173, 3174, 3175, 3176, 3177, + 3178, 3179, 3180, 3181, 3182, 3183, 3184, 3185, 3186, 3187, 3188, 3189, 3190, 3191, + 3192, 3193, 3194, 3195, 3196, 3197, 3198, 3199, 3200, 3201, 3202, 3203, 3204, 3205, + 3206, 3207, 3208, 3209, 3210, 3211, 3212, 3213, 3214, 3215, 3216, 3217, 3218, 3219, + 3220, 3221, 3222, 3223, 3224, 3225, 3226, 3227, 3228, 3229, 3230, 3231, 3232, 3233, + 3234, 3235, 3236, 3237, 3237, 3238, 3239, 3240, 3241, 3242, 3243, 3244, 3245, 3246, + 3247, 3248, 3249, 3250, 3251, 3252, 3253, 3254, 3255, 3256, 3257, 3258, 3259, 3260, + 3261, 3262, 3263, 3264, 3265, 3266, 3267, 3268, 3269, 3270, 3271, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1596, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 569, 1563, 1563, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1596, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1563, 0, 1563, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 32, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 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, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1596, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3272, 3273, 3274, 3275, 3276, 3277, 3278, + 3279, 3280, 3281, 3282, 3283, 3284, 3285, 3286, 3287, 3288, 3289, 3290, 3291, 3292, + 3293, 3294, 3295, 3296, 3297, 3298, 3299, 3300, 3301, 3302, 3303, 3304, 3305, 3306, + 3307, 3308, 3309, 3310, 3311, 3312, 3313, 3314, 3315, 3316, 3317, 3318, 3319, 3320, + 3321, 3322, 3323, 3324, 3325, 3326, 3327, 3328, 3329, 3330, 3331, 3332, 3333, 3334, + 3335, 3336, 3337, 3338, 3339, 3340, 3341, 3342, 3343, 3344, 3345, 3346, 3347, 3348, + 3349, 3350, 3351, 3352, 3353, 3354, 3355, 3356, 3357, 3358, 3359, 3360, 3361, 3362, + 3363, 3364, 3365, 3366, 3367, 3368, 3369, 3370, 3371, 3372, 3373, 3374, 3375, 3376, + 3377, 3378, 3379, 3380, 3381, 3382, 3383, 3384, 3385, 3386, 3387, 64448, 64448, + 3388, 3389, 3390, 3391, 3392, 3393, 3394, 3395, 3396, 3397, 3398, 3399, 3400, 3401, + 3402, 3403, 3404, 3405, 3406, 3407, 3408, 3409, 3410, 3411, 3412, 3413, 3414, 3415, + 3416, 3417, 3418, 3419, 64448, 64448, 3420, 3421, 3422, 3423, 3424, 3425, 3426, + 3427, 3428, 3429, 3430, 3431, 3432, 3433, 3434, 3435, 3436, 3437, 3438, 3439, 3440, + 3441, 3442, 3443, 3444, 3445, 3446, 3447, 3448, 3449, 3450, 3451, 3452, 3453, 64448, + 64448, 64448, 3454, 3455, 3456, 3457, 3458, 3459, 3460, 3461, 3462, 3463, 3464, + 3465, 64448, 3466, 3467, 3468, 3469, 3470, 3471, 3472, 3473, 64448, 64448, 64448, + 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, + 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 3474, + 3475, 3476, 3477, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, + 64448, 64448, 64448, 64448, 64448, 64448, 64448, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 43892, 43893, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43926, 43927, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 43962, 43963, 43964, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43977, 0, 0, 0, 0, 0, 0, + 0, 0, 43986, 43987, 43988, 43989, 43990, 43991, 43992, 43993, 43994, 43995, 43996, + 43997, 43998, 43999, 44000, 44001, 44002, 44003, 44004, 44005, 44006, 44007, 44008, + 44009, 44010, 44011, 0, 0, 0, 0, 44016, 44017, 44018, 44019, 44020, 44021, 44022, + 44023, 44024, 44025, 44026, 44027, 44028, 44029, 44030, 44031, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 8677, 8678, 8679, 8680, 8681, 8682, 8683, + 8684, 8685, 8686, 8687, 8688, 8689, 8690, 8691, 8692, 8693, 8694, 8695, 8696, 8697, + 8698, 8699, 8700, 8701, 8702, 8703, 8704, 8705, 8706, 8707, 8708, 8709, 8710, 8711, + 8712, 8713, 8714, 8715, 8716, 8717, 8718, 8719, 8720, 8721, 8722, 8723, 64448, 8677, + 8678, 8679, 8680, 8681, 8682, 8683, 8684, 8685, 8686, 8687, 8688, 8689, 8690, 8691, + 8692, 8693, 8694, 8695, 8696, 8697, 8698, 8699, 8700, 8701, 8702, 8703, 8704, 8705, + 8706, 8707, 8708, 8709, 8710, 8711, 8712, 8713, 8714, 8715, 8716, 8717, 8718, 8719, + 8720, 8721, 8722, 8723, 64448, 7558, 7558, 7559, 7697, 7767, 7244, 7838, 7465, 7465, + 7535, 7535, 7996, 7996, 7253, 7601, 7249, 7259, 7918, 7930, 7930, 7919, 7466, 7466, + 7712, 7351, 7762, 7676, 7356, 7500, 7907, 7804, 7992, 8166, 8166, 8167, 8167, 8168, + 8168, 8169, 8169, 8170, 8170, 8172, 8172, 8173, 8173, 8174, 8174, 8175, 8175, 8176, + 8176, 8177, 8177, 8179, 8179, 8180, 8180, 8181, 8181, 8184, 8184, 8185, 8185, 8186, + 8186, 8187, 8187, 8188, 8188, 8189, 8189, 8190, 8190, 8191, 8191, 8192, 8192, 8193, + 8193, 8194, 8194, 8221, 8221, 8222, 8222, 8171, 8171, 8178, 8178, 8182, 8182, 8183, + 8183, 8195, 8195, 8196, 8196, 8199, 8199, 8200, 8200, 8201, 8201, 8205, 8205, 8207, + 8207, 8208, 8208, 8209, 8209, 8210, 8210, 8211, 8211, 8212, 8212, 8215, 8215, 8217, + 8217, 8218, 8218, 8219, 8219, 8223, 8223, 8224, 8224, 8225, 8225, 8177, 3478, 3479, + 3480, 3481, 3482, 3483, 8198, 8198, 8214, 8214, 0, 0, 0, 8204, 8204, 64448, 64448, + 64448, 64448, 64448, 641, 622, 623, 758, 6882, 642, 759, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 51, 35, 34, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 8, 2, 8, 8, 8, 2, 2, 8, 2, 8, 2, 8, 2, 8, 8, 8, 8, 2, 8, 2, 2, 8, 2, 2, 2, 2, + 2, 2, 21, 29, 8, 8, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, + 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, + 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, + 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 4, + 2, 2, 2, 2, 2, 2, 8, 2, 8, 2, 2, 2, 2, 8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 44079, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 44276, 44277, 44278, 44279, 44280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 8176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0] +- [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, + 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, + 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, + 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, + 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 8763, 8765, 8767, 8769, 8771, 8773, 8775, + 8779, 8781, 8783, 8785, 8787, 8789, 8793, 8795, 8797, 8799, 8801, 8803, 8807, 8809, + 8811, 8813, 8815, 8817, 8819, 8821, 8823, 8825, 8827, 8829, 8833, 8835, 8777, 8791, + 8805, 8831, 8837, 64448, 8840, 64448, 64448, 64448, 64448, 64448, 8845, 64448, 64448, + 9309, 9310, 9311, 9312, 9313, 9314, 9315, 9316, 9317, 9318, 9319, 9320, 9322, 9323, + 9324, 9325, 9326, 9327, 9328, 9329, 9330, 9331, 9332, 9333, 9334, 9335, 9336, 9337, + 9338, 9339, 9340, 9341, 9342, 9343, 9344, 9345, 9347, 9348, 9349, 9350, 9351, 9352, + 9353, 9354, 9355, 9356, 9357, 9358, 9359, 9360, 9361, 9362, 9363, 9364, 9321, 9346, + 64448, 64448, 64448, 64448, 64448, 64448, 64448, 9365, 1063, 64448, 64448, 64448, + 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 0, + 9382, 9403, 9420, 9429, 9444, 9482, 9499, 9508, 9530, 9539, 9548, 9597, 9628, 9643, + 9652, 9686, 9695, 9711, 9759, 9674, 9675, 9676, 9677, 64448, 64448, 64448, 64448, + 64448, 64448, 64448, 64448, 64448, 9763, 9764, 9765, 9766, 9767, 9768, 9769, 64448, + 9770, 9771, 9772, 9773, 9774, 9775, 9776, 64448, 9777, 9778, 9779, 9780, 9781, 9782, + 9783, 64448, 9784, 9785, 9786, 9787, 9788, 9789, 9790, 64448, 9791, 9792, 9793, + 9794, 9795, 9796, 9797, 64448, 9798, 9799, 9800, 9801, 9802, 9803, 9804, 64448, + 9805, 9806, 9807, 9808, 9809, 9810, 9811, 64448, 9812, 9813, 9814, 9815, 9816, 9817, + 9818, 64448, 8238, 8242, 8246, 8266, 8290, 8300, 8342, 8368, 8387, 8396, 8423, 8431, + 8444, 8453, 8462, 8498, 8537, 8548, 8579, 8584, 8659, 8453, 8226, 8282, 8341, 8489, + 8608, 8617, 8622, 8632, 8637, 8647, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 44326, 0, 44328, 44329, 44330, 44331, 44332, 0, 44334, 44335, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44392, + 44393, 44394, 44395, 44396, 44397, 44398, 0, 0, 44401, 44402, 44403, 44404, 44405, + 44406, 44407, 44408, 44409, 44410, 44411, 44412, 44413, 44414, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44439, 44440, 44441, 44442, + 44443, 44444, 44445, 44446, 44447, 0, 0, 0, 0, 0, 0, 0, 44455, 0, 0, 0, 0, 0, 0, + 0, 44463, 0, 0, 0, 0, 0, 0, 0, 44471, 0, 0, 0, 0, 0, 0, 0, 44479, 0, 0, 0, 0, 0, + 0, 0, 44487, 0, 0, 0, 0, 0, 0, 0, 44495, 0, 0, 0, 0, 0, 0, 0, 44503, 0, 0, 0, 0, + 0, 0, 0, 44511, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8462, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 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] +- [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 2, 2, 3, 2, 3, + 3, 3, 2, 3, 3, 3, 3, 3, 2, 2, 3, 2, 2, 2, 3, 2, 3, 2, 2, 2, 2, 3, 3, 3, 2, 2, 2, + 2, 2, 2, 3, 2, 3, 2, 3, 3, 3, 3, 2, 3, 2, 2, 2, 2, 3, 3, 3, 3, 3, 2, 2, 2, 3, 3, + 3, 2, 3, 3, 2, 2, 2, 2, 2, 2, 3, 2, 2, 3, 2, 2, 3, 3, 3, 2, 2, 2, 2, 2, 3, 2, 3, + 2, 2, 2, 2, 2, 2, 3, 2, 2, 3, 2, 3, 3, 2, 2, 3, 2, 2, 2, 3, 2, 3, 2, 3, 2, 3, 3, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 950, 951, 859, 860, 861, 862, 952, 953, 954, + 863, 864, 955, 865, 866, 956, 957, 958, 959, 960, 961, 962, 963, 964, 540, 630, + 760, 965, 966, 867, 868, 967, 968, 869, 870, 871, 872, 873, 874, 875, 876, 877, + 878, 753, 754, 755, 756, 616, 8589, 643, 652, 548, 653, 547, 567, 929, 930, 931, + 906, 536, 537, 644, 757, 900, 909, 541, 549, 785, 539, 969, 64448, 64448, 64448, + 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, + 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, + 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, + 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, + 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64320, 64320, 64320, 64320, + 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, + 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64448, 64320, + 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, + 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, + 64320, 64320, 64320, 64320, 64320, 64321, 64321, 64321, 64321, 64321, 64321, 64321, + 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, + 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, + 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, + 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, + 64321, 64321, 64321, 64321, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, + 64448, 64448, 64448, 64448, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 44613, 44614, 44615, 44616, 44617, 44618, 44619, 44620, 44621, 44622, + 44623, 44624, 44625, 44626, 44627, 44628, 44629, 44630, 44631, 44632, 44633, 44634, + 44635, 44636, 44637, 44638, 44639, 44640, 44641, 44642, 44643, 44644, 44645, 44646, + 44647, 44648, 44649, 44650, 44651, 44652, 44653, 44654, 44655, 44656, 44657, 44658, + 44659, 44660, 44661, 44662, 44663, 44664, 44665, 44666, 44667, 44668, 44669, 44670, + 44671, 52790, 54146, 52827, 52826, 52825, 52923, 53634, 53728, 53760, 53762, 54108, + 54121, 56335, 56335, 56354, 56355, 56354, 56355, 56819, 56954, 57169, 57168, 57284, + 57283, 57932, 58677, 44698, 58849, 58853, 59144, 60282, 60365, 60433, 60469, 60474, + 61548, 61995, 61995, 52780, 62043, 62125, 62347, 62859, 63214, 63802, 63803, 64249, + 64761, 65183, 65363, 65362, 65363, 65363, 65362, 65418, 65418, 65419, 32770, 32896, + 32895, 32905, 33276, 33401, 33401, 33401, 34382, 34916, 35200, 35199, 35265, 35282, + 35282, 35744, 36125, 36275, 36710, 36790, 36790, 36790, 37009, 38021, 38263, 38264, + 38271, 38376, 38428, 38429, 38632, 38738, 38886, 39029, 39118, 39134, 39135, 39136, + 39136, 39267, 39318, 39532, 39592, 39740, 40060, 40479, 40565, 40614, 40644, 40702, + 40778, 40784, 40786, 40831, 40845, 40857, 40860, 40860, 40863, 44788, 44789, 44790, + 44791, 44792, 44793, 44794, 44795, 44796, 44797, 44798, 44799, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 272, + 272, 0, 0, 272, 0, 272, 272, 272, 0, 272, 272, 272, 273, 272, 0, 0, 272, 0, 0, 0, + 272, 0, 272, 0, 0, 0, 0, 272, 272, 272, 0, 0, 0, 0, 0, 0, 272, 0, 272, 0, 272, 272, + 272, 272, 0, 272, 0, 0, 0, 0, 272, 273, 272, 272, 273, 0, 0, 0, 272, 272, 272, 0, + 272, 273, 0, 0, 0, 0, 0, 0, 272, 0, 0, 272, 0, 0, 272, 273, 272, 0, 0, 0, 0, 0, + 272, 0, 272, 0, 0, 0, 0, 0, 0, 272, 0, 0, 272, 0, 272, 272, 0, 0, 272, 0, 0, 0, + 272, 0, 272, 0, 272, 0, 272, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 0, 0, 4, 0, 4, 4, 4, 0, + 4, 4, 4, 4, 4, 0, 0, 4, 0, 0, 0, 4, 0, 4, 0, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0, 0, + 4, 0, 4, 0, 4, 4, 4, 4, 0, 4, 0, 0, 0, 0, 4, 4, 4, 4, 4, 0, 0, 0, 4, 4, 4, 0, 4, + 4, 0, 0, 0, 0, 0, 0, 4, 0, 0, 4, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0, 4, 0, 4, 0, 0, 0, + 0, 0, 0, 4, 0, 0, 4, 0, 4, 4, 0, 0, 4, 0, 0, 0, 4, 0, 4, 0, 4, 0, 4, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] +- [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 64320, 64320, 64320, 64320, 64320, 64320, + 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, + 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, + 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, + 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, + 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, + 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, + 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, + 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, + 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, + 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64321, 64321, + 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, + 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, + 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, + 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, + 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, + 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, + 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, + 64321, 64321, 64321, 64321, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, + 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, + 64448, 64448, 64448, 64448, 64448, 64448, 6747, 6748, 6749, 6750, 6751, 6752, 6753, + 6754, 6755, 6756, 6757, 6758, 64448, 64448, 64448, 64448, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 52736, + 52776, 52790, 52799, 52825, 52869, 52876, 52896, 52922, 53567, 53605, 53611, 53634, + 53654, 53675, 53728, 53749, 53760, 53915, 54009, 54037, 54042, 54072, 54081, 54108, + 54121, 54146, 54198, 54216, 54243, 54999, 55071, 55531, 55554, 55562, 55573, 55591, + 55667, 56144, 56192, 56312, 56335, 56354, 56376, 56430, 56433, 56795, 56805, 56817, + 56830, 56946, 56954, 56959, 57076, 57086, 57099, 57107, 57168, 57185, 57203, 57283, + 57864, 57910, 57931, 58671, 58676, 58759, 58775, 58788, 58809, 58848, 58853, 59120, + 59144, 59176, 60192, 60258, 60281, 60339, 60363, 60372, 60379, 60431, 60436, 60468, + 61547, 61994, 62006, 62011, 62015, 62023, 62041, 62043, 62124, 62340, 62345, 62684, + 62694, 62744, 62751, 62760, 62768, 62859, 62866, 63094, 63101, 63150, 63167, 63214, + 63451, 63458, 63475, 63802, 63928, 63934, 64116, 64203, 64249, 64627, 64760, 65334, + 65361, 65418, 65469, 32769, 32780, 32786, 32819, 32895, 32905, 33251, 33258, 33267, + 33276, 33292, 33307, 33311, 33390, 33394, 33400, 34381, 34411, 34880, 34892, 34915, + 35198, 35211, 35282, 35328, 35895, 35910, 35925, 35960, 35997, 36196, 36208, 36275, + 36523, 36554, 36763, 36784, 36789, 37009, 37193, 37318, 37324, 37329, 38263, 38272, + 38428, 38582, 38585, 38632, 38737, 38750, 38754, 38761, 38859, 38893, 38899, 38913, + 39080, 39131, 39135, 39318, 39321, 39340, 39592, 39640, 39647, 39717, 39727, 39730, + 39740, 39770, 40165, 40565, 40575, 40613, 40635, 40643, 40653, 40657, 40697, 40701, + 40718, 40723, 40736, 40763, 40778, 40786, 40845, 40860, 40864, 45014, 45015, 45016, + 45017, 45018, 45019, 45020, 45021, 45022, 45023, 45024, 45025, 45026, 45027, 45028, + 45029, 45030, 45031, 45032, 45033, 45034, 45035, 45036, 45037, 45038, 45039, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45052, 45053, 45054, 45055, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, + 1, 1, 2, 2, 2, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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, 1, 2, 1, 2, 1, 2, 1, 1, + 1, 1, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 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, 1, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, + 1, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 521, 561, 650, 940, 6795, 7175, 15718, 7229, + 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 6796, 6797, 889, 890, 891, 892, + 893, 894, 895, 896, 542, 786, 787, 788, 6798, 7230, 7231, 7232, 7233, 7234, 7235, + 7236, 7237, 7238, 0, 0, 0, 0, 0, 0, 543, 7178, 7178, 7179, 7179, 7180, 6796, 6799, + 64320, 64320, 64320, 7176, 15737, 941, 6800, 6801, 64448, 15706, 15706, 15707, 15707, + 15708, 15708, 15710, 15710, 15711, 15711, 15712, 15712, 15713, 15713, 15714, 15714, + 15715, 15715, 15716, 15716, 15717, 15717, 15718, 15718, 15719, 15719, 15720, 15720, + 15721, 15721, 15722, 15722, 15723, 15723, 15724, 15724, 15724, 15725, 15725, 15726, + 15726, 15727, 15728, 15729, 15730, 15731, 15732, 15732, 15732, 15733, 15733, 15733, + 15734, 15734, 15734, 15735, 15735, 15735, 15736, 15736, 15736, 15737, 15738, 15739, + 15740, 15741, 15742, 15742, 15743, 15743, 15745, 15745, 15746, 15747, 15748, 15749, + 15750, 15751, 15751, 15752, 15753, 15754, 15755, 15708, 15712, 15715, 64448, 64448, + 0, 0, 1169, 1170, 7181, 7181, 15745, 544, 15706, 15706, 15707, 15707, 15708, 15708, + 15710, 15710, 15711, 15711, 15712, 15712, 15713, 15713, 15714, 15714, 15715, 15715, + 15716, 15716, 15717, 15717, 15718, 15718, 15719, 15719, 15720, 15720, 15721, 15721, + 15722, 15722, 15723, 15723, 15724, 15724, 15724, 15725, 15725, 15726, 15726, 15727, + 15728, 15729, 15730, 15731, 15732, 15732, 15732, 15733, 15733, 15733, 15734, 15734, + 15734, 15735, 15735, 15735, 15736, 15736, 15736, 15737, 15738, 15739, 15740, 15741, + 15742, 15742, 15743, 15743, 15745, 15745, 15746, 15747, 15748, 15749, 15750, 15751, + 15751, 15752, 15753, 15754, 15755, 15708, 15712, 15715, 15751, 15752, 15753, 15754, + 545, 7182, 7183, 7183, 15716, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 251, 252, 253, 254, 255, 256, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 55, 56, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 3, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 4, 2, 4, 4, 4, 2, 4, 2, 2, 2, 2, 13, 14, 13, 14, 13, 14, 13, 14, + 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 13, 14, + 13, 14, 13, 14, 14, 14, 14, 14, 14, 13, 14, 14, 14, 14, 14, 14, 13, 13, 2, 2, 2, + 2, 2, 2, 2, 2, 22, 2, 15, 17, 15, 17, 15, 17, 15, 17, 15, 17, 17, 17, 17, 17, 17, + 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 15, + 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, + 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 15, 17, 15, 17, 15, 17, 17, 17, 17, + 17, 17, 15, 17, 17, 17, 17, 17, 17, 15, 15, 17, 17, 17, 17, 2, 2, 2, 2, 22, 0, 0, + 0, 0, 0, 0, 15740, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 54081, 54084, 54085, 0, 15719, 0, 0, 0, 45120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45207, 45208, + 0, 0, 0, 0, 0, 0, 15747, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15726, 0, 0, 0, + 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 55, 0, 0, 0, + 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 55, 0, 55, 0, + 55, 0, 55, 0, 55, 0, 55, 0, 55, 0, 55, 0, 55, 0, 55, 0, 55, 0, 0, 55, 0, 55, 0, + 55, 0, 0, 0, 0, 0, 0, 55, 56, 0, 55, 56, 0, 55, 56, 0, 55, 56, 0, 55, 56, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 55, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 55, 0, 55, 0, 55, 0, + 55, 0, 55, 0, 55, 0, 55, 0, 55, 0, 55, 0, 55, 0, 55, 0, 0, 55, 0, 55, 0, 55, 0, + 0, 0, 0, 0, 0, 55, 56, 0, 55, 56, 0, 55, 56, 0, 55, 56, 0, 55, 56, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 55, 55, 55, 55, 0, + 0, 0, 55, 32, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 2, 0, + 2, 0, 2, 0, 0, 0, 0, 0, 0, 2, 2, 0, 2, 2, 0, 2, 2, 0, 2, 2, 0, 2, 2, 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, 2, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, + 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 2, 2, 0, + 2, 2, 0, 2, 2, 0, 2, 2, 0, 2, 2, 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, 2, 2, 2, 2, 0, 0, 0, 2, 22] +- [2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, + 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 64448, 64448, 64448, 64448, 64448, 15756, + 15757, 15758, 15759, 15761, 15762, 15763, 15764, 15765, 15766, 15769, 15770, 15771, + 15772, 15774, 15775, 15776, 15777, 15778, 15779, 15780, 15784, 15785, 15787, 15788, + 15790, 15791, 15792, 15793, 15794, 15795, 15796, 15798, 15802, 15803, 15804, 15805, + 15760, 15767, 15773, 15806, 64448, 64448, 64448, 15349, 15350, 15571, 15351, 15573, + 15574, 15352, 15353, 15354, 15577, 15578, 15579, 15580, 15581, 15582, 15375, 15355, + 15356, 15357, 15382, 15358, 15359, 15360, 15361, 15362, 15363, 15364, 15365, 15366, + 15367, 15475, 15476, 15477, 15478, 15479, 15480, 15481, 15482, 15483, 15484, 15485, + 15486, 15487, 15488, 15489, 15490, 15491, 15492, 15493, 15494, 15495, 15474, 15369, + 15370, 15600, 15601, 15605, 15607, 15612, 15616, 15618, 15377, 15622, 15624, 15378, + 15379, 15381, 15383, 15384, 15388, 15390, 15392, 15393, 15394, 15395, 15396, 15399, + 15403, 15413, 15420, 15425, 15642, 15643, 15436, 15437, 15438, 15510, 15511, 15514, + 15523, 15524, 15526, 15536, 15539, 64448, 6802, 6803, 64320, 64320, 64320, 64320, + 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 15756, 15778, + 15770, 15765, 15789, 15789, 15786, 15785, 15804, 15784, 15803, 15804, 15801, 15768, + 15790, 15792, 15799, 15800, 15797, 15803, 15757, 15762, 15766, 15769, 15781, 15782, + 15783, 64448, 64448, 64448, 64448, 64448, 6759, 6760, 6761, 6762, 6763, 6764, 6765, + 6766, 6767, 6768, 6769, 6770, 6771, 6772, 6773, 6774, 6775, 6776, 6777, 6778, 6779, + 6780, 6781, 6782, 6783, 6784, 6785, 6786, 6787, 6788, 6789, 6790, 6791, 6792, 6793, + 6794, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, 64448, + 64448, 15714, 15718, 15719, 15726, 15729, 15732, 15733, 15734, 15735, 15736, 15739, + 15746, 15747, 15748, 15749, 15750, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 4, 4, 4, 4, 2, 4, 2, 4, 4, 4, 4, 4, 2, 2, 4, 4, 2, 2, 2, + 22, 25, 25, 25, 25, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, + 15, 15, 45312, 45313, 45314, 45315, 45316, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 45358, 45359, 45360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45455, 0, 0, 52736, + 52876, 52745, 55003, 52746, 52781, 52747, 62770, 52825, 52761, 52737, 55593, 55088, + 52922, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 45499, 45500, 45501, 45502, 45503, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45540, 45541, + 45542, 45543, 45544, 45545, 45546, 45547, 45548, 45549, 45550, 45551, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 273, 273, 273, 0, 273, 0, 273, 274, 273, 273, + 273, 0, 0, 273, 273, 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 4, 4, 0, 4, 0, 4, 4, 4, 4, 4, 0, 0, 4, 4, 0, 0, 0, 22, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 7, 6, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 4, 2, 1, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 2, 3, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 791, 791, 791, 791, 791, 791, 791, 791, 791, + 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, + 791, 791, 791, 791, 791, 791, 64448, 791, 791, 791, 791, 791, 791, 791, 791, 791, + 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, + 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 64320, 64320, 64320, 64320, + 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7692, 7231, 7231, 7231, 7231, 7231, + 7231, 7231, 7231, 7231, 7232, 7232, 7232, 7232, 7232, 7232, 15349, 15351, 15352, + 15354, 15355, 15356, 15358, 15360, 15361, 15363, 15364, 15365, 15366, 15367, 15349, + 15351, 15352, 15354, 15355, 15356, 15358, 15360, 15361, 15363, 15364, 15365, 15366, + 15367, 15363, 15361, 15360, 6804, 64320, 64320, 64320, 64320, 64320, 64320, 64320, + 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64321, 64320, 64320, 64320, 64320, + 64320, 64320, 64320, 64321, 64320, 64320, 64320, 64320, 64320, 64321, 64320, 64320, + 64320, 64321, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, + 64320, 64320, 64320, 64321, 64320, 64320, 7232, 7232, 7232, 7232, 7233, 7233, 7233, + 7233, 7233, 7233, 7233, 7233, 7233, 7233, 7234, 7230, 7231, 7232, 7233, 7234, 7235, + 7236, 7237, 7238, 7230, 7230, 7230, 7448, 7338, 7338, 7543, 15706, 15707, 15708, + 15710, 15711, 15712, 15713, 15714, 15715, 15716, 15717, 15718, 15719, 15720, 15721, + 15722, 15723, 15724, 15725, 15726, 15727, 15728, 15729, 15730, 15731, 15732, 15733, + 15734, 15735, 15736, 15737, 15738, 15739, 15740, 15741, 15742, 15743, 15745, 15746, + 15747, 15748, 15749, 15750, 15751, 15752, 15753, 15754, 64448, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 29, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 2, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 29, 28, 28, 29, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 2, 15349, 15351, 15352, 15354, + 15355, 15356, 15358, 15360, 15361, 15363, 15364, 15365, 15366, 15367, 15349, 15351, + 15352, 15354, 15355, 15356, 15358, 15360, 15361, 15363, 15364, 15365, 15366, 15367, + 15361, 15360, 15360, 45599, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, + 64320, 64320, 64320, 64320, 64320, 64320, 64321, 64320, 64320, 64320, 64320, 64320, + 64320, 64320, 64321, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64321, 64320, + 64320, 64320, 64321, 64321, 54607, 56956, 58759, 64399, 7229, 7229, 7229, 7229, + 7229, 7229, 7229, 7229, 7829, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, + 7229, 7230, 7231, 7232, 7233, 7234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15475, + 15475, 15475, 15475, 15475, 15475, 15475, 15475, 15475, 15475, 15475, 15475, 15475, + 15475, 15475, 15488, 15488, 0, 52736, 52876, 52745, 55003, 52884, 53613, 52739, + 53611, 52829, 54081, 59144, 61547, 60468, 59176, 37329, 55071, 58853, 59434, 59145, + 63806, 54285, 62073, 36001, 63837, 53940, 63960, 62775, 55667, 36969, 53546, 54128, + 60648, 38917, 53009, 53657, 60259, 52746, 52781, 52747, 56806, 54259, 54075, 56215, + 56166, 63203, 52993, 36039, 54100, 55580, 7235, 7236, 7237, 7238, 7229, 7230, 7231, + 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7229, 64320, 64320, 64320, 64320, 64320, + 64320, 64320, 64320, 64320, 7229, 7230, 7231, 7412, 7731, 7907, 7829, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45823, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 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, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 6, 6, 6, 6, 6, 6, 6, 6, 29, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 28, 28, 29, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, + 792, 792, 792, 792, 15475, 15475, 15475, 15475, 15475, 15475, 15475, 15475, 15475, + 15475, 15475, 15475, 15475, 15475, 15488, 15483, 15483, 0, 52736, 52876, 52745, + 55003, 52884, 53613, 52739, 53611, 52829, 54081, 59144, 61547, 60468, 59176, 37329, + 55071, 58853, 59434, 59145, 63806, 54285, 62073, 36001, 63837, 53940, 52963, 54396, + 56166, 63203, 52993, 36039, 54100, 63853, 53009, 33258, 33267, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 7338, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15584, 15360, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59144, 59144, 59144, 59144, 59144, 59144, 59144, + 59144, 59144, 64320, 64320, 64320, 0, 7412, 0, 7311, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 0, 32, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 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, 4, 4, + 0, 28, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 792, 792, 792, 792, 792, 792, 792, 792, 792, + 792, 792, 792, 792, 792, 792, 15361, 15367, 0, 792, 792, 792, 792, 792, 792, 792, + 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, + 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15349, 15494, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59144, 59144, 59144, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15479, 15488, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 15483, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 15572, 792, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 792, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0] +- [5, 4, 5, 3, 5, 3, 3, 6, 4, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 6, 2, 6, 6, 5, 4, 6, 6, + 4, 3, 3, 4, 4, 5, 5, 3, 3, 4, 3, 3, 2, 2, 3, 3, 6, 4, 5, 6, 4, 3, 3, 6, 4, 6, 3, + 5, 3, 4, 3, 4, 5, 4, 5, 4, 2, 5, 3, 3, 4, 3, 3, 3, 5, 4, 2, 6, 3, 5, 4, 4, 3, 3, + 4, 2, 4, 5, 2, 6, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 3, 2, 2, 3, 2, 2, 2, 3, 3, 2, 4, 4, 4, 4, 8, 2, 2, 2, 2, 2, 2, 2, + 2, 3, 4, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 2, + 3, 3, 3, 2, 3, 3, 4, 2, 3, 3, 3, 3, 5, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 4, 2, 2, 2, 4, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, 2, 3, 3, 2, + 4, 3, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 15706, 15706, 15706, 15706, 15707, 15707, + 15708, 15710, 15710, 15711, 15711, 15712, 15712, 15712, 15712, 15712, 15713, 15713, + 15713, 15713, 15713, 15713, 15713, 15713, 15714, 15714, 15714, 15714, 15715, 15716, + 15716, 15717, 15717, 15718, 15720, 15720, 15722, 15725, 15726, 15726, 15727, 15731, + 15732, 15732, 15732, 15732, 15733, 15733, 15733, 15733, 15734, 15734, 15734, 15734, + 15735, 15735, 15735, 15735, 15735, 15735, 15735, 15736, 15736, 15736, 15736, 15736, + 15736, 15737, 15737, 15737, 15737, 15737, 15738, 15738, 15738, 15740, 15740, 15740, + 15742, 15742, 15743, 15747, 15747, 15748, 15748, 15749, 15749, 15751, 7229, 7230, + 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7230, 7230, 7230, 7230, 7230, 7230, + 7230, 7230, 7230, 7230, 7231, 7231, 7231, 7231, 7231, 7448, 7311, 7239, 7264, 7645, + 7692, 7311, 7311, 7311, 7474, 64320, 64320, 64320, 64320, 64320, 7692, 7609, 8139, + 7594, 7525, 7525, 7594, 7412, 7290, 7525, 7692, 7609, 8139, 8139, 7594, 7525, 7448, + 7525, 7594, 7412, 7829, 8139, 7594, 7311, 7525, 7397, 7609, 8139, 7594, 7290, 7525, + 7594, 7290, 7594, 7525, 7594, 7290, 7594, 7525, 7594, 7594, 7692, 7525, 7594, 7412, + 7731, 7731, 7731, 7692, 7609, 8139, 7594, 7692, 7609, 8139, 7594, 7525, 7594, 7692, + 7609, 8139, 7594, 7525, 7594, 7525, 7594, 7239, 7264, 7290, 7290, 7290, 7290, 7311, + 7412, 7448, 7448, 7474, 7525, 7525, 7525, 7543, 7543, 7543, 7543, 7594, 7594, 7594, + 7692, 7692, 7692, 7692, 7793, 7793, 7925, 7907, 7239, 7230, 7231, 7232, 7233, 7234, + 7235, 7236, 7237, 7238, 7230, 7230, 7230, 7230, 7230, 7230, 7230, 7230, 7230, 7230, + 7231, 7231, 7231, 7231, 7231, 7231, 7231, 7231, 7231, 7231, 7232, 7232, 7412, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 28, 28, 28, 28, 28, + 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, + 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, + 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, + 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, + 28, 28, 28, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 28, 28, 29, 28, 28, 28, 28, 28, 28, 29, 28, 28, 28, 28, 28, 28, 28, 28, 28, + 28, 29, 29, 29, 28, 28, 28, 28, 28, 28, 28, 28, 29, 28, 29, 29, 29, 28, 28, 28, + 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 29, 28, 29, + 29, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 29, 28, 28, 28, 28, 28, 29, + 28, 29, 28, 29, 28, 28, 29, 29, 28, 29, 28, 29, 28, 29, 29, 28, 28, 28, 28, 28, + 28, 28, 28, 29, 28, 29, 29, 28, 29, 29, 29, 29, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 28, 15732, 15748, 15755, + 7182, 15728, 15755, 15711, 15719, 7182, 15755, 7182, 15707, 15746, 15750, 0, 0, + 0, 0, 15743, 0, 15750, 15750, 15750, 15750, 0, 0, 15748, 15750, 7182, 15748, 7182, + 15707, 15755, 15747, 15755, 15755, 0, 0, 0, 15755, 15731, 15724, 15707, 0, 0, 0, + 0, 0, 0, 0, 15706, 15707, 0, 15746, 15714, 0, 0, 15748, 0, 0, 0, 0, 0, 15755, 0, + 7182, 7182, 15707, 15707, 15724, 15748, 15755, 15714, 15747, 15747, 15712, 15712, + 7182, 7182, 7182, 15706, 15724, 15746, 15733, 7182, 15739, 15755, 15724, 64320, + 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 7229, 7230, 7231, + 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7229, 7230, 7231, 7232, 7233, 7692, 7239, + 7861, 7239, 7907, 7290, 7594, 7594, 7594, 7861, 56947, 58925, 55591, 58894, 59434, + 7239, 7239, 7239, 7239, 7239, 7264, 7264, 7264, 7239, 7290, 7397, 7397, 7397, 7412, + 7412, 7412, 7969, 7448, 7448, 7448, 7448, 7543, 7543, 7543, 7543, 7594, 7594, 7594, + 7594, 7594, 7594, 7594, 7594, 7231, 7594, 7594, 7594, 7232, 7594, 1573, 1573, 7239, + 7692, 7692, 7692, 7239, 7239, 7239, 7793, 7793, 7793, 7793, 7907, 7907, 7907, 7907, + 7907, 7907, 7925, 7925, 7925, 7925, 7925, 7925, 8161, 8161, 631, 7713, 7290, 7311, + 1573, 7645, 7264, 7947, 7239, 7692, 7609, 7525, 7594, 7829, 7594, 7609, 7645, 7935, + 7264, 7474, 7645, 7448, 631, 7692, 7731, 7731, 7907, 7264, 1573, 1573, 64320, 64320, + 64320, 64320, 64320, 64320, 64320, 64320, 64320, 7229, 7230, 7231, 7232, 7233, 7234, + 7235, 7236, 7237, 7238, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, + 7229, 7230, 7239, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 55, 55, + 55, 55, 32, 55, 32, 32, 32, 32, 55, 55, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 55, 55, 55, 32, 32, 32, 32, 56, 56, 55, 56, 56, 56, 55, 32, 32, 55, 32, 32, 56, + 56, 32, 56, 56, 55, 56, 55, 32, 56, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 28, 28, + 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, + 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, + 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, + 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, + 28, 28, 28, 28, 28, 28, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 29, 28, 29, 28, 29, 28, 28, 28, 28, 29, 0, 0, 0, 0, 0, 29, 29, + 29, 29, 29, 29, 29, 29, 28, 28, 29, 29, 29, 28, 28, 28, 28, 29, 29, 29, 29, 28, + 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, + 29, 29, 29, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 28, 28, 28, 28, 28, 28, 29, 28, 28, 29, 28, 29, 29, 28, 28, 28, + 28, 28, 28, 28, 28, 29, 28, 29, 29, 28, 28, 28, 28, 28, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 28, 0, 15734, + 15735, 15748, 15755, 15723, 15755, 15714, 15712, 15719, 15739, 15747, 15724, 15747, + 15750, 15755, 15712, 15728, 15747, 15748, 0, 15714, 15740, 15751, 15746, 15746, + 15720, 7182, 15719, 15727, 15736, 15714, 15723, 15755, 15723, 15726, 7182, 15718, + 15748, 0, 0, 15726, 15724, 7182, 7182, 7182, 15706, 15714, 15716, 15748, 15746, + 7182, 15724, 15755, 15722, 15721, 15728, 15724, 15755, 7182, 7182, 15707, 15748, + 0, 15755, 15748, 15755, 15714, 15748, 15732, 15714, 15718, 15750, 0, 15732, 0, 0, + 15726, 15726, 15748, 15755, 15726, 0, 0, 15734, 0, 15726, 15726, 61625, 61625, 61625, + 61625, 61625, 61625, 61625, 61625, 61625, 61625, 64320, 64320, 64320, 64320, 64320, + 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 7239, 0, 0, + 7731, 0, 0, 0, 7231, 7232, 0, 64320, 64320, 64320, 64320, 64320, 0, 0, 0, 0, 0, + 0, 0, 0, 7543, 7239, 0, 0, 0, 0, 0, 0, 0, 7969, 7969, 7969, 7969, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 7231, 7231, 0, 7231, 7232, 7232, 0, 7232, 7793, 7793, 0, 7239, 7239, + 7239, 7311, 7311, 7311, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7594, + 0, 0, 0, 7525, 631, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7412, 0, 0, 7543, 7543, 0, 7594, + 7594, 0, 0, 0, 0, 7594, 7594, 58853, 58853, 58853, 58853, 58853, 58853, 58853, 58853, + 58853, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, + 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 7543, + 56, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 55, 55, 32, 32, 32, 32, 32, + 0, 56, 32, 0, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 32, 0, 0, 0, 32, 32, 0, 32, 32, 32, 32, + 32, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 32, 32, 0, 32, 32, 32, 0, 32, 32, 32, 0, 32, 32, 32, 32, 32, + 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 32, 32, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 32, 32, 0, 32, 32, 0, 0, 0, 0, 32, 32, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, + 28, 28, 28, 28, 28, 28, 28, 28, 0, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, + 28, 28, 28, 28, 28, 28, 0, 0, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, + 28, 28, 28, 28, 28, 28, 28, 28, 28, 0, 28, 28, 28, 28, 28, 28, 28, 28, 28, 0, 28, + 28, 28, 28, 28, 28, 28, 28, 0, 28, 28, 0, 28, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 28, 0, 0, 28, 0, 0, 0, 28, 28, 0, 28, + 28, 28, 28, 28, 0, 0, 0, 0, 0, 0, 0, 0, 28, 28, 0, 0, 0, 0, 0, 0, 0, 28, 28, 28, + 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 28, 0, 28, 28, 28, 0, 28, 28, 28, 0, 28, 28, + 28, 28, 28, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, + 0, 28, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 28, 28, 0, 28, 29, 0, 0, 0, 0, + 28, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 28, 7182, 15706, 0, 0, 15714, 0, 0, 7182, 7182, 0, 0, 0, 15726, + 7182, 15755, 15737, 0, 7182, 7182, 15722, 0, 0, 7182, 15724, 15739, 15739, 0, 15730, + 0, 0, 0, 15748, 7182, 15714, 0, 0, 15719, 0, 0, 0, 0, 0, 0, 15720, 15724, 15749, + 15719, 15748, 0, 0, 15724, 15726, 15718, 0, 7182, 0, 15733, 0, 15719, 15718, 15722, + 15755, 15726, 0, 15726, 0, 0, 15750, 0, 0, 0, 15745, 15755, 0, 0, 0, 15726, 15748, + 0, 0, 0, 15748, 0, 7182, 0, 0, 15715, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61625, 61625, + 61625, 61625, 61625, 61625, 61625, 61625, 61625, 61625, 61625, 61625, 61625, 61625, + 61625, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57872, 54412, 60259, 60603, 57103, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 7543, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7231, 0, 0, 0, 0, 0, 1573, 1573, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 631, 0, 0, 0, 7412, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 631, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 58853, 58853, 58853, 58853, 58853, 58853, 58853, 58853, 58853, 58853, 58853, + 58853, 58853, 58853, 58853, 58853, 58853, 58853, 58853, 58853, 58853, 58853, 0, + 32, 32, 56, 0, 32, 0, 0, 32, 32, 0, 0, 0, 32, 32, 32, 32, 55, 32, 32, 32, 0, 55, + 32, 32, 32, 32, 55, 32, 0, 0, 56, 32, 32, 32, 0, 0, 32, 0, 0, 0, 0, 0, 0, 32, 32, + 32, 32, 32, 0, 0, 32, 32, 32, 0, 32, 0, 32, 0, 32, 32, 32, 32, 32, 0, 32, 0, 0, + 32, 0, 0, 0, 32, 32, 0, 55, 0, 32, 32, 55, 0, 0, 32, 0, 32, 55, 0, 32, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, + 0, 0, 0, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, + 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 28, 28, 0, 28, 0, 0, 28, 28, 0, 0, 0, 28, 28, 28, 28, 28, + 28, 28, 28, 0, 28, 28, 28, 28, 28, 28, 28, 0, 0, 28, 28, 28, 28, 0, 0, 28, 0, 0, + 0, 0, 0, 0, 28, 28, 28, 28, 28, 0, 0, 28, 28, 28, 0, 28, 0, 28, 0, 28, 28, 28, 28, + 28, 0, 28, 0, 0, 28, 0, 0, 0, 28, 28, 0, 28, 0, 28, 28, 28, 0, 0, 28, 0, 28, 28, + 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 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, 0, + 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 28, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 28, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15726, 0, 15706, 0, 0, 0, 0, 15726, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 15746, 15726, 15726, 0, 15726, 15707, 0, 0, 0, 0, 0, + 15739, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15755, 0, 15748, 15726, 0, 0, 0, 15726, 0, + 15710, 0, 15748, 0, 0, 0, 0, 0, 0, 15726, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15755, 0, 0, + 7182, 0, 15755, 0, 0, 0, 0, 0, 0, 0, 15748, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 64320, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7793, 7793, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, + 0, 32, 0, 55, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 32, 32, 32, 0, 32, + 32, 0, 0, 0, 0, 0, 32, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 32, 32, 0, 0, 0, 32, + 0, 32, 0, 32, 0, 0, 0, 0, 55, 0, 32, 0, 0, 55, 0, 0, 0, 0, 0, 0, 32, 0, 0, 32, 0, + 32, 0, 0, 0, 0, 0, 0, 0, 32, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 28, 0, 28, 0, + 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 28, 28, 28, 0, 28, 28, 0, 0, 0, 0, + 0, 28, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 28, 28, 0, 0, 0, 28, 0, 28, 0, 28, + 0, 0, 0, 0, 28, 0, 28, 0, 0, 28, 0, 0, 0, 0, 0, 0, 28, 0, 0, 28, 0, 28, 0, 0, 0, + 0, 0, 0, 0, 28, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 7182, 0, 15739, 15748, 0, 0, 15755, 15750, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15726, 0, 0, 15748, 0, 0, 0, 0, 0, 15748, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15748, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 15755, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53018, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 32, 32, 0, 0, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 32, 0, 0, 0, 55, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, + 0, 28, 28, 0, 0, 28, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, + 0, 28, 0, 0, 0, 28, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 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, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64320, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 63806, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 64384, 64384, 64384, 64384, 64384, 64384, + 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, + 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, + 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, + 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, + 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, + 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, + 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, + 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, + 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, + 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, + 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, + 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, + 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, + 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, + 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64384, 64448, 64448, 64448, 64448, + 64448, 64448, 64448, 64448, 64448, 64448, 3754, 3755, 3756, 3757, 3758, 3759, 3760, + 3761, 3762, 3763, 3764, 3765, 3766, 3767, 3768, 3769, 3770, 3771, 3772, 3773, 3774, + 3775, 3776, 3777, 3778, 3779, 3780, 3781, 3782, 3783, 3784, 3785, 3786, 3787, 3788, + 3789, 3790, 3791, 3792, 3793, 3794, 3795, 3796, 3797, 3798, 3799, 3800, 3801, 3802, + 3803, 3804, 3805, 3806, 3807, 3808, 3809, 3810, 3811, 3812, 3813, 3814, 3815, 3816, + 3817, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 52480, 52481, 52482, 52483, 52484, 52485, 52486, 52487, + 52488, 52489, 52490, 52491, 52492, 52493, 52494, 52495, 52496, 52497, 52498, 52499, + 52500, 52501, 52502, 52503, 52504, 52505, 52506, 52507, 52508, 52509, 52510, 52511, + 52512, 52513, 52514, 52515, 52516, 52517, 52518, 52519, 52520, 52521, 52522, 52523, + 52524, 52525, 52526, 52527, 52528, 52529, 52530, 52531, 52532, 52533, 52534, 52535, + 52536, 52537, 52538, 52539, 52540, 52541, 52542, 52543, 52544, 52545, 52546, 52547, + 52548, 52549, 52550, 52551, 52552, 52553, 52554, 52555, 52556, 52557, 52558, 52559, + 52560, 52561, 52562, 52563, 52564, 52565, 52566, 52567, 52568, 52569, 52570, 52571, + 52572, 52573, 52574, 52575, 52576, 52577, 52578, 52579, 52580, 52581, 52582, 52583, + 52584, 52585, 52586, 52587, 52588, 52589, 52590, 52591, 52592, 52593, 52594, 52595, + 52596, 52597, 52598, 52599, 52600, 52601, 52602, 52603, 52604, 52605, 52606, 52607, + 52608, 52609, 52610, 52611, 52612, 52613, 52614, 52615, 52616, 52617, 52618, 52619, + 52620, 52621, 52622, 52623, 52624, 52625, 52626, 52627, 52628, 52629, 52630, 52631, + 52632, 52633, 52634, 52635, 52636, 52637, 52638, 52639, 52640, 52641, 52642, 52643, + 52644, 52645, 52646, 52647, 52648, 52649, 52650, 52651, 52652, 52653, 52654, 52655, + 52656, 52657, 52658, 52659, 52660, 52661, 52662, 52663, 52664, 52665, 52666, 52667, + 52668, 52669, 52670, 52671, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 15807, 15808, 15809, 15810, 15811, 15812, + 15813, 15814, 15815, 15816, 15817, 15818, 15819, 15820, 15821, 15822, 15823, 15824, + 15825, 15826, 15827, 15828, 15829, 15830, 15831, 15832, 15833, 15834, 15835, 15836, + 15837, 15838, 15839, 15840, 15841, 15842, 15843, 15844, 15845, 15846, 15847, 15848, + 15849, 15850, 15851, 15852, 15853, 15854, 15855, 15856, 15857, 15858, 15859, 15860, + 15861, 15862, 15863, 15864, 15865, 15866, 15867, 15868, 15869, 15870, 15871, 15872, + 15873, 15874, 15875, 15876, 15877, 15878, 15879, 15880, 15881, 15882, 15883, 15884, + 15885, 15886, 15887, 15888, 15889, 15890, 15891, 15892, 15893, 15894, 15895, 15896, + 15897, 15898, 15899, 15900, 15901, 15902, 15903, 15904, 15905, 15906, 15907, 15908, + 15909, 15910, 15911, 15912, 15913, 15914, 15915, 15916, 15917, 15918, 15919, 15920, + 15921, 15922, 15923, 15924, 15925, 15926, 15927, 15928, 15929, 15930, 15931, 15932, + 15933, 15934, 15935, 15936, 15937, 15938, 15939, 15940, 15941, 15942, 15943, 15944, + 15945, 15946, 15947, 15948, 15949, 15950, 15951, 15952, 15953, 15954, 15955, 15956, + 15957, 15958, 15959, 15960, 15961, 15962, 15963, 15964, 15965, 15966, 15967, 15968, + 15969, 15970, 15971, 15972, 15973, 15974, 15975, 15976, 15977, 15978, 15979, 15980, + 15981, 15982, 15983, 15984, 15985, 15986, 15987, 15988, 15989, 15990, 15991, 15992, + 15993, 15994, 15995, 15996, 15997, 15998, 15999, 16000, 16001, 16002, 16003, 16004, + 16005, 16006, 16007, 16008, 16009, 16010, 16011, 16012, 16013, 16014, 16015, 16016, + 16017, 16018, 16019, 16020, 16021, 16022, 16023, 16024, 16025, 16026, 16027, 16028, + 16029, 16030, 16031, 16032, 16033, 16034, 16035, 16036, 16037, 16038, 16039, 16040, + 16041, 16042, 16043, 16044, 16045, 16046, 16047, 16048, 16049, 16050, 16051, 16052, + 16053, 16054, 16055, 16056, 16057, 16058, 16059, 16060, 16061, 16062, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2] +- [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 16063, 16064, 16065, 16066, 16067, 16068, + 16069, 16070, 16071, 16072, 16073, 16074, 16075, 16076, 16077, 16078, 16079, 16080, + 16081, 16082, 16083, 16084, 16085, 16086, 16087, 16088, 16089, 16090, 16091, 16092, + 16093, 16094, 16095, 16096, 16097, 16098, 16099, 16100, 16101, 16102, 16103, 16104, + 16105, 16106, 16107, 16108, 16109, 16110, 16111, 16112, 16113, 16114, 16115, 16116, + 16117, 16118, 16119, 16120, 16121, 16122, 16123, 16124, 16125, 16126, 16127, 16128, + 16129, 16130, 16131, 16132, 16133, 16134, 16135, 16136, 16137, 16138, 16139, 16140, + 16141, 16142, 16143, 16144, 16145, 16146, 16147, 16148, 16149, 16150, 16151, 16152, + 16153, 16154, 16155, 16156, 16157, 16158, 16159, 16160, 16161, 16162, 16163, 16164, + 16165, 16166, 16167, 16168, 16169, 16170, 16171, 16172, 16173, 16174, 16175, 16176, + 16177, 16178, 16179, 16180, 16181, 16182, 16183, 16184, 16185, 16186, 16187, 16188, + 16189, 16190, 16191, 16192, 16193, 16194, 16195, 16196, 16197, 16198, 16199, 16200, + 16201, 16202, 16203, 16204, 16205, 16206, 16207, 16208, 16209, 16210, 16211, 16212, + 16213, 16214, 16215, 16216, 16217, 16218, 16219, 16220, 16221, 16222, 16223, 16224, + 16225, 16226, 16227, 16228, 16229, 16230, 16231, 16232, 16233, 16234, 16235, 16236, + 16237, 16238, 16239, 16240, 16241, 16242, 16243, 16244, 16245, 16246, 16247, 16248, + 16249, 16250, 16251, 16252, 16253, 16254, 16255, 16256, 16257, 16258, 16259, 16260, + 16261, 16262, 16263, 16264, 16265, 16266, 16267, 16268, 16269, 16270, 16271, 16272, + 16273, 16274, 16275, 16276, 16277, 16278, 16279, 16280, 16281, 16282, 16283, 16284, + 16285, 16286, 16287, 16288, 16289, 16290, 16291, 16292, 16293, 16294, 16295, 16296, + 16297, 16298, 16299, 16300, 16301, 16302, 16303, 16304, 16305, 16306, 16307, 16308, + 16309, 16310, 16311, 16312, 16313, 16314, 16315, 16316, 16317, 16318, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2] +- [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 16319, 16320, 16321, 16322, 16323, 16324, + 16325, 16326, 16327, 16328, 16329, 16330, 16331, 16332, 16333, 16334, 16335, 16336, + 16337, 16338, 16339, 16340, 16341, 16342, 16343, 16344, 16345, 16346, 16347, 16348, + 16349, 16350, 16351, 16352, 16353, 16354, 16355, 16356, 16357, 16358, 16359, 16360, + 16361, 16362, 16363, 16364, 16365, 16366, 16367, 16368, 16369, 16370, 16371, 16372, + 16373, 16374, 16375, 16376, 16377, 16378, 16379, 16380, 16381, 16382, 16383, 16384, + 16385, 16386, 16387, 16388, 16389, 16390, 16391, 16392, 16393, 16394, 16395, 16396, + 16397, 16398, 16399, 16400, 16401, 16402, 16403, 16404, 16405, 16406, 16407, 16408, + 16409, 16410, 16411, 16412, 16413, 16414, 16415, 16416, 16417, 16418, 16419, 16420, + 16421, 16422, 16423, 16424, 16425, 16426, 16427, 16428, 16429, 16430, 16431, 16432, + 16433, 16434, 16435, 16436, 16437, 16438, 16439, 16440, 16441, 16442, 16443, 16444, + 16445, 16446, 16447, 16448, 16449, 16450, 16451, 16452, 16453, 16454, 16455, 16456, + 16457, 16458, 16459, 16460, 16461, 16462, 16463, 16464, 16465, 16466, 16467, 16468, + 16469, 16470, 16471, 16472, 16473, 16474, 16475, 16476, 16477, 16478, 16479, 16480, + 16481, 16482, 16483, 16484, 16485, 16486, 16487, 16488, 16489, 16490, 16491, 16492, + 16493, 16494, 16495, 16496, 16497, 16498, 16499, 16500, 16501, 16502, 16503, 16504, + 16505, 16506, 16507, 16508, 16509, 16510, 16511, 16512, 16513, 16514, 16515, 16516, + 16517, 16518, 16519, 16520, 16521, 16522, 16523, 16524, 16525, 16526, 16527, 16528, + 16529, 16530, 16531, 16532, 16533, 16534, 16535, 16536, 16537, 16538, 16539, 16540, + 16541, 16542, 16543, 16544, 16545, 16546, 16547, 16548, 16549, 16550, 16551, 16552, + 16553, 16554, 16555, 16556, 16557, 16558, 16559, 16560, 16561, 16562, 16563, 16564, + 16565, 16566, 16567, 16568, 16569, 16570, 16571, 16572, 16573, 16574, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2] +- [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 16575, 16576, 16577, 16578, 16579, 16580, + 16581, 16582, 16583, 16584, 16585, 16586, 16587, 16588, 16589, 16590, 16591, 16592, + 16593, 16594, 16595, 16596, 16597, 16598, 16599, 16600, 16601, 16602, 16603, 16604, + 16605, 16606, 16607, 16608, 16609, 16610, 16611, 16612, 16613, 16614, 16615, 16616, + 16617, 16618, 16619, 16620, 16621, 16622, 16623, 16624, 16625, 16626, 16627, 16628, + 16629, 16630, 16631, 16632, 16633, 16634, 16635, 16636, 16637, 16638, 16639, 16640, + 16641, 16642, 16643, 16644, 16645, 16646, 16647, 16648, 16649, 16650, 16651, 16652, + 16653, 16654, 16655, 16656, 16657, 16658, 16659, 16660, 16661, 16662, 16663, 16664, + 16665, 16666, 16667, 16668, 16669, 16670, 16671, 16672, 16673, 16674, 16675, 16676, + 16677, 16678, 16679, 16680, 16681, 16682, 16683, 16684, 16685, 16686, 16687, 16688, + 16689, 16690, 16691, 16692, 16693, 16694, 16695, 16696, 16697, 16698, 16699, 16700, + 16701, 16702, 16703, 16704, 16705, 16706, 16707, 16708, 16709, 16710, 16711, 16712, + 16713, 16714, 16715, 16716, 16717, 16718, 16719, 16720, 16721, 16722, 16723, 16724, + 16725, 16726, 16727, 16728, 16729, 16730, 16731, 16732, 16733, 16734, 16735, 16736, + 16737, 16738, 16739, 16740, 16741, 16742, 16743, 16744, 16745, 16746, 16747, 16748, + 16749, 16750, 16751, 16752, 16753, 16754, 16755, 16756, 16757, 16758, 16759, 16760, + 16761, 16762, 16763, 16764, 16765, 16766, 16767, 16768, 16769, 16770, 16771, 16772, + 16773, 16774, 16775, 16776, 16777, 16778, 16779, 16780, 16781, 16782, 16783, 16784, + 16785, 16786, 16787, 16788, 16789, 16790, 16791, 16792, 16793, 16794, 16795, 16796, + 16797, 16798, 16799, 16800, 16801, 16802, 16803, 16804, 16805, 16806, 16807, 16808, + 16809, 16810, 16811, 16812, 16813, 16814, 16815, 16816, 16817, 16818, 16819, 16820, + 16821, 16822, 16823, 16824, 16825, 16826, 16827, 16828, 16829, 16830, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2] +- [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 16831, 16832, 16833, 16834, 16835, 16836, + 16837, 16838, 16839, 16840, 16841, 16842, 16843, 16844, 16845, 16846, 16847, 16848, + 16849, 16850, 16851, 16852, 16853, 16854, 16855, 16856, 16857, 16858, 16859, 16860, + 16861, 16862, 16863, 16864, 16865, 16866, 16867, 16868, 16869, 16870, 16871, 16872, + 16873, 16874, 16875, 16876, 16877, 16878, 16879, 16880, 16881, 16882, 16883, 16884, + 16885, 16886, 16887, 16888, 16889, 16890, 16891, 16892, 16893, 16894, 16895, 16896, + 16897, 16898, 16899, 16900, 16901, 16902, 16903, 16904, 16905, 16906, 16907, 16908, + 16909, 16910, 16911, 16912, 16913, 16914, 16915, 16916, 16917, 16918, 16919, 16920, + 16921, 16922, 16923, 16924, 16925, 16926, 16927, 16928, 16929, 16930, 16931, 16932, + 16933, 16934, 16935, 16936, 16937, 16938, 16939, 16940, 16941, 16942, 16943, 16944, + 16945, 16946, 16947, 16948, 16949, 16950, 16951, 16952, 16953, 16954, 16955, 16956, + 16957, 16958, 16959, 16960, 16961, 16962, 16963, 16964, 16965, 16966, 16967, 16968, + 16969, 16970, 16971, 64449, 64449, 64449, 3905, 3906, 3907, 3908, 3909, 3910, 3911, + 3912, 3913, 3914, 3915, 3916, 3917, 3918, 3919, 3920, 3921, 3922, 3923, 3924, 3925, + 3926, 3927, 3928, 3929, 3930, 3931, 3932, 3933, 3934, 3935, 3936, 3937, 3938, 3939, + 3940, 3941, 3942, 3943, 3944, 3945, 3946, 3947, 3948, 3949, 3950, 3951, 3952, 3953, + 3954, 3955, 3956, 3957, 3958, 3959, 64449, 64449, 64449, 64449, 64449, 64449, 64449, + 64449, 64449, 16978, 16979, 16980, 16981, 16982, 16983, 16984, 16985, 16986, 16987, + 16988, 16989, 16990, 16991, 16992, 16993, 16994, 16995, 16996, 16997, 16998, 16999, + 17000, 17001, 17002, 17003, 17006, 17004, 17007, 17005, 17008, 17009, 17010, 17011, + 17012, 17013, 17014, 17015, 17016, 17017, 16972, 16973, 16974, 16975, 16977, 16976, + 558, 645, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 42125, 42126, 42127, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42183, 42184, + 42185, 42186, 42187, 42188, 42189, 42190, 42191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 14170, 14171, 14172, 14173, 14174, 14175, + 14176, 14177, 14178, 14179, 14180, 14181, 14182, 14183, 14184, 14185, 14186, 14187, + 14188, 14189, 14190, 14191, 14192, 14193, 14194, 14195, 14196, 14197, 14198, 14199, + 14200, 14201, 14202, 14203, 14204, 14205, 14206, 14207, 14208, 14209, 14210, 14211, + 14212, 14213, 14214, 14215, 14216, 14217, 14218, 14219, 14220, 14221, 14222, 14223, + 14224, 14225, 14226, 14227, 14228, 14229, 14230, 14231, 14232, 14233, 14234, 14235, + 14236, 14237, 14238, 14239, 14240, 14241, 14242, 14243, 14244, 14245, 14246, 14247, + 14248, 14249, 14250, 14251, 14252, 14253, 14254, 14255, 14256, 14257, 14258, 14259, + 14260, 14261, 14262, 14263, 14264, 14265, 14266, 14267, 14268, 14269, 14270, 14271, + 14272, 14273, 14274, 14275, 14276, 14277, 14278, 14279, 14280, 14281, 14282, 14283, + 14284, 14285, 14286, 14287, 14288, 14289, 14290, 14291, 14292, 14293, 14294, 14295, + 14296, 14297, 14298, 14299, 14300, 14301, 14302, 14303, 14304, 14305, 14306, 14307, + 14308, 14309, 14310, 14311, 14312, 14313, 14314, 14315, 14316, 14317, 14318, 14319, + 14320, 14321, 14322, 14323, 14324, 14325, 14326, 14327, 14328, 14329, 14330, 14331, + 14332, 14333, 14334, 14335, 14336, 14337, 14338, 14339, 14340, 14341, 14342, 14343, + 14344, 14345, 14346, 14347, 14348, 14349, 14350, 14351, 14352, 14353, 14354, 14355, + 14356, 14357, 14358, 14359, 14360, 14361, 14362, 14363, 14364, 14365, 14366, 14367, + 14368, 14369, 14370, 14371, 14372, 14373, 14374, 14375, 14376, 14377, 14378, 14379, + 14380, 14381, 14382, 14383, 14384, 14385, 14386, 14387, 14388, 14389, 14390, 14391, + 14392, 14393, 14394, 14395, 14396, 14397, 14398, 14399, 14400, 14401, 14402, 14403, + 14404, 14405, 14406, 14407, 14408, 14409, 14410, 14411, 14412, 14413, 14414, 14415, + 14416, 14417, 14418, 14419, 14420, 14421, 14422, 14423, 14424, 14425, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2] +- [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 14426, 14427, 14428, 14429, 14430, 14431, + 14432, 14433, 14434, 14435, 14436, 14437, 14438, 559, 646, 624, 14258, 14276, 14305, + 14182, 14200, 14221, 14241, 14252, 14258, 14260, 14266, 14303, 14350, 14373, 14379, + 14386, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 14280, 14379, + 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, + 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 8304, 8304, 8307, 8307, + 8312, 8312, 8332, 8332, 8341, 8341, 8489, 8489, 8528, 8528, 8588, 8588, 8595, 8595, + 8612, 8612, 8621, 8621, 8622, 8622, 8636, 8636, 8641, 8641, 8646, 8646, 8667, 8667, + 8541, 8541, 8276, 8276, 8384, 8384, 8395, 8395, 8423, 8423, 8423, 8423, 8423, 8423, + 8423, 0, 0, 0, 0, 915, 8286, 8320, 8328, 8477, 8591, 8596, 8600, 8520, 0, 0, 970, + 8590, 8271, 8271, 8319, 8319, 8295, 8295, 8566, 8566, 8317, 8317, 8472, 8472, 8466, + 8466, 8542, 8542, 8547, 8547, 8553, 8553, 8519, 8519, 8583, 8583, 8423, 8423, 8423, + 8423, 8591, 8600, 8494, 8628, 14439, 14440, 14441, 14442, 14443, 14444, 14445, 14446, + 14447, 14448, 14449, 14450, 14451, 14452, 14453, 14454, 14455, 14456, 14457, 14458, + 14459, 14460, 14461, 14462, 14463, 14464, 14465, 14466, 14467, 14468, 14469, 14470, + 14471, 14472, 14473, 14474, 14475, 14476, 14477, 14478, 14479, 14480, 14481, 14482, + 14483, 14484, 14485, 14486, 14487, 14488, 14489, 14490, 14491, 14492, 14493, 14494, + 14495, 14496, 14497, 14498, 14499, 14500, 14501, 14502, 14503, 14504, 14505, 14506, + 14507, 14508, 14509, 14510, 14511, 14512, 14513, 14514, 14515, 14516, 14517, 14518, + 0, 0, 727, 647, 607, 560, 568, 625, 64449, 64449, 64449, 64449, 64449, 64449, 64449, + 64449, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 81, 0, 0, 0, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 51, 51, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 182, 183, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, + 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 10, 4, 10, 4, 10, 4, 4, 2, + 0, 0, 0, 2, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, + 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 10, 4, 10, 4, 20, 20, 4, 4, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 14437, 14437, 14437, 14438, 14437, 14438, 14438, 14437, 14437, 14437, 14437, + 14438, 14437, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42540, 42541, 42542, 42543, 42544, + 42545, 42546, 42547, 42548, 42549, 42550, 42551, 42552, 42553, 42554, 42555, 42556, + 42557, 42558, 42559, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 42744, 42745, 42746, 42747, 42748, 42749, 42750, 42751, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 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, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, + 2, 2, 2, 2, 3, 3, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, + 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 1, 2, 3, 1, 1, 1, 1, 1, 1, 1232, 1233, 1234, 1235, 1236, 1237, 1238, + 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, + 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 8065, + 8065, 8076, 8076, 7467, 7467, 7829, 7829, 8038, 8038, 8039, 8039, 8040, 8040, 7401, + 7797, 7239, 7239, 7239, 7239, 7239, 7239, 7239, 7239, 7239, 7239, 7239, 7239, 7310, + 7310, 7536, 7536, 7537, 7537, 7538, 7538, 7551, 7551, 7553, 7553, 7681, 7681, 7673, + 7673, 7645, 7645, 7698, 7698, 7705, 7705, 7706, 7706, 7717, 7717, 7718, 7718, 7741, + 7741, 7792, 7792, 7912, 7912, 7907, 7907, 7997, 7997, 8020, 8020, 8021, 8021, 8026, + 8026, 8030, 8030, 8031, 8031, 8032, 8032, 8032, 7336, 7580, 7608, 7639, 7790, 7791, + 7856, 8033, 7311, 7311, 7397, 7397, 7412, 7439, 7439, 7585, 7585, 7731, 7731, 7793, + 7793, 7829, 7829, 1266, 1267, 1268, 8066, 8066, 7880, 7575, 8067, 7628, 7628, 7299, + 7299, 7300, 7460, 7279, 7279, 7403, 7403, 7239, 7239, 7645, 7645, 7861, 7861, 7412, + 7412, 7525, 7525, 7609, 7609, 7731, 7731, 7793, 7793, 7461, 7375, 7416, 7565, 7482, + 64449, 7539, 7857, 7513, 7944, 7289, 7289, 7686, 7686, 64449, 64449, 64449, 64449, + 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, + 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, + 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, + 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, + 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 7487, + 7448, 7645, 7896, 7411, 7707, 7606, 7486, 7607, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 8, 2, 8, 2, 8, 2, 10, 4, 8, + 2, 8, 2, 8, 2, 2, 2, 10, 4, 10, 4, 10, 4, 10, 4, 10, 4, 10, 4, 8, 2, 8, 2, 8, 2, + 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 10, 4, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, + 2, 10, 4, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 20, 2, 2, 2, 2, 2, 2, 2, 2, + 10, 4, 10, 4, 10, 8, 2, 8, 2, 10, 4, 10, 4, 10, 4, 2, 2, 2, 8, 2, 8, 2, 2, 8, 2, + 8, 2, 2, 2, 8, 2, 8, 2, 10, 4, 10, 4, 10, 4, 10, 4, 10, 4, 10, 4, 10, 4, 10, 4, + 8, 8, 8, 8, 8, 2, 8, 8, 8, 8, 8, 2, 8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 20, 20, + 2, 2, 2, 2, 2, 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, 7969, 7969, 0, 0, 0, 0, + 0, 0, 0, 0, 7239, 7239, 7645, 7645, 7861, 7861, 7907, 7907, 0, 0, 7947, 7947, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7645, 7645, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 7947, 7947, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 42927, 0, 0, 0, 0, 0, 0, 0, 0, 42936, 42937, 42938, 42939, + 42940, 42941, 42942, 42943, 42944, 42945, 42946, 42947, 42948, 42949, 42950, 42951, + 42952, 42953, 42954, 42955, 42956, 42957, 42958, 42959, 42960, 42961, 42962, 42963, + 42964, 42965, 42966, 42967, 42968, 42969, 42970, 42971, 42972, 42973, 42974, 42975, + 42976, 42977, 42978, 42979, 42980, 42981, 42982, 42983, 42984, 42985, 42986, 42987, + 42988, 42989, 42990, 42991, 42992, 42993, 42994, 42995, 42996, 42997, 42998, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 0, 0, 0, + 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 272, 272, 32, 32, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 273, 273, 273, 273, 273, 0, 0, 0, 0, 273, 273, 273, 273, 273, 273, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 43, 43, 43, 43, 43, 53, 53, 53, + 53, 53, 53, 53, 53, 53, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 57, 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 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, 4, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 10, 4, 10, 4, 10, 4, 4, 4, 10, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 10, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 4, 4, 4, 4, 4, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 20, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 7907, 7907, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7338, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0] +- [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 10588, 10589, 10590, 10591, 10592, 10593, + 10594, 10595, 10596, 10597, 10598, 0, 10599, 10600, 10601, 10602, 10603, 10604, + 10605, 10606, 10607, 10608, 10609, 10610, 10611, 10612, 10613, 10614, 10615, 10616, + 10617, 10618, 10619, 10620, 10621, 10622, 10623, 10624, 10625, 10626, 1311, 1312, + 1313, 1314, 64449, 64449, 64449, 64449, 6818, 6819, 6820, 6821, 6822, 6823, 1315, + 1316, 7195, 1317, 64449, 64449, 64449, 64449, 64449, 64449, 12032, 12033, 12034, + 12035, 12036, 12037, 12038, 12039, 12044, 12045, 12046, 12047, 12048, 12049, 12050, + 12051, 12052, 12053, 12054, 12055, 12057, 12058, 12059, 12060, 12063, 12066, 12067, + 12069, 12070, 12073, 12078, 12079, 12080, 12081, 12074, 12075, 12076, 12077, 12082, + 12056, 12061, 12040, 12041, 12042, 12043, 12062, 12068, 12071, 12072, 12064, 12065, + 12083, 1064, 1065, 660, 661, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, + 0, 0, 10627, 10628, 10629, 10630, 10631, 10632, 10633, 10634, 10635, 10636, 10637, + 10638, 10639, 10640, 10641, 10642, 10643, 10644, 10645, 10646, 10647, 10648, 10649, + 10650, 10651, 10652, 10653, 10654, 10655, 10656, 10657, 10658, 10659, 10660, 10661, + 10662, 10663, 10664, 10665, 10666, 10667, 10668, 10669, 10670, 10671, 10672, 10673, + 10674, 10675, 10676, 10677, 10678, 10679, 10680, 10681, 10682, 10683, 10684, 10685, + 10686, 10687, 10688, 10689, 10690, 10691, 10692, 10693, 0, 64449, 64449, 64449, + 64449, 64449, 64449, 64449, 64449, 656, 657, 7229, 7230, 7231, 7232, 7233, 7234, + 7235, 7236, 7237, 7238, 64449, 64449, 64449, 64449, 64449, 64449, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9892, 9892, 9892, 9892, 9892, 9892, 1000, + 1001, 1002, 9893, 1003, 9820, 64449, 64449, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 196, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 196, + 197, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 195, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 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, 43052, 43053, 43054, 43055, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43066, + 43067, 43068, 43069, 43070, 43071, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43128, 43129, 43130, 43131, 43132, 43133, + 43134, 43135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43206, 43207, 43208, + 43209, 43210, 43211, 43212, 43213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43226, 43227, + 43228, 43229, 43230, 43231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43262, 43263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 7229, 7230, 7231, 7232, 7233, 7234, 7235, + 7236, 7237, 7238, 12308, 12309, 12310, 12311, 12312, 12313, 12314, 12315, 12316, + 12317, 12318, 12319, 12320, 12321, 12322, 12323, 12324, 12325, 12326, 12327, 12328, + 12329, 12330, 12331, 12332, 12333, 12334, 12335, 12336, 12337, 12338, 12339, 12340, + 0, 0, 0, 1070, 664, 12272, 12273, 12274, 12275, 12276, 12277, 12278, 12279, 12280, + 12281, 12282, 12283, 12284, 12285, 12286, 12287, 12288, 12289, 12290, 12291, 12292, + 12293, 12294, 12295, 12296, 12297, 12298, 12299, 12300, 12301, 12302, 12303, 12304, + 12305, 12306, 12307, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, + 64449, 64449, 728, 15444, 15445, 15446, 15447, 15448, 15449, 15450, 15451, 15452, + 15453, 15454, 15455, 15456, 15457, 15458, 15459, 15460, 15461, 15462, 15463, 15464, + 15465, 15466, 15467, 15468, 15469, 15470, 15471, 15472, 64449, 64449, 64449, 0, + 0, 0, 0, 12957, 12958, 12959, 12960, 12961, 12962, 12963, 12964, 12965, 12966, 12967, + 12968, 12969, 12970, 12971, 12972, 12973, 12974, 12975, 12976, 12977, 12978, 12979, + 12980, 12981, 12982, 12983, 12984, 12985, 12986, 12987, 12988, 12989, 12990, 12991, + 12992, 12993, 12994, 12995, 12997, 12997, 12999, 13000, 13001, 13002, 13003, 13004, + 0, 13005, 13014, 13007, 13008, 13009, 13010, 13012, 13013, 13006, 13011, 12996, + 12998, 13015, 717, 718, 719, 720, 721, 722, 603, 675, 676, 723, 724, 725, 726, 64449, + 7167, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 64449, 64449, + 64449, 64449, 1071, 1072, 12350, 12358, 12368, 12390, 12415, 12489, 7168, 12376, + 12410, 12348, 12351, 12363, 12370, 12384, 12387, 12391, 7229, 7230, 7231, 7232, + 7233, 7234, 7235, 7236, 7237, 7238, 12443, 12396, 12399, 12413, 12416, 64449, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 226, 227, 228, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 195, 196, 201, 197, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 194, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 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, 43348, 43349, 43350, 43351, 43352, 43353, 43354, 43355, + 43356, 43357, 43358, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43389, 43390, 43391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43470, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 43482, 43483, 43484, 43485, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43519, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 12818, 12819, 12820, 12821, 12822, 12823, + 12824, 12825, 12826, 12827, 12828, 12829, 12830, 12831, 12832, 12833, 12834, 12835, + 12836, 12837, 12838, 12839, 12840, 12841, 12842, 12843, 12844, 12845, 12846, 12847, + 12848, 12849, 12850, 12851, 12852, 12853, 12854, 12855, 12856, 12857, 12858, 12863, + 12864, 12865, 12866, 12867, 12868, 12869, 12870, 12871, 12872, 12859, 12860, 12861, + 12862, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 12873, 12874, + 12875, 12876, 12877, 12878, 12879, 12880, 12881, 12882, 12883, 12884, 12885, 12886, + 64449, 64449, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 64449, + 64449, 1073, 677, 678, 679, 12347, 12356, 12359, 12362, 12369, 12375, 12379, 12381, + 12383, 12386, 12398, 12402, 12435, 12438, 12440, 12408, 7169, 12441, 12365, 12422, + 12513, 12514, 12515, 1357, 1358, 1359, 12423, 12510, 12511, 12512, 12360, 12372, + 11747, 11748, 11749, 11750, 11751, 11752, 11753, 11754, 11755, 11756, 11757, 11758, + 11759, 11760, 11761, 11762, 11763, 11764, 11765, 11766, 11767, 11768, 11769, 11770, + 11771, 11772, 11773, 11774, 11775, 11776, 11777, 11778, 11779, 11780, 11781, 11782, + 11783, 11784, 11785, 11786, 11787, 11788, 11789, 11790, 11791, 11792, 11793, 11794, + 11795, 11796, 11797, 11798, 11799, 11800, 11801, 11802, 11803, 11804, 11805, 11806, + 11807, 11808, 11809, 0, 11810, 0, 11811, 64449, 64449, 64449, 64449, 64449, 64449, + 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, + 64449, 64449, 64449, 64449, 64449, 64449, 11812, 11813, 7170, 1009, 1010, 10553, + 10554, 10555, 10556, 10557, 10558, 10559, 10560, 10561, 10562, 10563, 10572, 10573, + 10574, 10575, 10576, 680, 626, 10525, 7171, 7172, 10577, 10587, 64449, 64449, 64449, + 64449, 64449, 64449, 64449, 64449, 64449, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 223, 32, 224, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 43575, 43576, + 43577, 43578, 43579, 43580, 43581, 43582, 43583, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 43598, 43599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43610, 43611, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43715, 43716, 43717, 43718, 43719, + 43720, 43721, 43722, 43723, 43724, 43725, 43726, 43727, 43728, 43729, 43730, 43731, + 43732, 43733, 43734, 43735, 43736, 43737, 43738, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43767, 43768, 43769, 43770, 43771, + 43772, 43773, 43774, 43775, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 64449, 9430, 9431, 9432, 9433, 9434, 9435, + 64449, 64449, 9629, 9630, 9631, 9632, 9633, 9634, 64449, 64449, 9598, 9599, 9600, + 9601, 9602, 9603, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, + 9696, 9697, 9698, 9699, 9700, 9701, 9702, 64449, 9720, 9721, 9722, 9723, 9724, 9725, + 9726, 64449, 7257, 7248, 7343, 7344, 7350, 7402, 7420, 7569, 7563, 7564, 7605, 7638, + 7644, 7651, 7663, 7670, 7659, 7657, 7658, 7660, 7661, 7735, 7740, 7781, 7782, 7771, + 7783, 7784, 7785, 7814, 7866, 7876, 7870, 7871, 7879, 7944, 7945, 7946, 7940, 7941, + 7942, 7943, 7964, 1269, 7467, 7569, 7559, 7879, 8027, 8028, 7672, 8029, 7263, 8162, + 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 13183, 13184, + 13185, 13186, 13187, 13188, 13189, 13190, 13191, 13192, 13193, 13194, 13195, 13196, + 13197, 13198, 13199, 13200, 13201, 13202, 13203, 13204, 13205, 13206, 13207, 13208, + 13209, 13210, 13211, 13212, 13213, 13214, 13215, 13216, 13217, 13218, 13219, 13220, + 13221, 13222, 13223, 13224, 13225, 13226, 13227, 13228, 13229, 13230, 13231, 13232, + 13233, 13234, 13235, 13236, 13237, 13238, 13239, 13240, 13241, 13242, 13243, 13244, + 13245, 13246, 13247, 13248, 13249, 13250, 13251, 13252, 13253, 13254, 13255, 13256, + 13257, 13258, 13259, 13260, 13261, 13262, 10526, 10527, 10528, 10529, 10530, 10531, + 10532, 10533, 10534, 10535, 10536, 10537, 10538, 10539, 10540, 10541, 10542, 10543, + 10544, 10545, 10546, 10547, 10548, 10549, 10550, 10551, 10552, 10578, 10579, 10580, + 10581, 10582, 10583, 10584, 10585, 10564, 10565, 10566, 10567, 10568, 10569, 10570, + 10571, 681, 0, 10586, 64449, 64449, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, + 7237, 7238, 64449, 64449, 64449, 64449, 64449, 64449, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 203, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 20, 20, 20, + 20, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 43776, + 0, 0, 0, 0, 0, 0, 43783, 43784, 0, 0, 0, 0, 0, 0, 43791, 43792, 0, 0, 0, 0, 0, 0, + 43799, 43800, 43801, 43802, 43803, 43804, 43805, 43806, 43807, 0, 0, 0, 0, 0, 0, + 0, 43815, 0, 0, 0, 0, 0, 0, 0, 43823, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43878, 43879, 43880, 43881, 43882, 43883, + 43884, 43885, 43886, 43887, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 44014, 44015, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44026, 44027, 44028, 44029, 44030, 44031, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 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, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 15367, 15367, 15367, 15367, 15367, 15367, + 15367, 15367, 15367, 15367, 15367, 15367, 15367, 15367, 15367, 15367, 15367, 15367, + 15367, 15367, 15367, 15367, 15367, 15367, 15367, 15367, 15367, 15367, 15367, 15367, + 15367, 15367, 15367, 15367, 15367, 15367, 15367, 15367, 15367, 15367, 15367, 15367, + 15367, 15367, 15367, 15367, 15367, 15367, 15367, 15367, 15367, 15367, 15367, 15367, + 15367, 15367, 15367, 15367, 15367, 15367, 15367, 15367, 15367, 15367, 15367, 15367, + 15367, 15367, 15367, 15367, 15367, 15367, 15367, 15367, 15367, 15367, 15367, 15367, + 15367, 15367, 15367, 15367, 15367, 15367, 15367, 15367, 15367, 15367, 15367, 15367, + 15367, 15367, 15367, 15367, 15367, 15367, 15367, 15367, 15367, 15367, 15367, 15367, + 15367, 15367, 15367, 15367, 15367, 15367, 15367, 15367, 15367, 15367, 15367, 15367, + 15367, 15367, 15367, 15367, 15367, 15367, 15367, 15367, 15367, 15367, 15367, 15367, + 15367, 15367, 15367, 15367, 15367, 15367, 15367, 15367, 15367, 15367, 15367, 15367, + 15367, 15367, 15367, 15367, 15367, 15367, 15367, 15367, 15367, 15367, 15367, 15367, + 15367, 15367, 15367, 15367, 15367, 15367, 15367, 15367, 15367, 15367, 15367, 15367, + 15367, 15367, 15368, 15368, 15368, 15368, 15368, 15368, 15368, 15368, 15368, 15368, + 15368, 15368, 15546, 15547, 15548, 15549, 15550, 15551, 15552, 15553, 15554, 15555, + 15556, 15557, 15558, 15559, 15560, 15561, 15562, 15563, 15564, 15565, 15566, 15567, + 15568, 64449, 64449, 64449, 64449, 15657, 15658, 15659, 15660, 15661, 15662, 15663, + 15664, 15665, 15666, 15667, 15668, 15669, 15670, 15671, 15672, 15673, 15674, 15675, + 15676, 15677, 15678, 15679, 15680, 15681, 15682, 15683, 15684, 15685, 15686, 15687, + 15688, 15689, 15690, 15691, 15692, 15693, 15694, 15695, 15696, 15697, 15698, 15699, + 15700, 15701, 15702, 15703, 15704, 15705, 64449, 64449, 64449, 64449, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 15490, 15490, 15490, 15490, 15490, 15490, 15490, 15490, 15490, 15490, 15490, + 15490, 15490, 15490, 15490, 15490, 15490, 15490, 15490, 15490, 15490, 15490, 15490, + 15490, 15491, 15491, 15491, 15491, 15491, 15491, 15491, 15491, 15491, 15491, 15491, + 15491, 15491, 15491, 15491, 15491, 15491, 15491, 15491, 15491, 15491, 15491, 15491, + 15491, 15491, 15491, 15491, 15491, 15492, 15492, 15492, 15492, 15492, 15492, 15492, + 15492, 15492, 15492, 15492, 15492, 15492, 15492, 15492, 15492, 15492, 15492, 15492, + 15492, 15492, 15492, 15492, 15492, 15492, 15492, 15492, 15492, 15493, 15493, 15493, + 15493, 15493, 15493, 15493, 15493, 15493, 15493, 15493, 15493, 15493, 15493, 15493, + 15493, 15493, 15493, 15493, 15493, 15493, 15493, 15493, 15493, 15493, 15493, 15493, + 15493, 15494, 15494, 15494, 15494, 15494, 15494, 15494, 15494, 15494, 15494, 15494, + 15494, 15494, 15494, 15494, 15494, 15494, 15494, 15494, 15494, 15494, 15494, 15494, + 15494, 15494, 15494, 15494, 15494, 15495, 15495, 15495, 15495, 15495, 15495, 15495, + 15495, 15495, 15495, 15495, 15495, 15495, 15495, 15495, 15495, 15495, 15495, 15495, + 15495, 15495, 15495, 15495, 15495, 15495, 15495, 15495, 15495, 15475, 15475, 15475, + 15475, 15475, 15475, 15475, 15475, 15475, 15475, 15475, 15475, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55239, 55240, 55241, 55242, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55292, 55293, 55294, + 55295, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 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, 15572, 15573, 15574, 15575, 15576, 15577, 15578, 15579, + 15580, 15581, 15582, 15583, 15584, 15585, 15586, 15587, 15588, 15589, 15590, 15591, + 15592, 15593, 15594, 15595, 0, 15569, 15570, 15571, 15572, 15573, 15574, 15575, + 15576, 15577, 15578, 15579, 15580, 15581, 15582, 15583, 15584, 15585, 15586, 15587, + 15588, 15589, 15590, 15591, 15592, 15593, 15594, 15595, 0, 15569, 15570, 15571, + 15572, 15573, 15574, 15575, 15576, 15577, 15578, 15579, 15580, 15581, 15582, 15583, + 15584, 15585, 15586, 15587, 15588, 15589, 15590, 15591, 15592, 15593, 15594, 15595, + 0, 15569, 15570, 15571, 15572, 15573, 15574, 15575, 15576, 15577, 15578, 15579, + 15580, 15581, 15582, 15583, 15584, 15585, 15586, 15587, 15588, 15589, 15590, 15591, + 15592, 15593, 15594, 15595, 0, 15569, 15570, 15571, 15572, 15573, 15574, 15575, + 15576, 15577, 15578, 15579, 15580, 15581, 15582, 15583, 15584, 15585, 15586, 15587, + 15588, 15589, 15590, 15591, 15592, 15593, 15594, 15595, 0, 15569, 15570, 15571, + 15572, 15573, 15574, 15575, 15576, 15577, 15578, 15579, 15580, 15581, 15582, 15583, + 15584, 15585, 15586, 15587, 15588, 15589, 15590, 15591, 15592, 15593, 15594, 15595, + 0, 15569, 15570, 15571, 15572, 15573, 15574, 15575, 15576, 15577, 15578, 15579, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 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] +- [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 64321, 64320, 64321, 64321, 64320, 64320, + 64320, 64321, 64321, 64320, 64321, 64320, 64320, 64320, 64320, 64320, 64321, 64321, + 64321, 64321, 64320, 64320, 64320, 64320, 64321, 64321, 64321, 64320, 64320, 64320, + 64320, 64321, 64321, 64320, 64320, 64321, 64321, 64320, 64321, 64321, 64320, 64320, + 64320, 64320, 64321, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64321, 64321, + 64321, 64321, 64321, 64321, 64321, 64320, 64320, 64320, 64321, 64321, 64321, 64321, + 64320, 64320, 64320, 64321, 64320, 64320, 64321, 64321, 64320, 64320, 64320, 64320, + 64320, 64320, 64320, 64321, 64320, 64321, 64320, 64320, 64320, 64320, 64321, 64321, + 64321, 64320, 64320, 64321, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, + 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64321, 64321, 64320, 64321, + 64320, 64320, 64321, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64321, 64321, + 64321, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64321, 64321, 64321, 64321, + 64320, 64320, 64320, 64321, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, + 64320, 64321, 64321, 64321, 64321, 64321, 64320, 64320, 64320, 64320, 64321, 64321, + 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, + 64320, 64320, 64321, 64321, 64321, 64321, 64321, 64320, 64320, 64321, 64321, 64320, + 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64321, 64321, 64321, 64320, + 64321, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64321, 64320, + 64320, 64321, 64320, 64320, 64320, 64321, 64320, 64320, 64320, 64320, 64321, 64320, + 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64321, 64321, 64321, + 64321, 64320, 64320, 64320, 64320, 64320, 64321, 64321, 64321, 64321, 64320, 64320, + 64321, 64320, 64320, 64320, 64320, 64320, 64321, 64320, 64321, 64320, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 35912, 59124, 36554, 36040, 61137, 52786, 54245, 40860, 40860, 55633, 37329, + 54663, 55624, 57846, 63081, 65413, 34367, 34746, 35064, 37007, 59906, 60699, 61657, + 62430, 33853, 37226, 39409, 52866, 54133, 60164, 61979, 34349, 40478, 56656, 61419, + 34253, 35172, 58057, 33240, 34847, 57034, 59159, 60778, 62204, 37070, 53126, 53687, + 53982, 58564, 60115, 61968, 63207, 32769, 34310, 34396, 36335, 38706, 39791, 40442, + 63628, 63871, 64928, 33737, 37636, 40575, 35542, 55519, 57092, 64608, 32894, 62050, + 63690, 36034, 38647, 55512, 56418, 59923, 60890, 61199, 64815, 65079, 38475, 53970, + 32907, 53724, 53708, 64028, 64958, 33777, 38517, 35712, 58063, 59906, 35582, 52793, + 56295, 57362, 62343, 62832, 54039, 63739, 53183, 57257, 52749, 60620, 58744, 64802, + 54211, 55390, 63233, 33865, 35498, 60346, 36784, 60552, 58110, 33509, 58272, 62821, + 52910, 53609, 53705, 59521, 64743, 33391, 35538, 37327, 54005, 54338, 55667, 57068, + 58821, 61438, 63786, 38317, 39530, 40599, 40654, 53915, 59078, 60279, 36706, 56948, + 57744, 57856, 58522, 61219, 61769, 62601, 63946, 65012, 32879, 36646, 34030, 36899, + 37706, 53783, 53923, 54461, 61640, 35010, 35498, 57033, 57333, 58235, 60334, 64574, + 62325, 52964, 55033, 56295, 56762, 57372, 62386, 62569, 65434, 32838, 37428, 38646, + 38728, 38936, 53131, 63918, 37300, 38584, 57569, 52870, 53466, 56302, 56383, 58777, + 59906, 61902, 63042, 34044, 36988, 40845, 59016, 38446, 53897, 59259, 59379, 60737, + 61084, 62473, 62809, 63595, 64784, 39006, 53613, 57902, 38520, 53291, 56601, 60906, + 36650, 57227, 57668, 59415, 62343, 38534, 53801, 54287, 56421, 58899, 59214, 59560, + 60645, 62470, 62946, 65401, 35023, 35041, 37324, 38626, 54079, 61114, 54301, 61904, + 62616, 34298, 38563, 40023, 40607, 59287, 60875, 33256, 64203, 64288, 64658, 62144, + 61593, 35672, 52928, 33590, 53818, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 64320, 64320, 64320, 64320, 64320, 64320, + 64320, 64321, 64321, 64321, 64321, 64320, 64320, 64320, 64321, 64321, 64320, 64321, + 64320, 64321, 64321, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64321, 64320, + 64320, 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, + 64321, 64321, 64321, 64321, 64321, 64321, 64320, 64320, 64320, 64320, 64320, 64320, + 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, + 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, + 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, + 64320, 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, + 64321, 64321, 64321, 64321, 64321, 64320, 64388, 64321, 64449, 64449, 64320, 64320, + 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, + 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, + 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, + 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, + 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, + 64320, 64320, 64320, 64320, 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, + 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, + 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64388, 64388, 64388, + 64384, 64384, 64384, 64388, 64388, 64388, 64321, 64321, 64449, 64449, 64449, 64449, + 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, + 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, + 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 53767, 56998, 58067, 64726, 56197, 60702, 59060, 36667, 34892, 38477, 35211, + 57043, 53568, 54720, 64014, 64015, 55386, 64017, 58996, 64019, 64020, 53726, 62250, + 63178, 63804, 63838, 63845, 63887, 38742, 64702, 65469, 64031, 34322, 64033, 35576, + 64035, 64036, 36920, 37117, 64039, 64040, 64041, 39151, 39164, 39208, 40372, 37086, + 38583, 53166, 53479, 53581, 53961, 53988, 54097, 54685, 54790, 54888, 55360, 55464, + 56420, 56430, 57492, 57704, 57742, 57842, 58703, 58850, 59025, 59525, 60791, 60954, + 61218, 61806, 61995, 62498, 63633, 63806, 63817, 63816, 63824, 63830, 63837, 63885, + 63886, 64064, 64129, 64448, 65012, 65033, 65089, 65394, 32773, 33261, 33401, 33401, + 33879, 35088, 35222, 35585, 35641, 36051, 36104, 36790, 36920, 38627, 38911, 38971, + 57461, 49902, 33304, 64110, 64111, 52774, 53685, 53608, 53120, 53573, 53632, 53959, + 54010, 54685, 54613, 54681, 54754, 55386, 55475, 55620, 55636, 55906, 56104, 57042, + 57049, 57193, 57261, 57560, 57678, 57608, 57742, 57696, 57842, 57908, 58308, 58396, + 58450, 58710, 58996, 59159, 59163, 59222, 60281, 60346, 60737, 61147, 61131, 61218, + 61470, 61806, 63399, 62005, 62127, 62250, 62577, 62726, 62779, 63005, 63007, 63178, + 63195, 63220, 63306, 63296, 63692, 64177, 64448, 64635, 64859, 65012, 65342, 32773, + 33618, 33775, 34681, 35137, 35206, 35222, 35519, 35576, 35531, 35585, 35582, 35565, + 35641, 35722, 36104, 36664, 36978, 37273, 37494, 38524, 38627, 38742, 38875, 38911, + 38923, 38971, 39698, 40860, 43082, 43076, 46037, 48029, 49176, 49209, 53833, 56528, + 65235, 40771, 40846, 64218, 64219, 64220, 64221, 64222, 64223, 64224, 64225, 64226, + 64227, 64228, 64229, 64230, 64231, 64232, 64233, 64234, 64235, 64236, 64237, 64238, + 64239, 64240, 64241, 64242, 64243, 64244, 64245, 64246, 64247, 64248, 64249, 64250, + 64251, 64252, 64253, 64254, 64255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 2, 2, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 7397, 7397, 7397, 7397, 7397, 7793, 7793, + 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, + 8867, 8867, 8867, 8877, 8867, 64449, 64449, 64449, 64449, 64449, 8896, 0, 8896, + 8902, 8887, 8890, 8891, 8897, 8898, 8899, 8906, 8908, 1558, 8907, 8907, 8907, 8907, + 8887, 8887, 8887, 8888, 8889, 8890, 8891, 8892, 8893, 64449, 8895, 8896, 8897, 8897, + 8898, 64449, 8899, 64449, 8900, 8901, 64449, 8903, 8903, 64449, 8904, 8905, 8906, + 8907, 8908, 8892, 8888, 8897, 8903, 8887, 8961, 8961, 8974, 8974, 8974, 8974, 8975, + 8975, 8975, 8975, 8976, 8976, 8976, 8976, 8992, 8992, 8992, 8992, 8995, 8995, 8995, + 8995, 8991, 8991, 8991, 8991, 9083, 9083, 9083, 9083, 9086, 9086, 9086, 9086, 8999, + 8999, 8999, 8999, 8998, 8998, 8998, 8998, 9000, 9000, 9000, 9000, 9002, 9002, 9002, + 9002, 9022, 9022, 9021, 9021, 9024, 9024, 9017, 9017, 9039, 9039, 9032, 9032, 9096, + 9096, 9096, 9096, 9104, 9104, 9104, 9104, 9109, 9109, 9109, 9109, 9107, 9107, 9107, + 9107, 9128, 9128, 9130, 9130, 9130, 9130, 9142, 9142, 9139, 9139, 9139, 9139, 9138, + 9138, 9138, 9138, 9172, 9172, 9172, 9172, 1282, 1283, 1284, 1285, 1286, 1287, 1288, + 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 64449, 64449, 64449, 64449, + 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, + 64449, 9101, 9101, 9101, 9101, 9147, 9147, 9146, 9146, 9148, 9148, 9147, 9151, 9151, + 9145, 9145, 9149, 9149, 9162, 9162, 9162, 9162, 9157, 9157, 8967, 8967, 8967, 8967, + 8967, 8967, 8967, 8967, 8967, 8967, 8967, 8967, 8967, 8967, 8967, 8967, 8967, 8967, + 9159, 9159, 9159, 9159, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, + 2, 2, 2, 2, 2, 2, 2, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 25, 2, 2, 2, 2, 2, 2, 2, 2, 25, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 4, 26, 25, 26, 25, 23, 24, 26, 25, 23, 24, 26, 25, 23, 24, 26, 25, 23, 24, + 26, 25, 23, 24, 26, 25, 23, 24, 26, 25, 23, 24, 26, 25, 23, 24, 26, 25, 23, 24, + 26, 25, 23, 24, 26, 25, 23, 24, 26, 25, 23, 24, 26, 25, 26, 25, 26, 25, 26, 25, + 26, 25, 26, 25, 26, 25, 23, 24, 26, 25, 23, 24, 26, 25, 23, 24, 26, 25, 23, 24, + 26, 25, 26, 25, 23, 24, 26, 25, 26, 25, 23, 24, 26, 25, 23, 24, 26, 25, 26, 25, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 26, 25, 23, 24, 26, 25, 26, 25, 26, 25, 26, 26, 25, 26, 25, 26, + 25, 26, 25, 23, 24, 23, 24, 26, 25, 26, 25, 26, 25, 26, 25, 26, 25, 26, 25, 26, + 25, 23, 26, 25, 23, 26, 25, 23, 24, 7397, 7474, 7543, 7397, 7397, 0, 7829, 64263, + 64264, 64265, 64266, 64267, 64268, 64269, 64270, 64271, 64272, 64273, 64274, 8869, + 8852, 8858, 8869, 8860, 64280, 64281, 64282, 64283, 64284, 0, 0, 8896, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64311, 0, 0, 0, 0, 0, + 64317, 0, 64319, 0, 0, 64322, 0, 0, 64325, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8898, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 64450, 64451, 64452, 64453, 64454, 64455, 64456, 64457, 64458, 64459, + 64460, 64461, 64462, 64463, 64464, 64465, 64466, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8957, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8971, 8971, 9142, 9142, 9143, 9143, 9147, 9147, + 9146, 9146, 9148, 9148, 9162, 9162, 9162, 9157, 9157, 9157, 0, 0, 0, 0, 32, 32, + 32, 32, 32, 273, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 0, + 0, 0, 0, 0, 86, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 93, 95, 95, 89, 90, 95, + 95, 95, 95, 95, 95, 95, 0, 95, 95, 95, 95, 95, 0, 95, 0, 95, 95, 0, 95, 95, 0, 95, + 95, 95, 95, 95, 91, 96, 96, 96, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 131, 131, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 131, 131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, + 4, 4, 4, 4, 0, 0, 0, 0, 0, 2, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 0, 2, 0, 2, 2, 0, 2, 2, 0, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 25, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, + 25, 26, 25, 26, 25, 26, 25, 26, 25, 26, 25, 26, 25, 23, 26, 25, 23, 0, 0, 0, 0, + 0, 0, 0, 7474, 7543, 7829, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 94, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 4, 0, 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, 2, 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] +- [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 8967, 8967, 8967, 8967, 8967, 8973, 8973, + 8973, 8973, 8973, 8973, 8989, 8989, 8989, 8989, 8989, 8989, 8990, 8990, 8990, 8990, + 8997, 8997, 9004, 9004, 9005, 9005, 9005, 9049, 9049, 9049, 9049, 9060, 9060, 9061, + 9061, 9061, 9061, 9066, 9066, 9067, 9070, 9070, 9071, 9071, 9078, 9078, 9078, 9078, + 9078, 9078, 9090, 9090, 9090, 9090, 9095, 9095, 9095, 9095, 9095, 9095, 9095, 9095, + 9116, 9116, 9116, 9116, 9116, 9116, 9123, 9123, 9123, 9123, 9123, 9123, 9127, 9127, + 9127, 9127, 9127, 9127, 9137, 9137, 9137, 9137, 9158, 9158, 9158, 9158, 9158, 9158, + 9016, 9030, 9157, 0, 0, 0, 0, 0, 0, 8967, 8967, 8967, 8967, 8967, 8967, 8973, 8973, + 8973, 8973, 8973, 8973, 8989, 8989, 8989, 8989, 8989, 8989, 8990, 8990, 8990, 8990, + 8990, 8990, 9078, 9078, 9090, 9090, 9095, 9095, 9095, 9095, 9095, 9116, 9116, 9116, + 9123, 9123, 9127, 9127, 9127, 9127, 9127, 9127, 9157, 9158, 9158, 9158, 9158, 9158, + 9158, 8967, 8967, 8967, 8967, 8967, 8973, 8973, 8973, 8973, 8973, 8989, 8989, 8989, + 8989, 8989, 8990, 8997, 8997, 9004, 9004, 9005, 9005, 9049, 9049, 9049, 9049, 9060, + 9060, 9060, 9061, 9061, 9061, 9061, 9066, 9067, 9070, 9070, 9071, 9071, 9078, 9078, + 9078, 9078, 9090, 9090, 9095, 9095, 9095, 9095, 9095, 9116, 9116, 9116, 9116, 9116, + 9123, 9123, 9123, 9123, 9127, 9127, 9127, 9127, 9127, 9137, 9137, 9137, 9158, 9158, + 9158, 9158, 9158, 8967, 8967, 8973, 8973, 8989, 8989, 8990, 8990, 9049, 9049, 9050, + 9050, 9095, 9095, 9116, 9127, 9127, 9158, 9158, 0, 0, 0, 9066, 9066, 9070, 9070, + 9071, 9071, 9049, 9049, 9050, 9050, 9004, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 112, 115, 118, 122, 125, 128, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 122, 125, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, + 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, + 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 23, 23, + 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, + 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, + 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, + 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, + 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 8997, 9004, 9123, 9157, 9158, 8997, 9004, 9005, 9123, 9157, 9158, 8997, + 9004, 9005, 9123, 9157, 9158, 8997, 9123, 9157, 9158, 9004, 9123, 8997, 9123, 8997, + 9004, 9123, 8997, 9004, 9005, 9123, 9004, 9123, 8997, 9004, 9005, 9123, 9004, 9123, + 9123, 8997, 9123, 8997, 9123, 8997, 9004, 9005, 9123, 9157, 9158, 9004, 9123, 9157, + 9158, 8971, 8997, 9004, 9005, 9116, 9123, 9157, 9158, 8997, 9004, 9005, 9123, 9157, + 9158, 8997, 9004, 9005, 9123, 9157, 9158, 8997, 9004, 9005, 9123, 9157, 9158, 8997, + 9123, 9157, 9158, 8997, 9004, 9005, 9123, 9157, 9158, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 9030, 9031, 9123, 9127, 9157, 9158, 9030, 9031, 9123, 9127, 9157, 9158, 9030, 9031, + 9123, 9127, 9157, 9158, 9030, 9031, 9123, 9127, 9157, 9158, 9157, 9158, 9157, 9158, + 8971, 9116, 9123, 9157, 9158, 9123, 9157, 9158, 8971, 9123, 9030, 9031, 9123, 9127, + 9157, 9158, 0, 9030, 9031, 9123, 9127, 9157, 9158, 8997, 9004, 9005, 9123, 9137, + 8997, 9004, 9005, 9123, 9137, 8997, 9004, 9005, 9123, 9137, 9123, 9004, 9123, 8997, + 9123, 8997, 9123, 8997, 9004, 9005, 9123, 9004, 9005, 9123, 8997, 9004, 9005, 9123, + 9004, 9123, 8997, 9123, 8997, 9123, 8997, 9004, 9005, 9123, 9004, 9123, 8997, 9004, + 9005, 9116, 9123, 8997, 9004, 9005, 9123, 9137, 8997, 9004, 9005, 9123, 8997, 9004, + 9005, 9123, 9137, 8997, 9123, 0, 8997, 9004, 9005, 9123, 9137, 9123, 9137, 9123, + 9137, 9123, 9137, 9123, 9137, 9123, 9137, 9123, 9137, 9116, 9123, 9123, 9123, 9137, + 9123, 9137, 0, 0, 0, 9157, 9158, 9157, 9158, 9157, 9158, 9157, 9158, 9157, 9158, + 9157, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 152, 152, 152, 128, 128, 128, 128, + 128, 152, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 152, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 152, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 128, 128, 128, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 25, 25, + 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, + 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, + 25, 25, 25, 25, 25, 25, 25, 25, 25, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, + 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, + 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, + 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, + 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, + 24, 24, 24, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26] +- [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 4, + 4, 4, 4, 4, 4, 4, 3, 8, 8, 4, 1, 2, 2, 9004, 8997, 8997, 9005, 9005, 9060, 9060, + 9061, 9061, 9050, 9050, 9050, 9050, 9050, 9049, 9060, 9061, 9066, 9066, 9070, 9070, + 9071, 9071, 9049, 9049, 9050, 9050, 9004, 9004, 8997, 8997, 9005, 9005, 9060, 9060, + 9061, 9061, 9050, 9050, 9050, 9050, 9050, 9049, 9060, 9061, 9050, 9050, 9050, 9050, + 9049, 9050, 9066, 9049, 9049, 9049, 9050, 9050, 9050, 9066, 9067, 8971, 8971, 897, + 898, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, + 64449, 64449, 64449, 64449, 64449, 8989, 8989, 8989, 8989, 8989, 8989, 8989, 8989, + 8997, 8997, 9004, 9004, 9049, 9049, 9049, 9049, 9049, 9049, 9049, 9049, 9060, 9060, + 9060, 9050, 9050, 9050, 9050, 9050, 9050, 9050, 9061, 9061, 9061, 9066, 9066, 9066, + 9066, 9070, 9070, 9070, 9070, 9071, 9071, 9071, 9078, 9078, 9090, 9090, 9116, 9116, + 9116, 9116, 9116, 9116, 9116, 9116, 9116, 9123, 9123, 9123, 9123, 9123, 9123, 9123, + 64449, 64449, 9123, 9137, 9137, 9127, 9127, 9127, 9127, 9127, 9127, 9127, 9158, + 9158, 8973, 8989, 8989, 8989, 8989, 8989, 8989, 8997, 8997, 8997, 9049, 9060, 9050, + 9061, 9116, 9116, 9158, 9158, 9158, 9123, 9090, 9127, 9090, 9116, 9070, 9095, 9127, + 9123, 9116, 9095, 9116, 9127, 8997, 9004, 9123, 9078, 8973, 9095, 9070, 9060, 9049, + 9127, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, + 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, + 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, + 64449, 64449, 64449, 64449, 64449, 9060, 9090, 8971, 8971, 9123, 9060, 9030, 9070, + 9143, 9060, 9060, 8997, 9030, 1281, 64449, 64449, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, + 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 23, 23, 23, 23, 23, 23, 23, + 24, 24, 24, 24, 24, 24, 24, 24, 25, 26, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 23, 25, 23, 23, 23, 23, 23, 23, 25, 23, 25, 25, 23, 23, 25, 25, 23, + 23, 25, 23, 25, 23, 25, 25, 23, 25, 25, 23, 25, 23, 25, 25, 23, 25, 23, 23, 25, + 25, 25, 23, 25, 25, 25, 25, 25, 23, 25, 25, 25, 25, 25, 23, 25, 25, 23, 25, 23, + 23, 23, 25, 23, 23, 23, 23, 2, 2, 23, 23, 23, 23, 25, 25, 23, 25, 25, 25, 25, 23, + 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, + 25, 25, 23, 23, 25, 25, 23, 25, 23, 25, 25, 25, 25, 25, 25, 25, 25, 23, 23, 23, + 25, 25, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 2, 2, 2, 9158, 9157, 9158, 9157, 9158, 9157, 9158, 9157, 9158, + 8997, 9004, 9005, 9123, 9030, 9030, 9030, 9030, 9157, 9158, 9157, 9158, 9157, 9158, + 9157, 9158, 9157, 9158, 9157, 9158, 9157, 9158, 9157, 9158, 9157, 9158, 9157, 9158, + 8997, 9004, 9005, 9123, 9030, 9030, 9030, 9030, 8997, 9004, 9005, 9123, 9137, 9137, + 9123, 8997, 9004, 9005, 8997, 9004, 9005, 9123, 9123, 0, 0, 0, 0, 64832, 64833, + 64834, 64835, 64836, 64837, 64838, 64839, 64840, 64841, 64842, 64843, 64844, 64845, + 64846, 64847, 8997, 9004, 9004, 9004, 9005, 9123, 9123, 9123, 9123, 9123, 9123, + 9123, 9004, 8997, 8997, 9123, 9123, 9123, 9123, 9123, 9004, 9004, 9123, 9004, 9004, + 8997, 9123, 9123, 9123, 9123, 9004, 9005, 9005, 9123, 9123, 9123, 9123, 8997, 9123, + 9123, 9123, 9123, 9123, 9123, 9005, 9005, 9123, 9123, 9004, 9004, 9004, 8997, 8997, + 9005, 9005, 9123, 9123, 9004, 9004, 9004, 8997, 8997, 9005, 9005, 64912, 64913, + 8997, 9123, 9123, 9004, 9004, 8997, 8997, 8997, 9123, 9123, 9123, 9123, 9005, 8997, + 8997, 9005, 9005, 9123, 9123, 9123, 9004, 9123, 9005, 9004, 9004, 9004, 8997, 9123, + 9004, 8997, 9123, 9123, 9123, 9004, 9123, 9004, 9123, 9123, 8997, 9005, 8997, 9123, + 8997, 8997, 9004, 8997, 8997, 9123, 9004, 9123, 8997, 9123, 9005, 8997, 64968, 64969, + 64970, 64971, 64972, 64973, 64974, 64975, 64976, 64977, 64978, 64979, 64980, 64981, + 64982, 64983, 64984, 64985, 64986, 64987, 64988, 64989, 64990, 64991, 64992, 64993, + 64994, 64995, 64996, 64997, 64998, 64999, 65000, 65001, 65002, 65003, 65004, 65005, + 65006, 65007, 9116, 9116, 9116, 9095, 9004, 9116, 9049, 9116, 9049, 9116, 9116, + 9116, 9159, 0, 65022, 65023, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 109, 109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, + 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 23, 23, 23, 23, 23, 23, 23, 24, + 24, 24, 24, 24, 24, 24, 24, 25, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 23, 25, 23, 23, 23, 23, 23, 23, 25, 23, 25, 25, 23, 23, 25, 25, 23, 23, + 25, 23, 25, 23, 25, 25, 23, 25, 25, 23, 25, 23, 25, 25, 23, 25, 23, 23, 25, 25, + 25, 23, 25, 25, 25, 25, 25, 23, 25, 25, 25, 25, 25, 23, 25, 25, 23, 25, 23, 23, + 23, 25, 23, 23, 23, 23, 0, 0, 23, 23, 23, 23, 25, 25, 23, 25, 25, 25, 25, 23, 25, + 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, + 25, 23, 23, 25, 25, 23, 25, 23, 25, 25, 25, 25, 25, 25, 25, 25, 23, 23, 23, 25, + 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 9123, 8997, 8997, 9123, 9123, 8997, 9004, 9005, 9004, 9004, 9158, + 9157, 8997, 9004, 9157, 9004, 9004, 8997, 9123, 9123, 9004, 9004, 9123, 9123, 9123, + 9158, 9005, 9005, 9123, 9123, 9157, 9123, 9123, 9004, 9004, 9123, 9158, 9123, 9123, + 9123, 9157, 9123, 9158, 9157, 9123, 9123, 9004, 9123, 9123, 9158, 9157, 8997, 8997, + 9123, 9123, 9004, 9004, 8997, 9123, 9158, 9004, 9123, 8997, 9123, 0, 0, 9005, 8997, + 9123, 9123, 9157, 9123, 9123, 9157, 9158, 9157, 9123, 9123, 9158, 9158, 9157, 9158, + 9157, 9158, 9157, 9158, 9157, 9157, 9157, 9158, 9158, 9158, 9158, 9158, 9158, 9158, + 9158, 9158, 9158, 9158, 9004, 9123, 9158, 9158, 9004, 9158, 9123, 9123, 9123, 9004, + 9158, 9158, 9158, 9158, 9158, 9123, 9123, 9123, 9158, 9158, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 9172, 9172, 9116, 8973, 9123, 9070, 9143, 9158, 9116, 9157, 9157, + 521, 8971, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 25, 23, 23, 23, 23, 23, 23, 25, 23, 25, 25, 23, 23, + 25, 25, 23, 23, 25, 23, 25, 23, 25, 25, 23, 25, 25, 23, 25, 23, 25, 25, 23, 25, + 23, 23, 25, 25, 25, 23, 25, 25, 25, 25, 25, 23, 25, 25, 25, 25, 25, 23, 25, 25, + 23, 25, 23, 23, 23, 25, 23, 23, 23, 23, 0, 0, 23, 23, 23, 23, 25, 25, 23, 25, 25, + 25, 25, 23, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, + 25, 25, 25, 25, 25, 23, 23, 25, 25, 23, 25, 23, 25, 25, 25, 25, 25, 25, 25, 25, + 23, 23, 23, 25, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9137, 9030, 9015, 9123, 9116, 9137, 9123, + 0, 521, 8997, 9116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 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, 26, + 26, 26, 26, 26, 26, 0, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8971, 9116, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 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, 26, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9116, 8971, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, + 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9116, + 9116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 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, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9137, 9137, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 26, 0, 0, 0, 0] +- [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, + 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, + 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 546, 561, 650, 569, 564, 608, 614, 891, 892, 631, 64449, 64449, 64449, 64449, + 64449, 64449, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 631, 534, 533, 523, + 523, 791, 792, 795, 796, 889, 890, 887, 888, 881, 882, 879, 880, 883, 884, 885, + 886, 562, 563, 793, 794, 522, 522, 522, 522, 523, 523, 523, 546, 561, 631, 64449, + 564, 569, 614, 608, 534, 791, 792, 795, 796, 889, 890, 920, 918, 911, 1558, 525, + 1562, 1564, 1563, 64449, 917, 7186, 921, 910, 64449, 64449, 64449, 64449, 0, 0, + 0, 0, 0, 64449, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8957, 8958, 8958, 8959, 8959, 8962, + 8962, 8963, 8963, 8967, 8967, 8967, 8967, 8971, 8971, 8973, 8973, 8973, 8973, 8988, + 8988, 8989, 8989, 8989, 8989, 8990, 8990, 8990, 8990, 8997, 8997, 8997, 8997, 9004, + 9004, 9004, 9004, 9005, 9005, 9005, 9005, 9015, 9015, 9016, 9016, 9030, 9030, 9031, + 9031, 9049, 9049, 9049, 9049, 9050, 9050, 9050, 9050, 9060, 9060, 9060, 9060, 9061, + 9061, 9061, 9061, 9066, 9066, 9066, 9066, 9067, 9067, 9067, 9067, 9070, 9070, 9070, + 9070, 9071, 9071, 9071, 9071, 9078, 9078, 9078, 9078, 9090, 9090, 9090, 9090, 9095, + 9095, 9095, 9095, 9116, 9116, 9116, 9116, 9123, 9123, 9123, 9123, 9127, 9127, 9127, + 9127, 9137, 9137, 9137, 9137, 9143, 9143, 9157, 9157, 9158, 9158, 9158, 9158, 9116, + 9116, 9116, 9116, 9116, 9116, 9116, 9116, 64449, 64449, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 79, 0, 78, 0, 0, 0, 0, 52, 0, 78, 0, 0, 0, 0, 80, 0, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 109, + 109, 112, 0, 115, 32, 118, 118, 122, 122, 125, 125, 128, 128, 129, 129, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 22, 22, + 22, 22, 22, 22, 22, 22, 22, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 2, 0, 2, 0, 0, + 0, 0, 2, 0, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, + 22, 22, 22, 22, 2, 2, 22, 22, 4, 4, 4, 4, 4, 4, 4, 15, 15, 15, 2, 15, 15, 15, 15, + 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 2, 15, 15, 15, 15, 2, + 2, 2, 2, 26, 24, 26, 0, 26, 2, 26, 24, 26, 24, 26, 24, 26, 24, 26, 24, 26, 26, 25, + 26, 25, 26, 25, 26, 25, 26, 25, 23, 24, 26, 25, 26, 25, 23, 24, 26, 25, 26, 25, + 23, 24, 26, 25, 23, 24, 26, 25, 23, 24, 26, 25, 23, 24, 26, 25, 23, 24, 26, 25, + 26, 25, 26, 25, 26, 25, 26, 25, 23, 24, 26, 25, 23, 24, 26, 25, 23, 24, 26, 25, + 23, 24, 26, 25, 23, 24, 26, 25, 23, 24, 26, 25, 23, 24, 26, 25, 23, 24, 26, 25, + 23, 24, 26, 25, 23, 24, 26, 25, 23, 24, 26, 25, 23, 24, 26, 25, 23, 24, 26, 25, + 23, 24, 26, 25, 23, 24, 26, 25, 26, 25, 26, 25, 23, 24, 26, 25, 26, 25, 26, 25, + 26, 25, 2, 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, 631, 65050, 65051, 65052, 65053, 65054, 65055, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 631, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65107, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65127, 0, 0, 0, 0, 65132, 65133, 65134, 65135, + 0, 0, 0, 0, 0, 65141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8958, + 8958, 8959, 8959, 8963, 8963, 8971, 8971, 65277, 65278, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, + 32, 32, 32, 32, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 25, 26, 25, 26, 25, 26, 25, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 631, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, + 2, 2, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 64449, 608, 780, 920, 7186, 921, 918, 773, + 791, 792, 911, 1558, 546, 525, 631, 916, 7229, 7230, 7231, 7232, 7233, 7234, 7235, + 7236, 7237, 7238, 569, 564, 1562, 1563, 1564, 614, 910, 7239, 7264, 7290, 7311, + 7338, 7397, 7412, 7448, 7474, 7500, 7525, 7543, 7594, 7609, 7645, 7692, 7713, 7731, + 7793, 7829, 7861, 7907, 7925, 7935, 7947, 7969, 793, 917, 794, 1157, 523, 1154, + 7239, 7264, 7290, 7311, 7338, 7397, 7412, 7448, 7474, 7500, 7525, 7543, 7594, 7609, + 7645, 7692, 7713, 7731, 7793, 7829, 7861, 7907, 7925, 7935, 7947, 7969, 795, 1566, + 796, 1568, 813, 814, 650, 883, 884, 561, 545, 15754, 15706, 15707, 15708, 15710, + 15711, 15742, 15743, 15745, 15724, 7182, 15706, 15707, 15708, 15710, 15711, 15712, + 15713, 15714, 15715, 15716, 15717, 15718, 15719, 15720, 15721, 15722, 15723, 15724, + 15725, 15726, 15727, 15728, 15729, 15730, 15731, 15732, 15733, 15734, 15735, 15736, + 15737, 15738, 15739, 15740, 15741, 15742, 15743, 15745, 15746, 15747, 15748, 15749, + 15750, 15751, 15755, 0, 0, 15474, 15349, 15350, 15571, 15351, 15573, 15574, 15352, + 15353, 15354, 15577, 15578, 15579, 15580, 15581, 15582, 15375, 15355, 15356, 15357, + 15382, 15358, 15359, 15360, 15361, 15362, 15363, 15364, 15365, 15366, 15367, 64449, + 64449, 64449, 15475, 15476, 15477, 15478, 15479, 15480, 64449, 64449, 15481, 15482, + 15483, 15484, 15485, 15486, 64449, 64449, 15487, 15488, 15489, 15490, 15491, 15492, + 64449, 64449, 15493, 15494, 15495, 64449, 64449, 64449, 7185, 7187, 1565, 1158, + 1567, 7188, 7207, 64449, 2074, 1436, 1438, 1437, 1439, 2232, 2275, 64449, 64449, + 64449, 64449, 64449, 64449, 64449, 64449, 64449, 64449, 0, 0, 0, 6805, 65533, 64449, + 64449, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 55, + 56, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 32, 32, 32, 32, 2, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 18, 18, 18, 18, 18, 18, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 2, 2, 2, 18, 18, 18, 18, 18, 18, 2, 2, 18, 18, 18, 18, 18, 18, 2, 2, 18, + 18, 18, 18, 18, 18, 2, 2, 18, 18, 18, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 2, 18, 18, 18, + 18, 18, 18, 18, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 2, 2, 2, 65280, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65471, + 65472, 65473, 0, 0, 0, 0, 0, 0, 65480, 65481, 0, 0, 0, 0, 0, 0, 65488, 65489, 0, + 0, 0, 0, 0, 0, 65496, 65497, 0, 0, 0, 65501, 65502, 65503, 0, 0, 0, 0, 0, 0, 0, + 65511, 0, 0, 0, 0, 0, 0, 0, 65519, 65520, 65521, 65522, 65523, 65524, 65525, 65526, + 65527, 65528, 0, 0, 0, 0, 0, 65534, 65535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 17895, 17896, 17897, 17898, 17899, 17900, + 17901, 17902, 17903, 17904, 17905, 17906, 64450, 17907, 17908, 17909, 17910, 17911, + 17912, 17913, 17914, 17915, 17916, 17917, 17918, 17919, 17920, 17921, 17922, 17923, + 17924, 17925, 17926, 17927, 17928, 17929, 17930, 17931, 17932, 64450, 17933, 17934, + 17935, 17936, 17937, 17938, 17939, 17940, 17941, 17942, 17943, 17944, 17945, 17946, + 17947, 17948, 17949, 17950, 17951, 64450, 17952, 17953, 64450, 17954, 17955, 17956, + 17957, 17958, 17959, 17960, 17961, 17962, 17963, 17964, 17965, 17966, 17967, 17968, + 64450, 64450, 17969, 17970, 17971, 17972, 17973, 17974, 17975, 17976, 17977, 17978, + 17979, 17980, 17981, 17982, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 17983, 17984, 17985, 17986, 17987, 17988, 17989, 17990, 17991, 17992, + 17993, 17994, 17995, 17996, 17997, 17998, 17999, 18000, 18001, 18002, 18003, 18004, + 18005, 18006, 18007, 18008, 18009, 18010, 18011, 18012, 18013, 18014, 18015, 18016, + 18017, 18018, 18019, 18020, 18021, 18022, 18023, 18024, 18025, 18026, 18027, 18028, + 18029, 18030, 18031, 18032, 18033, 18034, 18035, 18036, 18037, 18038, 18039, 18040, + 18041, 18042, 18043, 18044, 18045, 18046, 18047, 18048, 18049, 18050, 18051, 18052, + 18053, 18054, 18055, 18056, 18057, 18058, 18059, 18060, 18061, 18062, 18063, 18064, + 18065, 18066, 18067, 18068, 18069, 18070, 18071, 18072, 18073, 18074, 18075, 18076, + 18077, 18078, 18079, 18080, 18081, 18082, 18083, 18084, 18085, 18086, 18087, 18088, + 18089, 18090, 18091, 18092, 18093, 18094, 18095, 18096, 18097, 18098, 18099, 18100, + 18101, 18102, 18103, 18104, 18105, 64450, 64450, 64450, 64450, 64450, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32780, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32807, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32827, 0, 0, 32830, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 32846, 32847, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32862, 32863, + 32864, 32865, 32866, 32867, 32868, 32869, 32870, 32871, 32872, 32873, 32874, 32875, + 32876, 32877, 32878, 32879, 32880, 32881, 32882, 32883, 32884, 32885, 32886, 32887, + 32888, 32889, 32890, 32891, 32892, 32893, 32894, 32895, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 33019, 33020, 33021, 33022, 33023, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, + 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 762, 763, 764, 64450, 64450, 64450, 64450, + 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 6889, 6890, 6891, 6892, 6893, + 6894, 6895, 6896, 6897, 6898, 6899, 6900, 6901, 6902, 6903, 6904, 6905, 6906, 6907, + 6908, 6909, 6910, 6911, 6912, 6913, 6914, 6915, 6916, 6917, 6918, 6919, 6920, 6921, + 6922, 6923, 6924, 64450, 64450, 64450, 3960, 3961, 3962, 3963, 3964, 3965, 3966, + 3967, 3968, 6925, 6926, 7230, 7234, 6927, 6928, 6929, 6930, 7234, 6931, 6932, 6933, + 6934, 6935, 6936, 7234, 6937, 6938, 6939, 6940, 6941, 6942, 6943, 6944, 7230, 7230, + 7230, 7231, 7231, 7231, 7231, 7234, 6945, 6946, 6947, 6948, 6949, 6950, 6951, 6952, + 6953, 6954, 6955, 6956, 6957, 6958, 6959, 6960, 6961, 6962, 6963, 7234, 6964, 6965, + 6966, 6967, 6968, 3969, 3970, 3971, 3972, 3973, 3974, 3975, 3976, 3977, 3978, 3979, + 3980, 3981, 3982, 3983, 3984, 3985, 7229, 6969, 3986, 3987, 3988, 64450, 3989, 3990, + 3991, 3992, 3993, 3994, 3995, 3996, 3997, 3998, 3999, 4000, 64450, 64450, 64450, + 64450, 4001, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 4002, 4003, 4004, 4005, 4006, 4007, 4008, 4009, 4010, 4011, 4012, 4013, 4014, + 4015, 4016, 4017, 4018, 4019, 4020, 4021, 4022, 4023, 4024, 4025, 4026, 4027, 4028, + 4029, 4030, 4031, 4032, 4033, 4034, 4035, 4036, 4037, 4038, 4039, 4040, 4041, 4042, + 4043, 4044, 4045, 4046, 0, 64450, 64450, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 271, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 33027, 33028, + 33029, 33030, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33076, 33077, + 33078, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 33167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33180, 33181, + 33182, 33183, 0, 33185, 33186, 33187, 33188, 33189, 33190, 33191, 33192, 33193, + 33194, 33195, 33196, 33197, 33198, 33199, 33200, 33201, 33202, 33203, 33204, 33205, + 33206, 33207, 33208, 33209, 33210, 33211, 33212, 33213, 33214, 33215, 33216, 33217, + 33218, 33219, 33220, 33221, 33222, 33223, 33224, 33225, 33226, 33227, 33228, 33229, + 33230, 33231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33278, 33279, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 17327, 17328, 17329, 17330, 17331, 17332, 17333, 17334, 17335, 17336, + 17337, 17338, 17339, 17340, 17341, 17342, 17343, 17344, 17345, 17346, 17347, 17348, + 17349, 17350, 17351, 17352, 17353, 17354, 17355, 64450, 64450, 64450, 17356, 17357, + 17358, 17359, 17360, 17361, 17362, 17363, 17364, 17365, 17366, 17367, 17368, 17369, + 17370, 17371, 17372, 17373, 17374, 17375, 17376, 17377, 17378, 17379, 17380, 17381, + 17382, 17383, 17384, 17385, 17386, 17387, 17388, 17389, 17390, 17391, 17392, 17393, + 17394, 17395, 17396, 17397, 17398, 17399, 17400, 17401, 17402, 17403, 17404, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 0, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 6970, 6971, + 6972, 6973, 6974, 6975, 6976, 6977, 6978, 6979, 6980, 6981, 6982, 6983, 6984, 6985, + 6986, 6987, 64450, 64450, 64450, 64450, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 33280, 33281, 33282, + 33283, 33284, 33285, 33286, 33287, 33288, 33289, 33290, 33291, 33292, 33293, 33294, + 33295, 33296, 33297, 33298, 33299, 33300, 33301, 33302, 33303, 33304, 33305, 33306, + 33307, 33308, 33309, 33310, 33311, 33312, 33313, 33314, 33315, 33316, 33317, 33318, + 33319, 33320, 33321, 33322, 33323, 33324, 33325, 33326, 33327, 33328, 33329, 33330, + 33331, 33332, 33333, 33334, 33335, 33336, 33337, 33338, 33339, 33340, 33341, 33342, + 33343, 33344, 33345, 33346, 33347, 33348, 33349, 33350, 33351, 33352, 33353, 33354, + 33355, 33356, 33357, 33358, 33359, 33360, 33361, 33362, 33363, 33364, 33365, 33366, + 33367, 33368, 33369, 33370, 33371, 33372, 33373, 33374, 33375, 33376, 33377, 33378, + 33379, 33380, 33381, 33382, 33383, 33384, 33385, 33386, 33387, 33388, 33389, 33390, + 33391, 33392, 33393, 33394, 33395, 33396, 33397, 33398, 33399, 33400, 33401, 33402, + 33403, 33404, 33405, 33406, 33407, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33437, 33438, 33439, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33489, 33490, 33491, 33492, 33493, + 33494, 33495, 33496, 33497, 33498, 33499, 33500, 33501, 33502, 33503, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33532, 33533, + 33534, 33535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 17431, 17432, 17433, 17434, 17435, 17436, + 17437, 17438, 17439, 17440, 17441, 17442, 17443, 17444, 17445, 17447, 17448, 17449, + 17450, 17451, 17452, 17453, 17454, 17455, 17456, 17457, 17458, 17459, 17460, 17461, + 17462, 17446, 7230, 7234, 6883, 6884, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 17463, 17464, 17465, 17466, 17467, 17468, + 17469, 17470, 17471, 17472, 17473, 17474, 17475, 17476, 17477, 17478, 17479, 17480, + 17481, 17482, 17483, 17484, 17485, 17486, 17487, 17488, 17489, 64450, 64450, 64450, + 64450, 64450, 8724, 8725, 8726, 8727, 8728, 8729, 8730, 8731, 8732, 8733, 8734, + 8735, 8736, 8737, 8738, 8739, 8740, 8741, 8742, 8743, 8744, 8745, 8746, 8747, 8748, + 8749, 8750, 8751, 8752, 8753, 8754, 8755, 8756, 8757, 8758, 8759, 8760, 8761, 8724, + 8727, 8731, 8737, 8741, 64450, 64450, 64450, 64450, 64450, 18795, 18796, 18797, + 18798, 18799, 18800, 18801, 18802, 18803, 18804, 18805, 18806, 18807, 18808, 18809, + 18810, 18811, 18812, 18813, 18814, 18815, 18816, 18817, 18818, 18819, 18820, 18821, + 18822, 18823, 18824, 64450, 765, 18825, 18826, 18827, 18828, 18829, 18830, 18831, + 18832, 18833, 18834, 18835, 18836, 18837, 18838, 18839, 18840, 18841, 18842, 18843, + 18844, 18845, 18846, 18847, 18848, 18849, 18850, 18851, 18852, 18853, 18854, 18855, + 18856, 18857, 18858, 18859, 18860, 64450, 64450, 64450, 64450, 18861, 18862, 18863, + 18864, 18865, 18866, 18867, 18868, 766, 7230, 7231, 6988, 6989, 6990, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 33572, + 33573, 33574, 33575, 33576, 33577, 33578, 33579, 33580, 33581, 33582, 33583, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33611, + 33612, 33613, 33614, 33615, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33659, + 33660, 33661, 33662, 33663, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33694, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33732, 33733, + 33734, 33735, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33750, 33751, 33752, 33753, + 33754, 33755, 33756, 33757, 33758, 33759, 33760, 33761, 33762, 33763, 33764, 33765, + 33766, 33767, 33768, 33769, 33770, 33771, 33772, 33773, 33774, 33775, 33776, 33777, + 33778, 33779, 33780, 33781, 33782, 33783, 33784, 33785, 33786, 33787, 33788, 33789, + 33790, 33791, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 17490, 17491, 17492, 17493, 17494, 17495, + 17496, 17497, 17498, 17499, 17500, 17501, 17502, 17503, 17504, 17505, 17506, 17507, + 17508, 17509, 17510, 17511, 17512, 17513, 17514, 17515, 17516, 17517, 17518, 17519, + 17520, 17521, 17522, 17523, 17524, 17525, 17526, 17527, 17528, 17529, 17490, 17491, + 17492, 17493, 17494, 17495, 17496, 17497, 17498, 17499, 17500, 17501, 17502, 17503, + 17504, 17505, 17506, 17507, 17508, 17509, 17510, 17511, 17512, 17513, 17514, 17515, + 17516, 17517, 17518, 17519, 17520, 17521, 17522, 17523, 17524, 17525, 17526, 17527, + 17528, 17529, 17530, 17531, 17532, 17533, 17534, 17535, 17536, 17537, 17538, 17539, + 17540, 17541, 17542, 17543, 17544, 17545, 17546, 17547, 17548, 17549, 17550, 17551, + 17552, 17553, 17554, 17555, 17556, 17557, 17558, 17559, 17560, 17561, 17562, 17563, + 17564, 17565, 17566, 17567, 17568, 17569, 17570, 17571, 17572, 17573, 17574, 17575, + 17576, 17577, 17717, 17718, 17719, 17720, 17721, 17722, 17723, 17724, 17725, 17726, + 17727, 17728, 17729, 17730, 17731, 17732, 17733, 17734, 17735, 17736, 17737, 17738, + 17739, 17740, 17741, 17742, 17743, 17744, 17745, 17746, 64450, 64450, 7229, 7230, + 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 64450, 64450, 64450, 64450, 64450, + 64450, 13269, 13270, 13271, 13272, 13273, 13274, 13275, 13276, 13277, 13278, 13279, + 13280, 13281, 13282, 13283, 13284, 13285, 13286, 13287, 13288, 13289, 13290, 13291, + 13292, 13293, 13294, 13295, 13296, 13297, 13298, 13299, 13300, 13301, 13302, 13303, + 13304, 64450, 64450, 64450, 64450, 13269, 13270, 13271, 13272, 13273, 13274, 13275, + 13276, 13277, 13278, 13279, 13280, 13281, 13282, 13283, 13284, 13285, 13286, 13287, + 13288, 13289, 13290, 13291, 13292, 13293, 13294, 13295, 13296, 13297, 13298, 13299, + 13300, 13301, 13302, 13303, 13304, 64450, 64450, 64450, 64450, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 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, 33950, 33951, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33962, 33963, 33964, 33965, 33966, 33967, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 34004, 34005, 34006, 34007, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34044, 34045, + 34046, 34047, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 17747, 17748, 17749, 17750, 17751, 17752, + 17753, 17754, 17755, 17756, 17757, 17758, 17759, 17760, 17761, 17762, 17763, 17764, + 17765, 17766, 17767, 17768, 17769, 17770, 17771, 17772, 17773, 17774, 17775, 17776, + 17777, 17778, 17779, 17780, 17781, 17782, 17783, 17784, 17785, 17786, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 17787, 17788, 17789, 17790, 17791, 17792, + 17793, 17794, 17795, 17796, 17797, 17798, 17799, 17800, 17801, 17802, 17803, 17804, + 17805, 17806, 17807, 17808, 17809, 17810, 17811, 17812, 17813, 17814, 17815, 17816, + 17817, 17818, 17819, 17820, 17821, 17822, 17823, 17824, 17825, 17826, 17827, 17828, + 17829, 17830, 17831, 17832, 17833, 17834, 17835, 17836, 17837, 17838, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 1074, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 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, 34088, 34089, 34090, 34091, 34092, + 34093, 34094, 34095, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 34148, 34149, 34150, 34151, 34152, 34153, 34154, 34155, 34156, 34157, + 34158, 0, 34160, 34161, 34162, 34163, 34164, 34165, 34166, 34167, 34168, 34169, + 34170, 34171, 34172, 34173, 34174, 34175, 34176, 34177, 34178, 34179, 34180, 34181, + 34182, 34183, 34184, 34185, 34186, 34187, 34188, 34189, 34190, 34191, 34192, 34193, + 34194, 34195, 34196, 34197, 34198, 34199, 34200, 34201, 34202, 34203, 34204, 34205, + 34206, 34207, 34208, 34209, 34210, 34211, 34212, 34213, 34214, 34215, 34216, 34217, + 34218, 34219, 34220, 34221, 34222, 34223, 34224, 34225, 34226, 34227, 34228, 34229, + 34230, 34231, 34232, 34233, 34234, 34235, 34236, 34237, 34238, 34239, 34240, 34241, + 34242, 34243, 34244, 34245, 34246, 34247, 34248, 34249, 34250, 34251, 34252, 34253, + 34254, 34255, 34256, 34257, 34258, 34259, 34260, 34261, 34262, 34263, 34264, 34265, + 34266, 34267, 34268, 34269, 34270, 34271, 34272, 34273, 34274, 34275, 34276, 34277, + 34278, 34279, 34280, 34281, 34282, 34283, 34284, 34285, 34286, 34287, 34288, 34289, + 34290, 34291, 34292, 34293, 34294, 34295, 34296, 34297, 34298, 34299, 34300, 34301, + 34302, 34303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 18106, 18107, 18108, 18109, 18110, 18111, + 18112, 18113, 18114, 18115, 18116, 18117, 18118, 18119, 18120, 18121, 18122, 18123, + 18124, 18125, 18126, 18127, 18128, 18129, 18130, 18131, 18132, 18133, 18134, 18135, + 18136, 18137, 18138, 18139, 18140, 18141, 18142, 18143, 18144, 18145, 18146, 18147, + 18148, 18149, 18150, 18151, 18152, 18153, 18154, 18155, 18156, 18157, 18158, 18159, + 18160, 18161, 18162, 18163, 18164, 18165, 18166, 18167, 18168, 18169, 18170, 18171, + 18172, 18173, 18174, 18175, 18176, 18177, 18178, 18179, 18180, 18181, 18182, 18183, + 18184, 18185, 18186, 18187, 18188, 18189, 18190, 18191, 18192, 18193, 18194, 18195, + 18196, 18197, 18198, 18199, 18200, 18201, 18202, 18203, 18204, 18205, 18206, 18207, + 18208, 18209, 18210, 18211, 18212, 18213, 18214, 18215, 18216, 18217, 18218, 18219, + 18220, 18221, 18222, 18223, 18224, 18225, 18226, 18227, 18228, 18229, 18230, 18231, + 18232, 18233, 18234, 18235, 18236, 18237, 18238, 18239, 18240, 18241, 18242, 18243, + 18244, 18245, 18246, 18247, 18248, 18249, 18250, 18251, 18252, 18253, 18254, 18255, + 18256, 18257, 18258, 18259, 18260, 18261, 18262, 18263, 18264, 18265, 18266, 18267, + 18268, 18269, 18270, 18271, 18272, 18273, 18274, 18275, 18276, 18277, 18278, 18279, + 18280, 18281, 18282, 18283, 18284, 18285, 18286, 18287, 18288, 18289, 18290, 18291, + 18292, 18293, 18294, 18295, 18296, 18297, 18298, 18299, 18300, 18301, 18302, 18303, + 18304, 18305, 18306, 18307, 18308, 18309, 18310, 18311, 18312, 18313, 18314, 18315, + 18316, 18317, 18318, 18319, 18320, 18321, 18322, 18323, 18324, 18325, 18326, 18327, + 18328, 18329, 18330, 18331, 18332, 18333, 18334, 18335, 18336, 18337, 18338, 18339, + 18340, 18341, 18342, 18343, 18344, 18345, 18346, 18347, 18348, 18349, 18350, 18351, + 18352, 18353, 18354, 18355, 18356, 18357, 18358, 18359, 18360, 18361, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2] +- [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 18362, 18363, 18364, 18365, 18366, 18367, + 18368, 18369, 18370, 18371, 18372, 18373, 18374, 18375, 18376, 18377, 18378, 18379, + 18380, 18381, 18382, 18383, 18384, 18385, 18386, 18387, 18388, 18389, 18390, 18391, + 18392, 18393, 18394, 18395, 18396, 18397, 18398, 18399, 18400, 18401, 18402, 18403, + 18404, 18405, 18406, 18407, 18408, 18409, 18410, 18411, 18412, 18413, 18414, 18415, + 18416, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 18417, 18418, + 18419, 18420, 18421, 18422, 18423, 18424, 18425, 18426, 18427, 18428, 18429, 18430, + 18431, 18432, 18433, 18434, 18435, 18436, 18437, 18438, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 18439, 18440, 18441, 18442, 18443, 18444, + 18445, 18446, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 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, 34615, 34616, 34617, 34618, 34619, 34620, 34621, 34622, 34623, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34646, 34647, 34648, + 34649, 34650, 34651, 34652, 34653, 34654, 34655, 0, 0, 0, 0, 0, 0, 0, 0, 34664, + 34665, 34666, 34667, 34668, 34669, 34670, 34671, 34672, 34673, 34674, 34675, 34676, + 34677, 34678, 34679, 34680, 34681, 34682, 34683, 34684, 34685, 34686, 34687, 34688, + 34689, 34690, 34691, 34692, 34693, 34694, 34695, 34696, 34697, 34698, 34699, 34700, + 34701, 34702, 34703, 34704, 34705, 34706, 34707, 34708, 34709, 34710, 34711, 34712, + 34713, 34714, 34715, 34716, 34717, 34718, 34719, 34720, 34721, 34722, 34723, 34724, + 34725, 34726, 34727, 34728, 34729, 34730, 34731, 34732, 34733, 34734, 34735, 34736, + 34737, 34738, 34739, 34740, 34741, 34742, 34743, 34744, 34745, 34746, 34747, 34748, + 34749, 34750, 34751, 34752, 34753, 34754, 34755, 34756, 34757, 34758, 34759, 34760, + 34761, 34762, 34763, 34764, 34765, 34766, 34767, 34768, 34769, 34770, 34771, 34772, + 34773, 34774, 34775, 34776, 34777, 34778, 34779, 34780, 34781, 34782, 34783, 34784, + 34785, 34786, 34787, 34788, 34789, 34790, 34791, 34792, 34793, 34794, 34795, 34796, + 34797, 34798, 34799, 34800, 34801, 34802, 34803, 34804, 34805, 34806, 34807, 34808, + 34809, 34810, 34811, 34812, 34813, 34814, 34815, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 1, 1, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, + 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 18447, 18448, 18449, 18450, 18451, 18452, + 64450, 64450, 18453, 64450, 18454, 18455, 18456, 18457, 18458, 18459, 18460, 18461, + 18462, 18463, 18464, 18465, 18466, 18467, 18468, 18469, 18470, 18471, 18472, 18473, + 18474, 18475, 18476, 18477, 18478, 18479, 18480, 18481, 18482, 18483, 18484, 18485, + 18486, 18487, 18488, 18489, 18490, 18491, 18492, 18493, 18494, 18495, 18496, 18497, + 64450, 18498, 18499, 64450, 64450, 64450, 18500, 64450, 64450, 18501, 18678, 18679, + 18680, 18681, 18682, 18683, 18684, 18685, 18686, 18687, 18688, 18689, 18690, 18691, + 18692, 18693, 18694, 18695, 18696, 18697, 18698, 18699, 64450, 729, 7230, 7231, + 7232, 7006, 7007, 7008, 7009, 7010, 18613, 18614, 18615, 18616, 18617, 18618, 18619, + 18620, 18621, 18622, 18623, 18624, 18625, 18626, 18626, 18627, 18628, 18629, 18630, + 18631, 18632, 18633, 18634, 4047, 4048, 7230, 7231, 7232, 7233, 7234, 6991, 6992, + 18635, 18635, 18636, 18636, 18637, 18638, 18639, 18639, 18640, 18641, 18642, 18643, + 18644, 18644, 18645, 18645, 18646, 18646, 18647, 18647, 18648, 18648, 18649, 18650, + 18651, 18652, 18653, 18654, 18655, 18655, 18656, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 7230, 7231, 7232, 7233, 7233, 7234, 6993, 6994, 6995, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 18657, + 18658, 18659, 18660, 18661, 18662, 18663, 18664, 18665, 18666, 18667, 18668, 18669, + 18670, 18671, 18672, 18673, 18674, 18675, 64450, 18676, 18677, 64450, 64450, 64450, + 64450, 64450, 7230, 7234, 6996, 6997, 6998, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 25, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 25, 2, 25, 2, 2, 2, 25, 2, 2, 2, 2, 2, 25, 2, 25, 2, 25, 2, 25, 2, 25, 2, + 2, 2, 2, 2, 2, 2, 25, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, + 0, 0, 0, 0, 34822, 34823, 0, 34825, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 34870, 0, 0, 34873, 34874, 34875, 0, 34877, 34878, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34902, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 34975, 34976, 34977, 34978, 34979, 34980, 34981, 34982, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 34992, 34993, 34994, 34995, 34996, 34997, 34998, 34999, + 35000, 35001, 35002, 35003, 35004, 35005, 35006, 35007, 35008, 35009, 35010, 35011, + 35012, 35013, 35014, 35015, 35016, 35017, 35018, 35019, 35020, 35021, 35022, 35023, + 35024, 35025, 35026, 35027, 35028, 35029, 35030, 35031, 35032, 35033, 35034, 35035, + 35036, 35037, 35038, 35039, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 35059, 0, 0, 35062, 35063, 35064, 35065, 35066, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 8909, 8910, 8911, 8912, 8913, 8914, 8915, + 8916, 8917, 8918, 8919, 8920, 8921, 8922, 8923, 8924, 8925, 8926, 8927, 8928, 8929, + 8930, 7230, 7003, 7004, 7005, 7231, 7232, 64450, 64450, 64450, 767, 17405, 17406, + 17407, 17408, 17409, 17410, 17411, 17412, 17413, 17414, 17415, 17416, 17417, 17418, + 17419, 17420, 17421, 17422, 17423, 17424, 17425, 17426, 17427, 17428, 17429, 17430, + 64450, 64450, 64450, 64450, 64450, 761, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 21058, 21059, + 21060, 21061, 21062, 21063, 21064, 21064, 21065, 21066, 21067, 21067, 21068, 21068, + 21069, 21069, 21070, 21071, 21072, 21073, 21073, 21074, 21075, 21076, 21077, 21077, + 21078, 21078, 21079, 21080, 21083, 21084, 21058, 21059, 21060, 21061, 21062, 21063, + 21064, 21065, 21066, 21067, 21068, 21069, 21070, 21071, 21072, 21073, 21073, 21074, + 21075, 21076, 21077, 21078, 21079, 21080, 64450, 64450, 64450, 64450, 7133, 7122, + 21081, 21082, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7079, 7080, + 7081, 7082, 7083, 7084, 7085, 64450, 64450, 7086, 7087, 7088, 7089, 7090, 7091, + 7092, 7093, 7094, 7095, 7096, 7097, 7098, 7099, 7100, 7101, 7102, 7103, 7104, 7105, + 7106, 7107, 7108, 7109, 7110, 7111, 7112, 7113, 7114, 7115, 7116, 7117, 7118, 7119, + 7120, 7121, 7123, 7124, 7125, 7126, 7127, 7128, 7129, 7130, 7131, 7132, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 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, 35100, 35101, 35102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35130, 35131, 35132, 35133, 35134, 0, 35136, + 35137, 35138, 35139, 35140, 35141, 35142, 35143, 35144, 35145, 35146, 35147, 35148, + 35149, 35150, 35151, 35152, 35153, 35154, 35155, 35156, 35157, 35158, 35159, 35160, + 35161, 35162, 35163, 35164, 35165, 35166, 35167, 35168, 35169, 35170, 35171, 35172, + 35173, 35174, 35175, 35176, 35177, 35178, 35179, 35180, 35181, 35182, 35183, 35184, + 35185, 35186, 35187, 35188, 35189, 35190, 35191, 35192, 35193, 35194, 35195, 35196, + 35197, 35198, 35199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 35256, 35257, 35258, 35259, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35280, 35281, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 272, 272, 272, 272, 272, 272, 272, 273, 272, 272, 272, 273, 272, 273, 272, 273, + 272, 272, 272, 273, 274, 272, 272, 272, 272, 273, 272, 273, 272, 272, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 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, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, + 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 11533, 11534, 11535, 11536, 64450, 11537, + 11538, 64450, 64450, 64450, 64450, 64450, 11539, 0, 0, 0, 11540, 11541, 11542, 11543, + 64450, 11544, 11545, 11546, 64450, 11547, 11548, 11549, 11550, 11551, 11552, 11553, + 11554, 11555, 11556, 11557, 11558, 11559, 11560, 11561, 11562, 11563, 11564, 11565, + 11566, 11567, 11568, 11569, 11570, 11571, 11572, 11573, 64450, 64450, 64450, 64450, + 0, 0, 0, 64450, 64450, 64450, 64450, 11574, 7230, 7231, 7232, 7233, 7038, 7039, + 7040, 7041, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 1080, 1081, + 1082, 1083, 1084, 1085, 682, 683, 1086, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 18502, 18503, 18504, 18505, 18506, 18507, 18508, 18509, 18510, 18511, 18512, + 18513, 18514, 18515, 18516, 18517, 18518, 18519, 18520, 18521, 18522, 18523, 18524, + 18525, 18526, 18527, 18528, 18529, 18530, 7230, 6999, 7000, 18531, 18532, 18533, + 18534, 18535, 18536, 18537, 18538, 18539, 18540, 18541, 18542, 18543, 18544, 18545, + 18546, 18547, 18548, 18549, 18550, 18551, 18552, 18553, 18554, 18555, 18556, 18557, + 18558, 18559, 7230, 7001, 7002, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 18759, 18760, 18761, 18762, 18763, 18764, 18765, 18766, 18766, 18767, 18768, + 18769, 18770, 18771, 18772, 18773, 18774, 18775, 18776, 18777, 18778, 18779, 18780, + 18781, 18782, 18783, 18784, 18785, 18786, 18787, 18788, 18789, 18790, 18791, 18792, + 18793, 18794, 0, 0, 64450, 64450, 64450, 64450, 7230, 7234, 7011, 7012, 7013, 1091, + 1092, 1093, 1094, 1095, 1096, 1097, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 52, 196, 197, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 204, 205, 206, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 51, 52, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 35332, 0, 0, 35335, 35336, 35337, + 35338, 35339, 0, 0, 0, 0, 0, 0, 0, 0, 35348, 0, 0, 0, 35352, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35380, 35381, 35382, + 35383, 0, 0, 0, 35387, 35388, 35389, 35390, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35400, 35401, + 35402, 35403, 35404, 35405, 35406, 35407, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35417, 35418, + 35419, 35420, 35421, 35422, 35423, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35488, 35489, + 35490, 35491, 35492, 35493, 35494, 35495, 35496, 35497, 35498, 35499, 35500, 35501, + 35502, 35503, 35504, 35505, 35506, 35507, 35508, 35509, 35510, 35511, 35512, 35513, + 35514, 35515, 35516, 35517, 35518, 35519, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35559, + 35560, 35561, 35562, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35575, 35576, 35577, 35578, + 35579, 35580, 35581, 35582, 35583, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, + 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 18560, 18561, 18562, 18563, 18564, 18565, + 18566, 18567, 18568, 18569, 18570, 18571, 18572, 18573, 18574, 18575, 18576, 18577, + 18578, 18579, 18580, 18581, 18582, 18583, 18584, 18585, 18586, 18587, 18588, 18589, + 18590, 18591, 18592, 18593, 18594, 18595, 18596, 18597, 18598, 18599, 18600, 18601, + 18602, 18603, 18604, 18605, 18605, 18606, 18607, 18608, 18609, 18610, 18611, 18612, + 64450, 64450, 64450, 1090, 730, 731, 732, 733, 734, 735, 18700, 18701, 18702, 18703, + 18704, 18705, 18706, 18707, 18708, 18709, 18710, 18711, 18712, 18713, 18714, 18715, + 18716, 18717, 18718, 18719, 18720, 18721, 64450, 64450, 7230, 7231, 7232, 7233, + 7014, 7015, 7016, 7017, 18722, 18723, 18724, 18725, 18726, 18727, 18728, 18729, + 18730, 18731, 18732, 18733, 18734, 18735, 18736, 18737, 18738, 18739, 18740, 64450, + 64450, 64450, 64450, 64450, 7230, 7231, 7232, 7233, 7018, 7019, 7020, 7021, 18741, + 18742, 18743, 18744, 18745, 18746, 18747, 18748, 18749, 18750, 18751, 18752, 18753, + 18754, 18755, 18756, 18757, 18758, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 1098, 1099, 1100, 1101, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 7230, 7231, 7232, 7233, 7022, 7023, 7024, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 35638, 35639, 35640, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 35670, 35671, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 35699, 35700, 35701, 35702, 35703, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35730, 35731, 35732, 35733, + 35734, 35735, 35736, 0, 0, 0, 0, 35741, 35742, 35743, 35744, 35745, 35746, 35747, + 35748, 35749, 35750, 35751, 35752, 0, 0, 0, 0, 0, 0, 0, 35760, 35761, 35762, 35763, + 35764, 35765, 35766, 35767, 35768, 35769, 35770, 35771, 35772, 35773, 35774, 35775, + 35776, 35777, 35778, 35779, 35780, 35781, 35782, 35783, 35784, 35785, 35786, 35787, + 35788, 35789, 35790, 35791, 35792, 35793, 35794, 35795, 35796, 35797, 35798, 35799, + 35800, 35801, 35802, 35803, 35804, 35805, 35806, 35807, 35808, 35809, 35810, 35811, + 35812, 35813, 35814, 35815, 35816, 35817, 35818, 35819, 35820, 35821, 35822, 35823, + 35824, 35825, 35826, 35827, 35828, 35829, 35830, 35831, 35832, 35833, 35834, 35835, + 35836, 35837, 35838, 35839, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 2, 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 1, + 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 1, 1, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, + 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, 1, + 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 2, 1, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, + 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 14125, 14125, 14126, 14127, 14127, 14128, + 14129, 14130, 14130, 14131, 14131, 14132, 14132, 14133, 14133, 14134, 14134, 14135, + 14135, 14136, 14137, 14137, 14138, 14138, 14139, 14139, 14140, 14140, 14141, 14141, + 14142, 14142, 14143, 14144, 14145, 14146, 14147, 14147, 14148, 14148, 14149, 14149, + 14150, 14150, 14151, 14152, 14152, 14153, 14154, 14155, 14156, 14156, 14157, 14157, + 14158, 14158, 14159, 14159, 14160, 14160, 14161, 14162, 14163, 14164, 14164, 14165, + 14165, 14166, 14166, 14167, 14167, 14168, 14169, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 14084, 14084, 14085, 14086, 14087, 14088, 14089, 14090, 14091, 14092, + 14092, 14092, 14093, 14094, 14095, 14096, 14097, 14097, 14098, 14099, 14100, 14101, + 14102, 14103, 14104, 14105, 14106, 14107, 14107, 14108, 14108, 14108, 14109, 14110, + 14111, 14111, 14112, 14113, 14114, 14115, 14116, 14117, 14118, 14118, 14119, 14119, + 14120, 14121, 14122, 14123, 14124, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 14084, 14084, 14085, 14086, 14087, 14088, + 14089, 14090, 14091, 14092, 14092, 14092, 14093, 14094, 14095, 14096, 14097, 14097, + 14098, 14099, 14100, 14101, 14102, 14103, 14104, 14105, 14106, 14107, 14107, 14108, + 14108, 14108, 14109, 14110, 14111, 14111, 14112, 14113, 14114, 14115, 14116, 14117, + 14118, 14118, 14119, 14119, 14120, 14121, 14122, 14123, 14124, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 7230, 7234, 6885, 6886, 6887, 6888, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 4, 2, 2, 4, 2, 2, 2, 4, 2, 4, + 2, 4, 2, 4, 2, 4, 2, 4, 2, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 4, + 2, 4, 2, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 2, 2, 2, 4, + 2, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 8, 10, 8, 8, 8, 8, 8, 8, 8, 8, 10, 10, 8, 8, 8, 8, 8, + 10, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 10, 8, 10, 10, 8, 8, 8, 10, 8, 8, 8, 8, 8, 8, + 8, 10, 8, 10, 8, 8, 8, 8, 8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, + 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, + 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 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, 35913, + 35914, 35915, 35916, 35917, 35918, 35919, 35920, 35921, 35922, 35923, 35924, 35925, + 35926, 35927, 35928, 35929, 35930, 35931, 35932, 35933, 35934, 35935, 35936, 35937, + 35938, 35939, 35940, 35941, 35942, 35943, 35944, 35945, 35946, 35947, 35948, 35949, + 35950, 35951, 35952, 35953, 35954, 35955, 35956, 35957, 35958, 35959, 35960, 35961, + 35962, 35963, 35964, 35965, 35966, 35967, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36019, 36020, 36021, 36022, 36023, 36024, 36025, + 36026, 36027, 36028, 36029, 36030, 36031, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36083, 36084, 36085, 36086, 36087, 36088, 36089, + 0, 0, 0, 0, 0, 0, 0, 272, 0, 0, 272, 0, 0, 0, 272, 0, 272, 0, 272, 0, 272, 0, 272, + 0, 272, 0, 0, 272, 0, 272, 0, 272, 0, 272, 0, 272, 0, 272, 0, 0, 0, 0, 0, 272, 0, + 272, 0, 272, 0, 272, 0, 0, 272, 0, 0, 0, 0, 272, 0, 272, 0, 272, 0, 272, 0, 272, + 0, 0, 0, 0, 272, 0, 272, 0, 272, 0, 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 272, 0, 0, 0, 0, 0, 0, 0, + 0, 272, 273, 0, 0, 0, 0, 0, 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 272, 0, 272, 273, + 0, 0, 0, 272, 0, 0, 0, 0, 0, 0, 0, 272, 0, 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 272, 0, 0, 0, 0, 0, 0, 0, 0, 272, 273, 0, 0, 0, 0, 0, 272, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 272, 0, 272, 273, 0, 0, 0, 272, 0, 0, 0, 0, 0, 0, + 0, 272, 0, 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, + 4, 0, 0, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, + 4, 0, 0, 0, 0, 0, 4, 0, 4, 0, 4, 0, 4, 0, 0, 4, 0, 0, 0, 0, 4, 0, 4, 0, 4, 0, 4, + 0, 4, 0, 0, 0, 0, 4, 0, 4, 0, 4, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, + 4, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 4, 4, 0, 0, 0, 4, 0, 0, + 0, 0, 0, 0, 0, 4, 0, 4, 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, 4, 4, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 4, 0, 4, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0] +- [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 7230, 7231, 7232, 7233, 7234, 7235, 7236, + 7237, 7238, 6860, 6861, 6862, 6863, 6864, 6865, 6866, 6867, 6868, 6869, 6870, 6871, + 6872, 6873, 6874, 6875, 6876, 6877, 6878, 6879, 6880, 6881, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 36352, 36353, 36354, + 36355, 36356, 36357, 36358, 36359, 36360, 36361, 36362, 36363, 36364, 36365, 36366, + 36367, 36368, 36369, 36370, 36371, 36372, 36373, 36374, 36375, 36376, 36377, 36378, + 36379, 36380, 36381, 36382, 36383, 36384, 36385, 36386, 36387, 36388, 36389, 36390, + 36391, 36392, 36393, 36394, 36395, 36396, 36397, 36398, 36399, 36400, 36401, 36402, + 36403, 36404, 36405, 36406, 36407, 36408, 36409, 36410, 36411, 36412, 36413, 36414, + 36415, 36416, 36417, 36418, 36419, 36420, 36421, 36422, 36423, 36424, 36425, 36426, + 36427, 36428, 36429, 36430, 36431, 36432, 36433, 36434, 36435, 36436, 36437, 36438, + 36439, 36440, 36441, 36442, 36443, 36444, 36445, 36446, 36447, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36479, + 36480, 36481, 36482, 36483, 36484, 36485, 36486, 36487, 36488, 36489, 36490, 36491, + 36492, 36493, 36494, 36495, 36496, 36497, 36498, 36499, 36500, 36501, 36502, 36503, + 36504, 36505, 36506, 36507, 36508, 36509, 36510, 36511, 36512, 36513, 36514, 36515, + 36516, 36517, 36518, 36519, 36520, 36521, 36522, 36523, 36524, 36525, 36526, 36527, + 36528, 36529, 36530, 36531, 36532, 36533, 36534, 36535, 36536, 36537, 36538, 36539, + 36540, 36541, 36542, 36543, 36544, 36545, 36546, 36547, 36548, 36549, 36550, 36551, + 36552, 36553, 36554, 36555, 36556, 36557, 36558, 36559, 36560, 36561, 36562, 36563, + 36564, 36565, 36566, 36567, 36568, 36569, 36570, 36571, 36572, 36573, 36574, 36575, + 36576, 36577, 36578, 36579, 36580, 36581, 36582, 36583, 36584, 36585, 36586, 36587, + 36588, 36589, 36590, 36591, 36592, 36593, 36594, 36595, 36596, 36597, 36598, 36599, + 36600, 36601, 36602, 36603, 36604, 36605, 36606, 36607, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, + 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 0, 0, 0, 11511, 11512, 11464, 11465, 11466, + 11467, 11468, 11469, 11470, 11471, 11472, 11473, 11474, 11475, 11476, 11477, 11478, + 11479, 11480, 11481, 11482, 11483, 11484, 11485, 11486, 11487, 11488, 11489, 11490, + 11491, 11492, 11493, 11494, 11495, 11496, 11497, 11498, 11499, 11500, 11501, 11502, + 11503, 11504, 11505, 11506, 11507, 11508, 11509, 11510, 11513, 11514, 11515, 11516, + 11517, 11518, 11519, 11520, 11521, 11522, 11523, 11524, 11525, 11526, 11527, 11528, + 11529, 11530, 11531, 684, 685, 1075, 1076, 1077, 1078, 1079, 64450, 64450, 64450, + 64450, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7027, 7028, 7029, 7030, + 7031, 7032, 7033, 7034, 7035, 7036, 7037, 7229, 7230, 7231, 7232, 7233, 7234, 7235, + 7236, 7237, 7238, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 11532, 0, 0, 0, 10694, 10695, 10696, 10697, + 10698, 10699, 10700, 10701, 10702, 10703, 10704, 10705, 10706, 10707, 10708, 10709, + 10710, 10711, 10712, 10713, 10714, 10715, 10716, 10716, 10717, 10717, 10718, 10719, + 10720, 10721, 10722, 10723, 10724, 10725, 10726, 10727, 10728, 10729, 10730, 10731, + 10726, 10732, 10733, 10734, 10735, 10736, 10737, 10738, 10739, 10740, 10741, 10742, + 10743, 10744, 10745, 0, 1102, 1103, 0, 736, 737, 686, 687, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 17839, + 17840, 17841, 17842, 17843, 17844, 17845, 17846, 17847, 17848, 17849, 17850, 17851, + 17852, 17853, 17854, 17855, 17856, 17857, 17858, 17859, 17860, 17861, 17862, 17863, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 7229, 7230, 7231, 7232, 7233, 7234, + 7235, 7236, 7237, 7238, 64450, 64450, 64450, 64450, 64450, 64450, 195, 196, 197, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 195, 196, 197, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 194, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 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, + 36942, 36943, 36944, 36945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36976, 36977, 36978, 36979, 36980, 36981, 36982, + 36983, 36984, 36985, 36986, 36987, 36988, 36989, 36990, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 37058, 37059, 37060, 37061, 37062, 37063, 37064, 37065, 37066, 37067, + 37068, 37069, 37070, 37071, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 37097, 37098, 37099, 37100, 37101, 37102, 37103, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 37114, 37115, 37116, 37117, 37118, 37119, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 194, 0, 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 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, 2, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 12516, 12517, 12518, 12519, 12520, + 12521, 12522, 12523, 12524, 12525, 12526, 12527, 12528, 12529, 12530, 12531, 12532, + 12533, 12534, 12535, 12536, 12537, 12538, 12539, 12540, 12541, 12542, 12543, 12544, + 12545, 12546, 12547, 12548, 12549, 12550, 12551, 12552, 12553, 12554, 12555, 12556, + 12557, 12558, 12559, 12560, 12561, 12562, 12563, 12564, 12565, 64450, 7229, 7230, + 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 738, 688, 689, 627, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 10746, 10747, + 10748, 10749, 10750, 10751, 10752, 10753, 10754, 10755, 10756, 10757, 10758, 10759, + 10760, 10761, 10762, 10763, 10764, 10765, 10766, 10767, 10768, 10769, 10770, 10771, + 10772, 10773, 10774, 10775, 10776, 10777, 10779, 10780, 10781, 0, 1104, 1105, 10778, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 0, 0, 0, 10784, 10785, + 10786, 10787, 10788, 10789, 10790, 10791, 10792, 10793, 10794, 10795, 10796, 10797, + 10798, 10799, 10800, 10801, 10802, 10803, 10804, 10805, 10806, 10807, 10808, 10809, + 10810, 10811, 10812, 10813, 10814, 10815, 10816, 10817, 10818, 10819, 10820, 10821, + 10822, 10823, 10824, 10825, 10826, 10827, 10828, 10829, 10830, 10831, 10836, 10837, + 10838, 10839, 10840, 10841, 10842, 10843, 10844, 10845, 10846, 10847, 10848, 10849, + 10832, 10833, 10834, 10782, 690, 691, 1107, 739, 1108, 0, 0, 0, 1106, 64450, 64450, + 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 10783, 1109, 10835, + 1110, 740, 741, 64450, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7052, + 7053, 7054, 7055, 7056, 7057, 7058, 7059, 7060, 7061, 7062, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 195, 196, 197, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 194, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 195, 196, 197, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 194, 207, 208, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 37173, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37188, 37189, 37190, 37191, 37192, 37193, + 37194, 37195, 37196, 37197, 37198, 37199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37239, + 37240, 37241, 37242, 37243, 37244, 37245, 37246, 37247, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37326, 37327, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37344, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 37365, 37366, 37367, 37368, 37369, 37370, 37371, 37372, 37373, 37374, + 37375, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, + 2, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 10850, 10851, 10852, 10853, 10854, 10855, + 10856, 10857, 10858, 10859, 10860, 10861, 10862, 10863, 10864, 10865, 10866, 10867, + 64450, 10868, 10869, 10870, 10871, 10872, 10873, 10874, 10875, 10876, 10877, 10878, + 10879, 10880, 10881, 10882, 10883, 10884, 10885, 10886, 10887, 10888, 10889, 10890, + 10891, 10892, 10893, 10894, 10895, 10896, 10897, 10898, 10899, 10900, 0, 10901, + 0, 0, 692, 693, 1111, 1112, 1113, 1114, 0, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 10959, + 10960, 10961, 10962, 10965, 10966, 10967, 64450, 10968, 64450, 10969, 10970, 10971, + 10972, 64450, 10973, 10974, 10975, 10976, 10977, 10978, 10979, 10980, 10981, 10982, + 10983, 10984, 10985, 10986, 10987, 64450, 10988, 10989, 10990, 10991, 10992, 10993, + 10963, 10964, 10994, 10995, 742, 64450, 64450, 64450, 64450, 64450, 64450, 10902, + 10903, 10904, 10905, 10906, 10907, 10908, 10909, 10910, 10911, 10912, 10913, 10914, + 10915, 10916, 10917, 10918, 10919, 10920, 10921, 10922, 10923, 10924, 10925, 10926, + 10927, 10928, 10929, 10930, 10931, 10932, 10933, 10934, 10935, 10936, 10937, 10938, + 10939, 10940, 10941, 10942, 10943, 10944, 10945, 10946, 10947, 10948, 0, 10949, + 10950, 10951, 10952, 10953, 10954, 10955, 10956, 10957, 0, 10958, 64450, 64450, + 64450, 64450, 64450, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, + 64450, 64450, 64450, 64450, 64450, 64450, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 196, 32, 194, 128, 32, 32, 32, 32, 32, 32, 129, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 196, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 194, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37394, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 37439, 37440, 37441, 37442, 37443, 37444, 37445, 37446, 37447, 37448, + 37449, 37450, 37451, 37452, 37453, 37454, 37455, 37456, 37457, 37458, 37459, 37460, + 37461, 37462, 37463, 37464, 37465, 37466, 37467, 37468, 37469, 37470, 37471, 37472, + 37473, 37474, 37475, 37476, 37477, 37478, 37479, 37480, 37481, 37482, 37483, 37484, + 37485, 37486, 37487, 37488, 37489, 37490, 37491, 37492, 37493, 37494, 37495, 37496, + 37497, 37498, 37499, 37500, 37501, 37502, 37503, 0, 0, 0, 0, 0, 0, 0, 37511, 0, + 37513, 0, 0, 0, 0, 37518, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37534, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37546, 37547, 37548, 37549, 37550, 37551, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 37611, 37612, 37613, 37614, 37615, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37626, 37627, + 37628, 37629, 37630, 37631, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, + 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 2, 1, + 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, + 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 64450, 10997, 10998, 10999, 11000, + 11001, 11002, 11003, 11005, 64450, 64450, 11007, 11008, 64450, 64450, 11009, 11010, + 11011, 11012, 11013, 11014, 11015, 11016, 11017, 11018, 11019, 11020, 11021, 11022, + 11023, 11024, 11025, 11026, 11027, 11028, 11029, 11030, 64450, 11031, 11032, 11033, + 11034, 11035, 11036, 11037, 64450, 11038, 11039, 64450, 11040, 11041, 11042, 11043, + 11044, 64450, 64450, 0, 11045, 11048, 11049, 11050, 11051, 11052, 11053, 11054, + 64450, 64450, 11057, 11058, 64450, 64450, 11059, 11060, 11061, 64450, 64450, 10996, + 64450, 64450, 64450, 64450, 64450, 64450, 11062, 64450, 64450, 64450, 64450, 64450, + 11063, 11046, 11047, 11004, 11006, 11055, 11056, 64450, 64450, 0, 0, 0, 0, 0, 0, + 0, 64450, 64450, 64450, 0, 0, 0, 0, 0, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 196, 195, 196, 197, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 194, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 0, 0, 0, 0, 0, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 0, 0, 0, + 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 37636, 0, 0, 0, 0, 0, 0, 0, 0, 37645, 37646, 0, 0, + 37649, 37650, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 37673, 0, 0, 0, 0, 0, 0, 0, 37681, 0, 0, 37684, 0, 0, 0, 0, 0, 37690, 37691, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 37701, 37702, 0, 0, 37705, 37706, 0, 0, 0, 37710, 37711, + 0, 37713, 37714, 37715, 37716, 37717, 37718, 0, 37720, 37721, 37722, 37723, 37724, + 0, 0, 0, 0, 0, 0, 0, 37732, 37733, 0, 0, 0, 0, 0, 0, 0, 37741, 37742, 37743, 0, + 0, 0, 0, 0, 37749, 37750, 37751, 37752, 37753, 37754, 37755, 37756, 37757, 37758, + 37759, 37760, 37761, 37762, 37763, 37764, 37765, 37766, 37767, 37768, 37769, 37770, + 37771, 37772, 37773, 37774, 37775, 37776, 37777, 37778, 37779, 37780, 37781, 37782, + 37783, 37784, 37785, 37786, 37787, 37788, 37789, 37790, 37791, 37792, 37793, 37794, + 37795, 37796, 37797, 37798, 37799, 37800, 37801, 37802, 37803, 37804, 37805, 37806, + 37807, 37808, 37809, 37810, 37811, 37812, 37813, 37814, 37815, 37816, 37817, 37818, + 37819, 37820, 37821, 37822, 37823, 37824, 37825, 37826, 37827, 37828, 37829, 37830, + 37831, 37832, 37833, 37834, 37835, 37836, 37837, 37838, 37839, 37840, 37841, 37842, + 37843, 37844, 37845, 37846, 37847, 37848, 37849, 37850, 37851, 37852, 37853, 37854, + 37855, 37856, 37857, 37858, 37859, 37860, 37861, 37862, 37863, 37864, 37865, 37866, + 37867, 37868, 37869, 37870, 37871, 37872, 37873, 37874, 37875, 37876, 37877, 37878, + 37879, 37880, 37881, 37882, 37883, 37884, 37885, 37886, 37887, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 11066, 11067, 11068, 11069, 11070, 11071, + 11072, 11073, 11074, 11075, 11076, 11077, 11078, 11079, 11080, 11081, 11082, 11083, + 11084, 11085, 11086, 11087, 11088, 11089, 11090, 11091, 11092, 11093, 11094, 11095, + 11096, 11097, 11098, 11099, 11100, 11101, 11102, 11103, 11104, 11105, 11106, 11107, + 11108, 11109, 11110, 11111, 11112, 11113, 11114, 11115, 11116, 11117, 11118, 11121, + 11122, 11123, 11124, 11125, 11126, 11127, 11128, 11129, 11130, 11131, 11132, 11133, + 11134, 0, 0, 0, 0, 11119, 11120, 11064, 11065, 694, 695, 1115, 1116, 1117, 7229, + 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 64450, 1118, 64450, 1119, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 11136, 11137, + 11138, 11139, 11140, 11141, 11142, 11143, 11144, 11145, 11146, 11147, 11148, 11149, + 11150, 11151, 11152, 11153, 11154, 11155, 11156, 11157, 11158, 11159, 11160, 11161, + 11162, 11163, 11164, 11165, 11166, 11167, 11168, 11169, 11170, 11171, 11172, 11173, + 11174, 11175, 11176, 11177, 11178, 11179, 11180, 11181, 11182, 11183, 11186, 11187, + 11188, 11189, 11190, 11191, 11192, 11193, 11194, 11195, 11196, 11197, 11198, 11199, + 11200, 0, 0, 0, 11201, 0, 11184, 11185, 1120, 11135, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, + 7238, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 195, 196, 197, 194, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 195, 196, 197, + 32, 194, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 37978, + 0, 37980, 0, 37982, 37983, 37984, 37985, 37986, 37987, 37988, 37989, 37990, 37991, + 37992, 37993, 37994, 37995, 37996, 37997, 37998, 37999, 38000, 38001, 38002, 38003, + 38004, 38005, 38006, 38007, 38008, 38009, 38010, 38011, 38012, 38013, 38014, 38015, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38088, 38089, 38090, 38091, + 38092, 38093, 38094, 38095, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38106, 38107, 38108, 38109, + 38110, 38111, 38112, 38113, 38114, 38115, 38116, 38117, 38118, 38119, 38120, 38121, + 38122, 38123, 38124, 38125, 38126, 38127, 38128, 38129, 38130, 38131, 38132, 38133, + 38134, 38135, 38136, 38137, 38138, 38139, 38140, 38141, 38142, 38143, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 11202, 11203, 11204, 11205, 11206, 11207, 11208, 11209, 11210, 11211, + 11212, 11213, 11214, 11215, 11216, 11217, 11218, 11219, 11220, 11221, 11222, 11223, + 11224, 11225, 11226, 11227, 11228, 11229, 11230, 11231, 11232, 11233, 11234, 11235, + 11236, 11237, 11238, 11239, 11240, 11241, 11242, 11243, 11244, 11245, 11246, 11247, + 11248, 11249, 11250, 11251, 11252, 11253, 11254, 11255, 64450, 64450, 11256, 11257, + 11258, 11259, 0, 0, 0, 11260, 0, 1121, 696, 697, 1122, 1123, 1124, 1125, 1126, 1127, + 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, + 11204, 11204, 11205, 11206, 11252, 11253, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 195, 196, 197, 32, 194, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 38144, 38145, 38146, 38147, 38148, + 38149, 38150, 38151, 38152, 38153, 38154, 38155, 38156, 38157, 38158, 38159, 38160, + 38161, 38162, 38163, 38164, 38165, 38166, 38167, 38168, 38169, 38170, 38171, 38172, + 38173, 38174, 38175, 38176, 38177, 38178, 38179, 38180, 38181, 38182, 38183, 38184, + 38185, 38186, 38187, 38188, 38189, 38190, 38191, 38192, 38193, 38194, 38195, 38196, + 38197, 38198, 38199, 38200, 38201, 38202, 38203, 38204, 38205, 38206, 38207, 38208, + 38209, 38210, 38211, 38212, 38213, 38214, 38215, 38216, 38217, 38218, 38219, 38220, + 38221, 38222, 38223, 38224, 38225, 38226, 38227, 38228, 38229, 38230, 38231, 38232, + 38233, 38234, 38235, 38236, 38237, 38238, 38239, 38240, 38241, 38242, 38243, 38244, + 38245, 38246, 38247, 38248, 38249, 38250, 38251, 38252, 38253, 38254, 38255, 38256, + 38257, 38258, 38259, 38260, 38261, 38262, 38263, 38264, 38265, 38266, 38267, 38268, + 38269, 38270, 38271, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 38326, 38327, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38366, 38367, + 38368, 38369, 38370, 38371, 38372, 38373, 38374, 38375, 38376, 38377, 38378, 38379, + 38380, 38381, 38382, 38383, 38384, 38385, 38386, 38387, 38388, 38389, 38390, 38391, + 38392, 38393, 38394, 38395, 38396, 38397, 38398, 38399, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 272, 273, 272, 272, 272, + 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, + 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 11261, 11262, 11263, 11264, 11265, 11266, + 11267, 11268, 11269, 11270, 11271, 11272, 11273, 11274, 11275, 11276, 11277, 11278, + 11279, 11280, 11281, 11282, 11283, 11284, 11285, 11286, 11287, 11288, 11289, 11290, + 11291, 11292, 11293, 11294, 11295, 11296, 11297, 11298, 11299, 11300, 11301, 11302, + 11303, 11304, 11305, 11306, 11307, 11308, 11309, 11310, 11311, 11312, 11313, 11314, + 11315, 11316, 11317, 11318, 11319, 11320, 11321, 0, 0, 11322, 0, 698, 699, 1142, + 11323, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 64450, 64450, 64450, + 64450, 64450, 64450, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, + 998, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 11324, 11325, 11326, 11327, + 11328, 11329, 11330, 11331, 11332, 11333, 11337, 11338, 11339, 11340, 11341, 11342, + 11343, 11344, 11345, 11346, 11347, 11348, 11349, 11350, 11351, 11352, 11353, 11354, + 11355, 11356, 11357, 11358, 11359, 11360, 11361, 11362, 11363, 11364, 11365, 11335, + 11334, 11336, 11366, 0, 0, 11367, 11368, 11369, 11370, 11371, 11372, 11373, 11374, + 11375, 11376, 0, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 7229, 7230, + 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 196, 197, 32, 195, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 196, 197, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 194, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 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, 38469, 38470, + 38471, 38472, 38473, 38474, 38475, 38476, 38477, 38478, 38479, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 38490, 38491, 38492, 38493, 38494, 38495, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 38509, 38510, 38511, 38512, 38513, 38514, 38515, 38516, 38517, 38518, + 38519, 38520, 38521, 38522, 38523, 38524, 38525, 38526, 38527, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38584, 38585, + 38586, 38587, 38588, 38589, 38590, 38591, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38602, 38603, + 38604, 38605, 38606, 38607, 38608, 38609, 38610, 38611, 38612, 38613, 38614, 38615, + 38616, 38617, 38618, 38619, 38620, 38621, 38622, 38623, 38624, 38625, 38626, 38627, + 38628, 38629, 38630, 38631, 38632, 38633, 38634, 38635, 38636, 38637, 38638, 38639, + 38640, 38641, 38642, 38643, 38644, 38645, 38646, 38647, 38648, 38649, 38650, 38651, + 38652, 38653, 38654, 38655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, + 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 11377, 11378, 11379, 11380, 11381, 11381, + 11382, 11383, 11384, 11385, 11386, 11387, 11388, 11389, 11390, 11391, 11392, 11393, + 11394, 11395, 11396, 11397, 11397, 11398, 11399, 11400, 64450, 64450, 64450, 11413, + 11414, 11415, 11401, 11402, 11403, 11404, 11405, 11406, 11407, 11408, 11409, 11410, + 11411, 11412, 64450, 64450, 64450, 64450, 7229, 7230, 7231, 7232, 7233, 7234, 7235, + 7236, 7237, 7238, 7025, 7026, 700, 701, 743, 1360, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 38682, 38683, + 38684, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38700, 38701, 38702, 38703, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38720, 38721, 38722, 38723, 38724, + 38725, 38726, 38727, 38728, 38729, 38730, 38731, 38732, 38733, 38734, 38735, 38736, + 38737, 38738, 38739, 38740, 38741, 38742, 38743, 38744, 38745, 38746, 38747, 38748, + 38749, 38750, 38751, 38752, 38753, 38754, 38755, 38756, 38757, 38758, 38759, 38760, + 38761, 38762, 38763, 38764, 38765, 38766, 38767, 38768, 38769, 38770, 38771, 38772, + 38773, 38774, 38775, 38776, 38777, 38778, 38779, 38780, 38781, 38782, 38783, 38784, + 38785, 38786, 38787, 38788, 38789, 38790, 38791, 38792, 38793, 38794, 38795, 38796, + 38797, 38798, 38799, 38800, 38801, 38802, 38803, 38804, 38805, 38806, 38807, 38808, + 38809, 38810, 38811, 38812, 38813, 38814, 38815, 38816, 38817, 38818, 38819, 38820, + 38821, 38822, 38823, 38824, 38825, 38826, 38827, 38828, 38829, 38830, 38831, 38832, + 38833, 38834, 38835, 38836, 38837, 38838, 38839, 38840, 38841, 38842, 38843, 38844, + 38845, 38846, 38847, 38848, 38849, 38850, 38851, 38852, 38853, 38854, 38855, 38856, + 38857, 38858, 38859, 38860, 38861, 38862, 38863, 38864, 38865, 38866, 38867, 38868, + 38869, 38870, 38871, 38872, 38873, 38874, 38875, 38876, 38877, 38878, 38879, 38880, + 38881, 38882, 38883, 38884, 38885, 38886, 38887, 38888, 38889, 38890, 38891, 38892, + 38893, 38894, 38895, 38896, 38897, 38898, 38899, 38900, 38901, 38902, 38903, 38904, + 38905, 38906, 38907, 38908, 38909, 38910, 38911, 0, 0, 0, 0, 0, 272, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 4, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 17148, 17149, + 17150, 17151, 17152, 17153, 17154, 17155, 17156, 17157, 17158, 17159, 17160, 17161, + 17162, 17163, 17164, 17165, 17166, 17167, 17168, 17169, 17170, 17171, 17172, 17173, + 17174, 17175, 17176, 17177, 17178, 17179, 17148, 17149, 17150, 17151, 17152, 17153, + 17154, 17155, 17156, 17157, 17158, 17159, 17160, 17161, 17162, 17163, 17164, 17165, + 17166, 17167, 17168, 17169, 17170, 17171, 17172, 17173, 17174, 17175, 17176, 17177, + 17178, 17179, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7063, + 7064, 7065, 7066, 7067, 7068, 7069, 7070, 7071, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 17147, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 38912, + 38913, 38914, 38915, 38916, 38917, 38918, 38919, 38920, 38921, 38922, 38923, 38924, + 38925, 38926, 38927, 38928, 38929, 38930, 38931, 38932, 38933, 38934, 38935, 38936, + 38937, 38938, 38939, 38940, 38941, 38942, 38943, 38944, 38945, 38946, 38947, 38948, + 38949, 38950, 38951, 38952, 38953, 38954, 38955, 38956, 38957, 38958, 38959, 38960, + 38961, 38962, 38963, 38964, 38965, 38966, 38967, 38968, 38969, 38970, 38971, 38972, + 38973, 38974, 38975, 38976, 38977, 38978, 38979, 38980, 38981, 38982, 38983, 38984, + 38985, 38986, 38987, 38988, 38989, 38990, 38991, 38992, 38993, 38994, 38995, 38996, + 38997, 38998, 38999, 39000, 39001, 39002, 39003, 39004, 39005, 39006, 39007, 39008, + 39009, 39010, 39011, 39012, 39013, 39014, 39015, 39016, 39017, 39018, 39019, 39020, + 39021, 39022, 39023, 39024, 39025, 39026, 39027, 39028, 39029, 39030, 39031, 39032, + 39033, 39034, 39035, 39036, 39037, 39038, 39039, 39040, 39041, 39042, 39043, 39044, + 39045, 39046, 39047, 39048, 39049, 39050, 39051, 39052, 39053, 39054, 39055, 39056, + 39057, 39058, 39059, 39060, 39061, 39062, 39063, 39064, 39065, 39066, 39067, 39068, + 39069, 39070, 39071, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 39155, 39156, 39157, 39158, 39159, 39160, 39161, 39162, + 39163, 39164, 39165, 39166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 17187, 17188, 17189, 17190, 17191, 17192, + 17193, 17194, 17195, 17196, 17197, 17198, 17199, 17200, 17201, 17202, 17203, 17204, + 17205, 17206, 17207, 17180, 17181, 17182, 17183, 17184, 17185, 17186, 17208, 17209, + 17215, 17210, 17211, 17212, 17213, 17214, 17216, 17222, 17220, 17234, 17223, 17221, + 17235, 17230, 17228, 17231, 17229, 17217, 17236, 17219, 17218, 17226, 17224, 17232, + 17227, 17225, 17233, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 39424, 39425, 39426, 39427, 39428, 39429, 39430, 39431, 39432, 39433, 39434, + 39435, 39436, 39437, 39438, 39439, 39440, 39441, 39442, 39443, 39444, 39445, 39446, + 39447, 39448, 39449, 39450, 39451, 39452, 39453, 39454, 39455, 39456, 39457, 39458, + 39459, 39460, 39461, 39462, 39463, 39464, 39465, 39466, 39467, 39468, 39469, 39470, + 39471, 39472, 39473, 39474, 39475, 39476, 39477, 39478, 39479, 39480, 39481, 39482, + 39483, 39484, 39485, 39486, 39487, 39488, 39489, 39490, 39491, 39492, 39493, 39494, + 39495, 39496, 39497, 39498, 39499, 39500, 39501, 39502, 39503, 39504, 39505, 39506, + 39507, 39508, 39509, 39510, 39511, 39512, 39513, 39514, 39515, 39516, 39517, 39518, + 39519, 39520, 39521, 39522, 39523, 39524, 39525, 39526, 39527, 39528, 39529, 39530, + 39531, 39532, 39533, 39534, 39535, 39536, 39537, 39538, 39539, 39540, 39541, 39542, + 39543, 39544, 39545, 39546, 39547, 39548, 39549, 39550, 39551, 39552, 39553, 39554, + 39555, 39556, 39557, 39558, 39559, 39560, 39561, 39562, 39563, 39564, 39565, 39566, + 39567, 39568, 39569, 39570, 39571, 39572, 39573, 39574, 39575, 39576, 39577, 39578, + 39579, 39580, 39581, 39582, 39583, 39584, 39585, 39586, 39587, 39588, 39589, 39590, + 39591, 39592, 39593, 39594, 39595, 39596, 39597, 39598, 39599, 39600, 39601, 39602, + 39603, 39604, 39605, 39606, 39607, 39608, 39609, 39610, 39611, 39612, 39613, 39614, + 39615, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 39673, 39674, 39675, 39676, 39677, 39678, 39679, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 11575, 11576, 11577, 11578, 11579, 11580, + 11581, 11582, 11583, 64450, 11584, 11585, 11586, 11587, 11588, 11589, 11590, 11591, + 11592, 11593, 11594, 11595, 11596, 11597, 11598, 11599, 11600, 11601, 11602, 11603, + 11604, 11605, 11606, 11607, 11608, 11609, 11610, 11611, 11612, 11613, 11614, 11615, + 11616, 11617, 11618, 11619, 11620, 11622, 11623, 11624, 11625, 11626, 11627, 11628, + 11629, 64450, 11630, 11631, 11632, 11633, 0, 0, 0, 11634, 11621, 702, 703, 1087, + 1088, 1089, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7230, 7231, 7232, 7233, + 7234, 7235, 7236, 7237, 7238, 7042, 7043, 7044, 7045, 7046, 7047, 7048, 7049, 7050, + 7051, 64450, 64450, 64450, 1033, 1034, 11910, 11912, 11914, 11916, 11918, 11920, + 11922, 11924, 11926, 11928, 11930, 11932, 11934, 11936, 11938, 11940, 11942, 11944, + 11946, 11948, 11950, 11952, 11954, 11955, 11957, 11959, 11961, 11963, 11965, 11967, + 64450, 64450, 11911, 11913, 11915, 11917, 11919, 11921, 11923, 11925, 11927, 11929, + 11931, 11933, 11935, 11937, 11939, 11941, 11943, 11945, 11947, 11949, 11951, 11953, + 64450, 11956, 11958, 11960, 11962, 11964, 11966, 11968, 11969, 11970, 11971, 11972, + 11973, 0, 0, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 195, 196, 197, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 196, 195, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39945, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39991, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 40006, 40007, 40008, 40009, 40010, 40011, 40012, 40013, 40014, 40015, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 40045, 40046, 40047, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40080, 40081, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 40119, 40120, 40121, 40122, 40123, 40124, 40125, 40126, 40127, 40128, 40129, + 40130, 40131, 40132, 40133, 40134, 40135, 40136, 40137, 40138, 40139, 40140, 40141, + 40142, 40143, 40144, 40145, 40146, 40147, 40148, 40149, 40150, 40151, 40152, 40153, + 40154, 40155, 40156, 40157, 40158, 40159, 40160, 40161, 40162, 40163, 40164, 40165, + 40166, 40167, 40168, 40169, 40170, 40171, 40172, 40173, 40174, 40175, 40176, 40177, + 40178, 40179, 40180, 40181, 40182, 40183, 40184, 40185, 40186, 40187, 40188, 40189, + 40190, 40191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 18869, 18870, 18871, 18872, 18873, 18874, + 18875, 18876, 18877, 18878, 18879, 18880, 18881, 18882, 18883, 18884, 18885, 18886, + 18887, 18888, 18889, 18890, 18891, 18892, 18893, 18894, 18895, 18896, 18897, 18898, + 18899, 18900, 18901, 18902, 18903, 18904, 18905, 18906, 18907, 18908, 18909, 18910, + 18911, 18912, 18913, 18914, 18915, 18916, 18917, 18918, 18919, 18920, 18921, 18922, + 18923, 18924, 18925, 18926, 18927, 18928, 18929, 18930, 18931, 18932, 18933, 18934, + 18935, 18936, 18937, 18938, 18939, 18940, 18941, 18942, 18943, 18944, 18945, 18946, + 18947, 18948, 18949, 18950, 18951, 18952, 18953, 18954, 18955, 18956, 18957, 18958, + 18959, 18960, 18961, 18962, 18963, 18964, 18965, 18966, 18967, 18968, 18969, 18970, + 18971, 18972, 18973, 18974, 18975, 18976, 18977, 18978, 18979, 18980, 18981, 18982, + 18983, 18984, 18985, 18986, 18987, 18988, 18989, 18990, 18991, 18992, 18993, 18994, + 18995, 18996, 18997, 18998, 18999, 19000, 19001, 19002, 19003, 19004, 19005, 19006, + 19007, 19008, 19009, 19010, 19011, 19012, 19013, 19014, 19015, 19016, 19017, 19018, + 19019, 19020, 19021, 19022, 19023, 19024, 19025, 19026, 19027, 19028, 19029, 19030, + 19031, 19032, 19033, 19034, 19035, 19036, 19037, 19038, 19039, 19040, 19041, 19042, + 19043, 19044, 19045, 19046, 19047, 19048, 19049, 19050, 19051, 19052, 19053, 19054, + 19055, 19056, 19057, 19058, 19059, 19060, 19061, 19062, 19063, 19064, 19065, 19066, + 19067, 19068, 19069, 19070, 19071, 19072, 19073, 19074, 19075, 19076, 19077, 19078, + 19079, 19080, 19081, 19082, 19083, 19084, 19085, 19086, 19087, 19088, 19089, 19090, + 19091, 19092, 19093, 19094, 19095, 19096, 19097, 19098, 19099, 19100, 19101, 19102, + 19103, 19104, 19105, 19106, 19107, 19108, 19109, 19110, 19111, 19112, 19113, 19114, + 19115, 19116, 19117, 19118, 19119, 19120, 19121, 19122, 19123, 19124, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2] +- [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 19125, 19126, 19127, 19128, 19129, 19130, + 19131, 19132, 19133, 19134, 19135, 19136, 19137, 19138, 19139, 19140, 19141, 19142, + 19143, 19144, 19145, 19146, 19147, 19148, 19149, 19150, 19151, 19152, 19153, 19154, + 19155, 19156, 19157, 19158, 19159, 19160, 19161, 19162, 19163, 19164, 19165, 19166, + 19167, 19168, 19169, 19170, 19171, 19172, 19173, 19174, 19175, 19176, 19177, 19178, + 19179, 19180, 19181, 19182, 19183, 19184, 19185, 19186, 19187, 19188, 19189, 19190, + 19191, 19192, 19193, 19194, 19195, 19196, 19197, 19198, 19199, 19200, 19201, 19202, + 19203, 19204, 19205, 19206, 19207, 19208, 19209, 19210, 19211, 19212, 19213, 19214, + 19215, 19216, 19217, 19218, 19219, 19220, 19221, 19222, 19223, 19224, 19225, 19226, + 19227, 19228, 19229, 19230, 19231, 19232, 19233, 19234, 19235, 19236, 19237, 19238, + 19239, 19240, 19241, 19242, 19243, 19244, 19245, 19246, 19247, 19248, 19249, 19250, + 19251, 19252, 19253, 19254, 19255, 19256, 19257, 19258, 19259, 19260, 19261, 19262, + 19263, 19264, 19265, 19266, 19267, 19268, 19269, 19270, 19271, 19272, 19273, 19274, + 19275, 19276, 19277, 19278, 19279, 19280, 19281, 19282, 19283, 19284, 19285, 19286, + 19287, 19288, 19289, 19290, 19291, 19292, 19293, 19294, 19295, 19296, 19297, 19298, + 19299, 19300, 19301, 19302, 19303, 19304, 19305, 19306, 19307, 19308, 19309, 19310, + 19311, 19312, 19313, 19314, 19315, 19316, 19317, 19318, 19319, 19320, 19321, 19322, + 19323, 19324, 19325, 19326, 19327, 19328, 19329, 19330, 19331, 19332, 19333, 19334, + 19335, 19336, 19337, 19338, 19339, 19340, 19341, 19342, 19343, 19344, 19345, 19346, + 19347, 19348, 19349, 19350, 19351, 19352, 19353, 19354, 19355, 19356, 19357, 19358, + 19359, 19360, 19361, 19362, 19363, 19364, 19365, 19366, 19367, 19368, 19369, 19370, + 19371, 19372, 19373, 19374, 19375, 19376, 19377, 19378, 19379, 19380, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2] +- [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 19381, 19382, 19383, 19384, 19385, 19386, + 19387, 19388, 19389, 19390, 19391, 19392, 19393, 19394, 19395, 19396, 19397, 19398, + 19399, 19400, 19401, 19402, 19403, 19404, 19405, 19406, 19407, 19408, 19409, 19410, + 19411, 19412, 19413, 19414, 19415, 19416, 19417, 19418, 19419, 19420, 19421, 19422, + 19423, 19424, 19425, 19426, 19427, 19428, 19429, 19430, 19431, 19432, 19433, 19434, + 19435, 19436, 19437, 19438, 19439, 19440, 19441, 19442, 19443, 19444, 19445, 19446, + 19447, 19448, 19449, 19450, 19451, 19452, 19453, 19454, 19455, 19456, 19457, 19458, + 19459, 19460, 19461, 19462, 19463, 19464, 19465, 19466, 19467, 19468, 19469, 19470, + 19471, 19472, 19473, 19474, 19475, 19476, 19477, 19478, 19479, 19482, 19483, 19484, + 19485, 19486, 19487, 19488, 19489, 19490, 19491, 19492, 19493, 19494, 19495, 19496, + 19497, 19498, 19499, 19500, 19501, 19502, 19503, 19504, 19505, 19506, 19507, 19508, + 19509, 19510, 19511, 19512, 19513, 19514, 19515, 19516, 19517, 19518, 19519, 19520, + 19521, 19522, 19523, 19524, 19525, 19526, 19527, 19528, 19529, 19530, 19531, 19532, + 19533, 19534, 19535, 19536, 19537, 19538, 19539, 19540, 19541, 19542, 19543, 19544, + 19545, 19546, 19547, 19548, 19549, 19550, 19551, 19552, 19553, 19554, 19555, 19556, + 19557, 19558, 19559, 19560, 19561, 19562, 19563, 19564, 19565, 19566, 19567, 19568, + 19569, 19570, 19571, 19572, 19573, 19574, 19575, 19576, 19577, 19578, 19579, 19580, + 19581, 19582, 19583, 19584, 19585, 19586, 19587, 19588, 19589, 19590, 19591, 19592, + 19593, 19594, 19480, 19481, 19595, 19596, 19597, 19598, 19599, 19600, 19601, 19602, + 19603, 19604, 19605, 19606, 19607, 19608, 19609, 19610, 19611, 19612, 19613, 19614, + 19615, 19616, 19617, 19618, 19619, 19620, 19621, 19622, 19623, 19624, 19625, 19626, + 19627, 19628, 19629, 19630, 19631, 19632, 19633, 19634, 19635, 19636, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2] +- [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 19637, 19638, 19639, 19640, 19641, 19642, + 19643, 19644, 19645, 19646, 19647, 19648, 19649, 19650, 19651, 19652, 19653, 19654, + 19655, 19656, 19657, 19658, 19659, 19660, 19661, 19662, 19663, 19664, 19665, 19666, + 19667, 19668, 19669, 19670, 19671, 19672, 19673, 19674, 19675, 19676, 19677, 19678, + 19679, 19680, 19681, 19682, 19683, 19684, 19685, 19686, 19687, 19688, 19689, 19690, + 19691, 19692, 19693, 19694, 19695, 19696, 19697, 19698, 19699, 19700, 19701, 19702, + 19703, 19704, 19705, 19706, 19707, 19708, 19709, 19710, 19711, 19712, 19713, 19714, + 19715, 19716, 19717, 19718, 19719, 19720, 19721, 19722, 19723, 19724, 19725, 19726, + 19727, 19728, 19729, 19730, 19731, 19732, 19733, 19734, 19735, 19736, 19737, 19738, + 19739, 19740, 19741, 19742, 19743, 19744, 19745, 19746, 19747, 19748, 19749, 19750, + 19751, 19752, 19753, 19754, 19755, 19756, 19757, 19758, 19759, 19760, 19761, 19762, + 19763, 19764, 19765, 19766, 19767, 19768, 19769, 19770, 19771, 19772, 19773, 19774, + 19775, 19776, 19777, 19778, 19779, 19780, 19781, 19782, 19783, 19784, 19785, 19786, + 19787, 19788, 19789, 19790, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 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, 41882, 41883, + 41884, 41885, 41886, 41887, 41888, 41889, 41890, 41891, 41892, 41893, 41894, 41895, + 41896, 41897, 41898, 41899, 41900, 41901, 41902, 41903, 41904, 41905, 41906, 41907, + 41908, 41909, 41910, 41911, 41912, 41913, 41914, 41915, 41916, 41917, 41918, 41919, + 41920, 41921, 41922, 41923, 41924, 41925, 41926, 41927, 41928, 41929, 41930, 41931, + 41932, 41933, 41934, 41935, 41936, 41937, 41938, 41939, 41940, 41941, 41942, 41943, + 41944, 41945, 41946, 41947, 41948, 41949, 41950, 41951, 41952, 41953, 41954, 41955, + 41956, 41957, 41958, 41959, 41960, 41961, 41962, 41963, 41964, 41965, 41966, 41967, + 41968, 41969, 41970, 41971, 41972, 41973, 41974, 41975, 41976, 41977, 41978, 41979, + 41980, 41981, 41982, 41983, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 7231, 7232, 7233, 7234, 7235, 7236, 7237, + 7238, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7233, 7234, 7235, 7236, 7237, 7238, + 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7230, 7231, 7232, 7233, 7234, + 7231, 7232, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7230, 7231, 7232, 7232, 7233, + 7234, 7134, 7135, 7230, 7231, 7232, 7232, 7233, 7234, 7232, 7232, 7233, 7233, 7233, + 7233, 7235, 7236, 7236, 7236, 7237, 7237, 7238, 7238, 7238, 7238, 7231, 7232, 7233, + 7234, 7235, 7230, 7231, 7232, 7233, 7233, 7234, 7234, 7231, 7232, 7230, 7231, 7136, + 7137, 7138, 7139, 7140, 7141, 7142, 7143, 7144, 7145, 7146, 7147, 7148, 7149, 7150, + 7233, 7234, 7235, 7236, 7237, 7238, 64450, 768, 769, 770, 771, 772, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 19791, 19792, 19793, + 19794, 19795, 19796, 19797, 19798, 19799, 19800, 19801, 19802, 19803, 19804, 19805, + 19806, 19807, 19808, 19809, 19810, 19811, 19812, 19813, 19814, 19815, 19816, 19817, + 19818, 19819, 19820, 19821, 19822, 19823, 19824, 19825, 19826, 19827, 19828, 19829, + 19830, 19831, 19832, 19833, 19834, 19835, 19836, 19837, 19838, 19839, 19840, 19841, + 19842, 19843, 19844, 19845, 19846, 19847, 19848, 19849, 19850, 19851, 19852, 19853, + 19854, 19855, 19856, 19857, 19858, 19859, 19860, 19861, 19862, 19863, 19864, 19865, + 19866, 19867, 19868, 19869, 19870, 19871, 19872, 19873, 19874, 19875, 19876, 19877, + 19878, 19879, 19880, 19881, 19882, 19883, 19884, 19885, 19886, 19887, 19888, 19889, + 19890, 19891, 19892, 19893, 19894, 19895, 19896, 19897, 19898, 19899, 19900, 19901, + 19902, 19903, 19904, 19905, 19906, 19907, 19908, 19909, 19910, 19911, 19912, 19913, + 19914, 19915, 19916, 19917, 19918, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 42095, 0, 0, 0, 0, + 0, 42101, 42102, 42103, 42104, 42105, 42106, 42107, 42108, 42109, 42110, 42111, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 19919, 19920, 19921, 19922, 19923, 19924, + 19925, 19926, 19927, 19928, 19929, 19930, 19931, 19932, 19933, 19934, 19935, 19936, + 19937, 19938, 19939, 19940, 19941, 19942, 19943, 19944, 19945, 19946, 19947, 19948, + 19949, 19950, 19951, 19952, 19953, 19954, 19955, 19956, 19957, 19958, 19959, 19960, + 19961, 19962, 19963, 19964, 19965, 19966, 19967, 19968, 19969, 19970, 19971, 19972, + 19973, 19974, 19975, 19976, 19977, 19978, 19979, 19980, 19981, 19982, 19983, 19984, + 19985, 19986, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 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, 42308, 42309, 42310, 42311, 42312, + 42313, 42314, 42315, 42316, 42317, 42318, 42319, 42320, 42321, 42322, 42323, 42324, + 42325, 42326, 42327, 42328, 42329, 42330, 42331, 42332, 42333, 42334, 42335, 42336, + 42337, 42338, 42339, 42340, 42341, 42342, 42343, 42344, 42345, 42346, 42347, 42348, + 42349, 42350, 42351, 42352, 42353, 42354, 42355, 42356, 42357, 42358, 42359, 42360, + 42361, 42362, 42363, 42364, 42365, 42366, 42367, 42368, 42369, 42370, 42371, 42372, + 42373, 42374, 42375, 42376, 42377, 42378, 42379, 42380, 42381, 42382, 42383, 42384, + 42385, 42386, 42387, 42388, 42389, 42390, 42391, 42392, 42393, 42394, 42395, 42396, + 42397, 42398, 42399, 42400, 42401, 42402, 42403, 42404, 42405, 42406, 42407, 42408, + 42409, 42410, 42411, 42412, 42413, 42414, 42415, 42416, 42417, 42418, 42419, 42420, + 42421, 42422, 42423, 42424, 42425, 42426, 42427, 42428, 42429, 42430, 42431, 42432, + 42433, 42434, 42435, 42436, 42437, 42438, 42439, 42440, 42441, 42442, 42443, 42444, + 42445, 42446, 42447, 42448, 42449, 42450, 42451, 42452, 42453, 42454, 42455, 42456, + 42457, 42458, 42459, 42460, 42461, 42462, 42463, 42464, 42465, 42466, 42467, 42468, + 42469, 42470, 42471, 42472, 42473, 42474, 42475, 42476, 42477, 42478, 42479, 42480, + 42481, 42482, 42483, 42484, 42485, 42486, 42487, 42488, 42489, 42490, 42491, 42492, + 42493, 42494, 42495, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 19987, 19988, 19989, 19990, 19991, 19992, + 19993, 19994, 19995, 19996, 19997, 19998, 19999, 20000, 20001, 20002, 20003, 20004, + 20005, 20006, 20007, 20008, 20009, 20010, 20011, 20012, 20013, 20014, 20015, 20016, + 20017, 20018, 20019, 20020, 20021, 20022, 20023, 20024, 20025, 20026, 20027, 20028, + 20029, 20030, 20031, 20032, 20033, 20034, 20035, 20036, 20037, 20038, 20039, 20040, + 20041, 20042, 20043, 20044, 20045, 20046, 20047, 20048, 20049, 20050, 20051, 20052, + 20053, 20054, 20055, 20056, 20057, 20058, 20059, 20060, 20061, 20062, 20063, 20064, + 20065, 20066, 20067, 20068, 20069, 20070, 20071, 20072, 20073, 20074, 20075, 20076, + 20077, 20078, 20079, 20080, 20081, 20082, 20083, 20084, 20085, 20086, 20087, 20088, + 20089, 20090, 20091, 20092, 20093, 20094, 20095, 20096, 20097, 20098, 20099, 20100, + 20101, 20102, 20103, 20104, 20105, 20106, 20107, 20108, 20109, 20110, 20111, 20112, + 20113, 20114, 20115, 20116, 20117, 20118, 20119, 20120, 20121, 20122, 20123, 20124, + 20125, 20126, 20127, 20128, 20129, 20130, 20131, 20132, 20133, 20134, 20135, 20136, + 20137, 20138, 20139, 20140, 20141, 20142, 20143, 20144, 20145, 20146, 20147, 20148, + 20149, 20150, 20151, 20152, 20153, 20154, 20155, 20156, 20157, 20158, 20159, 20160, + 20161, 20162, 20163, 20164, 20165, 20166, 20167, 20168, 20169, 20170, 20171, 20172, + 20173, 20174, 20175, 20176, 20177, 20178, 20179, 20180, 20181, 20182, 20183, 20184, + 20185, 20186, 20187, 20188, 20189, 20190, 20191, 20192, 20193, 20194, 20195, 20196, + 20197, 20198, 20199, 20200, 20201, 20202, 20203, 20204, 20205, 20206, 20207, 20208, + 20209, 20210, 20211, 20212, 20213, 20214, 20215, 20216, 20217, 20218, 20219, 20220, + 20221, 20222, 20223, 20224, 20225, 20226, 20227, 20228, 20229, 20230, 20231, 20232, + 20233, 20234, 20235, 20236, 20237, 20238, 20239, 20240, 20241, 20242, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2] +- [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 20243, 20244, 20245, 20246, 20247, 20248, + 20249, 20250, 20251, 20252, 20253, 20254, 20255, 20256, 20257, 20258, 20259, 20260, + 20261, 20262, 20263, 20264, 20265, 20266, 20267, 20268, 20269, 20270, 20271, 20272, + 20273, 20274, 20275, 20276, 20277, 20278, 20279, 20280, 20281, 20282, 20283, 20284, + 20285, 20286, 20287, 20288, 20289, 20290, 20291, 20292, 20293, 20294, 20295, 20296, + 20297, 20298, 20299, 20300, 20301, 20302, 20303, 20304, 20305, 20306, 20307, 20308, + 20309, 20310, 20311, 20312, 20313, 20314, 20315, 20316, 20317, 20318, 20319, 20320, + 20321, 20322, 20323, 20324, 20325, 20326, 20327, 20328, 20329, 20330, 20331, 20332, + 20333, 20334, 20335, 20336, 20337, 20338, 20339, 20340, 20341, 20342, 20343, 20344, + 20345, 20346, 20347, 20348, 20349, 20350, 20351, 20352, 20353, 20354, 20355, 20356, + 20357, 20358, 20359, 20360, 20361, 20362, 20363, 20364, 20365, 20366, 20367, 20368, + 20369, 20370, 20371, 20372, 20373, 20374, 20375, 20376, 20377, 20378, 20379, 20380, + 20381, 20382, 20383, 20384, 20385, 20386, 20387, 20388, 20389, 20390, 20391, 20392, + 20393, 20394, 20395, 20396, 20397, 20398, 20399, 20400, 20401, 20402, 20403, 20404, + 20405, 20406, 20407, 20408, 20409, 20410, 20411, 20412, 20413, 20414, 20415, 20416, + 20417, 20418, 20419, 20420, 20421, 20422, 20423, 20424, 20425, 20426, 20427, 20428, + 20429, 20430, 20431, 20432, 20433, 20434, 20435, 20436, 20437, 20438, 20439, 20440, + 20441, 20442, 20443, 20444, 20445, 20446, 20447, 20448, 20449, 20450, 20451, 20452, + 20453, 20454, 20455, 20456, 20457, 20458, 20459, 20460, 20461, 20462, 20463, 20464, + 20465, 20466, 20467, 20468, 20469, 20470, 20471, 20472, 20473, 20474, 20475, 20476, + 20477, 20478, 20479, 20480, 20481, 20482, 20483, 20484, 20485, 20486, 20487, 20488, + 20489, 20490, 20491, 20492, 20493, 20494, 20495, 20496, 20497, 20498, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2] +- [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 20499, 20500, 20501, 20502, 20503, 20504, + 20505, 20506, 20507, 20508, 20509, 20510, 20511, 20512, 20513, 20514, 20515, 20516, + 20517, 20518, 20519, 20520, 20521, 20522, 20523, 20524, 20525, 20526, 20527, 20528, + 20529, 20530, 20531, 20532, 20533, 20534, 20535, 20536, 20537, 20538, 20539, 20540, + 20541, 20542, 20543, 20544, 20545, 20546, 20547, 20548, 20549, 20550, 20551, 20552, + 20553, 20554, 20555, 20556, 20557, 20558, 20559, 20560, 20561, 20562, 20563, 20564, + 20565, 20566, 20567, 20568, 20569, 20570, 20571, 20572, 20573, 20574, 20575, 20576, + 20577, 20578, 20579, 20580, 20581, 20582, 20583, 20584, 20585, 20586, 20587, 20588, + 20589, 20590, 20591, 20592, 20593, 20594, 20595, 20596, 20597, 20598, 20599, 20600, + 20601, 20602, 20603, 20604, 20605, 20606, 20607, 20608, 20609, 20610, 20611, 20612, + 20613, 20614, 20615, 20616, 20617, 20618, 20619, 20620, 20621, 20622, 20623, 20624, + 20625, 20626, 20627, 20628, 20629, 20630, 20631, 20632, 20633, 20634, 20635, 20636, + 20637, 20638, 20639, 20640, 20641, 20642, 20643, 20644, 20645, 20646, 20647, 20648, + 20649, 20650, 20651, 20652, 20653, 20654, 20655, 20656, 20657, 20658, 20659, 20660, + 20661, 20662, 20663, 20664, 20665, 20666, 20667, 20668, 20669, 20670, 20671, 20672, + 20673, 20674, 20675, 20676, 20677, 20678, 20679, 20680, 20681, 20682, 20683, 20684, + 20685, 20686, 20687, 20688, 20689, 20690, 20691, 20692, 20693, 20694, 20695, 20696, + 20697, 20698, 20699, 20700, 20701, 20702, 20703, 20704, 20705, 20706, 20707, 20708, + 20709, 20710, 20711, 20712, 20713, 20714, 20715, 20716, 20717, 20718, 20719, 20720, + 20721, 20722, 20723, 20724, 20725, 20726, 20727, 20728, 20729, 20730, 20731, 20732, + 20733, 20734, 20735, 20736, 20737, 20738, 20739, 20740, 20741, 20742, 20743, 20744, + 20745, 20746, 20747, 20748, 20749, 20750, 20751, 20752, 20753, 20754, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2] +- [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 20755, 20756, 20757, 20758, 20759, 20760, + 20761, 20762, 20763, 20764, 20765, 20766, 20767, 20768, 20769, 20770, 20771, 20772, + 20773, 20774, 20775, 20776, 20777, 20778, 20779, 20780, 20781, 20782, 20783, 20784, + 20785, 20786, 20787, 20788, 20789, 20790, 20791, 20792, 20793, 20794, 20795, 20796, + 20797, 20798, 20799, 20800, 20801, 20802, 20803, 20804, 20805, 20806, 20807, 20808, + 20809, 20810, 20811, 20812, 20813, 20814, 20815, 20816, 20817, 20818, 20819, 20820, + 20821, 20822, 20823, 20824, 20825, 20826, 20827, 20828, 20829, 20830, 20831, 20832, + 20833, 20834, 20835, 20836, 20837, 20838, 20839, 20840, 20841, 20842, 20843, 20844, + 20845, 20846, 20847, 20848, 20849, 20850, 20851, 20852, 20853, 20854, 20855, 20856, + 20857, 20858, 20859, 20860, 20861, 20862, 20863, 20864, 20865, 20866, 20867, 20868, + 20869, 20870, 20871, 20872, 20873, 20874, 20875, 20876, 20877, 20878, 20879, 20880, + 20881, 20882, 20883, 20884, 20885, 20886, 20887, 20888, 20889, 20890, 20891, 20892, + 20893, 20894, 20895, 20896, 20897, 20898, 20899, 20900, 20901, 20902, 20903, 20904, + 20905, 20906, 20907, 20908, 20909, 20910, 20911, 20912, 20913, 20914, 20915, 20916, + 20917, 20918, 20919, 20920, 20921, 20922, 20923, 20924, 20925, 20926, 20927, 20928, + 20929, 20930, 20931, 20932, 20933, 20934, 20935, 20936, 20937, 20938, 20939, 20940, + 20941, 20942, 20943, 20944, 20945, 20946, 20947, 20948, 20949, 20950, 20951, 20952, + 20953, 20954, 20955, 20956, 20957, 20958, 20959, 20960, 20961, 20962, 20963, 20964, + 20965, 20966, 20967, 20968, 20969, 20970, 20971, 20972, 20973, 20974, 20975, 20976, + 20977, 20978, 20979, 20980, 20981, 20982, 20983, 20984, 20985, 20986, 20987, 20988, + 20989, 20990, 20991, 20992, 20993, 20994, 20995, 20996, 20997, 20998, 20999, 21000, + 21001, 21002, 21003, 21004, 21005, 21006, 21007, 21008, 21009, 21010, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2] +- [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 21011, 21012, 21013, 21014, 21015, 21016, + 21017, 21018, 21019, 21020, 21021, 21022, 21023, 21024, 21025, 21026, 21027, 21028, + 21029, 21030, 21031, 21032, 21033, 21034, 21035, 21036, 21037, 21038, 21039, 21040, + 21041, 21042, 21043, 21044, 21045, 21046, 21047, 21048, 21049, 21050, 21051, 21052, + 21053, 21054, 21055, 21056, 21057, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 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, 46127, 46128, + 46129, 46130, 46131, 46132, 46133, 46134, 46135, 46136, 46137, 46138, 46139, 46140, + 46141, 46142, 46143, 46144, 46145, 46146, 46147, 46148, 46149, 46150, 46151, 46152, + 46153, 46154, 46155, 46156, 46157, 46158, 46159, 46160, 46161, 46162, 46163, 46164, + 46165, 46166, 46167, 46168, 46169, 46170, 46171, 46172, 46173, 46174, 46175, 46176, + 46177, 46178, 46179, 46180, 46181, 46182, 46183, 46184, 46185, 46186, 46187, 46188, + 46189, 46190, 46191, 46192, 46193, 46194, 46195, 46196, 46197, 46198, 46199, 46200, + 46201, 46202, 46203, 46204, 46205, 46206, 46207, 46208, 46209, 46210, 46211, 46212, + 46213, 46214, 46215, 46216, 46217, 46218, 46219, 46220, 46221, 46222, 46223, 46224, + 46225, 46226, 46227, 46228, 46229, 46230, 46231, 46232, 46233, 46234, 46235, 46236, + 46237, 46238, 46239, 46240, 46241, 46242, 46243, 46244, 46245, 46246, 46247, 46248, + 46249, 46250, 46251, 46252, 46253, 46254, 46255, 46256, 46257, 46258, 46259, 46260, + 46261, 46262, 46263, 46264, 46265, 46266, 46267, 46268, 46269, 46270, 46271, 46272, + 46273, 46274, 46275, 46276, 46277, 46278, 46279, 46280, 46281, 46282, 46283, 46284, + 46285, 46286, 46287, 46288, 46289, 46290, 46291, 46292, 46293, 46294, 46295, 46296, + 46297, 46298, 46299, 46300, 46301, 46302, 46303, 46304, 46305, 46306, 46307, 46308, + 46309, 46310, 46311, 46312, 46313, 46314, 46315, 46316, 46317, 46318, 46319, 46320, + 46321, 46322, 46323, 46324, 46325, 46326, 46327, 46328, 46329, 46330, 46331, 46332, + 46333, 46334, 46335, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 21085, 21086, 21087, 21088, 21089, 21090, + 21091, 21092, 21093, 21094, 21095, 21096, 21097, 21098, 21099, 21100, 21101, 21102, + 21103, 21104, 21105, 21106, 21107, 21108, 21109, 21110, 21111, 21112, 21113, 21114, + 21115, 21116, 21117, 21118, 21119, 21120, 21121, 21122, 21123, 21124, 21125, 21126, + 21127, 21128, 21129, 21130, 21131, 21132, 21133, 21134, 21135, 21136, 21137, 21138, + 21139, 21140, 21141, 21142, 21143, 21144, 21145, 21146, 21147, 21148, 21149, 21150, + 21151, 21152, 21153, 21154, 21155, 21156, 21157, 21158, 21159, 21160, 21161, 21162, + 21163, 21164, 21165, 21166, 21167, 21168, 21169, 21170, 21171, 21172, 21173, 21174, + 21175, 21176, 21177, 21178, 21179, 21180, 21181, 21182, 21183, 21184, 21185, 21186, + 21187, 21188, 21189, 21190, 21191, 21192, 21193, 21194, 21195, 21196, 21197, 21198, + 21199, 21200, 21201, 21202, 21203, 21204, 21205, 21206, 21207, 21208, 21209, 21210, + 21211, 21212, 21213, 21214, 21215, 21216, 21217, 21218, 21219, 21220, 21221, 21222, + 21223, 21224, 21225, 21226, 21227, 21228, 21229, 21230, 21231, 21232, 21233, 21234, + 21235, 21236, 21237, 21238, 21239, 21240, 21241, 21242, 21243, 21244, 21245, 21246, + 21247, 21248, 21249, 21250, 21251, 21252, 21253, 21254, 21255, 21256, 21257, 21258, + 21259, 21260, 21261, 21262, 21263, 21264, 21265, 21266, 21267, 21268, 21269, 21270, + 21271, 21272, 21273, 21274, 21275, 21276, 21277, 21278, 21279, 21280, 21281, 21282, + 21283, 21284, 21285, 21286, 21287, 21288, 21289, 21290, 21291, 21292, 21293, 21294, + 21295, 21296, 21297, 21298, 21299, 21300, 21301, 21302, 21303, 21304, 21305, 21306, + 21307, 21308, 21309, 21310, 21311, 21312, 21313, 21314, 21315, 21316, 21317, 21318, + 21319, 21320, 21321, 21322, 21323, 21324, 21325, 21326, 21327, 21328, 21329, 21330, + 21331, 21332, 21333, 21334, 21335, 21336, 21337, 21338, 21339, 21340, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2] +- [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 21341, 21342, 21343, 21344, 21345, 21346, + 21347, 21348, 21349, 21350, 21351, 21352, 21353, 21354, 21355, 21356, 21357, 21358, + 21359, 21360, 21361, 21362, 21363, 21364, 21365, 21366, 21367, 21368, 21369, 21370, + 21371, 21372, 21373, 21374, 21375, 21376, 21377, 21378, 21379, 21380, 21381, 21382, + 21383, 21384, 21385, 21386, 21387, 21388, 21389, 21390, 21391, 21392, 21393, 21394, + 21395, 21396, 21397, 21398, 21399, 21400, 21401, 21402, 21403, 21404, 21405, 21406, + 21407, 21408, 21409, 21410, 21411, 21412, 21413, 21414, 21415, 21416, 21417, 21418, + 21419, 21420, 21421, 21422, 21423, 21424, 21425, 21426, 21427, 21428, 21429, 21430, + 21431, 21432, 21433, 21434, 21435, 21436, 21437, 21438, 21439, 21440, 21441, 21442, + 21443, 21444, 21445, 21446, 21447, 21448, 21449, 21450, 21451, 21452, 21453, 21454, + 21455, 21456, 21457, 21458, 21459, 21460, 21461, 21462, 21463, 21464, 21465, 21466, + 21467, 21468, 21469, 21470, 21471, 21472, 21473, 21474, 21475, 21476, 21477, 21478, + 21479, 21480, 21481, 21482, 21483, 21484, 21485, 21486, 21487, 21488, 21489, 21490, + 21491, 21492, 21493, 21494, 21495, 21496, 21497, 21498, 21499, 21500, 21501, 21502, + 21503, 21504, 21505, 21506, 21507, 21508, 21509, 21510, 21511, 21512, 21513, 21514, + 21515, 21516, 21517, 21518, 21519, 21520, 21521, 21522, 21523, 21524, 21525, 21526, + 21527, 21528, 21529, 21530, 21531, 21532, 21533, 21534, 21535, 21536, 21537, 21538, + 21539, 21540, 21541, 21542, 21543, 21544, 21545, 21546, 21547, 21548, 21549, 21550, + 21551, 21552, 21553, 21554, 21555, 21556, 21557, 21558, 21559, 21560, 21561, 21562, + 21563, 21564, 21565, 21566, 21567, 21568, 21569, 21570, 21571, 21572, 21573, 21574, + 21575, 21576, 21577, 21578, 21579, 21580, 21581, 21582, 21583, 21584, 21585, 21586, + 21587, 21588, 21589, 21590, 21591, 21592, 21593, 21594, 21595, 21596, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2] +- [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 21597, 21598, 21599, 21600, 21601, 21602, + 21603, 21604, 21605, 21606, 21607, 21608, 21609, 21610, 21611, 21612, 21613, 21614, + 21615, 21616, 21617, 21618, 21619, 21620, 21621, 21622, 21623, 21624, 21625, 21626, + 21627, 21628, 21629, 21630, 21631, 21632, 21633, 21634, 21635, 21636, 21637, 21638, + 21639, 21640, 21641, 21642, 21643, 21644, 21645, 21646, 21647, 21648, 21649, 21650, + 21651, 21652, 21653, 21654, 21655, 21656, 21657, 21658, 21659, 21660, 21661, 21662, + 21663, 21664, 21665, 21666, 21667, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 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, 50759, 50760, 50761, + 50762, 50763, 50764, 50765, 50766, 50767, 50768, 50769, 50770, 50771, 50772, 50773, + 50774, 50775, 50776, 50777, 50778, 50779, 50780, 50781, 50782, 50783, 50784, 50785, + 50786, 50787, 50788, 50789, 50790, 50791, 50792, 50793, 50794, 50795, 50796, 50797, + 50798, 50799, 50800, 50801, 50802, 50803, 50804, 50805, 50806, 50807, 50808, 50809, + 50810, 50811, 50812, 50813, 50814, 50815, 50816, 50817, 50818, 50819, 50820, 50821, + 50822, 50823, 50824, 50825, 50826, 50827, 50828, 50829, 50830, 50831, 50832, 50833, + 50834, 50835, 50836, 50837, 50838, 50839, 50840, 50841, 50842, 50843, 50844, 50845, + 50846, 50847, 50848, 50849, 50850, 50851, 50852, 50853, 50854, 50855, 50856, 50857, + 50858, 50859, 50860, 50861, 50862, 50863, 50864, 50865, 50866, 50867, 50868, 50869, + 50870, 50871, 50872, 50873, 50874, 50875, 50876, 50877, 50878, 50879, 50880, 50881, + 50882, 50883, 50884, 50885, 50886, 50887, 50888, 50889, 50890, 50891, 50892, 50893, + 50894, 50895, 50896, 50897, 50898, 50899, 50900, 50901, 50902, 50903, 50904, 50905, + 50906, 50907, 50908, 50909, 50910, 50911, 50912, 50913, 50914, 50915, 50916, 50917, + 50918, 50919, 50920, 50921, 50922, 50923, 50924, 50925, 50926, 50927, 50928, 50929, + 50930, 50931, 50932, 50933, 50934, 50935, 50936, 50937, 50938, 50939, 50940, 50941, + 50942, 50943, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 14519, 14520, 14521, 14522, 14523, 14524, + 14525, 14526, 14527, 14528, 14529, 14530, 14531, 14532, 14533, 14534, 14535, 14536, + 14537, 14538, 14539, 14540, 14541, 14542, 14543, 14544, 14545, 14546, 14547, 14548, + 14549, 14550, 14551, 14552, 14553, 14554, 14555, 14556, 14557, 14558, 14559, 14560, + 14561, 14562, 14563, 14564, 14565, 14566, 14567, 14568, 14569, 14570, 14571, 14572, + 14573, 14574, 14575, 14576, 14577, 14578, 14579, 14580, 14581, 14582, 14583, 14584, + 14585, 14586, 14587, 14588, 14589, 14590, 14591, 14592, 14593, 14594, 14595, 14596, + 14597, 14598, 14599, 14600, 14601, 14602, 14603, 14604, 14605, 14606, 14607, 14608, + 14609, 14610, 14611, 14612, 14613, 14614, 14615, 14616, 14617, 14618, 14619, 14620, + 14621, 14622, 14623, 14624, 14625, 14626, 14627, 14628, 14629, 14630, 14631, 14632, + 14633, 14634, 14635, 14636, 14637, 14638, 14639, 14640, 14641, 14642, 14643, 14644, + 14645, 14646, 14647, 14648, 14649, 14650, 14651, 14652, 14653, 14654, 14655, 14656, + 14657, 14658, 14659, 14660, 14661, 14662, 14663, 14664, 14665, 14666, 14667, 14668, + 14669, 14670, 14671, 14672, 14673, 14674, 14675, 14676, 14677, 14678, 14679, 14680, + 14681, 14682, 14683, 14684, 14685, 14686, 14687, 14688, 14689, 14690, 14691, 14692, + 14693, 14694, 14695, 14696, 14697, 14698, 14699, 14700, 14701, 14702, 14703, 14704, + 14705, 14706, 14707, 14708, 14709, 14710, 14711, 14712, 14713, 14714, 14715, 14716, + 14717, 14718, 14719, 14720, 14721, 14722, 14723, 14724, 14725, 14726, 14727, 14728, + 14729, 14730, 14731, 14732, 14733, 14734, 14735, 14736, 14737, 14738, 14739, 14740, + 14741, 14742, 14743, 14744, 14745, 14746, 14747, 14748, 14749, 14750, 14751, 14752, + 14753, 14754, 14755, 14756, 14757, 14758, 14759, 14760, 14761, 14762, 14763, 14764, + 14765, 14766, 14767, 14768, 14769, 14770, 14771, 14772, 14773, 14774, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2] +- [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 14775, 14776, 14777, 14778, 14779, 14780, + 14781, 14782, 14783, 14784, 14785, 14786, 14787, 14788, 14789, 14790, 14791, 14792, + 14793, 14794, 14795, 14796, 14797, 14798, 14799, 14800, 14801, 14802, 14803, 14804, + 14805, 14806, 14807, 14808, 14809, 14810, 14811, 14812, 14813, 14814, 14815, 14816, + 14817, 14818, 14819, 14820, 14821, 14822, 14823, 14824, 14825, 14826, 14827, 14828, + 14829, 14830, 14831, 14832, 14833, 14834, 14835, 14836, 14837, 14838, 14839, 14840, + 14841, 14842, 14843, 14844, 14845, 14846, 14847, 14848, 14849, 14850, 14851, 14852, + 14853, 14854, 14855, 14856, 14857, 14858, 14859, 14860, 14861, 14862, 14863, 14864, + 14865, 14866, 14867, 14868, 14869, 14870, 14871, 14872, 14873, 14874, 14875, 14876, + 14877, 14878, 14879, 14880, 14881, 14882, 14883, 14884, 14885, 14886, 14887, 14888, + 14889, 14890, 14891, 14892, 14893, 14894, 14895, 14896, 14897, 14898, 14899, 14900, + 14901, 14902, 14903, 14904, 14905, 14906, 14907, 14908, 14909, 14910, 14911, 14912, + 14913, 14914, 14915, 14916, 14917, 14918, 14919, 14920, 14921, 14922, 14923, 14924, + 14925, 14926, 14927, 14928, 14929, 14930, 14931, 14932, 14933, 14934, 14935, 14936, + 14937, 14938, 14939, 14940, 14941, 14942, 14943, 14944, 14945, 14946, 14947, 14948, + 14949, 14950, 14951, 14952, 14953, 14954, 14955, 14956, 14957, 14958, 14959, 14960, + 14961, 14962, 14963, 14964, 14965, 14966, 14967, 14968, 14969, 14970, 14971, 14972, + 14973, 14974, 14975, 14976, 14977, 14978, 14979, 14980, 14981, 14982, 14983, 14984, + 14985, 14986, 14987, 14988, 14989, 14990, 14991, 14992, 14993, 14994, 14995, 14996, + 14997, 14998, 14999, 15000, 15001, 15002, 15003, 15004, 15005, 15006, 15007, 15008, + 15009, 15010, 15011, 15012, 15013, 15014, 15015, 15016, 15017, 15018, 15019, 15020, + 15021, 15022, 15023, 15024, 15025, 15026, 15027, 15028, 15029, 15030, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2] +- [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, + 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, + 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 15031, 15032, 15033, 15034, 15035, 15036, + 15037, 15038, 15039, 15040, 15041, 15042, 15043, 15044, 15045, 15046, 15047, 15048, + 15049, 15050, 15051, 15052, 15053, 15054, 15055, 15056, 15057, 15058, 15059, 15060, + 15061, 15062, 15063, 15064, 15065, 15066, 15067, 15068, 15069, 15070, 15071, 15072, + 15073, 15074, 15075, 15076, 15077, 15078, 15079, 15080, 15081, 15082, 15083, 15084, + 15085, 15086, 15087, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 17864, 17865, + 17866, 17867, 17868, 17869, 17870, 17871, 17872, 17873, 17874, 17875, 17876, 17877, + 17878, 17879, 17880, 17881, 17882, 17883, 17884, 17885, 17886, 17887, 17888, 17889, + 17890, 17891, 17892, 17893, 17894, 64450, 7229, 7230, 7231, 7232, 7233, 7234, 7235, + 7236, 7237, 7238, 64450, 64450, 64450, 64450, 704, 705, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 15088, 15089, 15090, 15091, + 15092, 15093, 15094, 15095, 15096, 15097, 15098, 15099, 15100, 15101, 15102, 15103, + 15104, 15105, 15106, 15107, 15108, 15109, 15110, 15111, 15112, 15113, 15114, 15115, + 15116, 15117, 64450, 64450, 0, 0, 0, 0, 0, 648, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 184, 185, 186, 187, 188, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 59961, 59962, + 59963, 59964, 59965, 59966, 59967, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59999, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 60010, 60011, 60012, 60013, 0, 0, 60016, 60017, 60018, 60019, 60020, 60021, 60022, + 60023, 60024, 60025, 60026, 60027, 60028, 60029, 60030, 60031, 60032, 60033, 60034, + 60035, 60036, 60037, 60038, 60039, 60040, 60041, 60042, 60043, 60044, 60045, 60046, + 60047, 60048, 60049, 60050, 60051, 60052, 60053, 60054, 60055, 60056, 60057, 60058, + 60059, 60060, 60061, 60062, 60063, 60064, 60065, 60066, 60067, 60068, 60069, 60070, + 60071, 60072, 60073, 60074, 60075, 60076, 60077, 60078, 60079, 60080, 60081, 60082, + 60083, 60084, 60085, 60086, 60087, 60088, 60089, 60090, 60091, 60092, 60093, 60094, + 60095, 60096, 60097, 60098, 60099, 60100, 60101, 60102, 60103, 60104, 60105, 60106, + 60107, 60108, 60109, 60110, 60111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60142, 60143, 0, 0, 0, 0, 0, 0, 60150, + 60151, 60152, 60153, 60154, 60155, 60156, 60157, 60158, 60159, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 17237, 17238, 17239, 17240, 17241, 17242, + 17243, 17244, 17245, 17246, 17247, 17248, 17249, 17250, 17251, 17252, 17253, 17254, + 17255, 17256, 17257, 17258, 17259, 17260, 17261, 17262, 17263, 17264, 17265, 17266, + 17267, 17268, 17269, 17270, 17271, 17272, 17273, 17274, 17275, 17276, 17277, 17278, + 17279, 17280, 17281, 17282, 17283, 17284, 0, 0, 0, 0, 0, 0, 0, 1143, 1144, 1145, + 1146, 1147, 4049, 4050, 4051, 4052, 17285, 17286, 7173, 7174, 1148, 4053, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 7229, 7230, 7231, + 7232, 7233, 7234, 7235, 7236, 7237, 7238, 64450, 7072, 7073, 7074, 7075, 7076, 7077, + 7078, 64450, 17287, 17288, 17289, 17290, 17291, 17292, 17293, 17294, 17295, 17296, + 17297, 17298, 17299, 17300, 17301, 17302, 17303, 17304, 17305, 17306, 17307, 64450, + 64450, 64450, 64450, 64450, 17308, 17309, 17310, 17311, 17312, 17313, 17314, 17315, + 17316, 17317, 17318, 17319, 17320, 17321, 17322, 17323, 17324, 17325, 17326, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 244, 245, 246, 247, 248, 249, + 250, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 60230, 60231, 60232, 60233, 60234, 60235, 60236, 60237, 60238, 60239, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60250, 0, 0, 0, 0, 0, 0, 0, 60258, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60280, 60281, 60282, 60283, 60284, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60304, 60305, 60306, 60307, + 60308, 60309, 60310, 60311, 60312, 60313, 60314, 60315, 60316, 60317, 60318, 60319, + 60320, 60321, 60322, 60323, 60324, 60325, 60326, 60327, 60328, 60329, 60330, 60331, + 60332, 60333, 60334, 60335, 60336, 60337, 60338, 60339, 60340, 60341, 60342, 60343, + 60344, 60345, 60346, 60347, 60348, 60349, 60350, 60351, 60352, 60353, 60354, 60355, + 60356, 60357, 60358, 60359, 60360, 60361, 60362, 60363, 60364, 60365, 60366, 60367, + 60368, 60369, 60370, 60371, 60372, 60373, 60374, 60375, 60376, 60377, 60378, 60379, + 60380, 60381, 60382, 60383, 60384, 60385, 60386, 60387, 60388, 60389, 60390, 60391, + 60392, 60393, 60394, 60395, 60396, 60397, 60398, 60399, 60400, 60401, 60402, 60403, + 60404, 60405, 60406, 60407, 60408, 60409, 60410, 60411, 60412, 60413, 60414, 60415, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 17018, 17019, 17020, 17021, 17022, 17023, + 17022, 17024, 17025, 17026, 17027, 17028, 17029, 17030, 17031, 17032, 17033, 17034, + 17035, 17033, 17036, 17037, 17038, 17039, 17040, 17041, 17042, 17043, 17044, 17045, + 17046, 17047, 17048, 17049, 17050, 17051, 17052, 17051, 17053, 17054, 17055, 17056, + 17057, 17058, 17059, 17060, 17061, 17062, 17063, 17064, 17065, 17066, 17067, 17068, + 17069, 17070, 17071, 17072, 17073, 17074, 17075, 17076, 17077, 17076, 17078, 17079, + 17080, 17081, 17082, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 17083, 17084, 17085, 17086, 17087, 17088, 17089, 17090, 17091, 17092, + 17093, 17094, 17095, 17096, 17097, 17098, 17099, 17100, 17101, 17102, 17103, 17104, + 17105, 17106, 17107, 17108, 17109, 17110, 17111, 17112, 17113, 17114, 17115, 17116, + 17117, 17118, 17119, 17120, 17121, 17122, 17123, 17124, 17125, 17126, 17127, 17128, + 17129, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 17130, 17131, 17132, 17133, 17134, 17135, 17136, + 17137, 17138, 17139, 17140, 17141, 17142, 17143, 17144, 17145, 17146, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 7177, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, + 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 64450, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 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, 61253, 61254, 61255, 61256, + 61257, 61258, 61259, 61260, 61261, 61262, 61263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 61311, 61312, 61313, 61314, 61315, 61316, 61317, 61318, + 61319, 61320, 61321, 61322, 61323, 61324, 61325, 61326, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 61344, 61345, 61346, 61347, 61348, 61349, 61350, 61351, + 61352, 61353, 61354, 61355, 61356, 61357, 61358, 61359, 61360, 61361, 61362, 61363, + 61364, 61365, 61366, 61367, 61368, 61369, 61370, 61371, 61372, 61373, 61374, 61375, + 61376, 61377, 61378, 61379, 61380, 61381, 61382, 61383, 61384, 61385, 61386, 61387, + 61388, 61389, 61390, 61391, 61392, 61393, 61394, 61395, 61396, 61397, 61398, 61399, + 61400, 61401, 61402, 61403, 61404, 61405, 61406, 61407, 0, 61409, 61410, 61411, + 61412, 61413, 61414, 61415, 61416, 61417, 61418, 61419, 61420, 61421, 61422, 61423, + 61424, 61425, 61426, 61427, 61428, 61429, 61430, 61431, 61432, 61433, 61434, 61435, + 61436, 61437, 61438, 61439, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 15709, 15744, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 17, 14, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 0, 0, 45058, 45059, 45060, 45061, 45062, 45063, 45064, 45065, 45066, + 45067, 45068, 45069, 45070, 45071, 45072, 45073, 45074, 45075, 45076, 45077, 45078, + 45079, 45080, 45081, 45082, 45083, 45084, 45085, 45086, 45087, 45088, 45089, 45090, + 45091, 45092, 45093, 45094, 45095, 45096, 45097, 45098, 45099, 45100, 45101, 45102, + 45103, 45104, 45105, 45106, 45107, 45108, 45109, 45110, 45111, 45112, 45113, 45114, + 45115, 45116, 45117, 45118, 45119, 45120, 45121, 45122, 45123, 45124, 45125, 45126, + 45127, 45128, 45129, 45130, 45131, 45132, 45133, 45134, 45135, 45136, 45137, 45138, + 45139, 45140, 45141, 45142, 45143, 45144, 45145, 45146, 45147, 45148, 45149, 45150, + 45151, 45152, 45153, 45154, 45155, 45156, 45157, 45158, 45159, 45160, 45161, 45162, + 45163, 45164, 45165, 45166, 45167, 45168, 45169, 45170, 45171, 45172, 45173, 45174, + 45175, 45176, 45177, 45178, 45179, 45180, 45181, 45182, 45183, 45184, 45185, 45186, + 45187, 45188, 45189, 45190, 45191, 45192, 45193, 45194, 45195, 45196, 45197, 45198, + 45199, 45200, 45201, 45202, 45203, 45204, 45205, 45206, 45207, 45208, 45209, 45210, + 45211, 45212, 45213, 45214, 45215, 45216, 45217, 45218, 45219, 45220, 45221, 45222, + 45223, 45224, 45225, 45226, 45227, 45228, 45229, 45230, 45231, 45232, 45233, 45234, + 45235, 45236, 45237, 45238, 45239, 45240, 45241, 45242, 45243, 45244, 45245, 45246, + 45247, 45248, 45249, 45250, 45251, 45252, 45253, 45254, 45255, 45256, 45257, 45258, + 45259, 45260, 45261, 45262, 45263, 45264, 45265, 45266, 45267, 45268, 45269, 45270, + 45271, 45272, 45273, 45274, 45275, 45276, 45277, 45278, 45279, 45280, 45281, 45282, + 45283, 45284, 45285, 45286, 45287, 45288, 45289, 45290, 45291, 45292, 45293, 45294, + 45295, 45296, 45297, 45298, 45299, 45300, 45301, 45302, 45303, 45304, 45305, 45306, + 45307, 45308, 45309, 45310, 45311, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, + 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, + 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 17578, 17579, 17580, 17581, 17582, 17583, + 17584, 17585, 17586, 17587, 17588, 17589, 17590, 17591, 17592, 17593, 17594, 17595, + 17596, 17597, 17598, 17599, 17600, 17601, 17602, 17603, 17604, 17605, 17606, 17607, + 17608, 17609, 17610, 17611, 17612, 17613, 17614, 17615, 17616, 17617, 17618, 17619, + 17620, 17621, 17622, 17623, 17624, 17625, 17626, 17627, 17628, 17629, 17630, 17631, + 17632, 17633, 17634, 17635, 17636, 17637, 17638, 17639, 17640, 17641, 17642, 17643, + 17644, 17645, 17646, 17647, 17648, 17649, 17650, 17651, 17652, 17653, 17654, 17655, + 17656, 17657, 17658, 17659, 17660, 17661, 17662, 17663, 17664, 17665, 17666, 17667, + 17668, 17669, 17670, 17671, 17672, 17673, 17674, 17675, 17676, 17677, 17678, 17679, + 17680, 17681, 17682, 17683, 17684, 64451, 64451, 64451, 64451, 64451, 17685, 17686, + 17687, 17688, 17689, 17690, 17691, 17692, 17693, 17694, 17695, 17696, 17697, 64451, + 64451, 64451, 17698, 17699, 17700, 17701, 17702, 17703, 17704, 17705, 17706, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 17707, 17708, 17709, 17710, 17711, 17712, + 17713, 17714, 17715, 17716, 64451, 64451, 4550, 0, 0, 649, 0, 0, 0, 0, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 51, 53, 32, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 48235, 48236, 48237, 48238, + 48239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48253, 48254, 48255, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 48265, 48266, 48267, 48268, 48269, 48270, 48271, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 48282, 48283, 0, 0, 0, 0, 0, 0, 0, 0, 48292, 48293, 48294, 48295, 48296, + 48297, 48298, 48299, 48300, 48301, 48302, 48303, 48304, 48305, 48306, 48307, 48308, + 48309, 48310, 48311, 48312, 48313, 48314, 48315, 48316, 48317, 48318, 48319, 48320, + 48321, 48322, 48323, 48324, 48325, 48326, 48327, 48328, 48329, 48330, 48331, 48332, + 48333, 48334, 48335, 48336, 48337, 48338, 48339, 48340, 48341, 48342, 48343, 48344, + 48345, 48346, 48347, 48348, 48349, 48350, 48351, 48352, 48353, 48354, 48355, 48356, + 48357, 48358, 48359, 48360, 48361, 48362, 48363, 48364, 48365, 48366, 48367, 48368, + 48369, 48370, 48371, 48372, 48373, 48374, 48375, 48376, 48377, 48378, 48379, 48380, + 48381, 48382, 48383, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4054, 4055, 4056, 4057, 4058, 4059, 4060, + 4061, 4062, 4063, 4064, 4065, 4066, 4067, 4068, 4069, 4070, 4071, 4072, 4073, 4074, + 4075, 4076, 4077, 4078, 4079, 4080, 4081, 4082, 4083, 4084, 4085, 4086, 4087, 4088, + 4089, 4090, 4091, 4092, 4093, 4094, 4095, 4096, 4097, 4098, 4099, 4100, 4101, 4102, + 4103, 4104, 4105, 4106, 4107, 4108, 4109, 4110, 4111, 4112, 4113, 4114, 4115, 4116, + 4117, 4118, 4119, 4120, 4121, 4122, 4123, 4124, 4125, 4126, 4127, 4128, 4129, 4130, + 4131, 4132, 4133, 4134, 4135, 4136, 4137, 4138, 4139, 4140, 4141, 4142, 4143, 4144, + 4145, 4146, 4147, 4148, 4149, 4150, 4151, 4152, 4153, 4154, 4155, 4156, 4157, 4158, + 4159, 4160, 4161, 4162, 4163, 4164, 4165, 4166, 4167, 4168, 4169, 4170, 4171, 4172, + 4173, 4174, 4175, 4176, 4177, 4178, 4179, 4180, 4181, 4182, 4183, 4184, 4185, 4186, + 4187, 4188, 4189, 4190, 4191, 4192, 4193, 4194, 4195, 4196, 4197, 4198, 4199, 4200, + 4201, 4202, 4203, 4204, 4205, 4206, 4207, 4208, 4209, 4210, 4211, 4212, 4213, 4214, + 4215, 4216, 4217, 4218, 4219, 4220, 4221, 4222, 4223, 4224, 4225, 4226, 4227, 4228, + 4229, 4230, 4231, 4232, 4233, 4234, 4235, 4236, 4237, 4238, 4239, 4240, 4241, 4242, + 4243, 4244, 4245, 4246, 4247, 4248, 4249, 4250, 4251, 4252, 4253, 4254, 4255, 4256, + 4257, 4258, 4259, 4260, 4261, 4262, 4263, 4264, 4265, 4266, 4267, 4268, 4269, 4270, + 4271, 4272, 4273, 4274, 4275, 4276, 4277, 4278, 4279, 4280, 4281, 4282, 4283, 4284, + 4285, 4286, 4287, 4288, 4289, 4290, 4291, 4292, 4293, 4294, 4295, 4296, 4297, 4298, + 4299, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 53494, 53495, 53496, 53497, 53498, 53499, 53500, 53501, + 53502, 53503, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, + 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4300, 4301, 4302, 4303, 4304, 4305, 4306, + 4307, 4308, 4309, 4310, 4311, 4312, 4313, 4314, 4315, 4316, 4317, 4318, 4319, 4320, + 4321, 4322, 4323, 4324, 4325, 4326, 4327, 4328, 4329, 4330, 4331, 4332, 4333, 4334, + 4335, 4336, 4337, 4338, 64451, 64451, 4358, 4342, 4343, 4344, 4345, 4346, 4347, + 4348, 4349, 4350, 4351, 4352, 4353, 4354, 4355, 4356, 4357, 4359, 4360, 4361, 4362, + 4363, 4364, 4365, 4366, 4367, 4368, 4369, 4370, 4371, 4372, 4373, 4374, 4375, 4376, + 4377, 4378, 4379, 4380, 4381, 4382, 4383, 4384, 4385, 4386, 4387, 4388, 4389, 4390, + 4391, 4392, 4393, 4394, 4388, 4389, 4389, 4389, 4389, 4389, 4389, 0, 0, 0, 0, 0, + 4395, 4396, 4397, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 4398, 4399, 0, 0, 0, 0, 0, 0, 0, 4400, 4401, 4402, 4403, 4404, 4405, 4406, 4407, + 4408, 4409, 4410, 4411, 4412, 4413, 4414, 4415, 4416, 4417, 4418, 4419, 4420, 4421, + 4422, 4423, 4424, 4425, 4426, 4427, 4428, 4429, 0, 0, 0, 0, 4430, 4431, 4432, 4433, + 4434, 4435, 4436, 4437, 4438, 4439, 4440, 4441, 4442, 4441, 4442, 4441, 4442, 4441, + 4442, 4443, 4444, 4445, 4446, 4447, 4448, 4449, 4450, 4451, 4452, 4453, 4454, 4455, + 4456, 4457, 4458, 4459, 4460, 4461, 4462, 4463, 4464, 4465, 4466, 4467, 4468, 4469, + 4470, 4471, 4472, 4473, 4474, 4475, 4476, 4477, 4478, 4479, 4480, 4481, 4482, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, + 0, 0, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 32, 32, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, + 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, + 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, + 2, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 53543, 53544, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 53737, 53738, 53739, 53740, 53741, 53742, 53743, 53744, + 53745, 53746, 53747, 53748, 53749, 53750, 53751, 53752, 53753, 53754, 53755, 53756, + 53757, 53758, 53759, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4483, 4484, 4485, 4486, 4487, 4488, 4489, + 4490, 4491, 4492, 4493, 4494, 4495, 4496, 4497, 4498, 4499, 4500, 4501, 4502, 4503, + 4504, 4505, 4506, 4507, 4508, 4509, 4510, 4511, 4512, 4513, 4514, 4515, 4516, 4517, + 4518, 4519, 4520, 4521, 4522, 4523, 4524, 4525, 4526, 4527, 4528, 4529, 4530, 4531, + 4532, 4533, 4534, 4535, 4536, 4537, 4538, 4539, 4540, 4541, 4542, 4543, 4544, 4545, + 4546, 4547, 4548, 0, 0, 0, 4549, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 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, 53830, 53831, 53832, + 53833, 53834, 53835, 53836, 53837, 53838, 53839, 53840, 53841, 53842, 53843, 53844, + 53845, 53846, 53847, 53848, 53849, 53850, 53851, 53852, 53853, 53854, 53855, 53856, + 53857, 53858, 53859, 53860, 53861, 53862, 53863, 53864, 53865, 53866, 53867, 53868, + 53869, 53870, 53871, 53872, 53873, 53874, 53875, 53876, 53877, 53878, 53879, 53880, + 53881, 53882, 53883, 53884, 53885, 53886, 53887, 53888, 53889, 53890, 53891, 53892, + 53893, 53894, 53895, 53896, 53897, 53898, 53899, 53900, 53901, 53902, 53903, 53904, + 53905, 53906, 53907, 53908, 53909, 53910, 53911, 53912, 53913, 53914, 53915, 53916, + 53917, 53918, 53919, 53920, 53921, 53922, 53923, 53924, 53925, 53926, 53927, 53928, + 53929, 53930, 53931, 53932, 53933, 53934, 53935, 53936, 53937, 53938, 53939, 53940, + 53941, 53942, 53943, 53944, 53945, 53946, 53947, 53948, 53949, 53950, 53951, 53952, + 53953, 53954, 53955, 53956, 53957, 53958, 53959, 53960, 53961, 53962, 53963, 53964, + 53965, 53966, 53967, 53968, 53969, 53970, 53971, 53972, 53973, 53974, 53975, 53976, + 53977, 53978, 53979, 53980, 53981, 53982, 53983, 53984, 53985, 53986, 53987, 53988, + 53989, 53990, 53991, 53992, 53993, 53994, 53995, 53996, 53997, 53998, 53999, 54000, + 54001, 54002, 54003, 54004, 54005, 54006, 54007, 54008, 54009, 54010, 54011, 54012, + 54013, 54014, 54015, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3818, 3819, 3820, 3821, 3822, 3823, 3824, + 3825, 3826, 3827, 3828, 3829, 3830, 3831, 3832, 3833, 3834, 3835, 3836, 3837, 3838, + 3839, 3840, 3841, 3842, 3843, 3844, 3845, 3846, 3847, 3848, 3849, 3850, 3851, 3852, + 3853, 3854, 3855, 3856, 3857, 3858, 3859, 3860, 3861, 3862, 3863, 3864, 3865, 3866, + 3867, 3868, 3869, 3870, 3871, 3872, 3873, 3874, 3875, 3876, 3877, 3878, 3879, 3880, + 3881, 3882, 3883, 3884, 3885, 3886, 3887, 3888, 3889, 3890, 3891, 3892, 3893, 3894, + 3895, 3896, 3897, 3898, 3899, 3900, 3901, 3902, 3903, 3904, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 7230, 7231, 7232, 7233, 7234, 7235, 7236, + 7237, 7238, 7151, 7152, 7153, 7154, 7155, 7156, 7157, 7158, 7159, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 54103, 54104, 54105, 54106, 54107, 54108, 54109, 54110, 54111, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54130, 54131, 54132, 54133, 54134, + 54135, 54136, 54137, 54138, 54139, 54140, 54141, 54142, 54143, 54144, 54145, 54146, + 54147, 54148, 54149, 54150, 54151, 54152, 54153, 54154, 54155, 54156, 54157, 54158, + 54159, 54160, 54161, 54162, 54163, 54164, 54165, 54166, 54167, 54168, 54169, 54170, + 54171, 54172, 54173, 54174, 54175, 54176, 54177, 54178, 54179, 54180, 54181, 54182, + 54183, 54184, 54185, 54186, 54187, 54188, 54189, 54190, 54191, 54192, 54193, 54194, + 54195, 54196, 54197, 54198, 54199, 54200, 54201, 54202, 54203, 54204, 54205, 54206, + 54207, 54208, 54209, 54210, 54211, 54212, 54213, 54214, 54215, 54216, 54217, 54218, + 54219, 54220, 54221, 54222, 54223, 54224, 54225, 54226, 54227, 54228, 54229, 54230, + 54231, 54232, 54233, 54234, 54235, 54236, 54237, 54238, 54239, 54240, 54241, 54242, + 54243, 54244, 54245, 54246, 54247, 54248, 54249, 54250, 54251, 54252, 54253, 54254, + 54255, 54256, 54257, 54258, 54259, 54260, 54261, 54262, 54263, 54264, 54265, 54266, + 54267, 54268, 54269, 54270, 54271, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, + 1, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, + 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 7239, 7264, 7290, 7311, 7338, 7397, 7412, + 7448, 7474, 7500, 7525, 7543, 7594, 7609, 7645, 7692, 7713, 7731, 7793, 7829, 7861, + 7907, 7925, 7935, 7947, 7969, 7239, 7264, 7290, 7311, 7338, 7397, 7412, 7448, 7474, + 7500, 7525, 7543, 7594, 7609, 7645, 7692, 7713, 7731, 7793, 7829, 7861, 7907, 7925, + 7935, 7947, 7969, 7239, 7264, 7290, 7311, 7338, 7397, 7412, 7448, 7474, 7500, 7525, + 7543, 7594, 7609, 7645, 7692, 7713, 7731, 7793, 7829, 7861, 7907, 7925, 7935, 7947, + 7969, 7239, 7264, 7290, 7311, 7338, 7397, 7412, 64451, 7474, 7500, 7525, 7543, 7594, + 7609, 7645, 7692, 7713, 7731, 7793, 7829, 7861, 7907, 7925, 7935, 7947, 7969, 7239, + 7264, 7290, 7311, 7338, 7397, 7412, 7448, 7474, 7500, 7525, 7543, 7594, 7609, 7645, + 7692, 7713, 7731, 7793, 7829, 7861, 7907, 7925, 7935, 7947, 7969, 7239, 7264, 7290, + 7311, 7338, 7397, 7412, 7448, 7474, 7500, 7525, 7543, 7594, 7609, 7645, 7692, 7713, + 7731, 7793, 7829, 7861, 7907, 7925, 7935, 7947, 7969, 7239, 64451, 7290, 7311, 64451, + 64451, 7412, 64451, 64451, 7500, 7525, 64451, 64451, 7609, 7645, 7692, 7713, 64451, + 7793, 7829, 7861, 7907, 7925, 7935, 7947, 7969, 7239, 7264, 7290, 7311, 64451, 7397, + 64451, 7448, 7474, 7500, 7525, 7543, 7594, 7609, 64451, 7692, 7713, 7731, 7793, + 7829, 7861, 7907, 7925, 7935, 7947, 7969, 7239, 7264, 7290, 7311, 7338, 7397, 7412, + 7448, 7474, 7500, 7525, 7543, 7594, 7609, 7645, 7692, 7713, 7731, 7793, 7829, 7861, + 7907, 7925, 7935, 7947, 7969, 7239, 7264, 7290, 7311, 7338, 7397, 7412, 7448, 7474, + 7500, 7525, 7543, 7594, 7609, 7645, 7692, 7713, 7731, 7793, 7829, 7861, 7907, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 11, 11, 11, 11, 11, + 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, + 11, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, + 11, 11, 11, 11, 11, 11, 5, 5, 5, 5, 5, 5, 5, 2, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, + 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 11, 2, 11, 11, 2, 2, 11, 2, 2, 11, 11, + 2, 2, 11, 11, 11, 11, 2, 11, 11, 11, 11, 11, 11, 11, 11, 5, 5, 5, 5, 2, 5, 2, 5, + 5, 5, 5, 5, 5, 5, 2, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 11, 11, 11, 11, 11, 11, 11, + 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54357, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54429, 0, 0, 54432, 54433, 0, 54435, + 54436, 0, 0, 54439, 54440, 0, 0, 0, 0, 54445, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 54458, 0, 54460, 0, 0, 0, 0, 0, 0, 0, 54468, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, + 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, + 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 7925, 7935, 7947, 7969, 7239, 7264, 64451, + 7311, 7338, 7397, 7412, 64451, 64451, 7500, 7525, 7543, 7594, 7609, 7645, 7692, + 7713, 64451, 7793, 7829, 7861, 7907, 7925, 7935, 7947, 64451, 7239, 7264, 7290, + 7311, 7338, 7397, 7412, 7448, 7474, 7500, 7525, 7543, 7594, 7609, 7645, 7692, 7713, + 7731, 7793, 7829, 7861, 7907, 7925, 7935, 7947, 7969, 7239, 7264, 64451, 7311, 7338, + 7397, 7412, 64451, 7474, 7500, 7525, 7543, 7594, 64451, 7645, 64451, 64451, 64451, + 7793, 7829, 7861, 7907, 7925, 7935, 7947, 64451, 7239, 7264, 7290, 7311, 7338, 7397, + 7412, 7448, 7474, 7500, 7525, 7543, 7594, 7609, 7645, 7692, 7713, 7731, 7793, 7829, + 7861, 7907, 7925, 7935, 7947, 7969, 7239, 7264, 7290, 7311, 7338, 7397, 7412, 7448, + 7474, 7500, 7525, 7543, 7594, 7609, 7645, 7692, 7713, 7731, 7793, 7829, 7861, 7907, + 7925, 7935, 7947, 7969, 7239, 7264, 7290, 7311, 7338, 7397, 7412, 7448, 7474, 7500, + 7525, 7543, 7594, 7609, 7645, 7692, 7713, 7731, 7793, 7829, 7861, 7907, 7925, 7935, + 7947, 7969, 7239, 7264, 7290, 7311, 7338, 7397, 7412, 7448, 7474, 7500, 7525, 7543, + 7594, 7609, 7645, 7692, 7713, 7731, 7793, 7829, 7861, 7907, 7925, 7935, 7947, 7969, + 7239, 7264, 7290, 7311, 7338, 7397, 7412, 7448, 7474, 7500, 7525, 7543, 7594, 7609, + 7645, 7692, 7713, 7731, 7793, 7829, 7861, 7907, 7925, 7935, 7947, 7969, 7239, 7264, + 7290, 7311, 7338, 7397, 7412, 7448, 7474, 7500, 7525, 7543, 7594, 7609, 7645, 7692, + 7713, 7731, 7793, 7829, 7861, 7907, 7925, 7935, 7947, 7969, 7239, 7264, 7290, 7311, + 7338, 7397, 7412, 7448, 7474, 7500, 7525, 7543, 7594, 7609, 7645, 7692, 7713, 7731, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 5, 5, 5, 5, 11, + 11, 2, 11, 11, 11, 11, 2, 2, 11, 11, 11, 11, 11, 11, 11, 11, 2, 11, 11, 11, 11, + 11, 11, 11, 2, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 11, 11, 2, 11, 11, 11, 11, 2, 11, 11, 11, 11, 11, 2, 11, 2, 2, 2, 11, + 11, 11, 11, 11, 11, 11, 2, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, + 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 11, 11, 11, 11, 11, 11, 11, 11, 11, + 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 11, 11, 11, 11, + 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, + 11, 11, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, + 54534, 0, 0, 0, 0, 54539, 54540, 0, 0, 0, 0, 0, 0, 0, 0, 54549, 0, 0, 0, 0, 0, 0, + 0, 54557, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 54586, 0, 0, 0, 0, 54591, 0, 0, 0, 0, 0, 54597, 0, 54599, 54600, 54601, + 0, 0, 0, 0, 0, 0, 0, 54609, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 7793, 7829, 7861, 7907, 7925, 7935, 7947, + 7969, 7239, 7264, 7290, 7311, 7338, 7397, 7412, 7448, 7474, 7500, 7525, 7543, 7594, + 7609, 7645, 7692, 7713, 7731, 7793, 7829, 7861, 7907, 7925, 7935, 7947, 7969, 7239, + 7264, 7290, 7311, 7338, 7397, 7412, 7448, 7474, 7500, 7525, 7543, 7594, 7609, 7645, + 7692, 7713, 7731, 7793, 7829, 7861, 7907, 7925, 7935, 7947, 7969, 7239, 7264, 7290, + 7311, 7338, 7397, 7412, 7448, 7474, 7500, 7525, 7543, 7594, 7609, 7645, 7692, 7713, + 7731, 7793, 7829, 7861, 7907, 7925, 7935, 7947, 7969, 7239, 7264, 7290, 7311, 7338, + 7397, 7412, 7448, 7474, 7500, 7525, 7543, 7594, 7609, 7645, 7692, 7713, 7731, 7793, + 7829, 7861, 7907, 7925, 7935, 7947, 7969, 7239, 7264, 7290, 7311, 7338, 7397, 7412, + 7448, 7474, 7500, 7525, 7543, 7594, 7609, 7645, 7692, 7713, 7731, 7793, 7829, 7861, + 7907, 7925, 7935, 7947, 7969, 7239, 7264, 7290, 7311, 7338, 7397, 7412, 7448, 7474, + 7500, 7525, 7543, 7594, 7609, 7645, 7692, 7713, 7731, 7793, 7829, 7861, 7907, 7925, + 7935, 7947, 7969, 7478, 7504, 64451, 64451, 8121, 8122, 8123, 8125, 8126, 8130, + 8132, 8133, 8134, 8136, 8137, 8139, 8140, 8141, 8142, 8143, 8148, 8133, 8151, 8155, + 8156, 8157, 8158, 8159, 8161, 1548, 8121, 8122, 8123, 8125, 8126, 8130, 8132, 8133, + 8134, 8136, 8137, 8139, 8140, 8141, 8142, 8143, 8148, 8151, 8151, 8155, 8156, 8157, + 8158, 8159, 8161, 1544, 8126, 8133, 8136, 8157, 8148, 8143, 8121, 8122, 8123, 8125, + 8126, 8130, 8132, 8133, 8134, 8136, 8137, 8139, 8140, 8141, 8142, 8143, 8148, 8133, + 8151, 8155, 8156, 8157, 8158, 8159, 8161, 1548, 8121, 8122, 8123, 8125, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 5, 5, 5, 5, 5, 5, 5, 5, + 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, + 11, 11, 11, 11, 11, 11, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, + 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, + 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 2, 2, 11, 11, + 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, + 11, 11, 11, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, + 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54950, + 54951, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 8126, 8130, 8132, 8133, 8134, 8136, 8137, + 8139, 8140, 8141, 8142, 8143, 8148, 8151, 8151, 8155, 8156, 8157, 8158, 8159, 8161, + 1544, 8126, 8133, 8136, 8157, 8148, 8143, 8121, 8122, 8123, 8125, 8126, 8130, 8132, + 8133, 8134, 8136, 8137, 8139, 8140, 8141, 8142, 8143, 8148, 8133, 8151, 8155, 8156, + 8157, 8158, 8159, 8161, 1548, 8121, 8122, 8123, 8125, 8126, 8130, 8132, 8133, 8134, + 8136, 8137, 8139, 8140, 8141, 8142, 8143, 8148, 8151, 8151, 8155, 8156, 8157, 8158, + 8159, 8161, 1544, 8126, 8133, 8136, 8157, 8148, 8143, 8121, 8122, 8123, 8125, 8126, + 8130, 8132, 8133, 8134, 8136, 8137, 8139, 8140, 8141, 8142, 8143, 8148, 8133, 8151, + 8155, 8156, 8157, 8158, 8159, 8161, 1548, 8121, 8122, 8123, 8125, 8126, 8130, 8132, + 8133, 8134, 8136, 8137, 8139, 8140, 8141, 8142, 8143, 8148, 8151, 8151, 8155, 8156, + 8157, 8158, 8159, 8161, 1544, 8126, 8133, 8136, 8157, 8148, 8143, 8121, 8122, 8123, + 8125, 8126, 8130, 8132, 8133, 8134, 8136, 8137, 8139, 8140, 8141, 8142, 8143, 8148, + 8133, 8151, 8155, 8156, 8157, 8158, 8159, 8161, 1548, 8121, 8122, 8123, 8125, 8126, + 8130, 8132, 8133, 8134, 8136, 8137, 8139, 8140, 8141, 8142, 8143, 8148, 8151, 8151, + 8155, 8156, 8157, 8158, 8159, 8161, 1544, 8126, 8133, 8136, 8157, 8148, 8143, 8127, + 8127, 64451, 64451, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, + 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7229, 7230, 7231, 7232, + 7233, 7234, 7235, 7236, 7237, 7238, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, + 7237, 7238, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 11, 11, 11, 11, 11, + 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, + 11, 11, 11, 11, 11, 11, 11, 11, 11, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 11, 11, 11, 11, 11, 11, 11, + 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 11, 5, 2, 2, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55244, 55245, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6207, 6208, 6209, 6210, 6211, 6212, 6213, + 6214, 6215, 6216, 6217, 6218, 6219, 6220, 6221, 6222, 6223, 6224, 6225, 6226, 6227, + 6228, 6229, 6230, 6231, 6232, 6233, 6234, 6235, 6236, 6237, 6238, 6239, 6240, 6241, + 6242, 6243, 6244, 6245, 6246, 6247, 6248, 6249, 6250, 6251, 6252, 6253, 6254, 6255, + 6256, 6257, 6258, 6259, 6260, 6261, 6262, 6263, 6264, 6265, 6266, 6267, 6268, 6269, + 6270, 6271, 6272, 6273, 6274, 6275, 6276, 6277, 6278, 6279, 6280, 6281, 6282, 6283, + 6284, 6285, 6286, 6287, 6288, 6289, 6290, 6291, 6292, 6293, 6294, 6295, 6296, 6297, + 6298, 6299, 6300, 6301, 6302, 6303, 6304, 6305, 6306, 6307, 6308, 6309, 6310, 6311, + 6312, 6313, 6314, 6315, 6316, 6317, 6318, 6319, 6320, 6321, 6322, 6323, 6324, 6325, + 6326, 6327, 6328, 6329, 6330, 6331, 6332, 6333, 6334, 6335, 6336, 6337, 6338, 6339, + 6340, 6341, 6342, 6343, 6344, 6345, 6346, 6347, 6348, 6349, 6350, 6351, 6352, 6353, + 6354, 6355, 6356, 6357, 6358, 6359, 6360, 6361, 6362, 6363, 6364, 6365, 6366, 6367, + 6368, 6369, 6370, 6371, 6372, 6373, 6374, 6375, 6376, 6377, 6378, 6379, 6380, 6381, + 6382, 6383, 6384, 6385, 6386, 6387, 6388, 6389, 6390, 6391, 6392, 6393, 6394, 6395, + 6396, 6397, 6398, 6399, 6400, 6401, 6402, 6403, 6404, 6405, 6406, 6407, 6408, 6409, + 6410, 6411, 6412, 6413, 6414, 6415, 6416, 6417, 6418, 6419, 6420, 6421, 6422, 6423, + 6424, 6425, 6426, 6427, 6428, 6429, 6430, 6431, 6432, 6433, 6434, 6435, 6436, 6437, + 6438, 6439, 6440, 6441, 6442, 6443, 6444, 6445, 6446, 6447, 6448, 6449, 6450, 6451, + 6452, 6453, 6454, 6455, 6456, 6457, 6458, 6459, 6460, 6461, 6462, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2] +- [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6463, 6464, 6465, 6466, 6467, 6468, 6469, + 6470, 6471, 6472, 6473, 6474, 6475, 6476, 6477, 6478, 6479, 6480, 6481, 6482, 6483, + 6484, 6485, 6486, 6487, 6488, 6489, 6490, 6491, 6492, 6493, 6494, 6495, 6496, 6497, + 6498, 6499, 6500, 6501, 6502, 6503, 6504, 6505, 6506, 6507, 6508, 6509, 6510, 6511, + 6512, 6513, 6514, 6515, 6516, 6517, 6518, 6519, 6520, 6521, 6522, 6523, 6524, 6525, + 6526, 6527, 6528, 6529, 6530, 6531, 6532, 6533, 6534, 6535, 6536, 6537, 6538, 6539, + 6540, 6541, 6542, 6543, 6544, 6545, 6546, 6547, 6548, 6549, 6550, 6551, 6552, 6553, + 6554, 6555, 6556, 6557, 6558, 6559, 6560, 6561, 6562, 6563, 6564, 6565, 6566, 6567, + 6568, 6569, 6570, 6571, 6572, 6573, 6574, 6575, 6576, 6577, 6578, 6579, 6580, 6581, + 6582, 6583, 6584, 6585, 6586, 6587, 6588, 6589, 6590, 6591, 6592, 6593, 6594, 6595, + 6596, 6597, 6598, 6599, 6600, 6601, 6602, 6603, 6604, 6605, 6606, 6607, 6608, 6609, + 6610, 6611, 6612, 6613, 6614, 6615, 6616, 6617, 6618, 6619, 6620, 6621, 6622, 6623, + 6624, 6625, 6626, 6627, 6628, 6629, 6630, 6631, 6632, 6633, 6634, 6635, 6636, 6637, + 6638, 6639, 6640, 6641, 6642, 6643, 6644, 6645, 6646, 6647, 6648, 6649, 6650, 6651, + 6652, 6653, 6654, 6655, 6656, 6657, 6658, 6659, 6660, 6661, 6662, 6663, 6664, 6665, + 6666, 6667, 6668, 6669, 6670, 6671, 6672, 6673, 6674, 6675, 6676, 6677, 6678, 6679, + 6680, 6681, 6682, 6683, 6684, 6685, 6686, 6687, 6688, 6689, 6690, 6691, 6692, 6693, + 6694, 6695, 6696, 6697, 6698, 6699, 6700, 6701, 6702, 6703, 6704, 6705, 6706, 6707, + 6708, 6709, 6710, 6711, 6712, 6713, 6714, 6715, 6716, 6717, 6718, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2] +- [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 6719, 6720, 6721, 6722, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6723, 6724, 6725, 6726, 6727, + 6728, 6729, 6730, 0, 6731, 6732, 6733, 6734, 6735, 6736, 6737, 6738, 6739, 6740, + 6741, 6742, 6743, 6744, 0, 6745, 6746, 1149, 1150, 1151, 1152, 1153, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 0, 0, 0, 0, 0, 64451, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, + 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, + 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 2, 2, 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, 2, 2, 2, 2, 2, 2, 2, 2, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 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, 55948, 55949, 55950, 55951, 55952, 55953, 55954, 55955, + 55956, 55957, 55958, 55959, 55960, 55961, 55962, 0, 0, 0, 0, 0, 55968, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55984, 55985, 55986, 55987, 55988, 55989, 55990, + 55991, 55992, 55993, 55994, 55995, 55996, 55997, 55998, 55999, 56000, 56001, 56002, + 56003, 56004, 56005, 56006, 56007, 56008, 56009, 56010, 56011, 56012, 56013, 56014, + 56015, 56016, 56017, 56018, 56019, 56020, 56021, 56022, 56023, 56024, 56025, 56026, + 56027, 56028, 56029, 56030, 56031, 56032, 56033, 56034, 56035, 56036, 56037, 56038, + 56039, 56040, 56041, 56042, 56043, 56044, 56045, 56046, 56047, 56048, 56049, 56050, + 56051, 56052, 56053, 56054, 56055, 56056, 56057, 56058, 56059, 56060, 56061, 56062, + 56063, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, + 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 8677, 8678, 8679, 8680, 8681, 8682, 8683, + 64451, 8685, 8686, 8687, 8688, 8689, 8690, 8691, 8692, 8693, 8694, 8695, 8696, 8697, + 8698, 8699, 8700, 8701, 64451, 64451, 8704, 8705, 8706, 8707, 8708, 8709, 8710, + 64451, 8712, 8713, 64451, 8715, 8716, 8717, 8718, 8719, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 4, 4, 4, 4, 4, 4, 4, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 2, 2, 4, 4, 4, 4, 4, 4, 4, 2, 4, 4, 2, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 57351, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57369, 57370, 0, 0, 0, 0, 0, + 0, 0, 57378, 0, 0, 57381, 0, 0, 0, 0, 0, 57387, 57388, 57389, 57390, 57391, 57392, + 57393, 57394, 57395, 57396, 57397, 57398, 57399, 57400, 57401, 57402, 57403, 57404, + 57405, 57406, 57407, 57408, 57409, 57410, 57411, 57412, 57413, 57414, 57415, 57416, + 57417, 57418, 57419, 57420, 57421, 57422, 57423, 57424, 57425, 57426, 57427, 57428, + 57429, 57430, 57431, 57432, 57433, 57434, 57435, 57436, 57437, 57438, 57439, 57440, + 57441, 57442, 57443, 57444, 57445, 57446, 57447, 57448, 57449, 57450, 57451, 57452, + 57453, 57454, 57455, 57456, 57457, 57458, 57459, 57460, 57461, 57462, 57463, 57464, + 57465, 57466, 57467, 57468, 57469, 57470, 57471, 57472, 57473, 57474, 57475, 57476, + 57477, 57478, 57479, 57480, 57481, 57482, 57483, 57484, 57485, 57486, 57487, 57488, + 57489, 57490, 57491, 57492, 57493, 57494, 57495, 57496, 57497, 57498, 57499, 57500, + 57501, 57502, 57503, 57504, 57505, 57506, 57507, 57508, 57509, 57510, 57511, 57512, + 57513, 57514, 57515, 57516, 57517, 57518, 57519, 57520, 57521, 57522, 57523, 57524, + 57525, 57526, 57527, 57528, 57529, 57530, 57531, 57532, 57533, 57534, 57535, 57536, + 57537, 57538, 57539, 57540, 57541, 57542, 57543, 57544, 57545, 57546, 57547, 57548, + 57549, 57550, 57551, 57552, 57553, 57554, 57555, 57556, 57557, 57558, 57559, 57560, + 57561, 57562, 57563, 57564, 57565, 57566, 57567, 57568, 57569, 57570, 57571, 57572, + 57573, 57574, 57575, 57576, 57577, 57578, 57579, 57580, 57581, 57582, 57583, 57584, + 57585, 57586, 57587, 57588, 57589, 57590, 57591, 57592, 57593, 57594, 57595, 57596, + 57597, 57598, 57599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 15118, 15119, 15120, 15121, 15122, 15123, + 15124, 15125, 15126, 15127, 15128, 15129, 15130, 15131, 15132, 15133, 15134, 15135, + 15136, 15137, 15138, 15139, 15140, 15141, 15142, 15143, 15144, 15145, 15146, 15147, + 15148, 15149, 15150, 15151, 15152, 15153, 15154, 15155, 15156, 15157, 15158, 15159, + 15160, 15161, 15162, 15163, 15164, 15165, 15166, 15167, 15168, 15169, 15170, 15171, + 15172, 15173, 15174, 15175, 15176, 15177, 15178, 15179, 15180, 15181, 15182, 15183, + 15184, 15185, 15186, 15187, 15188, 15189, 15190, 15191, 15192, 15193, 15194, 15195, + 15196, 15197, 15198, 15199, 15200, 15201, 15202, 15203, 15204, 15205, 15206, 15207, + 15208, 15209, 15210, 15211, 15212, 15213, 15214, 15215, 15216, 15217, 15218, 15219, + 15220, 15221, 15222, 15223, 15224, 15225, 15226, 15227, 15228, 15229, 15230, 15231, + 15232, 15233, 15234, 15235, 15236, 15237, 15238, 15239, 15240, 15241, 15242, 15243, + 15244, 15245, 15246, 15247, 15248, 15249, 15250, 15251, 15252, 15253, 15254, 15255, + 15256, 15257, 15258, 15259, 15260, 15261, 15262, 15263, 15264, 15265, 15266, 15267, + 15268, 15269, 15270, 15271, 15272, 15273, 15274, 15275, 15276, 15277, 15278, 15279, + 15280, 15281, 15282, 15283, 15284, 15285, 15286, 15287, 15288, 15289, 15290, 15291, + 15292, 15293, 15294, 15295, 15296, 15297, 15298, 15299, 15300, 15301, 15302, 15303, + 15304, 15305, 15306, 15307, 15308, 15309, 15310, 15311, 15312, 15313, 15314, 64451, + 64451, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 0, 0, 0, 0, 0, 0, 0, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, + 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 59589, 59590, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59607, 59608, 59609, 59610, 59611, + 59612, 59613, 59614, 59615, 59616, 59617, 59618, 59619, 59620, 59621, 59622, 59623, + 59624, 59625, 59626, 59627, 59628, 59629, 59630, 59631, 59632, 59633, 59634, 59635, + 59636, 59637, 59638, 59639, 59640, 59641, 59642, 59643, 59644, 59645, 59646, 59647, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 15315, 15316, 15317, 15318, 15319, 15320, + 15321, 15322, 15323, 15324, 15325, 15326, 15327, 15328, 15329, 15330, 15331, 15332, + 15333, 15334, 15335, 15336, 15337, 15338, 15339, 15340, 15341, 15342, 15343, 15344, + 15345, 15346, 15347, 15348, 15315, 15316, 15317, 15318, 15319, 15320, 15321, 15322, + 15323, 15324, 15325, 15326, 15327, 15328, 15329, 15330, 15331, 15332, 15333, 15334, + 15335, 15336, 15337, 15338, 15339, 15340, 15341, 15342, 15343, 15344, 15345, 15346, + 15347, 15348, 0, 0, 0, 0, 0, 0, 0, 64451, 64451, 64451, 64451, 64451, 7229, 7230, + 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 64451, 64451, 64451, 64451, 613, + 628, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 189, 189, 189, 191, + 192, 193, 190, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 59723, 59724, 59725, 59726, 59727, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 59738, 59739, 59740, 59741, 0, 0, 59744, 59745, 59746, 59747, + 59748, 59749, 59750, 59751, 59752, 59753, 59754, 59755, 59756, 59757, 59758, 59759, + 59760, 59761, 59762, 59763, 59764, 59765, 59766, 59767, 59768, 59769, 59770, 59771, + 59772, 59773, 59774, 59775, 59776, 59777, 59778, 59779, 59780, 59781, 59782, 59783, + 59784, 59785, 59786, 59787, 59788, 59789, 59790, 59791, 59792, 59793, 59794, 59795, + 59796, 59797, 59798, 59799, 59800, 59801, 59802, 59803, 59804, 59805, 59806, 59807, + 59808, 59809, 59810, 59811, 59812, 59813, 59814, 59815, 59816, 59817, 59818, 59819, + 59820, 59821, 59822, 59823, 59824, 59825, 59826, 59827, 59828, 59829, 59830, 59831, + 59832, 59833, 59834, 59835, 59836, 59837, 59838, 59839, 59840, 59841, 59842, 59843, + 59844, 59845, 59846, 59847, 59848, 59849, 59850, 59851, 59852, 59853, 59854, 59855, + 59856, 59857, 59858, 59859, 59860, 59861, 59862, 59863, 59864, 59865, 59866, 59867, + 59868, 59869, 59870, 59871, 59872, 59873, 59874, 59875, 59876, 59877, 59878, 59879, + 59880, 59881, 59882, 59883, 59884, 59885, 59886, 59887, 59888, 59889, 59890, 59891, + 59892, 59893, 59894, 59895, 59896, 59897, 59898, 59899, 59900, 59901, 59902, 59903, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 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, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, + 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 1, 1, 1, 2, + 1, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 2, + 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, + 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 8971, 8973, 8997, 9015, 64451, 9143, 9031, + 9004, 9066, 9158, 9095, 9116, 9123, 9127, 9049, 9070, 9078, 9060, 9090, 9030, 9050, + 8989, 8990, 9005, 9016, 9061, 9067, 9071, 8972, 9128, 9079, 9089, 64451, 8973, 8997, + 64451, 9137, 64451, 64451, 9004, 64451, 9158, 9095, 9116, 9123, 9127, 9049, 9070, + 9078, 9060, 9090, 64451, 9050, 8989, 8990, 9005, 64451, 9061, 64451, 9071, 64451, + 64451, 64451, 64451, 64451, 64451, 8997, 64451, 64451, 64451, 64451, 9004, 64451, + 9158, 64451, 9116, 64451, 9127, 9049, 9070, 64451, 9060, 9090, 64451, 9050, 64451, + 64451, 9005, 64451, 9061, 64451, 9071, 64451, 9128, 64451, 9089, 64451, 8973, 8997, + 64451, 9137, 64451, 64451, 9004, 9066, 9158, 9095, 64451, 9123, 9127, 9049, 9070, + 9078, 9060, 9090, 64451, 9050, 8989, 8990, 9005, 64451, 9061, 9067, 9071, 8972, + 64451, 9079, 64451, 8971, 8973, 8997, 9015, 9137, 9143, 9031, 9004, 9066, 9158, + 64451, 9116, 9123, 9127, 9049, 9070, 9078, 9060, 9090, 9030, 9050, 8989, 8990, 9005, + 9016, 9061, 9067, 9071, 64451, 64451, 64451, 64451, 64451, 8973, 8997, 9015, 64451, + 9143, 9031, 9004, 9066, 9158, 64451, 9116, 9123, 9127, 9049, 9070, 9078, 9060, 9090, + 9030, 9050, 8989, 8990, 9005, 9016, 9061, 9067, 9071, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 1275, 1276, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 5, 5, 5, 5, 2, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 2, 5, 5, 2, 5, 2, 2, 5, 2, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 2, 5, 5, 5, 5, 2, 5, 2, 5, 2, 2, 2, 2, 2, 2, 5, 2, 2, 2, 2, 5, 2, 5, 2, 5, 2, + 5, 5, 5, 2, 5, 5, 2, 5, 2, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 5, 2, 5, 2, 2, 5, + 5, 5, 5, 2, 5, 5, 5, 5, 5, 5, 5, 2, 5, 5, 5, 5, 2, 5, 5, 5, 5, 2, 5, 2, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 2, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 2, 2, + 2, 2, 2, 5, 5, 5, 2, 5, 5, 5, 5, 5, 2, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 60932, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60960, 0, 0, + 60963, 0, 60965, 60966, 0, 60968, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60979, 0, 0, 0, + 0, 60984, 0, 60986, 0, 60988, 60989, 60990, 60991, 60992, 60993, 0, 60995, 60996, + 60997, 60998, 0, 61000, 0, 61002, 0, 61004, 0, 0, 0, 61008, 0, 0, 61011, 0, 61013, + 61014, 0, 61016, 0, 61018, 0, 61020, 0, 61022, 0, 61024, 0, 0, 61027, 0, 61029, + 61030, 0, 0, 0, 0, 61035, 0, 0, 0, 0, 0, 0, 0, 61043, 0, 0, 0, 0, 61048, 0, 0, 0, + 0, 61053, 0, 61055, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61066, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 61084, 61085, 61086, 61087, 61088, 0, 0, 0, 61092, 0, + 0, 0, 0, 0, 61098, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61116, 61117, + 61118, 61119, 61120, 61121, 61122, 61123, 61124, 61125, 61126, 61127, 61128, 61129, + 61130, 61131, 61132, 61133, 61134, 61135, 61136, 61137, 61138, 61139, 61140, 61141, + 61142, 61143, 61144, 61145, 61146, 61147, 61148, 61149, 61150, 61151, 61152, 61153, + 61154, 61155, 61156, 61157, 61158, 61159, 61160, 61161, 61162, 61163, 61164, 61165, + 61166, 61167, 0, 0, 61170, 61171, 61172, 61173, 61174, 61175, 61176, 61177, 61178, + 61179, 61180, 61181, 61182, 61183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4551, 4552, 4553, 4554, 4555, 4556, 4557, + 4558, 4559, 4560, 4561, 4562, 4563, 4564, 4565, 4566, 4567, 4568, 4569, 4570, 4571, + 4572, 4573, 4574, 4575, 4576, 4577, 4578, 4579, 4580, 4581, 4582, 4583, 4584, 4585, + 4586, 4587, 4588, 4589, 4590, 4591, 4592, 4593, 4594, 64451, 64451, 64451, 64451, + 4595, 4596, 4597, 4598, 4599, 4600, 4601, 4602, 4603, 4604, 4605, 4606, 4607, 4608, + 4609, 4610, 4611, 4612, 4613, 4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 4622, + 4623, 4624, 4625, 4626, 4627, 4628, 4629, 4630, 4631, 4632, 4633, 4634, 4635, 4636, + 4637, 4638, 4639, 4640, 4641, 4642, 4643, 4644, 4645, 4646, 4647, 4648, 4649, 4650, + 4651, 4652, 4653, 4654, 4655, 4656, 4657, 4658, 4659, 4660, 4661, 4662, 4663, 4664, + 4665, 4666, 4667, 4668, 4669, 4670, 4671, 4672, 4673, 4674, 4675, 4676, 4677, 4678, + 4679, 4680, 4681, 4682, 4683, 4684, 4685, 4686, 4687, 4688, 4689, 4690, 4691, 4692, + 4693, 4694, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 4695, 4696, 4697, 4698, 4699, 4700, 4701, 4702, 4703, 4704, 4705, + 4706, 4707, 4708, 4709, 64451, 64451, 4710, 4711, 4712, 4713, 4714, 4715, 4716, + 4717, 4718, 4719, 4720, 4721, 4722, 4723, 4724, 64451, 4725, 4726, 4727, 4728, 4729, + 4730, 4731, 4732, 4733, 4734, 4735, 4736, 4737, 4738, 4739, 64451, 4740, 4741, 4742, + 4743, 4744, 4745, 4746, 4747, 4748, 4749, 4750, 4751, 4752, 4753, 4754, 4755, 4756, + 4757, 4758, 4759, 4760, 4761, 4762, 4763, 4764, 4765, 4766, 4767, 4768, 4769, 4770, + 4771, 4772, 4773, 4774, 4775, 4776, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 61484, 61485, 61486, 61487, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 61588, 61589, 61590, 61591, 61592, 61593, 61594, 61595, 61596, 61597, + 61598, 61599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61615, 61616, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61632, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 61648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61686, 61687, 61688, 61689, 61690, 61691, + 61692, 61693, 61694, 61695, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 2, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, + 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 3, 2, 2, 3, 3, 2, 2, 7, 2, 2, 2, 3, 3, + 4, 3, 4, 1, 2, 3, 6, 8, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 7229, 7229, 7230, 7231, 7232, 7233, 7234, + 7235, 7236, 7237, 7238, 7229, 7229, 64451, 64451, 64451, 791, 791, 791, 791, 791, + 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, + 791, 791, 791, 791, 791, 889, 7290, 7731, 7290, 7925, 64451, 7239, 7264, 7290, 7311, + 7338, 7397, 7412, 7448, 7474, 7500, 7525, 7543, 7594, 7609, 7645, 7692, 7713, 7731, + 7793, 7829, 7861, 7907, 7925, 7935, 7947, 7969, 7448, 7594, 7793, 7793, 7692, 7925, + 7239, 7264, 7290, 7311, 7338, 7397, 7412, 7448, 7474, 7500, 7525, 7543, 7594, 7609, + 7645, 7692, 7713, 7731, 7793, 7829, 7861, 7907, 7925, 7935, 7947, 7969, 7594, 7594, + 64451, 64451, 64451, 64451, 7239, 7264, 7290, 7311, 7338, 7397, 7412, 7448, 7474, + 7500, 7525, 7543, 7594, 7609, 7645, 7692, 7713, 7731, 7793, 7829, 7861, 7907, 7925, + 7935, 7947, 7969, 7692, 7474, 7692, 7793, 7239, 7925, 7311, 7290, 7290, 7397, 7474, + 7609, 7609, 7645, 7793, 7861, 7907, 7232, 7231, 7231, 7233, 7237, 7234, 7236, 7231, + 7235, 7230, 7311, 7448, 7448, 7448, 7543, 7793, 7861, 7907, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 2567, 2568, 2569, 2570, 2571, 2572, 2573, + 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 2584, 2585, 2586, 2587, + 2588, 2589, 2590, 2591, 2592, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6, 6, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 12, 12, 12, 12, 2, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 12, 12, 12, 12, 12, 12, 12, 12, 12, + 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 20, 20, 2, 2, + 2, 2, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, + 29, 29, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 631, 546, 546, 546, 546, 546, 546, 546, 546, 546, 546, 0, 0, 61709, + 61710, 61711, 7239, 7264, 7290, 7311, 7338, 7397, 7412, 7448, 7474, 7500, 7525, + 7543, 7594, 7609, 7645, 7692, 7713, 7731, 7793, 7829, 7861, 7907, 7925, 7935, 7947, + 7969, 7793, 0, 0, 7311, 7969, 61743, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7907, 7907, 7311, 7793, 7692, 7290, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7290, 7311, 61804, + 61805, 61806, 61807, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 7290, 7239, 7239, 7264, 7290, 7500, 7543, 7645, 7731, 7311, + 7338, 7412, 7525, 7645, 7692, 7793, 7311, 7609, 7525, 7525, 7525, 631, 631, 7231, + 7229, 7231, 0, 7290, 7311, 7474, 7645, 7448, 7448, 7645, 61869, 61870, 61871, 61872, + 61873, 61874, 61875, 61876, 61877, 61878, 61879, 61880, 61881, 61882, 61883, 61884, + 61885, 61886, 61887, 61888, 61889, 61890, 61891, 61892, 61893, 61894, 61895, 61896, + 61897, 61898, 61899, 61900, 61901, 61902, 61903, 61904, 61905, 61906, 61907, 61908, + 61909, 61910, 61911, 61912, 61913, 61914, 61915, 61916, 61917, 61918, 61919, 61920, + 61921, 61922, 61923, 61924, 61925, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, + 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 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, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 12, 12, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, + 29, 29, 29, 29, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 28, 29, 29, 29, 28, 28, 28, 28, 28, 0, 28, 28, 28, 28, 29, + 29, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 792, 792, 792, 792, + 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, + 792, 792, 792, 792, 792, 792, 890, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7907, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 7645, 7338, 0, 7925, 0, 0, 7793, 608, 0, 0, 7311, 0, 0, + 0, 7230, 7230, 631, 7692, 7229, 0, 0, 7731, 521, 7793, 7907, 7311, 7311, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 0, 32, 0, 0, 32, + 32, 0, 0, 32, 0, 0, 0, 32, 32, 32, 32, 32, 0, 0, 32, 32, 32, 32, 32, 32, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 29, 0, 29, 0, 0, 29, 28, 0, 0, 28, 0, 0, 0, 28, + 28, 28, 29, 28, 0, 0, 29, 28, 28, 29, 29, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 7543, 7338, 0, 0, 0, 0, 0, 0, 0, 0, 521, 0, 0, 0, 0, 0, 7231, 0, 7692, 0, 0, + 0, 7731, 7793, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 0, 0, 0, + 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 32, 0, 32, 0, 0, 0, 32, 32, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 29, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, + 28, 0, 29, 0, 0, 0, 29, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 7793, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7338, 7543, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 28, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7290, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7793, 7338, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, + 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7731, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 7793, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7793, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 15736, 15716, 15717, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64320, 64320, + 64320, 15725, 64320, 64320, 64321, 64320, 64320, 64320, 64320, 64320, 64320, 64320, + 64320, 64320, 64320, 64320, 64320, 64321, 64320, 64320, 64320, 64320, 64320, 64320, + 64320, 64321, 64320, 64320, 64320, 64320, 64321, 64320, 64320, 64320, 64320, 64320, + 64320, 64320, 64320, 64320, 64320, 64321, 64451, 64451, 64451, 64451, 889, 889, + 889, 889, 889, 889, 889, 889, 889, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64320, 64320, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 28, 28, 28, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, + 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, + 28, 28, 28, 28, 28, 28, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, + 2, 6, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 15712, 15716, 0, 61955, 61956, 61957, + 61958, 61959, 61960, 61961, 61962, 61963, 61964, 61965, 61966, 61967, 57931, 56151, + 54220, 0, 52876, 55578, 35299, 55593, 52900, 58912, 61729, 58777, 53837, 57228, + 53645, 58800, 53789, 64834, 62751, 36009, 55536, 54329, 61204, 58005, 58197, 52736, + 52745, 36938, 56806, 52781, 54259, 58119, 36208, 57939, 63873, 64122, 54280, 61056, + 59145, 59144, 62771, 53874, 54710, 37197, 62012, 62013, 62014, 62015, 64320, 64320, + 64320, 64320, 64320, 64320, 64320, 64320, 64320, 62025, 62026, 62027, 62028, 62029, + 62030, 62031, 57239, 54255, 62034, 62035, 62036, 62037, 62038, 62039, 62040, 62041, + 62042, 62043, 62044, 62045, 62046, 62047, 62048, 62049, 62050, 62051, 62052, 62053, + 62054, 62055, 62056, 62057, 62058, 62059, 62060, 62061, 62062, 62063, 62064, 62065, + 62066, 62067, 62068, 62069, 62070, 62071, 62072, 62073, 62074, 62075, 62076, 62077, + 62078, 62079, 62080, 62081, 62082, 62083, 62084, 62085, 62086, 62087, 62088, 62089, + 62090, 62091, 62092, 62093, 62094, 62095, 62096, 62097, 62098, 62099, 62100, 62101, + 62102, 62103, 62104, 62105, 62106, 62107, 62108, 62109, 62110, 62111, 62112, 62113, + 62114, 62115, 62116, 62117, 62118, 62119, 62120, 62121, 62122, 62123, 62124, 62125, + 62126, 62127, 62128, 62129, 62130, 62131, 62132, 62133, 62134, 62135, 62136, 62137, + 62138, 62139, 62140, 62141, 62142, 62143, 62144, 62145, 62146, 62147, 62148, 62149, + 62150, 62151, 62152, 62153, 62154, 62155, 62156, 62157, 62158, 62159, 62160, 62161, + 62162, 62163, 62164, 62165, 62166, 62167, 62168, 62169, 62170, 62171, 62172, 62173, + 62174, 62175, 62176, 62177, 62178, 62179, 62180, 62181, 62182, 62183, 62184, 62185, + 62186, 62187, 62188, 62189, 62190, 62191, 62192, 62193, 62194, 62195, 62196, 62197, + 62198, 62199, 62200, 62201, 62202, 62203, 62204, 62205, 62206, 62207, 32, 32, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 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, 4, 4, + 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59180, 52745, 52876, 56201, 61625, 57939, 63191, 53981, + 58711, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 890, 890, 890, 890, 890, 890, 890, 890, 890, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4777, 4778, 4779, 4780, 4781, 4782, 4783, + 4784, 4785, 4786, 4787, 4788, 4789, 4790, 4791, 4792, 4793, 4794, 4795, 4796, 4797, + 4798, 4799, 4800, 4801, 4802, 4803, 4804, 4805, 4806, 4807, 4808, 4809, 4810, 4811, + 4812, 4813, 4814, 4815, 4816, 4817, 4818, 4819, 4820, 4821, 4822, 4823, 4824, 4825, + 4826, 4827, 4828, 4829, 4830, 4831, 4832, 4833, 4834, 4835, 4836, 4837, 4838, 4839, + 4840, 4841, 4842, 4843, 4844, 4845, 4846, 4847, 4848, 4849, 4850, 4851, 4852, 4853, + 4854, 4855, 4856, 4857, 4858, 4859, 4860, 4861, 4862, 4863, 4864, 4865, 4866, 4867, + 4868, 4869, 4870, 4871, 4872, 4873, 4874, 4875, 4876, 4877, 4878, 4879, 4880, 4881, + 4882, 4883, 4884, 4885, 4886, 4887, 4888, 4889, 4890, 4891, 4892, 4893, 4894, 4895, + 4896, 4897, 4898, 4899, 4900, 4901, 4902, 4903, 4904, 4905, 4906, 4907, 4908, 4909, + 4910, 4911, 4912, 4913, 4914, 4915, 4916, 4917, 4918, 4919, 4920, 4921, 4922, 4923, + 4924, 4925, 4926, 4927, 4928, 4929, 4930, 4931, 4932, 4933, 4934, 4935, 4936, 4937, + 4938, 4939, 4940, 4941, 4942, 4943, 4944, 4945, 4946, 4947, 4948, 4949, 4950, 4951, + 4952, 4953, 4954, 4955, 4956, 4957, 4958, 4959, 4960, 4961, 4962, 4963, 4964, 4965, + 4966, 4967, 4968, 4969, 4970, 4971, 4972, 4973, 4974, 4975, 4976, 4977, 4978, 4979, + 4980, 4981, 4982, 4983, 4984, 4985, 4986, 4987, 4988, 4989, 4990, 4991, 4992, 4993, + 4994, 4995, 4996, 4997, 4998, 4999, 5000, 5001, 5002, 5003, 5004, 5005, 5006, 5007, + 5008, 5009, 5010, 5011, 5012, 5013, 5014, 5015, 5016, 5017, 5018, 5019, 5020, 5021, + 5022, 5023, 5024, 5025, 5026, 5027, 5028, 5029, 5030, 5031, 5032, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2] +- [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5033, 5034, 5035, 5036, 5037, 5038, 5039, + 5040, 5041, 5042, 5043, 5044, 5045, 5046, 5047, 5048, 5049, 5050, 5051, 5052, 5053, + 5054, 5055, 5056, 5057, 5058, 5059, 5060, 5061, 5062, 5063, 5064, 5065, 5066, 5067, + 5068, 5069, 5070, 5071, 5072, 5073, 5074, 5075, 5076, 5077, 5078, 5079, 5080, 5081, + 5082, 5083, 5084, 5085, 5086, 5087, 5088, 5089, 5090, 5091, 5092, 5093, 5094, 5095, + 5096, 5097, 5098, 5099, 5100, 5101, 5102, 5103, 5104, 5105, 5106, 5107, 5108, 5109, + 5110, 5111, 5112, 5113, 5114, 5115, 5116, 5117, 5118, 5119, 5120, 5121, 5122, 5123, + 5124, 5125, 5126, 5127, 5128, 5129, 5130, 5131, 5132, 5133, 5134, 5135, 5136, 5137, + 5138, 5139, 5140, 5141, 5142, 5143, 5144, 5145, 5146, 5147, 5148, 5149, 5150, 5151, + 5152, 5153, 5154, 5155, 5156, 5157, 5158, 5159, 5160, 5161, 5162, 5163, 5164, 5165, + 5166, 5167, 5168, 5169, 5170, 5171, 5172, 5173, 5174, 5175, 5176, 5177, 5178, 5179, + 5180, 5181, 5182, 5183, 5184, 5185, 5186, 5187, 5188, 5189, 5190, 5191, 5192, 5193, + 5194, 5195, 5196, 5197, 5198, 5199, 5200, 5201, 5202, 5203, 5204, 5205, 5206, 5207, + 5208, 5209, 5210, 5211, 5212, 5213, 5214, 5215, 5216, 5217, 5218, 5219, 5220, 5221, + 5222, 5223, 5224, 5225, 5226, 5227, 5228, 5229, 5230, 5231, 5232, 5233, 5234, 5235, + 5236, 5237, 5238, 5239, 5240, 5241, 5242, 5243, 5244, 5245, 5246, 5247, 5248, 5249, + 5250, 5251, 5252, 5253, 5254, 5255, 5256, 5257, 5258, 5259, 5260, 5261, 5262, 5263, + 5264, 5265, 5266, 5267, 5268, 5269, 5270, 5271, 5272, 5273, 5274, 5275, 5276, 5277, + 5278, 5279, 5280, 5281, 5282, 5283, 5284, 5285, 5286, 5287, 5288, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2] +- [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5289, 5290, 5291, 5292, 5293, 5294, 5295, + 5296, 5297, 5298, 5299, 5300, 5301, 5302, 5303, 5304, 5305, 5306, 5307, 5308, 5309, + 5310, 5311, 5312, 5313, 5314, 5315, 5316, 5317, 5318, 5319, 5320, 5321, 5322, 5323, + 5324, 5325, 5326, 5327, 5328, 5329, 5330, 5331, 5332, 5333, 5334, 5335, 5336, 5337, + 5338, 5339, 5340, 5341, 5342, 5343, 5344, 5345, 5346, 5347, 5348, 5349, 5350, 5351, + 5352, 5353, 5354, 5355, 5356, 5357, 5358, 5359, 5360, 5361, 5362, 5363, 5364, 5365, + 5366, 5367, 5368, 5369, 5370, 5371, 5372, 5373, 5374, 5375, 5376, 5377, 5378, 5379, + 5380, 5381, 5382, 5383, 5384, 5385, 5386, 5387, 5388, 5389, 5390, 5391, 5392, 5393, + 5394, 5395, 5396, 5397, 5398, 5399, 5400, 5401, 5402, 5403, 5404, 5405, 5406, 5407, + 5408, 5409, 5410, 5411, 5412, 5413, 5414, 5415, 5416, 5417, 5418, 5419, 5420, 5421, + 5422, 5423, 5424, 5425, 5426, 5427, 5428, 5429, 5430, 5431, 5432, 5433, 5434, 5435, + 5436, 5437, 5438, 5439, 5440, 5441, 5442, 5443, 5444, 5445, 5446, 5447, 5448, 5449, + 5450, 5451, 5452, 5453, 5454, 5455, 5456, 5457, 5458, 5459, 5460, 5461, 5462, 5463, + 5464, 5465, 5466, 5467, 5468, 5469, 5470, 5471, 5472, 5473, 5474, 5475, 5476, 5477, + 5478, 5479, 5480, 5481, 5482, 5483, 5484, 5485, 5486, 5487, 5488, 5489, 5490, 5491, + 5492, 5493, 5494, 5495, 5496, 5497, 5498, 5499, 5500, 5501, 5502, 5503, 5504, 5505, + 5506, 5507, 5508, 5509, 5510, 5511, 5512, 5513, 5514, 5515, 5516, 5517, 5518, 5519, + 5520, 5521, 5522, 5523, 5524, 5525, 5526, 5527, 5528, 5529, 5530, 5531, 5532, 5533, + 5534, 5535, 5536, 5537, 5538, 5539, 5540, 5541, 5542, 5543, 5544, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2] +- [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, + 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5627, 5628, 5629, 5630, 5631, 5632, 5633, + 5634, 5635, 5636, 5637, 5638, 5639, 5640, 5641, 5642, 5643, 5644, 5645, 5646, 5647, + 5648, 5649, 5650, 5651, 5652, 5653, 5654, 5655, 5656, 5657, 5658, 5659, 5660, 5661, + 5662, 5663, 5664, 5665, 5666, 5667, 5668, 5669, 5670, 5671, 5672, 5673, 5674, 5675, + 5676, 5677, 5678, 5679, 5680, 5681, 5682, 5683, 5684, 5685, 5686, 5687, 5688, 5689, + 5690, 5691, 5692, 5693, 5694, 5695, 5696, 5697, 5698, 5699, 5700, 5701, 5702, 5703, + 5704, 5705, 5706, 5707, 5708, 5709, 5710, 5711, 5712, 5713, 5714, 5715, 5716, 5717, + 5718, 5719, 5720, 5721, 5722, 5723, 5724, 5725, 5726, 5727, 5728, 5729, 5730, 5731, + 5732, 5733, 5734, 5735, 5736, 5737, 5738, 5739, 5740, 5741, 5742, 5743, 5744, 5745, + 5746, 5747, 5748, 5749, 5750, 5751, 5752, 5753, 5754, 5755, 5756, 5757, 5758, 5759, + 5760, 5761, 5762, 5763, 5764, 5765, 5766, 5767, 5768, 5769, 5770, 5771, 5772, 5773, + 5774, 5775, 5776, 5777, 5778, 5779, 5780, 5781, 5782, 5783, 5784, 5785, 5786, 5787, + 5788, 5789, 5790, 5791, 5792, 5793, 5794, 5795, 5796, 5797, 5798, 5799, 5800, 5801, + 5802, 5803, 5804, 5805, 5806, 5807, 5808, 5809, 5810, 5811, 5812, 5813, 5814, 5815, + 5816, 5817, 5818, 5819, 5820, 5821, 5822, 5823, 5824, 5825, 5826, 5827, 5828, 5829, + 5830, 5831, 5832, 5833, 5834, 5835, 5836, 5837, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 5838, 5839, 5840, 5841, + 5842, 5843, 5844, 5845, 5846, 5847, 5848, 5849, 5850, 64451, 64451, 64451, 5851, + 5852, 5853, 5854, 5855, 5856, 5857, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 63187, 63188, 63189, 63190, 63191, 63192, 63193, 63194, 63195, + 63196, 63197, 63198, 63199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63213, 63214, + 63215, 0, 0, 0, 0, 0, 0, 0, 63223, 63224, 63225, 63226, 63227, 63228, 63229, 63230, + 63231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5858, 5859, 5860, 5861, 5862, 5863, 5864, + 5865, 5866, 5867, 5868, 5869, 5870, 5871, 5872, 5873, 5874, 5875, 5876, 5877, 5878, + 5879, 5880, 5881, 5882, 5883, 5884, 5885, 5886, 5887, 5888, 5889, 5890, 5891, 5892, + 5893, 5894, 5895, 5896, 5897, 5898, 5899, 5900, 5901, 5902, 5903, 5904, 5905, 5906, + 5907, 5908, 5909, 5910, 5911, 5912, 5913, 5914, 5915, 5916, 5917, 5918, 5919, 5920, + 5921, 5922, 5923, 5924, 5925, 5926, 5927, 5928, 5929, 5930, 5931, 5932, 5933, 5934, + 5935, 5936, 5937, 5938, 5939, 5940, 5941, 5942, 5943, 5944, 5945, 5946, 5947, 5948, + 5949, 5950, 5951, 5952, 5953, 5954, 5955, 5956, 5957, 5958, 5959, 5960, 5961, 5962, + 5963, 5964, 5965, 5966, 5967, 5968, 5969, 5970, 5971, 5972, 5973, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 5974, 5975, + 5976, 5977, 5978, 5979, 5980, 5981, 5982, 5983, 5984, 5985, 5986, 5987, 5988, 5989, + 5990, 5991, 5992, 5993, 5994, 5995, 5996, 5997, 5998, 5999, 6000, 6001, 6002, 6003, + 6004, 6005, 6006, 6007, 6008, 6009, 6010, 6011, 6012, 6013, 6014, 6015, 6016, 6017, + 6018, 6019, 6020, 6021, 6022, 6023, 6024, 6025, 6026, 6027, 6028, 6029, 6030, 6031, + 6032, 6033, 6034, 6035, 6036, 6037, 6038, 6039, 6040, 6041, 6042, 6043, 6044, 6045, + 6046, 6047, 6048, 6049, 6050, 6051, 6052, 6053, 6054, 6055, 6056, 6057, 6058, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 63348, 63349, 63350, 63351, 63352, 63353, 63354, 63355, 63356, 63357, 63358, + 63359, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 63445, 63446, 63447, 63448, 63449, 63450, 63451, 63452, 63453, + 63454, 63455, 63456, 63457, 63458, 63459, 63460, 63461, 63462, 63463, 63464, 63465, + 63466, 63467, 63468, 63469, 63470, 63471, 63472, 63473, 63474, 63475, 63476, 63477, + 63478, 63479, 63480, 63481, 63482, 63483, 63484, 63485, 63486, 63487, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6059, 6060, 6061, 6062, 6063, 6064, 6065, + 6066, 6067, 6068, 6069, 6070, 64451, 64451, 64451, 64451, 6071, 6072, 6073, 6074, + 6075, 6076, 6077, 6078, 6079, 6080, 6081, 6082, 6083, 6084, 6085, 6086, 6087, 6088, + 6089, 6090, 6091, 6092, 6093, 6094, 6095, 6096, 6097, 6098, 6099, 6100, 6101, 6102, + 6103, 6104, 6105, 6106, 6107, 6108, 6109, 6110, 6111, 6112, 6113, 6114, 6115, 6116, + 6117, 6118, 6119, 6120, 6121, 6122, 6123, 6124, 6125, 6126, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 6127, 6128, 6129, 6130, 6131, 6132, 6133, 6134, + 6135, 6136, 64451, 64451, 64451, 64451, 64451, 64451, 6137, 6138, 6139, 6140, 6141, + 6142, 6143, 6144, 6145, 6146, 6147, 6148, 6149, 6150, 6151, 6152, 6153, 6154, 6155, + 6156, 6157, 6158, 6159, 6160, 6161, 6162, 6163, 6164, 6165, 6166, 6167, 6168, 6169, + 6170, 6171, 6172, 6173, 6174, 6175, 6176, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 6177, 6178, 6179, 6180, 6181, 6182, 6183, 6184, 6185, 6186, 6187, + 6188, 6189, 6190, 6191, 6192, 6193, 6194, 6195, 6196, 6197, 6198, 6199, 6200, 6201, + 6202, 6203, 6204, 6205, 6206, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63500, 63501, + 63502, 63503, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 63560, 63561, 63562, 63563, 63564, 63565, 63566, 63567, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 63578, 63579, 63580, 63581, 63582, 63583, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 63624, 63625, 63626, 63627, 63628, 63629, 63630, 63631, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 63662, 63663, 63664, 63665, 63666, 63667, 63668, 63669, 63670, 63671, 63672, + 63673, 63674, 63675, 63676, 63677, 63678, 63679, 63680, 63681, 63682, 63683, 63684, + 63685, 63686, 63687, 63688, 63689, 63690, 63691, 63692, 63693, 63694, 63695, 63696, + 63697, 63698, 63699, 63700, 63701, 63702, 63703, 63704, 63705, 63706, 63707, 63708, + 63709, 63710, 63711, 63712, 63713, 63714, 63715, 63716, 63717, 63718, 63719, 63720, + 63721, 63722, 63723, 63724, 63725, 63726, 63727, 63728, 63729, 63730, 63731, 63732, + 63733, 63734, 63735, 63736, 63737, 63738, 63739, 63740, 63741, 63742, 63743, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 5545, 5546, + 5547, 5548, 5549, 5550, 5551, 5552, 5553, 5554, 5555, 5556, 5557, 5558, 5559, 64451, + 5560, 5561, 5562, 5563, 5564, 5565, 5566, 5567, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 5568, 64451, 64451, 5569, 5570, 5571, 5572, 5573, 5574, 5575, + 5576, 5577, 5578, 5579, 5580, 64451, 5581, 5582, 5583, 5584, 5585, 5586, 5587, 5588, + 5589, 5590, 5591, 5592, 64451, 64451, 64451, 64451, 5593, 5594, 5595, 5596, 5597, + 5598, 5599, 5600, 5601, 5602, 5603, 5604, 5605, 5606, 5607, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 5608, 5609, 5610, 5611, 5612, 5613, 5614, + 5615, 5616, 5617, 5618, 5619, 5620, 5621, 5622, 5623, 5624, 5625, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 5626, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, 64451, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 63744, 63745, 63746, 63747, 63748, 63749, 63750, 63751, 63752, + 63753, 63754, 63755, 63756, 63757, 63758, 63759, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 63775, 0, 0, 0, 0, 0, 0, 0, 0, 63784, 63785, 63786, 63787, 63788, 63789, + 63790, 63791, 0, 63793, 63794, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63807, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63820, 63821, 63822, 63823, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 63839, 63840, 63841, 63842, 63843, 63844, 63845, 63846, 63847, + 63848, 63849, 63850, 63851, 63852, 63853, 63854, 63855, 63856, 63857, 63858, 63859, + 63860, 63861, 63862, 63863, 63864, 63865, 63866, 63867, 63868, 63869, 63870, 63871, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63890, 63891, 63892, 63893, + 63894, 63895, 63896, 63897, 63898, 63899, 63900, 63901, 63902, 63903, 63904, 63905, + 63906, 63907, 63908, 63909, 63910, 63911, 63912, 63913, 63914, 63915, 63916, 63917, + 63918, 63919, 63920, 63921, 63922, 63923, 63924, 63925, 63926, 63927, 63928, 63929, + 63930, 63931, 63932, 63933, 63934, 63935, 0, 63937, 63938, 63939, 63940, 63941, + 63942, 63943, 63944, 63945, 63946, 63947, 63948, 63949, 63950, 63951, 63952, 63953, + 63954, 63955, 63956, 63957, 63958, 63959, 63960, 63961, 63962, 63963, 63964, 63965, + 63966, 63967, 63968, 63969, 63970, 63971, 63972, 63973, 63974, 63975, 63976, 63977, + 63978, 63979, 63980, 63981, 63982, 63983, 63984, 63985, 63986, 63987, 63988, 63989, + 63990, 63991, 63992, 63993, 63994, 63995, 63996, 63997, 63998, 63999, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 64320, 64320, 64320, 64388, 64320, 64320, + 64320, 64320, 64320, 64320, 64320, 64320, 64384, 64388, 64320, 64320, 64320, 64320, + 64388, 64384, 64320, 64320, 64388, 64320, 64320, 64320, 64320, 64320, 64389, 64320, + 64320, 64384, 64320, 64320, 64320, 64320, 64384, 64320, 64320, 64320, 64320, 64320, + 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64388, 64320, + 64320, 64320, 64388, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, + 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, + 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64388, + 64320, 64320, 64320, 64320, 64320, 64320, 64388, 64388, 64320, 64320, 64320, 64320, + 64320, 64384, 64384, 64320, 64320, 64320, 64388, 64320, 64320, 64320, 64320, 64388, + 64320, 64320, 64320, 64320, 64384, 64320, 64320, 64320, 64320, 64388, 64320, 64388, + 64320, 64320, 64320, 64320, 64320, 64384, 64320, 64320, 64320, 64320, 64384, 64388, + 64384, 64320, 64320, 64320, 64320, 64389, 64320, 64388, 64388, 64321, 64320, 64320, + 64384, 64388, 64388, 64320, 64320, 64384, 64320, 64320, 64320, 64320, 64320, 64384, + 64384, 64320, 64388, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, + 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64320, 64388, 64320, + 64320, 64320, 64320, 64320, 64388, 64320, 64320, 64320, 64384, 64320, 64320, 64320, + 64320, 64384, 64320, 64320, 64388, 64320, 64320, 64320, 64384, 64320, 64384, 64384, + 64320, 64320, 64320, 64320, 64321, 64384, 64320, 64320, 64320, 64320, 64320, 64388, + 64384, 64320, 64320, 64320, 64320, 64388, 64320, 64320, 64320, 64384, 64320, 64320, + 64320, 64320, 64388, 64320, 64384, 64320, 64388, 64320, 64384, 64320, 64320, 64320, + 64320, 64388, 64388, 64388, 64320, 64388, 64320, 64320, 64320, 64320, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 52797, 52792, 52801, 33058, 53088, 53166, 53179, 53250, 53370, 53401, 53479, + 53455, 46238, 34362, 53581, 53588, 53604, 53623, 34076, 46265, 53607, 53645, 34123, + 53655, 53668, 52940, 53676, 53685, 37343, 53749, 53763, 46303, 53819, 53830, 53874, + 53879, 46357, 53959, 53961, 53988, 54010, 54021, 54022, 54039, 54089, 54097, 54106, + 54131, 54141, 54143, 54143, 54143, 35372, 61552, 54218, 54239, 35683, 54251, 54257, + 54278, 54430, 54328, 54344, 54376, 54434, 54518, 54544, 54611, 54627, 54660, 54660, + 54681, 54699, 54707, 54722, 55062, 54790, 55063, 54865, 54900, 53767, 55534, 55246, + 55284, 55309, 55179, 55346, 55345, 55468, 38116, 55538, 55543, 55558, 55578, 55586, + 55650, 38568, 38634, 55788, 55835, 55847, 55768, 55910, 46830, 46844, 56072, 56126, + 56126, 39368, 56259, 56280, 56295, 56307, 39704, 56319, 56326, 57171, 56354, 46977, + 56416, 56430, 56512, 56461, 40420, 56643, 40422, 56686, 56683, 56700, 56801, 56802, + 47151, 56829, 56872, 56893, 56937, 47202, 41347, 47228, 57008, 57011, 57014, 57034, + 41874, 57086, 41777, 41777, 33281, 57122, 57122, 47303, 45752, 57818, 57186, 57195, + 47331, 57242, 57293, 57303, 57337, 57473, 47418, 47388, 57492, 42708, 57543, 57672, + 57676, 57678, 57676, 57722, 57742, 57778, 57764, 57775, 57822, 57842, 57846, 57872, + 57883, 57949, 58033, 58068, 58192, 43788, 58173, 58108, 58216, 58243, 58340, 44017, + 58402, 58309, 58281, 47662, 58473, 58494, 58525, 58487, 47724, 58703, 58732, 45066, + 58851, 59128, 58953, 47897, 59025, 47880, 47844, 53650, 53653, 59136, 59036, 32941, + 50137, 59159, 59163, 59169, 59230, 59219, 46019, 47945, 59386, 59269, 59474, 59525, + 46189, 59534, 59423, 59668, 48029, 59714, 59811, 59882, 60072, 46755, 60123, 48152, + 60193, 47271, 60244, 48206, 60274, 60319, 60346, 60347, 47757, 40203, 47866, 60494, + 48316, 60607, 60621, 60519, 60694, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 64320, 64320, 64320, 64320, 64320, 64320, + 64388, 64320, 64320, 64320, 64384, 64320, 64320, 64388, 64320, 64320, 64388, 64388, + 64320, 64320, 64320, 64320, 64384, 64320, 64320, 64320, 64320, 64388, 64320, 64388, + 64320, 64388, 64320, 64320, 64320, 64388, 64320, 64320, 64388, 64388, 64320, 64320, + 64384, 64320, 64384, 64384, 64320, 64320, 64320, 64320, 64320, 64384, 64320, 64388, + 64320, 64388, 64320, 64388, 64320, 64388, 64388, 64388, 64384, 64384, 64320, 64388, + 64388, 64388, 64388, 64320, 64320, 64320, 64320, 64384, 64320, 64384, 64384, 64388, + 64320, 64320, 64320, 64384, 64388, 64320, 64388, 64388, 64320, 64320, 64384, 64320, + 64320, 64320, 64388, 64388, 64388, 64320, 64384, 64388, 64320, 64320, 64384, 64388, + 64320, 64384, 64320, 64320, 64320, 64388, 64320, 64384, 64320, 64320, 64320, 64384, + 64388, 64388, 64384, 64388, 64320, 64388, 64320, 64320, 64321, 64388, 64388, 64321, + 64388, 64321, 64388, 64384, 64321, 64321, 64384, 64321, 64320, 64388, 64388, 64388, + 64388, 64321, 64321, 64321, 64384, 64321, 64321, 64321, 64320, 64321, 64321, 64321, + 64321, 64388, 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, 64321, + 64321, 64321, 64388, 64388, 64388, 64384, 64321, 64321, 64321, 64388, 64321, 64388, + 64384, 64384, 64388, 64388, 64384, 64321, 64321, 64321, 64321, 64321, 64321, 64321, + 64321, 64321, 64321, 64321, 64321, 64384, 64321, 64321, 64384, 64321, 64321, 64388, + 64321, 64321, 64384, 64321, 64384, 64388, 64388, 64384, 64384, 64321, 64321, 64321, + 64321, 64388, 64321, 64321, 64321, 64321, 64388, 64388, 64321, 64321, 64321, 64388, + 64321, 64321, 64389, 64389, 64321, 64321, 64321, 64389, 64321, 64321, 64321, 64321, + 64321, 64321, 64321, 64389, 64321, 64384, 64321, 64389, 64384, 64321, 64320, 64321, + 64389, 64389, 64384, 64384, 64321, 64389, 64384, 64389, 64321, 64321, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 60734, 60791, 60737, 60777, 60792, 60805, 48414, 60724, 60975, 61038, 48435, + 61131, 61127, 48849, 60921, 61294, 48990, 49038, 61382, 61497, 61470, 61467, 48534, + 61514, 61565, 61559, 61613, 34085, 61765, 49763, 61852, 50091, 61992, 62005, 62032, + 50696, 62080, 62101, 50997, 51220, 62330, 62347, 48812, 62373, 48824, 48824, 62535, + 62556, 62577, 62597, 62666, 48923, 62756, 52278, 62782, 52370, 62832, 41375, 62992, + 53153, 53176, 53316, 49148, 49160, 63220, 53491, 53490, 53529, 53555, 63262, 63263, + 63263, 63306, 49209, 63371, 49222, 49302, 54301, 63566, 63628, 63692, 49379, 54822, + 63830, 54938, 54981, 63887, 63979, 49455, 64064, 64074, 64079, 55676, 55975, 55975, + 64238, 49666, 56235, 64454, 64457, 49703, 56448, 64722, 49824, 64744, 64739, 64768, + 57222, 64867, 49921, 64967, 65026, 65093, 49972, 57896, 57927, 50009, 58073, 65402, + 58174, 65429, 65530, 32773, 58586, 58659, 32864, 58792, 32880, 45919, 50133, 32946, + 33027, 50187, 33086, 55989, 59303, 59317, 45971, 45980, 33281, 33284, 36766, 50283, + 33425, 33419, 33437, 53939, 33457, 33459, 33469, 33510, 60220, 33509, 33565, 33635, + 33709, 33571, 33725, 33767, 33879, 33619, 33738, 33740, 33756, 60470, 60779, 60629, + 50475, 34033, 34035, 34070, 62410, 34148, 61228, 50525, 50529, 61361, 61650, 50539, + 34384, 34396, 34407, 34409, 34473, 34440, 34574, 34530, 34681, 34600, 34667, 34694, + 50647, 34785, 34817, 50681, 34912, 34915, 63079, 35031, 35038, 50741, 35066, 46267, + 63662, 63846, 50878, 50887, 35488, 35565, 35722, 35925, 64680, 36011, 36033, 36123, + 36215, 65327, 34820, 36299, 36284, 36336, 35038, 36564, 36664, 34258, 34285, 37012, + 37105, 37137, 34606, 37147, 37432, 37591, 37592, 37500, 37881, 37909, 35834, 38283, + 51605, 38327, 36215, 51686, 38595, 56754, 38691, 37189, 37402, 51822, 51830, 38880, + 37898, 51890, 38038, 38923, 38923, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 64321, 64389, 64321, 64384, 64321, 64321, + 64321, 64321, 64384, 64389, 64321, 64321, 64321, 64384, 64384, 64321, 64389, 64384, + 64389, 64389, 64389, 64321, 64384, 64321, 64321, 64321, 64321, 64321, 64321, 64389, + 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, + 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, + 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, + 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, + 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, + 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, + 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, + 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, + 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, + 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, + 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, + 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, + 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, + 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, + 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, + 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, + 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, + 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, + 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 64453, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 38953, 38326, 39138, 52019, 39209, 39335, 39362, 39422, 52174, 39728, 39698, + 40000, 40189, 52430, 52461, 40295, 41166, 52472, 41221, 41486, 41617, 40635, 52566, + 40697, 40702, 40709, 40719, 40726, 40763, 42496, 64030, 64031, 64032, 64033, 64034, + 64035, 64036, 64037, 64038, 64039, 64040, 64041, 64042, 64043, 64044, 64045, 64046, + 64047, 64048, 64049, 64050, 64051, 64052, 64053, 64054, 64055, 64056, 64057, 64058, + 64059, 64060, 64061, 64062, 64063, 64064, 64065, 64066, 64067, 64068, 64069, 64070, + 64071, 64072, 64073, 64074, 64075, 64076, 64077, 64078, 64079, 64080, 64081, 64082, + 64083, 64084, 64085, 64086, 64087, 64088, 64089, 64090, 64091, 64092, 64093, 64094, + 64095, 64096, 64097, 64098, 64099, 64100, 64101, 64102, 64103, 64104, 64105, 64106, + 64107, 64108, 64109, 64110, 64111, 64112, 64113, 64114, 64115, 64116, 64117, 64118, + 64119, 64120, 64121, 64122, 64123, 64124, 64125, 64126, 64127, 64128, 64129, 64130, + 64131, 64132, 64133, 64134, 64135, 64136, 64137, 64138, 64139, 64140, 64141, 64142, + 64143, 64144, 64145, 64146, 64147, 64148, 64149, 64150, 64151, 64152, 64153, 64154, + 64155, 64156, 64157, 64158, 64159, 64160, 64161, 64162, 64163, 64164, 64165, 64166, + 64167, 64168, 64169, 64170, 64171, 64172, 64173, 64174, 64175, 64176, 64177, 64178, + 64179, 64180, 64181, 64182, 64183, 64184, 64185, 64186, 64187, 64188, 64189, 64190, + 64191, 64192, 64193, 64194, 64195, 64196, 64197, 64198, 64199, 64200, 64201, 64202, + 64203, 64204, 64205, 64206, 64207, 64208, 64209, 64210, 64211, 64212, 64213, 64214, + 64215, 64216, 64217, 64218, 64219, 64220, 64221, 64222, 64223, 64224, 64225, 64226, + 64227, 64228, 64229, 64230, 64231, 64232, 64233, 64234, 64235, 64236, 64237, 64238, + 64239, 64240, 64241, 64242, 64243, 64244, 64245, 64246, 64247, 64248, 64249, 64250, + 64251, 64252, 64253, 64254, 64255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 64476, 0, 64476, 64476, 64476, 64476, 64476, + 64476, 64476, 64476, 64476, 64476, 64476, 64476, 64476, 64476, 64476, 64476, 64476, + 64476, 64476, 64476, 64476, 64476, 64476, 64476, 64476, 64476, 64476, 64476, 64476, + 64476, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64476, 64476, 64476, 64476, 64476, + 64476, 64476, 64476, 64476, 64476, 64476, 64476, 64476, 64476, 64476, 64476, 64476, + 64476, 64476, 64476, 64476, 64476, 64476, 64476, 64476, 64476, 64476, 64476, 64476, + 64476, 64476, 64476, 64476, 64476, 64476, 64476, 64476, 64476, 64476, 64476, 64476, + 64476, 64476, 64476, 64476, 64476, 64476, 64476, 64476, 64476, 64476, 64476, 64476, + 64476, 64476, 64476, 64476, 64476, 64476, 64476, 64476, 64476, 64476, 64476, 64476, + 64476, 64476, 64476, 64476, 64476, 64476, 64476, 64476, 64476, 64476, 64476, 64476, + 64476, 64476, 64476, 64476, 64476, 64476, 64476, 64476, 64476, 64476, 64476, 64476, + 64476, 64476, 64476, 64476, 64476, 64476, 64476, 64476, 64476, 64476, 64476, 64476, + 64476, 64476, 64476, 64476, 64476, 64476, 64476, 64476, 64476, 64476, 64476, 64476, + 64476, 64476, 64476, 64476, 64476, 64476, 64476, 64476, 64476, 64476, 64476, 64476, + 64476, 64476, 64476, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 0, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 32768, 0, 32770, 32771, 32772, 32773, 32774, 32775, 32776, + 32777, 32778, 32779, 32780, 32781, 32782, 32783, 32784, 32785, 32786, 32787, 32788, + 32789, 32790, 32791, 32792, 32793, 32794, 32795, 32796, 32797, 32798, 32799, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32896, 32897, 32898, 32899, 32900, 32901, + 32902, 32903, 32904, 32905, 32906, 32907, 32908, 32909, 32910, 32911, 32912, 32913, + 32914, 32915, 32916, 32917, 32918, 32919, 32920, 32921, 32922, 32923, 32924, 32925, + 32926, 32927, 32928, 32929, 32930, 32931, 32932, 32933, 32934, 32935, 32936, 32937, + 32938, 32939, 32940, 32941, 32942, 32943, 32944, 32945, 32946, 32947, 32948, 32949, + 32950, 32951, 32952, 32953, 32954, 32955, 32956, 32957, 32958, 32959, 32960, 32961, + 32962, 32963, 32964, 32965, 32966, 32967, 32968, 32969, 32970, 32971, 32972, 32973, + 32974, 32975, 32976, 32977, 32978, 32979, 32980, 32981, 32982, 32983, 32984, 32985, + 32986, 32987, 32988, 32989, 32990, 32991, 32992, 32993, 32994, 32995, 32996, 32997, + 32998, 32999, 33000, 33001, 33002, 33003, 33004, 33005, 33006, 33007, 33008, 33009, + 33010, 33011, 33012, 33013, 33014, 33015, 33016, 33017, 33018, 33019, 33020, 33021, + 33022, 33023, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64476, 64476, 64476, 64476, 64476, 64476, 64476, 64476, + 64476, 64476, 64476, 64476, 64476, 64476, 64476, 64476, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33264, 33265, 33266, + 33267, 33268, 33269, 33270, 33271, 33272, 33273, 33274, 33275, 33276, 33277, 33278, + 33279, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0] diff --git a/polardbx-optimizer/src/main/resources/com/alibaba/polardbx/optimizer/config/table/collation/uca900_unicase.yml b/polardbx-optimizer/src/main/resources/com/alibaba/polardbx/optimizer/config/table/collation/uca900_unicase.yml new file mode 100644 index 000000000..8cde4fbce --- /dev/null +++ b/polardbx-optimizer/src/main/resources/com/alibaba/polardbx/optimizer/config/table/collation/uca900_unicase.yml @@ -0,0 +1,18456 @@ +u900p000: +- - 0 + - 0 + - 0 +- - 1 + - 1 + - 1 +- - 2 + - 2 + - 2 +- - 3 + - 3 + - 3 +- - 4 + - 4 + - 4 +- - 5 + - 5 + - 5 +- - 6 + - 6 + - 6 +- - 7 + - 7 + - 7 +- - 8 + - 8 + - 8 +- - 9 + - 9 + - 9 +- - 10 + - 10 + - 10 +- - 11 + - 11 + - 11 +- - 12 + - 12 + - 12 +- - 13 + - 13 + - 13 +- - 14 + - 14 + - 14 +- - 15 + - 15 + - 15 +- - 16 + - 16 + - 16 +- - 17 + - 17 + - 17 +- - 18 + - 18 + - 18 +- - 19 + - 19 + - 19 +- - 20 + - 20 + - 20 +- - 21 + - 21 + - 21 +- - 22 + - 22 + - 22 +- - 23 + - 23 + - 23 +- - 24 + - 24 + - 24 +- - 25 + - 25 + - 25 +- - 26 + - 26 + - 26 +- - 27 + - 27 + - 27 +- - 28 + - 28 + - 28 +- - 29 + - 29 + - 29 +- - 30 + - 30 + - 30 +- - 31 + - 31 + - 31 +- - 32 + - 32 + - 32 +- - 33 + - 33 + - 33 +- - 34 + - 34 + - 34 +- - 35 + - 35 + - 35 +- - 36 + - 36 + - 36 +- - 37 + - 37 + - 37 +- - 38 + - 38 + - 38 +- - 39 + - 39 + - 39 +- - 40 + - 40 + - 40 +- - 41 + - 41 + - 41 +- - 42 + - 42 + - 42 +- - 43 + - 43 + - 43 +- - 44 + - 44 + - 44 +- - 45 + - 45 + - 45 +- - 46 + - 46 + - 46 +- - 47 + - 47 + - 47 +- - 48 + - 48 + - 48 +- - 49 + - 49 + - 49 +- - 50 + - 50 + - 50 +- - 51 + - 51 + - 51 +- - 52 + - 52 + - 52 +- - 53 + - 53 + - 53 +- - 54 + - 54 + - 54 +- - 55 + - 55 + - 55 +- - 56 + - 56 + - 56 +- - 57 + - 57 + - 57 +- - 58 + - 58 + - 58 +- - 59 + - 59 + - 59 +- - 60 + - 60 + - 60 +- - 61 + - 61 + - 61 +- - 62 + - 62 + - 62 +- - 63 + - 63 + - 63 +- - 64 + - 64 + - 64 +- - 65 + - 97 + - 65 +- - 66 + - 98 + - 66 +- - 67 + - 99 + - 67 +- - 68 + - 100 + - 68 +- - 69 + - 101 + - 69 +- - 70 + - 102 + - 70 +- - 71 + - 103 + - 71 +- - 72 + - 104 + - 72 +- - 73 + - 105 + - 73 +- - 74 + - 106 + - 74 +- - 75 + - 107 + - 75 +- - 76 + - 108 + - 76 +- - 77 + - 109 + - 77 +- - 78 + - 110 + - 78 +- - 79 + - 111 + - 79 +- - 80 + - 112 + - 80 +- - 81 + - 113 + - 81 +- - 82 + - 114 + - 82 +- - 83 + - 115 + - 83 +- - 84 + - 116 + - 84 +- - 85 + - 117 + - 85 +- - 86 + - 118 + - 86 +- - 87 + - 119 + - 87 +- - 88 + - 120 + - 88 +- - 89 + - 121 + - 89 +- - 90 + - 122 + - 90 +- - 91 + - 91 + - 91 +- - 92 + - 92 + - 92 +- - 93 + - 93 + - 93 +- - 94 + - 94 + - 94 +- - 95 + - 95 + - 95 +- - 96 + - 96 + - 96 +- - 65 + - 97 + - 65 +- - 66 + - 98 + - 66 +- - 67 + - 99 + - 67 +- - 68 + - 100 + - 68 +- - 69 + - 101 + - 69 +- - 70 + - 102 + - 70 +- - 71 + - 103 + - 71 +- - 72 + - 104 + - 72 +- - 73 + - 105 + - 73 +- - 74 + - 106 + - 74 +- - 75 + - 107 + - 75 +- - 76 + - 108 + - 76 +- - 77 + - 109 + - 77 +- - 78 + - 110 + - 78 +- - 79 + - 111 + - 79 +- - 80 + - 112 + - 80 +- - 81 + - 113 + - 81 +- - 82 + - 114 + - 82 +- - 83 + - 115 + - 83 +- - 84 + - 116 + - 84 +- - 85 + - 117 + - 85 +- - 86 + - 118 + - 86 +- - 87 + - 119 + - 87 +- - 88 + - 120 + - 88 +- - 89 + - 121 + - 89 +- - 90 + - 122 + - 90 +- - 123 + - 123 + - 123 +- - 124 + - 124 + - 124 +- - 125 + - 125 + - 125 +- - 126 + - 126 + - 126 +- - 127 + - 127 + - 127 +- - 128 + - 128 + - 128 +- - 129 + - 129 + - 129 +- - 130 + - 130 + - 130 +- - 131 + - 131 + - 131 +- - 132 + - 132 + - 132 +- - 133 + - 133 + - 133 +- - 134 + - 134 + - 134 +- - 135 + - 135 + - 135 +- - 136 + - 136 + - 136 +- - 137 + - 137 + - 137 +- - 138 + - 138 + - 138 +- - 139 + - 139 + - 139 +- - 140 + - 140 + - 140 +- - 141 + - 141 + - 141 +- - 142 + - 142 + - 142 +- - 143 + - 143 + - 143 +- - 144 + - 144 + - 144 +- - 145 + - 145 + - 145 +- - 146 + - 146 + - 146 +- - 147 + - 147 + - 147 +- - 148 + - 148 + - 148 +- - 149 + - 149 + - 149 +- - 150 + - 150 + - 150 +- - 151 + - 151 + - 151 +- - 152 + - 152 + - 152 +- - 153 + - 153 + - 153 +- - 154 + - 154 + - 154 +- - 155 + - 155 + - 155 +- - 156 + - 156 + - 156 +- - 157 + - 157 + - 157 +- - 158 + - 158 + - 158 +- - 159 + - 159 + - 159 +- - 160 + - 160 + - 160 +- - 161 + - 161 + - 161 +- - 162 + - 162 + - 162 +- - 163 + - 163 + - 163 +- - 164 + - 164 + - 164 +- - 165 + - 165 + - 165 +- - 166 + - 166 + - 166 +- - 167 + - 167 + - 167 +- - 168 + - 168 + - 168 +- - 169 + - 169 + - 169 +- - 170 + - 170 + - 170 +- - 171 + - 171 + - 171 +- - 172 + - 172 + - 172 +- - 173 + - 173 + - 173 +- - 174 + - 174 + - 174 +- - 175 + - 175 + - 175 +- - 176 + - 176 + - 176 +- - 177 + - 177 + - 177 +- - 178 + - 178 + - 178 +- - 179 + - 179 + - 179 +- - 180 + - 180 + - 180 +- - 924 + - 181 + - 924 +- - 182 + - 182 + - 182 +- - 183 + - 183 + - 183 +- - 184 + - 184 + - 184 +- - 185 + - 185 + - 185 +- - 186 + - 186 + - 186 +- - 187 + - 187 + - 187 +- - 188 + - 188 + - 188 +- - 189 + - 189 + - 189 +- - 190 + - 190 + - 190 +- - 191 + - 191 + - 191 +- - 192 + - 224 + - 192 +- - 193 + - 225 + - 193 +- - 194 + - 226 + - 194 +- - 195 + - 227 + - 195 +- - 196 + - 228 + - 196 +- - 197 + - 229 + - 197 +- - 198 + - 230 + - 198 +- - 199 + - 231 + - 199 +- - 200 + - 232 + - 200 +- - 201 + - 233 + - 201 +- - 202 + - 234 + - 202 +- - 203 + - 235 + - 203 +- - 204 + - 236 + - 204 +- - 205 + - 237 + - 205 +- - 206 + - 238 + - 206 +- - 207 + - 239 + - 207 +- - 208 + - 240 + - 208 +- - 209 + - 241 + - 209 +- - 210 + - 242 + - 210 +- - 211 + - 243 + - 211 +- - 212 + - 244 + - 212 +- - 213 + - 245 + - 213 +- - 214 + - 246 + - 214 +- - 215 + - 215 + - 215 +- - 216 + - 248 + - 216 +- - 217 + - 249 + - 217 +- - 218 + - 250 + - 218 +- - 219 + - 251 + - 219 +- - 220 + - 252 + - 220 +- - 221 + - 253 + - 221 +- - 222 + - 254 + - 222 +- - 223 + - 223 + - 223 +- - 192 + - 224 + - 192 +- - 193 + - 225 + - 193 +- - 194 + - 226 + - 194 +- - 195 + - 227 + - 195 +- - 196 + - 228 + - 196 +- - 197 + - 229 + - 197 +- - 198 + - 230 + - 198 +- - 199 + - 231 + - 199 +- - 200 + - 232 + - 200 +- - 201 + - 233 + - 201 +- - 202 + - 234 + - 202 +- - 203 + - 235 + - 203 +- - 204 + - 236 + - 204 +- - 205 + - 237 + - 205 +- - 206 + - 238 + - 206 +- - 207 + - 239 + - 207 +- - 208 + - 240 + - 208 +- - 209 + - 241 + - 209 +- - 210 + - 242 + - 210 +- - 211 + - 243 + - 211 +- - 212 + - 244 + - 212 +- - 213 + - 245 + - 213 +- - 214 + - 246 + - 214 +- - 247 + - 247 + - 247 +- - 216 + - 248 + - 216 +- - 217 + - 249 + - 217 +- - 218 + - 250 + - 218 +- - 219 + - 251 + - 219 +- - 220 + - 252 + - 220 +- - 221 + - 253 + - 221 +- - 222 + - 254 + - 222 +- - 376 + - 255 + - 376 +u900p001: +- - 256 + - 257 + - 256 +- - 256 + - 257 + - 256 +- - 258 + - 259 + - 258 +- - 258 + - 259 + - 258 +- - 260 + - 261 + - 260 +- - 260 + - 261 + - 260 +- - 262 + - 263 + - 262 +- - 262 + - 263 + - 262 +- - 264 + - 265 + - 264 +- - 264 + - 265 + - 264 +- - 266 + - 267 + - 266 +- - 266 + - 267 + - 266 +- - 268 + - 269 + - 268 +- - 268 + - 269 + - 268 +- - 270 + - 271 + - 270 +- - 270 + - 271 + - 270 +- - 272 + - 273 + - 272 +- - 272 + - 273 + - 272 +- - 274 + - 275 + - 274 +- - 274 + - 275 + - 274 +- - 276 + - 277 + - 276 +- - 276 + - 277 + - 276 +- - 278 + - 279 + - 278 +- - 278 + - 279 + - 278 +- - 280 + - 281 + - 280 +- - 280 + - 281 + - 280 +- - 282 + - 283 + - 282 +- - 282 + - 283 + - 282 +- - 284 + - 285 + - 284 +- - 284 + - 285 + - 284 +- - 286 + - 287 + - 286 +- - 286 + - 287 + - 286 +- - 288 + - 289 + - 288 +- - 288 + - 289 + - 288 +- - 290 + - 291 + - 290 +- - 290 + - 291 + - 290 +- - 292 + - 293 + - 292 +- - 292 + - 293 + - 292 +- - 294 + - 295 + - 294 +- - 294 + - 295 + - 294 +- - 296 + - 297 + - 296 +- - 296 + - 297 + - 296 +- - 298 + - 299 + - 298 +- - 298 + - 299 + - 298 +- - 300 + - 301 + - 300 +- - 300 + - 301 + - 300 +- - 302 + - 303 + - 302 +- - 302 + - 303 + - 302 +- - 304 + - 105 + - 304 +- - 73 + - 305 + - 73 +- - 306 + - 307 + - 306 +- - 306 + - 307 + - 306 +- - 308 + - 309 + - 308 +- - 308 + - 309 + - 308 +- - 310 + - 311 + - 310 +- - 310 + - 311 + - 310 +- - 312 + - 312 + - 312 +- - 313 + - 314 + - 313 +- - 313 + - 314 + - 313 +- - 315 + - 316 + - 315 +- - 315 + - 316 + - 315 +- - 317 + - 318 + - 317 +- - 317 + - 318 + - 317 +- - 319 + - 320 + - 319 +- - 319 + - 320 + - 319 +- - 321 + - 322 + - 321 +- - 321 + - 322 + - 321 +- - 323 + - 324 + - 323 +- - 323 + - 324 + - 323 +- - 325 + - 326 + - 325 +- - 325 + - 326 + - 325 +- - 327 + - 328 + - 327 +- - 327 + - 328 + - 327 +- - 329 + - 329 + - 329 +- - 330 + - 331 + - 330 +- - 330 + - 331 + - 330 +- - 332 + - 333 + - 332 +- - 332 + - 333 + - 332 +- - 334 + - 335 + - 334 +- - 334 + - 335 + - 334 +- - 336 + - 337 + - 336 +- - 336 + - 337 + - 336 +- - 338 + - 339 + - 338 +- - 338 + - 339 + - 338 +- - 340 + - 341 + - 340 +- - 340 + - 341 + - 340 +- - 342 + - 343 + - 342 +- - 342 + - 343 + - 342 +- - 344 + - 345 + - 344 +- - 344 + - 345 + - 344 +- - 346 + - 347 + - 346 +- - 346 + - 347 + - 346 +- - 348 + - 349 + - 348 +- - 348 + - 349 + - 348 +- - 350 + - 351 + - 350 +- - 350 + - 351 + - 350 +- - 352 + - 353 + - 352 +- - 352 + - 353 + - 352 +- - 354 + - 355 + - 354 +- - 354 + - 355 + - 354 +- - 356 + - 357 + - 356 +- - 356 + - 357 + - 356 +- - 358 + - 359 + - 358 +- - 358 + - 359 + - 358 +- - 360 + - 361 + - 360 +- - 360 + - 361 + - 360 +- - 362 + - 363 + - 362 +- - 362 + - 363 + - 362 +- - 364 + - 365 + - 364 +- - 364 + - 365 + - 364 +- - 366 + - 367 + - 366 +- - 366 + - 367 + - 366 +- - 368 + - 369 + - 368 +- - 368 + - 369 + - 368 +- - 370 + - 371 + - 370 +- - 370 + - 371 + - 370 +- - 372 + - 373 + - 372 +- - 372 + - 373 + - 372 +- - 374 + - 375 + - 374 +- - 374 + - 375 + - 374 +- - 376 + - 255 + - 376 +- - 377 + - 378 + - 377 +- - 377 + - 378 + - 377 +- - 379 + - 380 + - 379 +- - 379 + - 380 + - 379 +- - 381 + - 382 + - 381 +- - 381 + - 382 + - 381 +- - 83 + - 383 + - 83 +- - 579 + - 384 + - 579 +- - 385 + - 595 + - 385 +- - 386 + - 387 + - 386 +- - 386 + - 387 + - 386 +- - 388 + - 389 + - 388 +- - 388 + - 389 + - 388 +- - 390 + - 596 + - 390 +- - 391 + - 392 + - 391 +- - 391 + - 392 + - 391 +- - 393 + - 598 + - 393 +- - 394 + - 599 + - 394 +- - 395 + - 396 + - 395 +- - 395 + - 396 + - 395 +- - 397 + - 397 + - 397 +- - 398 + - 477 + - 398 +- - 399 + - 601 + - 399 +- - 400 + - 603 + - 400 +- - 401 + - 402 + - 401 +- - 401 + - 402 + - 401 +- - 403 + - 608 + - 403 +- - 404 + - 611 + - 404 +- - 502 + - 405 + - 502 +- - 406 + - 617 + - 406 +- - 407 + - 616 + - 407 +- - 408 + - 409 + - 408 +- - 408 + - 409 + - 408 +- - 573 + - 410 + - 573 +- - 411 + - 411 + - 411 +- - 412 + - 623 + - 412 +- - 413 + - 626 + - 413 +- - 544 + - 414 + - 544 +- - 415 + - 629 + - 415 +- - 416 + - 417 + - 416 +- - 416 + - 417 + - 416 +- - 418 + - 419 + - 418 +- - 418 + - 419 + - 418 +- - 420 + - 421 + - 420 +- - 420 + - 421 + - 420 +- - 422 + - 640 + - 422 +- - 423 + - 424 + - 423 +- - 423 + - 424 + - 423 +- - 425 + - 643 + - 425 +- - 426 + - 426 + - 426 +- - 427 + - 427 + - 427 +- - 428 + - 429 + - 428 +- - 428 + - 429 + - 428 +- - 430 + - 648 + - 430 +- - 431 + - 432 + - 431 +- - 431 + - 432 + - 431 +- - 433 + - 650 + - 433 +- - 434 + - 651 + - 434 +- - 435 + - 436 + - 435 +- - 435 + - 436 + - 435 +- - 437 + - 438 + - 437 +- - 437 + - 438 + - 437 +- - 439 + - 658 + - 439 +- - 440 + - 441 + - 440 +- - 440 + - 441 + - 440 +- - 442 + - 442 + - 442 +- - 443 + - 443 + - 443 +- - 444 + - 445 + - 444 +- - 444 + - 445 + - 444 +- - 446 + - 446 + - 446 +- - 503 + - 447 + - 503 +- - 448 + - 448 + - 448 +- - 449 + - 449 + - 449 +- - 450 + - 450 + - 450 +- - 451 + - 451 + - 451 +- - 452 + - 454 + - 453 +- - 452 + - 454 + - 453 +- - 452 + - 454 + - 453 +- - 455 + - 457 + - 456 +- - 455 + - 457 + - 456 +- - 455 + - 457 + - 456 +- - 458 + - 460 + - 459 +- - 458 + - 460 + - 459 +- - 458 + - 460 + - 459 +- - 461 + - 462 + - 461 +- - 461 + - 462 + - 461 +- - 463 + - 464 + - 463 +- - 463 + - 464 + - 463 +- - 465 + - 466 + - 465 +- - 465 + - 466 + - 465 +- - 467 + - 468 + - 467 +- - 467 + - 468 + - 467 +- - 469 + - 470 + - 469 +- - 469 + - 470 + - 469 +- - 471 + - 472 + - 471 +- - 471 + - 472 + - 471 +- - 473 + - 474 + - 473 +- - 473 + - 474 + - 473 +- - 475 + - 476 + - 475 +- - 475 + - 476 + - 475 +- - 398 + - 477 + - 398 +- - 478 + - 479 + - 478 +- - 478 + - 479 + - 478 +- - 480 + - 481 + - 480 +- - 480 + - 481 + - 480 +- - 482 + - 483 + - 482 +- - 482 + - 483 + - 482 +- - 484 + - 485 + - 484 +- - 484 + - 485 + - 484 +- - 486 + - 487 + - 486 +- - 486 + - 487 + - 486 +- - 488 + - 489 + - 488 +- - 488 + - 489 + - 488 +- - 490 + - 491 + - 490 +- - 490 + - 491 + - 490 +- - 492 + - 493 + - 492 +- - 492 + - 493 + - 492 +- - 494 + - 495 + - 494 +- - 494 + - 495 + - 494 +- - 496 + - 496 + - 496 +- - 497 + - 499 + - 498 +- - 497 + - 499 + - 498 +- - 497 + - 499 + - 498 +- - 500 + - 501 + - 500 +- - 500 + - 501 + - 500 +- - 502 + - 405 + - 502 +- - 503 + - 447 + - 503 +- - 504 + - 505 + - 504 +- - 504 + - 505 + - 504 +- - 506 + - 507 + - 506 +- - 506 + - 507 + - 506 +- - 508 + - 509 + - 508 +- - 508 + - 509 + - 508 +- - 510 + - 511 + - 510 +- - 510 + - 511 + - 510 +u900p002: +- - 512 + - 513 + - 512 +- - 512 + - 513 + - 512 +- - 514 + - 515 + - 514 +- - 514 + - 515 + - 514 +- - 516 + - 517 + - 516 +- - 516 + - 517 + - 516 +- - 518 + - 519 + - 518 +- - 518 + - 519 + - 518 +- - 520 + - 521 + - 520 +- - 520 + - 521 + - 520 +- - 522 + - 523 + - 522 +- - 522 + - 523 + - 522 +- - 524 + - 525 + - 524 +- - 524 + - 525 + - 524 +- - 526 + - 527 + - 526 +- - 526 + - 527 + - 526 +- - 528 + - 529 + - 528 +- - 528 + - 529 + - 528 +- - 530 + - 531 + - 530 +- - 530 + - 531 + - 530 +- - 532 + - 533 + - 532 +- - 532 + - 533 + - 532 +- - 534 + - 535 + - 534 +- - 534 + - 535 + - 534 +- - 536 + - 537 + - 536 +- - 536 + - 537 + - 536 +- - 538 + - 539 + - 538 +- - 538 + - 539 + - 538 +- - 540 + - 541 + - 540 +- - 540 + - 541 + - 540 +- - 542 + - 543 + - 542 +- - 542 + - 543 + - 542 +- - 544 + - 414 + - 544 +- - 545 + - 545 + - 545 +- - 546 + - 547 + - 546 +- - 546 + - 547 + - 546 +- - 548 + - 549 + - 548 +- - 548 + - 549 + - 548 +- - 550 + - 551 + - 550 +- - 550 + - 551 + - 550 +- - 552 + - 553 + - 552 +- - 552 + - 553 + - 552 +- - 554 + - 555 + - 554 +- - 554 + - 555 + - 554 +- - 556 + - 557 + - 556 +- - 556 + - 557 + - 556 +- - 558 + - 559 + - 558 +- - 558 + - 559 + - 558 +- - 560 + - 561 + - 560 +- - 560 + - 561 + - 560 +- - 562 + - 563 + - 562 +- - 562 + - 563 + - 562 +- - 564 + - 564 + - 564 +- - 565 + - 565 + - 565 +- - 566 + - 566 + - 566 +- - 567 + - 567 + - 567 +- - 568 + - 568 + - 568 +- - 569 + - 569 + - 569 +- - 570 + - 11365 + - 570 +- - 571 + - 572 + - 571 +- - 571 + - 572 + - 571 +- - 573 + - 410 + - 573 +- - 574 + - 11366 + - 574 +- - 11390 + - 575 + - 11390 +- - 11391 + - 576 + - 11391 +- - 577 + - 578 + - 577 +- - 577 + - 578 + - 577 +- - 579 + - 384 + - 579 +- - 580 + - 649 + - 580 +- - 581 + - 652 + - 581 +- - 582 + - 583 + - 582 +- - 582 + - 583 + - 582 +- - 584 + - 585 + - 584 +- - 584 + - 585 + - 584 +- - 586 + - 587 + - 586 +- - 586 + - 587 + - 586 +- - 588 + - 589 + - 588 +- - 588 + - 589 + - 588 +- - 590 + - 591 + - 590 +- - 590 + - 591 + - 590 +- - 11375 + - 592 + - 11375 +- - 11373 + - 593 + - 11373 +- - 11376 + - 594 + - 11376 +- - 385 + - 595 + - 385 +- - 390 + - 596 + - 390 +- - 597 + - 597 + - 597 +- - 393 + - 598 + - 393 +- - 394 + - 599 + - 394 +- - 600 + - 600 + - 600 +- - 399 + - 601 + - 399 +- - 602 + - 602 + - 602 +- - 400 + - 603 + - 400 +- - 42923 + - 604 + - 42923 +- - 605 + - 605 + - 605 +- - 606 + - 606 + - 606 +- - 607 + - 607 + - 607 +- - 403 + - 608 + - 403 +- - 42924 + - 609 + - 42924 +- - 610 + - 610 + - 610 +- - 404 + - 611 + - 404 +- - 612 + - 612 + - 612 +- - 42893 + - 613 + - 42893 +- - 42922 + - 614 + - 42922 +- - 615 + - 615 + - 615 +- - 407 + - 616 + - 407 +- - 406 + - 617 + - 406 +- - 42926 + - 618 + - 42926 +- - 11362 + - 619 + - 11362 +- - 42925 + - 620 + - 42925 +- - 621 + - 621 + - 621 +- - 622 + - 622 + - 622 +- - 412 + - 623 + - 412 +- - 624 + - 624 + - 624 +- - 11374 + - 625 + - 11374 +- - 413 + - 626 + - 413 +- - 627 + - 627 + - 627 +- - 628 + - 628 + - 628 +- - 415 + - 629 + - 415 +- - 630 + - 630 + - 630 +- - 631 + - 631 + - 631 +- - 632 + - 632 + - 632 +- - 633 + - 633 + - 633 +- - 634 + - 634 + - 634 +- - 635 + - 635 + - 635 +- - 636 + - 636 + - 636 +- - 11364 + - 637 + - 11364 +- - 638 + - 638 + - 638 +- - 639 + - 639 + - 639 +- - 422 + - 640 + - 422 +- - 641 + - 641 + - 641 +- - 642 + - 642 + - 642 +- - 425 + - 643 + - 425 +- - 644 + - 644 + - 644 +- - 645 + - 645 + - 645 +- - 646 + - 646 + - 646 +- - 42929 + - 647 + - 42929 +- - 430 + - 648 + - 430 +- - 580 + - 649 + - 580 +- - 433 + - 650 + - 433 +- - 434 + - 651 + - 434 +- - 581 + - 652 + - 581 +- - 653 + - 653 + - 653 +- - 654 + - 654 + - 654 +- - 655 + - 655 + - 655 +- - 656 + - 656 + - 656 +- - 657 + - 657 + - 657 +- - 439 + - 658 + - 439 +- - 659 + - 659 + - 659 +- - 660 + - 660 + - 660 +- - 661 + - 661 + - 661 +- - 662 + - 662 + - 662 +- - 663 + - 663 + - 663 +- - 664 + - 664 + - 664 +- - 665 + - 665 + - 665 +- - 666 + - 666 + - 666 +- - 667 + - 667 + - 667 +- - 668 + - 668 + - 668 +- - 42930 + - 669 + - 42930 +- - 42928 + - 670 + - 42928 +- - 671 + - 671 + - 671 +- - 672 + - 672 + - 672 +- - 673 + - 673 + - 673 +- - 674 + - 674 + - 674 +- - 675 + - 675 + - 675 +- - 676 + - 676 + - 676 +- - 677 + - 677 + - 677 +- - 678 + - 678 + - 678 +- - 679 + - 679 + - 679 +- - 680 + - 680 + - 680 +- - 681 + - 681 + - 681 +- - 682 + - 682 + - 682 +- - 683 + - 683 + - 683 +- - 684 + - 684 + - 684 +- - 685 + - 685 + - 685 +- - 686 + - 686 + - 686 +- - 687 + - 687 + - 687 +- - 688 + - 688 + - 688 +- - 689 + - 689 + - 689 +- - 690 + - 690 + - 690 +- - 691 + - 691 + - 691 +- - 692 + - 692 + - 692 +- - 693 + - 693 + - 693 +- - 694 + - 694 + - 694 +- - 695 + - 695 + - 695 +- - 696 + - 696 + - 696 +- - 697 + - 697 + - 697 +- - 698 + - 698 + - 698 +- - 699 + - 699 + - 699 +- - 700 + - 700 + - 700 +- - 701 + - 701 + - 701 +- - 702 + - 702 + - 702 +- - 703 + - 703 + - 703 +- - 704 + - 704 + - 704 +- - 705 + - 705 + - 705 +- - 706 + - 706 + - 706 +- - 707 + - 707 + - 707 +- - 708 + - 708 + - 708 +- - 709 + - 709 + - 709 +- - 710 + - 710 + - 710 +- - 711 + - 711 + - 711 +- - 712 + - 712 + - 712 +- - 713 + - 713 + - 713 +- - 714 + - 714 + - 714 +- - 715 + - 715 + - 715 +- - 716 + - 716 + - 716 +- - 717 + - 717 + - 717 +- - 718 + - 718 + - 718 +- - 719 + - 719 + - 719 +- - 720 + - 720 + - 720 +- - 721 + - 721 + - 721 +- - 722 + - 722 + - 722 +- - 723 + - 723 + - 723 +- - 724 + - 724 + - 724 +- - 725 + - 725 + - 725 +- - 726 + - 726 + - 726 +- - 727 + - 727 + - 727 +- - 728 + - 728 + - 728 +- - 729 + - 729 + - 729 +- - 730 + - 730 + - 730 +- - 731 + - 731 + - 731 +- - 732 + - 732 + - 732 +- - 733 + - 733 + - 733 +- - 734 + - 734 + - 734 +- - 735 + - 735 + - 735 +- - 736 + - 736 + - 736 +- - 737 + - 737 + - 737 +- - 738 + - 738 + - 738 +- - 739 + - 739 + - 739 +- - 740 + - 740 + - 740 +- - 741 + - 741 + - 741 +- - 742 + - 742 + - 742 +- - 743 + - 743 + - 743 +- - 744 + - 744 + - 744 +- - 745 + - 745 + - 745 +- - 746 + - 746 + - 746 +- - 747 + - 747 + - 747 +- - 748 + - 748 + - 748 +- - 749 + - 749 + - 749 +- - 750 + - 750 + - 750 +- - 751 + - 751 + - 751 +- - 752 + - 752 + - 752 +- - 753 + - 753 + - 753 +- - 754 + - 754 + - 754 +- - 755 + - 755 + - 755 +- - 756 + - 756 + - 756 +- - 757 + - 757 + - 757 +- - 758 + - 758 + - 758 +- - 759 + - 759 + - 759 +- - 760 + - 760 + - 760 +- - 761 + - 761 + - 761 +- - 762 + - 762 + - 762 +- - 763 + - 763 + - 763 +- - 764 + - 764 + - 764 +- - 765 + - 765 + - 765 +- - 766 + - 766 + - 766 +- - 767 + - 767 + - 767 +u900p003: +- - 768 + - 768 + - 768 +- - 769 + - 769 + - 769 +- - 770 + - 770 + - 770 +- - 771 + - 771 + - 771 +- - 772 + - 772 + - 772 +- - 773 + - 773 + - 773 +- - 774 + - 774 + - 774 +- - 775 + - 775 + - 775 +- - 776 + - 776 + - 776 +- - 777 + - 777 + - 777 +- - 778 + - 778 + - 778 +- - 779 + - 779 + - 779 +- - 780 + - 780 + - 780 +- - 781 + - 781 + - 781 +- - 782 + - 782 + - 782 +- - 783 + - 783 + - 783 +- - 784 + - 784 + - 784 +- - 785 + - 785 + - 785 +- - 786 + - 786 + - 786 +- - 787 + - 787 + - 787 +- - 788 + - 788 + - 788 +- - 789 + - 789 + - 789 +- - 790 + - 790 + - 790 +- - 791 + - 791 + - 791 +- - 792 + - 792 + - 792 +- - 793 + - 793 + - 793 +- - 794 + - 794 + - 794 +- - 795 + - 795 + - 795 +- - 796 + - 796 + - 796 +- - 797 + - 797 + - 797 +- - 798 + - 798 + - 798 +- - 799 + - 799 + - 799 +- - 800 + - 800 + - 800 +- - 801 + - 801 + - 801 +- - 802 + - 802 + - 802 +- - 803 + - 803 + - 803 +- - 804 + - 804 + - 804 +- - 805 + - 805 + - 805 +- - 806 + - 806 + - 806 +- - 807 + - 807 + - 807 +- - 808 + - 808 + - 808 +- - 809 + - 809 + - 809 +- - 810 + - 810 + - 810 +- - 811 + - 811 + - 811 +- - 812 + - 812 + - 812 +- - 813 + - 813 + - 813 +- - 814 + - 814 + - 814 +- - 815 + - 815 + - 815 +- - 816 + - 816 + - 816 +- - 817 + - 817 + - 817 +- - 818 + - 818 + - 818 +- - 819 + - 819 + - 819 +- - 820 + - 820 + - 820 +- - 821 + - 821 + - 821 +- - 822 + - 822 + - 822 +- - 823 + - 823 + - 823 +- - 824 + - 824 + - 824 +- - 825 + - 825 + - 825 +- - 826 + - 826 + - 826 +- - 827 + - 827 + - 827 +- - 828 + - 828 + - 828 +- - 829 + - 829 + - 829 +- - 830 + - 830 + - 830 +- - 831 + - 831 + - 831 +- - 832 + - 832 + - 832 +- - 833 + - 833 + - 833 +- - 834 + - 834 + - 834 +- - 835 + - 835 + - 835 +- - 836 + - 836 + - 836 +- - 921 + - 837 + - 921 +- - 838 + - 838 + - 838 +- - 839 + - 839 + - 839 +- - 840 + - 840 + - 840 +- - 841 + - 841 + - 841 +- - 842 + - 842 + - 842 +- - 843 + - 843 + - 843 +- - 844 + - 844 + - 844 +- - 845 + - 845 + - 845 +- - 846 + - 846 + - 846 +- - 847 + - 847 + - 847 +- - 848 + - 848 + - 848 +- - 849 + - 849 + - 849 +- - 850 + - 850 + - 850 +- - 851 + - 851 + - 851 +- - 852 + - 852 + - 852 +- - 853 + - 853 + - 853 +- - 854 + - 854 + - 854 +- - 855 + - 855 + - 855 +- - 856 + - 856 + - 856 +- - 857 + - 857 + - 857 +- - 858 + - 858 + - 858 +- - 859 + - 859 + - 859 +- - 860 + - 860 + - 860 +- - 861 + - 861 + - 861 +- - 862 + - 862 + - 862 +- - 863 + - 863 + - 863 +- - 864 + - 864 + - 864 +- - 865 + - 865 + - 865 +- - 866 + - 866 + - 866 +- - 867 + - 867 + - 867 +- - 868 + - 868 + - 868 +- - 869 + - 869 + - 869 +- - 870 + - 870 + - 870 +- - 871 + - 871 + - 871 +- - 872 + - 872 + - 872 +- - 873 + - 873 + - 873 +- - 874 + - 874 + - 874 +- - 875 + - 875 + - 875 +- - 876 + - 876 + - 876 +- - 877 + - 877 + - 877 +- - 878 + - 878 + - 878 +- - 879 + - 879 + - 879 +- - 880 + - 881 + - 880 +- - 880 + - 881 + - 880 +- - 882 + - 883 + - 882 +- - 882 + - 883 + - 882 +- - 884 + - 884 + - 884 +- - 885 + - 885 + - 885 +- - 886 + - 887 + - 886 +- - 886 + - 887 + - 886 +- - 888 + - 888 + - 888 +- - 889 + - 889 + - 889 +- - 890 + - 890 + - 890 +- - 1021 + - 891 + - 1021 +- - 1022 + - 892 + - 1022 +- - 1023 + - 893 + - 1023 +- - 894 + - 894 + - 894 +- - 895 + - 1011 + - 895 +- - 896 + - 896 + - 896 +- - 897 + - 897 + - 897 +- - 898 + - 898 + - 898 +- - 899 + - 899 + - 899 +- - 900 + - 900 + - 900 +- - 901 + - 901 + - 901 +- - 902 + - 940 + - 902 +- - 903 + - 903 + - 903 +- - 904 + - 941 + - 904 +- - 905 + - 942 + - 905 +- - 906 + - 943 + - 906 +- - 907 + - 907 + - 907 +- - 908 + - 972 + - 908 +- - 909 + - 909 + - 909 +- - 910 + - 973 + - 910 +- - 911 + - 974 + - 911 +- - 912 + - 912 + - 912 +- - 913 + - 945 + - 913 +- - 914 + - 946 + - 914 +- - 915 + - 947 + - 915 +- - 916 + - 948 + - 916 +- - 917 + - 949 + - 917 +- - 918 + - 950 + - 918 +- - 919 + - 951 + - 919 +- - 920 + - 952 + - 920 +- - 921 + - 953 + - 921 +- - 922 + - 954 + - 922 +- - 923 + - 955 + - 923 +- - 924 + - 956 + - 924 +- - 925 + - 957 + - 925 +- - 926 + - 958 + - 926 +- - 927 + - 959 + - 927 +- - 928 + - 960 + - 928 +- - 929 + - 961 + - 929 +- - 930 + - 930 + - 930 +- - 931 + - 963 + - 931 +- - 932 + - 964 + - 932 +- - 933 + - 965 + - 933 +- - 934 + - 966 + - 934 +- - 935 + - 967 + - 935 +- - 936 + - 968 + - 936 +- - 937 + - 969 + - 937 +- - 938 + - 970 + - 938 +- - 939 + - 971 + - 939 +- - 902 + - 940 + - 902 +- - 904 + - 941 + - 904 +- - 905 + - 942 + - 905 +- - 906 + - 943 + - 906 +- - 944 + - 944 + - 944 +- - 913 + - 945 + - 913 +- - 914 + - 946 + - 914 +- - 915 + - 947 + - 915 +- - 916 + - 948 + - 916 +- - 917 + - 949 + - 917 +- - 918 + - 950 + - 918 +- - 919 + - 951 + - 919 +- - 920 + - 952 + - 920 +- - 921 + - 953 + - 921 +- - 922 + - 954 + - 922 +- - 923 + - 955 + - 923 +- - 924 + - 956 + - 924 +- - 925 + - 957 + - 925 +- - 926 + - 958 + - 926 +- - 927 + - 959 + - 927 +- - 928 + - 960 + - 928 +- - 929 + - 961 + - 929 +- - 931 + - 962 + - 931 +- - 931 + - 963 + - 931 +- - 932 + - 964 + - 932 +- - 933 + - 965 + - 933 +- - 934 + - 966 + - 934 +- - 935 + - 967 + - 935 +- - 936 + - 968 + - 936 +- - 937 + - 969 + - 937 +- - 938 + - 970 + - 938 +- - 939 + - 971 + - 939 +- - 908 + - 972 + - 908 +- - 910 + - 973 + - 910 +- - 911 + - 974 + - 911 +- - 975 + - 983 + - 975 +- - 914 + - 976 + - 914 +- - 920 + - 977 + - 920 +- - 978 + - 978 + - 978 +- - 979 + - 979 + - 979 +- - 980 + - 980 + - 980 +- - 934 + - 981 + - 934 +- - 928 + - 982 + - 928 +- - 975 + - 983 + - 975 +- - 984 + - 985 + - 984 +- - 984 + - 985 + - 984 +- - 986 + - 987 + - 986 +- - 986 + - 987 + - 986 +- - 988 + - 989 + - 988 +- - 988 + - 989 + - 988 +- - 990 + - 991 + - 990 +- - 990 + - 991 + - 990 +- - 992 + - 993 + - 992 +- - 992 + - 993 + - 992 +- - 994 + - 995 + - 994 +- - 994 + - 995 + - 994 +- - 996 + - 997 + - 996 +- - 996 + - 997 + - 996 +- - 998 + - 999 + - 998 +- - 998 + - 999 + - 998 +- - 1000 + - 1001 + - 1000 +- - 1000 + - 1001 + - 1000 +- - 1002 + - 1003 + - 1002 +- - 1002 + - 1003 + - 1002 +- - 1004 + - 1005 + - 1004 +- - 1004 + - 1005 + - 1004 +- - 1006 + - 1007 + - 1006 +- - 1006 + - 1007 + - 1006 +- - 922 + - 1008 + - 922 +- - 929 + - 1009 + - 929 +- - 1017 + - 1010 + - 1017 +- - 895 + - 1011 + - 895 +- - 1012 + - 952 + - 1012 +- - 917 + - 1013 + - 917 +- - 1014 + - 1014 + - 1014 +- - 1015 + - 1016 + - 1015 +- - 1015 + - 1016 + - 1015 +- - 1017 + - 1010 + - 1017 +- - 1018 + - 1019 + - 1018 +- - 1018 + - 1019 + - 1018 +- - 1020 + - 1020 + - 1020 +- - 1021 + - 891 + - 1021 +- - 1022 + - 892 + - 1022 +- - 1023 + - 893 + - 1023 +u900p004: +- - 1024 + - 1104 + - 1024 +- - 1025 + - 1105 + - 1025 +- - 1026 + - 1106 + - 1026 +- - 1027 + - 1107 + - 1027 +- - 1028 + - 1108 + - 1028 +- - 1029 + - 1109 + - 1029 +- - 1030 + - 1110 + - 1030 +- - 1031 + - 1111 + - 1031 +- - 1032 + - 1112 + - 1032 +- - 1033 + - 1113 + - 1033 +- - 1034 + - 1114 + - 1034 +- - 1035 + - 1115 + - 1035 +- - 1036 + - 1116 + - 1036 +- - 1037 + - 1117 + - 1037 +- - 1038 + - 1118 + - 1038 +- - 1039 + - 1119 + - 1039 +- - 1040 + - 1072 + - 1040 +- - 1041 + - 1073 + - 1041 +- - 1042 + - 1074 + - 1042 +- - 1043 + - 1075 + - 1043 +- - 1044 + - 1076 + - 1044 +- - 1045 + - 1077 + - 1045 +- - 1046 + - 1078 + - 1046 +- - 1047 + - 1079 + - 1047 +- - 1048 + - 1080 + - 1048 +- - 1049 + - 1081 + - 1049 +- - 1050 + - 1082 + - 1050 +- - 1051 + - 1083 + - 1051 +- - 1052 + - 1084 + - 1052 +- - 1053 + - 1085 + - 1053 +- - 1054 + - 1086 + - 1054 +- - 1055 + - 1087 + - 1055 +- - 1056 + - 1088 + - 1056 +- - 1057 + - 1089 + - 1057 +- - 1058 + - 1090 + - 1058 +- - 1059 + - 1091 + - 1059 +- - 1060 + - 1092 + - 1060 +- - 1061 + - 1093 + - 1061 +- - 1062 + - 1094 + - 1062 +- - 1063 + - 1095 + - 1063 +- - 1064 + - 1096 + - 1064 +- - 1065 + - 1097 + - 1065 +- - 1066 + - 1098 + - 1066 +- - 1067 + - 1099 + - 1067 +- - 1068 + - 1100 + - 1068 +- - 1069 + - 1101 + - 1069 +- - 1070 + - 1102 + - 1070 +- - 1071 + - 1103 + - 1071 +- - 1040 + - 1072 + - 1040 +- - 1041 + - 1073 + - 1041 +- - 1042 + - 1074 + - 1042 +- - 1043 + - 1075 + - 1043 +- - 1044 + - 1076 + - 1044 +- - 1045 + - 1077 + - 1045 +- - 1046 + - 1078 + - 1046 +- - 1047 + - 1079 + - 1047 +- - 1048 + - 1080 + - 1048 +- - 1049 + - 1081 + - 1049 +- - 1050 + - 1082 + - 1050 +- - 1051 + - 1083 + - 1051 +- - 1052 + - 1084 + - 1052 +- - 1053 + - 1085 + - 1053 +- - 1054 + - 1086 + - 1054 +- - 1055 + - 1087 + - 1055 +- - 1056 + - 1088 + - 1056 +- - 1057 + - 1089 + - 1057 +- - 1058 + - 1090 + - 1058 +- - 1059 + - 1091 + - 1059 +- - 1060 + - 1092 + - 1060 +- - 1061 + - 1093 + - 1061 +- - 1062 + - 1094 + - 1062 +- - 1063 + - 1095 + - 1063 +- - 1064 + - 1096 + - 1064 +- - 1065 + - 1097 + - 1065 +- - 1066 + - 1098 + - 1066 +- - 1067 + - 1099 + - 1067 +- - 1068 + - 1100 + - 1068 +- - 1069 + - 1101 + - 1069 +- - 1070 + - 1102 + - 1070 +- - 1071 + - 1103 + - 1071 +- - 1024 + - 1104 + - 1024 +- - 1025 + - 1105 + - 1025 +- - 1026 + - 1106 + - 1026 +- - 1027 + - 1107 + - 1027 +- - 1028 + - 1108 + - 1028 +- - 1029 + - 1109 + - 1029 +- - 1030 + - 1110 + - 1030 +- - 1031 + - 1111 + - 1031 +- - 1032 + - 1112 + - 1032 +- - 1033 + - 1113 + - 1033 +- - 1034 + - 1114 + - 1034 +- - 1035 + - 1115 + - 1035 +- - 1036 + - 1116 + - 1036 +- - 1037 + - 1117 + - 1037 +- - 1038 + - 1118 + - 1038 +- - 1039 + - 1119 + - 1039 +- - 1120 + - 1121 + - 1120 +- - 1120 + - 1121 + - 1120 +- - 1122 + - 1123 + - 1122 +- - 1122 + - 1123 + - 1122 +- - 1124 + - 1125 + - 1124 +- - 1124 + - 1125 + - 1124 +- - 1126 + - 1127 + - 1126 +- - 1126 + - 1127 + - 1126 +- - 1128 + - 1129 + - 1128 +- - 1128 + - 1129 + - 1128 +- - 1130 + - 1131 + - 1130 +- - 1130 + - 1131 + - 1130 +- - 1132 + - 1133 + - 1132 +- - 1132 + - 1133 + - 1132 +- - 1134 + - 1135 + - 1134 +- - 1134 + - 1135 + - 1134 +- - 1136 + - 1137 + - 1136 +- - 1136 + - 1137 + - 1136 +- - 1138 + - 1139 + - 1138 +- - 1138 + - 1139 + - 1138 +- - 1140 + - 1141 + - 1140 +- - 1140 + - 1141 + - 1140 +- - 1142 + - 1143 + - 1142 +- - 1142 + - 1143 + - 1142 +- - 1144 + - 1145 + - 1144 +- - 1144 + - 1145 + - 1144 +- - 1146 + - 1147 + - 1146 +- - 1146 + - 1147 + - 1146 +- - 1148 + - 1149 + - 1148 +- - 1148 + - 1149 + - 1148 +- - 1150 + - 1151 + - 1150 +- - 1150 + - 1151 + - 1150 +- - 1152 + - 1153 + - 1152 +- - 1152 + - 1153 + - 1152 +- - 1154 + - 1154 + - 1154 +- - 1155 + - 1155 + - 1155 +- - 1156 + - 1156 + - 1156 +- - 1157 + - 1157 + - 1157 +- - 1158 + - 1158 + - 1158 +- - 1159 + - 1159 + - 1159 +- - 1160 + - 1160 + - 1160 +- - 1161 + - 1161 + - 1161 +- - 1162 + - 1163 + - 1162 +- - 1162 + - 1163 + - 1162 +- - 1164 + - 1165 + - 1164 +- - 1164 + - 1165 + - 1164 +- - 1166 + - 1167 + - 1166 +- - 1166 + - 1167 + - 1166 +- - 1168 + - 1169 + - 1168 +- - 1168 + - 1169 + - 1168 +- - 1170 + - 1171 + - 1170 +- - 1170 + - 1171 + - 1170 +- - 1172 + - 1173 + - 1172 +- - 1172 + - 1173 + - 1172 +- - 1174 + - 1175 + - 1174 +- - 1174 + - 1175 + - 1174 +- - 1176 + - 1177 + - 1176 +- - 1176 + - 1177 + - 1176 +- - 1178 + - 1179 + - 1178 +- - 1178 + - 1179 + - 1178 +- - 1180 + - 1181 + - 1180 +- - 1180 + - 1181 + - 1180 +- - 1182 + - 1183 + - 1182 +- - 1182 + - 1183 + - 1182 +- - 1184 + - 1185 + - 1184 +- - 1184 + - 1185 + - 1184 +- - 1186 + - 1187 + - 1186 +- - 1186 + - 1187 + - 1186 +- - 1188 + - 1189 + - 1188 +- - 1188 + - 1189 + - 1188 +- - 1190 + - 1191 + - 1190 +- - 1190 + - 1191 + - 1190 +- - 1192 + - 1193 + - 1192 +- - 1192 + - 1193 + - 1192 +- - 1194 + - 1195 + - 1194 +- - 1194 + - 1195 + - 1194 +- - 1196 + - 1197 + - 1196 +- - 1196 + - 1197 + - 1196 +- - 1198 + - 1199 + - 1198 +- - 1198 + - 1199 + - 1198 +- - 1200 + - 1201 + - 1200 +- - 1200 + - 1201 + - 1200 +- - 1202 + - 1203 + - 1202 +- - 1202 + - 1203 + - 1202 +- - 1204 + - 1205 + - 1204 +- - 1204 + - 1205 + - 1204 +- - 1206 + - 1207 + - 1206 +- - 1206 + - 1207 + - 1206 +- - 1208 + - 1209 + - 1208 +- - 1208 + - 1209 + - 1208 +- - 1210 + - 1211 + - 1210 +- - 1210 + - 1211 + - 1210 +- - 1212 + - 1213 + - 1212 +- - 1212 + - 1213 + - 1212 +- - 1214 + - 1215 + - 1214 +- - 1214 + - 1215 + - 1214 +- - 1216 + - 1231 + - 1216 +- - 1217 + - 1218 + - 1217 +- - 1217 + - 1218 + - 1217 +- - 1219 + - 1220 + - 1219 +- - 1219 + - 1220 + - 1219 +- - 1221 + - 1222 + - 1221 +- - 1221 + - 1222 + - 1221 +- - 1223 + - 1224 + - 1223 +- - 1223 + - 1224 + - 1223 +- - 1225 + - 1226 + - 1225 +- - 1225 + - 1226 + - 1225 +- - 1227 + - 1228 + - 1227 +- - 1227 + - 1228 + - 1227 +- - 1229 + - 1230 + - 1229 +- - 1229 + - 1230 + - 1229 +- - 1216 + - 1231 + - 1216 +- - 1232 + - 1233 + - 1232 +- - 1232 + - 1233 + - 1232 +- - 1234 + - 1235 + - 1234 +- - 1234 + - 1235 + - 1234 +- - 1236 + - 1237 + - 1236 +- - 1236 + - 1237 + - 1236 +- - 1238 + - 1239 + - 1238 +- - 1238 + - 1239 + - 1238 +- - 1240 + - 1241 + - 1240 +- - 1240 + - 1241 + - 1240 +- - 1242 + - 1243 + - 1242 +- - 1242 + - 1243 + - 1242 +- - 1244 + - 1245 + - 1244 +- - 1244 + - 1245 + - 1244 +- - 1246 + - 1247 + - 1246 +- - 1246 + - 1247 + - 1246 +- - 1248 + - 1249 + - 1248 +- - 1248 + - 1249 + - 1248 +- - 1250 + - 1251 + - 1250 +- - 1250 + - 1251 + - 1250 +- - 1252 + - 1253 + - 1252 +- - 1252 + - 1253 + - 1252 +- - 1254 + - 1255 + - 1254 +- - 1254 + - 1255 + - 1254 +- - 1256 + - 1257 + - 1256 +- - 1256 + - 1257 + - 1256 +- - 1258 + - 1259 + - 1258 +- - 1258 + - 1259 + - 1258 +- - 1260 + - 1261 + - 1260 +- - 1260 + - 1261 + - 1260 +- - 1262 + - 1263 + - 1262 +- - 1262 + - 1263 + - 1262 +- - 1264 + - 1265 + - 1264 +- - 1264 + - 1265 + - 1264 +- - 1266 + - 1267 + - 1266 +- - 1266 + - 1267 + - 1266 +- - 1268 + - 1269 + - 1268 +- - 1268 + - 1269 + - 1268 +- - 1270 + - 1271 + - 1270 +- - 1270 + - 1271 + - 1270 +- - 1272 + - 1273 + - 1272 +- - 1272 + - 1273 + - 1272 +- - 1274 + - 1275 + - 1274 +- - 1274 + - 1275 + - 1274 +- - 1276 + - 1277 + - 1276 +- - 1276 + - 1277 + - 1276 +- - 1278 + - 1279 + - 1278 +- - 1278 + - 1279 + - 1278 +u900p005: +- - 1280 + - 1281 + - 1280 +- - 1280 + - 1281 + - 1280 +- - 1282 + - 1283 + - 1282 +- - 1282 + - 1283 + - 1282 +- - 1284 + - 1285 + - 1284 +- - 1284 + - 1285 + - 1284 +- - 1286 + - 1287 + - 1286 +- - 1286 + - 1287 + - 1286 +- - 1288 + - 1289 + - 1288 +- - 1288 + - 1289 + - 1288 +- - 1290 + - 1291 + - 1290 +- - 1290 + - 1291 + - 1290 +- - 1292 + - 1293 + - 1292 +- - 1292 + - 1293 + - 1292 +- - 1294 + - 1295 + - 1294 +- - 1294 + - 1295 + - 1294 +- - 1296 + - 1297 + - 1296 +- - 1296 + - 1297 + - 1296 +- - 1298 + - 1299 + - 1298 +- - 1298 + - 1299 + - 1298 +- - 1300 + - 1301 + - 1300 +- - 1300 + - 1301 + - 1300 +- - 1302 + - 1303 + - 1302 +- - 1302 + - 1303 + - 1302 +- - 1304 + - 1305 + - 1304 +- - 1304 + - 1305 + - 1304 +- - 1306 + - 1307 + - 1306 +- - 1306 + - 1307 + - 1306 +- - 1308 + - 1309 + - 1308 +- - 1308 + - 1309 + - 1308 +- - 1310 + - 1311 + - 1310 +- - 1310 + - 1311 + - 1310 +- - 1312 + - 1313 + - 1312 +- - 1312 + - 1313 + - 1312 +- - 1314 + - 1315 + - 1314 +- - 1314 + - 1315 + - 1314 +- - 1316 + - 1317 + - 1316 +- - 1316 + - 1317 + - 1316 +- - 1318 + - 1319 + - 1318 +- - 1318 + - 1319 + - 1318 +- - 1320 + - 1321 + - 1320 +- - 1320 + - 1321 + - 1320 +- - 1322 + - 1323 + - 1322 +- - 1322 + - 1323 + - 1322 +- - 1324 + - 1325 + - 1324 +- - 1324 + - 1325 + - 1324 +- - 1326 + - 1327 + - 1326 +- - 1326 + - 1327 + - 1326 +- - 1328 + - 1328 + - 1328 +- - 1329 + - 1377 + - 1329 +- - 1330 + - 1378 + - 1330 +- - 1331 + - 1379 + - 1331 +- - 1332 + - 1380 + - 1332 +- - 1333 + - 1381 + - 1333 +- - 1334 + - 1382 + - 1334 +- - 1335 + - 1383 + - 1335 +- - 1336 + - 1384 + - 1336 +- - 1337 + - 1385 + - 1337 +- - 1338 + - 1386 + - 1338 +- - 1339 + - 1387 + - 1339 +- - 1340 + - 1388 + - 1340 +- - 1341 + - 1389 + - 1341 +- - 1342 + - 1390 + - 1342 +- - 1343 + - 1391 + - 1343 +- - 1344 + - 1392 + - 1344 +- - 1345 + - 1393 + - 1345 +- - 1346 + - 1394 + - 1346 +- - 1347 + - 1395 + - 1347 +- - 1348 + - 1396 + - 1348 +- - 1349 + - 1397 + - 1349 +- - 1350 + - 1398 + - 1350 +- - 1351 + - 1399 + - 1351 +- - 1352 + - 1400 + - 1352 +- - 1353 + - 1401 + - 1353 +- - 1354 + - 1402 + - 1354 +- - 1355 + - 1403 + - 1355 +- - 1356 + - 1404 + - 1356 +- - 1357 + - 1405 + - 1357 +- - 1358 + - 1406 + - 1358 +- - 1359 + - 1407 + - 1359 +- - 1360 + - 1408 + - 1360 +- - 1361 + - 1409 + - 1361 +- - 1362 + - 1410 + - 1362 +- - 1363 + - 1411 + - 1363 +- - 1364 + - 1412 + - 1364 +- - 1365 + - 1413 + - 1365 +- - 1366 + - 1414 + - 1366 +- - 1367 + - 1367 + - 1367 +- - 1368 + - 1368 + - 1368 +- - 1369 + - 1369 + - 1369 +- - 1370 + - 1370 + - 1370 +- - 1371 + - 1371 + - 1371 +- - 1372 + - 1372 + - 1372 +- - 1373 + - 1373 + - 1373 +- - 1374 + - 1374 + - 1374 +- - 1375 + - 1375 + - 1375 +- - 1376 + - 1376 + - 1376 +- - 1329 + - 1377 + - 1329 +- - 1330 + - 1378 + - 1330 +- - 1331 + - 1379 + - 1331 +- - 1332 + - 1380 + - 1332 +- - 1333 + - 1381 + - 1333 +- - 1334 + - 1382 + - 1334 +- - 1335 + - 1383 + - 1335 +- - 1336 + - 1384 + - 1336 +- - 1337 + - 1385 + - 1337 +- - 1338 + - 1386 + - 1338 +- - 1339 + - 1387 + - 1339 +- - 1340 + - 1388 + - 1340 +- - 1341 + - 1389 + - 1341 +- - 1342 + - 1390 + - 1342 +- - 1343 + - 1391 + - 1343 +- - 1344 + - 1392 + - 1344 +- - 1345 + - 1393 + - 1345 +- - 1346 + - 1394 + - 1346 +- - 1347 + - 1395 + - 1347 +- - 1348 + - 1396 + - 1348 +- - 1349 + - 1397 + - 1349 +- - 1350 + - 1398 + - 1350 +- - 1351 + - 1399 + - 1351 +- - 1352 + - 1400 + - 1352 +- - 1353 + - 1401 + - 1353 +- - 1354 + - 1402 + - 1354 +- - 1355 + - 1403 + - 1355 +- - 1356 + - 1404 + - 1356 +- - 1357 + - 1405 + - 1357 +- - 1358 + - 1406 + - 1358 +- - 1359 + - 1407 + - 1359 +- - 1360 + - 1408 + - 1360 +- - 1361 + - 1409 + - 1361 +- - 1362 + - 1410 + - 1362 +- - 1363 + - 1411 + - 1363 +- - 1364 + - 1412 + - 1364 +- - 1365 + - 1413 + - 1365 +- - 1366 + - 1414 + - 1366 +- - 1415 + - 1415 + - 1415 +- - 1416 + - 1416 + - 1416 +- - 1417 + - 1417 + - 1417 +- - 1418 + - 1418 + - 1418 +- - 1419 + - 1419 + - 1419 +- - 1420 + - 1420 + - 1420 +- - 1421 + - 1421 + - 1421 +- - 1422 + - 1422 + - 1422 +- - 1423 + - 1423 + - 1423 +- - 1424 + - 1424 + - 1424 +- - 1425 + - 1425 + - 1425 +- - 1426 + - 1426 + - 1426 +- - 1427 + - 1427 + - 1427 +- - 1428 + - 1428 + - 1428 +- - 1429 + - 1429 + - 1429 +- - 1430 + - 1430 + - 1430 +- - 1431 + - 1431 + - 1431 +- - 1432 + - 1432 + - 1432 +- - 1433 + - 1433 + - 1433 +- - 1434 + - 1434 + - 1434 +- - 1435 + - 1435 + - 1435 +- - 1436 + - 1436 + - 1436 +- - 1437 + - 1437 + - 1437 +- - 1438 + - 1438 + - 1438 +- - 1439 + - 1439 + - 1439 +- - 1440 + - 1440 + - 1440 +- - 1441 + - 1441 + - 1441 +- - 1442 + - 1442 + - 1442 +- - 1443 + - 1443 + - 1443 +- - 1444 + - 1444 + - 1444 +- - 1445 + - 1445 + - 1445 +- - 1446 + - 1446 + - 1446 +- - 1447 + - 1447 + - 1447 +- - 1448 + - 1448 + - 1448 +- - 1449 + - 1449 + - 1449 +- - 1450 + - 1450 + - 1450 +- - 1451 + - 1451 + - 1451 +- - 1452 + - 1452 + - 1452 +- - 1453 + - 1453 + - 1453 +- - 1454 + - 1454 + - 1454 +- - 1455 + - 1455 + - 1455 +- - 1456 + - 1456 + - 1456 +- - 1457 + - 1457 + - 1457 +- - 1458 + - 1458 + - 1458 +- - 1459 + - 1459 + - 1459 +- - 1460 + - 1460 + - 1460 +- - 1461 + - 1461 + - 1461 +- - 1462 + - 1462 + - 1462 +- - 1463 + - 1463 + - 1463 +- - 1464 + - 1464 + - 1464 +- - 1465 + - 1465 + - 1465 +- - 1466 + - 1466 + - 1466 +- - 1467 + - 1467 + - 1467 +- - 1468 + - 1468 + - 1468 +- - 1469 + - 1469 + - 1469 +- - 1470 + - 1470 + - 1470 +- - 1471 + - 1471 + - 1471 +- - 1472 + - 1472 + - 1472 +- - 1473 + - 1473 + - 1473 +- - 1474 + - 1474 + - 1474 +- - 1475 + - 1475 + - 1475 +- - 1476 + - 1476 + - 1476 +- - 1477 + - 1477 + - 1477 +- - 1478 + - 1478 + - 1478 +- - 1479 + - 1479 + - 1479 +- - 1480 + - 1480 + - 1480 +- - 1481 + - 1481 + - 1481 +- - 1482 + - 1482 + - 1482 +- - 1483 + - 1483 + - 1483 +- - 1484 + - 1484 + - 1484 +- - 1485 + - 1485 + - 1485 +- - 1486 + - 1486 + - 1486 +- - 1487 + - 1487 + - 1487 +- - 1488 + - 1488 + - 1488 +- - 1489 + - 1489 + - 1489 +- - 1490 + - 1490 + - 1490 +- - 1491 + - 1491 + - 1491 +- - 1492 + - 1492 + - 1492 +- - 1493 + - 1493 + - 1493 +- - 1494 + - 1494 + - 1494 +- - 1495 + - 1495 + - 1495 +- - 1496 + - 1496 + - 1496 +- - 1497 + - 1497 + - 1497 +- - 1498 + - 1498 + - 1498 +- - 1499 + - 1499 + - 1499 +- - 1500 + - 1500 + - 1500 +- - 1501 + - 1501 + - 1501 +- - 1502 + - 1502 + - 1502 +- - 1503 + - 1503 + - 1503 +- - 1504 + - 1504 + - 1504 +- - 1505 + - 1505 + - 1505 +- - 1506 + - 1506 + - 1506 +- - 1507 + - 1507 + - 1507 +- - 1508 + - 1508 + - 1508 +- - 1509 + - 1509 + - 1509 +- - 1510 + - 1510 + - 1510 +- - 1511 + - 1511 + - 1511 +- - 1512 + - 1512 + - 1512 +- - 1513 + - 1513 + - 1513 +- - 1514 + - 1514 + - 1514 +- - 1515 + - 1515 + - 1515 +- - 1516 + - 1516 + - 1516 +- - 1517 + - 1517 + - 1517 +- - 1518 + - 1518 + - 1518 +- - 1519 + - 1519 + - 1519 +- - 1520 + - 1520 + - 1520 +- - 1521 + - 1521 + - 1521 +- - 1522 + - 1522 + - 1522 +- - 1523 + - 1523 + - 1523 +- - 1524 + - 1524 + - 1524 +- - 1525 + - 1525 + - 1525 +- - 1526 + - 1526 + - 1526 +- - 1527 + - 1527 + - 1527 +- - 1528 + - 1528 + - 1528 +- - 1529 + - 1529 + - 1529 +- - 1530 + - 1530 + - 1530 +- - 1531 + - 1531 + - 1531 +- - 1532 + - 1532 + - 1532 +- - 1533 + - 1533 + - 1533 +- - 1534 + - 1534 + - 1534 +- - 1535 + - 1535 + - 1535 +u900p010: +- - 4096 + - 4096 + - 4096 +- - 4097 + - 4097 + - 4097 +- - 4098 + - 4098 + - 4098 +- - 4099 + - 4099 + - 4099 +- - 4100 + - 4100 + - 4100 +- - 4101 + - 4101 + - 4101 +- - 4102 + - 4102 + - 4102 +- - 4103 + - 4103 + - 4103 +- - 4104 + - 4104 + - 4104 +- - 4105 + - 4105 + - 4105 +- - 4106 + - 4106 + - 4106 +- - 4107 + - 4107 + - 4107 +- - 4108 + - 4108 + - 4108 +- - 4109 + - 4109 + - 4109 +- - 4110 + - 4110 + - 4110 +- - 4111 + - 4111 + - 4111 +- - 4112 + - 4112 + - 4112 +- - 4113 + - 4113 + - 4113 +- - 4114 + - 4114 + - 4114 +- - 4115 + - 4115 + - 4115 +- - 4116 + - 4116 + - 4116 +- - 4117 + - 4117 + - 4117 +- - 4118 + - 4118 + - 4118 +- - 4119 + - 4119 + - 4119 +- - 4120 + - 4120 + - 4120 +- - 4121 + - 4121 + - 4121 +- - 4122 + - 4122 + - 4122 +- - 4123 + - 4123 + - 4123 +- - 4124 + - 4124 + - 4124 +- - 4125 + - 4125 + - 4125 +- - 4126 + - 4126 + - 4126 +- - 4127 + - 4127 + - 4127 +- - 4128 + - 4128 + - 4128 +- - 4129 + - 4129 + - 4129 +- - 4130 + - 4130 + - 4130 +- - 4131 + - 4131 + - 4131 +- - 4132 + - 4132 + - 4132 +- - 4133 + - 4133 + - 4133 +- - 4134 + - 4134 + - 4134 +- - 4135 + - 4135 + - 4135 +- - 4136 + - 4136 + - 4136 +- - 4137 + - 4137 + - 4137 +- - 4138 + - 4138 + - 4138 +- - 4139 + - 4139 + - 4139 +- - 4140 + - 4140 + - 4140 +- - 4141 + - 4141 + - 4141 +- - 4142 + - 4142 + - 4142 +- - 4143 + - 4143 + - 4143 +- - 4144 + - 4144 + - 4144 +- - 4145 + - 4145 + - 4145 +- - 4146 + - 4146 + - 4146 +- - 4147 + - 4147 + - 4147 +- - 4148 + - 4148 + - 4148 +- - 4149 + - 4149 + - 4149 +- - 4150 + - 4150 + - 4150 +- - 4151 + - 4151 + - 4151 +- - 4152 + - 4152 + - 4152 +- - 4153 + - 4153 + - 4153 +- - 4154 + - 4154 + - 4154 +- - 4155 + - 4155 + - 4155 +- - 4156 + - 4156 + - 4156 +- - 4157 + - 4157 + - 4157 +- - 4158 + - 4158 + - 4158 +- - 4159 + - 4159 + - 4159 +- - 4160 + - 4160 + - 4160 +- - 4161 + - 4161 + - 4161 +- - 4162 + - 4162 + - 4162 +- - 4163 + - 4163 + - 4163 +- - 4164 + - 4164 + - 4164 +- - 4165 + - 4165 + - 4165 +- - 4166 + - 4166 + - 4166 +- - 4167 + - 4167 + - 4167 +- - 4168 + - 4168 + - 4168 +- - 4169 + - 4169 + - 4169 +- - 4170 + - 4170 + - 4170 +- - 4171 + - 4171 + - 4171 +- - 4172 + - 4172 + - 4172 +- - 4173 + - 4173 + - 4173 +- - 4174 + - 4174 + - 4174 +- - 4175 + - 4175 + - 4175 +- - 4176 + - 4176 + - 4176 +- - 4177 + - 4177 + - 4177 +- - 4178 + - 4178 + - 4178 +- - 4179 + - 4179 + - 4179 +- - 4180 + - 4180 + - 4180 +- - 4181 + - 4181 + - 4181 +- - 4182 + - 4182 + - 4182 +- - 4183 + - 4183 + - 4183 +- - 4184 + - 4184 + - 4184 +- - 4185 + - 4185 + - 4185 +- - 4186 + - 4186 + - 4186 +- - 4187 + - 4187 + - 4187 +- - 4188 + - 4188 + - 4188 +- - 4189 + - 4189 + - 4189 +- - 4190 + - 4190 + - 4190 +- - 4191 + - 4191 + - 4191 +- - 4192 + - 4192 + - 4192 +- - 4193 + - 4193 + - 4193 +- - 4194 + - 4194 + - 4194 +- - 4195 + - 4195 + - 4195 +- - 4196 + - 4196 + - 4196 +- - 4197 + - 4197 + - 4197 +- - 4198 + - 4198 + - 4198 +- - 4199 + - 4199 + - 4199 +- - 4200 + - 4200 + - 4200 +- - 4201 + - 4201 + - 4201 +- - 4202 + - 4202 + - 4202 +- - 4203 + - 4203 + - 4203 +- - 4204 + - 4204 + - 4204 +- - 4205 + - 4205 + - 4205 +- - 4206 + - 4206 + - 4206 +- - 4207 + - 4207 + - 4207 +- - 4208 + - 4208 + - 4208 +- - 4209 + - 4209 + - 4209 +- - 4210 + - 4210 + - 4210 +- - 4211 + - 4211 + - 4211 +- - 4212 + - 4212 + - 4212 +- - 4213 + - 4213 + - 4213 +- - 4214 + - 4214 + - 4214 +- - 4215 + - 4215 + - 4215 +- - 4216 + - 4216 + - 4216 +- - 4217 + - 4217 + - 4217 +- - 4218 + - 4218 + - 4218 +- - 4219 + - 4219 + - 4219 +- - 4220 + - 4220 + - 4220 +- - 4221 + - 4221 + - 4221 +- - 4222 + - 4222 + - 4222 +- - 4223 + - 4223 + - 4223 +- - 4224 + - 4224 + - 4224 +- - 4225 + - 4225 + - 4225 +- - 4226 + - 4226 + - 4226 +- - 4227 + - 4227 + - 4227 +- - 4228 + - 4228 + - 4228 +- - 4229 + - 4229 + - 4229 +- - 4230 + - 4230 + - 4230 +- - 4231 + - 4231 + - 4231 +- - 4232 + - 4232 + - 4232 +- - 4233 + - 4233 + - 4233 +- - 4234 + - 4234 + - 4234 +- - 4235 + - 4235 + - 4235 +- - 4236 + - 4236 + - 4236 +- - 4237 + - 4237 + - 4237 +- - 4238 + - 4238 + - 4238 +- - 4239 + - 4239 + - 4239 +- - 4240 + - 4240 + - 4240 +- - 4241 + - 4241 + - 4241 +- - 4242 + - 4242 + - 4242 +- - 4243 + - 4243 + - 4243 +- - 4244 + - 4244 + - 4244 +- - 4245 + - 4245 + - 4245 +- - 4246 + - 4246 + - 4246 +- - 4247 + - 4247 + - 4247 +- - 4248 + - 4248 + - 4248 +- - 4249 + - 4249 + - 4249 +- - 4250 + - 4250 + - 4250 +- - 4251 + - 4251 + - 4251 +- - 4252 + - 4252 + - 4252 +- - 4253 + - 4253 + - 4253 +- - 4254 + - 4254 + - 4254 +- - 4255 + - 4255 + - 4255 +- - 4256 + - 11520 + - 4256 +- - 4257 + - 11521 + - 4257 +- - 4258 + - 11522 + - 4258 +- - 4259 + - 11523 + - 4259 +- - 4260 + - 11524 + - 4260 +- - 4261 + - 11525 + - 4261 +- - 4262 + - 11526 + - 4262 +- - 4263 + - 11527 + - 4263 +- - 4264 + - 11528 + - 4264 +- - 4265 + - 11529 + - 4265 +- - 4266 + - 11530 + - 4266 +- - 4267 + - 11531 + - 4267 +- - 4268 + - 11532 + - 4268 +- - 4269 + - 11533 + - 4269 +- - 4270 + - 11534 + - 4270 +- - 4271 + - 11535 + - 4271 +- - 4272 + - 11536 + - 4272 +- - 4273 + - 11537 + - 4273 +- - 4274 + - 11538 + - 4274 +- - 4275 + - 11539 + - 4275 +- - 4276 + - 11540 + - 4276 +- - 4277 + - 11541 + - 4277 +- - 4278 + - 11542 + - 4278 +- - 4279 + - 11543 + - 4279 +- - 4280 + - 11544 + - 4280 +- - 4281 + - 11545 + - 4281 +- - 4282 + - 11546 + - 4282 +- - 4283 + - 11547 + - 4283 +- - 4284 + - 11548 + - 4284 +- - 4285 + - 11549 + - 4285 +- - 4286 + - 11550 + - 4286 +- - 4287 + - 11551 + - 4287 +- - 4288 + - 11552 + - 4288 +- - 4289 + - 11553 + - 4289 +- - 4290 + - 11554 + - 4290 +- - 4291 + - 11555 + - 4291 +- - 4292 + - 11556 + - 4292 +- - 4293 + - 11557 + - 4293 +- - 4294 + - 4294 + - 4294 +- - 4295 + - 11559 + - 4295 +- - 4296 + - 4296 + - 4296 +- - 4297 + - 4297 + - 4297 +- - 4298 + - 4298 + - 4298 +- - 4299 + - 4299 + - 4299 +- - 4300 + - 4300 + - 4300 +- - 4301 + - 11565 + - 4301 +- - 4302 + - 4302 + - 4302 +- - 4303 + - 4303 + - 4303 +- - 4304 + - 4304 + - 4304 +- - 4305 + - 4305 + - 4305 +- - 4306 + - 4306 + - 4306 +- - 4307 + - 4307 + - 4307 +- - 4308 + - 4308 + - 4308 +- - 4309 + - 4309 + - 4309 +- - 4310 + - 4310 + - 4310 +- - 4311 + - 4311 + - 4311 +- - 4312 + - 4312 + - 4312 +- - 4313 + - 4313 + - 4313 +- - 4314 + - 4314 + - 4314 +- - 4315 + - 4315 + - 4315 +- - 4316 + - 4316 + - 4316 +- - 4317 + - 4317 + - 4317 +- - 4318 + - 4318 + - 4318 +- - 4319 + - 4319 + - 4319 +- - 4320 + - 4320 + - 4320 +- - 4321 + - 4321 + - 4321 +- - 4322 + - 4322 + - 4322 +- - 4323 + - 4323 + - 4323 +- - 4324 + - 4324 + - 4324 +- - 4325 + - 4325 + - 4325 +- - 4326 + - 4326 + - 4326 +- - 4327 + - 4327 + - 4327 +- - 4328 + - 4328 + - 4328 +- - 4329 + - 4329 + - 4329 +- - 4330 + - 4330 + - 4330 +- - 4331 + - 4331 + - 4331 +- - 4332 + - 4332 + - 4332 +- - 4333 + - 4333 + - 4333 +- - 4334 + - 4334 + - 4334 +- - 4335 + - 4335 + - 4335 +- - 4336 + - 4336 + - 4336 +- - 4337 + - 4337 + - 4337 +- - 4338 + - 4338 + - 4338 +- - 4339 + - 4339 + - 4339 +- - 4340 + - 4340 + - 4340 +- - 4341 + - 4341 + - 4341 +- - 4342 + - 4342 + - 4342 +- - 4343 + - 4343 + - 4343 +- - 4344 + - 4344 + - 4344 +- - 4345 + - 4345 + - 4345 +- - 4346 + - 4346 + - 4346 +- - 4347 + - 4347 + - 4347 +- - 4348 + - 4348 + - 4348 +- - 4349 + - 4349 + - 4349 +- - 4350 + - 4350 + - 4350 +- - 4351 + - 4351 + - 4351 +u900p013: +- - 4864 + - 4864 + - 4864 +- - 4865 + - 4865 + - 4865 +- - 4866 + - 4866 + - 4866 +- - 4867 + - 4867 + - 4867 +- - 4868 + - 4868 + - 4868 +- - 4869 + - 4869 + - 4869 +- - 4870 + - 4870 + - 4870 +- - 4871 + - 4871 + - 4871 +- - 4872 + - 4872 + - 4872 +- - 4873 + - 4873 + - 4873 +- - 4874 + - 4874 + - 4874 +- - 4875 + - 4875 + - 4875 +- - 4876 + - 4876 + - 4876 +- - 4877 + - 4877 + - 4877 +- - 4878 + - 4878 + - 4878 +- - 4879 + - 4879 + - 4879 +- - 4880 + - 4880 + - 4880 +- - 4881 + - 4881 + - 4881 +- - 4882 + - 4882 + - 4882 +- - 4883 + - 4883 + - 4883 +- - 4884 + - 4884 + - 4884 +- - 4885 + - 4885 + - 4885 +- - 4886 + - 4886 + - 4886 +- - 4887 + - 4887 + - 4887 +- - 4888 + - 4888 + - 4888 +- - 4889 + - 4889 + - 4889 +- - 4890 + - 4890 + - 4890 +- - 4891 + - 4891 + - 4891 +- - 4892 + - 4892 + - 4892 +- - 4893 + - 4893 + - 4893 +- - 4894 + - 4894 + - 4894 +- - 4895 + - 4895 + - 4895 +- - 4896 + - 4896 + - 4896 +- - 4897 + - 4897 + - 4897 +- - 4898 + - 4898 + - 4898 +- - 4899 + - 4899 + - 4899 +- - 4900 + - 4900 + - 4900 +- - 4901 + - 4901 + - 4901 +- - 4902 + - 4902 + - 4902 +- - 4903 + - 4903 + - 4903 +- - 4904 + - 4904 + - 4904 +- - 4905 + - 4905 + - 4905 +- - 4906 + - 4906 + - 4906 +- - 4907 + - 4907 + - 4907 +- - 4908 + - 4908 + - 4908 +- - 4909 + - 4909 + - 4909 +- - 4910 + - 4910 + - 4910 +- - 4911 + - 4911 + - 4911 +- - 4912 + - 4912 + - 4912 +- - 4913 + - 4913 + - 4913 +- - 4914 + - 4914 + - 4914 +- - 4915 + - 4915 + - 4915 +- - 4916 + - 4916 + - 4916 +- - 4917 + - 4917 + - 4917 +- - 4918 + - 4918 + - 4918 +- - 4919 + - 4919 + - 4919 +- - 4920 + - 4920 + - 4920 +- - 4921 + - 4921 + - 4921 +- - 4922 + - 4922 + - 4922 +- - 4923 + - 4923 + - 4923 +- - 4924 + - 4924 + - 4924 +- - 4925 + - 4925 + - 4925 +- - 4926 + - 4926 + - 4926 +- - 4927 + - 4927 + - 4927 +- - 4928 + - 4928 + - 4928 +- - 4929 + - 4929 + - 4929 +- - 4930 + - 4930 + - 4930 +- - 4931 + - 4931 + - 4931 +- - 4932 + - 4932 + - 4932 +- - 4933 + - 4933 + - 4933 +- - 4934 + - 4934 + - 4934 +- - 4935 + - 4935 + - 4935 +- - 4936 + - 4936 + - 4936 +- - 4937 + - 4937 + - 4937 +- - 4938 + - 4938 + - 4938 +- - 4939 + - 4939 + - 4939 +- - 4940 + - 4940 + - 4940 +- - 4941 + - 4941 + - 4941 +- - 4942 + - 4942 + - 4942 +- - 4943 + - 4943 + - 4943 +- - 4944 + - 4944 + - 4944 +- - 4945 + - 4945 + - 4945 +- - 4946 + - 4946 + - 4946 +- - 4947 + - 4947 + - 4947 +- - 4948 + - 4948 + - 4948 +- - 4949 + - 4949 + - 4949 +- - 4950 + - 4950 + - 4950 +- - 4951 + - 4951 + - 4951 +- - 4952 + - 4952 + - 4952 +- - 4953 + - 4953 + - 4953 +- - 4954 + - 4954 + - 4954 +- - 4955 + - 4955 + - 4955 +- - 4956 + - 4956 + - 4956 +- - 4957 + - 4957 + - 4957 +- - 4958 + - 4958 + - 4958 +- - 4959 + - 4959 + - 4959 +- - 4960 + - 4960 + - 4960 +- - 4961 + - 4961 + - 4961 +- - 4962 + - 4962 + - 4962 +- - 4963 + - 4963 + - 4963 +- - 4964 + - 4964 + - 4964 +- - 4965 + - 4965 + - 4965 +- - 4966 + - 4966 + - 4966 +- - 4967 + - 4967 + - 4967 +- - 4968 + - 4968 + - 4968 +- - 4969 + - 4969 + - 4969 +- - 4970 + - 4970 + - 4970 +- - 4971 + - 4971 + - 4971 +- - 4972 + - 4972 + - 4972 +- - 4973 + - 4973 + - 4973 +- - 4974 + - 4974 + - 4974 +- - 4975 + - 4975 + - 4975 +- - 4976 + - 4976 + - 4976 +- - 4977 + - 4977 + - 4977 +- - 4978 + - 4978 + - 4978 +- - 4979 + - 4979 + - 4979 +- - 4980 + - 4980 + - 4980 +- - 4981 + - 4981 + - 4981 +- - 4982 + - 4982 + - 4982 +- - 4983 + - 4983 + - 4983 +- - 4984 + - 4984 + - 4984 +- - 4985 + - 4985 + - 4985 +- - 4986 + - 4986 + - 4986 +- - 4987 + - 4987 + - 4987 +- - 4988 + - 4988 + - 4988 +- - 4989 + - 4989 + - 4989 +- - 4990 + - 4990 + - 4990 +- - 4991 + - 4991 + - 4991 +- - 4992 + - 4992 + - 4992 +- - 4993 + - 4993 + - 4993 +- - 4994 + - 4994 + - 4994 +- - 4995 + - 4995 + - 4995 +- - 4996 + - 4996 + - 4996 +- - 4997 + - 4997 + - 4997 +- - 4998 + - 4998 + - 4998 +- - 4999 + - 4999 + - 4999 +- - 5000 + - 5000 + - 5000 +- - 5001 + - 5001 + - 5001 +- - 5002 + - 5002 + - 5002 +- - 5003 + - 5003 + - 5003 +- - 5004 + - 5004 + - 5004 +- - 5005 + - 5005 + - 5005 +- - 5006 + - 5006 + - 5006 +- - 5007 + - 5007 + - 5007 +- - 5008 + - 5008 + - 5008 +- - 5009 + - 5009 + - 5009 +- - 5010 + - 5010 + - 5010 +- - 5011 + - 5011 + - 5011 +- - 5012 + - 5012 + - 5012 +- - 5013 + - 5013 + - 5013 +- - 5014 + - 5014 + - 5014 +- - 5015 + - 5015 + - 5015 +- - 5016 + - 5016 + - 5016 +- - 5017 + - 5017 + - 5017 +- - 5018 + - 5018 + - 5018 +- - 5019 + - 5019 + - 5019 +- - 5020 + - 5020 + - 5020 +- - 5021 + - 5021 + - 5021 +- - 5022 + - 5022 + - 5022 +- - 5023 + - 5023 + - 5023 +- - 5024 + - 43888 + - 5024 +- - 5025 + - 43889 + - 5025 +- - 5026 + - 43890 + - 5026 +- - 5027 + - 43891 + - 5027 +- - 5028 + - 43892 + - 5028 +- - 5029 + - 43893 + - 5029 +- - 5030 + - 43894 + - 5030 +- - 5031 + - 43895 + - 5031 +- - 5032 + - 43896 + - 5032 +- - 5033 + - 43897 + - 5033 +- - 5034 + - 43898 + - 5034 +- - 5035 + - 43899 + - 5035 +- - 5036 + - 43900 + - 5036 +- - 5037 + - 43901 + - 5037 +- - 5038 + - 43902 + - 5038 +- - 5039 + - 43903 + - 5039 +- - 5040 + - 43904 + - 5040 +- - 5041 + - 43905 + - 5041 +- - 5042 + - 43906 + - 5042 +- - 5043 + - 43907 + - 5043 +- - 5044 + - 43908 + - 5044 +- - 5045 + - 43909 + - 5045 +- - 5046 + - 43910 + - 5046 +- - 5047 + - 43911 + - 5047 +- - 5048 + - 43912 + - 5048 +- - 5049 + - 43913 + - 5049 +- - 5050 + - 43914 + - 5050 +- - 5051 + - 43915 + - 5051 +- - 5052 + - 43916 + - 5052 +- - 5053 + - 43917 + - 5053 +- - 5054 + - 43918 + - 5054 +- - 5055 + - 43919 + - 5055 +- - 5056 + - 43920 + - 5056 +- - 5057 + - 43921 + - 5057 +- - 5058 + - 43922 + - 5058 +- - 5059 + - 43923 + - 5059 +- - 5060 + - 43924 + - 5060 +- - 5061 + - 43925 + - 5061 +- - 5062 + - 43926 + - 5062 +- - 5063 + - 43927 + - 5063 +- - 5064 + - 43928 + - 5064 +- - 5065 + - 43929 + - 5065 +- - 5066 + - 43930 + - 5066 +- - 5067 + - 43931 + - 5067 +- - 5068 + - 43932 + - 5068 +- - 5069 + - 43933 + - 5069 +- - 5070 + - 43934 + - 5070 +- - 5071 + - 43935 + - 5071 +- - 5072 + - 43936 + - 5072 +- - 5073 + - 43937 + - 5073 +- - 5074 + - 43938 + - 5074 +- - 5075 + - 43939 + - 5075 +- - 5076 + - 43940 + - 5076 +- - 5077 + - 43941 + - 5077 +- - 5078 + - 43942 + - 5078 +- - 5079 + - 43943 + - 5079 +- - 5080 + - 43944 + - 5080 +- - 5081 + - 43945 + - 5081 +- - 5082 + - 43946 + - 5082 +- - 5083 + - 43947 + - 5083 +- - 5084 + - 43948 + - 5084 +- - 5085 + - 43949 + - 5085 +- - 5086 + - 43950 + - 5086 +- - 5087 + - 43951 + - 5087 +- - 5088 + - 43952 + - 5088 +- - 5089 + - 43953 + - 5089 +- - 5090 + - 43954 + - 5090 +- - 5091 + - 43955 + - 5091 +- - 5092 + - 43956 + - 5092 +- - 5093 + - 43957 + - 5093 +- - 5094 + - 43958 + - 5094 +- - 5095 + - 43959 + - 5095 +- - 5096 + - 43960 + - 5096 +- - 5097 + - 43961 + - 5097 +- - 5098 + - 43962 + - 5098 +- - 5099 + - 43963 + - 5099 +- - 5100 + - 43964 + - 5100 +- - 5101 + - 43965 + - 5101 +- - 5102 + - 43966 + - 5102 +- - 5103 + - 43967 + - 5103 +- - 5104 + - 5112 + - 5104 +- - 5105 + - 5113 + - 5105 +- - 5106 + - 5114 + - 5106 +- - 5107 + - 5115 + - 5107 +- - 5108 + - 5116 + - 5108 +- - 5109 + - 5117 + - 5109 +- - 5110 + - 5110 + - 5110 +- - 5111 + - 5111 + - 5111 +- - 5104 + - 5112 + - 5104 +- - 5105 + - 5113 + - 5105 +- - 5106 + - 5114 + - 5106 +- - 5107 + - 5115 + - 5107 +- - 5108 + - 5116 + - 5108 +- - 5109 + - 5117 + - 5109 +- - 5118 + - 5118 + - 5118 +- - 5119 + - 5119 + - 5119 +u900p01C: +- - 7168 + - 7168 + - 7168 +- - 7169 + - 7169 + - 7169 +- - 7170 + - 7170 + - 7170 +- - 7171 + - 7171 + - 7171 +- - 7172 + - 7172 + - 7172 +- - 7173 + - 7173 + - 7173 +- - 7174 + - 7174 + - 7174 +- - 7175 + - 7175 + - 7175 +- - 7176 + - 7176 + - 7176 +- - 7177 + - 7177 + - 7177 +- - 7178 + - 7178 + - 7178 +- - 7179 + - 7179 + - 7179 +- - 7180 + - 7180 + - 7180 +- - 7181 + - 7181 + - 7181 +- - 7182 + - 7182 + - 7182 +- - 7183 + - 7183 + - 7183 +- - 7184 + - 7184 + - 7184 +- - 7185 + - 7185 + - 7185 +- - 7186 + - 7186 + - 7186 +- - 7187 + - 7187 + - 7187 +- - 7188 + - 7188 + - 7188 +- - 7189 + - 7189 + - 7189 +- - 7190 + - 7190 + - 7190 +- - 7191 + - 7191 + - 7191 +- - 7192 + - 7192 + - 7192 +- - 7193 + - 7193 + - 7193 +- - 7194 + - 7194 + - 7194 +- - 7195 + - 7195 + - 7195 +- - 7196 + - 7196 + - 7196 +- - 7197 + - 7197 + - 7197 +- - 7198 + - 7198 + - 7198 +- - 7199 + - 7199 + - 7199 +- - 7200 + - 7200 + - 7200 +- - 7201 + - 7201 + - 7201 +- - 7202 + - 7202 + - 7202 +- - 7203 + - 7203 + - 7203 +- - 7204 + - 7204 + - 7204 +- - 7205 + - 7205 + - 7205 +- - 7206 + - 7206 + - 7206 +- - 7207 + - 7207 + - 7207 +- - 7208 + - 7208 + - 7208 +- - 7209 + - 7209 + - 7209 +- - 7210 + - 7210 + - 7210 +- - 7211 + - 7211 + - 7211 +- - 7212 + - 7212 + - 7212 +- - 7213 + - 7213 + - 7213 +- - 7214 + - 7214 + - 7214 +- - 7215 + - 7215 + - 7215 +- - 7216 + - 7216 + - 7216 +- - 7217 + - 7217 + - 7217 +- - 7218 + - 7218 + - 7218 +- - 7219 + - 7219 + - 7219 +- - 7220 + - 7220 + - 7220 +- - 7221 + - 7221 + - 7221 +- - 7222 + - 7222 + - 7222 +- - 7223 + - 7223 + - 7223 +- - 7224 + - 7224 + - 7224 +- - 7225 + - 7225 + - 7225 +- - 7226 + - 7226 + - 7226 +- - 7227 + - 7227 + - 7227 +- - 7228 + - 7228 + - 7228 +- - 7229 + - 7229 + - 7229 +- - 7230 + - 7230 + - 7230 +- - 7231 + - 7231 + - 7231 +- - 7232 + - 7232 + - 7232 +- - 7233 + - 7233 + - 7233 +- - 7234 + - 7234 + - 7234 +- - 7235 + - 7235 + - 7235 +- - 7236 + - 7236 + - 7236 +- - 7237 + - 7237 + - 7237 +- - 7238 + - 7238 + - 7238 +- - 7239 + - 7239 + - 7239 +- - 7240 + - 7240 + - 7240 +- - 7241 + - 7241 + - 7241 +- - 7242 + - 7242 + - 7242 +- - 7243 + - 7243 + - 7243 +- - 7244 + - 7244 + - 7244 +- - 7245 + - 7245 + - 7245 +- - 7246 + - 7246 + - 7246 +- - 7247 + - 7247 + - 7247 +- - 7248 + - 7248 + - 7248 +- - 7249 + - 7249 + - 7249 +- - 7250 + - 7250 + - 7250 +- - 7251 + - 7251 + - 7251 +- - 7252 + - 7252 + - 7252 +- - 7253 + - 7253 + - 7253 +- - 7254 + - 7254 + - 7254 +- - 7255 + - 7255 + - 7255 +- - 7256 + - 7256 + - 7256 +- - 7257 + - 7257 + - 7257 +- - 7258 + - 7258 + - 7258 +- - 7259 + - 7259 + - 7259 +- - 7260 + - 7260 + - 7260 +- - 7261 + - 7261 + - 7261 +- - 7262 + - 7262 + - 7262 +- - 7263 + - 7263 + - 7263 +- - 7264 + - 7264 + - 7264 +- - 7265 + - 7265 + - 7265 +- - 7266 + - 7266 + - 7266 +- - 7267 + - 7267 + - 7267 +- - 7268 + - 7268 + - 7268 +- - 7269 + - 7269 + - 7269 +- - 7270 + - 7270 + - 7270 +- - 7271 + - 7271 + - 7271 +- - 7272 + - 7272 + - 7272 +- - 7273 + - 7273 + - 7273 +- - 7274 + - 7274 + - 7274 +- - 7275 + - 7275 + - 7275 +- - 7276 + - 7276 + - 7276 +- - 7277 + - 7277 + - 7277 +- - 7278 + - 7278 + - 7278 +- - 7279 + - 7279 + - 7279 +- - 7280 + - 7280 + - 7280 +- - 7281 + - 7281 + - 7281 +- - 7282 + - 7282 + - 7282 +- - 7283 + - 7283 + - 7283 +- - 7284 + - 7284 + - 7284 +- - 7285 + - 7285 + - 7285 +- - 7286 + - 7286 + - 7286 +- - 7287 + - 7287 + - 7287 +- - 7288 + - 7288 + - 7288 +- - 7289 + - 7289 + - 7289 +- - 7290 + - 7290 + - 7290 +- - 7291 + - 7291 + - 7291 +- - 7292 + - 7292 + - 7292 +- - 7293 + - 7293 + - 7293 +- - 7294 + - 7294 + - 7294 +- - 7295 + - 7295 + - 7295 +- - 1042 + - 7296 + - 1042 +- - 1044 + - 7297 + - 1044 +- - 1054 + - 7298 + - 1054 +- - 1057 + - 7299 + - 1057 +- - 1058 + - 7300 + - 1058 +- - 1058 + - 7301 + - 1058 +- - 1066 + - 7302 + - 1066 +- - 1122 + - 7303 + - 1122 +- - 42570 + - 7304 + - 42570 +- - 7305 + - 7305 + - 7305 +- - 7306 + - 7306 + - 7306 +- - 7307 + - 7307 + - 7307 +- - 7308 + - 7308 + - 7308 +- - 7309 + - 7309 + - 7309 +- - 7310 + - 7310 + - 7310 +- - 7311 + - 7311 + - 7311 +- - 7312 + - 7312 + - 7312 +- - 7313 + - 7313 + - 7313 +- - 7314 + - 7314 + - 7314 +- - 7315 + - 7315 + - 7315 +- - 7316 + - 7316 + - 7316 +- - 7317 + - 7317 + - 7317 +- - 7318 + - 7318 + - 7318 +- - 7319 + - 7319 + - 7319 +- - 7320 + - 7320 + - 7320 +- - 7321 + - 7321 + - 7321 +- - 7322 + - 7322 + - 7322 +- - 7323 + - 7323 + - 7323 +- - 7324 + - 7324 + - 7324 +- - 7325 + - 7325 + - 7325 +- - 7326 + - 7326 + - 7326 +- - 7327 + - 7327 + - 7327 +- - 7328 + - 7328 + - 7328 +- - 7329 + - 7329 + - 7329 +- - 7330 + - 7330 + - 7330 +- - 7331 + - 7331 + - 7331 +- - 7332 + - 7332 + - 7332 +- - 7333 + - 7333 + - 7333 +- - 7334 + - 7334 + - 7334 +- - 7335 + - 7335 + - 7335 +- - 7336 + - 7336 + - 7336 +- - 7337 + - 7337 + - 7337 +- - 7338 + - 7338 + - 7338 +- - 7339 + - 7339 + - 7339 +- - 7340 + - 7340 + - 7340 +- - 7341 + - 7341 + - 7341 +- - 7342 + - 7342 + - 7342 +- - 7343 + - 7343 + - 7343 +- - 7344 + - 7344 + - 7344 +- - 7345 + - 7345 + - 7345 +- - 7346 + - 7346 + - 7346 +- - 7347 + - 7347 + - 7347 +- - 7348 + - 7348 + - 7348 +- - 7349 + - 7349 + - 7349 +- - 7350 + - 7350 + - 7350 +- - 7351 + - 7351 + - 7351 +- - 7352 + - 7352 + - 7352 +- - 7353 + - 7353 + - 7353 +- - 7354 + - 7354 + - 7354 +- - 7355 + - 7355 + - 7355 +- - 7356 + - 7356 + - 7356 +- - 7357 + - 7357 + - 7357 +- - 7358 + - 7358 + - 7358 +- - 7359 + - 7359 + - 7359 +- - 7360 + - 7360 + - 7360 +- - 7361 + - 7361 + - 7361 +- - 7362 + - 7362 + - 7362 +- - 7363 + - 7363 + - 7363 +- - 7364 + - 7364 + - 7364 +- - 7365 + - 7365 + - 7365 +- - 7366 + - 7366 + - 7366 +- - 7367 + - 7367 + - 7367 +- - 7368 + - 7368 + - 7368 +- - 7369 + - 7369 + - 7369 +- - 7370 + - 7370 + - 7370 +- - 7371 + - 7371 + - 7371 +- - 7372 + - 7372 + - 7372 +- - 7373 + - 7373 + - 7373 +- - 7374 + - 7374 + - 7374 +- - 7375 + - 7375 + - 7375 +- - 7376 + - 7376 + - 7376 +- - 7377 + - 7377 + - 7377 +- - 7378 + - 7378 + - 7378 +- - 7379 + - 7379 + - 7379 +- - 7380 + - 7380 + - 7380 +- - 7381 + - 7381 + - 7381 +- - 7382 + - 7382 + - 7382 +- - 7383 + - 7383 + - 7383 +- - 7384 + - 7384 + - 7384 +- - 7385 + - 7385 + - 7385 +- - 7386 + - 7386 + - 7386 +- - 7387 + - 7387 + - 7387 +- - 7388 + - 7388 + - 7388 +- - 7389 + - 7389 + - 7389 +- - 7390 + - 7390 + - 7390 +- - 7391 + - 7391 + - 7391 +- - 7392 + - 7392 + - 7392 +- - 7393 + - 7393 + - 7393 +- - 7394 + - 7394 + - 7394 +- - 7395 + - 7395 + - 7395 +- - 7396 + - 7396 + - 7396 +- - 7397 + - 7397 + - 7397 +- - 7398 + - 7398 + - 7398 +- - 7399 + - 7399 + - 7399 +- - 7400 + - 7400 + - 7400 +- - 7401 + - 7401 + - 7401 +- - 7402 + - 7402 + - 7402 +- - 7403 + - 7403 + - 7403 +- - 7404 + - 7404 + - 7404 +- - 7405 + - 7405 + - 7405 +- - 7406 + - 7406 + - 7406 +- - 7407 + - 7407 + - 7407 +- - 7408 + - 7408 + - 7408 +- - 7409 + - 7409 + - 7409 +- - 7410 + - 7410 + - 7410 +- - 7411 + - 7411 + - 7411 +- - 7412 + - 7412 + - 7412 +- - 7413 + - 7413 + - 7413 +- - 7414 + - 7414 + - 7414 +- - 7415 + - 7415 + - 7415 +- - 7416 + - 7416 + - 7416 +- - 7417 + - 7417 + - 7417 +- - 7418 + - 7418 + - 7418 +- - 7419 + - 7419 + - 7419 +- - 7420 + - 7420 + - 7420 +- - 7421 + - 7421 + - 7421 +- - 7422 + - 7422 + - 7422 +- - 7423 + - 7423 + - 7423 +u900p01D: +- - 7424 + - 7424 + - 7424 +- - 7425 + - 7425 + - 7425 +- - 7426 + - 7426 + - 7426 +- - 7427 + - 7427 + - 7427 +- - 7428 + - 7428 + - 7428 +- - 7429 + - 7429 + - 7429 +- - 7430 + - 7430 + - 7430 +- - 7431 + - 7431 + - 7431 +- - 7432 + - 7432 + - 7432 +- - 7433 + - 7433 + - 7433 +- - 7434 + - 7434 + - 7434 +- - 7435 + - 7435 + - 7435 +- - 7436 + - 7436 + - 7436 +- - 7437 + - 7437 + - 7437 +- - 7438 + - 7438 + - 7438 +- - 7439 + - 7439 + - 7439 +- - 7440 + - 7440 + - 7440 +- - 7441 + - 7441 + - 7441 +- - 7442 + - 7442 + - 7442 +- - 7443 + - 7443 + - 7443 +- - 7444 + - 7444 + - 7444 +- - 7445 + - 7445 + - 7445 +- - 7446 + - 7446 + - 7446 +- - 7447 + - 7447 + - 7447 +- - 7448 + - 7448 + - 7448 +- - 7449 + - 7449 + - 7449 +- - 7450 + - 7450 + - 7450 +- - 7451 + - 7451 + - 7451 +- - 7452 + - 7452 + - 7452 +- - 7453 + - 7453 + - 7453 +- - 7454 + - 7454 + - 7454 +- - 7455 + - 7455 + - 7455 +- - 7456 + - 7456 + - 7456 +- - 7457 + - 7457 + - 7457 +- - 7458 + - 7458 + - 7458 +- - 7459 + - 7459 + - 7459 +- - 7460 + - 7460 + - 7460 +- - 7461 + - 7461 + - 7461 +- - 7462 + - 7462 + - 7462 +- - 7463 + - 7463 + - 7463 +- - 7464 + - 7464 + - 7464 +- - 7465 + - 7465 + - 7465 +- - 7466 + - 7466 + - 7466 +- - 7467 + - 7467 + - 7467 +- - 7468 + - 7468 + - 7468 +- - 7469 + - 7469 + - 7469 +- - 7470 + - 7470 + - 7470 +- - 7471 + - 7471 + - 7471 +- - 7472 + - 7472 + - 7472 +- - 7473 + - 7473 + - 7473 +- - 7474 + - 7474 + - 7474 +- - 7475 + - 7475 + - 7475 +- - 7476 + - 7476 + - 7476 +- - 7477 + - 7477 + - 7477 +- - 7478 + - 7478 + - 7478 +- - 7479 + - 7479 + - 7479 +- - 7480 + - 7480 + - 7480 +- - 7481 + - 7481 + - 7481 +- - 7482 + - 7482 + - 7482 +- - 7483 + - 7483 + - 7483 +- - 7484 + - 7484 + - 7484 +- - 7485 + - 7485 + - 7485 +- - 7486 + - 7486 + - 7486 +- - 7487 + - 7487 + - 7487 +- - 7488 + - 7488 + - 7488 +- - 7489 + - 7489 + - 7489 +- - 7490 + - 7490 + - 7490 +- - 7491 + - 7491 + - 7491 +- - 7492 + - 7492 + - 7492 +- - 7493 + - 7493 + - 7493 +- - 7494 + - 7494 + - 7494 +- - 7495 + - 7495 + - 7495 +- - 7496 + - 7496 + - 7496 +- - 7497 + - 7497 + - 7497 +- - 7498 + - 7498 + - 7498 +- - 7499 + - 7499 + - 7499 +- - 7500 + - 7500 + - 7500 +- - 7501 + - 7501 + - 7501 +- - 7502 + - 7502 + - 7502 +- - 7503 + - 7503 + - 7503 +- - 7504 + - 7504 + - 7504 +- - 7505 + - 7505 + - 7505 +- - 7506 + - 7506 + - 7506 +- - 7507 + - 7507 + - 7507 +- - 7508 + - 7508 + - 7508 +- - 7509 + - 7509 + - 7509 +- - 7510 + - 7510 + - 7510 +- - 7511 + - 7511 + - 7511 +- - 7512 + - 7512 + - 7512 +- - 7513 + - 7513 + - 7513 +- - 7514 + - 7514 + - 7514 +- - 7515 + - 7515 + - 7515 +- - 7516 + - 7516 + - 7516 +- - 7517 + - 7517 + - 7517 +- - 7518 + - 7518 + - 7518 +- - 7519 + - 7519 + - 7519 +- - 7520 + - 7520 + - 7520 +- - 7521 + - 7521 + - 7521 +- - 7522 + - 7522 + - 7522 +- - 7523 + - 7523 + - 7523 +- - 7524 + - 7524 + - 7524 +- - 7525 + - 7525 + - 7525 +- - 7526 + - 7526 + - 7526 +- - 7527 + - 7527 + - 7527 +- - 7528 + - 7528 + - 7528 +- - 7529 + - 7529 + - 7529 +- - 7530 + - 7530 + - 7530 +- - 7531 + - 7531 + - 7531 +- - 7532 + - 7532 + - 7532 +- - 7533 + - 7533 + - 7533 +- - 7534 + - 7534 + - 7534 +- - 7535 + - 7535 + - 7535 +- - 7536 + - 7536 + - 7536 +- - 7537 + - 7537 + - 7537 +- - 7538 + - 7538 + - 7538 +- - 7539 + - 7539 + - 7539 +- - 7540 + - 7540 + - 7540 +- - 7541 + - 7541 + - 7541 +- - 7542 + - 7542 + - 7542 +- - 7543 + - 7543 + - 7543 +- - 7544 + - 7544 + - 7544 +- - 42877 + - 7545 + - 42877 +- - 7546 + - 7546 + - 7546 +- - 7547 + - 7547 + - 7547 +- - 7548 + - 7548 + - 7548 +- - 11363 + - 7549 + - 11363 +- - 7550 + - 7550 + - 7550 +- - 7551 + - 7551 + - 7551 +- - 7552 + - 7552 + - 7552 +- - 7553 + - 7553 + - 7553 +- - 7554 + - 7554 + - 7554 +- - 7555 + - 7555 + - 7555 +- - 7556 + - 7556 + - 7556 +- - 7557 + - 7557 + - 7557 +- - 7558 + - 7558 + - 7558 +- - 7559 + - 7559 + - 7559 +- - 7560 + - 7560 + - 7560 +- - 7561 + - 7561 + - 7561 +- - 7562 + - 7562 + - 7562 +- - 7563 + - 7563 + - 7563 +- - 7564 + - 7564 + - 7564 +- - 7565 + - 7565 + - 7565 +- - 7566 + - 7566 + - 7566 +- - 7567 + - 7567 + - 7567 +- - 7568 + - 7568 + - 7568 +- - 7569 + - 7569 + - 7569 +- - 7570 + - 7570 + - 7570 +- - 7571 + - 7571 + - 7571 +- - 7572 + - 7572 + - 7572 +- - 7573 + - 7573 + - 7573 +- - 7574 + - 7574 + - 7574 +- - 7575 + - 7575 + - 7575 +- - 7576 + - 7576 + - 7576 +- - 7577 + - 7577 + - 7577 +- - 7578 + - 7578 + - 7578 +- - 7579 + - 7579 + - 7579 +- - 7580 + - 7580 + - 7580 +- - 7581 + - 7581 + - 7581 +- - 7582 + - 7582 + - 7582 +- - 7583 + - 7583 + - 7583 +- - 7584 + - 7584 + - 7584 +- - 7585 + - 7585 + - 7585 +- - 7586 + - 7586 + - 7586 +- - 7587 + - 7587 + - 7587 +- - 7588 + - 7588 + - 7588 +- - 7589 + - 7589 + - 7589 +- - 7590 + - 7590 + - 7590 +- - 7591 + - 7591 + - 7591 +- - 7592 + - 7592 + - 7592 +- - 7593 + - 7593 + - 7593 +- - 7594 + - 7594 + - 7594 +- - 7595 + - 7595 + - 7595 +- - 7596 + - 7596 + - 7596 +- - 7597 + - 7597 + - 7597 +- - 7598 + - 7598 + - 7598 +- - 7599 + - 7599 + - 7599 +- - 7600 + - 7600 + - 7600 +- - 7601 + - 7601 + - 7601 +- - 7602 + - 7602 + - 7602 +- - 7603 + - 7603 + - 7603 +- - 7604 + - 7604 + - 7604 +- - 7605 + - 7605 + - 7605 +- - 7606 + - 7606 + - 7606 +- - 7607 + - 7607 + - 7607 +- - 7608 + - 7608 + - 7608 +- - 7609 + - 7609 + - 7609 +- - 7610 + - 7610 + - 7610 +- - 7611 + - 7611 + - 7611 +- - 7612 + - 7612 + - 7612 +- - 7613 + - 7613 + - 7613 +- - 7614 + - 7614 + - 7614 +- - 7615 + - 7615 + - 7615 +- - 7616 + - 7616 + - 7616 +- - 7617 + - 7617 + - 7617 +- - 7618 + - 7618 + - 7618 +- - 7619 + - 7619 + - 7619 +- - 7620 + - 7620 + - 7620 +- - 7621 + - 7621 + - 7621 +- - 7622 + - 7622 + - 7622 +- - 7623 + - 7623 + - 7623 +- - 7624 + - 7624 + - 7624 +- - 7625 + - 7625 + - 7625 +- - 7626 + - 7626 + - 7626 +- - 7627 + - 7627 + - 7627 +- - 7628 + - 7628 + - 7628 +- - 7629 + - 7629 + - 7629 +- - 7630 + - 7630 + - 7630 +- - 7631 + - 7631 + - 7631 +- - 7632 + - 7632 + - 7632 +- - 7633 + - 7633 + - 7633 +- - 7634 + - 7634 + - 7634 +- - 7635 + - 7635 + - 7635 +- - 7636 + - 7636 + - 7636 +- - 7637 + - 7637 + - 7637 +- - 7638 + - 7638 + - 7638 +- - 7639 + - 7639 + - 7639 +- - 7640 + - 7640 + - 7640 +- - 7641 + - 7641 + - 7641 +- - 7642 + - 7642 + - 7642 +- - 7643 + - 7643 + - 7643 +- - 7644 + - 7644 + - 7644 +- - 7645 + - 7645 + - 7645 +- - 7646 + - 7646 + - 7646 +- - 7647 + - 7647 + - 7647 +- - 7648 + - 7648 + - 7648 +- - 7649 + - 7649 + - 7649 +- - 7650 + - 7650 + - 7650 +- - 7651 + - 7651 + - 7651 +- - 7652 + - 7652 + - 7652 +- - 7653 + - 7653 + - 7653 +- - 7654 + - 7654 + - 7654 +- - 7655 + - 7655 + - 7655 +- - 7656 + - 7656 + - 7656 +- - 7657 + - 7657 + - 7657 +- - 7658 + - 7658 + - 7658 +- - 7659 + - 7659 + - 7659 +- - 7660 + - 7660 + - 7660 +- - 7661 + - 7661 + - 7661 +- - 7662 + - 7662 + - 7662 +- - 7663 + - 7663 + - 7663 +- - 7664 + - 7664 + - 7664 +- - 7665 + - 7665 + - 7665 +- - 7666 + - 7666 + - 7666 +- - 7667 + - 7667 + - 7667 +- - 7668 + - 7668 + - 7668 +- - 7669 + - 7669 + - 7669 +- - 7670 + - 7670 + - 7670 +- - 7671 + - 7671 + - 7671 +- - 7672 + - 7672 + - 7672 +- - 7673 + - 7673 + - 7673 +- - 7674 + - 7674 + - 7674 +- - 7675 + - 7675 + - 7675 +- - 7676 + - 7676 + - 7676 +- - 7677 + - 7677 + - 7677 +- - 7678 + - 7678 + - 7678 +- - 7679 + - 7679 + - 7679 +u900p01E: +- - 7680 + - 7681 + - 7680 +- - 7680 + - 7681 + - 7680 +- - 7682 + - 7683 + - 7682 +- - 7682 + - 7683 + - 7682 +- - 7684 + - 7685 + - 7684 +- - 7684 + - 7685 + - 7684 +- - 7686 + - 7687 + - 7686 +- - 7686 + - 7687 + - 7686 +- - 7688 + - 7689 + - 7688 +- - 7688 + - 7689 + - 7688 +- - 7690 + - 7691 + - 7690 +- - 7690 + - 7691 + - 7690 +- - 7692 + - 7693 + - 7692 +- - 7692 + - 7693 + - 7692 +- - 7694 + - 7695 + - 7694 +- - 7694 + - 7695 + - 7694 +- - 7696 + - 7697 + - 7696 +- - 7696 + - 7697 + - 7696 +- - 7698 + - 7699 + - 7698 +- - 7698 + - 7699 + - 7698 +- - 7700 + - 7701 + - 7700 +- - 7700 + - 7701 + - 7700 +- - 7702 + - 7703 + - 7702 +- - 7702 + - 7703 + - 7702 +- - 7704 + - 7705 + - 7704 +- - 7704 + - 7705 + - 7704 +- - 7706 + - 7707 + - 7706 +- - 7706 + - 7707 + - 7706 +- - 7708 + - 7709 + - 7708 +- - 7708 + - 7709 + - 7708 +- - 7710 + - 7711 + - 7710 +- - 7710 + - 7711 + - 7710 +- - 7712 + - 7713 + - 7712 +- - 7712 + - 7713 + - 7712 +- - 7714 + - 7715 + - 7714 +- - 7714 + - 7715 + - 7714 +- - 7716 + - 7717 + - 7716 +- - 7716 + - 7717 + - 7716 +- - 7718 + - 7719 + - 7718 +- - 7718 + - 7719 + - 7718 +- - 7720 + - 7721 + - 7720 +- - 7720 + - 7721 + - 7720 +- - 7722 + - 7723 + - 7722 +- - 7722 + - 7723 + - 7722 +- - 7724 + - 7725 + - 7724 +- - 7724 + - 7725 + - 7724 +- - 7726 + - 7727 + - 7726 +- - 7726 + - 7727 + - 7726 +- - 7728 + - 7729 + - 7728 +- - 7728 + - 7729 + - 7728 +- - 7730 + - 7731 + - 7730 +- - 7730 + - 7731 + - 7730 +- - 7732 + - 7733 + - 7732 +- - 7732 + - 7733 + - 7732 +- - 7734 + - 7735 + - 7734 +- - 7734 + - 7735 + - 7734 +- - 7736 + - 7737 + - 7736 +- - 7736 + - 7737 + - 7736 +- - 7738 + - 7739 + - 7738 +- - 7738 + - 7739 + - 7738 +- - 7740 + - 7741 + - 7740 +- - 7740 + - 7741 + - 7740 +- - 7742 + - 7743 + - 7742 +- - 7742 + - 7743 + - 7742 +- - 7744 + - 7745 + - 7744 +- - 7744 + - 7745 + - 7744 +- - 7746 + - 7747 + - 7746 +- - 7746 + - 7747 + - 7746 +- - 7748 + - 7749 + - 7748 +- - 7748 + - 7749 + - 7748 +- - 7750 + - 7751 + - 7750 +- - 7750 + - 7751 + - 7750 +- - 7752 + - 7753 + - 7752 +- - 7752 + - 7753 + - 7752 +- - 7754 + - 7755 + - 7754 +- - 7754 + - 7755 + - 7754 +- - 7756 + - 7757 + - 7756 +- - 7756 + - 7757 + - 7756 +- - 7758 + - 7759 + - 7758 +- - 7758 + - 7759 + - 7758 +- - 7760 + - 7761 + - 7760 +- - 7760 + - 7761 + - 7760 +- - 7762 + - 7763 + - 7762 +- - 7762 + - 7763 + - 7762 +- - 7764 + - 7765 + - 7764 +- - 7764 + - 7765 + - 7764 +- - 7766 + - 7767 + - 7766 +- - 7766 + - 7767 + - 7766 +- - 7768 + - 7769 + - 7768 +- - 7768 + - 7769 + - 7768 +- - 7770 + - 7771 + - 7770 +- - 7770 + - 7771 + - 7770 +- - 7772 + - 7773 + - 7772 +- - 7772 + - 7773 + - 7772 +- - 7774 + - 7775 + - 7774 +- - 7774 + - 7775 + - 7774 +- - 7776 + - 7777 + - 7776 +- - 7776 + - 7777 + - 7776 +- - 7778 + - 7779 + - 7778 +- - 7778 + - 7779 + - 7778 +- - 7780 + - 7781 + - 7780 +- - 7780 + - 7781 + - 7780 +- - 7782 + - 7783 + - 7782 +- - 7782 + - 7783 + - 7782 +- - 7784 + - 7785 + - 7784 +- - 7784 + - 7785 + - 7784 +- - 7786 + - 7787 + - 7786 +- - 7786 + - 7787 + - 7786 +- - 7788 + - 7789 + - 7788 +- - 7788 + - 7789 + - 7788 +- - 7790 + - 7791 + - 7790 +- - 7790 + - 7791 + - 7790 +- - 7792 + - 7793 + - 7792 +- - 7792 + - 7793 + - 7792 +- - 7794 + - 7795 + - 7794 +- - 7794 + - 7795 + - 7794 +- - 7796 + - 7797 + - 7796 +- - 7796 + - 7797 + - 7796 +- - 7798 + - 7799 + - 7798 +- - 7798 + - 7799 + - 7798 +- - 7800 + - 7801 + - 7800 +- - 7800 + - 7801 + - 7800 +- - 7802 + - 7803 + - 7802 +- - 7802 + - 7803 + - 7802 +- - 7804 + - 7805 + - 7804 +- - 7804 + - 7805 + - 7804 +- - 7806 + - 7807 + - 7806 +- - 7806 + - 7807 + - 7806 +- - 7808 + - 7809 + - 7808 +- - 7808 + - 7809 + - 7808 +- - 7810 + - 7811 + - 7810 +- - 7810 + - 7811 + - 7810 +- - 7812 + - 7813 + - 7812 +- - 7812 + - 7813 + - 7812 +- - 7814 + - 7815 + - 7814 +- - 7814 + - 7815 + - 7814 +- - 7816 + - 7817 + - 7816 +- - 7816 + - 7817 + - 7816 +- - 7818 + - 7819 + - 7818 +- - 7818 + - 7819 + - 7818 +- - 7820 + - 7821 + - 7820 +- - 7820 + - 7821 + - 7820 +- - 7822 + - 7823 + - 7822 +- - 7822 + - 7823 + - 7822 +- - 7824 + - 7825 + - 7824 +- - 7824 + - 7825 + - 7824 +- - 7826 + - 7827 + - 7826 +- - 7826 + - 7827 + - 7826 +- - 7828 + - 7829 + - 7828 +- - 7828 + - 7829 + - 7828 +- - 7830 + - 7830 + - 7830 +- - 7831 + - 7831 + - 7831 +- - 7832 + - 7832 + - 7832 +- - 7833 + - 7833 + - 7833 +- - 7834 + - 7834 + - 7834 +- - 7776 + - 7835 + - 7776 +- - 7836 + - 7836 + - 7836 +- - 7837 + - 7837 + - 7837 +- - 7838 + - 223 + - 7838 +- - 7839 + - 7839 + - 7839 +- - 7840 + - 7841 + - 7840 +- - 7840 + - 7841 + - 7840 +- - 7842 + - 7843 + - 7842 +- - 7842 + - 7843 + - 7842 +- - 7844 + - 7845 + - 7844 +- - 7844 + - 7845 + - 7844 +- - 7846 + - 7847 + - 7846 +- - 7846 + - 7847 + - 7846 +- - 7848 + - 7849 + - 7848 +- - 7848 + - 7849 + - 7848 +- - 7850 + - 7851 + - 7850 +- - 7850 + - 7851 + - 7850 +- - 7852 + - 7853 + - 7852 +- - 7852 + - 7853 + - 7852 +- - 7854 + - 7855 + - 7854 +- - 7854 + - 7855 + - 7854 +- - 7856 + - 7857 + - 7856 +- - 7856 + - 7857 + - 7856 +- - 7858 + - 7859 + - 7858 +- - 7858 + - 7859 + - 7858 +- - 7860 + - 7861 + - 7860 +- - 7860 + - 7861 + - 7860 +- - 7862 + - 7863 + - 7862 +- - 7862 + - 7863 + - 7862 +- - 7864 + - 7865 + - 7864 +- - 7864 + - 7865 + - 7864 +- - 7866 + - 7867 + - 7866 +- - 7866 + - 7867 + - 7866 +- - 7868 + - 7869 + - 7868 +- - 7868 + - 7869 + - 7868 +- - 7870 + - 7871 + - 7870 +- - 7870 + - 7871 + - 7870 +- - 7872 + - 7873 + - 7872 +- - 7872 + - 7873 + - 7872 +- - 7874 + - 7875 + - 7874 +- - 7874 + - 7875 + - 7874 +- - 7876 + - 7877 + - 7876 +- - 7876 + - 7877 + - 7876 +- - 7878 + - 7879 + - 7878 +- - 7878 + - 7879 + - 7878 +- - 7880 + - 7881 + - 7880 +- - 7880 + - 7881 + - 7880 +- - 7882 + - 7883 + - 7882 +- - 7882 + - 7883 + - 7882 +- - 7884 + - 7885 + - 7884 +- - 7884 + - 7885 + - 7884 +- - 7886 + - 7887 + - 7886 +- - 7886 + - 7887 + - 7886 +- - 7888 + - 7889 + - 7888 +- - 7888 + - 7889 + - 7888 +- - 7890 + - 7891 + - 7890 +- - 7890 + - 7891 + - 7890 +- - 7892 + - 7893 + - 7892 +- - 7892 + - 7893 + - 7892 +- - 7894 + - 7895 + - 7894 +- - 7894 + - 7895 + - 7894 +- - 7896 + - 7897 + - 7896 +- - 7896 + - 7897 + - 7896 +- - 7898 + - 7899 + - 7898 +- - 7898 + - 7899 + - 7898 +- - 7900 + - 7901 + - 7900 +- - 7900 + - 7901 + - 7900 +- - 7902 + - 7903 + - 7902 +- - 7902 + - 7903 + - 7902 +- - 7904 + - 7905 + - 7904 +- - 7904 + - 7905 + - 7904 +- - 7906 + - 7907 + - 7906 +- - 7906 + - 7907 + - 7906 +- - 7908 + - 7909 + - 7908 +- - 7908 + - 7909 + - 7908 +- - 7910 + - 7911 + - 7910 +- - 7910 + - 7911 + - 7910 +- - 7912 + - 7913 + - 7912 +- - 7912 + - 7913 + - 7912 +- - 7914 + - 7915 + - 7914 +- - 7914 + - 7915 + - 7914 +- - 7916 + - 7917 + - 7916 +- - 7916 + - 7917 + - 7916 +- - 7918 + - 7919 + - 7918 +- - 7918 + - 7919 + - 7918 +- - 7920 + - 7921 + - 7920 +- - 7920 + - 7921 + - 7920 +- - 7922 + - 7923 + - 7922 +- - 7922 + - 7923 + - 7922 +- - 7924 + - 7925 + - 7924 +- - 7924 + - 7925 + - 7924 +- - 7926 + - 7927 + - 7926 +- - 7926 + - 7927 + - 7926 +- - 7928 + - 7929 + - 7928 +- - 7928 + - 7929 + - 7928 +- - 7930 + - 7931 + - 7930 +- - 7930 + - 7931 + - 7930 +- - 7932 + - 7933 + - 7932 +- - 7932 + - 7933 + - 7932 +- - 7934 + - 7935 + - 7934 +- - 7934 + - 7935 + - 7934 +u900p01F: +- - 7944 + - 7936 + - 7944 +- - 7945 + - 7937 + - 7945 +- - 7946 + - 7938 + - 7946 +- - 7947 + - 7939 + - 7947 +- - 7948 + - 7940 + - 7948 +- - 7949 + - 7941 + - 7949 +- - 7950 + - 7942 + - 7950 +- - 7951 + - 7943 + - 7951 +- - 7944 + - 7936 + - 7944 +- - 7945 + - 7937 + - 7945 +- - 7946 + - 7938 + - 7946 +- - 7947 + - 7939 + - 7947 +- - 7948 + - 7940 + - 7948 +- - 7949 + - 7941 + - 7949 +- - 7950 + - 7942 + - 7950 +- - 7951 + - 7943 + - 7951 +- - 7960 + - 7952 + - 7960 +- - 7961 + - 7953 + - 7961 +- - 7962 + - 7954 + - 7962 +- - 7963 + - 7955 + - 7963 +- - 7964 + - 7956 + - 7964 +- - 7965 + - 7957 + - 7965 +- - 7958 + - 7958 + - 7958 +- - 7959 + - 7959 + - 7959 +- - 7960 + - 7952 + - 7960 +- - 7961 + - 7953 + - 7961 +- - 7962 + - 7954 + - 7962 +- - 7963 + - 7955 + - 7963 +- - 7964 + - 7956 + - 7964 +- - 7965 + - 7957 + - 7965 +- - 7966 + - 7966 + - 7966 +- - 7967 + - 7967 + - 7967 +- - 7976 + - 7968 + - 7976 +- - 7977 + - 7969 + - 7977 +- - 7978 + - 7970 + - 7978 +- - 7979 + - 7971 + - 7979 +- - 7980 + - 7972 + - 7980 +- - 7981 + - 7973 + - 7981 +- - 7982 + - 7974 + - 7982 +- - 7983 + - 7975 + - 7983 +- - 7976 + - 7968 + - 7976 +- - 7977 + - 7969 + - 7977 +- - 7978 + - 7970 + - 7978 +- - 7979 + - 7971 + - 7979 +- - 7980 + - 7972 + - 7980 +- - 7981 + - 7973 + - 7981 +- - 7982 + - 7974 + - 7982 +- - 7983 + - 7975 + - 7983 +- - 7992 + - 7984 + - 7992 +- - 7993 + - 7985 + - 7993 +- - 7994 + - 7986 + - 7994 +- - 7995 + - 7987 + - 7995 +- - 7996 + - 7988 + - 7996 +- - 7997 + - 7989 + - 7997 +- - 7998 + - 7990 + - 7998 +- - 7999 + - 7991 + - 7999 +- - 7992 + - 7984 + - 7992 +- - 7993 + - 7985 + - 7993 +- - 7994 + - 7986 + - 7994 +- - 7995 + - 7987 + - 7995 +- - 7996 + - 7988 + - 7996 +- - 7997 + - 7989 + - 7997 +- - 7998 + - 7990 + - 7998 +- - 7999 + - 7991 + - 7999 +- - 8008 + - 8000 + - 8008 +- - 8009 + - 8001 + - 8009 +- - 8010 + - 8002 + - 8010 +- - 8011 + - 8003 + - 8011 +- - 8012 + - 8004 + - 8012 +- - 8013 + - 8005 + - 8013 +- - 8006 + - 8006 + - 8006 +- - 8007 + - 8007 + - 8007 +- - 8008 + - 8000 + - 8008 +- - 8009 + - 8001 + - 8009 +- - 8010 + - 8002 + - 8010 +- - 8011 + - 8003 + - 8011 +- - 8012 + - 8004 + - 8012 +- - 8013 + - 8005 + - 8013 +- - 8014 + - 8014 + - 8014 +- - 8015 + - 8015 + - 8015 +- - 8016 + - 8016 + - 8016 +- - 8025 + - 8017 + - 8025 +- - 8018 + - 8018 + - 8018 +- - 8027 + - 8019 + - 8027 +- - 8020 + - 8020 + - 8020 +- - 8029 + - 8021 + - 8029 +- - 8022 + - 8022 + - 8022 +- - 8031 + - 8023 + - 8031 +- - 8024 + - 8024 + - 8024 +- - 8025 + - 8017 + - 8025 +- - 8026 + - 8026 + - 8026 +- - 8027 + - 8019 + - 8027 +- - 8028 + - 8028 + - 8028 +- - 8029 + - 8021 + - 8029 +- - 8030 + - 8030 + - 8030 +- - 8031 + - 8023 + - 8031 +- - 8040 + - 8032 + - 8040 +- - 8041 + - 8033 + - 8041 +- - 8042 + - 8034 + - 8042 +- - 8043 + - 8035 + - 8043 +- - 8044 + - 8036 + - 8044 +- - 8045 + - 8037 + - 8045 +- - 8046 + - 8038 + - 8046 +- - 8047 + - 8039 + - 8047 +- - 8040 + - 8032 + - 8040 +- - 8041 + - 8033 + - 8041 +- - 8042 + - 8034 + - 8042 +- - 8043 + - 8035 + - 8043 +- - 8044 + - 8036 + - 8044 +- - 8045 + - 8037 + - 8045 +- - 8046 + - 8038 + - 8046 +- - 8047 + - 8039 + - 8047 +- - 8122 + - 8048 + - 8122 +- - 8123 + - 8049 + - 8123 +- - 8136 + - 8050 + - 8136 +- - 8137 + - 8051 + - 8137 +- - 8138 + - 8052 + - 8138 +- - 8139 + - 8053 + - 8139 +- - 8154 + - 8054 + - 8154 +- - 8155 + - 8055 + - 8155 +- - 8184 + - 8056 + - 8184 +- - 8185 + - 8057 + - 8185 +- - 8170 + - 8058 + - 8170 +- - 8171 + - 8059 + - 8171 +- - 8186 + - 8060 + - 8186 +- - 8187 + - 8061 + - 8187 +- - 8062 + - 8062 + - 8062 +- - 8063 + - 8063 + - 8063 +- - 8072 + - 8064 + - 8072 +- - 8073 + - 8065 + - 8073 +- - 8074 + - 8066 + - 8074 +- - 8075 + - 8067 + - 8075 +- - 8076 + - 8068 + - 8076 +- - 8077 + - 8069 + - 8077 +- - 8078 + - 8070 + - 8078 +- - 8079 + - 8071 + - 8079 +- - 8072 + - 8064 + - 8072 +- - 8073 + - 8065 + - 8073 +- - 8074 + - 8066 + - 8074 +- - 8075 + - 8067 + - 8075 +- - 8076 + - 8068 + - 8076 +- - 8077 + - 8069 + - 8077 +- - 8078 + - 8070 + - 8078 +- - 8079 + - 8071 + - 8079 +- - 8088 + - 8080 + - 8088 +- - 8089 + - 8081 + - 8089 +- - 8090 + - 8082 + - 8090 +- - 8091 + - 8083 + - 8091 +- - 8092 + - 8084 + - 8092 +- - 8093 + - 8085 + - 8093 +- - 8094 + - 8086 + - 8094 +- - 8095 + - 8087 + - 8095 +- - 8088 + - 8080 + - 8088 +- - 8089 + - 8081 + - 8089 +- - 8090 + - 8082 + - 8090 +- - 8091 + - 8083 + - 8091 +- - 8092 + - 8084 + - 8092 +- - 8093 + - 8085 + - 8093 +- - 8094 + - 8086 + - 8094 +- - 8095 + - 8087 + - 8095 +- - 8104 + - 8096 + - 8104 +- - 8105 + - 8097 + - 8105 +- - 8106 + - 8098 + - 8106 +- - 8107 + - 8099 + - 8107 +- - 8108 + - 8100 + - 8108 +- - 8109 + - 8101 + - 8109 +- - 8110 + - 8102 + - 8110 +- - 8111 + - 8103 + - 8111 +- - 8104 + - 8096 + - 8104 +- - 8105 + - 8097 + - 8105 +- - 8106 + - 8098 + - 8106 +- - 8107 + - 8099 + - 8107 +- - 8108 + - 8100 + - 8108 +- - 8109 + - 8101 + - 8109 +- - 8110 + - 8102 + - 8110 +- - 8111 + - 8103 + - 8111 +- - 8120 + - 8112 + - 8120 +- - 8121 + - 8113 + - 8121 +- - 8114 + - 8114 + - 8114 +- - 8124 + - 8115 + - 8124 +- - 8116 + - 8116 + - 8116 +- - 8117 + - 8117 + - 8117 +- - 8118 + - 8118 + - 8118 +- - 8119 + - 8119 + - 8119 +- - 8120 + - 8112 + - 8120 +- - 8121 + - 8113 + - 8121 +- - 8122 + - 8048 + - 8122 +- - 8123 + - 8049 + - 8123 +- - 8124 + - 8115 + - 8124 +- - 8125 + - 8125 + - 8125 +- - 921 + - 8126 + - 921 +- - 8127 + - 8127 + - 8127 +- - 8128 + - 8128 + - 8128 +- - 8129 + - 8129 + - 8129 +- - 8130 + - 8130 + - 8130 +- - 8140 + - 8131 + - 8140 +- - 8132 + - 8132 + - 8132 +- - 8133 + - 8133 + - 8133 +- - 8134 + - 8134 + - 8134 +- - 8135 + - 8135 + - 8135 +- - 8136 + - 8050 + - 8136 +- - 8137 + - 8051 + - 8137 +- - 8138 + - 8052 + - 8138 +- - 8139 + - 8053 + - 8139 +- - 8140 + - 8131 + - 8140 +- - 8141 + - 8141 + - 8141 +- - 8142 + - 8142 + - 8142 +- - 8143 + - 8143 + - 8143 +- - 8152 + - 8144 + - 8152 +- - 8153 + - 8145 + - 8153 +- - 8146 + - 8146 + - 8146 +- - 8147 + - 8147 + - 8147 +- - 8148 + - 8148 + - 8148 +- - 8149 + - 8149 + - 8149 +- - 8150 + - 8150 + - 8150 +- - 8151 + - 8151 + - 8151 +- - 8152 + - 8144 + - 8152 +- - 8153 + - 8145 + - 8153 +- - 8154 + - 8054 + - 8154 +- - 8155 + - 8055 + - 8155 +- - 8156 + - 8156 + - 8156 +- - 8157 + - 8157 + - 8157 +- - 8158 + - 8158 + - 8158 +- - 8159 + - 8159 + - 8159 +- - 8168 + - 8160 + - 8168 +- - 8169 + - 8161 + - 8169 +- - 8162 + - 8162 + - 8162 +- - 8163 + - 8163 + - 8163 +- - 8164 + - 8164 + - 8164 +- - 8172 + - 8165 + - 8172 +- - 8166 + - 8166 + - 8166 +- - 8167 + - 8167 + - 8167 +- - 8168 + - 8160 + - 8168 +- - 8169 + - 8161 + - 8169 +- - 8170 + - 8058 + - 8170 +- - 8171 + - 8059 + - 8171 +- - 8172 + - 8165 + - 8172 +- - 8173 + - 8173 + - 8173 +- - 8174 + - 8174 + - 8174 +- - 8175 + - 8175 + - 8175 +- - 8176 + - 8176 + - 8176 +- - 8177 + - 8177 + - 8177 +- - 8178 + - 8178 + - 8178 +- - 8188 + - 8179 + - 8188 +- - 8180 + - 8180 + - 8180 +- - 8181 + - 8181 + - 8181 +- - 8182 + - 8182 + - 8182 +- - 8183 + - 8183 + - 8183 +- - 8184 + - 8056 + - 8184 +- - 8185 + - 8057 + - 8185 +- - 8186 + - 8060 + - 8186 +- - 8187 + - 8061 + - 8187 +- - 8188 + - 8179 + - 8188 +- - 8189 + - 8189 + - 8189 +- - 8190 + - 8190 + - 8190 +- - 8191 + - 8191 + - 8191 +u900p021: +- - 8448 + - 8448 + - 8448 +- - 8449 + - 8449 + - 8449 +- - 8450 + - 8450 + - 8450 +- - 8451 + - 8451 + - 8451 +- - 8452 + - 8452 + - 8452 +- - 8453 + - 8453 + - 8453 +- - 8454 + - 8454 + - 8454 +- - 8455 + - 8455 + - 8455 +- - 8456 + - 8456 + - 8456 +- - 8457 + - 8457 + - 8457 +- - 8458 + - 8458 + - 8458 +- - 8459 + - 8459 + - 8459 +- - 8460 + - 8460 + - 8460 +- - 8461 + - 8461 + - 8461 +- - 8462 + - 8462 + - 8462 +- - 8463 + - 8463 + - 8463 +- - 8464 + - 8464 + - 8464 +- - 8465 + - 8465 + - 8465 +- - 8466 + - 8466 + - 8466 +- - 8467 + - 8467 + - 8467 +- - 8468 + - 8468 + - 8468 +- - 8469 + - 8469 + - 8469 +- - 8470 + - 8470 + - 8470 +- - 8471 + - 8471 + - 8471 +- - 8472 + - 8472 + - 8472 +- - 8473 + - 8473 + - 8473 +- - 8474 + - 8474 + - 8474 +- - 8475 + - 8475 + - 8475 +- - 8476 + - 8476 + - 8476 +- - 8477 + - 8477 + - 8477 +- - 8478 + - 8478 + - 8478 +- - 8479 + - 8479 + - 8479 +- - 8480 + - 8480 + - 8480 +- - 8481 + - 8481 + - 8481 +- - 8482 + - 8482 + - 8482 +- - 8483 + - 8483 + - 8483 +- - 8484 + - 8484 + - 8484 +- - 8485 + - 8485 + - 8485 +- - 8486 + - 969 + - 8486 +- - 8487 + - 8487 + - 8487 +- - 8488 + - 8488 + - 8488 +- - 8489 + - 8489 + - 8489 +- - 8490 + - 107 + - 8490 +- - 8491 + - 229 + - 8491 +- - 8492 + - 8492 + - 8492 +- - 8493 + - 8493 + - 8493 +- - 8494 + - 8494 + - 8494 +- - 8495 + - 8495 + - 8495 +- - 8496 + - 8496 + - 8496 +- - 8497 + - 8497 + - 8497 +- - 8498 + - 8526 + - 8498 +- - 8499 + - 8499 + - 8499 +- - 8500 + - 8500 + - 8500 +- - 8501 + - 8501 + - 8501 +- - 8502 + - 8502 + - 8502 +- - 8503 + - 8503 + - 8503 +- - 8504 + - 8504 + - 8504 +- - 8505 + - 8505 + - 8505 +- - 8506 + - 8506 + - 8506 +- - 8507 + - 8507 + - 8507 +- - 8508 + - 8508 + - 8508 +- - 8509 + - 8509 + - 8509 +- - 8510 + - 8510 + - 8510 +- - 8511 + - 8511 + - 8511 +- - 8512 + - 8512 + - 8512 +- - 8513 + - 8513 + - 8513 +- - 8514 + - 8514 + - 8514 +- - 8515 + - 8515 + - 8515 +- - 8516 + - 8516 + - 8516 +- - 8517 + - 8517 + - 8517 +- - 8518 + - 8518 + - 8518 +- - 8519 + - 8519 + - 8519 +- - 8520 + - 8520 + - 8520 +- - 8521 + - 8521 + - 8521 +- - 8522 + - 8522 + - 8522 +- - 8523 + - 8523 + - 8523 +- - 8524 + - 8524 + - 8524 +- - 8525 + - 8525 + - 8525 +- - 8498 + - 8526 + - 8498 +- - 8527 + - 8527 + - 8527 +- - 8528 + - 8528 + - 8528 +- - 8529 + - 8529 + - 8529 +- - 8530 + - 8530 + - 8530 +- - 8531 + - 8531 + - 8531 +- - 8532 + - 8532 + - 8532 +- - 8533 + - 8533 + - 8533 +- - 8534 + - 8534 + - 8534 +- - 8535 + - 8535 + - 8535 +- - 8536 + - 8536 + - 8536 +- - 8537 + - 8537 + - 8537 +- - 8538 + - 8538 + - 8538 +- - 8539 + - 8539 + - 8539 +- - 8540 + - 8540 + - 8540 +- - 8541 + - 8541 + - 8541 +- - 8542 + - 8542 + - 8542 +- - 8543 + - 8543 + - 8543 +- - 8544 + - 8560 + - 8544 +- - 8545 + - 8561 + - 8545 +- - 8546 + - 8562 + - 8546 +- - 8547 + - 8563 + - 8547 +- - 8548 + - 8564 + - 8548 +- - 8549 + - 8565 + - 8549 +- - 8550 + - 8566 + - 8550 +- - 8551 + - 8567 + - 8551 +- - 8552 + - 8568 + - 8552 +- - 8553 + - 8569 + - 8553 +- - 8554 + - 8570 + - 8554 +- - 8555 + - 8571 + - 8555 +- - 8556 + - 8572 + - 8556 +- - 8557 + - 8573 + - 8557 +- - 8558 + - 8574 + - 8558 +- - 8559 + - 8575 + - 8559 +- - 8544 + - 8560 + - 8544 +- - 8545 + - 8561 + - 8545 +- - 8546 + - 8562 + - 8546 +- - 8547 + - 8563 + - 8547 +- - 8548 + - 8564 + - 8548 +- - 8549 + - 8565 + - 8549 +- - 8550 + - 8566 + - 8550 +- - 8551 + - 8567 + - 8551 +- - 8552 + - 8568 + - 8552 +- - 8553 + - 8569 + - 8553 +- - 8554 + - 8570 + - 8554 +- - 8555 + - 8571 + - 8555 +- - 8556 + - 8572 + - 8556 +- - 8557 + - 8573 + - 8557 +- - 8558 + - 8574 + - 8558 +- - 8559 + - 8575 + - 8559 +- - 8576 + - 8576 + - 8576 +- - 8577 + - 8577 + - 8577 +- - 8578 + - 8578 + - 8578 +- - 8579 + - 8580 + - 8579 +- - 8579 + - 8580 + - 8579 +- - 8581 + - 8581 + - 8581 +- - 8582 + - 8582 + - 8582 +- - 8583 + - 8583 + - 8583 +- - 8584 + - 8584 + - 8584 +- - 8585 + - 8585 + - 8585 +- - 8586 + - 8586 + - 8586 +- - 8587 + - 8587 + - 8587 +- - 8588 + - 8588 + - 8588 +- - 8589 + - 8589 + - 8589 +- - 8590 + - 8590 + - 8590 +- - 8591 + - 8591 + - 8591 +- - 8592 + - 8592 + - 8592 +- - 8593 + - 8593 + - 8593 +- - 8594 + - 8594 + - 8594 +- - 8595 + - 8595 + - 8595 +- - 8596 + - 8596 + - 8596 +- - 8597 + - 8597 + - 8597 +- - 8598 + - 8598 + - 8598 +- - 8599 + - 8599 + - 8599 +- - 8600 + - 8600 + - 8600 +- - 8601 + - 8601 + - 8601 +- - 8602 + - 8602 + - 8602 +- - 8603 + - 8603 + - 8603 +- - 8604 + - 8604 + - 8604 +- - 8605 + - 8605 + - 8605 +- - 8606 + - 8606 + - 8606 +- - 8607 + - 8607 + - 8607 +- - 8608 + - 8608 + - 8608 +- - 8609 + - 8609 + - 8609 +- - 8610 + - 8610 + - 8610 +- - 8611 + - 8611 + - 8611 +- - 8612 + - 8612 + - 8612 +- - 8613 + - 8613 + - 8613 +- - 8614 + - 8614 + - 8614 +- - 8615 + - 8615 + - 8615 +- - 8616 + - 8616 + - 8616 +- - 8617 + - 8617 + - 8617 +- - 8618 + - 8618 + - 8618 +- - 8619 + - 8619 + - 8619 +- - 8620 + - 8620 + - 8620 +- - 8621 + - 8621 + - 8621 +- - 8622 + - 8622 + - 8622 +- - 8623 + - 8623 + - 8623 +- - 8624 + - 8624 + - 8624 +- - 8625 + - 8625 + - 8625 +- - 8626 + - 8626 + - 8626 +- - 8627 + - 8627 + - 8627 +- - 8628 + - 8628 + - 8628 +- - 8629 + - 8629 + - 8629 +- - 8630 + - 8630 + - 8630 +- - 8631 + - 8631 + - 8631 +- - 8632 + - 8632 + - 8632 +- - 8633 + - 8633 + - 8633 +- - 8634 + - 8634 + - 8634 +- - 8635 + - 8635 + - 8635 +- - 8636 + - 8636 + - 8636 +- - 8637 + - 8637 + - 8637 +- - 8638 + - 8638 + - 8638 +- - 8639 + - 8639 + - 8639 +- - 8640 + - 8640 + - 8640 +- - 8641 + - 8641 + - 8641 +- - 8642 + - 8642 + - 8642 +- - 8643 + - 8643 + - 8643 +- - 8644 + - 8644 + - 8644 +- - 8645 + - 8645 + - 8645 +- - 8646 + - 8646 + - 8646 +- - 8647 + - 8647 + - 8647 +- - 8648 + - 8648 + - 8648 +- - 8649 + - 8649 + - 8649 +- - 8650 + - 8650 + - 8650 +- - 8651 + - 8651 + - 8651 +- - 8652 + - 8652 + - 8652 +- - 8653 + - 8653 + - 8653 +- - 8654 + - 8654 + - 8654 +- - 8655 + - 8655 + - 8655 +- - 8656 + - 8656 + - 8656 +- - 8657 + - 8657 + - 8657 +- - 8658 + - 8658 + - 8658 +- - 8659 + - 8659 + - 8659 +- - 8660 + - 8660 + - 8660 +- - 8661 + - 8661 + - 8661 +- - 8662 + - 8662 + - 8662 +- - 8663 + - 8663 + - 8663 +- - 8664 + - 8664 + - 8664 +- - 8665 + - 8665 + - 8665 +- - 8666 + - 8666 + - 8666 +- - 8667 + - 8667 + - 8667 +- - 8668 + - 8668 + - 8668 +- - 8669 + - 8669 + - 8669 +- - 8670 + - 8670 + - 8670 +- - 8671 + - 8671 + - 8671 +- - 8672 + - 8672 + - 8672 +- - 8673 + - 8673 + - 8673 +- - 8674 + - 8674 + - 8674 +- - 8675 + - 8675 + - 8675 +- - 8676 + - 8676 + - 8676 +- - 8677 + - 8677 + - 8677 +- - 8678 + - 8678 + - 8678 +- - 8679 + - 8679 + - 8679 +- - 8680 + - 8680 + - 8680 +- - 8681 + - 8681 + - 8681 +- - 8682 + - 8682 + - 8682 +- - 8683 + - 8683 + - 8683 +- - 8684 + - 8684 + - 8684 +- - 8685 + - 8685 + - 8685 +- - 8686 + - 8686 + - 8686 +- - 8687 + - 8687 + - 8687 +- - 8688 + - 8688 + - 8688 +- - 8689 + - 8689 + - 8689 +- - 8690 + - 8690 + - 8690 +- - 8691 + - 8691 + - 8691 +- - 8692 + - 8692 + - 8692 +- - 8693 + - 8693 + - 8693 +- - 8694 + - 8694 + - 8694 +- - 8695 + - 8695 + - 8695 +- - 8696 + - 8696 + - 8696 +- - 8697 + - 8697 + - 8697 +- - 8698 + - 8698 + - 8698 +- - 8699 + - 8699 + - 8699 +- - 8700 + - 8700 + - 8700 +- - 8701 + - 8701 + - 8701 +- - 8702 + - 8702 + - 8702 +- - 8703 + - 8703 + - 8703 +u900p024: +- - 9216 + - 9216 + - 9216 +- - 9217 + - 9217 + - 9217 +- - 9218 + - 9218 + - 9218 +- - 9219 + - 9219 + - 9219 +- - 9220 + - 9220 + - 9220 +- - 9221 + - 9221 + - 9221 +- - 9222 + - 9222 + - 9222 +- - 9223 + - 9223 + - 9223 +- - 9224 + - 9224 + - 9224 +- - 9225 + - 9225 + - 9225 +- - 9226 + - 9226 + - 9226 +- - 9227 + - 9227 + - 9227 +- - 9228 + - 9228 + - 9228 +- - 9229 + - 9229 + - 9229 +- - 9230 + - 9230 + - 9230 +- - 9231 + - 9231 + - 9231 +- - 9232 + - 9232 + - 9232 +- - 9233 + - 9233 + - 9233 +- - 9234 + - 9234 + - 9234 +- - 9235 + - 9235 + - 9235 +- - 9236 + - 9236 + - 9236 +- - 9237 + - 9237 + - 9237 +- - 9238 + - 9238 + - 9238 +- - 9239 + - 9239 + - 9239 +- - 9240 + - 9240 + - 9240 +- - 9241 + - 9241 + - 9241 +- - 9242 + - 9242 + - 9242 +- - 9243 + - 9243 + - 9243 +- - 9244 + - 9244 + - 9244 +- - 9245 + - 9245 + - 9245 +- - 9246 + - 9246 + - 9246 +- - 9247 + - 9247 + - 9247 +- - 9248 + - 9248 + - 9248 +- - 9249 + - 9249 + - 9249 +- - 9250 + - 9250 + - 9250 +- - 9251 + - 9251 + - 9251 +- - 9252 + - 9252 + - 9252 +- - 9253 + - 9253 + - 9253 +- - 9254 + - 9254 + - 9254 +- - 9255 + - 9255 + - 9255 +- - 9256 + - 9256 + - 9256 +- - 9257 + - 9257 + - 9257 +- - 9258 + - 9258 + - 9258 +- - 9259 + - 9259 + - 9259 +- - 9260 + - 9260 + - 9260 +- - 9261 + - 9261 + - 9261 +- - 9262 + - 9262 + - 9262 +- - 9263 + - 9263 + - 9263 +- - 9264 + - 9264 + - 9264 +- - 9265 + - 9265 + - 9265 +- - 9266 + - 9266 + - 9266 +- - 9267 + - 9267 + - 9267 +- - 9268 + - 9268 + - 9268 +- - 9269 + - 9269 + - 9269 +- - 9270 + - 9270 + - 9270 +- - 9271 + - 9271 + - 9271 +- - 9272 + - 9272 + - 9272 +- - 9273 + - 9273 + - 9273 +- - 9274 + - 9274 + - 9274 +- - 9275 + - 9275 + - 9275 +- - 9276 + - 9276 + - 9276 +- - 9277 + - 9277 + - 9277 +- - 9278 + - 9278 + - 9278 +- - 9279 + - 9279 + - 9279 +- - 9280 + - 9280 + - 9280 +- - 9281 + - 9281 + - 9281 +- - 9282 + - 9282 + - 9282 +- - 9283 + - 9283 + - 9283 +- - 9284 + - 9284 + - 9284 +- - 9285 + - 9285 + - 9285 +- - 9286 + - 9286 + - 9286 +- - 9287 + - 9287 + - 9287 +- - 9288 + - 9288 + - 9288 +- - 9289 + - 9289 + - 9289 +- - 9290 + - 9290 + - 9290 +- - 9291 + - 9291 + - 9291 +- - 9292 + - 9292 + - 9292 +- - 9293 + - 9293 + - 9293 +- - 9294 + - 9294 + - 9294 +- - 9295 + - 9295 + - 9295 +- - 9296 + - 9296 + - 9296 +- - 9297 + - 9297 + - 9297 +- - 9298 + - 9298 + - 9298 +- - 9299 + - 9299 + - 9299 +- - 9300 + - 9300 + - 9300 +- - 9301 + - 9301 + - 9301 +- - 9302 + - 9302 + - 9302 +- - 9303 + - 9303 + - 9303 +- - 9304 + - 9304 + - 9304 +- - 9305 + - 9305 + - 9305 +- - 9306 + - 9306 + - 9306 +- - 9307 + - 9307 + - 9307 +- - 9308 + - 9308 + - 9308 +- - 9309 + - 9309 + - 9309 +- - 9310 + - 9310 + - 9310 +- - 9311 + - 9311 + - 9311 +- - 9312 + - 9312 + - 9312 +- - 9313 + - 9313 + - 9313 +- - 9314 + - 9314 + - 9314 +- - 9315 + - 9315 + - 9315 +- - 9316 + - 9316 + - 9316 +- - 9317 + - 9317 + - 9317 +- - 9318 + - 9318 + - 9318 +- - 9319 + - 9319 + - 9319 +- - 9320 + - 9320 + - 9320 +- - 9321 + - 9321 + - 9321 +- - 9322 + - 9322 + - 9322 +- - 9323 + - 9323 + - 9323 +- - 9324 + - 9324 + - 9324 +- - 9325 + - 9325 + - 9325 +- - 9326 + - 9326 + - 9326 +- - 9327 + - 9327 + - 9327 +- - 9328 + - 9328 + - 9328 +- - 9329 + - 9329 + - 9329 +- - 9330 + - 9330 + - 9330 +- - 9331 + - 9331 + - 9331 +- - 9332 + - 9332 + - 9332 +- - 9333 + - 9333 + - 9333 +- - 9334 + - 9334 + - 9334 +- - 9335 + - 9335 + - 9335 +- - 9336 + - 9336 + - 9336 +- - 9337 + - 9337 + - 9337 +- - 9338 + - 9338 + - 9338 +- - 9339 + - 9339 + - 9339 +- - 9340 + - 9340 + - 9340 +- - 9341 + - 9341 + - 9341 +- - 9342 + - 9342 + - 9342 +- - 9343 + - 9343 + - 9343 +- - 9344 + - 9344 + - 9344 +- - 9345 + - 9345 + - 9345 +- - 9346 + - 9346 + - 9346 +- - 9347 + - 9347 + - 9347 +- - 9348 + - 9348 + - 9348 +- - 9349 + - 9349 + - 9349 +- - 9350 + - 9350 + - 9350 +- - 9351 + - 9351 + - 9351 +- - 9352 + - 9352 + - 9352 +- - 9353 + - 9353 + - 9353 +- - 9354 + - 9354 + - 9354 +- - 9355 + - 9355 + - 9355 +- - 9356 + - 9356 + - 9356 +- - 9357 + - 9357 + - 9357 +- - 9358 + - 9358 + - 9358 +- - 9359 + - 9359 + - 9359 +- - 9360 + - 9360 + - 9360 +- - 9361 + - 9361 + - 9361 +- - 9362 + - 9362 + - 9362 +- - 9363 + - 9363 + - 9363 +- - 9364 + - 9364 + - 9364 +- - 9365 + - 9365 + - 9365 +- - 9366 + - 9366 + - 9366 +- - 9367 + - 9367 + - 9367 +- - 9368 + - 9368 + - 9368 +- - 9369 + - 9369 + - 9369 +- - 9370 + - 9370 + - 9370 +- - 9371 + - 9371 + - 9371 +- - 9372 + - 9372 + - 9372 +- - 9373 + - 9373 + - 9373 +- - 9374 + - 9374 + - 9374 +- - 9375 + - 9375 + - 9375 +- - 9376 + - 9376 + - 9376 +- - 9377 + - 9377 + - 9377 +- - 9378 + - 9378 + - 9378 +- - 9379 + - 9379 + - 9379 +- - 9380 + - 9380 + - 9380 +- - 9381 + - 9381 + - 9381 +- - 9382 + - 9382 + - 9382 +- - 9383 + - 9383 + - 9383 +- - 9384 + - 9384 + - 9384 +- - 9385 + - 9385 + - 9385 +- - 9386 + - 9386 + - 9386 +- - 9387 + - 9387 + - 9387 +- - 9388 + - 9388 + - 9388 +- - 9389 + - 9389 + - 9389 +- - 9390 + - 9390 + - 9390 +- - 9391 + - 9391 + - 9391 +- - 9392 + - 9392 + - 9392 +- - 9393 + - 9393 + - 9393 +- - 9394 + - 9394 + - 9394 +- - 9395 + - 9395 + - 9395 +- - 9396 + - 9396 + - 9396 +- - 9397 + - 9397 + - 9397 +- - 9398 + - 9424 + - 9398 +- - 9399 + - 9425 + - 9399 +- - 9400 + - 9426 + - 9400 +- - 9401 + - 9427 + - 9401 +- - 9402 + - 9428 + - 9402 +- - 9403 + - 9429 + - 9403 +- - 9404 + - 9430 + - 9404 +- - 9405 + - 9431 + - 9405 +- - 9406 + - 9432 + - 9406 +- - 9407 + - 9433 + - 9407 +- - 9408 + - 9434 + - 9408 +- - 9409 + - 9435 + - 9409 +- - 9410 + - 9436 + - 9410 +- - 9411 + - 9437 + - 9411 +- - 9412 + - 9438 + - 9412 +- - 9413 + - 9439 + - 9413 +- - 9414 + - 9440 + - 9414 +- - 9415 + - 9441 + - 9415 +- - 9416 + - 9442 + - 9416 +- - 9417 + - 9443 + - 9417 +- - 9418 + - 9444 + - 9418 +- - 9419 + - 9445 + - 9419 +- - 9420 + - 9446 + - 9420 +- - 9421 + - 9447 + - 9421 +- - 9422 + - 9448 + - 9422 +- - 9423 + - 9449 + - 9423 +- - 9398 + - 9424 + - 9398 +- - 9399 + - 9425 + - 9399 +- - 9400 + - 9426 + - 9400 +- - 9401 + - 9427 + - 9401 +- - 9402 + - 9428 + - 9402 +- - 9403 + - 9429 + - 9403 +- - 9404 + - 9430 + - 9404 +- - 9405 + - 9431 + - 9405 +- - 9406 + - 9432 + - 9406 +- - 9407 + - 9433 + - 9407 +- - 9408 + - 9434 + - 9408 +- - 9409 + - 9435 + - 9409 +- - 9410 + - 9436 + - 9410 +- - 9411 + - 9437 + - 9411 +- - 9412 + - 9438 + - 9412 +- - 9413 + - 9439 + - 9413 +- - 9414 + - 9440 + - 9414 +- - 9415 + - 9441 + - 9415 +- - 9416 + - 9442 + - 9416 +- - 9417 + - 9443 + - 9417 +- - 9418 + - 9444 + - 9418 +- - 9419 + - 9445 + - 9419 +- - 9420 + - 9446 + - 9420 +- - 9421 + - 9447 + - 9421 +- - 9422 + - 9448 + - 9422 +- - 9423 + - 9449 + - 9423 +- - 9450 + - 9450 + - 9450 +- - 9451 + - 9451 + - 9451 +- - 9452 + - 9452 + - 9452 +- - 9453 + - 9453 + - 9453 +- - 9454 + - 9454 + - 9454 +- - 9455 + - 9455 + - 9455 +- - 9456 + - 9456 + - 9456 +- - 9457 + - 9457 + - 9457 +- - 9458 + - 9458 + - 9458 +- - 9459 + - 9459 + - 9459 +- - 9460 + - 9460 + - 9460 +- - 9461 + - 9461 + - 9461 +- - 9462 + - 9462 + - 9462 +- - 9463 + - 9463 + - 9463 +- - 9464 + - 9464 + - 9464 +- - 9465 + - 9465 + - 9465 +- - 9466 + - 9466 + - 9466 +- - 9467 + - 9467 + - 9467 +- - 9468 + - 9468 + - 9468 +- - 9469 + - 9469 + - 9469 +- - 9470 + - 9470 + - 9470 +- - 9471 + - 9471 + - 9471 +u900p02C: +- - 11264 + - 11312 + - 11264 +- - 11265 + - 11313 + - 11265 +- - 11266 + - 11314 + - 11266 +- - 11267 + - 11315 + - 11267 +- - 11268 + - 11316 + - 11268 +- - 11269 + - 11317 + - 11269 +- - 11270 + - 11318 + - 11270 +- - 11271 + - 11319 + - 11271 +- - 11272 + - 11320 + - 11272 +- - 11273 + - 11321 + - 11273 +- - 11274 + - 11322 + - 11274 +- - 11275 + - 11323 + - 11275 +- - 11276 + - 11324 + - 11276 +- - 11277 + - 11325 + - 11277 +- - 11278 + - 11326 + - 11278 +- - 11279 + - 11327 + - 11279 +- - 11280 + - 11328 + - 11280 +- - 11281 + - 11329 + - 11281 +- - 11282 + - 11330 + - 11282 +- - 11283 + - 11331 + - 11283 +- - 11284 + - 11332 + - 11284 +- - 11285 + - 11333 + - 11285 +- - 11286 + - 11334 + - 11286 +- - 11287 + - 11335 + - 11287 +- - 11288 + - 11336 + - 11288 +- - 11289 + - 11337 + - 11289 +- - 11290 + - 11338 + - 11290 +- - 11291 + - 11339 + - 11291 +- - 11292 + - 11340 + - 11292 +- - 11293 + - 11341 + - 11293 +- - 11294 + - 11342 + - 11294 +- - 11295 + - 11343 + - 11295 +- - 11296 + - 11344 + - 11296 +- - 11297 + - 11345 + - 11297 +- - 11298 + - 11346 + - 11298 +- - 11299 + - 11347 + - 11299 +- - 11300 + - 11348 + - 11300 +- - 11301 + - 11349 + - 11301 +- - 11302 + - 11350 + - 11302 +- - 11303 + - 11351 + - 11303 +- - 11304 + - 11352 + - 11304 +- - 11305 + - 11353 + - 11305 +- - 11306 + - 11354 + - 11306 +- - 11307 + - 11355 + - 11307 +- - 11308 + - 11356 + - 11308 +- - 11309 + - 11357 + - 11309 +- - 11310 + - 11358 + - 11310 +- - 11311 + - 11311 + - 11311 +- - 11264 + - 11312 + - 11264 +- - 11265 + - 11313 + - 11265 +- - 11266 + - 11314 + - 11266 +- - 11267 + - 11315 + - 11267 +- - 11268 + - 11316 + - 11268 +- - 11269 + - 11317 + - 11269 +- - 11270 + - 11318 + - 11270 +- - 11271 + - 11319 + - 11271 +- - 11272 + - 11320 + - 11272 +- - 11273 + - 11321 + - 11273 +- - 11274 + - 11322 + - 11274 +- - 11275 + - 11323 + - 11275 +- - 11276 + - 11324 + - 11276 +- - 11277 + - 11325 + - 11277 +- - 11278 + - 11326 + - 11278 +- - 11279 + - 11327 + - 11279 +- - 11280 + - 11328 + - 11280 +- - 11281 + - 11329 + - 11281 +- - 11282 + - 11330 + - 11282 +- - 11283 + - 11331 + - 11283 +- - 11284 + - 11332 + - 11284 +- - 11285 + - 11333 + - 11285 +- - 11286 + - 11334 + - 11286 +- - 11287 + - 11335 + - 11287 +- - 11288 + - 11336 + - 11288 +- - 11289 + - 11337 + - 11289 +- - 11290 + - 11338 + - 11290 +- - 11291 + - 11339 + - 11291 +- - 11292 + - 11340 + - 11292 +- - 11293 + - 11341 + - 11293 +- - 11294 + - 11342 + - 11294 +- - 11295 + - 11343 + - 11295 +- - 11296 + - 11344 + - 11296 +- - 11297 + - 11345 + - 11297 +- - 11298 + - 11346 + - 11298 +- - 11299 + - 11347 + - 11299 +- - 11300 + - 11348 + - 11300 +- - 11301 + - 11349 + - 11301 +- - 11302 + - 11350 + - 11302 +- - 11303 + - 11351 + - 11303 +- - 11304 + - 11352 + - 11304 +- - 11305 + - 11353 + - 11305 +- - 11306 + - 11354 + - 11306 +- - 11307 + - 11355 + - 11307 +- - 11308 + - 11356 + - 11308 +- - 11309 + - 11357 + - 11309 +- - 11310 + - 11358 + - 11310 +- - 11359 + - 11359 + - 11359 +- - 11360 + - 11361 + - 11360 +- - 11360 + - 11361 + - 11360 +- - 11362 + - 619 + - 11362 +- - 11363 + - 7549 + - 11363 +- - 11364 + - 637 + - 11364 +- - 570 + - 11365 + - 570 +- - 574 + - 11366 + - 574 +- - 11367 + - 11368 + - 11367 +- - 11367 + - 11368 + - 11367 +- - 11369 + - 11370 + - 11369 +- - 11369 + - 11370 + - 11369 +- - 11371 + - 11372 + - 11371 +- - 11371 + - 11372 + - 11371 +- - 11373 + - 593 + - 11373 +- - 11374 + - 625 + - 11374 +- - 11375 + - 592 + - 11375 +- - 11376 + - 594 + - 11376 +- - 11377 + - 11377 + - 11377 +- - 11378 + - 11379 + - 11378 +- - 11378 + - 11379 + - 11378 +- - 11380 + - 11380 + - 11380 +- - 11381 + - 11382 + - 11381 +- - 11381 + - 11382 + - 11381 +- - 11383 + - 11383 + - 11383 +- - 11384 + - 11384 + - 11384 +- - 11385 + - 11385 + - 11385 +- - 11386 + - 11386 + - 11386 +- - 11387 + - 11387 + - 11387 +- - 11388 + - 11388 + - 11388 +- - 11389 + - 11389 + - 11389 +- - 11390 + - 575 + - 11390 +- - 11391 + - 576 + - 11391 +- - 11392 + - 11393 + - 11392 +- - 11392 + - 11393 + - 11392 +- - 11394 + - 11395 + - 11394 +- - 11394 + - 11395 + - 11394 +- - 11396 + - 11397 + - 11396 +- - 11396 + - 11397 + - 11396 +- - 11398 + - 11399 + - 11398 +- - 11398 + - 11399 + - 11398 +- - 11400 + - 11401 + - 11400 +- - 11400 + - 11401 + - 11400 +- - 11402 + - 11403 + - 11402 +- - 11402 + - 11403 + - 11402 +- - 11404 + - 11405 + - 11404 +- - 11404 + - 11405 + - 11404 +- - 11406 + - 11407 + - 11406 +- - 11406 + - 11407 + - 11406 +- - 11408 + - 11409 + - 11408 +- - 11408 + - 11409 + - 11408 +- - 11410 + - 11411 + - 11410 +- - 11410 + - 11411 + - 11410 +- - 11412 + - 11413 + - 11412 +- - 11412 + - 11413 + - 11412 +- - 11414 + - 11415 + - 11414 +- - 11414 + - 11415 + - 11414 +- - 11416 + - 11417 + - 11416 +- - 11416 + - 11417 + - 11416 +- - 11418 + - 11419 + - 11418 +- - 11418 + - 11419 + - 11418 +- - 11420 + - 11421 + - 11420 +- - 11420 + - 11421 + - 11420 +- - 11422 + - 11423 + - 11422 +- - 11422 + - 11423 + - 11422 +- - 11424 + - 11425 + - 11424 +- - 11424 + - 11425 + - 11424 +- - 11426 + - 11427 + - 11426 +- - 11426 + - 11427 + - 11426 +- - 11428 + - 11429 + - 11428 +- - 11428 + - 11429 + - 11428 +- - 11430 + - 11431 + - 11430 +- - 11430 + - 11431 + - 11430 +- - 11432 + - 11433 + - 11432 +- - 11432 + - 11433 + - 11432 +- - 11434 + - 11435 + - 11434 +- - 11434 + - 11435 + - 11434 +- - 11436 + - 11437 + - 11436 +- - 11436 + - 11437 + - 11436 +- - 11438 + - 11439 + - 11438 +- - 11438 + - 11439 + - 11438 +- - 11440 + - 11441 + - 11440 +- - 11440 + - 11441 + - 11440 +- - 11442 + - 11443 + - 11442 +- - 11442 + - 11443 + - 11442 +- - 11444 + - 11445 + - 11444 +- - 11444 + - 11445 + - 11444 +- - 11446 + - 11447 + - 11446 +- - 11446 + - 11447 + - 11446 +- - 11448 + - 11449 + - 11448 +- - 11448 + - 11449 + - 11448 +- - 11450 + - 11451 + - 11450 +- - 11450 + - 11451 + - 11450 +- - 11452 + - 11453 + - 11452 +- - 11452 + - 11453 + - 11452 +- - 11454 + - 11455 + - 11454 +- - 11454 + - 11455 + - 11454 +- - 11456 + - 11457 + - 11456 +- - 11456 + - 11457 + - 11456 +- - 11458 + - 11459 + - 11458 +- - 11458 + - 11459 + - 11458 +- - 11460 + - 11461 + - 11460 +- - 11460 + - 11461 + - 11460 +- - 11462 + - 11463 + - 11462 +- - 11462 + - 11463 + - 11462 +- - 11464 + - 11465 + - 11464 +- - 11464 + - 11465 + - 11464 +- - 11466 + - 11467 + - 11466 +- - 11466 + - 11467 + - 11466 +- - 11468 + - 11469 + - 11468 +- - 11468 + - 11469 + - 11468 +- - 11470 + - 11471 + - 11470 +- - 11470 + - 11471 + - 11470 +- - 11472 + - 11473 + - 11472 +- - 11472 + - 11473 + - 11472 +- - 11474 + - 11475 + - 11474 +- - 11474 + - 11475 + - 11474 +- - 11476 + - 11477 + - 11476 +- - 11476 + - 11477 + - 11476 +- - 11478 + - 11479 + - 11478 +- - 11478 + - 11479 + - 11478 +- - 11480 + - 11481 + - 11480 +- - 11480 + - 11481 + - 11480 +- - 11482 + - 11483 + - 11482 +- - 11482 + - 11483 + - 11482 +- - 11484 + - 11485 + - 11484 +- - 11484 + - 11485 + - 11484 +- - 11486 + - 11487 + - 11486 +- - 11486 + - 11487 + - 11486 +- - 11488 + - 11489 + - 11488 +- - 11488 + - 11489 + - 11488 +- - 11490 + - 11491 + - 11490 +- - 11490 + - 11491 + - 11490 +- - 11492 + - 11492 + - 11492 +- - 11493 + - 11493 + - 11493 +- - 11494 + - 11494 + - 11494 +- - 11495 + - 11495 + - 11495 +- - 11496 + - 11496 + - 11496 +- - 11497 + - 11497 + - 11497 +- - 11498 + - 11498 + - 11498 +- - 11499 + - 11500 + - 11499 +- - 11499 + - 11500 + - 11499 +- - 11501 + - 11502 + - 11501 +- - 11501 + - 11502 + - 11501 +- - 11503 + - 11503 + - 11503 +- - 11504 + - 11504 + - 11504 +- - 11505 + - 11505 + - 11505 +- - 11506 + - 11507 + - 11506 +- - 11506 + - 11507 + - 11506 +- - 11508 + - 11508 + - 11508 +- - 11509 + - 11509 + - 11509 +- - 11510 + - 11510 + - 11510 +- - 11511 + - 11511 + - 11511 +- - 11512 + - 11512 + - 11512 +- - 11513 + - 11513 + - 11513 +- - 11514 + - 11514 + - 11514 +- - 11515 + - 11515 + - 11515 +- - 11516 + - 11516 + - 11516 +- - 11517 + - 11517 + - 11517 +- - 11518 + - 11518 + - 11518 +- - 11519 + - 11519 + - 11519 +u900p02D: +- - 4256 + - 11520 + - 4256 +- - 4257 + - 11521 + - 4257 +- - 4258 + - 11522 + - 4258 +- - 4259 + - 11523 + - 4259 +- - 4260 + - 11524 + - 4260 +- - 4261 + - 11525 + - 4261 +- - 4262 + - 11526 + - 4262 +- - 4263 + - 11527 + - 4263 +- - 4264 + - 11528 + - 4264 +- - 4265 + - 11529 + - 4265 +- - 4266 + - 11530 + - 4266 +- - 4267 + - 11531 + - 4267 +- - 4268 + - 11532 + - 4268 +- - 4269 + - 11533 + - 4269 +- - 4270 + - 11534 + - 4270 +- - 4271 + - 11535 + - 4271 +- - 4272 + - 11536 + - 4272 +- - 4273 + - 11537 + - 4273 +- - 4274 + - 11538 + - 4274 +- - 4275 + - 11539 + - 4275 +- - 4276 + - 11540 + - 4276 +- - 4277 + - 11541 + - 4277 +- - 4278 + - 11542 + - 4278 +- - 4279 + - 11543 + - 4279 +- - 4280 + - 11544 + - 4280 +- - 4281 + - 11545 + - 4281 +- - 4282 + - 11546 + - 4282 +- - 4283 + - 11547 + - 4283 +- - 4284 + - 11548 + - 4284 +- - 4285 + - 11549 + - 4285 +- - 4286 + - 11550 + - 4286 +- - 4287 + - 11551 + - 4287 +- - 4288 + - 11552 + - 4288 +- - 4289 + - 11553 + - 4289 +- - 4290 + - 11554 + - 4290 +- - 4291 + - 11555 + - 4291 +- - 4292 + - 11556 + - 4292 +- - 4293 + - 11557 + - 4293 +- - 11558 + - 11558 + - 11558 +- - 4295 + - 11559 + - 4295 +- - 11560 + - 11560 + - 11560 +- - 11561 + - 11561 + - 11561 +- - 11562 + - 11562 + - 11562 +- - 11563 + - 11563 + - 11563 +- - 11564 + - 11564 + - 11564 +- - 4301 + - 11565 + - 4301 +- - 11566 + - 11566 + - 11566 +- - 11567 + - 11567 + - 11567 +- - 11568 + - 11568 + - 11568 +- - 11569 + - 11569 + - 11569 +- - 11570 + - 11570 + - 11570 +- - 11571 + - 11571 + - 11571 +- - 11572 + - 11572 + - 11572 +- - 11573 + - 11573 + - 11573 +- - 11574 + - 11574 + - 11574 +- - 11575 + - 11575 + - 11575 +- - 11576 + - 11576 + - 11576 +- - 11577 + - 11577 + - 11577 +- - 11578 + - 11578 + - 11578 +- - 11579 + - 11579 + - 11579 +- - 11580 + - 11580 + - 11580 +- - 11581 + - 11581 + - 11581 +- - 11582 + - 11582 + - 11582 +- - 11583 + - 11583 + - 11583 +- - 11584 + - 11584 + - 11584 +- - 11585 + - 11585 + - 11585 +- - 11586 + - 11586 + - 11586 +- - 11587 + - 11587 + - 11587 +- - 11588 + - 11588 + - 11588 +- - 11589 + - 11589 + - 11589 +- - 11590 + - 11590 + - 11590 +- - 11591 + - 11591 + - 11591 +- - 11592 + - 11592 + - 11592 +- - 11593 + - 11593 + - 11593 +- - 11594 + - 11594 + - 11594 +- - 11595 + - 11595 + - 11595 +- - 11596 + - 11596 + - 11596 +- - 11597 + - 11597 + - 11597 +- - 11598 + - 11598 + - 11598 +- - 11599 + - 11599 + - 11599 +- - 11600 + - 11600 + - 11600 +- - 11601 + - 11601 + - 11601 +- - 11602 + - 11602 + - 11602 +- - 11603 + - 11603 + - 11603 +- - 11604 + - 11604 + - 11604 +- - 11605 + - 11605 + - 11605 +- - 11606 + - 11606 + - 11606 +- - 11607 + - 11607 + - 11607 +- - 11608 + - 11608 + - 11608 +- - 11609 + - 11609 + - 11609 +- - 11610 + - 11610 + - 11610 +- - 11611 + - 11611 + - 11611 +- - 11612 + - 11612 + - 11612 +- - 11613 + - 11613 + - 11613 +- - 11614 + - 11614 + - 11614 +- - 11615 + - 11615 + - 11615 +- - 11616 + - 11616 + - 11616 +- - 11617 + - 11617 + - 11617 +- - 11618 + - 11618 + - 11618 +- - 11619 + - 11619 + - 11619 +- - 11620 + - 11620 + - 11620 +- - 11621 + - 11621 + - 11621 +- - 11622 + - 11622 + - 11622 +- - 11623 + - 11623 + - 11623 +- - 11624 + - 11624 + - 11624 +- - 11625 + - 11625 + - 11625 +- - 11626 + - 11626 + - 11626 +- - 11627 + - 11627 + - 11627 +- - 11628 + - 11628 + - 11628 +- - 11629 + - 11629 + - 11629 +- - 11630 + - 11630 + - 11630 +- - 11631 + - 11631 + - 11631 +- - 11632 + - 11632 + - 11632 +- - 11633 + - 11633 + - 11633 +- - 11634 + - 11634 + - 11634 +- - 11635 + - 11635 + - 11635 +- - 11636 + - 11636 + - 11636 +- - 11637 + - 11637 + - 11637 +- - 11638 + - 11638 + - 11638 +- - 11639 + - 11639 + - 11639 +- - 11640 + - 11640 + - 11640 +- - 11641 + - 11641 + - 11641 +- - 11642 + - 11642 + - 11642 +- - 11643 + - 11643 + - 11643 +- - 11644 + - 11644 + - 11644 +- - 11645 + - 11645 + - 11645 +- - 11646 + - 11646 + - 11646 +- - 11647 + - 11647 + - 11647 +- - 11648 + - 11648 + - 11648 +- - 11649 + - 11649 + - 11649 +- - 11650 + - 11650 + - 11650 +- - 11651 + - 11651 + - 11651 +- - 11652 + - 11652 + - 11652 +- - 11653 + - 11653 + - 11653 +- - 11654 + - 11654 + - 11654 +- - 11655 + - 11655 + - 11655 +- - 11656 + - 11656 + - 11656 +- - 11657 + - 11657 + - 11657 +- - 11658 + - 11658 + - 11658 +- - 11659 + - 11659 + - 11659 +- - 11660 + - 11660 + - 11660 +- - 11661 + - 11661 + - 11661 +- - 11662 + - 11662 + - 11662 +- - 11663 + - 11663 + - 11663 +- - 11664 + - 11664 + - 11664 +- - 11665 + - 11665 + - 11665 +- - 11666 + - 11666 + - 11666 +- - 11667 + - 11667 + - 11667 +- - 11668 + - 11668 + - 11668 +- - 11669 + - 11669 + - 11669 +- - 11670 + - 11670 + - 11670 +- - 11671 + - 11671 + - 11671 +- - 11672 + - 11672 + - 11672 +- - 11673 + - 11673 + - 11673 +- - 11674 + - 11674 + - 11674 +- - 11675 + - 11675 + - 11675 +- - 11676 + - 11676 + - 11676 +- - 11677 + - 11677 + - 11677 +- - 11678 + - 11678 + - 11678 +- - 11679 + - 11679 + - 11679 +- - 11680 + - 11680 + - 11680 +- - 11681 + - 11681 + - 11681 +- - 11682 + - 11682 + - 11682 +- - 11683 + - 11683 + - 11683 +- - 11684 + - 11684 + - 11684 +- - 11685 + - 11685 + - 11685 +- - 11686 + - 11686 + - 11686 +- - 11687 + - 11687 + - 11687 +- - 11688 + - 11688 + - 11688 +- - 11689 + - 11689 + - 11689 +- - 11690 + - 11690 + - 11690 +- - 11691 + - 11691 + - 11691 +- - 11692 + - 11692 + - 11692 +- - 11693 + - 11693 + - 11693 +- - 11694 + - 11694 + - 11694 +- - 11695 + - 11695 + - 11695 +- - 11696 + - 11696 + - 11696 +- - 11697 + - 11697 + - 11697 +- - 11698 + - 11698 + - 11698 +- - 11699 + - 11699 + - 11699 +- - 11700 + - 11700 + - 11700 +- - 11701 + - 11701 + - 11701 +- - 11702 + - 11702 + - 11702 +- - 11703 + - 11703 + - 11703 +- - 11704 + - 11704 + - 11704 +- - 11705 + - 11705 + - 11705 +- - 11706 + - 11706 + - 11706 +- - 11707 + - 11707 + - 11707 +- - 11708 + - 11708 + - 11708 +- - 11709 + - 11709 + - 11709 +- - 11710 + - 11710 + - 11710 +- - 11711 + - 11711 + - 11711 +- - 11712 + - 11712 + - 11712 +- - 11713 + - 11713 + - 11713 +- - 11714 + - 11714 + - 11714 +- - 11715 + - 11715 + - 11715 +- - 11716 + - 11716 + - 11716 +- - 11717 + - 11717 + - 11717 +- - 11718 + - 11718 + - 11718 +- - 11719 + - 11719 + - 11719 +- - 11720 + - 11720 + - 11720 +- - 11721 + - 11721 + - 11721 +- - 11722 + - 11722 + - 11722 +- - 11723 + - 11723 + - 11723 +- - 11724 + - 11724 + - 11724 +- - 11725 + - 11725 + - 11725 +- - 11726 + - 11726 + - 11726 +- - 11727 + - 11727 + - 11727 +- - 11728 + - 11728 + - 11728 +- - 11729 + - 11729 + - 11729 +- - 11730 + - 11730 + - 11730 +- - 11731 + - 11731 + - 11731 +- - 11732 + - 11732 + - 11732 +- - 11733 + - 11733 + - 11733 +- - 11734 + - 11734 + - 11734 +- - 11735 + - 11735 + - 11735 +- - 11736 + - 11736 + - 11736 +- - 11737 + - 11737 + - 11737 +- - 11738 + - 11738 + - 11738 +- - 11739 + - 11739 + - 11739 +- - 11740 + - 11740 + - 11740 +- - 11741 + - 11741 + - 11741 +- - 11742 + - 11742 + - 11742 +- - 11743 + - 11743 + - 11743 +- - 11744 + - 11744 + - 11744 +- - 11745 + - 11745 + - 11745 +- - 11746 + - 11746 + - 11746 +- - 11747 + - 11747 + - 11747 +- - 11748 + - 11748 + - 11748 +- - 11749 + - 11749 + - 11749 +- - 11750 + - 11750 + - 11750 +- - 11751 + - 11751 + - 11751 +- - 11752 + - 11752 + - 11752 +- - 11753 + - 11753 + - 11753 +- - 11754 + - 11754 + - 11754 +- - 11755 + - 11755 + - 11755 +- - 11756 + - 11756 + - 11756 +- - 11757 + - 11757 + - 11757 +- - 11758 + - 11758 + - 11758 +- - 11759 + - 11759 + - 11759 +- - 11760 + - 11760 + - 11760 +- - 11761 + - 11761 + - 11761 +- - 11762 + - 11762 + - 11762 +- - 11763 + - 11763 + - 11763 +- - 11764 + - 11764 + - 11764 +- - 11765 + - 11765 + - 11765 +- - 11766 + - 11766 + - 11766 +- - 11767 + - 11767 + - 11767 +- - 11768 + - 11768 + - 11768 +- - 11769 + - 11769 + - 11769 +- - 11770 + - 11770 + - 11770 +- - 11771 + - 11771 + - 11771 +- - 11772 + - 11772 + - 11772 +- - 11773 + - 11773 + - 11773 +- - 11774 + - 11774 + - 11774 +- - 11775 + - 11775 + - 11775 +u900p0A6: +- - 42496 + - 42496 + - 42496 +- - 42497 + - 42497 + - 42497 +- - 42498 + - 42498 + - 42498 +- - 42499 + - 42499 + - 42499 +- - 42500 + - 42500 + - 42500 +- - 42501 + - 42501 + - 42501 +- - 42502 + - 42502 + - 42502 +- - 42503 + - 42503 + - 42503 +- - 42504 + - 42504 + - 42504 +- - 42505 + - 42505 + - 42505 +- - 42506 + - 42506 + - 42506 +- - 42507 + - 42507 + - 42507 +- - 42508 + - 42508 + - 42508 +- - 42509 + - 42509 + - 42509 +- - 42510 + - 42510 + - 42510 +- - 42511 + - 42511 + - 42511 +- - 42512 + - 42512 + - 42512 +- - 42513 + - 42513 + - 42513 +- - 42514 + - 42514 + - 42514 +- - 42515 + - 42515 + - 42515 +- - 42516 + - 42516 + - 42516 +- - 42517 + - 42517 + - 42517 +- - 42518 + - 42518 + - 42518 +- - 42519 + - 42519 + - 42519 +- - 42520 + - 42520 + - 42520 +- - 42521 + - 42521 + - 42521 +- - 42522 + - 42522 + - 42522 +- - 42523 + - 42523 + - 42523 +- - 42524 + - 42524 + - 42524 +- - 42525 + - 42525 + - 42525 +- - 42526 + - 42526 + - 42526 +- - 42527 + - 42527 + - 42527 +- - 42528 + - 42528 + - 42528 +- - 42529 + - 42529 + - 42529 +- - 42530 + - 42530 + - 42530 +- - 42531 + - 42531 + - 42531 +- - 42532 + - 42532 + - 42532 +- - 42533 + - 42533 + - 42533 +- - 42534 + - 42534 + - 42534 +- - 42535 + - 42535 + - 42535 +- - 42536 + - 42536 + - 42536 +- - 42537 + - 42537 + - 42537 +- - 42538 + - 42538 + - 42538 +- - 42539 + - 42539 + - 42539 +- - 42540 + - 42540 + - 42540 +- - 42541 + - 42541 + - 42541 +- - 42542 + - 42542 + - 42542 +- - 42543 + - 42543 + - 42543 +- - 42544 + - 42544 + - 42544 +- - 42545 + - 42545 + - 42545 +- - 42546 + - 42546 + - 42546 +- - 42547 + - 42547 + - 42547 +- - 42548 + - 42548 + - 42548 +- - 42549 + - 42549 + - 42549 +- - 42550 + - 42550 + - 42550 +- - 42551 + - 42551 + - 42551 +- - 42552 + - 42552 + - 42552 +- - 42553 + - 42553 + - 42553 +- - 42554 + - 42554 + - 42554 +- - 42555 + - 42555 + - 42555 +- - 42556 + - 42556 + - 42556 +- - 42557 + - 42557 + - 42557 +- - 42558 + - 42558 + - 42558 +- - 42559 + - 42559 + - 42559 +- - 42560 + - 42561 + - 42560 +- - 42560 + - 42561 + - 42560 +- - 42562 + - 42563 + - 42562 +- - 42562 + - 42563 + - 42562 +- - 42564 + - 42565 + - 42564 +- - 42564 + - 42565 + - 42564 +- - 42566 + - 42567 + - 42566 +- - 42566 + - 42567 + - 42566 +- - 42568 + - 42569 + - 42568 +- - 42568 + - 42569 + - 42568 +- - 42570 + - 42571 + - 42570 +- - 42570 + - 42571 + - 42570 +- - 42572 + - 42573 + - 42572 +- - 42572 + - 42573 + - 42572 +- - 42574 + - 42575 + - 42574 +- - 42574 + - 42575 + - 42574 +- - 42576 + - 42577 + - 42576 +- - 42576 + - 42577 + - 42576 +- - 42578 + - 42579 + - 42578 +- - 42578 + - 42579 + - 42578 +- - 42580 + - 42581 + - 42580 +- - 42580 + - 42581 + - 42580 +- - 42582 + - 42583 + - 42582 +- - 42582 + - 42583 + - 42582 +- - 42584 + - 42585 + - 42584 +- - 42584 + - 42585 + - 42584 +- - 42586 + - 42587 + - 42586 +- - 42586 + - 42587 + - 42586 +- - 42588 + - 42589 + - 42588 +- - 42588 + - 42589 + - 42588 +- - 42590 + - 42591 + - 42590 +- - 42590 + - 42591 + - 42590 +- - 42592 + - 42593 + - 42592 +- - 42592 + - 42593 + - 42592 +- - 42594 + - 42595 + - 42594 +- - 42594 + - 42595 + - 42594 +- - 42596 + - 42597 + - 42596 +- - 42596 + - 42597 + - 42596 +- - 42598 + - 42599 + - 42598 +- - 42598 + - 42599 + - 42598 +- - 42600 + - 42601 + - 42600 +- - 42600 + - 42601 + - 42600 +- - 42602 + - 42603 + - 42602 +- - 42602 + - 42603 + - 42602 +- - 42604 + - 42605 + - 42604 +- - 42604 + - 42605 + - 42604 +- - 42606 + - 42606 + - 42606 +- - 42607 + - 42607 + - 42607 +- - 42608 + - 42608 + - 42608 +- - 42609 + - 42609 + - 42609 +- - 42610 + - 42610 + - 42610 +- - 42611 + - 42611 + - 42611 +- - 42612 + - 42612 + - 42612 +- - 42613 + - 42613 + - 42613 +- - 42614 + - 42614 + - 42614 +- - 42615 + - 42615 + - 42615 +- - 42616 + - 42616 + - 42616 +- - 42617 + - 42617 + - 42617 +- - 42618 + - 42618 + - 42618 +- - 42619 + - 42619 + - 42619 +- - 42620 + - 42620 + - 42620 +- - 42621 + - 42621 + - 42621 +- - 42622 + - 42622 + - 42622 +- - 42623 + - 42623 + - 42623 +- - 42624 + - 42625 + - 42624 +- - 42624 + - 42625 + - 42624 +- - 42626 + - 42627 + - 42626 +- - 42626 + - 42627 + - 42626 +- - 42628 + - 42629 + - 42628 +- - 42628 + - 42629 + - 42628 +- - 42630 + - 42631 + - 42630 +- - 42630 + - 42631 + - 42630 +- - 42632 + - 42633 + - 42632 +- - 42632 + - 42633 + - 42632 +- - 42634 + - 42635 + - 42634 +- - 42634 + - 42635 + - 42634 +- - 42636 + - 42637 + - 42636 +- - 42636 + - 42637 + - 42636 +- - 42638 + - 42639 + - 42638 +- - 42638 + - 42639 + - 42638 +- - 42640 + - 42641 + - 42640 +- - 42640 + - 42641 + - 42640 +- - 42642 + - 42643 + - 42642 +- - 42642 + - 42643 + - 42642 +- - 42644 + - 42645 + - 42644 +- - 42644 + - 42645 + - 42644 +- - 42646 + - 42647 + - 42646 +- - 42646 + - 42647 + - 42646 +- - 42648 + - 42649 + - 42648 +- - 42648 + - 42649 + - 42648 +- - 42650 + - 42651 + - 42650 +- - 42650 + - 42651 + - 42650 +- - 42652 + - 42652 + - 42652 +- - 42653 + - 42653 + - 42653 +- - 42654 + - 42654 + - 42654 +- - 42655 + - 42655 + - 42655 +- - 42656 + - 42656 + - 42656 +- - 42657 + - 42657 + - 42657 +- - 42658 + - 42658 + - 42658 +- - 42659 + - 42659 + - 42659 +- - 42660 + - 42660 + - 42660 +- - 42661 + - 42661 + - 42661 +- - 42662 + - 42662 + - 42662 +- - 42663 + - 42663 + - 42663 +- - 42664 + - 42664 + - 42664 +- - 42665 + - 42665 + - 42665 +- - 42666 + - 42666 + - 42666 +- - 42667 + - 42667 + - 42667 +- - 42668 + - 42668 + - 42668 +- - 42669 + - 42669 + - 42669 +- - 42670 + - 42670 + - 42670 +- - 42671 + - 42671 + - 42671 +- - 42672 + - 42672 + - 42672 +- - 42673 + - 42673 + - 42673 +- - 42674 + - 42674 + - 42674 +- - 42675 + - 42675 + - 42675 +- - 42676 + - 42676 + - 42676 +- - 42677 + - 42677 + - 42677 +- - 42678 + - 42678 + - 42678 +- - 42679 + - 42679 + - 42679 +- - 42680 + - 42680 + - 42680 +- - 42681 + - 42681 + - 42681 +- - 42682 + - 42682 + - 42682 +- - 42683 + - 42683 + - 42683 +- - 42684 + - 42684 + - 42684 +- - 42685 + - 42685 + - 42685 +- - 42686 + - 42686 + - 42686 +- - 42687 + - 42687 + - 42687 +- - 42688 + - 42688 + - 42688 +- - 42689 + - 42689 + - 42689 +- - 42690 + - 42690 + - 42690 +- - 42691 + - 42691 + - 42691 +- - 42692 + - 42692 + - 42692 +- - 42693 + - 42693 + - 42693 +- - 42694 + - 42694 + - 42694 +- - 42695 + - 42695 + - 42695 +- - 42696 + - 42696 + - 42696 +- - 42697 + - 42697 + - 42697 +- - 42698 + - 42698 + - 42698 +- - 42699 + - 42699 + - 42699 +- - 42700 + - 42700 + - 42700 +- - 42701 + - 42701 + - 42701 +- - 42702 + - 42702 + - 42702 +- - 42703 + - 42703 + - 42703 +- - 42704 + - 42704 + - 42704 +- - 42705 + - 42705 + - 42705 +- - 42706 + - 42706 + - 42706 +- - 42707 + - 42707 + - 42707 +- - 42708 + - 42708 + - 42708 +- - 42709 + - 42709 + - 42709 +- - 42710 + - 42710 + - 42710 +- - 42711 + - 42711 + - 42711 +- - 42712 + - 42712 + - 42712 +- - 42713 + - 42713 + - 42713 +- - 42714 + - 42714 + - 42714 +- - 42715 + - 42715 + - 42715 +- - 42716 + - 42716 + - 42716 +- - 42717 + - 42717 + - 42717 +- - 42718 + - 42718 + - 42718 +- - 42719 + - 42719 + - 42719 +- - 42720 + - 42720 + - 42720 +- - 42721 + - 42721 + - 42721 +- - 42722 + - 42722 + - 42722 +- - 42723 + - 42723 + - 42723 +- - 42724 + - 42724 + - 42724 +- - 42725 + - 42725 + - 42725 +- - 42726 + - 42726 + - 42726 +- - 42727 + - 42727 + - 42727 +- - 42728 + - 42728 + - 42728 +- - 42729 + - 42729 + - 42729 +- - 42730 + - 42730 + - 42730 +- - 42731 + - 42731 + - 42731 +- - 42732 + - 42732 + - 42732 +- - 42733 + - 42733 + - 42733 +- - 42734 + - 42734 + - 42734 +- - 42735 + - 42735 + - 42735 +- - 42736 + - 42736 + - 42736 +- - 42737 + - 42737 + - 42737 +- - 42738 + - 42738 + - 42738 +- - 42739 + - 42739 + - 42739 +- - 42740 + - 42740 + - 42740 +- - 42741 + - 42741 + - 42741 +- - 42742 + - 42742 + - 42742 +- - 42743 + - 42743 + - 42743 +- - 42744 + - 42744 + - 42744 +- - 42745 + - 42745 + - 42745 +- - 42746 + - 42746 + - 42746 +- - 42747 + - 42747 + - 42747 +- - 42748 + - 42748 + - 42748 +- - 42749 + - 42749 + - 42749 +- - 42750 + - 42750 + - 42750 +- - 42751 + - 42751 + - 42751 +u900p0A7: +- - 42752 + - 42752 + - 42752 +- - 42753 + - 42753 + - 42753 +- - 42754 + - 42754 + - 42754 +- - 42755 + - 42755 + - 42755 +- - 42756 + - 42756 + - 42756 +- - 42757 + - 42757 + - 42757 +- - 42758 + - 42758 + - 42758 +- - 42759 + - 42759 + - 42759 +- - 42760 + - 42760 + - 42760 +- - 42761 + - 42761 + - 42761 +- - 42762 + - 42762 + - 42762 +- - 42763 + - 42763 + - 42763 +- - 42764 + - 42764 + - 42764 +- - 42765 + - 42765 + - 42765 +- - 42766 + - 42766 + - 42766 +- - 42767 + - 42767 + - 42767 +- - 42768 + - 42768 + - 42768 +- - 42769 + - 42769 + - 42769 +- - 42770 + - 42770 + - 42770 +- - 42771 + - 42771 + - 42771 +- - 42772 + - 42772 + - 42772 +- - 42773 + - 42773 + - 42773 +- - 42774 + - 42774 + - 42774 +- - 42775 + - 42775 + - 42775 +- - 42776 + - 42776 + - 42776 +- - 42777 + - 42777 + - 42777 +- - 42778 + - 42778 + - 42778 +- - 42779 + - 42779 + - 42779 +- - 42780 + - 42780 + - 42780 +- - 42781 + - 42781 + - 42781 +- - 42782 + - 42782 + - 42782 +- - 42783 + - 42783 + - 42783 +- - 42784 + - 42784 + - 42784 +- - 42785 + - 42785 + - 42785 +- - 42786 + - 42787 + - 42786 +- - 42786 + - 42787 + - 42786 +- - 42788 + - 42789 + - 42788 +- - 42788 + - 42789 + - 42788 +- - 42790 + - 42791 + - 42790 +- - 42790 + - 42791 + - 42790 +- - 42792 + - 42793 + - 42792 +- - 42792 + - 42793 + - 42792 +- - 42794 + - 42795 + - 42794 +- - 42794 + - 42795 + - 42794 +- - 42796 + - 42797 + - 42796 +- - 42796 + - 42797 + - 42796 +- - 42798 + - 42799 + - 42798 +- - 42798 + - 42799 + - 42798 +- - 42800 + - 42800 + - 42800 +- - 42801 + - 42801 + - 42801 +- - 42802 + - 42803 + - 42802 +- - 42802 + - 42803 + - 42802 +- - 42804 + - 42805 + - 42804 +- - 42804 + - 42805 + - 42804 +- - 42806 + - 42807 + - 42806 +- - 42806 + - 42807 + - 42806 +- - 42808 + - 42809 + - 42808 +- - 42808 + - 42809 + - 42808 +- - 42810 + - 42811 + - 42810 +- - 42810 + - 42811 + - 42810 +- - 42812 + - 42813 + - 42812 +- - 42812 + - 42813 + - 42812 +- - 42814 + - 42815 + - 42814 +- - 42814 + - 42815 + - 42814 +- - 42816 + - 42817 + - 42816 +- - 42816 + - 42817 + - 42816 +- - 42818 + - 42819 + - 42818 +- - 42818 + - 42819 + - 42818 +- - 42820 + - 42821 + - 42820 +- - 42820 + - 42821 + - 42820 +- - 42822 + - 42823 + - 42822 +- - 42822 + - 42823 + - 42822 +- - 42824 + - 42825 + - 42824 +- - 42824 + - 42825 + - 42824 +- - 42826 + - 42827 + - 42826 +- - 42826 + - 42827 + - 42826 +- - 42828 + - 42829 + - 42828 +- - 42828 + - 42829 + - 42828 +- - 42830 + - 42831 + - 42830 +- - 42830 + - 42831 + - 42830 +- - 42832 + - 42833 + - 42832 +- - 42832 + - 42833 + - 42832 +- - 42834 + - 42835 + - 42834 +- - 42834 + - 42835 + - 42834 +- - 42836 + - 42837 + - 42836 +- - 42836 + - 42837 + - 42836 +- - 42838 + - 42839 + - 42838 +- - 42838 + - 42839 + - 42838 +- - 42840 + - 42841 + - 42840 +- - 42840 + - 42841 + - 42840 +- - 42842 + - 42843 + - 42842 +- - 42842 + - 42843 + - 42842 +- - 42844 + - 42845 + - 42844 +- - 42844 + - 42845 + - 42844 +- - 42846 + - 42847 + - 42846 +- - 42846 + - 42847 + - 42846 +- - 42848 + - 42849 + - 42848 +- - 42848 + - 42849 + - 42848 +- - 42850 + - 42851 + - 42850 +- - 42850 + - 42851 + - 42850 +- - 42852 + - 42853 + - 42852 +- - 42852 + - 42853 + - 42852 +- - 42854 + - 42855 + - 42854 +- - 42854 + - 42855 + - 42854 +- - 42856 + - 42857 + - 42856 +- - 42856 + - 42857 + - 42856 +- - 42858 + - 42859 + - 42858 +- - 42858 + - 42859 + - 42858 +- - 42860 + - 42861 + - 42860 +- - 42860 + - 42861 + - 42860 +- - 42862 + - 42863 + - 42862 +- - 42862 + - 42863 + - 42862 +- - 42864 + - 42864 + - 42864 +- - 42865 + - 42865 + - 42865 +- - 42866 + - 42866 + - 42866 +- - 42867 + - 42867 + - 42867 +- - 42868 + - 42868 + - 42868 +- - 42869 + - 42869 + - 42869 +- - 42870 + - 42870 + - 42870 +- - 42871 + - 42871 + - 42871 +- - 42872 + - 42872 + - 42872 +- - 42873 + - 42874 + - 42873 +- - 42873 + - 42874 + - 42873 +- - 42875 + - 42876 + - 42875 +- - 42875 + - 42876 + - 42875 +- - 42877 + - 7545 + - 42877 +- - 42878 + - 42879 + - 42878 +- - 42878 + - 42879 + - 42878 +- - 42880 + - 42881 + - 42880 +- - 42880 + - 42881 + - 42880 +- - 42882 + - 42883 + - 42882 +- - 42882 + - 42883 + - 42882 +- - 42884 + - 42885 + - 42884 +- - 42884 + - 42885 + - 42884 +- - 42886 + - 42887 + - 42886 +- - 42886 + - 42887 + - 42886 +- - 42888 + - 42888 + - 42888 +- - 42889 + - 42889 + - 42889 +- - 42890 + - 42890 + - 42890 +- - 42891 + - 42892 + - 42891 +- - 42891 + - 42892 + - 42891 +- - 42893 + - 613 + - 42893 +- - 42894 + - 42894 + - 42894 +- - 42895 + - 42895 + - 42895 +- - 42896 + - 42897 + - 42896 +- - 42896 + - 42897 + - 42896 +- - 42898 + - 42899 + - 42898 +- - 42898 + - 42899 + - 42898 +- - 42900 + - 42900 + - 42900 +- - 42901 + - 42901 + - 42901 +- - 42902 + - 42903 + - 42902 +- - 42902 + - 42903 + - 42902 +- - 42904 + - 42905 + - 42904 +- - 42904 + - 42905 + - 42904 +- - 42906 + - 42907 + - 42906 +- - 42906 + - 42907 + - 42906 +- - 42908 + - 42909 + - 42908 +- - 42908 + - 42909 + - 42908 +- - 42910 + - 42911 + - 42910 +- - 42910 + - 42911 + - 42910 +- - 42912 + - 42913 + - 42912 +- - 42912 + - 42913 + - 42912 +- - 42914 + - 42915 + - 42914 +- - 42914 + - 42915 + - 42914 +- - 42916 + - 42917 + - 42916 +- - 42916 + - 42917 + - 42916 +- - 42918 + - 42919 + - 42918 +- - 42918 + - 42919 + - 42918 +- - 42920 + - 42921 + - 42920 +- - 42920 + - 42921 + - 42920 +- - 42922 + - 614 + - 42922 +- - 42923 + - 604 + - 42923 +- - 42924 + - 609 + - 42924 +- - 42925 + - 620 + - 42925 +- - 42926 + - 618 + - 42926 +- - 42927 + - 42927 + - 42927 +- - 42928 + - 670 + - 42928 +- - 42929 + - 647 + - 42929 +- - 42930 + - 669 + - 42930 +- - 42931 + - 43859 + - 42931 +- - 42932 + - 42933 + - 42932 +- - 42932 + - 42933 + - 42932 +- - 42934 + - 42935 + - 42934 +- - 42934 + - 42935 + - 42934 +- - 42936 + - 42936 + - 42936 +- - 42937 + - 42937 + - 42937 +- - 42938 + - 42938 + - 42938 +- - 42939 + - 42939 + - 42939 +- - 42940 + - 42940 + - 42940 +- - 42941 + - 42941 + - 42941 +- - 42942 + - 42942 + - 42942 +- - 42943 + - 42943 + - 42943 +- - 42944 + - 42944 + - 42944 +- - 42945 + - 42945 + - 42945 +- - 42946 + - 42946 + - 42946 +- - 42947 + - 42947 + - 42947 +- - 42948 + - 42948 + - 42948 +- - 42949 + - 42949 + - 42949 +- - 42950 + - 42950 + - 42950 +- - 42951 + - 42951 + - 42951 +- - 42952 + - 42952 + - 42952 +- - 42953 + - 42953 + - 42953 +- - 42954 + - 42954 + - 42954 +- - 42955 + - 42955 + - 42955 +- - 42956 + - 42956 + - 42956 +- - 42957 + - 42957 + - 42957 +- - 42958 + - 42958 + - 42958 +- - 42959 + - 42959 + - 42959 +- - 42960 + - 42960 + - 42960 +- - 42961 + - 42961 + - 42961 +- - 42962 + - 42962 + - 42962 +- - 42963 + - 42963 + - 42963 +- - 42964 + - 42964 + - 42964 +- - 42965 + - 42965 + - 42965 +- - 42966 + - 42966 + - 42966 +- - 42967 + - 42967 + - 42967 +- - 42968 + - 42968 + - 42968 +- - 42969 + - 42969 + - 42969 +- - 42970 + - 42970 + - 42970 +- - 42971 + - 42971 + - 42971 +- - 42972 + - 42972 + - 42972 +- - 42973 + - 42973 + - 42973 +- - 42974 + - 42974 + - 42974 +- - 42975 + - 42975 + - 42975 +- - 42976 + - 42976 + - 42976 +- - 42977 + - 42977 + - 42977 +- - 42978 + - 42978 + - 42978 +- - 42979 + - 42979 + - 42979 +- - 42980 + - 42980 + - 42980 +- - 42981 + - 42981 + - 42981 +- - 42982 + - 42982 + - 42982 +- - 42983 + - 42983 + - 42983 +- - 42984 + - 42984 + - 42984 +- - 42985 + - 42985 + - 42985 +- - 42986 + - 42986 + - 42986 +- - 42987 + - 42987 + - 42987 +- - 42988 + - 42988 + - 42988 +- - 42989 + - 42989 + - 42989 +- - 42990 + - 42990 + - 42990 +- - 42991 + - 42991 + - 42991 +- - 42992 + - 42992 + - 42992 +- - 42993 + - 42993 + - 42993 +- - 42994 + - 42994 + - 42994 +- - 42995 + - 42995 + - 42995 +- - 42996 + - 42996 + - 42996 +- - 42997 + - 42997 + - 42997 +- - 42998 + - 42998 + - 42998 +- - 42999 + - 42999 + - 42999 +- - 43000 + - 43000 + - 43000 +- - 43001 + - 43001 + - 43001 +- - 43002 + - 43002 + - 43002 +- - 43003 + - 43003 + - 43003 +- - 43004 + - 43004 + - 43004 +- - 43005 + - 43005 + - 43005 +- - 43006 + - 43006 + - 43006 +- - 43007 + - 43007 + - 43007 +u900p0AB: +- - 43776 + - 43776 + - 43776 +- - 43777 + - 43777 + - 43777 +- - 43778 + - 43778 + - 43778 +- - 43779 + - 43779 + - 43779 +- - 43780 + - 43780 + - 43780 +- - 43781 + - 43781 + - 43781 +- - 43782 + - 43782 + - 43782 +- - 43783 + - 43783 + - 43783 +- - 43784 + - 43784 + - 43784 +- - 43785 + - 43785 + - 43785 +- - 43786 + - 43786 + - 43786 +- - 43787 + - 43787 + - 43787 +- - 43788 + - 43788 + - 43788 +- - 43789 + - 43789 + - 43789 +- - 43790 + - 43790 + - 43790 +- - 43791 + - 43791 + - 43791 +- - 43792 + - 43792 + - 43792 +- - 43793 + - 43793 + - 43793 +- - 43794 + - 43794 + - 43794 +- - 43795 + - 43795 + - 43795 +- - 43796 + - 43796 + - 43796 +- - 43797 + - 43797 + - 43797 +- - 43798 + - 43798 + - 43798 +- - 43799 + - 43799 + - 43799 +- - 43800 + - 43800 + - 43800 +- - 43801 + - 43801 + - 43801 +- - 43802 + - 43802 + - 43802 +- - 43803 + - 43803 + - 43803 +- - 43804 + - 43804 + - 43804 +- - 43805 + - 43805 + - 43805 +- - 43806 + - 43806 + - 43806 +- - 43807 + - 43807 + - 43807 +- - 43808 + - 43808 + - 43808 +- - 43809 + - 43809 + - 43809 +- - 43810 + - 43810 + - 43810 +- - 43811 + - 43811 + - 43811 +- - 43812 + - 43812 + - 43812 +- - 43813 + - 43813 + - 43813 +- - 43814 + - 43814 + - 43814 +- - 43815 + - 43815 + - 43815 +- - 43816 + - 43816 + - 43816 +- - 43817 + - 43817 + - 43817 +- - 43818 + - 43818 + - 43818 +- - 43819 + - 43819 + - 43819 +- - 43820 + - 43820 + - 43820 +- - 43821 + - 43821 + - 43821 +- - 43822 + - 43822 + - 43822 +- - 43823 + - 43823 + - 43823 +- - 43824 + - 43824 + - 43824 +- - 43825 + - 43825 + - 43825 +- - 43826 + - 43826 + - 43826 +- - 43827 + - 43827 + - 43827 +- - 43828 + - 43828 + - 43828 +- - 43829 + - 43829 + - 43829 +- - 43830 + - 43830 + - 43830 +- - 43831 + - 43831 + - 43831 +- - 43832 + - 43832 + - 43832 +- - 43833 + - 43833 + - 43833 +- - 43834 + - 43834 + - 43834 +- - 43835 + - 43835 + - 43835 +- - 43836 + - 43836 + - 43836 +- - 43837 + - 43837 + - 43837 +- - 43838 + - 43838 + - 43838 +- - 43839 + - 43839 + - 43839 +- - 43840 + - 43840 + - 43840 +- - 43841 + - 43841 + - 43841 +- - 43842 + - 43842 + - 43842 +- - 43843 + - 43843 + - 43843 +- - 43844 + - 43844 + - 43844 +- - 43845 + - 43845 + - 43845 +- - 43846 + - 43846 + - 43846 +- - 43847 + - 43847 + - 43847 +- - 43848 + - 43848 + - 43848 +- - 43849 + - 43849 + - 43849 +- - 43850 + - 43850 + - 43850 +- - 43851 + - 43851 + - 43851 +- - 43852 + - 43852 + - 43852 +- - 43853 + - 43853 + - 43853 +- - 43854 + - 43854 + - 43854 +- - 43855 + - 43855 + - 43855 +- - 43856 + - 43856 + - 43856 +- - 43857 + - 43857 + - 43857 +- - 43858 + - 43858 + - 43858 +- - 42931 + - 43859 + - 42931 +- - 43860 + - 43860 + - 43860 +- - 43861 + - 43861 + - 43861 +- - 43862 + - 43862 + - 43862 +- - 43863 + - 43863 + - 43863 +- - 43864 + - 43864 + - 43864 +- - 43865 + - 43865 + - 43865 +- - 43866 + - 43866 + - 43866 +- - 43867 + - 43867 + - 43867 +- - 43868 + - 43868 + - 43868 +- - 43869 + - 43869 + - 43869 +- - 43870 + - 43870 + - 43870 +- - 43871 + - 43871 + - 43871 +- - 43872 + - 43872 + - 43872 +- - 43873 + - 43873 + - 43873 +- - 43874 + - 43874 + - 43874 +- - 43875 + - 43875 + - 43875 +- - 43876 + - 43876 + - 43876 +- - 43877 + - 43877 + - 43877 +- - 43878 + - 43878 + - 43878 +- - 43879 + - 43879 + - 43879 +- - 43880 + - 43880 + - 43880 +- - 43881 + - 43881 + - 43881 +- - 43882 + - 43882 + - 43882 +- - 43883 + - 43883 + - 43883 +- - 43884 + - 43884 + - 43884 +- - 43885 + - 43885 + - 43885 +- - 43886 + - 43886 + - 43886 +- - 43887 + - 43887 + - 43887 +- - 5024 + - 43888 + - 5024 +- - 5025 + - 43889 + - 5025 +- - 5026 + - 43890 + - 5026 +- - 5027 + - 43891 + - 5027 +- - 5028 + - 43892 + - 5028 +- - 5029 + - 43893 + - 5029 +- - 5030 + - 43894 + - 5030 +- - 5031 + - 43895 + - 5031 +- - 5032 + - 43896 + - 5032 +- - 5033 + - 43897 + - 5033 +- - 5034 + - 43898 + - 5034 +- - 5035 + - 43899 + - 5035 +- - 5036 + - 43900 + - 5036 +- - 5037 + - 43901 + - 5037 +- - 5038 + - 43902 + - 5038 +- - 5039 + - 43903 + - 5039 +- - 5040 + - 43904 + - 5040 +- - 5041 + - 43905 + - 5041 +- - 5042 + - 43906 + - 5042 +- - 5043 + - 43907 + - 5043 +- - 5044 + - 43908 + - 5044 +- - 5045 + - 43909 + - 5045 +- - 5046 + - 43910 + - 5046 +- - 5047 + - 43911 + - 5047 +- - 5048 + - 43912 + - 5048 +- - 5049 + - 43913 + - 5049 +- - 5050 + - 43914 + - 5050 +- - 5051 + - 43915 + - 5051 +- - 5052 + - 43916 + - 5052 +- - 5053 + - 43917 + - 5053 +- - 5054 + - 43918 + - 5054 +- - 5055 + - 43919 + - 5055 +- - 5056 + - 43920 + - 5056 +- - 5057 + - 43921 + - 5057 +- - 5058 + - 43922 + - 5058 +- - 5059 + - 43923 + - 5059 +- - 5060 + - 43924 + - 5060 +- - 5061 + - 43925 + - 5061 +- - 5062 + - 43926 + - 5062 +- - 5063 + - 43927 + - 5063 +- - 5064 + - 43928 + - 5064 +- - 5065 + - 43929 + - 5065 +- - 5066 + - 43930 + - 5066 +- - 5067 + - 43931 + - 5067 +- - 5068 + - 43932 + - 5068 +- - 5069 + - 43933 + - 5069 +- - 5070 + - 43934 + - 5070 +- - 5071 + - 43935 + - 5071 +- - 5072 + - 43936 + - 5072 +- - 5073 + - 43937 + - 5073 +- - 5074 + - 43938 + - 5074 +- - 5075 + - 43939 + - 5075 +- - 5076 + - 43940 + - 5076 +- - 5077 + - 43941 + - 5077 +- - 5078 + - 43942 + - 5078 +- - 5079 + - 43943 + - 5079 +- - 5080 + - 43944 + - 5080 +- - 5081 + - 43945 + - 5081 +- - 5082 + - 43946 + - 5082 +- - 5083 + - 43947 + - 5083 +- - 5084 + - 43948 + - 5084 +- - 5085 + - 43949 + - 5085 +- - 5086 + - 43950 + - 5086 +- - 5087 + - 43951 + - 5087 +- - 5088 + - 43952 + - 5088 +- - 5089 + - 43953 + - 5089 +- - 5090 + - 43954 + - 5090 +- - 5091 + - 43955 + - 5091 +- - 5092 + - 43956 + - 5092 +- - 5093 + - 43957 + - 5093 +- - 5094 + - 43958 + - 5094 +- - 5095 + - 43959 + - 5095 +- - 5096 + - 43960 + - 5096 +- - 5097 + - 43961 + - 5097 +- - 5098 + - 43962 + - 5098 +- - 5099 + - 43963 + - 5099 +- - 5100 + - 43964 + - 5100 +- - 5101 + - 43965 + - 5101 +- - 5102 + - 43966 + - 5102 +- - 5103 + - 43967 + - 5103 +- - 43968 + - 43968 + - 43968 +- - 43969 + - 43969 + - 43969 +- - 43970 + - 43970 + - 43970 +- - 43971 + - 43971 + - 43971 +- - 43972 + - 43972 + - 43972 +- - 43973 + - 43973 + - 43973 +- - 43974 + - 43974 + - 43974 +- - 43975 + - 43975 + - 43975 +- - 43976 + - 43976 + - 43976 +- - 43977 + - 43977 + - 43977 +- - 43978 + - 43978 + - 43978 +- - 43979 + - 43979 + - 43979 +- - 43980 + - 43980 + - 43980 +- - 43981 + - 43981 + - 43981 +- - 43982 + - 43982 + - 43982 +- - 43983 + - 43983 + - 43983 +- - 43984 + - 43984 + - 43984 +- - 43985 + - 43985 + - 43985 +- - 43986 + - 43986 + - 43986 +- - 43987 + - 43987 + - 43987 +- - 43988 + - 43988 + - 43988 +- - 43989 + - 43989 + - 43989 +- - 43990 + - 43990 + - 43990 +- - 43991 + - 43991 + - 43991 +- - 43992 + - 43992 + - 43992 +- - 43993 + - 43993 + - 43993 +- - 43994 + - 43994 + - 43994 +- - 43995 + - 43995 + - 43995 +- - 43996 + - 43996 + - 43996 +- - 43997 + - 43997 + - 43997 +- - 43998 + - 43998 + - 43998 +- - 43999 + - 43999 + - 43999 +- - 44000 + - 44000 + - 44000 +- - 44001 + - 44001 + - 44001 +- - 44002 + - 44002 + - 44002 +- - 44003 + - 44003 + - 44003 +- - 44004 + - 44004 + - 44004 +- - 44005 + - 44005 + - 44005 +- - 44006 + - 44006 + - 44006 +- - 44007 + - 44007 + - 44007 +- - 44008 + - 44008 + - 44008 +- - 44009 + - 44009 + - 44009 +- - 44010 + - 44010 + - 44010 +- - 44011 + - 44011 + - 44011 +- - 44012 + - 44012 + - 44012 +- - 44013 + - 44013 + - 44013 +- - 44014 + - 44014 + - 44014 +- - 44015 + - 44015 + - 44015 +- - 44016 + - 44016 + - 44016 +- - 44017 + - 44017 + - 44017 +- - 44018 + - 44018 + - 44018 +- - 44019 + - 44019 + - 44019 +- - 44020 + - 44020 + - 44020 +- - 44021 + - 44021 + - 44021 +- - 44022 + - 44022 + - 44022 +- - 44023 + - 44023 + - 44023 +- - 44024 + - 44024 + - 44024 +- - 44025 + - 44025 + - 44025 +- - 44026 + - 44026 + - 44026 +- - 44027 + - 44027 + - 44027 +- - 44028 + - 44028 + - 44028 +- - 44029 + - 44029 + - 44029 +- - 44030 + - 44030 + - 44030 +- - 44031 + - 44031 + - 44031 +u900p0FF: +- - 65280 + - 65280 + - 65280 +- - 65281 + - 65281 + - 65281 +- - 65282 + - 65282 + - 65282 +- - 65283 + - 65283 + - 65283 +- - 65284 + - 65284 + - 65284 +- - 65285 + - 65285 + - 65285 +- - 65286 + - 65286 + - 65286 +- - 65287 + - 65287 + - 65287 +- - 65288 + - 65288 + - 65288 +- - 65289 + - 65289 + - 65289 +- - 65290 + - 65290 + - 65290 +- - 65291 + - 65291 + - 65291 +- - 65292 + - 65292 + - 65292 +- - 65293 + - 65293 + - 65293 +- - 65294 + - 65294 + - 65294 +- - 65295 + - 65295 + - 65295 +- - 65296 + - 65296 + - 65296 +- - 65297 + - 65297 + - 65297 +- - 65298 + - 65298 + - 65298 +- - 65299 + - 65299 + - 65299 +- - 65300 + - 65300 + - 65300 +- - 65301 + - 65301 + - 65301 +- - 65302 + - 65302 + - 65302 +- - 65303 + - 65303 + - 65303 +- - 65304 + - 65304 + - 65304 +- - 65305 + - 65305 + - 65305 +- - 65306 + - 65306 + - 65306 +- - 65307 + - 65307 + - 65307 +- - 65308 + - 65308 + - 65308 +- - 65309 + - 65309 + - 65309 +- - 65310 + - 65310 + - 65310 +- - 65311 + - 65311 + - 65311 +- - 65312 + - 65312 + - 65312 +- - 65313 + - 65345 + - 65313 +- - 65314 + - 65346 + - 65314 +- - 65315 + - 65347 + - 65315 +- - 65316 + - 65348 + - 65316 +- - 65317 + - 65349 + - 65317 +- - 65318 + - 65350 + - 65318 +- - 65319 + - 65351 + - 65319 +- - 65320 + - 65352 + - 65320 +- - 65321 + - 65353 + - 65321 +- - 65322 + - 65354 + - 65322 +- - 65323 + - 65355 + - 65323 +- - 65324 + - 65356 + - 65324 +- - 65325 + - 65357 + - 65325 +- - 65326 + - 65358 + - 65326 +- - 65327 + - 65359 + - 65327 +- - 65328 + - 65360 + - 65328 +- - 65329 + - 65361 + - 65329 +- - 65330 + - 65362 + - 65330 +- - 65331 + - 65363 + - 65331 +- - 65332 + - 65364 + - 65332 +- - 65333 + - 65365 + - 65333 +- - 65334 + - 65366 + - 65334 +- - 65335 + - 65367 + - 65335 +- - 65336 + - 65368 + - 65336 +- - 65337 + - 65369 + - 65337 +- - 65338 + - 65370 + - 65338 +- - 65339 + - 65339 + - 65339 +- - 65340 + - 65340 + - 65340 +- - 65341 + - 65341 + - 65341 +- - 65342 + - 65342 + - 65342 +- - 65343 + - 65343 + - 65343 +- - 65344 + - 65344 + - 65344 +- - 65313 + - 65345 + - 65313 +- - 65314 + - 65346 + - 65314 +- - 65315 + - 65347 + - 65315 +- - 65316 + - 65348 + - 65316 +- - 65317 + - 65349 + - 65317 +- - 65318 + - 65350 + - 65318 +- - 65319 + - 65351 + - 65319 +- - 65320 + - 65352 + - 65320 +- - 65321 + - 65353 + - 65321 +- - 65322 + - 65354 + - 65322 +- - 65323 + - 65355 + - 65323 +- - 65324 + - 65356 + - 65324 +- - 65325 + - 65357 + - 65325 +- - 65326 + - 65358 + - 65326 +- - 65327 + - 65359 + - 65327 +- - 65328 + - 65360 + - 65328 +- - 65329 + - 65361 + - 65329 +- - 65330 + - 65362 + - 65330 +- - 65331 + - 65363 + - 65331 +- - 65332 + - 65364 + - 65332 +- - 65333 + - 65365 + - 65333 +- - 65334 + - 65366 + - 65334 +- - 65335 + - 65367 + - 65335 +- - 65336 + - 65368 + - 65336 +- - 65337 + - 65369 + - 65337 +- - 65338 + - 65370 + - 65338 +- - 65371 + - 65371 + - 65371 +- - 65372 + - 65372 + - 65372 +- - 65373 + - 65373 + - 65373 +- - 65374 + - 65374 + - 65374 +- - 65375 + - 65375 + - 65375 +- - 65376 + - 65376 + - 65376 +- - 65377 + - 65377 + - 65377 +- - 65378 + - 65378 + - 65378 +- - 65379 + - 65379 + - 65379 +- - 65380 + - 65380 + - 65380 +- - 65381 + - 65381 + - 65381 +- - 65382 + - 65382 + - 65382 +- - 65383 + - 65383 + - 65383 +- - 65384 + - 65384 + - 65384 +- - 65385 + - 65385 + - 65385 +- - 65386 + - 65386 + - 65386 +- - 65387 + - 65387 + - 65387 +- - 65388 + - 65388 + - 65388 +- - 65389 + - 65389 + - 65389 +- - 65390 + - 65390 + - 65390 +- - 65391 + - 65391 + - 65391 +- - 65392 + - 65392 + - 65392 +- - 65393 + - 65393 + - 65393 +- - 65394 + - 65394 + - 65394 +- - 65395 + - 65395 + - 65395 +- - 65396 + - 65396 + - 65396 +- - 65397 + - 65397 + - 65397 +- - 65398 + - 65398 + - 65398 +- - 65399 + - 65399 + - 65399 +- - 65400 + - 65400 + - 65400 +- - 65401 + - 65401 + - 65401 +- - 65402 + - 65402 + - 65402 +- - 65403 + - 65403 + - 65403 +- - 65404 + - 65404 + - 65404 +- - 65405 + - 65405 + - 65405 +- - 65406 + - 65406 + - 65406 +- - 65407 + - 65407 + - 65407 +- - 65408 + - 65408 + - 65408 +- - 65409 + - 65409 + - 65409 +- - 65410 + - 65410 + - 65410 +- - 65411 + - 65411 + - 65411 +- - 65412 + - 65412 + - 65412 +- - 65413 + - 65413 + - 65413 +- - 65414 + - 65414 + - 65414 +- - 65415 + - 65415 + - 65415 +- - 65416 + - 65416 + - 65416 +- - 65417 + - 65417 + - 65417 +- - 65418 + - 65418 + - 65418 +- - 65419 + - 65419 + - 65419 +- - 65420 + - 65420 + - 65420 +- - 65421 + - 65421 + - 65421 +- - 65422 + - 65422 + - 65422 +- - 65423 + - 65423 + - 65423 +- - 65424 + - 65424 + - 65424 +- - 65425 + - 65425 + - 65425 +- - 65426 + - 65426 + - 65426 +- - 65427 + - 65427 + - 65427 +- - 65428 + - 65428 + - 65428 +- - 65429 + - 65429 + - 65429 +- - 65430 + - 65430 + - 65430 +- - 65431 + - 65431 + - 65431 +- - 65432 + - 65432 + - 65432 +- - 65433 + - 65433 + - 65433 +- - 65434 + - 65434 + - 65434 +- - 65435 + - 65435 + - 65435 +- - 65436 + - 65436 + - 65436 +- - 65437 + - 65437 + - 65437 +- - 65438 + - 65438 + - 65438 +- - 65439 + - 65439 + - 65439 +- - 65440 + - 65440 + - 65440 +- - 65441 + - 65441 + - 65441 +- - 65442 + - 65442 + - 65442 +- - 65443 + - 65443 + - 65443 +- - 65444 + - 65444 + - 65444 +- - 65445 + - 65445 + - 65445 +- - 65446 + - 65446 + - 65446 +- - 65447 + - 65447 + - 65447 +- - 65448 + - 65448 + - 65448 +- - 65449 + - 65449 + - 65449 +- - 65450 + - 65450 + - 65450 +- - 65451 + - 65451 + - 65451 +- - 65452 + - 65452 + - 65452 +- - 65453 + - 65453 + - 65453 +- - 65454 + - 65454 + - 65454 +- - 65455 + - 65455 + - 65455 +- - 65456 + - 65456 + - 65456 +- - 65457 + - 65457 + - 65457 +- - 65458 + - 65458 + - 65458 +- - 65459 + - 65459 + - 65459 +- - 65460 + - 65460 + - 65460 +- - 65461 + - 65461 + - 65461 +- - 65462 + - 65462 + - 65462 +- - 65463 + - 65463 + - 65463 +- - 65464 + - 65464 + - 65464 +- - 65465 + - 65465 + - 65465 +- - 65466 + - 65466 + - 65466 +- - 65467 + - 65467 + - 65467 +- - 65468 + - 65468 + - 65468 +- - 65469 + - 65469 + - 65469 +- - 65470 + - 65470 + - 65470 +- - 65471 + - 65471 + - 65471 +- - 65472 + - 65472 + - 65472 +- - 65473 + - 65473 + - 65473 +- - 65474 + - 65474 + - 65474 +- - 65475 + - 65475 + - 65475 +- - 65476 + - 65476 + - 65476 +- - 65477 + - 65477 + - 65477 +- - 65478 + - 65478 + - 65478 +- - 65479 + - 65479 + - 65479 +- - 65480 + - 65480 + - 65480 +- - 65481 + - 65481 + - 65481 +- - 65482 + - 65482 + - 65482 +- - 65483 + - 65483 + - 65483 +- - 65484 + - 65484 + - 65484 +- - 65485 + - 65485 + - 65485 +- - 65486 + - 65486 + - 65486 +- - 65487 + - 65487 + - 65487 +- - 65488 + - 65488 + - 65488 +- - 65489 + - 65489 + - 65489 +- - 65490 + - 65490 + - 65490 +- - 65491 + - 65491 + - 65491 +- - 65492 + - 65492 + - 65492 +- - 65493 + - 65493 + - 65493 +- - 65494 + - 65494 + - 65494 +- - 65495 + - 65495 + - 65495 +- - 65496 + - 65496 + - 65496 +- - 65497 + - 65497 + - 65497 +- - 65498 + - 65498 + - 65498 +- - 65499 + - 65499 + - 65499 +- - 65500 + - 65500 + - 65500 +- - 65501 + - 65501 + - 65501 +- - 65502 + - 65502 + - 65502 +- - 65503 + - 65503 + - 65503 +- - 65504 + - 65504 + - 65504 +- - 65505 + - 65505 + - 65505 +- - 65506 + - 65506 + - 65506 +- - 65507 + - 65507 + - 65507 +- - 65508 + - 65508 + - 65508 +- - 65509 + - 65509 + - 65509 +- - 65510 + - 65510 + - 65510 +- - 65511 + - 65511 + - 65511 +- - 65512 + - 65512 + - 65512 +- - 65513 + - 65513 + - 65513 +- - 65514 + - 65514 + - 65514 +- - 65515 + - 65515 + - 65515 +- - 65516 + - 65516 + - 65516 +- - 65517 + - 65517 + - 65517 +- - 65518 + - 65518 + - 65518 +- - 65519 + - 65519 + - 65519 +- - 65520 + - 65520 + - 65520 +- - 65521 + - 65521 + - 65521 +- - 65522 + - 65522 + - 65522 +- - 65523 + - 65523 + - 65523 +- - 65524 + - 65524 + - 65524 +- - 65525 + - 65525 + - 65525 +- - 65526 + - 65526 + - 65526 +- - 65527 + - 65527 + - 65527 +- - 65528 + - 65528 + - 65528 +- - 65529 + - 65529 + - 65529 +- - 65530 + - 65530 + - 65530 +- - 65531 + - 65531 + - 65531 +- - 65532 + - 65532 + - 65532 +- - 65533 + - 65533 + - 65533 +- - 65534 + - 65534 + - 65534 +- - 65535 + - 65535 + - 65535 +u900p104: +- - 66560 + - 66600 + - 66560 +- - 66561 + - 66601 + - 66561 +- - 66562 + - 66602 + - 66562 +- - 66563 + - 66603 + - 66563 +- - 66564 + - 66604 + - 66564 +- - 66565 + - 66605 + - 66565 +- - 66566 + - 66606 + - 66566 +- - 66567 + - 66607 + - 66567 +- - 66568 + - 66608 + - 66568 +- - 66569 + - 66609 + - 66569 +- - 66570 + - 66610 + - 66570 +- - 66571 + - 66611 + - 66571 +- - 66572 + - 66612 + - 66572 +- - 66573 + - 66613 + - 66573 +- - 66574 + - 66614 + - 66574 +- - 66575 + - 66615 + - 66575 +- - 66576 + - 66616 + - 66576 +- - 66577 + - 66617 + - 66577 +- - 66578 + - 66618 + - 66578 +- - 66579 + - 66619 + - 66579 +- - 66580 + - 66620 + - 66580 +- - 66581 + - 66621 + - 66581 +- - 66582 + - 66622 + - 66582 +- - 66583 + - 66623 + - 66583 +- - 66584 + - 66624 + - 66584 +- - 66585 + - 66625 + - 66585 +- - 66586 + - 66626 + - 66586 +- - 66587 + - 66627 + - 66587 +- - 66588 + - 66628 + - 66588 +- - 66589 + - 66629 + - 66589 +- - 66590 + - 66630 + - 66590 +- - 66591 + - 66631 + - 66591 +- - 66592 + - 66632 + - 66592 +- - 66593 + - 66633 + - 66593 +- - 66594 + - 66634 + - 66594 +- - 66595 + - 66635 + - 66595 +- - 66596 + - 66636 + - 66596 +- - 66597 + - 66637 + - 66597 +- - 66598 + - 66638 + - 66598 +- - 66599 + - 66639 + - 66599 +- - 66560 + - 66600 + - 66560 +- - 66561 + - 66601 + - 66561 +- - 66562 + - 66602 + - 66562 +- - 66563 + - 66603 + - 66563 +- - 66564 + - 66604 + - 66564 +- - 66565 + - 66605 + - 66565 +- - 66566 + - 66606 + - 66566 +- - 66567 + - 66607 + - 66567 +- - 66568 + - 66608 + - 66568 +- - 66569 + - 66609 + - 66569 +- - 66570 + - 66610 + - 66570 +- - 66571 + - 66611 + - 66571 +- - 66572 + - 66612 + - 66572 +- - 66573 + - 66613 + - 66573 +- - 66574 + - 66614 + - 66574 +- - 66575 + - 66615 + - 66575 +- - 66576 + - 66616 + - 66576 +- - 66577 + - 66617 + - 66577 +- - 66578 + - 66618 + - 66578 +- - 66579 + - 66619 + - 66579 +- - 66580 + - 66620 + - 66580 +- - 66581 + - 66621 + - 66581 +- - 66582 + - 66622 + - 66582 +- - 66583 + - 66623 + - 66583 +- - 66584 + - 66624 + - 66584 +- - 66585 + - 66625 + - 66585 +- - 66586 + - 66626 + - 66586 +- - 66587 + - 66627 + - 66587 +- - 66588 + - 66628 + - 66588 +- - 66589 + - 66629 + - 66589 +- - 66590 + - 66630 + - 66590 +- - 66591 + - 66631 + - 66591 +- - 66592 + - 66632 + - 66592 +- - 66593 + - 66633 + - 66593 +- - 66594 + - 66634 + - 66594 +- - 66595 + - 66635 + - 66595 +- - 66596 + - 66636 + - 66596 +- - 66597 + - 66637 + - 66597 +- - 66598 + - 66638 + - 66598 +- - 66599 + - 66639 + - 66599 +- - 66640 + - 66640 + - 66640 +- - 66641 + - 66641 + - 66641 +- - 66642 + - 66642 + - 66642 +- - 66643 + - 66643 + - 66643 +- - 66644 + - 66644 + - 66644 +- - 66645 + - 66645 + - 66645 +- - 66646 + - 66646 + - 66646 +- - 66647 + - 66647 + - 66647 +- - 66648 + - 66648 + - 66648 +- - 66649 + - 66649 + - 66649 +- - 66650 + - 66650 + - 66650 +- - 66651 + - 66651 + - 66651 +- - 66652 + - 66652 + - 66652 +- - 66653 + - 66653 + - 66653 +- - 66654 + - 66654 + - 66654 +- - 66655 + - 66655 + - 66655 +- - 66656 + - 66656 + - 66656 +- - 66657 + - 66657 + - 66657 +- - 66658 + - 66658 + - 66658 +- - 66659 + - 66659 + - 66659 +- - 66660 + - 66660 + - 66660 +- - 66661 + - 66661 + - 66661 +- - 66662 + - 66662 + - 66662 +- - 66663 + - 66663 + - 66663 +- - 66664 + - 66664 + - 66664 +- - 66665 + - 66665 + - 66665 +- - 66666 + - 66666 + - 66666 +- - 66667 + - 66667 + - 66667 +- - 66668 + - 66668 + - 66668 +- - 66669 + - 66669 + - 66669 +- - 66670 + - 66670 + - 66670 +- - 66671 + - 66671 + - 66671 +- - 66672 + - 66672 + - 66672 +- - 66673 + - 66673 + - 66673 +- - 66674 + - 66674 + - 66674 +- - 66675 + - 66675 + - 66675 +- - 66676 + - 66676 + - 66676 +- - 66677 + - 66677 + - 66677 +- - 66678 + - 66678 + - 66678 +- - 66679 + - 66679 + - 66679 +- - 66680 + - 66680 + - 66680 +- - 66681 + - 66681 + - 66681 +- - 66682 + - 66682 + - 66682 +- - 66683 + - 66683 + - 66683 +- - 66684 + - 66684 + - 66684 +- - 66685 + - 66685 + - 66685 +- - 66686 + - 66686 + - 66686 +- - 66687 + - 66687 + - 66687 +- - 66688 + - 66688 + - 66688 +- - 66689 + - 66689 + - 66689 +- - 66690 + - 66690 + - 66690 +- - 66691 + - 66691 + - 66691 +- - 66692 + - 66692 + - 66692 +- - 66693 + - 66693 + - 66693 +- - 66694 + - 66694 + - 66694 +- - 66695 + - 66695 + - 66695 +- - 66696 + - 66696 + - 66696 +- - 66697 + - 66697 + - 66697 +- - 66698 + - 66698 + - 66698 +- - 66699 + - 66699 + - 66699 +- - 66700 + - 66700 + - 66700 +- - 66701 + - 66701 + - 66701 +- - 66702 + - 66702 + - 66702 +- - 66703 + - 66703 + - 66703 +- - 66704 + - 66704 + - 66704 +- - 66705 + - 66705 + - 66705 +- - 66706 + - 66706 + - 66706 +- - 66707 + - 66707 + - 66707 +- - 66708 + - 66708 + - 66708 +- - 66709 + - 66709 + - 66709 +- - 66710 + - 66710 + - 66710 +- - 66711 + - 66711 + - 66711 +- - 66712 + - 66712 + - 66712 +- - 66713 + - 66713 + - 66713 +- - 66714 + - 66714 + - 66714 +- - 66715 + - 66715 + - 66715 +- - 66716 + - 66716 + - 66716 +- - 66717 + - 66717 + - 66717 +- - 66718 + - 66718 + - 66718 +- - 66719 + - 66719 + - 66719 +- - 66720 + - 66720 + - 66720 +- - 66721 + - 66721 + - 66721 +- - 66722 + - 66722 + - 66722 +- - 66723 + - 66723 + - 66723 +- - 66724 + - 66724 + - 66724 +- - 66725 + - 66725 + - 66725 +- - 66726 + - 66726 + - 66726 +- - 66727 + - 66727 + - 66727 +- - 66728 + - 66728 + - 66728 +- - 66729 + - 66729 + - 66729 +- - 66730 + - 66730 + - 66730 +- - 66731 + - 66731 + - 66731 +- - 66732 + - 66732 + - 66732 +- - 66733 + - 66733 + - 66733 +- - 66734 + - 66734 + - 66734 +- - 66735 + - 66735 + - 66735 +- - 66736 + - 66776 + - 66736 +- - 66737 + - 66777 + - 66737 +- - 66738 + - 66778 + - 66738 +- - 66739 + - 66779 + - 66739 +- - 66740 + - 66780 + - 66740 +- - 66741 + - 66781 + - 66741 +- - 66742 + - 66782 + - 66742 +- - 66743 + - 66783 + - 66743 +- - 66744 + - 66784 + - 66744 +- - 66745 + - 66785 + - 66745 +- - 66746 + - 66786 + - 66746 +- - 66747 + - 66787 + - 66747 +- - 66748 + - 66788 + - 66748 +- - 66749 + - 66789 + - 66749 +- - 66750 + - 66790 + - 66750 +- - 66751 + - 66791 + - 66751 +- - 66752 + - 66792 + - 66752 +- - 66753 + - 66793 + - 66753 +- - 66754 + - 66794 + - 66754 +- - 66755 + - 66795 + - 66755 +- - 66756 + - 66796 + - 66756 +- - 66757 + - 66797 + - 66757 +- - 66758 + - 66798 + - 66758 +- - 66759 + - 66799 + - 66759 +- - 66760 + - 66800 + - 66760 +- - 66761 + - 66801 + - 66761 +- - 66762 + - 66802 + - 66762 +- - 66763 + - 66803 + - 66763 +- - 66764 + - 66804 + - 66764 +- - 66765 + - 66805 + - 66765 +- - 66766 + - 66806 + - 66766 +- - 66767 + - 66807 + - 66767 +- - 66768 + - 66808 + - 66768 +- - 66769 + - 66809 + - 66769 +- - 66770 + - 66810 + - 66770 +- - 66771 + - 66811 + - 66771 +- - 66772 + - 66772 + - 66772 +- - 66773 + - 66773 + - 66773 +- - 66774 + - 66774 + - 66774 +- - 66775 + - 66775 + - 66775 +- - 66736 + - 66776 + - 66736 +- - 66737 + - 66777 + - 66737 +- - 66738 + - 66778 + - 66738 +- - 66739 + - 66779 + - 66739 +- - 66740 + - 66780 + - 66740 +- - 66741 + - 66781 + - 66741 +- - 66742 + - 66782 + - 66742 +- - 66743 + - 66783 + - 66743 +- - 66744 + - 66784 + - 66744 +- - 66745 + - 66785 + - 66745 +- - 66746 + - 66786 + - 66746 +- - 66747 + - 66787 + - 66747 +- - 66748 + - 66788 + - 66748 +- - 66749 + - 66789 + - 66749 +- - 66750 + - 66790 + - 66750 +- - 66751 + - 66791 + - 66751 +- - 66752 + - 66792 + - 66752 +- - 66753 + - 66793 + - 66753 +- - 66754 + - 66794 + - 66754 +- - 66755 + - 66795 + - 66755 +- - 66756 + - 66796 + - 66756 +- - 66757 + - 66797 + - 66757 +- - 66758 + - 66798 + - 66758 +- - 66759 + - 66799 + - 66759 +- - 66760 + - 66800 + - 66760 +- - 66761 + - 66801 + - 66761 +- - 66762 + - 66802 + - 66762 +- - 66763 + - 66803 + - 66763 +- - 66764 + - 66804 + - 66764 +- - 66765 + - 66805 + - 66765 +- - 66766 + - 66806 + - 66766 +- - 66767 + - 66807 + - 66767 +- - 66768 + - 66808 + - 66768 +- - 66769 + - 66809 + - 66769 +- - 66770 + - 66810 + - 66770 +- - 66771 + - 66811 + - 66771 +- - 66812 + - 66812 + - 66812 +- - 66813 + - 66813 + - 66813 +- - 66814 + - 66814 + - 66814 +- - 66815 + - 66815 + - 66815 +u900p10C: +- - 68608 + - 68608 + - 68608 +- - 68609 + - 68609 + - 68609 +- - 68610 + - 68610 + - 68610 +- - 68611 + - 68611 + - 68611 +- - 68612 + - 68612 + - 68612 +- - 68613 + - 68613 + - 68613 +- - 68614 + - 68614 + - 68614 +- - 68615 + - 68615 + - 68615 +- - 68616 + - 68616 + - 68616 +- - 68617 + - 68617 + - 68617 +- - 68618 + - 68618 + - 68618 +- - 68619 + - 68619 + - 68619 +- - 68620 + - 68620 + - 68620 +- - 68621 + - 68621 + - 68621 +- - 68622 + - 68622 + - 68622 +- - 68623 + - 68623 + - 68623 +- - 68624 + - 68624 + - 68624 +- - 68625 + - 68625 + - 68625 +- - 68626 + - 68626 + - 68626 +- - 68627 + - 68627 + - 68627 +- - 68628 + - 68628 + - 68628 +- - 68629 + - 68629 + - 68629 +- - 68630 + - 68630 + - 68630 +- - 68631 + - 68631 + - 68631 +- - 68632 + - 68632 + - 68632 +- - 68633 + - 68633 + - 68633 +- - 68634 + - 68634 + - 68634 +- - 68635 + - 68635 + - 68635 +- - 68636 + - 68636 + - 68636 +- - 68637 + - 68637 + - 68637 +- - 68638 + - 68638 + - 68638 +- - 68639 + - 68639 + - 68639 +- - 68640 + - 68640 + - 68640 +- - 68641 + - 68641 + - 68641 +- - 68642 + - 68642 + - 68642 +- - 68643 + - 68643 + - 68643 +- - 68644 + - 68644 + - 68644 +- - 68645 + - 68645 + - 68645 +- - 68646 + - 68646 + - 68646 +- - 68647 + - 68647 + - 68647 +- - 68648 + - 68648 + - 68648 +- - 68649 + - 68649 + - 68649 +- - 68650 + - 68650 + - 68650 +- - 68651 + - 68651 + - 68651 +- - 68652 + - 68652 + - 68652 +- - 68653 + - 68653 + - 68653 +- - 68654 + - 68654 + - 68654 +- - 68655 + - 68655 + - 68655 +- - 68656 + - 68656 + - 68656 +- - 68657 + - 68657 + - 68657 +- - 68658 + - 68658 + - 68658 +- - 68659 + - 68659 + - 68659 +- - 68660 + - 68660 + - 68660 +- - 68661 + - 68661 + - 68661 +- - 68662 + - 68662 + - 68662 +- - 68663 + - 68663 + - 68663 +- - 68664 + - 68664 + - 68664 +- - 68665 + - 68665 + - 68665 +- - 68666 + - 68666 + - 68666 +- - 68667 + - 68667 + - 68667 +- - 68668 + - 68668 + - 68668 +- - 68669 + - 68669 + - 68669 +- - 68670 + - 68670 + - 68670 +- - 68671 + - 68671 + - 68671 +- - 68672 + - 68672 + - 68672 +- - 68673 + - 68673 + - 68673 +- - 68674 + - 68674 + - 68674 +- - 68675 + - 68675 + - 68675 +- - 68676 + - 68676 + - 68676 +- - 68677 + - 68677 + - 68677 +- - 68678 + - 68678 + - 68678 +- - 68679 + - 68679 + - 68679 +- - 68680 + - 68680 + - 68680 +- - 68681 + - 68681 + - 68681 +- - 68682 + - 68682 + - 68682 +- - 68683 + - 68683 + - 68683 +- - 68684 + - 68684 + - 68684 +- - 68685 + - 68685 + - 68685 +- - 68686 + - 68686 + - 68686 +- - 68687 + - 68687 + - 68687 +- - 68688 + - 68688 + - 68688 +- - 68689 + - 68689 + - 68689 +- - 68690 + - 68690 + - 68690 +- - 68691 + - 68691 + - 68691 +- - 68692 + - 68692 + - 68692 +- - 68693 + - 68693 + - 68693 +- - 68694 + - 68694 + - 68694 +- - 68695 + - 68695 + - 68695 +- - 68696 + - 68696 + - 68696 +- - 68697 + - 68697 + - 68697 +- - 68698 + - 68698 + - 68698 +- - 68699 + - 68699 + - 68699 +- - 68700 + - 68700 + - 68700 +- - 68701 + - 68701 + - 68701 +- - 68702 + - 68702 + - 68702 +- - 68703 + - 68703 + - 68703 +- - 68704 + - 68704 + - 68704 +- - 68705 + - 68705 + - 68705 +- - 68706 + - 68706 + - 68706 +- - 68707 + - 68707 + - 68707 +- - 68708 + - 68708 + - 68708 +- - 68709 + - 68709 + - 68709 +- - 68710 + - 68710 + - 68710 +- - 68711 + - 68711 + - 68711 +- - 68712 + - 68712 + - 68712 +- - 68713 + - 68713 + - 68713 +- - 68714 + - 68714 + - 68714 +- - 68715 + - 68715 + - 68715 +- - 68716 + - 68716 + - 68716 +- - 68717 + - 68717 + - 68717 +- - 68718 + - 68718 + - 68718 +- - 68719 + - 68719 + - 68719 +- - 68720 + - 68720 + - 68720 +- - 68721 + - 68721 + - 68721 +- - 68722 + - 68722 + - 68722 +- - 68723 + - 68723 + - 68723 +- - 68724 + - 68724 + - 68724 +- - 68725 + - 68725 + - 68725 +- - 68726 + - 68726 + - 68726 +- - 68727 + - 68727 + - 68727 +- - 68728 + - 68728 + - 68728 +- - 68729 + - 68729 + - 68729 +- - 68730 + - 68730 + - 68730 +- - 68731 + - 68731 + - 68731 +- - 68732 + - 68732 + - 68732 +- - 68733 + - 68733 + - 68733 +- - 68734 + - 68734 + - 68734 +- - 68735 + - 68735 + - 68735 +- - 68736 + - 68800 + - 68736 +- - 68737 + - 68801 + - 68737 +- - 68738 + - 68802 + - 68738 +- - 68739 + - 68803 + - 68739 +- - 68740 + - 68804 + - 68740 +- - 68741 + - 68805 + - 68741 +- - 68742 + - 68806 + - 68742 +- - 68743 + - 68807 + - 68743 +- - 68744 + - 68808 + - 68744 +- - 68745 + - 68809 + - 68745 +- - 68746 + - 68810 + - 68746 +- - 68747 + - 68811 + - 68747 +- - 68748 + - 68812 + - 68748 +- - 68749 + - 68813 + - 68749 +- - 68750 + - 68814 + - 68750 +- - 68751 + - 68815 + - 68751 +- - 68752 + - 68816 + - 68752 +- - 68753 + - 68817 + - 68753 +- - 68754 + - 68818 + - 68754 +- - 68755 + - 68819 + - 68755 +- - 68756 + - 68820 + - 68756 +- - 68757 + - 68821 + - 68757 +- - 68758 + - 68822 + - 68758 +- - 68759 + - 68823 + - 68759 +- - 68760 + - 68824 + - 68760 +- - 68761 + - 68825 + - 68761 +- - 68762 + - 68826 + - 68762 +- - 68763 + - 68827 + - 68763 +- - 68764 + - 68828 + - 68764 +- - 68765 + - 68829 + - 68765 +- - 68766 + - 68830 + - 68766 +- - 68767 + - 68831 + - 68767 +- - 68768 + - 68832 + - 68768 +- - 68769 + - 68833 + - 68769 +- - 68770 + - 68834 + - 68770 +- - 68771 + - 68835 + - 68771 +- - 68772 + - 68836 + - 68772 +- - 68773 + - 68837 + - 68773 +- - 68774 + - 68838 + - 68774 +- - 68775 + - 68839 + - 68775 +- - 68776 + - 68840 + - 68776 +- - 68777 + - 68841 + - 68777 +- - 68778 + - 68842 + - 68778 +- - 68779 + - 68843 + - 68779 +- - 68780 + - 68844 + - 68780 +- - 68781 + - 68845 + - 68781 +- - 68782 + - 68846 + - 68782 +- - 68783 + - 68847 + - 68783 +- - 68784 + - 68848 + - 68784 +- - 68785 + - 68849 + - 68785 +- - 68786 + - 68850 + - 68786 +- - 68787 + - 68787 + - 68787 +- - 68788 + - 68788 + - 68788 +- - 68789 + - 68789 + - 68789 +- - 68790 + - 68790 + - 68790 +- - 68791 + - 68791 + - 68791 +- - 68792 + - 68792 + - 68792 +- - 68793 + - 68793 + - 68793 +- - 68794 + - 68794 + - 68794 +- - 68795 + - 68795 + - 68795 +- - 68796 + - 68796 + - 68796 +- - 68797 + - 68797 + - 68797 +- - 68798 + - 68798 + - 68798 +- - 68799 + - 68799 + - 68799 +- - 68736 + - 68800 + - 68736 +- - 68737 + - 68801 + - 68737 +- - 68738 + - 68802 + - 68738 +- - 68739 + - 68803 + - 68739 +- - 68740 + - 68804 + - 68740 +- - 68741 + - 68805 + - 68741 +- - 68742 + - 68806 + - 68742 +- - 68743 + - 68807 + - 68743 +- - 68744 + - 68808 + - 68744 +- - 68745 + - 68809 + - 68745 +- - 68746 + - 68810 + - 68746 +- - 68747 + - 68811 + - 68747 +- - 68748 + - 68812 + - 68748 +- - 68749 + - 68813 + - 68749 +- - 68750 + - 68814 + - 68750 +- - 68751 + - 68815 + - 68751 +- - 68752 + - 68816 + - 68752 +- - 68753 + - 68817 + - 68753 +- - 68754 + - 68818 + - 68754 +- - 68755 + - 68819 + - 68755 +- - 68756 + - 68820 + - 68756 +- - 68757 + - 68821 + - 68757 +- - 68758 + - 68822 + - 68758 +- - 68759 + - 68823 + - 68759 +- - 68760 + - 68824 + - 68760 +- - 68761 + - 68825 + - 68761 +- - 68762 + - 68826 + - 68762 +- - 68763 + - 68827 + - 68763 +- - 68764 + - 68828 + - 68764 +- - 68765 + - 68829 + - 68765 +- - 68766 + - 68830 + - 68766 +- - 68767 + - 68831 + - 68767 +- - 68768 + - 68832 + - 68768 +- - 68769 + - 68833 + - 68769 +- - 68770 + - 68834 + - 68770 +- - 68771 + - 68835 + - 68771 +- - 68772 + - 68836 + - 68772 +- - 68773 + - 68837 + - 68773 +- - 68774 + - 68838 + - 68774 +- - 68775 + - 68839 + - 68775 +- - 68776 + - 68840 + - 68776 +- - 68777 + - 68841 + - 68777 +- - 68778 + - 68842 + - 68778 +- - 68779 + - 68843 + - 68779 +- - 68780 + - 68844 + - 68780 +- - 68781 + - 68845 + - 68781 +- - 68782 + - 68846 + - 68782 +- - 68783 + - 68847 + - 68783 +- - 68784 + - 68848 + - 68784 +- - 68785 + - 68849 + - 68785 +- - 68786 + - 68850 + - 68786 +- - 68851 + - 68851 + - 68851 +- - 68852 + - 68852 + - 68852 +- - 68853 + - 68853 + - 68853 +- - 68854 + - 68854 + - 68854 +- - 68855 + - 68855 + - 68855 +- - 68856 + - 68856 + - 68856 +- - 68857 + - 68857 + - 68857 +- - 68858 + - 68858 + - 68858 +- - 68859 + - 68859 + - 68859 +- - 68860 + - 68860 + - 68860 +- - 68861 + - 68861 + - 68861 +- - 68862 + - 68862 + - 68862 +- - 68863 + - 68863 + - 68863 +u900p118: +- - 71680 + - 71680 + - 71680 +- - 71681 + - 71681 + - 71681 +- - 71682 + - 71682 + - 71682 +- - 71683 + - 71683 + - 71683 +- - 71684 + - 71684 + - 71684 +- - 71685 + - 71685 + - 71685 +- - 71686 + - 71686 + - 71686 +- - 71687 + - 71687 + - 71687 +- - 71688 + - 71688 + - 71688 +- - 71689 + - 71689 + - 71689 +- - 71690 + - 71690 + - 71690 +- - 71691 + - 71691 + - 71691 +- - 71692 + - 71692 + - 71692 +- - 71693 + - 71693 + - 71693 +- - 71694 + - 71694 + - 71694 +- - 71695 + - 71695 + - 71695 +- - 71696 + - 71696 + - 71696 +- - 71697 + - 71697 + - 71697 +- - 71698 + - 71698 + - 71698 +- - 71699 + - 71699 + - 71699 +- - 71700 + - 71700 + - 71700 +- - 71701 + - 71701 + - 71701 +- - 71702 + - 71702 + - 71702 +- - 71703 + - 71703 + - 71703 +- - 71704 + - 71704 + - 71704 +- - 71705 + - 71705 + - 71705 +- - 71706 + - 71706 + - 71706 +- - 71707 + - 71707 + - 71707 +- - 71708 + - 71708 + - 71708 +- - 71709 + - 71709 + - 71709 +- - 71710 + - 71710 + - 71710 +- - 71711 + - 71711 + - 71711 +- - 71712 + - 71712 + - 71712 +- - 71713 + - 71713 + - 71713 +- - 71714 + - 71714 + - 71714 +- - 71715 + - 71715 + - 71715 +- - 71716 + - 71716 + - 71716 +- - 71717 + - 71717 + - 71717 +- - 71718 + - 71718 + - 71718 +- - 71719 + - 71719 + - 71719 +- - 71720 + - 71720 + - 71720 +- - 71721 + - 71721 + - 71721 +- - 71722 + - 71722 + - 71722 +- - 71723 + - 71723 + - 71723 +- - 71724 + - 71724 + - 71724 +- - 71725 + - 71725 + - 71725 +- - 71726 + - 71726 + - 71726 +- - 71727 + - 71727 + - 71727 +- - 71728 + - 71728 + - 71728 +- - 71729 + - 71729 + - 71729 +- - 71730 + - 71730 + - 71730 +- - 71731 + - 71731 + - 71731 +- - 71732 + - 71732 + - 71732 +- - 71733 + - 71733 + - 71733 +- - 71734 + - 71734 + - 71734 +- - 71735 + - 71735 + - 71735 +- - 71736 + - 71736 + - 71736 +- - 71737 + - 71737 + - 71737 +- - 71738 + - 71738 + - 71738 +- - 71739 + - 71739 + - 71739 +- - 71740 + - 71740 + - 71740 +- - 71741 + - 71741 + - 71741 +- - 71742 + - 71742 + - 71742 +- - 71743 + - 71743 + - 71743 +- - 71744 + - 71744 + - 71744 +- - 71745 + - 71745 + - 71745 +- - 71746 + - 71746 + - 71746 +- - 71747 + - 71747 + - 71747 +- - 71748 + - 71748 + - 71748 +- - 71749 + - 71749 + - 71749 +- - 71750 + - 71750 + - 71750 +- - 71751 + - 71751 + - 71751 +- - 71752 + - 71752 + - 71752 +- - 71753 + - 71753 + - 71753 +- - 71754 + - 71754 + - 71754 +- - 71755 + - 71755 + - 71755 +- - 71756 + - 71756 + - 71756 +- - 71757 + - 71757 + - 71757 +- - 71758 + - 71758 + - 71758 +- - 71759 + - 71759 + - 71759 +- - 71760 + - 71760 + - 71760 +- - 71761 + - 71761 + - 71761 +- - 71762 + - 71762 + - 71762 +- - 71763 + - 71763 + - 71763 +- - 71764 + - 71764 + - 71764 +- - 71765 + - 71765 + - 71765 +- - 71766 + - 71766 + - 71766 +- - 71767 + - 71767 + - 71767 +- - 71768 + - 71768 + - 71768 +- - 71769 + - 71769 + - 71769 +- - 71770 + - 71770 + - 71770 +- - 71771 + - 71771 + - 71771 +- - 71772 + - 71772 + - 71772 +- - 71773 + - 71773 + - 71773 +- - 71774 + - 71774 + - 71774 +- - 71775 + - 71775 + - 71775 +- - 71776 + - 71776 + - 71776 +- - 71777 + - 71777 + - 71777 +- - 71778 + - 71778 + - 71778 +- - 71779 + - 71779 + - 71779 +- - 71780 + - 71780 + - 71780 +- - 71781 + - 71781 + - 71781 +- - 71782 + - 71782 + - 71782 +- - 71783 + - 71783 + - 71783 +- - 71784 + - 71784 + - 71784 +- - 71785 + - 71785 + - 71785 +- - 71786 + - 71786 + - 71786 +- - 71787 + - 71787 + - 71787 +- - 71788 + - 71788 + - 71788 +- - 71789 + - 71789 + - 71789 +- - 71790 + - 71790 + - 71790 +- - 71791 + - 71791 + - 71791 +- - 71792 + - 71792 + - 71792 +- - 71793 + - 71793 + - 71793 +- - 71794 + - 71794 + - 71794 +- - 71795 + - 71795 + - 71795 +- - 71796 + - 71796 + - 71796 +- - 71797 + - 71797 + - 71797 +- - 71798 + - 71798 + - 71798 +- - 71799 + - 71799 + - 71799 +- - 71800 + - 71800 + - 71800 +- - 71801 + - 71801 + - 71801 +- - 71802 + - 71802 + - 71802 +- - 71803 + - 71803 + - 71803 +- - 71804 + - 71804 + - 71804 +- - 71805 + - 71805 + - 71805 +- - 71806 + - 71806 + - 71806 +- - 71807 + - 71807 + - 71807 +- - 71808 + - 71808 + - 71808 +- - 71809 + - 71809 + - 71809 +- - 71810 + - 71810 + - 71810 +- - 71811 + - 71811 + - 71811 +- - 71812 + - 71812 + - 71812 +- - 71813 + - 71813 + - 71813 +- - 71814 + - 71814 + - 71814 +- - 71815 + - 71815 + - 71815 +- - 71816 + - 71816 + - 71816 +- - 71817 + - 71817 + - 71817 +- - 71818 + - 71818 + - 71818 +- - 71819 + - 71819 + - 71819 +- - 71820 + - 71820 + - 71820 +- - 71821 + - 71821 + - 71821 +- - 71822 + - 71822 + - 71822 +- - 71823 + - 71823 + - 71823 +- - 71824 + - 71824 + - 71824 +- - 71825 + - 71825 + - 71825 +- - 71826 + - 71826 + - 71826 +- - 71827 + - 71827 + - 71827 +- - 71828 + - 71828 + - 71828 +- - 71829 + - 71829 + - 71829 +- - 71830 + - 71830 + - 71830 +- - 71831 + - 71831 + - 71831 +- - 71832 + - 71832 + - 71832 +- - 71833 + - 71833 + - 71833 +- - 71834 + - 71834 + - 71834 +- - 71835 + - 71835 + - 71835 +- - 71836 + - 71836 + - 71836 +- - 71837 + - 71837 + - 71837 +- - 71838 + - 71838 + - 71838 +- - 71839 + - 71839 + - 71839 +- - 71840 + - 71872 + - 71840 +- - 71841 + - 71873 + - 71841 +- - 71842 + - 71874 + - 71842 +- - 71843 + - 71875 + - 71843 +- - 71844 + - 71876 + - 71844 +- - 71845 + - 71877 + - 71845 +- - 71846 + - 71878 + - 71846 +- - 71847 + - 71879 + - 71847 +- - 71848 + - 71880 + - 71848 +- - 71849 + - 71881 + - 71849 +- - 71850 + - 71882 + - 71850 +- - 71851 + - 71883 + - 71851 +- - 71852 + - 71884 + - 71852 +- - 71853 + - 71885 + - 71853 +- - 71854 + - 71886 + - 71854 +- - 71855 + - 71887 + - 71855 +- - 71856 + - 71888 + - 71856 +- - 71857 + - 71889 + - 71857 +- - 71858 + - 71890 + - 71858 +- - 71859 + - 71891 + - 71859 +- - 71860 + - 71892 + - 71860 +- - 71861 + - 71893 + - 71861 +- - 71862 + - 71894 + - 71862 +- - 71863 + - 71895 + - 71863 +- - 71864 + - 71896 + - 71864 +- - 71865 + - 71897 + - 71865 +- - 71866 + - 71898 + - 71866 +- - 71867 + - 71899 + - 71867 +- - 71868 + - 71900 + - 71868 +- - 71869 + - 71901 + - 71869 +- - 71870 + - 71902 + - 71870 +- - 71871 + - 71903 + - 71871 +- - 71840 + - 71872 + - 71840 +- - 71841 + - 71873 + - 71841 +- - 71842 + - 71874 + - 71842 +- - 71843 + - 71875 + - 71843 +- - 71844 + - 71876 + - 71844 +- - 71845 + - 71877 + - 71845 +- - 71846 + - 71878 + - 71846 +- - 71847 + - 71879 + - 71847 +- - 71848 + - 71880 + - 71848 +- - 71849 + - 71881 + - 71849 +- - 71850 + - 71882 + - 71850 +- - 71851 + - 71883 + - 71851 +- - 71852 + - 71884 + - 71852 +- - 71853 + - 71885 + - 71853 +- - 71854 + - 71886 + - 71854 +- - 71855 + - 71887 + - 71855 +- - 71856 + - 71888 + - 71856 +- - 71857 + - 71889 + - 71857 +- - 71858 + - 71890 + - 71858 +- - 71859 + - 71891 + - 71859 +- - 71860 + - 71892 + - 71860 +- - 71861 + - 71893 + - 71861 +- - 71862 + - 71894 + - 71862 +- - 71863 + - 71895 + - 71863 +- - 71864 + - 71896 + - 71864 +- - 71865 + - 71897 + - 71865 +- - 71866 + - 71898 + - 71866 +- - 71867 + - 71899 + - 71867 +- - 71868 + - 71900 + - 71868 +- - 71869 + - 71901 + - 71869 +- - 71870 + - 71902 + - 71870 +- - 71871 + - 71903 + - 71871 +- - 71904 + - 71904 + - 71904 +- - 71905 + - 71905 + - 71905 +- - 71906 + - 71906 + - 71906 +- - 71907 + - 71907 + - 71907 +- - 71908 + - 71908 + - 71908 +- - 71909 + - 71909 + - 71909 +- - 71910 + - 71910 + - 71910 +- - 71911 + - 71911 + - 71911 +- - 71912 + - 71912 + - 71912 +- - 71913 + - 71913 + - 71913 +- - 71914 + - 71914 + - 71914 +- - 71915 + - 71915 + - 71915 +- - 71916 + - 71916 + - 71916 +- - 71917 + - 71917 + - 71917 +- - 71918 + - 71918 + - 71918 +- - 71919 + - 71919 + - 71919 +- - 71920 + - 71920 + - 71920 +- - 71921 + - 71921 + - 71921 +- - 71922 + - 71922 + - 71922 +- - 71923 + - 71923 + - 71923 +- - 71924 + - 71924 + - 71924 +- - 71925 + - 71925 + - 71925 +- - 71926 + - 71926 + - 71926 +- - 71927 + - 71927 + - 71927 +- - 71928 + - 71928 + - 71928 +- - 71929 + - 71929 + - 71929 +- - 71930 + - 71930 + - 71930 +- - 71931 + - 71931 + - 71931 +- - 71932 + - 71932 + - 71932 +- - 71933 + - 71933 + - 71933 +- - 71934 + - 71934 + - 71934 +- - 71935 + - 71935 + - 71935 +u900p1E9: +- - 125184 + - 125218 + - 125184 +- - 125185 + - 125219 + - 125185 +- - 125186 + - 125220 + - 125186 +- - 125187 + - 125221 + - 125187 +- - 125188 + - 125222 + - 125188 +- - 125189 + - 125223 + - 125189 +- - 125190 + - 125224 + - 125190 +- - 125191 + - 125225 + - 125191 +- - 125192 + - 125226 + - 125192 +- - 125193 + - 125227 + - 125193 +- - 125194 + - 125228 + - 125194 +- - 125195 + - 125229 + - 125195 +- - 125196 + - 125230 + - 125196 +- - 125197 + - 125231 + - 125197 +- - 125198 + - 125232 + - 125198 +- - 125199 + - 125233 + - 125199 +- - 125200 + - 125234 + - 125200 +- - 125201 + - 125235 + - 125201 +- - 125202 + - 125236 + - 125202 +- - 125203 + - 125237 + - 125203 +- - 125204 + - 125238 + - 125204 +- - 125205 + - 125239 + - 125205 +- - 125206 + - 125240 + - 125206 +- - 125207 + - 125241 + - 125207 +- - 125208 + - 125242 + - 125208 +- - 125209 + - 125243 + - 125209 +- - 125210 + - 125244 + - 125210 +- - 125211 + - 125245 + - 125211 +- - 125212 + - 125246 + - 125212 +- - 125213 + - 125247 + - 125213 +- - 125214 + - 125248 + - 125214 +- - 125215 + - 125249 + - 125215 +- - 125216 + - 125250 + - 125216 +- - 125217 + - 125251 + - 125217 +- - 125184 + - 125218 + - 125184 +- - 125185 + - 125219 + - 125185 +- - 125186 + - 125220 + - 125186 +- - 125187 + - 125221 + - 125187 +- - 125188 + - 125222 + - 125188 +- - 125189 + - 125223 + - 125189 +- - 125190 + - 125224 + - 125190 +- - 125191 + - 125225 + - 125191 +- - 125192 + - 125226 + - 125192 +- - 125193 + - 125227 + - 125193 +- - 125194 + - 125228 + - 125194 +- - 125195 + - 125229 + - 125195 +- - 125196 + - 125230 + - 125196 +- - 125197 + - 125231 + - 125197 +- - 125198 + - 125232 + - 125198 +- - 125199 + - 125233 + - 125199 +- - 125200 + - 125234 + - 125200 +- - 125201 + - 125235 + - 125201 +- - 125202 + - 125236 + - 125202 +- - 125203 + - 125237 + - 125203 +- - 125204 + - 125238 + - 125204 +- - 125205 + - 125239 + - 125205 +- - 125206 + - 125240 + - 125206 +- - 125207 + - 125241 + - 125207 +- - 125208 + - 125242 + - 125208 +- - 125209 + - 125243 + - 125209 +- - 125210 + - 125244 + - 125210 +- - 125211 + - 125245 + - 125211 +- - 125212 + - 125246 + - 125212 +- - 125213 + - 125247 + - 125213 +- - 125214 + - 125248 + - 125214 +- - 125215 + - 125249 + - 125215 +- - 125216 + - 125250 + - 125216 +- - 125217 + - 125251 + - 125217 +- - 125252 + - 125252 + - 125252 +- - 125253 + - 125253 + - 125253 +- - 125254 + - 125254 + - 125254 +- - 125255 + - 125255 + - 125255 +- - 125256 + - 125256 + - 125256 +- - 125257 + - 125257 + - 125257 +- - 125258 + - 125258 + - 125258 +- - 125259 + - 125259 + - 125259 +- - 125260 + - 125260 + - 125260 +- - 125261 + - 125261 + - 125261 +- - 125262 + - 125262 + - 125262 +- - 125263 + - 125263 + - 125263 +- - 125264 + - 125264 + - 125264 +- - 125265 + - 125265 + - 125265 +- - 125266 + - 125266 + - 125266 +- - 125267 + - 125267 + - 125267 +- - 125268 + - 125268 + - 125268 +- - 125269 + - 125269 + - 125269 +- - 125270 + - 125270 + - 125270 +- - 125271 + - 125271 + - 125271 +- - 125272 + - 125272 + - 125272 +- - 125273 + - 125273 + - 125273 +- - 125274 + - 125274 + - 125274 +- - 125275 + - 125275 + - 125275 +- - 125276 + - 125276 + - 125276 +- - 125277 + - 125277 + - 125277 +- - 125278 + - 125278 + - 125278 +- - 125279 + - 125279 + - 125279 +- - 125280 + - 125280 + - 125280 +- - 125281 + - 125281 + - 125281 +- - 125282 + - 125282 + - 125282 +- - 125283 + - 125283 + - 125283 +- - 125284 + - 125284 + - 125284 +- - 125285 + - 125285 + - 125285 +- - 125286 + - 125286 + - 125286 +- - 125287 + - 125287 + - 125287 +- - 125288 + - 125288 + - 125288 +- - 125289 + - 125289 + - 125289 +- - 125290 + - 125290 + - 125290 +- - 125291 + - 125291 + - 125291 +- - 125292 + - 125292 + - 125292 +- - 125293 + - 125293 + - 125293 +- - 125294 + - 125294 + - 125294 +- - 125295 + - 125295 + - 125295 +- - 125296 + - 125296 + - 125296 +- - 125297 + - 125297 + - 125297 +- - 125298 + - 125298 + - 125298 +- - 125299 + - 125299 + - 125299 +- - 125300 + - 125300 + - 125300 +- - 125301 + - 125301 + - 125301 +- - 125302 + - 125302 + - 125302 +- - 125303 + - 125303 + - 125303 +- - 125304 + - 125304 + - 125304 +- - 125305 + - 125305 + - 125305 +- - 125306 + - 125306 + - 125306 +- - 125307 + - 125307 + - 125307 +- - 125308 + - 125308 + - 125308 +- - 125309 + - 125309 + - 125309 +- - 125310 + - 125310 + - 125310 +- - 125311 + - 125311 + - 125311 +- - 125312 + - 125312 + - 125312 +- - 125313 + - 125313 + - 125313 +- - 125314 + - 125314 + - 125314 +- - 125315 + - 125315 + - 125315 +- - 125316 + - 125316 + - 125316 +- - 125317 + - 125317 + - 125317 +- - 125318 + - 125318 + - 125318 +- - 125319 + - 125319 + - 125319 +- - 125320 + - 125320 + - 125320 +- - 125321 + - 125321 + - 125321 +- - 125322 + - 125322 + - 125322 +- - 125323 + - 125323 + - 125323 +- - 125324 + - 125324 + - 125324 +- - 125325 + - 125325 + - 125325 +- - 125326 + - 125326 + - 125326 +- - 125327 + - 125327 + - 125327 +- - 125328 + - 125328 + - 125328 +- - 125329 + - 125329 + - 125329 +- - 125330 + - 125330 + - 125330 +- - 125331 + - 125331 + - 125331 +- - 125332 + - 125332 + - 125332 +- - 125333 + - 125333 + - 125333 +- - 125334 + - 125334 + - 125334 +- - 125335 + - 125335 + - 125335 +- - 125336 + - 125336 + - 125336 +- - 125337 + - 125337 + - 125337 +- - 125338 + - 125338 + - 125338 +- - 125339 + - 125339 + - 125339 +- - 125340 + - 125340 + - 125340 +- - 125341 + - 125341 + - 125341 +- - 125342 + - 125342 + - 125342 +- - 125343 + - 125343 + - 125343 +- - 125344 + - 125344 + - 125344 +- - 125345 + - 125345 + - 125345 +- - 125346 + - 125346 + - 125346 +- - 125347 + - 125347 + - 125347 +- - 125348 + - 125348 + - 125348 +- - 125349 + - 125349 + - 125349 +- - 125350 + - 125350 + - 125350 +- - 125351 + - 125351 + - 125351 +- - 125352 + - 125352 + - 125352 +- - 125353 + - 125353 + - 125353 +- - 125354 + - 125354 + - 125354 +- - 125355 + - 125355 + - 125355 +- - 125356 + - 125356 + - 125356 +- - 125357 + - 125357 + - 125357 +- - 125358 + - 125358 + - 125358 +- - 125359 + - 125359 + - 125359 +- - 125360 + - 125360 + - 125360 +- - 125361 + - 125361 + - 125361 +- - 125362 + - 125362 + - 125362 +- - 125363 + - 125363 + - 125363 +- - 125364 + - 125364 + - 125364 +- - 125365 + - 125365 + - 125365 +- - 125366 + - 125366 + - 125366 +- - 125367 + - 125367 + - 125367 +- - 125368 + - 125368 + - 125368 +- - 125369 + - 125369 + - 125369 +- - 125370 + - 125370 + - 125370 +- - 125371 + - 125371 + - 125371 +- - 125372 + - 125372 + - 125372 +- - 125373 + - 125373 + - 125373 +- - 125374 + - 125374 + - 125374 +- - 125375 + - 125375 + - 125375 +- - 125376 + - 125376 + - 125376 +- - 125377 + - 125377 + - 125377 +- - 125378 + - 125378 + - 125378 +- - 125379 + - 125379 + - 125379 +- - 125380 + - 125380 + - 125380 +- - 125381 + - 125381 + - 125381 +- - 125382 + - 125382 + - 125382 +- - 125383 + - 125383 + - 125383 +- - 125384 + - 125384 + - 125384 +- - 125385 + - 125385 + - 125385 +- - 125386 + - 125386 + - 125386 +- - 125387 + - 125387 + - 125387 +- - 125388 + - 125388 + - 125388 +- - 125389 + - 125389 + - 125389 +- - 125390 + - 125390 + - 125390 +- - 125391 + - 125391 + - 125391 +- - 125392 + - 125392 + - 125392 +- - 125393 + - 125393 + - 125393 +- - 125394 + - 125394 + - 125394 +- - 125395 + - 125395 + - 125395 +- - 125396 + - 125396 + - 125396 +- - 125397 + - 125397 + - 125397 +- - 125398 + - 125398 + - 125398 +- - 125399 + - 125399 + - 125399 +- - 125400 + - 125400 + - 125400 +- - 125401 + - 125401 + - 125401 +- - 125402 + - 125402 + - 125402 +- - 125403 + - 125403 + - 125403 +- - 125404 + - 125404 + - 125404 +- - 125405 + - 125405 + - 125405 +- - 125406 + - 125406 + - 125406 +- - 125407 + - 125407 + - 125407 +- - 125408 + - 125408 + - 125408 +- - 125409 + - 125409 + - 125409 +- - 125410 + - 125410 + - 125410 +- - 125411 + - 125411 + - 125411 +- - 125412 + - 125412 + - 125412 +- - 125413 + - 125413 + - 125413 +- - 125414 + - 125414 + - 125414 +- - 125415 + - 125415 + - 125415 +- - 125416 + - 125416 + - 125416 +- - 125417 + - 125417 + - 125417 +- - 125418 + - 125418 + - 125418 +- - 125419 + - 125419 + - 125419 +- - 125420 + - 125420 + - 125420 +- - 125421 + - 125421 + - 125421 +- - 125422 + - 125422 + - 125422 +- - 125423 + - 125423 + - 125423 +- - 125424 + - 125424 + - 125424 +- - 125425 + - 125425 + - 125425 +- - 125426 + - 125426 + - 125426 +- - 125427 + - 125427 + - 125427 +- - 125428 + - 125428 + - 125428 +- - 125429 + - 125429 + - 125429 +- - 125430 + - 125430 + - 125430 +- - 125431 + - 125431 + - 125431 +- - 125432 + - 125432 + - 125432 +- - 125433 + - 125433 + - 125433 +- - 125434 + - 125434 + - 125434 +- - 125435 + - 125435 + - 125435 +- - 125436 + - 125436 + - 125436 +- - 125437 + - 125437 + - 125437 +- - 125438 + - 125438 + - 125438 +- - 125439 + - 125439 + - 125439 diff --git a/polardbx-optimizer/src/main/resources/com/alibaba/polardbx/optimizer/config/table/collation/zh_han.yml b/polardbx-optimizer/src/main/resources/com/alibaba/polardbx/optimizer/config/table/collation/zh_han.yml new file mode 100644 index 000000000..8b4bdfb76 --- /dev/null +++ b/polardbx-optimizer/src/main/resources/com/alibaba/polardbx/optimizer/config/table/collation/zh_han.yml @@ -0,0 +1,296 @@ +zh_han_p02E: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 3, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 950, 951, 859, 860, 861, 862, 952, 953, 954, 863, 864, 955, 865, 866, 956, 957, 958, 959, 960, 961, 962, 963, 964, 540, 630, 760, 965, 966, 867, 868, 967, 968, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 753, 754, 755, 756, 616, 49930, 643, 652, 548, 653, 547, 567, 929, 930, 931, 906, 536, 537, 644, 757, 900, 909, 541, 549, 785, 539, 969, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 44131, 10190, 41548, 43517, 41545, 32548, 21436, 19679, 12588, 12601, 9293, 21024, 39984, 39985, 38670, 37709, 37710, 38671, 35047, 42175, 19933, 19724, 40466, 40467, 34482, 30321, 63010, 32649, 32637, 44949, 12257, 28011, 27678, 34825, 34800, 8831, 46124, 46113, 31233, 28943, 32286, 37714, 29826, 28093, 34280, 34421, 34287, 34974, 34975, 15772, 37767, 15736, 37766, 37725, 32579, 32618, 27335, 23874, 44737, 44738, 32803, 21795, 9641, 9643, 9644, 18288, 42634, 38943, 38942, 20463, 20658, 20658, 41721, 8194, 48308, 10302, 11553, 11555, 11592, 15396, 21143, 10172, 10173, 46060, 27086, 15413, 15397, 44401, 31641, 37925, 42556, 15008, 14699, 34235, 34191, 34236, 34237, 34441, 26545, 16396, 16869, 44392, 28738, 25951, 26628, 18803, 27516, 30661, 30662, 10810, 10811, 25708, 25709, 16814, 16813, 16751, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 44613, 44614, 44615, 44616, 44617, 44618, 44619, 44620, 44621, 44622, 44623, 44624, 44625, 44626, 44627, 44628, 44629, 44630, 44631, 44632, 44633, 44634, 44635, 44636, 44637, 44638, 44639, 44640, 44641, 44642, 44643, 44644, 44645, 44646, 44647, 44648, 44649, 44650, 44651, 44652, 44653, 44654, 44655, 44656, 44657, 44658, 44659, 44660, 44661, 44662, 44663, 44664, 44665, 44666, 44667, 44668, 44669, 44670, 44671, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44698, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44788, 44789, 44790, 44791, 44792, 44793, 44794, 44795, 44796, 44797, 44798, 44799, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 272, 272, 0, 0, 0, 0, 0, 0, 0, 0, 272, 0, 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 272, 0, 0, 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 272, 0, 0, 0, 0, 0, 0, 0, 0, 272, 0, 0, 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p030: 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 2, 2, 2, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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, 1, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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, 1, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 521, 561, 650, 940, 6795, 7175, 57059, 25249, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 6796, 6797, 889, 890, 891, 892, 893, 894, 895, 896, 542, 786, 787, 788, 6798, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 0, 0, 0, 0, 0, 0, 543, 7178, 7178, 7179, 7179, 7180, 6796, 6799, 34170, 28680, 33044, 7176, 57078, 941, 6800, 6801, 63010, 57047, 57047, 57048, 57048, 57049, 57049, 57051, 57051, 57052, 57052, 57053, 57053, 57054, 57054, 57055, 57055, 57056, 57056, 57057, 57057, 57058, 57058, 57059, 57059, 57060, 57060, 57061, 57061, 57062, 57062, 57063, 57063, 57064, 57064, 57065, 57065, 57065, 57066, 57066, 57067, 57067, 57068, 57069, 57070, 57071, 57072, 57073, 57073, 57073, 57074, 57074, 57074, 57075, 57075, 57075, 57076, 57076, 57076, 57077, 57077, 57077, 57078, 57079, 57080, 57081, 57082, 57083, 57083, 57084, 57084, 57086, 57086, 57087, 57088, 57089, 57090, 57091, 57092, 57092, 57093, 57094, 57095, 57096, 57049, 57053, 57056, 63010, 63010, 0, 0, 1169, 1170, 7181, 7181, 57086, 544, 57047, 57047, 57048, 57048, 57049, 57049, 57051, 57051, 57052, 57052, 57053, 57053, 57054, 57054, 57055, 57055, 57056, 57056, 57057, 57057, 57058, 57058, 57059, 57059, 57060, 57060, 57061, 57061, 57062, 57062, 57063, 57063, 57064, 57064, 57065, 57065, 57065, 57066, 57066, 57067, 57067, 57068, 57069, 57070, 57071, 57072, 57073, 57073, 57073, 57074, 57074, 57074, 57075, 57075, 57075, 57076, 57076, 57076, 57077, 57077, 57077, 57078, 57079, 57080, 57081, 57082, 57083, 57083, 57084, 57084, 57086, 57086, 57087, 57088, 57089, 57090, 57091, 57092, 57092, 57093, 57094, 57095, 57096, 57049, 57053, 57056, 57092, 57093, 57094, 57095, 545, 7182, 7183, 7183, 57057, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 251, 252, 253, 254, 255, 256, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 55, 56, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 3, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, 4, 4, 2, 4, 2, 2, 2, 2, 13, 14, 13, 14, 13, 14, 13, 14, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 13, 14, 13, 14, 13, 14, 14, 14, 14, 14, 14, 13, 14, 14, 14, 14, 14, 14, 13, 13, 2, 2, 2, 2, 2, 2, 2, 2, 22, 2, 15, 17, 15, 17, 15, 17, 15, 17, 15, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 15, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 15, 17, 15, 17, 15, 17, 17, 17, 17, 17, 17, 15, 17, 17, 17, 17, 17, 17, 15, 15, 17, 17, 17, 17, 2, 2, 2, 2, 22, 0, 0, 0, 0, 0, 0, 57081, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57060, 0, 0, 0, 45120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45207, 45208, 0, 0, 0, 0, 0, 0, 57088, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57067, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 55, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 55, 0, 55, 0, 55, 0, 55, 0, 55, 0, 55, 0, 55, 0, 55, 0, 55, 0, 55, 0, 55, 0, 0, 55, 0, 55, 0, 55, 0, 0, 0, 0, 0, 0, 55, 56, 0, 55, 56, 0, 55, 56, 0, 55, 56, 0, 55, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 55, 0, 55, 0, 55, 0, 55, 0, 55, 0, 55, 0, 55, 0, 55, 0, 55, 0, 55, 0, 55, 0, 0, 55, 0, 55, 0, 55, 0, 0, 0, 0, 0, 0, 55, 56, 0, 55, 56, 0, 55, 56, 0, 55, 56, 0, 55, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 55, 55, 55, 55, 0, 0, 0, 55, 32, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 2, 2, 0, 2, 2, 0, 2, 2, 0, 2, 2, 0, 2, 2, 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, 2, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 2, 2, 0, 2, 2, 0, 2, 2, 0, 2, 2, 0, 2, 2, 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, 2, 2, 2, 2, 0, 0, 0, 2, 22 +zh_han_p034: 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 31790, 36601, 48577, 48577, 22981, 38509, 43462, 48577, 48577, 48577, 48577, 48577, 42636, 48577, 48577, 48577, 48577, 48577, 48577, 48577, 48577, 48577, 40086, 48577, 48577, 48577, 48577, 48577, 11033, 48577, 48577, 48577, 48577, 29138, 48577, 48577, 12353, 48577, 48577, 48577, 40860, 40513, 48577, 40581, 25462, 25186, 39714, 43840, 40424, 46390, 12259, 38575, 29307, 32807, 48577, 26528, 31107, 42903, 43379, 28446, 10638, 14939, 48577, 48577, 48577, 47828, 14640, 7571, 38515, 48539, 48577, 47325, 13441, 35240, 42941, 31714, 23061, 24041, 28364, 47539, 34490, 48577, 48577, 48577, 40820, 48577, 48577, 33857, 21052, 13195, 29113, 35243, 42969, 25728, 43779, 8272, 48577, 48577, 48577, 23582, 27538, 42999, 24380, 19768, 44412, 26359, 9862, 48577, 48577, 48577, 19144, 40829, 18992, 32512, 48577, 47348, 48577, 17328, 39088, 35869, 42198, 18996, 22322, 26554, 26287, 36064, 42206, 46144, 45789, 44437, 47898, 14394, 32458, 30699, 10865, 38544, 17342, 36127, 33278, 48577, 31753, 23927, 33059, 48577, 48577, 23235, 30338, 35752, 34563, 42002, 29220, 35837, 48577, 27458, 43551, 13173, 44454, 27600, 22349, 28727, 40318, 44068, 48577, 48577, 10359, 14991, 24021, 24575, 48577, 26435, 48577, 19730, 48577, 48577, 48577, 48577, 32189, 48577, 9423, 24855, 16385, 26873, 48577, 16539, 35449, 48577, 48577, 26894, 26634, 32177, 34361, 24245, 48577, 37724, 22849, 13696, 46478, 36721, 48577, 48577, 9038, 19236, 13444, 16218, 10485, 48577, 31476, 21461, 25965, 40559, 48577, 28250, 40243, 48577, 8490, 20950, 35255, 48577, 16124, 48577, 44133, 40507, 30849, 29750, 13040, 15348, 26440, 30852, 30853, 36032, 7750, 15635, 11617, 40991, 23761, 48577, 48577, 33770, 48577, 24110, 18463, 36950, 29910, 12775, 32914, 14166, 31423, 43057, 47838, 32969, 20122, 48577, 10857, 10973, 38809, 48577, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 46082, 46083, 0, 0, 0, 46087, 46088, 46089, 46090, 46091, 0, 46093, 46094, 46095, 46096, 46097, 46098, 46099, 46100, 46101, 0, 46103, 46104, 46105, 46106, 46107, 0, 46109, 46110, 46111, 46112, 0, 46114, 46115, 0, 46117, 46118, 46119, 0, 0, 46122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46134, 0, 0, 0, 0, 0, 0, 0, 46142, 46143, 46144, 0, 0, 0, 0, 0, 46150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46161, 46162, 46163, 0, 46165, 46166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46176, 46177, 46178, 0, 0, 0, 0, 0, 0, 0, 0, 46187, 46188, 46189, 0, 0, 0, 0, 46194, 0, 46196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46219, 0, 0, 0, 46223, 46224, 0, 0, 0, 0, 0, 0, 0, 46232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46242, 46243, 0, 0, 0, 0, 46248, 0, 46250, 0, 46252, 46253, 46254, 46255, 0, 46257, 0, 0, 0, 0, 46262, 0, 0, 46265, 46266, 0, 0, 0, 0, 0, 46272, 0, 0, 0, 0, 0, 46278, 46279, 0, 0, 0, 0, 0, 46285, 0, 0, 0, 0, 46290, 0, 0, 46293, 0, 0, 0, 46297, 0, 46299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46315, 46316, 0, 46318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46331, 0, 0, 0, 46335, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p035: 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 26291, 12709, 25141, 22158, 35290, 40030, 45352, 48577, 48577, 47514, 45928, 20168, 48296, 11297, 40311, 24490, 48577, 10905, 38985, 20225, 48577, 19513, 48577, 14738, 11223, 8241, 20879, 48577, 7683, 24858, 23012, 48577, 39188, 8858, 22160, 23941, 40456, 7798, 42103, 26205, 8139, 14178, 25914, 48577, 48577, 10326, 29126, 41056, 17787, 44421, 48577, 16854, 43097, 41097, 16233, 25815, 36314, 23897, 34283, 48577, 35547, 42325, 39319, 48292, 48577, 32310, 43380, 38679, 46791, 19999, 18304, 23408, 42829, 22678, 15093, 31508, 7312, 48577, 22700, 11157, 40196, 11166, 37818, 48577, 48577, 18635, 35246, 44160, 48577, 22342, 46111, 40851, 34243, 48577, 34697, 23243, 34745, 17658, 15608, 41722, 31836, 33841, 18456, 38681, 14558, 29424, 12388, 14641, 16129, 7514, 15342, 28417, 41218, 43986, 18414, 48577, 10393, 17021, 28095, 18458, 24352, 14410, 39843, 30290, 48577, 34990, 48577, 48577, 23909, 25210, 42970, 18042, 48577, 40870, 32031, 14316, 48577, 48577, 41299, 48577, 48577, 48577, 48577, 28763, 37939, 40222, 36332, 17895, 37279, 28764, 28765, 43395, 46330, 48577, 48577, 48577, 48577, 48577, 37516, 34454, 29139, 42455, 30524, 36980, 17231, 22316, 13424, 19123, 25971, 21649, 19249, 25285, 48577, 36566, 26317, 48577, 48577, 48577, 48577, 48577, 48577, 15942, 41568, 34204, 41190, 29558, 11534, 28948, 13979, 45509, 14180, 40117, 43952, 14181, 34053, 38228, 22899, 18174, 15944, 39236, 26696, 26285, 19566, 18000, 46955, 48577, 48577, 37518, 48577, 7805, 7320, 47760, 30937, 16297, 12447, 8091, 9170, 11137, 24434, 40028, 40706, 48577, 48577, 48577, 48577, 48577, 17931, 36454, 11887, 23386, 23814, 47004, 40071, 38811, 48577, 31438, 45653, 38812, 48577, 48577, 11807, 19606, 19275, 35694, 41664, 40948, 30186, 33107, 48577, 48577, 48577, 17008, 42496, 39781, 41171, 17670, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 46343, 46344, 0, 0, 0, 0, 0, 0, 0, 46352, 0, 0, 0, 46356, 0, 46358, 0, 0, 0, 0, 46363, 0, 0, 0, 46367, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46379, 46380, 0, 0, 0, 0, 0, 46386, 0, 0, 0, 0, 0, 0, 0, 0, 46395, 0, 0, 0, 0, 46400, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46413, 0, 0, 0, 0, 0, 46419, 46420, 0, 0, 0, 46424, 0, 0, 0, 0, 46429, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46451, 0, 0, 0, 0, 0, 0, 0, 0, 46460, 0, 46462, 46463, 0, 0, 0, 0, 46468, 0, 0, 0, 46472, 46473, 0, 46475, 46476, 46477, 46478, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46489, 46490, 46491, 46492, 46493, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46508, 0, 0, 46511, 46512, 46513, 46514, 46515, 46516, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46541, 46542, 0, 46544, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46557, 46558, 46559, 46560, 46561, 0, 0, 0, 0, 0, 0, 0, 0, 46570, 0, 0, 0, 46574, 46575, 0, 0, 0, 0, 0, 0, 0, 0, 46584, 46585, 46586, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p036: 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 48567, 43179, 11650, 48577, 24080, 39481, 35853, 32706, 43210, 47091, 38889, 39488, 21932, 19651, 17287, 48577, 29487, 24531, 48577, 23621, 33109, 17291, 41696, 32020, 48577, 41708, 17293, 22452, 10809, 28751, 19232, 48577, 8412, 39209, 38280, 41059, 37550, 44069, 31498, 40854, 28756, 8404, 17497, 21341, 7590, 7591, 48577, 48577, 46319, 35880, 21709, 48577, 48542, 9342, 20887, 7311, 45406, 11619, 14412, 48577, 48577, 48577, 48577, 28766, 25581, 26954, 13814, 7896, 8438, 8000, 48577, 11243, 39296, 36567, 10143, 48577, 48577, 13928, 37795, 15438, 13980, 44428, 42424, 23185, 37954, 23014, 48577, 37796, 42159, 25714, 40476, 9323, 10730, 40123, 28792, 23767, 42598, 48175, 26638, 46079, 39303, 16977, 40133, 48577, 19846, 24918, 43151, 19607, 43434, 48577, 12157, 43152, 40295, 17537, 43919, 22476, 10086, 35841, 36091, 46765, 8066, 27139, 23207, 9959, 24009, 48577, 39158, 48577, 38911, 31392, 28318, 45065, 48577, 25615, 15416, 48153, 48577, 16389, 22379, 13120, 18480, 23238, 48577, 15826, 36243, 48577, 33531, 23538, 28757, 15171, 15827, 31400, 7867, 19942, 22794, 39066, 44518, 47756, 33942, 11565, 39884, 19713, 29050, 39959, 42905, 44212, 42642, 41725, 33930, 32440, 17498, 33046, 22274, 43988, 48577, 40415, 29493, 31796, 9896, 48577, 9343, 13382, 34991, 14354, 48577, 26861, 45165, 19354, 48577, 31349, 40587, 29444, 11147, 29574, 29129, 20888, 42575, 14384, 14015, 48577, 48577, 48577, 13972, 48577, 48577, 31417, 26136, 31864, 35184, 9540, 13528, 38722, 14953, 43004, 35564, 31395, 30232, 40384, 36921, 40437, 44009, 8133, 25732, 48577, 48577, 48577, 48577, 45102, 24111, 35718, 23657, 26678, 31235, 47305, 41869, 38742, 25973, 38743, 33238, 14587, 48577, 37955, 14445, 43059, 28378, 10498, 36015, 19384, 34645, 29926, 7390, 22966, 9751, 48577, 39443, 46958, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 46595, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46607, 0, 0, 46610, 0, 0, 0, 0, 0, 46616, 0, 0, 0, 0, 0, 0, 46623, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46638, 46639, 0, 0, 0, 46643, 0, 0, 0, 0, 0, 0, 0, 46651, 46652, 46653, 46654, 0, 0, 0, 0, 0, 0, 0, 46662, 0, 0, 0, 0, 46667, 46668, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46678, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46695, 0, 0, 0, 0, 0, 46701, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46717, 0, 46719, 0, 0, 0, 0, 46724, 0, 0, 0, 46728, 0, 0, 0, 0, 0, 46734, 0, 0, 46737, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46766, 0, 0, 0, 0, 46771, 0, 0, 0, 0, 46776, 0, 0, 0, 46780, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46791, 46792, 46793, 0, 46795, 46796, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46815, 46816, 46817, 46818, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46832, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46845, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p037: 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 48577, 48577, 14967, 24786, 41319, 40920, 27392, 19010, 28070, 43814, 45915, 43098, 29036, 36067, 38791, 45112, 34654, 15261, 43099, 12200, 48577, 24676, 9607, 9475, 21894, 26007, 35291, 28460, 7606, 7436, 31127, 48577, 11960, 11745, 48577, 32420, 28663, 26583, 40418, 45010, 28190, 7615, 33906, 26568, 48577, 48577, 23700, 38875, 45022, 47093, 38294, 18512, 27237, 28729, 37657, 27302, 28843, 32097, 45372, 24821, 46783, 48077, 17119, 40855, 17501, 40992, 46903, 27490, 11508, 16299, 48577, 11521, 26252, 47531, 34436, 24966, 21566, 40193, 13345, 21039, 32652, 26737, 48577, 22684, 42283, 28890, 42672, 23720, 43865, 43397, 41631, 35257, 48577, 25131, 41428, 26822, 27733, 48439, 44429, 43060, 16300, 27350, 22330, 38232, 48577, 22516, 13069, 25634, 48577, 40546, 12024, 31323, 27464, 27239, 31583, 48577, 37573, 12675, 7313, 48577, 8719, 29020, 24677, 21166, 44185, 11439, 48532, 9276, 18845, 42327, 37203, 19785, 7384, 26454, 19698, 37956, 9091, 45226, 40921, 28647, 45163, 48577, 7705, 46189, 21631, 37934, 40216, 30737, 42673, 40217, 11620, 31865, 13579, 28741, 30764, 19703, 37163, 48577, 35086, 13071, 23818, 45943, 48577, 48577, 43377, 9694, 19682, 18970, 48079, 23577, 28327, 21838, 31587, 12261, 48577, 20866, 40819, 11723, 43928, 13509, 10705, 48577, 27682, 18728, 35445, 22659, 48310, 17502, 10539, 41221, 28475, 10824, 24653, 7447, 28016, 34892, 39742, 42022, 18417, 12122, 31866, 23805, 15209, 13815, 26752, 23721, 37406, 17228, 26782, 9139, 32381, 30512, 17229, 48577, 25734, 48577, 36640, 45501, 30527, 45349, 27259, 29511, 45964, 39803, 15776, 48577, 30528, 48577, 25974, 48577, 45177, 14184, 13730, 27650, 37798, 32219, 35190, 27651, 37008, 48577, 27766, 42298, 22150, 24436, 23016, 15779, 44834, 12240, 48577, 23815, 25765, 31128, 7541, 8836, 43821, 26790, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 46848, 46849, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46868, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46879, 0, 0, 46882, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46892, 46893, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46918, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46930, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46940, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46952, 0, 0, 0, 46956, 0, 0, 0, 0, 0, 0, 46963, 0, 0, 0, 46967, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46989, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47005, 0, 0, 0, 0, 47010, 47011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47022, 0, 0, 0, 0, 0, 0, 47029, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47061, 0, 47063, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47073, 0, 47075, 0, 47077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47087, 0, 0, 0, 0, 0, 0, 0, 0, 47096, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p038: 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 2, 2, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 1, 1, 2, 2, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 12615, 48577, 7542, 48577, 38965, 15293, 12369, 21601, 32996, 36894, 31997, 14225, 30447, 19608, 19609, 18433, 20782, 48456, 8838, 27133, 7796, 38001, 42866, 7616, 44465, 17481, 13831, 38386, 28616, 11933, 48577, 24209, 25871, 28730, 18513, 24535, 48577, 26214, 14995, 27359, 44723, 48577, 21833, 48577, 48577, 45912, 29598, 42820, 48577, 19786, 8351, 48577, 32576, 18701, 14480, 15926, 22932, 21042, 33349, 48577, 34888, 36844, 44741, 47968, 8414, 22977, 24363, 18709, 41301, 29130, 48577, 46204, 38247, 39432, 30864, 42398, 26895, 48577, 48577, 34647, 48577, 31265, 47815, 23303, 38620, 43585, 11401, 36353, 24668, 8322, 16249, 26766, 40266, 15051, 25766, 45420, 46608, 11170, 26714, 25644, 48577, 43558, 30037, 46617, 20201, 26241, 28749, 43064, 48577, 19825, 19626, 45808, 44398, 21545, 18561, 46798, 23411, 25259, 46805, 8209, 45752, 21632, 12424, 24991, 42976, 46131, 39597, 10830, 11691, 10773, 41740, 23722, 13529, 25735, 9922, 48577, 37169, 9784, 7289, 10784, 48577, 43744, 46221, 36952, 48577, 37173, 9797, 42303, 48223, 48577, 29311, 31377, 24686, 31539, 25926, 41917, 22558, 35223, 43265, 9894, 21456, 20520, 48577, 21420, 48577, 13448, 48577, 22000, 17301, 12894, 48577, 48577, 17870, 48577, 10710, 13101, 8416, 48577, 41369, 25846, 48577, 40095, 8427, 48577, 8439, 48577, 39433, 32967, 8914, 14362, 22022, 48577, 46468, 8157, 14203, 44447, 32062, 45354, 27308, 42949, 35037, 48577, 48577, 48577, 33567, 35821, 28062, 21401, 8724, 32683, 9730, 9550, 13308, 48577, 48577, 48577, 48577, 12801, 36919, 35709, 40518, 35053, 13942, 39070, 36156, 48577, 36333, 33572, 20366, 46925, 37789, 43526, 48577, 48577, 18625, 47192, 30765, 48164, 48577, 40259, 40267, 45519, 37877, 48577, 48577, 35759, 45870, 28938, 48577, 48577, 48577, 42911, 32550, 34617, 9824, 47854, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 47105, 0, 47107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47134, 0, 0, 0, 0, 0, 47140, 0, 0, 0, 0, 47145, 0, 47147, 47148, 0, 0, 0, 47152, 0, 0, 47155, 0, 0, 0, 0, 0, 0, 0, 47163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47174, 0, 0, 0, 0, 0, 0, 47181, 47182, 0, 47184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47204, 0, 0, 0, 0, 0, 0, 0, 47212, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47239, 0, 0, 0, 0, 47244, 0, 0, 0, 47248, 0, 0, 0, 0, 47253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47266, 0, 47268, 0, 47270, 0, 0, 0, 47274, 47275, 0, 47277, 0, 0, 0, 47281, 0, 0, 47284, 0, 0, 47287, 0, 47289, 0, 0, 0, 0, 0, 47295, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47305, 47306, 47307, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47317, 47318, 47319, 47320, 0, 0, 0, 0, 0, 0, 0, 0, 47329, 0, 0, 0, 0, 0, 0, 47336, 47337, 0, 0, 0, 0, 47342, 0, 0, 0, 0, 47347, 47348, 0, 0, 0, 47352, 47353, 47354, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p039: 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 48577, 27484, 19527, 14629, 29533, 7310, 14562, 7573, 31590, 30834, 40009, 14810, 15627, 31255, 15888, 36847, 9897, 44142, 15789, 8219, 15410, 11227, 47541, 48577, 47329, 48577, 17410, 28878, 22097, 10921, 9831, 22821, 25037, 24364, 44498, 48577, 44235, 17151, 24365, 17995, 16192, 22690, 44905, 12678, 18980, 48577, 16741, 21464, 48558, 15423, 31424, 8106, 10322, 11630, 26754, 17183, 39076, 31868, 18807, 48577, 48577, 11036, 33165, 41559, 46730, 12685, 36253, 27088, 25288, 34455, 37216, 9495, 13226, 10327, 29611, 42591, 21725, 19789, 23512, 36569, 44912, 48577, 9440, 30417, 44522, 24662, 11737, 48577, 48577, 48577, 44273, 19570, 38064, 27345, 35460, 40118, 40747, 10848, 31894, 19014, 48577, 44274, 31434, 34830, 34812, 13982, 25754, 48577, 29409, 35871, 47353, 43485, 33214, 14721, 10377, 44835, 42740, 19178, 33279, 42476, 27706, 14899, 17643, 48577, 43541, 9676, 28600, 7612, 15023, 24687, 10157, 10033, 26512, 13189, 18120, 26010, 48577, 43153, 18434, 45658, 18133, 14226, 19276, 35552, 28603, 39649, 24173, 39650, 41918, 25641, 27093, 21127, 19455, 48577, 8694, 44468, 19288, 27564, 11083, 26587, 48577, 23917, 20994, 38126, 43266, 41040, 39159, 9533, 23623, 43508, 40347, 45237, 26434, 25410, 31003, 19234, 20103, 38329, 48577, 48577, 15935, 47398, 13209, 43895, 19707, 42046, 32888, 38970, 34785, 44648, 42648, 31069, 19528, 32151, 36517, 34428, 31067, 28044, 21096, 26859, 43463, 15591, 30163, 41089, 26874, 14643, 41447, 15739, 35088, 18842, 44493, 16502, 16582, 25556, 14145, 48086, 48122, 8420, 37487, 48577, 25023, 48577, 48577, 22991, 48577, 17152, 43324, 47394, 10997, 39515, 41115, 48577, 31855, 29540, 16830, 14318, 16195, 31720, 18091, 23850, 24366, 10464, 33137, 47961, 38332, 30279, 22766, 37287, 29579, 36254, 35721, 47877, 8848, 16479, 18100, 48577, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 47360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47383, 0, 47385, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47395, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47405, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47419, 47420, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47441, 0, 0, 0, 0, 0, 47447, 47448, 47449, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47460, 0, 0, 0, 0, 0, 0, 47467, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47483, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47496, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47513, 0, 0, 0, 0, 0, 0, 47520, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47538, 47539, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47579, 0, 47581, 47582, 0, 47584, 0, 0, 0, 0, 0, 0, 47591, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47615, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p03A: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 9017, 46927, 13425, 13797, 47257, 28450, 25188, 30194, 19700, 27652, 37960, 10306, 16302, 7905, 32825, 35894, 9320, 48166, 23156, 23810, 17330, 43678, 46963, 20919, 40544, 40126, 41325, 33546, 31031, 40067, 35280, 17118, 27396, 19149, 29719, 48577, 19015, 28163, 35097, 8229, 11019, 20933, 18829, 23660, 48577, 18357, 13491, 19271, 16956, 42221, 9677, 16860, 20389, 20274, 12616, 21228, 26560, 19027, 27507, 9505, 26294, 29876, 42124, 21897, 21898, 32339, 48577, 30956, 33451, 48577, 21603, 19277, 45149, 12205, 41021, 39907, 14775, 9683, 42487, 48577, 12705, 48577, 31541, 18954, 37273, 48577, 31224, 38973, 28546, 33100, 27141, 37136, 23671, 17482, 11713, 45834, 7520, 26427, 27607, 48577, 15143, 48577, 40168, 9234, 19085, 31680, 40169, 48577, 48577, 9245, 31058, 30205, 20740, 22234, 23356, 35109, 21787, 14281, 28861, 30992, 13288, 13289, 48577, 30411, 46657, 30532, 47779, 22883, 44218, 31504, 22888, 17593, 15191, 48577, 12871, 39609, 16881, 17607, 32390, 17319, 36923, 9149, 33542, 8375, 25985, 42460, 28494, 11310, 33167, 13163, 25986, 36971, 24756, 22667, 33168, 46419, 11313, 24792, 26911, 48577, 30950, 22432, 33728, 39894, 8540, 45659, 43548, 38854, 33599, 35315, 33068, 32983, 11550, 25879, 25381, 9774, 48577, 18670, 48577, 48577, 20005, 7872, 18158, 13518, 48577, 25807, 21693, 22056, 22661, 35597, 26449, 46206, 13329, 13758, 47598, 41727, 29400, 9783, 48577, 48577, 48577, 48577, 42845, 48577, 48577, 44026, 18888, 42308, 42272, 46793, 16189, 30673, 16042, 48577, 48577, 18050, 27371, 15178, 18086, 16737, 35981, 12770, 48577, 41625, 48577, 48577, 32152, 48577, 10177, 27762, 36161, 8041, 7381, 48577, 48577, 39521, 48577, 48577, 48577, 26896, 23780, 28272, 8140, 10414, 48577, 14677, 47317, 19388, 20827, 34648, 48577, 23361, 13229, 25987, 48577, 48577, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 47651, 0, 0, 0, 0, 0, 0, 0, 0, 47660, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47682, 0, 0, 47685, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47695, 0, 47697, 0, 0, 0, 47701, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47715, 0, 47717, 0, 0, 0, 0, 0, 47723, 47724, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47738, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47749, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47775, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47792, 0, 47794, 47795, 0, 0, 0, 0, 47800, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47814, 47815, 47816, 47817, 0, 47819, 47820, 0, 0, 0, 0, 0, 0, 0, 0, 47829, 47830, 0, 0, 0, 0, 0, 0, 0, 47838, 0, 47840, 47841, 0, 47843, 0, 0, 0, 0, 0, 47849, 47850, 0, 47852, 47853, 47854, 0, 0, 0, 0, 0, 47860, 0, 0, 0, 0, 0, 47866, 0, 0, 0, 47870, 47871, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p03B: 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 1, 1, 1, 2, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 48577, 48577, 44296, 35829, 10084, 26697, 27705, 18671, 38157, 29096, 18672, 18009, 21407, 9182, 39542, 24451, 21229, 48577, 26792, 30010, 17472, 42057, 48577, 39659, 35316, 38002, 10347, 38855, 21247, 9720, 17731, 14836, 33463, 25358, 48577, 13837, 30467, 30396, 45023, 9235, 48577, 19093, 13277, 41951, 21951, 20801, 28294, 25119, 44213, 36465, 36507, 38522, 17956, 39963, 17515, 48577, 36623, 46534, 48577, 18724, 15476, 48577, 48577, 37241, 48577, 32624, 20652, 48577, 40431, 48577, 48577, 44899, 22092, 18415, 48577, 7928, 27965, 48577, 15744, 37935, 48577, 27034, 35001, 8717, 25849, 31959, 48577, 48577, 15939, 46207, 26141, 29294, 32661, 31869, 25039, 16197, 39522, 39078, 40387, 48577, 28710, 48577, 48577, 48577, 40114, 25049, 15108, 12090, 47879, 7664, 48559, 46216, 48409, 17618, 19558, 48577, 20115, 48577, 48577, 48577, 37050, 39444, 41766, 36062, 35727, 12880, 22139, 7493, 17243, 39973, 21733, 37802, 7918, 47758, 28786, 36607, 28222, 48577, 48577, 44107, 27452, 48577, 48577, 28226, 34057, 9756, 41572, 16048, 11003, 32917, 20025, 31526, 26829, 14206, 24439, 10732, 45389, 17645, 20936, 28660, 48577, 16666, 18010, 15604, 48577, 8230, 35621, 38431, 19827, 38814, 31754, 17660, 38268, 39456, 20953, 19154, 29793, 33898, 11020, 46472, 48577, 45863, 34861, 19415, 35122, 46847, 8216, 48577, 48577, 48577, 23773, 8541, 41144, 29522, 12313, 48577, 46695, 29798, 10039, 8542, 35305, 19278, 17771, 21482, 11347, 20523, 28461, 16439, 14658, 48577, 48577, 35760, 12030, 38858, 12696, 39471, 23054, 46245, 35682, 18221, 12031, 26046, 22043, 26047, 31135, 29483, 46488, 48577, 24475, 9617, 30600, 48577, 48577, 36466, 25359, 32079, 24764, 25930, 34571, 16230, 46253, 29437, 21255, 31660, 48577, 48577, 48194, 30354, 21175, 8844, 20427, 16971, 48577, 48577, 45432, 25096, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 47872, 47873, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47889, 0, 0, 0, 0, 47894, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47906, 0, 0, 0, 0, 0, 47912, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47927, 0, 0, 47930, 0, 0, 47933, 47934, 0, 47936, 0, 0, 47939, 0, 47941, 47942, 0, 0, 0, 47946, 0, 0, 47949, 0, 0, 47952, 0, 0, 0, 0, 0, 47958, 47959, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47971, 0, 47973, 47974, 47975, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47987, 0, 47989, 47990, 47991, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48009, 48010, 0, 0, 48013, 48014, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48032, 0, 0, 0, 48036, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48052, 0, 0, 0, 0, 0, 0, 48059, 48060, 48061, 0, 0, 0, 0, 0, 48067, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48081, 48082, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48099, 0, 0, 0, 48103, 48104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48116, 48117, 0, 0, 0, 0, 0, 0, 48124, 48125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p03C: 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 24224, 26428, 33964, 27467, 20434, 12847, 8189, 48577, 24768, 48577, 39497, 30061, 32369, 25669, 48466, 48577, 22228, 33526, 41203, 48577, 40350, 48577, 23677, 30652, 42807, 29128, 24255, 45041, 48577, 42826, 10648, 19747, 17397, 40208, 22762, 47974, 17561, 39072, 32153, 17114, 39182, 17115, 16759, 9901, 41311, 40737, 33975, 22857, 39189, 33417, 44198, 41525, 30293, 48319, 44101, 48129, 24757, 39352, 39301, 42854, 33425, 41890, 20770, 38815, 10797, 34377, 22522, 43489, 17763, 43190, 38876, 33307, 21256, 42516, 43970, 32370, 42415, 26246, 23335, 46589, 48577, 48577, 48577, 48577, 40061, 48577, 12011, 40657, 7475, 40687, 9489, 11356, 45680, 48577, 42982, 29696, 22893, 34022, 23731, 37205, 38767, 25306, 30428, 38365, 24788, 13605, 27092, 23696, 37973, 13754, 23018, 7276, 45296, 19028, 43134, 27909, 48145, 14920, 29631, 48577, 8579, 24557, 25882, 26491, 17111, 46398, 15560, 32315, 46345, 22802, 10576, 21590, 22151, 19828, 25347, 48577, 33722, 32357, 32984, 11558, 28470, 46636, 25746, 29433, 48577, 48577, 8039, 32663, 39345, 24048, 39868, 15109, 32040, 48577, 33369, 46836, 35922, 32747, 35212, 43749, 26830, 28227, 8734, 48577, 34708, 36075, 17346, 33248, 32686, 48577, 12713, 30342, 20620, 35998, 48577, 32426, 28914, 25097, 13292, 13211, 47210, 48577, 26194, 12461, 38676, 16817, 19512, 28569, 42897, 28682, 44400, 37726, 17095, 45568, 41611, 11995, 39417, 20654, 36964, 15405, 29535, 48577, 43945, 31797, 41417, 9350, 8711, 34301, 45682, 42957, 8712, 48577, 13808, 23580, 42578, 9877, 10922, 41117, 40874, 44236, 40639, 48577, 48577, 48577, 35711, 16989, 48577, 48577, 48577, 25737, 40227, 10323, 20240, 35886, 29862, 45333, 41060, 39428, 28740, 48577, 48577, 48577, 48577, 48577, 27382, 19793, 29035, 18102, 18399, 37742, 44021, 45504, 8474, 27344, 31164, 40235, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 48135, 0, 48137, 0, 0, 0, 0, 0, 48143, 0, 0, 0, 48147, 0, 48149, 0, 0, 0, 0, 0, 0, 48156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48208, 48209, 48210, 48211, 0, 48213, 0, 0, 0, 0, 0, 0, 0, 48221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48263, 0, 0, 0, 0, 0, 0, 0, 0, 48272, 48273, 0, 0, 0, 0, 0, 0, 0, 48281, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48291, 0, 0, 0, 0, 0, 48297, 0, 0, 0, 0, 48302, 0, 0, 0, 0, 0, 0, 48309, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48329, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48339, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48349, 48350, 48351, 0, 0, 48354, 48355, 48356, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48367, 48368, 48369, 48370, 48371, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p03D: 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 14580, 43034, 35890, 24050, 43896, 48577, 21210, 33802, 43527, 19701, 48577, 35260, 48577, 48577, 28219, 37748, 27524, 35267, 43071, 33448, 38769, 19577, 26457, 43955, 26906, 45727, 35461, 46966, 8727, 24133, 48577, 48577, 48577, 48577, 48577, 48577, 48577, 31370, 16665, 38798, 46469, 43816, 28795, 22331, 40261, 42300, 40262, 46680, 28465, 48577, 34915, 25715, 10424, 27398, 32330, 12359, 33547, 48577, 48577, 48577, 35294, 40271, 9183, 13333, 48326, 48577, 34664, 33781, 17348, 35899, 15839, 48577, 48577, 48577, 28175, 27413, 41337, 27095, 20398, 11981, 22174, 17728, 14776, 34220, 10310, 33994, 29091, 30144, 26715, 48577, 48577, 48577, 48577, 43193, 11071, 48577, 22917, 7987, 23940, 22671, 33440, 8564, 35427, 15983, 29887, 43194, 39472, 28609, 43699, 47519, 11522, 15027, 40965, 29995, 38565, 24935, 9586, 48298, 48503, 8748, 42357, 18600, 29304, 40668, 48577, 24013, 31703, 40043, 20635, 17053, 48577, 48577, 41689, 41202, 47439, 17810, 43717, 38902, 48577, 48577, 24735, 39562, 18612, 43374, 48577, 24813, 33559, 9590, 8192, 20323, 34693, 14607, 13090, 48577, 7739, 44384, 48577, 48577, 28313, 24036, 43310, 12262, 48577, 9921, 10260, 15622, 21191, 28454, 48577, 48577, 48577, 24972, 27858, 44090, 48577, 25580, 17222, 48577, 43931, 21202, 10777, 32596, 28983, 48577, 48577, 17968, 36606, 48577, 7255, 16509, 8772, 9152, 31726, 48577, 34649, 11464, 18943, 10267, 15442, 18864, 14189, 38067, 14864, 35923, 48577, 26326, 17720, 43910, 18946, 48577, 44300, 48220, 41893, 31905, 46146, 21474, 35830, 48577, 48577, 48577, 48577, 48577, 48577, 37223, 25143, 21480, 45730, 40482, 18359, 48577, 40938, 48577, 48577, 48577, 12020, 31676, 27911, 48577, 45425, 8301, 10679, 48577, 48577, 41921, 15984, 27920, 8182, 21993, 13261, 46163, 48577, 38488, 41922, 48577, 22200, 39380, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 48389, 0, 0, 0, 0, 48394, 0, 48396, 48397, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48414, 48415, 48416, 48417, 48418, 48419, 48420, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48433, 0, 0, 0, 0, 0, 0, 0, 48441, 48442, 48443, 0, 0, 0, 0, 0, 48449, 0, 0, 0, 0, 0, 48455, 48456, 48457, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48473, 48474, 48475, 48476, 0, 0, 48479, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48508, 0, 0, 0, 0, 0, 48514, 48515, 0, 0, 0, 0, 0, 0, 48522, 48523, 0, 0, 0, 0, 48528, 0, 0, 0, 0, 0, 0, 0, 0, 48537, 0, 0, 48540, 48541, 0, 0, 0, 0, 48546, 0, 0, 0, 0, 0, 48552, 48553, 48554, 0, 0, 0, 48558, 0, 0, 48561, 0, 0, 0, 0, 0, 48567, 48568, 0, 0, 48571, 0, 0, 0, 0, 0, 48577, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48588, 0, 0, 0, 0, 48593, 0, 0, 0, 0, 0, 0, 0, 48601, 48602, 48603, 48604, 48605, 48606, 0, 0, 0, 0, 0, 0, 48613, 0, 48615, 48616, 48617, 0, 0, 0, 48621, 0, 0, 0, 48625, 48626, 0, 0, 0, 0, 0, 0, 0, 48634, 0, 0, 48637, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p03E: 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 35847, 17286, 48577, 13035, 19886, 20999, 48577, 48392, 48577, 40335, 23568, 14530, 19317, 39169, 28856, 27317, 32433, 11951, 43388, 27373, 48577, 22164, 31961, 36861, 37668, 46174, 24282, 33716, 22825, 39331, 46191, 46658, 36672, 34503, 8167, 42518, 29957, 10095, 18296, 22752, 21500, 7377, 11496, 31006, 8124, 7646, 14851, 22592, 37346, 37347, 48506, 25269, 48577, 16840, 41553, 34329, 18045, 25050, 33371, 35011, 48577, 8142, 32602, 13602, 9153, 24832, 31082, 14762, 19832, 48221, 18873, 17648, 24139, 44846, 45001, 40658, 10040, 12829, 23935, 21168, 10975, 35040, 30381, 42314, 20499, 18544, 18689, 36190, 32893, 38296, 43727, 32510, 43389, 34293, 43383, 22086, 37251, 41057, 19946, 47150, 31411, 47544, 13102, 48577, 44144, 48577, 48577, 42683, 34254, 42984, 27859, 48577, 48577, 32316, 39860, 38465, 16053, 43741, 36757, 34256, 28483, 16056, 35724, 38314, 21728, 10017, 29992, 47881, 18103, 28381, 41645, 16278, 44432, 18007, 48577, 34916, 10669, 18348, 42120, 38267, 39630, 30053, 32690, 25771, 23860, 33509, 39897, 45521, 17167, 14507, 17284, 9910, 45980, 48577, 35697, 47605, 28992, 17372, 44347, 47929, 44177, 24541, 19306, 38922, 39398, 9977, 24736, 48577, 34886, 21567, 30323, 31843, 16191, 48084, 44224, 48577, 48577, 32631, 28960, 26950, 7647, 21538, 48577, 40875, 30117, 8718, 26883, 48577, 48577, 48577, 48577, 42704, 44251, 48577, 30118, 31965, 8004, 18990, 48577, 48577, 48577, 9366, 26758, 23438, 37046, 38470, 24404, 25293, 48577, 19801, 22324, 48268, 13983, 22141, 12300, 8159, 48577, 48577, 48577, 48577, 48577, 23447, 8935, 35425, 37059, 41169, 48577, 48577, 48577, 48577, 48577, 14043, 48577, 48577, 35471, 8547, 37019, 33290, 9549, 37076, 27508, 21122, 26160, 48577, 48577, 45985, 8387, 19630, 45595, 41035, 24495, 48577, 48577, 35493, 43842, 34598, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 48642, 0, 0, 0, 48646, 0, 48648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48660, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48692, 0, 0, 0, 0, 0, 0, 0, 48700, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48743, 0, 48745, 48746, 0, 0, 0, 0, 48751, 48752, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48774, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48793, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48807, 0, 0, 0, 0, 0, 0, 0, 48815, 48816, 0, 0, 0, 0, 0, 48822, 0, 0, 0, 0, 48827, 48828, 48829, 48830, 0, 0, 48833, 0, 0, 0, 0, 48838, 48839, 48840, 0, 0, 0, 0, 0, 0, 0, 48848, 0, 0, 0, 0, 0, 0, 0, 48856, 48857, 48858, 48859, 48860, 0, 0, 0, 0, 0, 48866, 48867, 48868, 48869, 48870, 0, 48872, 48873, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48883, 48884, 0, 0, 0, 0, 0, 0, 48891, 48892, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p03F: 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 48577, 48577, 14100, 48577, 48577, 48577, 48577, 31784, 26393, 46449, 37254, 16339, 44416, 23990, 9154, 28436, 29935, 24798, 36128, 24689, 38165, 12509, 24636, 36752, 37488, 47330, 15748, 40520, 7505, 14574, 29670, 9143, 37351, 34513, 42715, 9155, 31427, 36968, 16200, 36869, 17244, 10578, 20923, 18675, 40565, 13062, 9856, 13466, 29789, 32920, 25068, 34059, 29217, 12950, 44312, 11345, 32693, 22523, 36085, 11817, 29983, 11420, 26049, 36905, 46612, 24497, 33077, 29313, 34945, 48577, 12510, 18245, 43250, 39679, 40354, 26397, 25606, 48577, 35927, 15720, 48577, 35952, 48577, 48577, 48577, 43992, 28239, 48577, 15774, 22306, 10833, 16242, 37603, 24405, 25472, 25056, 39238, 8093, 7435, 44572, 21741, 32784, 41338, 48029, 12102, 9552, 45623, 43843, 15508, 32936, 48577, 38995, 34656, 20655, 20656, 40729, 46068, 48577, 48577, 34802, 10402, 14550, 19541, 46644, 48577, 16474, 38610, 48577, 31422, 34635, 17116, 37352, 13598, 48097, 32410, 28057, 15424, 25276, 19560, 40646, 41095, 28185, 41429, 21064, 24406, 12190, 32820, 44760, 26150, 33947, 24295, 24883, 16092, 40444, 40066, 31569, 31432, 10333, 44030, 9369, 23096, 32323, 7324, 31486, 31174, 11261, 29548, 23384, 42596, 16569, 34060, 29915, 48577, 47357, 18755, 18880, 18196, 8169, 48577, 48577, 45655, 19834, 16441, 38843, 15840, 9871, 26565, 47600, 37208, 47793, 39371, 23749, 48577, 48577, 48577, 47060, 7341, 39549, 17009, 38974, 48577, 37211, 9531, 33255, 39387, 21087, 14929, 32400, 48577, 42365, 12627, 20045, 24023, 41698, 25888, 37198, 43730, 29902, 26493, 24623, 8913, 48577, 26884, 7760, 18827, 48577, 42344, 17570, 11540, 17666, 28937, 11091, 24577, 36141, 18563, 8435, 7653, 10325, 42114, 12191, 7529, 41192, 48577, 48009, 12154, 32459, 7908, 12103, 37645, 35778, 7991, 15630, 41627, 38713, 47561, 41478, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48896, 48897, 0, 48899, 48900, 48901, 48902, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48965, 0, 0, 0, 0, 0, 0, 0, 48973, 0, 0, 48976, 0, 48978, 48979, 48980, 0, 0, 48983, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49006, 0, 0, 0, 0, 0, 0, 49013, 49014, 0, 0, 0, 0, 0, 49020, 0, 0, 49023, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49068, 0, 0, 0, 0, 0, 49074, 49075, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49088, 49089, 49090, 0, 0, 0, 0, 0, 49096, 0, 0, 0, 0, 0, 0, 0, 49104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49117, 0, 0, 0, 49121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p040: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 14575, 44161, 7386, 37171, 27115, 33811, 21232, 16447, 19860, 31334, 20732, 41699, 39172, 22503, 27482, 41110, 33479, 38353, 30908, 18641, 32590, 46450, 36494, 22101, 40099, 30739, 7491, 27035, 16394, 48577, 36159, 14490, 21869, 10081, 34829, 8445, 26890, 34851, 16399, 17957, 18470, 26456, 17419, 20016, 32214, 15563, 18716, 9321, 16415, 14970, 28065, 7317, 43745, 34831, 24884, 20924, 10851, 20925, 11017, 30162, 10371, 41646, 13668, 12932, 48577, 24886, 39631, 8778, 40566, 27207, 42469, 27399, 30775, 30776, 38377, 40272, 44591, 30875, 10594, 42305, 43599, 42056, 19598, 48177, 41018, 27665, 25744, 22414, 42309, 41799, 35553, 16906, 18835, 43694, 34061, 9804, 24691, 48577, 41075, 11351, 10350, 28610, 32161, 27545, 19284, 44338, 45932, 18234, 9723, 8798, 31052, 38881, 20529, 22840, 26585, 26795, 45938, 8695, 19469, 22209, 28299, 8597, 34410, 34877, 27938, 25101, 27614, 27944, 38927, 9985, 32112, 20804, 19330, 39411, 40868, 28962, 36865, 18021, 44651, 48577, 10946, 9258, 48398, 13107, 47835, 19368, 30868, 48577, 40567, 19031, 34178, 22884, 48577, 13773, 42186, 44237, 7930, 20891, 46292, 19958, 34257, 12876, 13423, 11628, 15425, 27642, 46337, 46408, 48577, 41873, 31350, 17399, 16201, 31260, 26282, 16589, 23442, 32970, 14441, 12116, 41647, 16152, 20926, 16570, 17035, 35619, 38338, 46602, 28796, 13166, 23539, 35734, 12017, 41433, 16954, 48577, 48577, 12785, 48577, 27453, 20838, 27666, 21818, 44314, 46369, 46151, 45770, 40483, 48577, 7826, 17667, 16316, 17940, 23821, 38642, 9104, 22783, 26052, 11904, 24702, 42611, 31382, 34567, 48577, 41146, 21130, 31493, 18957, 35333, 11406, 13873, 25649, 48577, 28355, 35955, 12414, 38022, 15690, 12213, 24521, 9404, 39685, 29348, 23474, 47444, 28733, 18518, 43728, 39689, 23711, 27823, 7744, 48577, 16833, 8363, 15098, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 49181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49291, 0, 0, 0, 0, 0, 0, 0, 49299, 0, 0, 0, 0, 49304, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49320, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49347, 49348, 0, 49350, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49375, 0, 0, 0, 0, 0, 0, 0, 0, 49384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49404, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p041: 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 19241, 43016, 25582, 48577, 43338, 22019, 19215, 10579, 13542, 14087, 48577, 41781, 47786, 45768, 30697, 44305, 32292, 19218, 28797, 18757, 21819, 33817, 48577, 48577, 29628, 27751, 9619, 25780, 24185, 11391, 48577, 11974, 33614, 12378, 30630, 48577, 23570, 25420, 24968, 32628, 44228, 42962, 13139, 30677, 42661, 28631, 15099, 20235, 41453, 14616, 32965, 39338, 48577, 48577, 8446, 34201, 30237, 28636, 46940, 36211, 36571, 36572, 32881, 43039, 25053, 7460, 17624, 31727, 24408, 16769, 48135, 35262, 44907, 41520, 9785, 37625, 21967, 36807, 44105, 19002, 20255, 32946, 26764, 21809, 48011, 21672, 7395, 35469, 23520, 19181, 32279, 10118, 14033, 22805, 28423, 9525, 36365, 40839, 21599, 18758, 30787, 20955, 26834, 41580, 48577, 46850, 37178, 48577, 7336, 29411, 9594, 36087, 14304, 19187, 30594, 11172, 35629, 47907, 29040, 37083, 33908, 25811, 8792, 24186, 26647, 40409, 9705, 18777, 27024, 15814, 24721, 12663, 45939, 48053, 48577, 48577, 47117, 7735, 12051, 31831, 48577, 25676, 39403, 14801, 17065, 10538, 21573, 14157, 10923, 44971, 17887, 42289, 41423, 42192, 36867, 45761, 44163, 41231, 42293, 22698, 18657, 23739, 44991, 10420, 48577, 48577, 33986, 48577, 28899, 27744, 17840, 11388, 45151, 41023, 21243, 47917, 44206, 35904, 22529, 31767, 48577, 10612, 21530, 41247, 46558, 10947, 29316, 31385, 48577, 32088, 23616, 43251, 32723, 34961, 30896, 34995, 48577, 14415, 48577, 27106, 18466, 48577, 48577, 17158, 31368, 11255, 32334, 13819, 24442, 7722, 21082, 40791, 26483, 48577, 45135, 47158, 18331, 43468, 48577, 46822, 31073, 48577, 15643, 20368, 47568, 47569, 22928, 28776, 32968, 45506, 7499, 46972, 16224, 43076, 10664, 19393, 47409, 23858, 32604, 32671, 46533, 28158, 9666, 48577, 48577, 42744, 22153, 8895, 10589, 22333, 13547, 37977, 43112, 46224, 41656, 48577, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 49411, 0, 0, 0, 0, 0, 0, 49418, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49430, 49431, 0, 0, 0, 0, 0, 0, 49438, 0, 0, 0, 0, 49443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49460, 49461, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49512, 0, 0, 49515, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49542, 49543, 0, 0, 0, 0, 49548, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49572, 49573, 0, 49575, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49588, 0, 0, 0, 0, 0, 0, 0, 49596, 0, 0, 0, 0, 0, 0, 0, 49604, 0, 49606, 0, 0, 49609, 49610, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49621, 0, 0, 0, 0, 49626, 0, 0, 49629, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49651, 49652, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49663, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p042: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 33127, 26330, 30141, 46122, 17251, 44592, 12309, 46152, 14706, 33432, 25332, 35744, 31989, 26769, 42491, 7986, 16907, 16546, 28283, 15975, 48577, 34221, 22635, 35630, 11645, 47364, 35838, 23023, 31607, 40780, 13674, 9684, 18627, 11761, 33108, 46609, 31043, 21123, 48186, 37991, 48577, 48577, 39132, 28179, 30345, 35160, 21921, 46379, 33705, 36183, 7830, 35763, 31140, 38273, 32699, 26476, 18235, 35199, 47173, 30351, 27606, 21131, 33707, 27423, 34683, 25361, 24007, 20530, 24093, 47081, 13143, 48577, 33149, 16373, 14603, 27059, 35507, 20302, 36107, 40337, 22921, 38498, 14522, 26484, 9480, 9726, 25366, 42618, 11821, 45127, 27156, 44684, 47107, 42875, 12416, 19307, 37907, 35963, 33317, 40324, 35203, 35107, 30985, 25541, 43280, 48577, 24071, 24239, 14798, 25104, 25242, 39690, 40055, 29201, 27318, 39407, 32480, 47712, 34759, 41713, 8761, 25425, 17889, 30516, 24994, 7853, 8456, 18169, 18170, 48577, 9668, 29547, 31738, 27738, 21592, 9374, 26979, 33141, 38075, 48577, 48577, 24169, 32281, 48577, 19155, 39775, 48577, 34387, 43695, 48577, 28284, 18765, 21604, 41585, 48577, 33069, 37138, 40313, 46254, 27079, 39143, 26654, 48577, 18784, 35956, 40044, 42526, 8599, 26374, 14523, 24545, 11991, 11300, 12667, 12850, 23143, 11192, 39408, 10102, 27327, 31149, 31849, 46451, 48577, 48577, 48577, 18333, 15639, 10779, 16587, 28058, 9145, 18467, 16083, 42193, 26891, 37738, 48577, 48577, 48577, 32822, 41188, 46525, 27647, 20514, 48577, 45966, 48510, 44981, 25054, 48577, 47347, 8457, 32606, 44554, 48577, 11568, 14363, 43077, 27348, 31689, 48577, 37749, 19816, 9324, 48577, 8863, 14501, 44998, 24144, 14502, 32057, 15378, 14336, 14068, 46547, 36504, 44594, 21233, 30703, 21749, 23524, 10309, 8110, 28977, 43163, 40842, 27979, 41339, 15296, 48577, 28882, 36741, 8285, 45734, 37820, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49684, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49704, 49705, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49735, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49769, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49793, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49803, 49804, 0, 0, 49807, 0, 0, 49810, 0, 0, 49813, 0, 0, 0, 0, 49818, 0, 0, 0, 0, 0, 0, 0, 49826, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49847, 49848, 49849, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49861, 49862, 49863, 0, 0, 0, 0, 0, 49869, 0, 0, 0, 0, 49874, 0, 0, 0, 0, 49879, 0, 0, 0, 0, 0, 49885, 0, 0, 0, 49889, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49914, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p043: 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 22636, 42165, 29233, 39909, 16098, 36095, 16911, 19061, 35683, 48577, 42243, 12161, 30812, 21174, 26298, 27424, 27425, 20175, 26064, 14518, 29193, 27288, 21001, 15392, 8917, 18836, 35221, 42255, 28839, 21135, 24769, 9249, 20195, 36423, 25370, 48396, 34159, 43510, 12668, 11093, 9406, 27619, 41835, 23681, 10987, 20647, 34758, 32187, 28865, 26494, 48577, 34167, 26497, 47492, 48577, 11016, 22012, 21467, 14364, 43079, 32974, 9450, 32545, 15297, 23601, 35513, 44241, 44014, 13024, 25297, 47573, 35725, 30124, 45816, 20598, 11456, 9379, 22872, 12074, 48577, 17276, 17277, 27995, 18323, 16139, 12773, 15216, 41121, 27262, 26971, 23781, 16487, 46148, 35735, 44596, 48245, 24191, 26054, 38494, 23949, 19719, 24583, 24262, 48577, 30175, 42086, 37500, 37361, 29588, 48577, 46141, 16852, 48577, 40815, 28189, 32343, 37986, 46548, 13407, 37995, 9212, 48577, 18690, 41153, 45325, 24598, 41746, 18731, 41232, 18171, 8005, 32452, 39871, 30240, 24995, 47268, 43080, 40913, 26461, 22579, 11263, 48577, 28168, 17252, 10270, 26019, 45924, 35745, 15139, 17847, 45617, 31337, 35346, 30042, 16688, 48577, 19134, 11153, 48577, 14321, 14322, 32912, 30680, 35016, 21743, 48577, 41793, 7945, 42484, 48022, 28424, 11433, 7728, 9600, 36473, 17374, 48523, 7737, 46186, 37497, 16055, 8458, 14388, 47579, 38632, 38194, 47020, 47359, 26020, 38198, 16960, 31917, 23457, 45299, 35196, 27459, 12888, 30813, 9623, 30011, 24722, 34160, 25683, 35286, 30720, 44896, 15011, 40724, 22096, 12911, 29954, 16631, 28961, 32591, 46446, 15593, 29861, 35980, 10262, 11531, 17559, 47640, 27861, 8888, 30742, 34322, 8365, 22104, 35004, 48577, 16507, 28146, 18940, 38732, 14387, 40644, 27968, 48577, 38949, 46944, 32993, 21729, 13219, 46298, 33745, 27203, 8459, 17323, 44258, 39618, 29384, 28464, 9497, 9370, 48577, 30695, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49929, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49970, 0, 0, 0, 49974, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49999, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50023, 0, 0, 0, 0, 0, 50029, 0, 0, 50032, 0, 0, 0, 0, 0, 0, 0, 0, 50041, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50061, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50075, 0, 0, 50078, 0, 0, 0, 0, 0, 0, 50085, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50149, 0, 0, 0, 0, 0, 0, 0, 50157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p044: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 19804, 47889, 25993, 22327, 39628, 38779, 9445, 38231, 46739, 48142, 23307, 11740, 36576, 11264, 12786, 11539, 31807, 46225, 45650, 32782, 8967, 19591, 38802, 47415, 22154, 15962, 19404, 12152, 10380, 35660, 33016, 39776, 18818, 30603, 47596, 35551, 9857, 38289, 22628, 22582, 16436, 15571, 14597, 11765, 9616, 47039, 10041, 23937, 40662, 45831, 46241, 44325, 16908, 16171, 45322, 12372, 19285, 35161, 36025, 16366, 39136, 26649, 13960, 7619, 29889, 38651, 7300, 27157, 29896, 27158, 42108, 47108, 9250, 43724, 37910, 32491, 23634, 41601, 10070, 32258, 46412, 30356, 48577, 35831, 14755, 34582, 48577, 12570, 12104, 35888, 36525, 10786, 35755, 20071, 34838, 18796, 24971, 48577, 48577, 10364, 21205, 14162, 16245, 15236, 14029, 48577, 14191, 8256, 36168, 12934, 48577, 12942, 9376, 37635, 46155, 26332, 30582, 28079, 31131, 48577, 48183, 35155, 48577, 44049, 47285, 35766, 48577, 35336, 9390, 38978, 20531, 9639, 15501, 36286, 10358, 15510, 14788, 38571, 38716, 42089, 27775, 29422, 26797, 33345, 27188, 9631, 36634, 22395, 7781, 39988, 40436, 30744, 48577, 48577, 33725, 18651, 28947, 39965, 10407, 12347, 14958, 43469, 7492, 32450, 32645, 26633, 14584, 31973, 34260, 17627, 8722, 12292, 27881, 12731, 48577, 48577, 23076, 48577, 9836, 13985, 44106, 17520, 48577, 16514, 41234, 24053, 21154, 30696, 31980, 37751, 42594, 24904, 48577, 48577, 41657, 43116, 43422, 30562, 46226, 39104, 43117, 42405, 38480, 46685, 46997, 17280, 11572, 15124, 11513, 30137, 22993, 11058, 48577, 37418, 31750, 11751, 15804, 22971, 31991, 31992, 46688, 27230, 24455, 47277, 35749, 46689, 16490, 24867, 18124, 23451, 13032, 11706, 43604, 48577, 48577, 30584, 48577, 9838, 26929, 13614, 43362, 9872, 32977, 17777, 32927, 15132, 23548, 40569, 20160, 43164, 27021, 48577, 26773, 19863, 35585, 17366, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 50258, 0, 0, 0, 50262, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50273, 50274, 0, 0, 0, 0, 0, 0, 50281, 0, 0, 0, 0, 50286, 0, 0, 0, 0, 0, 0, 0, 0, 50295, 0, 0, 50298, 0, 0, 0, 50302, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50328, 50329, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50350, 50351, 0, 50353, 0, 0, 0, 0, 50358, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50368, 50369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50388, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50409, 50410, 0, 50412, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50427, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p045: 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 48577, 24480, 48114, 48374, 42244, 15913, 24192, 30709, 16229, 24481, 8994, 35586, 48577, 48577, 35337, 11128, 20177, 40161, 8186, 40848, 21426, 30352, 25362, 39760, 48568, 13178, 11526, 31679, 28263, 45794, 26204, 42788, 33730, 44349, 18441, 24201, 29253, 48577, 48577, 24202, 48577, 48577, 34779, 48577, 43222, 28940, 34950, 22956, 15511, 42619, 12722, 32430, 9690, 48577, 36398, 31551, 8845, 35510, 37900, 13876, 33315, 7362, 30817, 48490, 23057, 14734, 48577, 43566, 48577, 33242, 13564, 19098, 40339, 45552, 35964, 36112, 47109, 43255, 15330, 14107, 48577, 22357, 19995, 9812, 39499, 26724, 48577, 8618, 25378, 21010, 23281, 20046, 48577, 10527, 23792, 40505, 14799, 26126, 45744, 17698, 19490, 28558, 43732, 40056, 36302, 23871, 45558, 23219, 48577, 31063, 21788, 29987, 14538, 36961, 25206, 27320, 47955, 40185, 18385, 27321, 20854, 45267, 11833, 24630, 32435, 47491, 43455, 17392, 48577, 43312, 26263, 45060, 32437, 25428, 28703, 44735, 29102, 48577, 43018, 29104, 43019, 31012, 39231, 11200, 43415, 27388, 38804, 28170, 22470, 48370, 39249, 41668, 37084, 36322, 38442, 35641, 43448, 10966, 47312, 26781, 44805, 29086, 27537, 45445, 37617, 24126, 31975, 28154, 34203, 8464, 47988, 7934, 48577, 22027, 39769, 23188, 29301, 23077, 41323, 45764, 42203, 23308, 18875, 38805, 14093, 42052, 36649, 44039, 22155, 24149, 48577, 24170, 10508, 19839, 18284, 45977, 15380, 10155, 16640, 21750, 27123, 10121, 36022, 27980, 40494, 24303, 41587, 35157, 34144, 43165, 9056, 11766, 18026, 37636, 12961, 19449, 15985, 17261, 9213, 40665, 25511, 9508, 9509, 43223, 41079, 41681, 45455, 17375, 43872, 48196, 48577, 22531, 44351, 30462, 46309, 26520, 48577, 48577, 34780, 21263, 16682, 30357, 25231, 48577, 36783, 20506, 23469, 43256, 43848, 11716, 41823, 21007, 41286, 38129, 39564, 28919, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 50432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50444, 50445, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50469, 50470, 0, 50472, 50473, 0, 50475, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50485, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50498, 0, 50500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50512, 0, 0, 0, 0, 0, 50518, 0, 0, 0, 0, 0, 50524, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50540, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50560, 0, 0, 0, 0, 0, 0, 0, 0, 50569, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50604, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50622, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50662, 0, 0, 0, 0, 0, 50668, 50669, 0, 0, 0, 0, 0, 50675, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p046: 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 15520, 16004, 48577, 27948, 47619, 28194, 39569, 38216, 24601, 9517, 27624, 20218, 28622, 9892, 37564, 40878, 29088, 26608, 48410, 22493, 22370, 17417, 48577, 48577, 44637, 38130, 47451, 48577, 48577, 42992, 48577, 13108, 15220, 8371, 47507, 48102, 34643, 39233, 28493, 48577, 20687, 41324, 10932, 29038, 32675, 46977, 33179, 48577, 33502, 44578, 48577, 21120, 48577, 26024, 17195, 8865, 43144, 48450, 45978, 44601, 37637, 28508, 16641, 22167, 8283, 9502, 48577, 14046, 30794, 42167, 23266, 32903, 18027, 41340, 40290, 48577, 23267, 48577, 40153, 9214, 22722, 11972, 40962, 7774, 29194, 48231, 48577, 36474, 11213, 10750, 28725, 16680, 15028, 40315, 12723, 37901, 22214, 23277, 45628, 33083, 14003, 25371, 27175, 48577, 17091, 27176, 25677, 48577, 43800, 48577, 16694, 11922, 24269, 13660, 48577, 8769, 48577, 38782, 48577, 12679, 12680, 39619, 24661, 48577, 33747, 40121, 34123, 38070, 48577, 48577, 17725, 44045, 26035, 23549, 43760, 34065, 22046, 30809, 20295, 45200, 48577, 30818, 48577, 25236, 19661, 26589, 11409, 28673, 8960, 24637, 25430, 15758, 10590, 41016, 39539, 18200, 8330, 48329, 12255, 12256, 19188, 33101, 10351, 36384, 48577, 29163, 47084, 25525, 14793, 20735, 16621, 38986, 25170, 41053, 32632, 36240, 29836, 40438, 33575, 46950, 37502, 36969, 36499, 42587, 40240, 29838, 42195, 42196, 29089, 17517, 28880, 43528, 14551, 28251, 42156, 37670, 44887, 39240, 47352, 44888, 34356, 27525, 38783, 19809, 36216, 14764, 41236, 28497, 11635, 27389, 8730, 48577, 28110, 44580, 14210, 46843, 32542, 40930, 26289, 19020, 41390, 28347, 17352, 20031, 13551, 18485, 37015, 30093, 11893, 38825, 35125, 27278, 40450, 38644, 31759, 46030, 36222, 40570, 21606, 21912, 19189, 36377, 26643, 41907, 19431, 34470, 24003, 37641, 10345, 9554, 21083, 44175, 18952, 45739, 35343, 15990, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 50690, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50710, 50711, 0, 0, 0, 50715, 50716, 0, 50718, 0, 0, 0, 0, 0, 0, 0, 0, 50727, 0, 0, 0, 0, 0, 0, 0, 50735, 0, 0, 50738, 0, 50740, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50754, 0, 0, 0, 0, 0, 0, 0, 0, 50763, 0, 50765, 0, 0, 0, 0, 0, 0, 0, 0, 50774, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50791, 0, 0, 0, 50795, 0, 50797, 0, 0, 0, 0, 50802, 0, 50804, 0, 50806, 0, 0, 0, 0, 50811, 0, 0, 0, 0, 50816, 50817, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50828, 0, 50830, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50852, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50899, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p047: 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 28397, 39145, 48577, 13793, 10756, 37902, 46265, 16972, 10232, 10689, 45428, 19100, 26235, 24954, 23836, 37327, 18903, 38665, 7622, 33832, 35430, 26623, 36030, 40461, 21368, 7425, 35797, 9983, 38134, 37155, 19911, 10444, 10361, 44706, 39574, 40392, 48577, 48577, 48577, 28398, 48577, 41963, 31860, 20476, 35094, 22328, 24915, 21754, 48577, 26691, 25108, 48577, 11248, 10793, 39755, 31489, 27018, 34666, 9876, 10804, 16377, 44340, 43365, 48577, 25516, 23831, 34684, 46271, 34762, 18860, 48577, 48577, 14196, 48577, 33436, 48248, 22184, 22348, 37117, 25788, 37908, 10955, 47620, 25109, 48577, 46278, 46120, 48577, 43051, 11135, 28498, 9094, 35370, 42862, 17536, 41538, 18604, 26719, 26720, 32094, 23869, 17488, 47178, 27649, 39441, 46466, 34586, 48513, 47582, 16296, 41133, 43086, 46999, 40132, 21225, 9503, 48577, 9380, 24842, 46696, 19854, 37642, 16676, 21683, 21417, 7337, 15484, 16909, 18069, 41924, 32930, 47063, 8851, 42789, 35636, 13272, 16927, 34092, 41405, 10481, 33780, 31657, 48577, 48577, 11543, 17903, 13467, 10509, 37987, 32857, 34581, 9415, 19552, 45246, 30539, 41566, 15436, 44559, 15259, 30246, 46675, 35987, 48514, 10307, 32050, 44170, 17653, 18063, 16858, 14211, 20550, 45147, 36985, 12058, 37017, 15471, 48520, 18201, 48577, 9201, 46103, 22267, 36042, 22186, 15485, 18773, 11485, 43920, 11465, 35637, 10752, 30968, 9420, 39983, 26659, 9482, 30819, 20431, 8602, 19481, 46776, 47481, 32095, 45947, 19669, 8667, 48577, 24605, 24615, 45047, 32263, 10489, 15422, 9835, 36145, 34345, 17436, 31430, 30541, 9161, 28156, 36982, 11150, 11884, 44994, 46676, 10421, 11257, 8485, 27111, 7694, 36530, 27656, 25014, 15034, 10502, 31938, 36645, 15273, 23385, 20269, 48577, 48577, 48577, 46476, 31915, 48566, 10872, 23200, 25069, 8173, 13709, 38555, 48577, 47912, 26040, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 50946, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50980, 50981, 50982, 0, 50984, 0, 0, 0, 0, 0, 0, 0, 50992, 0, 0, 50995, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51007, 0, 0, 0, 0, 0, 0, 51014, 51015, 0, 51017, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51028, 0, 0, 51031, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51060, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51086, 51087, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51185, 51186, 51187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51197, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p048: 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 36043, 48577, 11174, 24869, 36591, 23352, 10160, 22187, 37080, 18685, 14777, 8555, 48577, 39202, 38385, 19869, 32162, 23236, 18231, 31817, 35491, 9419, 48577, 31940, 29891, 29414, 37509, 42251, 32709, 41276, 11909, 13273, 10903, 12106, 27234, 41107, 14004, 8906, 46310, 11190, 10094, 16931, 13768, 48300, 12757, 23537, 36304, 45048, 32264, 47494, 25311, 10372, 46417, 15451, 33804, 36676, 22969, 7272, 48577, 31760, 34678, 17132, 33558, 37535, 45948, 25725, 21511, 24377, 48577, 11473, 32666, 44984, 22130, 22541, 14552, 30543, 17908, 15244, 25857, 17919, 37369, 27657, 36531, 22035, 30698, 46580, 31691, 16206, 36541, 23748, 26924, 43544, 26042, 44776, 21757, 29883, 48577, 40155, 8744, 19138, 47428, 32712, 33196, 38440, 9842, 22785, 33612, 29645, 26721, 40675, 48577, 11782, 22789, 47672, 9967, 34955, 10956, 35515, 8191, 22438, 48577, 47122, 38140, 27676, 25394, 48387, 28871, 25431, 30753, 44986, 48577, 43167, 39039, 10427, 48577, 32755, 10443, 29001, 43993, 19742, 9129, 14648, 48577, 48577, 11870, 12874, 20592, 44254, 17614, 40889, 44510, 31967, 48577, 7788, 16059, 21468, 48577, 41530, 34652, 44031, 35119, 42472, 9593, 42228, 34667, 41662, 34721, 25000, 11767, 44621, 9215, 35428, 48577, 41926, 24062, 25168, 36323, 13637, 45049, 19684, 48577, 45093, 48577, 48577, 21637, 21800, 11133, 10404, 16142, 39814, 39517, 7380, 16835, 44411, 23989, 48577, 37040, 10410, 40527, 31876, 17438, 48577, 12524, 9443, 12879, 41754, 47992, 48577, 43589, 9929, 48577, 24153, 35620, 26536, 26541, 48577, 36082, 29521, 25774, 30446, 12101, 37081, 14238, 9506, 20970, 42779, 19648, 12535, 22247, 8366, 24045, 43023, 11504, 11507, 30241, 24127, 45293, 35868, 30247, 11872, 21887, 40933, 14590, 48577, 40934, 14393, 19220, 47418, 32456, 14429, 21971, 17198, 24844, 46697, 27417, 44205, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 51201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51212, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51222, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51320, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51330, 0, 0, 0, 51334, 0, 0, 0, 0, 0, 0, 0, 51342, 51343, 0, 0, 0, 0, 0, 0, 0, 0, 51352, 0, 0, 0, 51356, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51372, 0, 0, 0, 0, 0, 0, 0, 51380, 0, 51382, 51383, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51395, 0, 0, 0, 0, 0, 51401, 0, 0, 0, 0, 0, 51407, 0, 0, 51410, 0, 0, 0, 0, 51415, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p049: 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 2, 2, 1, 1, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 2, 1, 48577, 9704, 26991, 43366, 27513, 37085, 23205, 48577, 48577, 27429, 32713, 44658, 31193, 27294, 21779, 29855, 21180, 37781, 19897, 27183, 20452, 41252, 8076, 15698, 10076, 24643, 24294, 31878, 13901, 43785, 45142, 10423, 46839, 32457, 48577, 26290, 22388, 16861, 45005, 19035, 29880, 9799, 13993, 9949, 33388, 34389, 33824, 40541, 43697, 34390, 10884, 42505, 17262, 14782, 42506, 41810, 48403, 35167, 21132, 14050, 39671, 16617, 36191, 31460, 10055, 17269, 27235, 45024, 11910, 31144, 21179, 33618, 28040, 44784, 48577, 29602, 46616, 47111, 11527, 44471, 27991, 37695, 20570, 30473, 35353, 30030, 36555, 23058, 11915, 35520, 48577, 20851, 20446, 7564, 20744, 42540, 48577, 42541, 25679, 45435, 7992, 24740, 48577, 18617, 26219, 37922, 39570, 36710, 9264, 46620, 47485, 8104, 27191, 40202, 29203, 43980, 48577, 40005, 24626, 45720, 27328, 48577, 42404, 48577, 48577, 30183, 40194, 48577, 48577, 48577, 33619, 47849, 48577, 33624, 22262, 19798, 20836, 48577, 28717, 7562, 11249, 38617, 16636, 40254, 36809, 41237, 12559, 45862, 35989, 29595, 40139, 40946, 39647, 35030, 22988, 46606, 38486, 19203, 32998, 38237, 13587, 18598, 23391, 15495, 11321, 39480, 31548, 31402, 23602, 48577, 41539, 43622, 32362, 17403, 11544, 47089, 48577, 38033, 41700, 39833, 43283, 28562, 46607, 11318, 48577, 34176, 13309, 48080, 22089, 40859, 44814, 48577, 48577, 40824, 12631, 36515, 16023, 42691, 17894, 42579, 48577, 24292, 22896, 39530, 35397, 39082, 41124, 48577, 48577, 12780, 23511, 47262, 28688, 10570, 20373, 8488, 47682, 25314, 17527, 7944, 36072, 10673, 26558, 39640, 34738, 43824, 31994, 48577, 30341, 19047, 37889, 42870, 42507, 48577, 10353, 17485, 8950, 48577, 39681, 9980, 19196, 48577, 17327, 11632, 46678, 30555, 23189, 32783, 48577, 43594, 40606, 48577, 18214, 11985, 48577, 32355, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 51456, 0, 0, 0, 0, 0, 0, 51463, 51464, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51490, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51530, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51546, 0, 0, 0, 0, 0, 51552, 0, 0, 0, 0, 0, 51558, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51572, 0, 0, 0, 0, 51577, 0, 51579, 51580, 0, 0, 51583, 51584, 51585, 0, 0, 51588, 0, 0, 0, 0, 51593, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51625, 0, 0, 0, 0, 0, 0, 51632, 0, 0, 0, 0, 0, 0, 0, 51640, 0, 0, 0, 0, 0, 0, 51647, 51648, 0, 0, 0, 0, 0, 0, 0, 51656, 0, 0, 0, 0, 0, 0, 51663, 51664, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51683, 0, 0, 0, 0, 0, 51689, 0, 0, 0, 51693, 0, 0, 0, 51697, 0, 0, 0, 0, 0, 0, 51704, 0, 0, 51707, 0, 0, 51710, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p04A: 1, 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 12832, 38654, 31820, 48577, 41946, 24959, 8347, 48577, 8962, 48577, 44791, 29105, 7980, 43747, 17929, 11643, 30876, 36367, 44604, 23933, 7985, 48577, 19844, 15303, 39656, 9703, 18136, 33305, 8269, 31631, 44466, 37471, 7299, 17265, 12477, 15992, 12837, 19301, 29392, 48577, 47764, 25367, 26588, 26621, 24732, 39938, 41213, 46494, 30266, 15521, 29028, 39175, 13853, 12493, 45159, 39695, 43515, 34556, 13856, 8314, 18381, 14718, 14760, 45250, 8179, 14695, 39359, 34375, 27505, 45925, 45926, 45864, 19068, 15387, 37651, 27833, 31342, 24988, 48577, 27625, 18113, 17922, 44286, 30567, 14038, 7495, 48577, 7723, 12946, 41142, 12955, 8530, 47360, 29456, 36700, 42769, 48577, 20040, 47066, 37086, 40157, 12466, 36660, 40309, 10210, 44892, 16647, 24871, 8289, 48577, 26074, 19658, 41154, 34687, 13591, 35170, 18247, 45204, 10065, 7915, 32721, 14111, 38276, 7732, 15030, 44207, 46311, 14891, 16648, 9330, 16007, 13880, 18797, 13650, 36425, 9266, 31147, 25117, 25699, 38147, 46007, 23650, 35419, 28173, 8531, 37379, 47597, 13190, 9327, 21767, 30262, 39274, 38026, 30264, 12167, 14473, 9918, 18386, 45251, 48577, 48577, 48577, 48577, 48577, 14537, 40359, 17923, 10729, 7981, 43424, 48577, 21313, 9216, 32935, 11119, 43630, 42628, 15582, 23309, 45144, 46422, 41484, 21680, 18066, 27669, 7754, 15971, 8738, 47843, 17530, 46423, 34064, 16036, 8556, 13998, 11525, 11306, 33171, 10609, 32424, 10456, 26933, 29527, 37831, 29850, 15389, 47846, 30464, 25164, 42615, 27080, 38495, 30820, 13275, 10460, 39275, 17687, 33198, 16530, 18035, 7521, 15393, 31303, 19195, 29744, 41693, 34956, 38983, 27757, 23240, 16001, 48577, 7623, 33159, 34784, 25795, 46435, 19110, 9984, 48577, 25240, 28114, 17390, 13652, 21270, 27475, 14542, 14289, 10222, 17924, 17930, 44583, 41241, 29436, 8328, 10230, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 51715, 0, 0, 0, 51719, 0, 51721, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51733, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51751, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51790, 0, 0, 0, 0, 0, 0, 0, 51798, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51808, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51821, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51871, 51872, 51873, 51874, 51875, 0, 0, 0, 0, 0, 0, 51882, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51943, 0, 0, 0, 0, 0, 0, 0, 51951, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p04B: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 44114, 42758, 41243, 33061, 40956, 24466, 24483, 44925, 13829, 19287, 33443, 24094, 30275, 18140, 17050, 9391, 32950, 38118, 35171, 7477, 44358, 39723, 17809, 42068, 39939, 42261, 48577, 8621, 48577, 17813, 36238, 25551, 48577, 47610, 48577, 39098, 45351, 43093, 13549, 44843, 21595, 48577, 9179, 36368, 43755, 48577, 42761, 28639, 33750, 8231, 16253, 7858, 27907, 15572, 14306, 33787, 48577, 47051, 42133, 20408, 44926, 34817, 36388, 38007, 41400, 47068, 43209, 32564, 34407, 18240, 28426, 42389, 20432, 35438, 43768, 8024, 18248, 18249, 42530, 48577, 42137, 24733, 38910, 14307, 13794, 45344, 47618, 43774, 43776, 21182, 11412, 12491, 48577, 23034, 43293, 42546, 20329, 14308, 28923, 11667, 31103, 41253, 9116, 27363, 34822, 27826, 24851, 30707, 30708, 34446, 15333, 9194, 8307, 8904, 42873, 38150, 18581, 14503, 30570, 26836, 8015, 7497, 7500, 15474, 30587, 32395, 37381, 43173, 9206, 29939, 7702, 48577, 41074, 48577, 48577, 44642, 10749, 25864, 42782, 24484, 48577, 28723, 39150, 38496, 48577, 24063, 30314, 47848, 48417, 47938, 10126, 7478, 14344, 44679, 24102, 15515, 45715, 19163, 11545, 35175, 8340, 8615, 45716, 48577, 17695, 24571, 48577, 17385, 45300, 16379, 10622, 25797, 27949, 27437, 26625, 7627, 46272, 47483, 18799, 14540, 12759, 36915, 48577, 13655, 38400, 38145, 19924, 10914, 25183, 8827, 25704, 20343, 28874, 26408, 33922, 48577, 16528, 28848, 43056, 22904, 37591, 37467, 30878, 9207, 22560, 25344, 15721, 16527, 17128, 23085, 17804, 23161, 45543, 36744, 23757, 8589, 18691, 30259, 42318, 37693, 36481, 35440, 22973, 13843, 7587, 20447, 27821, 23287, 23035, 7482, 26575, 31673, 31272, 48577, 22576, 17553, 14009, 39351, 28187, 35582, 21076, 29727, 29252, 35072, 10156, 28818, 26644, 35079, 11712, 39384, 23400, 48577, 12838, 30286, 36663, 48347, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 51994, 0, 51996, 0, 0, 0, 52000, 0, 52002, 0, 0, 0, 0, 0, 0, 52009, 0, 0, 0, 52013, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52024, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52047, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52060, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52099, 0, 52101, 52102, 0, 0, 0, 0, 0, 52108, 0, 0, 0, 52112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52131, 0, 0, 52134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p04C: 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 38345, 14790, 9460, 29648, 33104, 48577, 32795, 30632, 12109, 29349, 9260, 26664, 48235, 11719, 23288, 19925, 23647, 48577, 27195, 27477, 29353, 25902, 48402, 48577, 25545, 42859, 38202, 24468, 24485, 45630, 47528, 19156, 33927, 10885, 40573, 37763, 13417, 19302, 29853, 18143, 27060, 10311, 27062, 10233, 21791, 29047, 48577, 43304, 32860, 25435, 41531, 48577, 30789, 48027, 48577, 7950, 16169, 45533, 21080, 44333, 31537, 8180, 7673, 37390, 42004, 31332, 44123, 47070, 21085, 27924, 34045, 33606, 30607, 33607, 27355, 16212, 42792, 16116, 16117, 36977, 15144, 41201, 42532, 36782, 36664, 27990, 25530, 9483, 24219, 34551, 26094, 19314, 12140, 29287, 25537, 21939, 45994, 21780, 46567, 48349, 39682, 47115, 48577, 48577, 23471, 48577, 48577, 23478, 40805, 16118, 14114, 28010, 47236, 36408, 44874, 45890, 16119, 38278, 23760, 44380, 35180, 45745, 17133, 18450, 45952, 48577, 25798, 10101, 47128, 38141, 41087, 45459, 27677, 16809, 35232, 48577, 48577, 34964, 14057, 9708, 23059, 36305, 28443, 23842, 25950, 42810, 40363, 41845, 31664, 30319, 11099, 39510, 16650, 21020, 23574, 27199, 42555, 48577, 24488, 43557, 11491, 31828, 36299, 44381, 48577, 48577, 12310, 13712, 17938, 48577, 39118, 48577, 30599, 48577, 44854, 19623, 45193, 14657, 16170, 17429, 46486, 32352, 48577, 48577, 21081, 29807, 15722, 41077, 34035, 34226, 31355, 11655, 13266, 9221, 13129, 37646, 11656, 46856, 7762, 38564, 8022, 12469, 7703, 36908, 48577, 16178, 21614, 16919, 11714, 44124, 44864, 23866, 21770, 15328, 28835, 14105, 14106, 40550, 22498, 41939, 37092, 30295, 8291, 27758, 34820, 41948, 30637, 44872, 8877, 48577, 41050, 18037, 18795, 42174, 22054, 23215, 14273, 19667, 27943, 10984, 8028, 38669, 46495, 40981, 35799, 10909, 38928, 11831, 26524, 22877, 41959, 9518, 48577, 17753, 12729, 32434, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 52229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52241, 0, 0, 0, 0, 0, 52247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52270, 0, 0, 0, 0, 52275, 0, 0, 52278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52326, 52327, 0, 52329, 52330, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52349, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52359, 52360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52381, 0, 0, 0, 0, 0, 0, 52388, 52389, 0, 0, 0, 52393, 0, 52395, 0, 52397, 0, 0, 0, 0, 0, 0, 0, 0, 52406, 52407, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52428, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52453, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52476, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p04D: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 36917, 44715, 39836, 28363, 34841, 14893, 30363, 25398, 7589, 18622, 42812, 18623, 27197, 43662, 24039, 41978, 8031, 13297, 25436, 34148, 20632, 25085, 21327, 21785, 36327, 29906, 15780, 39931, 37523, 11323, 12857, 18589, 42313, 24469, 27280, 18138, 34036, 19993, 43446, 37833, 48577, 29988, 26109, 25399, 43149, 9431, 33589, 18132, 34566, 37325, 27926, 18439, 36718, 9034, 29649, 19162, 15146, 17090, 9397, 24231, 10092, 29817, 12111, 27187, 35653, 31254, 46782, 23147, 8348, 7569, 27198, 39657, 22958, 36959, 37119, 38028, 39394, 48577, 37122, 23873, 10078, 28607, 28613, 24195, 13437, 21946, 31145, 9263, 33466, 45672, 36242, 31148, 29011, 43126, 21415, 15685, 12839, 20289, 27058, 12212, 20309, 44681, 40328, 45318, 26778, 24232, 16983, 41287, 35793, 46312, 42138, 37156, 33661, 39180, 31306, 38148, 43802, 11301, 32091, 37474, 48577, 46712, 36819, 16468, 33662, 9412, 15329, 36720, 35788, 35800, 47922, 17267, 30155, 17693, 47769, 47384, 9269, 25550, 29092, 38900, 29489, 12976, 17574, 36486, 37540, 36488, 30617, 19884, 10757, 7733, 21266, 22730, 24573, 21947, 32144, 23483, 16464, 30886, 30657, 39694, 20339, 34234, 20219, 7285, 18452, 45675, 45561, 42323, 45902, 19931, 9849, 41981, 20215, 48577, 41832, 48577, 20644, 36914, 28267, 45039, 48577, 10761, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 3754, 3755, 3756, 3757, 3758, 3759, 3760, 3761, 3762, 3763, 3764, 3765, 3766, 3767, 3768, 3769, 3770, 3771, 3772, 3773, 3774, 3775, 3776, 3777, 3778, 3779, 3780, 3781, 3782, 3783, 3784, 3785, 3786, 3787, 3788, 3789, 3790, 3791, 3792, 3793, 3794, 3795, 3796, 3797, 3798, 3799, 3800, 3801, 3802, 3803, 3804, 3805, 3806, 3807, 3808, 3809, 3810, 3811, 3812, 3813, 3814, 3815, 3816, 3817, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 52520, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52557, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52600, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52653, 0, 52655, 0, 0, 0, 0, 52660, 0, 52662, 52663, 52664, 52665, 52666, 52667, 52668, 52669, 52670, 52671, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p04E: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 42558, 13304, 22563, 30401, 33673, 39286, 17273, 37658, 46061, 33117, 33674, 39287, 19334, 9336, 44393, 27478, 15585, 11102, 11103, 47637, 31405, 29679, 34275, 34274, 31789, 8998, 42430, 11789, 13379, 34883, 10534, 13373, 31791, 24853, 13374, 44078, 24854, 41609, 9039, 33203, 16942, 21489, 16020, 41408, 31207, 47136, 19681, 21033, 14936, 16652, 11366, 10008, 25128, 47866, 47496, 7629, 37566, 12333, 38043, 47497, 21336, 24342, 21801, 30027, 15155, 42635, 42885, 28195, 38508, 21540, 21541, 37291, 26939, 42887, 42559, 46622, 38403, 45748, 18076, 14407, 23899, 43378, 30079, 29380, 31307, 18269, 16563, 10544, 10552, 42816, 43457, 41546, 27576, 21539, 30663, 42416, 38944, 39698, 15586, 21542, 39288, 18289, 34484, 13506, 34242, 19341, 28297, 19936, 21836, 34177, 26858, 18077, 26592, 26271, 47965, 32864, 41179, 41731, 15347, 33354, 28115, 15634, 35596, 44232, 12052, 46282, 15641, 46920, 16763, 15645, 26276, 25191, 43095, 22068, 23922, 26576, 44394, 46497, 34289, 34295, 14377, 11220, 44209, 23150, 44208, 45083, 18290, 30482, 38510, 21335, 34979, 35443, 16039, 16040, 41493, 40059, 41497, 30494, 41501, 19525, 36946, 37711, 22545, 12229, 20577, 17146, 42901, 10003, 17779, 28012, 42557, 39761, 21277, 36754, 24874, 39762, 21281, 42444, 31474, 9137, 44165, 40242, 12401, 24665, 13999, 27082, 32529, 32530, 19507, 19508, 37712, 42888, 33923, 32531, 23896, 13305, 45563, 21144, 30296, 11031, 7631, 46043, 21091, 21034, 8984, 32620, 11788, 15061, 33135, 26307, 8985, 9561, 48075, 34277, 35665, 46062, 15401, 39320, 39321, 37292, 17863, 36838, 32569, 30889, 15666, 15876, 9117, 12258, 25445, 42818, 10277, 10133, 33026, 10134, 42637, 28043, 27099, 32570, 14547, 10278, 42076, 30999, 47206, 29827, 38347, 38512, 20346, 20077, 42271, 14938, 9562, 32572, 37715, 14902, 12763, 14638, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p04F: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 47137, 30667, 29530, 44211, 13146, 13887, 38580, 42902, 40422, 22546, 42563, 19511, 7306, 38513, 19729, 15159, 14408, 40632, 21183, 29680, 12385, 15084, 36121, 47207, 43940, 19224, 18972, 44395, 11993, 45087, 33136, 37927, 11336, 10291, 41444, 39582, 33637, 10107, 26308, 9563, 41364, 40426, 37928, 47532, 45582, 39415, 29057, 9119, 16326, 28524, 28570, 40203, 7863, 40853, 25251, 47324, 33845, 31945, 11684, 8238, 34281, 19938, 29681, 42917, 34984, 42822, 46498, 13039, 17179, 26601, 12422, 47533, 9338, 31946, 8354, 46088, 11669, 38045, 12764, 47534, 48531, 44137, 42077, 36415, 45957, 17580, 8400, 37333, 33768, 44214, 42918, 15162, 48538, 16236, 28932, 36840, 28525, 39327, 32029, 43806, 37483, 30899, 34422, 22372, 7961, 29536, 18914, 17707, 23845, 39739, 15927, 42016, 7765, 14437, 27760, 19941, 14381, 9040, 19526, 17773, 19211, 16821, 32192, 36613, 20659, 11686, 42940, 34246, 40514, 33848, 37302, 22455, 46716, 15551, 23494, 42654, 10768, 22974, 16701, 24351, 43320, 34296, 27333, 47391, 40861, 44140, 7378, 25957, 27963, 14313, 26312, 13443, 9827, 10649, 41367, 16132, 47241, 42570, 32810, 12064, 39208, 34989, 12264, 26131, 35809, 20660, 46321, 9647, 31308, 23006, 9860, 28933, 28980, 21147, 38526, 17994, 21460, 10625, 46447, 48546, 11109, 31475, 26132, 21712, 34624, 36795, 33970, 37213, 9130, 28242, 39846, 8714, 37202, 44403, 39064, 11876, 14073, 31853, 40811, 16736, 22934, 38527, 22305, 42968, 15353, 24825, 48360, 31358, 24361, 43884, 19171, 21377, 31110, 33162, 29528, 35233, 15189, 38706, 24283, 15354, 30081, 7998, 44233, 30505, 39212, 40434, 40634, 44404, 12905, 10293, 11034, 46889, 41737, 24649, 24362, 23495, 34897, 20230, 40635, 15359, 19242, 21861, 40013, 29273, 20356, 8847, 11236, 14750, 15044, 41508, 7427, 8130, 44503, 40382, 8367, 18273, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p050: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 10109, 46655, 9044, 21578, 42188, 11998, 24650, 37600, 23496, 9567, 48239, 16024, 16599, 8131, 36561, 34499, 34500, 27100, 12633, 35916, 22108, 11442, 40558, 29607, 36123, 18057, 42839, 30409, 36433, 15707, 21383, 21059, 35391, 10196, 20897, 14650, 46721, 22795, 22006, 48154, 21862, 31112, 28481, 26315, 47832, 38308, 26413, 35056, 24097, 19172, 13389, 48125, 8220, 38529, 21863, 28204, 9436, 20237, 45823, 42381, 46722, 33412, 31616, 28935, 43573, 10495, 31015, 41747, 32913, 47217, 11533, 20059, 19781, 37947, 44419, 9048, 33006, 36335, 37788, 29909, 41868, 14959, 36124, 38357, 14165, 40110, 10305, 34051, 22460, 12915, 48556, 9746, 36759, 8137, 40230, 18732, 42292, 45963, 11111, 41556, 44020, 20358, 40828, 45642, 11600, 15430, 8318, 46921, 48213, 27492, 19553, 42844, 40231, 41316, 9416, 13727, 9656, 46342, 29213, 36939, 36940, 8138, 45244, 25751, 20905, 37948, 14911, 10142, 16764, 35186, 46954, 35265, 39192, 15437, 44909, 32742, 24416, 29071, 45175, 20515, 26552, 7935, 12984, 36058, 17518, 20917, 38763, 33580, 31117, 22133, 9569, 11250, 33138, 8148, 40021, 43899, 42197, 36014, 35566, 42092, 14424, 9050, 19968, 12254, 45309, 36126, 16404, 8930, 11201, 29116, 9474, 23996, 11955, 43812, 45418, 48219, 8258, 35095, 7599, 11343, 44436, 45828, 48322, 33641, 11415, 21406, 10856, 33405, 17335, 46013, 31626, 41888, 12937, 40256, 25759, 8150, 30005, 21155, 24783, 25994, 26636, 30936, 39360, 36017, 43683, 13465, 47687, 39811, 33586, 31317, 21478, 37207, 48486, 30336, 38808, 23813, 10183, 16714, 24907, 30436, 10504, 9936, 37982, 19412, 9099, 19023, 11362, 36703, 12451, 20697, 21596, 33344, 14916, 39641, 21746, 14214, 20604, 20388, 36883, 25217, 9181, 16489, 39361, 35289, 39642, 20487, 27708, 42475, 21234, 20089, 31375, 29881, 14979, 47362, 7335, 33113, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p051: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 42762, 22335, 28987, 9943, 43150, 12564, 21354, 41019, 23021, 20278, 11272, 12367, 20704, 33406, 45314, 9548, 8944, 7423, 32838, 35840, 11070, 9873, 23598, 28544, 21171, 31133, 27124, 38560, 28904, 31762, 28545, 10162, 25074, 24006, 26164, 23103, 8065, 44646, 8797, 45341, 47072, 35043, 43962, 17477, 31699, 10473, 24509, 36289, 38009, 25717, 11210, 9964, 32468, 34547, 19101, 24574, 26381, 45345, 29125, 36135, 41833, 23968, 28317, 14310, 38573, 45129, 45319, 44792, 40580, 10917, 46126, 40582, 39323, 16699, 13803, 22674, 13804, 27480, 37104, 10136, 14312, 13805, 14314, 21099, 37106, 34985, 41732, 41738, 34251, 48575, 12523, 30916, 13484, 14823, 26821, 33880, 13485, 48575, 21306, 24307, 18825, 32875, 37713, 28444, 32190, 24857, 44234, 7630, 16122, 25578, 38674, 17393, 23576, 16216, 36491, 16594, 40551, 8989, 30495, 21849, 13015, 47970, 14819, 42081, 20110, 34452, 19810, 43096, 19856, 10051, 21437, 26872, 32438, 28445, 44793, 26855, 15735, 32439, 9645, 21438, 9646, 45302, 16535, 21453, 26877, 47333, 26880, 16291, 40825, 27493, 27364, 32730, 43376, 40192, 22453, 22270, 28979, 42645, 27250, 34307, 16597, 27105, 47189, 21865, 44745, 27732, 22852, 25129, 15432, 40195, 27411, 8983, 13380, 35856, 15737, 15009, 8987, 18300, 10918, 22075, 18301, 23109, 42419, 24096, 29355, 15163, 27680, 13442, 39513, 25020, 30851, 20101, 21373, 35129, 27007, 37030, 30410, 16473, 47819, 35057, 21384, 24826, 31686, 13106, 25273, 13456, 15708, 20242, 43335, 11842, 7270, 24417, 11428, 27765, 47821, 11956, 34920, 13955, 21235, 25193, 25194, 28905, 38851, 13621, 19679, 14476, 14477, 14478, 15039, 21626, 11195, 46496, 14940, 28047, 46789, 15160, 14941, 30101, 14946, 22393, 18733, 22400, 15646, 12738, 30140, 31066, 40578, 23001, 36988, 7513, 11129, 19337, 12542, 17212, 17216, 45434, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 53593, 0, 0, 0, 0, 0, 0, 0, 53601, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p052: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 12587, 13094, 12589, 32566, 32567, 11381, 14806, 31406, 42890, 19338, 22439, 31106, 12069, 11146, 38217, 19342, 12387, 40506, 18455, 37567, 22076, 24104, 44954, 25015, 25461, 45490, 15738, 11423, 15164, 11131, 32149, 13100, 33473, 27681, 25252, 47140, 29356, 8884, 20868, 20869, 29441, 24343, 33474, 8885, 10004, 21339, 16500, 16049, 12630, 11425, 23151, 22885, 14010, 14382, 46878, 34696, 32288, 33355, 11687, 22675, 20877, 16872, 11688, 16873, 22394, 14011, 19744, 36430, 21346, 25747, 26412, 45498, 44743, 12117, 41165, 22679, 23426, 31007, 33356, 11426, 16541, 20350, 12119, 24109, 36310, 14751, 30271, 10013, 30511, 11427, 48126, 15751, 37542, 9077, 19364, 13927, 31645, 33570, 13577, 20359, 19769, 9078, 41551, 21866, 19199, 34076, 20243, 13945, 13728, 38422, 16543, 15433, 34072, 20364, 15897, 12186, 22401, 11429, 11330, 10027, 37128, 25995, 24136, 29668, 33498, 29961, 22835, 20689, 16518, 31273, 22157, 18479, 45652, 47906, 24682, 21905, 29728, 25494, 16899, 20705, 16900, 20394, 20395, 36038, 19202, 19857, 20409, 43178, 20410, 47074, 9965, 20322, 27819, 24254, 47525, 24330, 41488, 32287, 7861, 16125, 19934, 38576, 26599, 25016, 21184, 22757, 40082, 46790, 13440, 47535, 29058, 20870, 32030, 33733, 42919, 47390, 27839, 24345, 21185, 23797, 23798, 22004, 22844, 42017, 37447, 40011, 27964, 23062, 20878, 25022, 17581, 34297, 22680, 21193, 15856, 9131, 27686, 10828, 23717, 43885, 43886, 27487, 22681, 41257, 22007, 31646, 25966, 9355, 27200, 10836, 23925, 22426, 27494, 13459, 40890, 40893, 22442, 38606, 43026, 41260, 38281, 34077, 23809, 28063, 25996, 30006, 34362, 19398, 31523, 20552, 10227, 32291, 39812, 43129, 22159, 14457, 21970, 36884, 21906, 12368, 40140, 26613, 41266, 41268, 26201, 24470, 10356, 32469, 32295, 7958, 33712, 45084, 21495, 8033, 16235, 38574, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p053: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 45085, 38178, 40579, 15587, 15588, 7959, 11720, 42894, 40583, 29573, 21628, 36197, 15928, 30325, 14158, 29452, 15222, 16151, 12187, 21583, 16166, 8349, 18454, 8105, 28372, 34424, 14608, 21563, 42638, 45218, 20536, 22547, 20537, 23060, 18078, 39206, 31947, 14481, 16822, 31413, 45384, 23065, 14714, 18095, 44420, 16842, 23246, 19008, 12362, 16898, 24674, 24683, 35377, 13623, 21617, 22226, 39048, 29824, 31942, 42565, 22591, 41739, 8674, 28579, 31968, 34170, 41361, 30888, 28680, 33044, 48306, 33998, 38511, 18967, 7862, 34282, 39049, 37659, 18413, 40083, 37660, 8079, 48309, 47829, 40088, 12337, 26604, 28243, 12340, 19554, 9162, 34726, 9294, 23105, 8699, 9312, 45956, 22371, 25838, 44079, 25907, 38696, 16550, 38351, 40221, 20857, 20858, 38042, 7487, 31710, 46624, 26856, 43518, 37783, 33735, 19522, 32309, 26269, 10769, 21981, 40214, 40863, 21148, 32312, 38597, 19534, 14167, 31617, 38788, 33126, 10174, 37926, 14130, 36722, 24332, 46182, 17274, 24334, 41474, 41410, 41851, 33788, 12860, 45721, 29398, 41445, 31408, 41450, 46879, 9648, 29401, 36330, 24107, 33793, 18052, 36731, 48406, 12120, 14752, 44807, 9657, 44816, 39704, 41748, 24420, 22134, 33420, 12985, 11151, 21584, 21156, 7530, 16859, 41896, 34921, 24433, 10184, 23594, 24449, 41673, 41819, 44881, 34881, 16123, 25125, 32770, 32146, 32147, 14349, 23983, 13573, 39584, 47638, 33121, 9465, 9467, 9468, 9471, 7329, 12311, 44132, 9732, 19509, 44076, 34744, 14545, 34427, 16580, 7675, 14400, 33003, 34290, 34492, 47860, 32131, 34449, 8709, 40869, 20052, 29363, 35182, 19536, 38054, 35183, 13240, 32980, 11820, 22841, 16382, 21835, 25446, 16536, 12590, 22847, 46787, 20750, 46125, 7633, 13306, 22656, 35817, 10813, 34239, 44134, 31835, 30208, 42431, 17496, 34885, 36008, 10763, 23900, 13098, 19339, 24965, 17817, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p054: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 27577, 40720, 26732, 10646, 16021, 40988, 42144, 48076, 17579, 19514, 13147, 12072, 36839, 27726, 18049, 24339, 37101, 39793, 45634, 39289, 42418, 26129, 41411, 26577, 29209, 19198, 42566, 22272, 11104, 25208, 37230, 43381, 14739, 8356, 31588, 31589, 21036, 9339, 15071, 7746, 13857, 14808, 14070, 17210, 36727, 22759, 34826, 30671, 17867, 46627, 43464, 38452, 38453, 10259, 28126, 41217, 38682, 11434, 13479, 38218, 18040, 17818, 38454, 15854, 41547, 22304, 26130, 14138, 15925, 26944, 12244, 30672, 10537, 38455, 15855, 15086, 20753, 17819, 10766, 34003, 28127, 37231, 15341, 42920, 12245, 29210, 24346, 8195, 44797, 16985, 38259, 31154, 38413, 14143, 34101, 21982, 29568, 38221, 28427, 26501, 25447, 32403, 43946, 12865, 47243, 34298, 47326, 36712, 39057, 42944, 30728, 30102, 48090, 16328, 11594, 38047, 40821, 17557, 28328, 15536, 29492, 42945, 39842, 33849, 18081, 27771, 12172, 32150, 21797, 17213, 45222, 37303, 13923, 30289, 29442, 8886, 15170, 41984, 17582, 45270, 17583, 17112, 21570, 43881, 15407, 12142, 47327, 37485, 22365, 16329, 22366, 48574, 9341, 25611, 13381, 28886, 35810, 34891, 39586, 19239, 30735, 14383, 14148, 16705, 45754, 39065, 42670, 25011, 47971, 27578, 27247, 46811, 42282, 19358, 47334, 15887, 34625, 45329, 40012, 17113, 18844, 22975, 18523, 36199, 39422, 14149, 41090, 40636, 16986, 41856, 23847, 42572, 7248, 30072, 33935, 36849, 17822, 40589, 13924, 37514, 17103, 45278, 44146, 13299, 29292, 39763, 7247, 16034, 23066, 41476, 12177, 39847, 8426, 18978, 28633, 18393, 40576, 23009, 13969, 14816, 19750, 28981, 27960, 43803, 17507, 44808, 25731, 30291, 26750, 15891, 29170, 10652, 33740, 24103, 28117, 48312, 17604, 22894, 39851, 39603, 23802, 9079, 46198, 45641, 24875, 7654, 27579, 25034, 35392, 15207, 9317, 17182, 17780, 16078, 34843, 16016, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p055: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 44158, 41861, 16338, 16398, 8196, 17225, 35562, 11500, 43001, 7249, 20011, 36996, 39423, 37601, 24383, 38719, 36055, 48550, 31863, 10295, 38458, 45464, 41477, 13482, 30681, 12806, 31595, 26551, 27862, 16220, 13515, 32155, 23803, 24859, 35598, 45465, 18645, 23793, 33359, 19365, 48364, 38311, 15033, 21207, 18276, 30754, 34453, 37859, 34698, 10199, 14326, 24401, 31249, 7429, 45499, 43804, 28685, 44195, 36565, 23543, 33413, 38739, 37429, 18097, 7267, 46098, 29031, 22742, 47873, 47874, 33639, 12916, 17783, 25130, 7245, 9437, 39705, 37234, 38532, 38249, 12006, 33414, 16405, 30685, 30686, 36206, 12432, 12433, 42454, 48104, 8372, 12007, 11314, 17616, 41479, 30689, 46212, 14668, 24860, 39442, 29771, 33415, 23489, 45500, 43577, 16554, 29247, 46283, 33268, 47679, 28771, 16992, 26353, 41633, 12776, 32206, 10015, 9086, 13352, 23716, 40019, 21722, 36060, 10847, 36337, 7420, 21518, 12441, 22367, 43867, 38059, 28252, 33581, 44536, 46220, 23431, 20820, 17999, 17279, 13221, 47264, 9867, 37517, 29140, 44514, 43344, 45247, 42158, 29168, 27497, 18173, 45140, 11359, 18997, 18659, 18660, 39008, 17566, 19382, 23248, 47190, 37865, 33421, 40902, 18737, 13948, 28782, 41000, 24879, 44537, 33204, 10663, 31316, 41876, 12354, 29570, 9472, 24129, 43805, 45644, 37794, 27535, 43671, 29557, 9319, 23184, 38956, 44538, 20821, 25753, 22943, 45474, 18347, 36352, 42207, 17718, 7244, 40705, 31173, 33276, 43813, 35273, 17958, 40122, 7319, 35574, 26578, 9750, 17161, 22617, 12147, 33188, 10375, 32882, 35133, 37458, 19399, 29420, 38428, 31084, 34363, 15957, 47993, 20822, 23878, 38264, 37503, 35022, 10666, 17462, 35664, 48575, 17117, 35613, 31524, 28791, 17568, 46741, 33110, 28094, 16018, 28109, 13188, 7259, 31167, 36828, 8492, 7532, 7533, 24667, 48412, 46176, 27889, 35207, 35192, 35990, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 0, 0, 0, 0, 0, 54759, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p056: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 12818, 30438, 20774, 10937, 20605, 22402, 36019, 33506, 9606, 19982, 7273, 40031, 30007, 25764, 15537, 16429, 39893, 18118, 19024, 17001, 29216, 39362, 45516, 10152, 40764, 30196, 12674, 26579, 26559, 18193, 24079, 13583, 15538, 36036, 42425, 8263, 43595, 33098, 20775, 27402, 40032, 18401, 26595, 32419, 11315, 29596, 23816, 40036, 19421, 47517, 10245, 23258, 48430, 39904, 34928, 17471, 15382, 24917, 31321, 38831, 11273, 10037, 12456, 17760, 41395, 14124, 48488, 14458, 10678, 18886, 45338, 11402, 11895, 12452, 44608, 37237, 9712, 20780, 42385, 38832, 30790, 17465, 24684, 40773, 12711, 18889, 43433, 30307, 22062, 31534, 41335, 28808, 25835, 34929, 41803, 43790, 12156, 45868, 29169, 47368, 21245, 28990, 19050, 40284, 30798, 14244, 45481, 42606, 34395, 20786, 44923, 7263, 43831, 22191, 23025, 44455, 29559, 12651, 15541, 17816, 13867, 12502, 40406, 33099, 29733, 29849, 43370, 48434, 28908, 12834, 23699, 35681, 19204, 32842, 17446, 39306, 42510, 13939, 29886, 11074, 19872, 21252, 17479, 36471, 10163, 41271, 26938, 9401, 36479, 25932, 19083, 9232, 43965, 28831, 43442, 18373, 26942, 17852, 46260, 24208, 25519, 17178, 28298, 39928, 27808, 41941, 24530, 25869, 25653, 27813, 12483, 10475, 30059, 29854, 39827, 19303, 27814, 39164, 14006, 22957, 41685, 9971, 43633, 32486, 13037, 23430, 35790, 39943, 22227, 11586, 18547, 19315, 47710, 28849, 39944, 9413, 24237, 10072, 9888, 24589, 43277, 26356, 28302, 45264, 35231, 39040, 45600, 20216, 45265, 47526, 23640, 28862, 28296, 23687, 25608, 37841, 18910, 43313, 31837, 34980, 28877, 20226, 18911, 40427, 43315, 28236, 37123, 37124, 13889, 22549, 44740, 21455, 29908, 45088, 11721, 18147, 18913, 44798, 14071, 17022, 23357, 11722, 36824, 37027, 37844, 26309, 17024, 32379, 32643, 25254, 16471, 17025, 35811, 17026, 37029, 44147, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p057: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 17028, 43396, 19173, 30369, 44414, 17226, 44809, 26318, 32176, 44422, 31619, 17030, 11341, 37866, 44818, 32178, 22900, 30373, 44829, 44830, 41532, 37053, 37068, 37069, 37129, 26293, 19037, 43180, 18591, 26236, 26254, 37098, 41490, 37099, 36790, 34068, 30322, 25952, 23002, 41409, 45303, 37843, 15878, 44481, 38405, 16749, 29828, 42640, 12699, 30891, 30892, 46439, 47852, 12543, 30850, 39290, 33471, 23107, 10175, 30489, 28755, 27840, 19344, 20000, 46795, 46796, 7842, 41255, 42921, 31560, 26945, 22273, 32733, 37249, 14611, 8217, 8218, 35879, 22454, 18522, 48540, 22760, 8403, 21340, 12895, 21273, 19734, 23003, 12861, 21274, 20098, 35911, 24347, 7712, 38584, 14843, 47772, 30167, 7866, 36053, 23291, 31953, 35979, 46634, 37336, 15625, 30103, 13042, 16551, 28474, 35820, 29686, 21440, 42078, 15062, 7594, 25958, 31794, 28014, 22657, 16284, 41220, 7678, 10708, 10317, 25255, 47540, 15408, 18082, 46880, 11440, 23410, 25711, 25712, 25842, 7595, 12266, 29443, 27725, 40516, 13445, 19751, 17709, 26175, 11618, 10772, 23988, 15555, 43321, 18053, 13774, 46129, 15190, 16706, 42183, 13970, 13971, 16827, 9776, 42021, 43391, 14411, 16288, 44803, 13197, 40091, 22738, 33663, 34439, 14152, 9042, 13045, 17882, 41418, 22976, 12239, 22373, 12547, 22396, 17409, 28365, 7426, 40469, 39604, 44903, 7893, 15103, 7716, 43003, 43524, 17307, 40880, 11443, 31509, 16079, 7251, 8275, 14632, 32313, 43889, 22310, 19954, 12908, 26581, 23776, 21985, 10545, 33483, 21109, 46200, 25035, 25036, 9356, 10554, 18395, 9357, 34199, 41258, 16990, 21442, 42422, 28686, 12777, 44516, 9365, 41426, 32207, 35455, 29773, 31620, 37605, 21875, 26340, 46506, 22796, 10989, 13391, 12288, 36012, 7430, 9453, 11242, 8276, 22462, 46725, 13976, 43027, 46726, 43028, 29510, 19375, 47820, 30525, 33244, 21876, 28487, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p058: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 22897, 22694, 36057, 23294, 28584, 20113, 13777, 21152, 15756, 44517, 14168, 29609, 16476, 37108, 24098, 14663, 41457, 31115, 23295, 7457, 33875, 14023, 28377, 37007, 10571, 43345, 19147, 8468, 24784, 16993, 13222, 47680, 18061, 8006, 8007, 44266, 12782, 26827, 20823, 32897, 42458, 16108, 22444, 48160, 44267, 18738, 14182, 42200, 41877, 8049, 11626, 26964, 10180, 13664, 37362, 43531, 15015, 47219, 21068, 21114, 17815, 15764, 11475, 20248, 30127, 23992, 39806, 18717, 24083, 13749, 37547, 41001, 19799, 19582, 23015, 43684, 35675, 10585, 43906, 22405, 35274, 35275, 34209, 27391, 35689, 38283, 10586, 37054, 36066, 32328, 47193, 24435, 47194, 7939, 33095, 45411, 13780, 36533, 38627, 46601, 41262, 15959, 46464, 7321, 16155, 41652, 22468, 36534, 44831, 38154, 40257, 25585, 17139, 23766, 10153, 29617, 8299, 10428, 26006, 25916, 29180, 31126, 26980, 27890, 47647, 34770, 34562, 25803, 10741, 26699, 8779, 21410, 9675, 34660, 47005, 46078, 22492, 43819, 13068, 10451, 46747, 39107, 16997, 31241, 21227, 12947, 33643, 28069, 11959, 41897, 35693, 45602, 31034, 31214, 24836, 38078, 47789, 31280, 45604, 40765, 33590, 33591, 7700, 30339, 23022, 13427, 14505, 32345, 27919, 13862, 13863, 48471, 12948, 34084, 14040, 14044, 35936, 12742, 28007, 14869, 18752, 35937, 12242, 42465, 47592, 20396, 7610, 31221, 19437, 31285, 22746, 43181, 29804, 8559, 13075, 20492, 42428, 43832, 41195, 35944, 23666, 21915, 18526, 12573, 32485, 31141, 41272, 39666, 39033, 17736, 7338, 41439, 12621, 17480, 32904, 21253, 24008, 23133, 25870, 41686, 35962, 38019, 18528, 25719, 25720, 32985, 24532, 25173, 32487, 9972, 41283, 41703, 23969, 7740, 37559, 34271, 32532, 33175, 47734, 47735, 34004, 42568, 26602, 22652, 47548, 47739, 18157, 18165, 23340, 42590, 18175, 40904, 23346, 34464, 26788, 48472, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p059: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 34465, 42608, 46785, 16381, 11221, 20538, 15010, 8118, 45781, 8715, 35386, 32378, 25256, 15415, 12121, 39294, 40620, 40320, 28357, 39315, 23216, 38673, 37528, 44895, 26857, 35238, 13921, 13922, 42439, 31642, 37531, 16292, 16293, 30763, 27228, 27229, 43427, 19231, 10453, 12228, 45562, 36490, 35855, 15083, 16579, 42141, 41982, 17395, 15825, 34096, 36152, 35857, 36947, 41724, 8352, 42641, 22960, 19937, 13940, 18457, 23102, 45131, 19939, 7639, 14294, 24651, 18637, 12766, 41733, 29471, 22003, 30496, 28211, 15041, 40092, 14906, 13016, 32170, 23173, 48293, 18642, 30736, 22378, 45637, 8197, 42972, 20511, 36244, 45407, 8211, 38720, 18812, 14716, 13110, 41382, 8247, 13056, 7600, 33753, 38282, 17108, 7601, 38628, 7602, 20518, 24675, 13954, 45073, 20519, 34386, 14919, 19280, 8592, 26237, 14008, 29076, 29049, 13324, 28196, 30893, 20095, 35667, 21543, 29093, 9823, 17492, 39324, 14559, 19686, 34846, 32809, 14665, 37768, 17865, 47714, 15402, 26502, 12334, 32581, 15087, 21372, 41610, 17149, 38244, 47142, 29238, 13679, 19735, 22761, 47208, 42146, 21187, 45089, 27567, 15072, 10647, 44959, 47716, 28942, 41852, 28128, 40372, 14844, 8357, 44215, 37404, 14942, 37663, 14628, 38516, 44488, 16750, 13683, 7679, 28471, 47302, 47861, 46091, 12173, 28201, 44898, 36965, 39419, 46717, 14059, 27028, 27842, 30406, 8413, 33850, 31409, 14060, 17585, 40822, 14409, 46499, 27630, 7868, 28015, 15089, 25257, 48081, 48082, 34247, 32441, 33477, 41985, 26631, 21025, 16331, 34986, 40553, 37933, 47972, 21841, 33478, 30033, 32592, 42184, 13446, 20470, 34497, 19537, 15556, 39796, 18416, 21954, 20582, 16289, 23848, 20107, 20108, 42671, 28684, 46720, 19361, 19366, 39595, 17789, 16707, 22278, 22964, 41857, 27761, 25025, 29539, 14153, 44148, 41623, 9829, 33858, 43323, 34192, 16828, 32196, 47973, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p05A: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 35052, 37784, 17883, 37478, 25748, 41505, 32500, 20583, 26222, 30083, 39605, 33741, 24287, 10546, 40223, 26751, 15104, 35563, 26955, 37940, 22688, 11559, 11560, 36797, 28695, 40524, 28245, 44246, 28138, 30272, 28433, 21958, 33865, 46902, 17227, 12909, 47720, 14075, 30049, 37215, 39606, 27489, 38459, 41624, 38534, 7252, 41630, 44247, 34999, 44248, 37452, 24384, 39427, 21650, 32134, 47775, 30415, 39430, 47875, 13392, 10110, 25972, 7288, 14062, 14063, 25752, 27448, 11798, 30292, 21723, 30193, 9417, 25286, 37606, 8834, 39866, 34558, 30687, 18861, 14578, 38334, 32943, 35919, 14669, 14670, 20906, 36496, 28488, 32209, 21380, 19124, 21288, 30924, 13051, 40562, 18335, 37544, 23502, 8451, 43346, 11013, 28407, 15434, 21391, 26319, 7458, 23583, 23296, 43404, 41512, 21651, 24402, 13021, 39431, 18396, 18468, 43578, 9923, 33943, 36760, 12552, 42294, 38618, 28292, 11561, 20060, 36941, 40905, 44539, 37867, 12928, 32776, 27012, 12355, 32916, 31482, 18862, 38362, 31022, 11476, 27539, 15439, 21027, 13729, 42739, 47220, 26965, 18739, 27450, 7389, 43579, 41002, 20824, 37797, 27041, 44910, 46530, 31803, 34348, 40246, 37411, 24785, 26901, 32453, 34908, 29911, 38061, 37456, 11882, 18176, 7579, 20918, 8008, 40745, 36942, 16773, 11158, 42208, 29870, 38959, 44832, 43786, 32668, 32883, 10667, 25481, 27016, 29325, 7580, 26504, 16298, 23249, 31525, 20086, 33239, 46351, 44833, 20825, 32676, 27741, 43590, 19583, 35278, 28713, 39453, 36170, 29406, 23726, 28382, 7982, 7322, 29871, 30052, 43131, 29981, 44584, 23928, 41069, 26629, 42599, 46017, 22515, 43820, 28593, 24160, 12819, 16783, 41577, 21159, 47648, 10154, 45517, 17193, 28458, 23881, 27787, 46177, 18353, 18354, 7603, 28459, 31215, 26580, 30031, 16362, 38549, 31322, 37417, 45929, 27543, 39459, 39460, 27908, 24919, 24685, 18487, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p05B: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 16789, 12712, 46755, 40775, 42604, 18473, 38833, 23259, 32504, 38834, 41905, 9944, 20610, 27020, 14598, 14459, 39375, 43182, 19052, 20787, 15491, 34396, 8560, 33595, 35474, 31222, 24762, 18592, 40407, 28720, 13428, 43183, 9476, 7339, 28696, 28909, 26506, 36680, 11075, 21254, 11651, 44335, 30056, 32707, 32843, 28209, 41591, 35845, 43619, 31142, 28724, 45015, 43698, 27460, 8346, 26507, 33961, 40574, 28615, 13626, 25576, 44783, 23674, 41942, 34748, 25375, 20739, 28697, 23676, 30981, 43634, 34751, 19105, 32250, 27358, 24246, 26238, 41704, 47486, 23682, 48150, 20859, 22071, 22072, 22815, 45162, 26503, 48117, 12063, 35529, 15165, 8113, 47966, 40007, 40430, 27225, 34992, 35812, 7963, 19745, 16332, 29051, 41180, 44141, 47663, 17121, 26223, 35532, 28326, 27580, 11799, 30925, 34559, 9543, 41427, 47994, 28540, 15126, 48007, 24161, 41196, 9287, 32844, 28193, 28836, 28837, 43635, 26239, 27443, 28885, 32731, 35666, 16815, 45807, 31712, 44396, 34437, 7375, 36989, 35111, 37572, 32805, 42273, 17868, 42647, 21342, 47810, 27370, 47499, 12545, 17875, 48152, 16596, 47328, 13347, 37597, 42656, 7994, 34186, 34187, 10988, 33933, 22683, 40993, 34309, 44149, 18643, 42693, 36669, 34252, 39596, 16137, 10547, 32388, 16143, 39852, 45292, 45758, 8001, 17154, 41862, 39853, 19955, 33938, 10405, 32659, 18809, 27377, 22853, 23037, 8927, 35256, 9438, 45332, 19783, 44750, 19784, 43405, 27380, 22856, 31621, 17714, 46347, 20374, 15440, 28894, 9051, 18576, 27042, 31568, 17241, 44540, 34205, 28895, 21218, 28897, 46984, 44438, 8010, 23039, 28898, 31571, 27891, 9796, 21895, 16545, 31574, 18119, 38636, 24909, 34216, 28900, 45830, 33950, 37989, 40197, 23040, 19038, 24920, 22343, 18593, 43211, 42783, 8025, 31497, 10996, 8027, 14994, 12071, 13802, 34982, 41292, 12603, 26173, 13807, 34448, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p05C: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 30210, 14948, 47641, 15105, 33794, 22689, 20471, 20478, 47644, 38056, 48470, 41320, 34646, 13822, 12618, 39986, 20860, 33723, 14350, 14351, 14352, 15545, 20096, 34486, 10391, 33675, 33676, 27784, 15540, 10141, 24996, 39534, 39535, 23366, 43982, 37699, 43983, 24989, 24990, 42178, 26738, 37704, 37701, 37702, 15547, 42179, 14016, 23244, 47191, 21586, 15647, 16412, 15648, 37180, 15660, 15661, 34094, 43460, 10762, 22559, 28472, 21145, 37929, 28739, 21708, 29859, 9714, 39053, 8316, 21630, 21047, 36512, 31954, 36429, 21048, 38416, 13140, 34106, 34253, 30109, 19367, 40224, 46403, 40225, 28482, 45906, 38723, 37941, 26676, 14064, 25818, 30121, 36438, 14758, 34583, 40247, 37042, 26149, 26155, 39017, 9717, 26159, 21907, 40285, 21929, 22066, 24942, 22216, 34608, 39178, 10314, 37246, 28567, 33468, 37445, 39322, 24336, 14133, 18968, 18969, 25610, 42906, 30668, 32574, 38581, 17299, 33843, 44397, 11130, 35444, 30669, 32575, 44960, 7844, 42274, 7488, 41446, 38585, 20873, 14136, 19516, 30900, 14845, 37574, 30490, 9695, 31000, 30491, 9826, 21040, 31948, 15773, 39587, 7592, 23578, 12604, 7640, 48543, 48544, 42079, 21842, 15743, 22658, 16266, 41181, 30169, 24353, 36632, 31956, 41617, 15172, 40696, 20050, 25438, 37337, 29752, 7596, 12267, 23111, 44965, 31957, 18314, 30225, 27631, 7446, 36633, 25258, 10709, 30105, 13383, 17305, 23152, 40697, 26862, 36843, 41182, 42947, 8710, 17592, 7649, 26444, 14154, 15417, 41300, 13198, 25961, 14302, 14317, 15557, 32171, 13447, 42675, 28019, 34193, 7379, 37850, 18567, 46890, 27375, 24284, 19754, 36850, 37851, 44150, 30845, 39214, 24285, 42185, 20756, 46507, 26224, 20584, 14076, 14077, 44505, 40093, 9297, 31361, 32380, 14955, 14956, 28336, 24288, 44010, 39607, 32660, 12606, 33866, 10548, 37032, 16080, 22311, 15861, 39220, 43398, 44415, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p05D: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 23777, 22491, 23804, 23497, 39519, 32314, 22797, 10969, 10970, 35719, 25132, 18464, 21654, 23503, 30526, 27644, 23297, 23298, 48315, 16477, 11954, 41458, 41459, 15775, 26320, 26321, 24082, 22117, 13930, 46519, 16994, 43406, 13393, 17232, 46520, 37949, 39968, 29774, 41558, 35058, 20908, 8248, 48316, 22898, 13394, 45908, 16478, 43407, 47983, 45577, 18740, 44268, 37525, 42039, 14968, 31892, 42040, 36338, 42848, 46959, 34349, 45294, 42295, 14183, 47576, 22445, 26182, 41759, 27013, 17242, 19385, 19386, 18661, 36761, 34080, 26966, 31118, 38619, 44269, 48162, 23586, 22665, 41643, 41644, 37957, 48163, 9787, 35459, 32669, 22610, 31483, 44270, 30548, 25800, 37055, 13782, 38793, 38285, 9571, 12556, 32677, 20932, 22406, 25482, 38629, 35066, 31266, 47995, 37868, 8259, 12986, 12092, 31085, 43907, 28794, 12093, 19708, 34210, 33012, 35100, 48176, 20555, 24910, 22517, 10032, 13246, 9693, 13332, 37013, 25805, 46080, 45920, 45921, 7534, 9608, 31987, 31178, 11961, 48425, 12613, 12614, 38964, 44585, 29553, 25635, 39815, 9718, 9101, 31490, 20611, 41581, 23819, 45979, 25148, 24921, 24922, 21121, 12743, 14041, 48473, 20781, 16901, 42233, 20612, 42234, 22172, 45869, 43184, 41197, 28350, 42497, 42498, 42774, 28820, 39547, 19610, 40296, 22670, 38836, 12963, 7611, 48432, 37826, 42784, 32708, 12622, 25443, 20982, 44456, 45019, 43497, 32895, 20993, 24492, 16799, 25655, 25656, 12998, 32719, 38912, 21782, 9973, 43770, 23168, 41688, 37834, 28361, 32251, 10275, 11936, 26240, 13006, 13007, 28852, 41706, 41705, 41840, 23220, 41841, 11324, 23000, 11325, 47238, 18700, 21275, 41294, 10236, 10237, 25070, 16120, 48530, 31347, 21834, 16187, 21839, 38414, 30399, 30400, 9830, 31893, 31911, 19680, 42817, 34978, 7632, 46629, 46092, 39797, 42695, 21149, 41368, 22005, 7655, 41385, 21090, 15157, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p05E: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 45217, 8393, 34278, 9337, 13307, 34713, 14452, 28753, 34097, 14809, 29264, 46797, 38691, 18307, 12423, 37845, 46065, 36122, 12268, 27843, 29537, 29265, 36693, 9070, 24654, 46881, 47309, 9124, 46882, 12906, 27854, 42973, 42974, 30110, 30855, 21983, 32813, 34714, 12275, 46593, 34803, 31362, 46331, 34113, 32389, 38948, 7894, 12283, 16757, 11035, 30122, 46072, 33163, 37545, 12289, 37860, 10144, 33416, 30530, 45503, 17031, 26902, 13665, 18004, 46599, 40746, 27386, 37869, 38363, 15246, 43062, 7903, 30128, 13225, 16156, 29326, 18814, 36172, 27394, 20087, 36274, 18877, 47167, 33507, 26701, 28071, 8780, 17036, 45518, 28072, 7906, 46081, 21356, 10038, 15294, 47027, 18127, 14460, 11403, 8516, 8538, 46053, 27418, 31286, 9912, 14870, 27134, 7911, 11076, 27601, 11181, 20973, 39557, 23622, 15702, 30099, 28629, 20097, 9037, 9041, 40554, 15716, 42140, 18636, 44136, 43949, 19704, 16725, 29825, 36723, 45564, 16726, 47715, 27783, 31685, 8406, 31501, 13890, 11398, 16820, 41475, 7778, 21043, 40856, 25840, 38517, 47717, 22933, 43570, 12866, 29445, 13043, 41414, 27568, 16050, 11690, 15349, 36845, 29399, 14741, 39743, 42833, 46891, 36616, 46892, 40638, 13688, 48552, 39856, 37033, 16838, 22936, 26753, 36755, 44092, 9298, 9043, 10630, 23504, 8452, 19556, 7385, 34638, 22509, 43810, 37409, 35059, 34639, 31671, 44542, 44423, 27572, 35134, 9662, 39708, 14761, 21587, 14202, 16774, 25586, 33423, 24669, 23727, 35135, 46985, 9373, 31674, 21598, 21588, 21160, 7535, 23383, 25767, 43538, 24998, 12307, 26008, 43132, 11171, 9945, 37070, 34931, 40402, 27574, 10185, 38550, 14774, 16728, 22951, 23027, 8561, 31223, 40298, 25196, 25197, 24943, 25872, 19892, 43771, 39395, 36747, 43853, 24248, 36749, 43459, 41291, 41607, 36751, 12799, 29288, 20348, 18915, 28202, 18918, 16186, 28681, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p05F: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 22377, 8700, 42909, 30722, 29012, 14903, 21798, 41741, 42977, 45408, 8517, 42889, 42560, 14379, 33120, 34284, 14380, 34351, 34364, 16121, 13145, 43461, 18292, 15158, 17864, 38407, 37167, 10700, 20539, 7713, 33932, 12896, 46009, 22083, 36155, 15350, 12867, 27252, 39420, 18150, 10217, 29060, 21374, 46399, 42696, 27336, 32172, 37541, 33684, 33007, 40995, 21386, 13111, 46011, 20544, 31210, 29610, 12434, 31213, 8469, 8470, 33801, 12442, 20262, 16301, 15904, 14405, 8493, 22837, 20271, 8916, 39915, 12457, 17002, 20557, 17942, 27284, 17013, 37558, 22241, 19723, 19725, 16748, 12496, 25959, 25960, 37157, 18993, 46961, 19012, 19013, 42775, 42776, 42794, 42795, 44945, 44947, 33469, 40511, 38180, 36841, 41858, 41859, 44506, 10653, 9439, 8773, 13112, 8928, 29612, 43908, 29993, 46018, 43756, 10698, 10812, 47853, 37403, 19517, 14642, 47144, 42926, 37716, 10316, 8360, 12768, 25260, 15175, 37730, 46501, 11868, 37731, 21375, 12276, 38709, 41370, 17774, 42024, 18505, 26176, 18054, 37735, 10626, 46904, 40812, 21387, 37034, 11797, 47135, 23498, 11801, 12681, 29274, 39003, 13400, 19787, 10145, 46924, 11802, 47255, 23505, 44543, 40233, 21062, 20365, 34352, 20061, 8725, 18741, 15441, 41321, 37958, 29408, 42211, 37808, 38796, 46537, 30008, 36371, 12692, 46544, 46553, 8898, 12693, 10939, 10341, 20707, 19053, 20718, 18894, 26992, 25741, 39725, 8072, 32100, 40369, 40465, 8394, 42891, 23901, 32534, 12591, 13343, 15574, 19736, 32551, 32537, 10080, 35978, 36247, 36248, 15617, 30716, 34285, 12070, 46872, 37769, 26734, 38684, 14453, 43571, 36559, 27632, 38219, 47146, 10919, 38593, 19518, 38518, 39058, 20001, 43943, 37664, 11727, 35048, 23004, 44490, 8702, 46873, 30492, 11994, 10395, 35858, 37250, 31002, 28683, 19141, 40585, 28953, 23088, 39328, 40373, 22505, 18084, 22421, 14907, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p060: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 18504, 35860, 35089, 38519, 29228, 10192, 11424, 21843, 42950, 7996, 10218, 27633, 29494, 48545, 45596, 42111, 21851, 7869, 29068, 28329, 46502, 29266, 9346, 36694, 18321, 18315, 21852, 12174, 24655, 34898, 11032, 12902, 12277, 42657, 36993, 44003, 15094, 19539, 29575, 40555, 44901, 28476, 16581, 15176, 39059, 8417, 43947, 31410, 41112, 11731, 9002, 18804, 40864, 11226, 8418, 34627, 38710, 35885, 43882, 48212, 13813, 27958, 46806, 42951, 34312, 28455, 41302, 34313, 39071, 23849, 17790, 23067, 27966, 46813, 40096, 24779, 36618, 18806, 13200, 17508, 22820, 16829, 17791, 38711, 20662, 34633, 34902, 18090, 31798, 42112, 18987, 18919, 10831, 20012, 42678, 40590, 16584, 25212, 18846, 48127, 40871, 10776, 33677, 29084, 17778, 14295, 22685, 13449, 36516, 16144, 32173, 38724, 30856, 44968, 29577, 22741, 12677, 18988, 14159, 40058, 36932, 41550, 22397, 9649, 28367, 45169, 26746, 43894, 43890, 44747, 29703, 23337, 31257, 44972, 44520, 37035, 21060, 38744, 46213, 25213, 36434, 17309, 17509, 31419, 36440, 9358, 43006, 31114, 18939, 38725, 8134, 26632, 42583, 17781, 35091, 32175, 10627, 23154, 38607, 38608, 43951, 24117, 24876, 18653, 11733, 43031, 44973, 24386, 28879, 28370, 14169, 32319, 41064, 30917, 38609, 27692, 11803, 14717, 8086, 12683, 12008, 10200, 27091, 33164, 19788, 16662, 16657, 40563, 12637, 30416, 22799, 36568, 26322, 38764, 22464, 16947, 28589, 31647, 11041, 13858, 17070, 45852, 21290, 37608, 44758, 21113, 19800, 23584, 44521, 19258, 17634, 32210, 35920, 36441, 36445, 28774, 37741, 11562, 18099, 19126, 38745, 10179, 40389, 37861, 18999, 14186, 35608, 48215, 20114, 43900, 13052, 21877, 9523, 10572, 12684, 8151, 31425, 9494, 12435, 16658, 14030, 28380, 45178, 39771, 47778, 13227, 18742, 11537, 31733, 32522, 40472, 9663, 8680, 27697, 48165, 36339, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p061: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 31353, 11053, 8158, 41004, 37799, 15946, 30938, 37959, 44568, 44272, 8471, 41005, 18662, 27702, 8472, 43100, 27499, 43901, 22427, 12553, 43348, 14187, 10418, 26910, 30871, 22706, 44292, 7323, 31431, 41761, 29145, 15679, 45179, 48216, 33093, 24099, 14912, 43580, 23250, 23251, 32337, 16157, 45113, 35279, 35292, 30558, 42212, 35096, 18828, 19584, 16414, 21896, 11431, 28594, 40124, 22407, 46582, 43909, 9633, 41392, 33982, 9171, 22430, 44919, 39100, 19183, 43913, 42096, 24437, 33209, 36173, 43357, 11638, 40922, 31121, 35873, 18718, 45182, 33983, 27767, 16234, 33805, 11808, 29962, 28073, 28077, 17038, 10877, 9526, 9504, 9499, 11963, 27709, 36257, 46020, 36936, 7604, 34771, 26702, 16669, 32346, 45475, 21602, 19039, 22403, 24670, 29230, 35102, 31532, 43547, 26193, 33644, 38084, 37130, 26639, 30946, 33814, 43822, 31695, 22518, 12957, 46756, 25768, 22038, 30448, 30440, 44611, 30143, 24912, 11835, 43959, 10940, 47029, 36937, 10505, 30791, 31988, 29627, 8181, 8868, 31763, 20613, 45606, 10867, 24688, 30148, 23260, 19040, 31325, 10601, 43552, 43553, 39024, 38853, 12458, 35939, 14042, 13827, 13825, 35302, 22192, 9682, 39906, 14461, 14918, 23823, 23882, 10941, 17199, 30800, 39461, 27710, 21357, 24977, 38551, 9529, 22173, 11896, 39658, 35993, 34044, 29739, 43186, 11278, 39376, 28351, 12460, 35996, 21359, 35073, 17361, 20719, 38095, 41030, 13429, 31549, 31540, 21916, 9635, 22749, 40300, 43620, 7613, 26934, 43187, 25198, 33295, 22344, 18510, 27097, 23668, 7340, 25199, 41596, 23401, 39307, 10900, 44457, 43559, 12249, 27212, 7347, 27135, 13836, 30610, 27829, 23604, 27098, 11077, 47075, 29161, 29162, 41592, 42104, 9233, 47094, 23136, 23104, 44126, 15147, 25520, 27602, 10617, 19118, 10089, 27215, 23675, 18514, 41084, 32497, 10093, 19893, 21948, 18548, 33833, 43290, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p062: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 24818, 28288, 27312, 36137, 22243, 15787, 15788, 47753, 15875, 44953, 38578, 20094, 40722, 34616, 32651, 39051, 10535, 38328, 21044, 15882, 20102, 31156, 19237, 31157, 45958, 13457, 30418, 20015, 13218, 45584, 20019, 19706, 46671, 22447, 19571, 23193, 15602, 12733, 45973, 31179, 15907, 20272, 20951, 44586, 20273, 41797, 26026, 18128, 45984, 39130, 39139, 11549, 12318, 32103, 18293, 18294, 18295, 14134, 34292, 36427, 26860, 18316, 24354, 14630, 35595, 8672, 13046, 21441, 33664, 42697, 42840, 33573, 18336, 14675, 41762, 34435, 34481, 9421, 45633, 31838, 23902, 30299, 7635, 12226, 32619, 14546, 32876, 45304, 37294, 46064, 13138, 22538, 44186, 22881, 15667, 33844, 9735, 37295, 16384, 22848, 38583, 12703, 30894, 46714, 32577, 23368, 27066, 33236, 42008, 28954, 7865, 10304, 32511, 38685, 31004, 7808, 20002, 44217, 15167, 7593, 38693, 29683, 46800, 46874, 14139, 12704, 46116, 10540, 19738, 41728, 23089, 8703, 10214, 21627, 38220, 18148, 44961, 22084, 7706, 31591, 12389, 46573, 45132, 37576, 28419, 42928, 34488, 47625, 30276, 36948, 13510, 22550, 46185, 30277, 15344, 29431, 7677, 7574, 45491, 37125, 22830, 26305, 31234, 45215, 18308, 8035, 9003, 46807, 29576, 28240, 9347, 29689, 35822, 42278, 46396, 45636, 41986, 8036, 17558, 28528, 42441, 12868, 10825, 29690, 19940, 27827, 27029, 10362, 41415, 11011, 31958, 27684, 11228, 19944, 15177, 45722, 47501, 12338, 9851, 28017, 28626, 23412, 15351, 29432, 7870, 29269, 25124, 28099, 16574, 31005, 21844, 35707, 7681, 37305, 37306, 7576, 21633, 47830, 29358, 46093, 7784, 7779, 12869, 28526, 21853, 23369, 25713, 20227, 30843, 43807, 23579, 28887, 9072, 45493, 30913, 17768, 23370, 34314, 20889, 46576, 28883, 16193, 16194, 32202, 34728, 12066, 45223, 22567, 42679, 40097, 9650, 18847, 30034, 47634, 34194, 28102, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p063: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 7751, 10712, 16553, 46893, 23371, 13974, 13975, 46814, 31420, 7448, 29013, 46448, 15930, 20757, 22984, 13450, 28103, 36619, 25026, 45638, 26133, 13201, 37449, 22098, 25012, 21805, 46907, 26225, 41506, 38307, 35710, 40098, 28333, 12522, 20663, 46509, 19694, 18848, 39424, 44407, 7253, 37309, 29114, 12125, 9140, 16082, 36417, 46454, 10556, 33028, 33029, 22765, 27009, 29014, 21640, 29605, 20238, 43007, 36798, 33484, 32896, 37602, 40101, 9743, 15012, 20668, 38531, 22312, 21580, 36922, 23338, 19243, 37036, 47833, 30278, 26139, 7656, 17310, 33685, 28744, 21959, 45573, 34634, 42396, 22110, 9318, 37581, 9359, 48494, 42450, 45783, 26134, 35130, 37310, 23794, 35543, 7897, 20239, 18647, 12607, 37943, 37667, 31515, 29664, 33786, 25046, 27645, 27071, 15363, 7768, 21878, 12602, 38335, 7268, 21987, 44980, 48214, 10367, 11445, 20910, 37003, 8222, 28150, 28654, 33002, 48509, 38358, 30419, 39344, 10561, 12982, 33237, 26306, 31687, 15757, 13931, 34456, 13155, 30280, 12877, 46050, 19175, 19699, 36164, 30837, 30531, 29275, 34509, 30932, 25289, 42382, 41517, 22119, 46521, 24861, 16555, 43032, 19254, 33577, 46577, 26279, 9441, 36013, 10332, 8992, 20813, 36442, 22824, 37161, 41749, 12128, 47256, 21657, 36605, 31016, 22753, 7753, 29256, 20814, 25910, 16568, 27778, 20911, 46926, 12399, 27246, 9541, 33207, 16659, 29671, 44913, 29141, 20249, 46531, 21519, 20250, 44275, 41653, 23186, 28274, 17828, 32777, 29866, 37800, 33094, 48294, 41006, 27540, 36340, 28745, 9753, 34354, 48217, 46465, 42592, 41322, 43868, 8641, 42041, 18663, 41763, 45334, 7433, 40749, 41524, 38364, 22653, 11307, 19545, 36448, 23428, 23444, 10419, 22382, 21520, 21524, 37049, 20826, 18863, 16046, 11001, 39885, 13228, 40064, 44819, 31017, 42399, 9754, 45646, 8087, 42201, 37801, 8315, 23658, 38252, 31599, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p064: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9905, 15900, 25801, 48218, 16047, 20681, 16303, 31602, 32678, 32329, 11018, 11308, 45916, 35548, 35534, 9172, 11259, 32670, 7941, 12076, 33210, 22618, 42213, 12611, 46679, 29072, 23417, 20136, 35136, 31933, 15833, 39536, 34858, 33189, 21220, 27592, 14204, 11448, 29148, 33499, 35730, 45728, 36068, 29329, 7819, 12149, 24438, 36174, 18179, 46987, 37461, 18428, 30948, 38253, 31237, 36535, 46353, 14205, 40125, 29151, 32227, 9788, 45767, 15965, 38540, 14305, 33806, 22539, 33807, 34525, 7773, 42214, 8969, 35143, 35897, 33056, 10034, 35577, 21526, 10938, 11387, 16571, 9020, 15019, 34707, 12949, 30782, 35150, 45791, 24759, 10506, 10668, 16670, 26011, 26466, 25806, 48224, 15596, 18356, 45654, 11418, 36146, 18481, 11964, 28191, 27798, 20484, 16784, 43752, 46749, 7543, 47031, 28809, 26703, 10085, 22838, 11138, 33815, 37131, 20698, 27782, 27793, 46230, 9546, 22777, 8781, 20556, 42220, 16314, 30949, 24999, 19423, 43596, 22063, 30021, 30018, 23796, 13868, 39651, 32901, 16903, 45339, 43155, 39462, 10512, 10513, 33030, 28348, 17976, 34933, 17345, 16743, 12159, 48489, 28664, 25195, 46583, 18887, 47748, 20708, 19712, 9597, 12403, 12404, 10342, 9102, 10308, 22064, 15383, 24894, 8232, 15384, 31378, 9103, 12082, 47900, 47692, 37983, 30308, 31606, 13865, 28665, 18429, 40141, 25836, 20709, 11926, 35753, 17362, 31380, 38322, 20285, 15686, 43834, 23938, 28310, 25927, 33597, 47901, 45535, 30311, 11579, 19456, 12528, 33296, 9598, 31658, 31654, 18687, 20842, 31535, 22997, 12370, 40143, 22369, 29847, 7756, 7617, 21917, 42488, 14245, 27101, 35195, 27285, 19714, 35846, 47923, 12623, 40548, 23672, 9402, 21825, 42411, 32871, 42521, 42514, 28550, 38383, 20984, 8973, 28910, 15919, 47076, 47055, 23394, 27810, 20426, 40167, 25089, 35906, 7775, 35200, 25934, 26302, 32517, 36321, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p065: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 29317, 42105, 24064, 9403, 34548, 45342, 28671, 39558, 22356, 19208, 24537, 23465, 18632, 43714, 25873, 25722, 30976, 30977, 45343, 30982, 23624, 39396, 43636, 26998, 32488, 9916, 38295, 11930, 40179, 33834, 26387, 22363, 27313, 10696, 45346, 26243, 35908, 48404, 24592, 13008, 37476, 12532, 20747, 22244, 23684, 24620, 28314, 46623, 16871, 16831, 30424, 41341, 30297, 30298, 34429, 22564, 43944, 15576, 42825, 16130, 15620, 7809, 14660, 46594, 30227, 12980, 22850, 27687, 38600, 16472, 17606, 9654, 40015, 27339, 11238, 15936, 12807, 40891, 20766, 27694, 10412, 21585, 33876, 13946, 44425, 10841, 7527, 7786, 40892, 20767, 13947, 24752, 28785, 8453, 10181, 13025, 13933, 43065, 15675, 33166, 22666, 41879, 13859, 19387, 36970, 40022, 13934, 20691, 21402, 42047, 39243, 27703, 34655, 7274, 31274, 7275, 46586, 12826, 46471, 15129, 34669, 24925, 31999, 40622, 42867, 20720, 33598, 20721, 47924, 43212, 24763, 8577, 24223, 40050, 40051, 38179, 41178, 30499, 30514, 45784, 8931, 22120, 45787, 23729, 14719, 7816, 7820, 23599, 44469, 23632, 38040, 13524, 34005, 24993, 20055, 18167, 40113, 20062, 44430, 46354, 20776, 38374, 36678, 13557, 21092, 10816, 43386, 15352, 31158, 45904, 32032, 47864, 45909, 13746, 12131, 34909, 40398, 47885, 47902, 31536, 25155, 47925, 11282, 13765, 47527, 14609, 10009, 17407, 44225, 34110, 29541, 44004, 27032, 29403, 30515, 45846, 26818, 26140, 29543, 29710, 25469, 15107, 14651, 41065, 21291, 21292, 28536, 48317, 46139, 42849, 25483, 33695, 20375, 44294, 42858, 30576, 47056, 14463, 29969, 14464, 45883, 23031, 35505, 44362, 38449, 19726, 19756, 19790, 19260, 32638, 12420, 21565, 46792, 45437, 40084, 36612, 41293, 40852, 15535, 23425, 15703, 17304, 35818, 12897, 40723, 10007, 34181, 23110, 42012, 34188, 37772, 27634, 27635, 37286, 11470, 38521, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p066: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 45094, 8121, 7489, 45569, 7845, 20876, 23292, 34006, 18317, 14645, 17503, 16874, 10108, 40990, 27727, 19119, 14813, 31561, 18085, 42953, 38697, 40377, 41618, 45570, 14646, 35915, 33971, 21854, 42025, 45330, 9007, 40468, 43780, 41116, 30228, 46400, 25265, 11472, 17505, 27033, 48505, 27855, 8716, 40872, 19120, 46094, 48237, 34315, 34316, 44499, 14747, 13202, 26866, 28576, 10176, 38152, 13386, 7287, 9008, 7490, 47336, 25616, 39516, 23115, 36670, 10235, 34200, 18810, 18811, 41093, 23175, 40736, 20669, 21198, 46908, 21199, 33665, 36856, 17955, 41863, 15559, 39766, 33458, 39989, 42451, 45064, 18854, 17234, 17320, 22317, 37610, 39614, 23299, 47345, 38747, 10557, 34071, 9301, 46214, 46215, 38613, 37611, 18994, 17514, 10413, 37619, 36573, 47886, 48443, 47316, 30372, 21352, 38765, 33543, 28537, 38766, 31649, 30693, 21296, 16849, 46578, 43066, 46964, 7463, 37620, 25135, 24881, 10115, 37746, 39991, 45350, 14676, 41011, 16111, 42741, 39244, 45068, 18870, 40833, 27704, 23194, 42384, 43783, 34585, 37971, 34584, 31653, 26912, 28255, 20263, 29095, 7465, 42048, 11477, 42222, 35617, 30375, 27746, 20699, 22410, 15836, 38287, 10205, 30783, 17529, 41898, 24450, 7332, 19826, 19848, 27094, 45355, 40286, 17532, 28078, 27903, 11755, 28601, 46026, 19041, 8060, 17356, 41072, 11346, 24929, 39370, 35997, 21360, 30022, 25156, 37239, 39028, 43188, 19859, 18833, 12312, 42477, 42478, 24474, 35945, 36898, 39998, 14779, 33956, 46162, 17539, 43213, 39780, 40497, 33914, 20725, 8067, 21421, 41929, 7350, 42515, 32850, 34597, 27142, 41277, 42359, 30398, 24516, 10442, 23137, 13276, 24982, 41950, 19316, 25880, 38916, 32722, 25666, 28312, 26436, 26244, 33467, 36138, 41842, 47488, 44931, 44932, 31943, 42432, 16104, 42436, 18087, 17594, 34501, 9604, 9602, 34021, 26695, 9711, 9715, 36449, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p067: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 48442, 9524, 40907, 19016, 43486, 31440, 14837, 29819, 44950, 44077, 32907, 29604, 14848, 15179, 25266, 14711, 32033, 36431, 29085, 36671, 34850, 46455, 23763, 23762, 48408, 27734, 18714, 37775, 37235, 10238, 19390, 30425, 43586, 48172, 37778, 36899, 23775, 23824, 27143, 25667, 28042, 12730, 38044, 27837, 8208, 45676, 34614, 34615, 28045, 47389, 32535, 7637, 30367, 13965, 13966, 12593, 24341, 16818, 19345, 21498, 8353, 40686, 10536, 11682, 33348, 32878, 45240, 32191, 30901, 44219, 15621, 38415, 9737, 33475, 41296, 14482, 38587, 48083, 24280, 40552, 9425, 12055, 32583, 8765, 37300, 12898, 46066, 26739, 10819, 42929, 15592, 16131, 13680, 24106, 30674, 34618, 15740, 36630, 20574, 27445, 37665, 23493, 21548, 26740, 42013, 26547, 27550, 34993, 44801, 17408, 14743, 8080, 20881, 13384, 15828, 42279, 39330, 11197, 11471, 29254, 34493, 18460, 40378, 11106, 47542, 11107, 35049, 7846, 35050, 19523, 38352, 21190, 16285, 19356, 26813, 29755, 8421, 37732, 7504, 14614, 14849, 42954, 15180, 28241, 38698, 18318, 41416, 13511, 40416, 46397, 42149, 25127, 32964, 14119, 26948, 46128, 17066, 46635, 11728, 45167, 48468, 34007, 34494, 45438, 12903, 24355, 25843, 20228, 10541, 35051, 31159, 14947, 45841, 39845, 39337, 22892, 30111, 35824, 38999, 46815, 16575, 39848, 20079, 19949, 16270, 7966, 27856, 42981, 42446, 42452, 34317, 28760, 8361, 14017, 42680, 25267, 9009, 28532, 23413, 17595, 7873, 14483, 47153, 12278, 11621, 42083, 15095, 7766, 27994, 15636, 30408, 32448, 32772, 26882, 33715, 35055, 46291, 39215, 44152, 33859, 16875, 37426, 45755, 28244, 28891, 43891, 12872, 46894, 45639, 9777, 12430, 16336, 9352, 21574, 7515, 15192, 20233, 7650, 14018, 22596, 28213, 47550, 8429, 25557, 9863, 33485, 35000, 11232, 29497, 34300, 16576, 45640, 42284, 10487, 21575, 34318, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p068: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 46643, 25558, 26952, 24367, 32654, 45756, 45441, 8766, 45959, 46895, 25617, 13451, 25848, 34012, 24368, 23581, 43887, 34628, 41309, 34730, 30747, 46332, 30412, 24387, 42698, 39746, 46456, 24388, 33265, 16505, 22441, 8201, 32555, 40016, 7767, 32556, 9045, 47977, 11037, 43008, 11693, 40826, 47399, 20360, 48438, 14324, 14358, 44093, 14419, 16196, 22570, 23853, 45847, 25038, 43331, 42113, 17608, 16032, 43009, 34326, 15938, 45280, 26226, 15212, 20901, 17792, 16882, 36203, 16710, 37856, 23072, 32815, 7452, 7382, 22010, 42699, 47834, 22895, 46909, 31718, 36857, 33178, 33177, 18571, 21718, 21581, 41226, 14020, 47773, 44249, 45331, 48575, 43574, 20902, 25559, 45961, 41421, 32503, 46333, 12549, 30413, 31312, 18465, 16883, 20513, 47721, 41310, 35567, 33367, 46343, 8085, 36737, 23374, 21392, 30270, 8223, 15225, 32944, 36924, 22121, 38748, 23730, 25563, 14960, 30420, 38224, 22284, 15676, 35258, 24827, 31880, 36800, 44097, 26959, 7898, 25738, 29585, 47723, 12918, 40998, 37043, 45472, 7516, 16480, 8454, 12810, 17235, 48100, 46666, 32601, 8141, 16089, 20244, 18654, 37612, 29115, 19960, 36639, 19791, 39867, 26142, 19145, 33689, 9699, 14857, 35061, 27227, 38468, 24120, 24121, 13536, 31565, 43743, 35568, 21658, 36311, 40234, 23341, 47878, 34510, 9900, 14579, 37950, 21393, 24122, 8929, 39297, 15063, 36209, 46928, 23506, 24659, 20245, 47836, 25290, 24131, 30768, 9021, 26325, 11738, 31119, 27451, 30549, 30550, 9455, 16974, 9926, 12686, 14720, 29277, 7936, 7937, 19131, 48167, 10574, 45447, 19573, 24422, 29613, 44546, 44547, 16482, 22323, 13461, 36061, 15761, 37747, 12929, 12132, 14495, 10490, 45970, 30694, 44764, 41765, 44548, 32180, 43067, 33337, 32560, 11450, 24084, 30426, 47839, 15248, 22611, 23513, 48266, 48267, 46140, 16605, 14824, 14861, 33882, 31650, 28495, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 59483, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p069: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 37621, 17075, 25988, 17460, 20828, 42850, 11048, 21808, 21732, 10575, 48511, 24831, 31169, 46734, 11451, 41431, 21661, 8088, 20595, 47887, 47997, 8932, 29614, 13356, 11199, 10116, 27064, 18398, 20251, 16775, 39090, 13604, 31120, 12641, 16886, 13026, 26364, 46672, 32297, 27773, 15367, 16060, 29672, 33582, 42724, 37412, 33338, 13987, 42383, 15455, 37972, 37809, 13753, 20063, 48173, 20137, 42742, 33984, 38960, 41889, 41779, 11344, 20138, 11478, 44439, 17644, 45649, 38370, 29929, 8323, 42163, 19261, 40761, 33011, 42049, 23445, 41654, 8214, 18871, 23195, 21069, 23196, 34914, 14973, 40068, 37414, 46929, 20376, 28074, 26913, 11203, 18345, 18187, 24793, 24085, 36768, 28256, 44297, 44035, 26973, 35099, 41134, 41135, 42093, 46355, 29930, 42467, 19586, 20934, 42468, 11202, 13907, 44276, 48295, 37810, 26974, 36452, 19574, 20935, 22408, 31806, 43685, 32800, 18748, 25761, 23912, 32228, 39715, 30074, 34262, 15603, 35926, 23661, 38158, 44298, 10469, 26114, 21812, 33926, 11294, 8324, 40268, 20068, 43133, 45922, 15283, 29153, 27403, 23734, 32684, 16431, 20390, 21813, 35677, 42304, 46365, 7921, 33384, 44844, 48112, 27747, 35293, 20088, 42223, 20952, 18832, 15718, 14725, 45769, 31035, 26561, 35550, 44845, 40269, 32685, 34217, 46687, 11965, 38163, 36769, 25491, 32679, 36074, 32340, 45792, 34922, 34085, 35739, 22625, 38813, 16422, 30442, 15837, 15838, 35538, 29330, 36176, 15966, 11479, 12990, 29039, 19596, 34860, 16308, 11453, 31180, 9793, 31087, 18507, 26981, 40935, 15785, 15801, 47842, 37375, 31318, 42125, 12991, 20069, 22472, 48449, 12617, 25636, 8938, 47419, 33181, 38971, 19424, 24678, 19042, 43826, 31134, 17077, 15605, 15609, 37133, 18489, 30450, 33339, 11967, 29622, 44115, 18205, 20522, 18361, 18683, 16904, 28810, 43156, 15807, 22521, 16790, 16791, 9615, 26711, 21167, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p06A: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 12828, 47729, 23914, 23771, 10429, 11756, 24165, 40656, 31655, 34773, 14506, 36930, 16673, 45525, 35303, 24000, 25922, 24840, 27412, 25775, 10247, 35304, 22632, 11140, 36083, 8787, 26027, 21528, 46303, 45660, 34538, 46027, 26641, 27794, 28719, 42132, 36653, 29623, 47599, 33387, 38856, 32238, 17800, 20151, 11757, 19425, 41582, 31218, 41210, 43607, 14398, 41342, 46761, 31328, 48416, 11816, 30379, 34674, 18482, 23269, 46376, 48475, 45016, 33600, 38857, 11483, 13077, 14434, 15684, 27801, 38562, 31289, 32506, 25222, 25505, 31329, 39660, 32999, 14510, 45931, 37385, 23864, 45124, 34836, 13869, 10517, 36092, 27126, 21760, 10607, 35330, 22194, 22195, 13078, 19055, 19439, 29134, 39820, 37420, 28927, 32955, 47424, 36900, 45608, 14877, 31765, 32461, 17801, 31048, 16365, 25573, 23885, 15809, 11176, 39029, 34087, 48113, 33176, 19627, 13499, 21312, 25928, 20464, 11295, 44856, 35761, 34544, 20497, 35950, 25202, 28994, 43494, 38977, 19073, 33518, 48458, 41078, 10521, 15723, 21764, 48462, 43214, 31542, 30382, 41676, 23943, 14984, 18955, 12575, 19875, 35485, 9288, 30152, 10608, 11211, 47628, 16914, 19629, 21032, 20074, 31659, 45811, 20290, 31226, 12658, 42872, 8842, 35077, 33763, 25203, 24493, 9810, 27144, 43443, 36231, 35849, 27465, 30620, 37141, 8951, 19289, 19885, 30973, 28553, 28913, 42616, 15850, 22482, 43564, 29043, 31681, 41812, 30621, 27431, 46167, 16920, 11489, 19468, 23208, 30203, 12750, 11182, 15995, 27466, 43969, 47105, 18824, 30978, 24018, 23951, 33081, 25939, 24517, 11935, 26209, 27608, 19094, 29196, 25866, 47077, 15816, 13630, 44870, 24538, 14792, 47932, 35202, 24710, 20568, 11188, 31705, 47438, 25881, 41695, 24555, 47437, 10477, 20996, 14269, 35228, 18517, 28845, 44683, 25668, 23567, 20809, 39561, 16807, 21828, 39941, 25382, 43642, 20207, 43509, 44075, 43722, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p06B: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 39729, 29004, 9255, 9981, 23633, 21830, 34753, 33837, 37920, 11828, 32255, 32104, 9589, 21622, 44705, 26392, 24610, 11938, 26245, 12536, 22250, 41709, 23688, 23644, 47489, 23976, 24326, 7743, 28306, 44717, 25413, 16747, 31105, 11683, 18535, 40379, 44220, 42955, 30907, 29174, 40732, 10219, 11233, 30759, 22424, 43010, 22111, 39079, 40882, 17564, 44524, 23247, 23723, 23046, 34853, 38749, 7254, 42593, 30427, 11296, 10789, 31484, 23048, 22465, 23049, 22469, 11361, 33424, 16511, 43353, 40399, 40069, 44299, 31129, 39895, 42479, 15908, 38432, 36023, 21240, 29186, 18129, 36458, 18539, 40778, 29561, 39030, 40038, 11298, 33825, 33601, 17202, 11283, 43215, 14259, 44346, 11585, 18552, 46786, 46588, 11668, 9340, 38523, 30500, 9348, 9349, 37515, 21855, 31010, 10717, 33274, 10790, 33280, 47196, 35464, 35465, 24452, 45527, 44321, 24476, 16800, 12251, 14135, 34976, 20099, 46190, 27845, 27846, 42150, 27847, 11869, 41990, 36560, 34014, 12279, 33638, 40883, 41376, 34502, 9491, 22122, 29991, 30865, 31881, 35259, 31648, 45139, 24782, 43068, 15078, 46735, 42461, 9496, 19133, 12356, 19575, 13241, 46366, 45145, 38159, 11126, 8970, 36460, 21241, 33649, 43436, 13123, 21608, 19056, 11942, 43191, 12371, 13717, 20498, 24807, 8975, 13631, 20192, 20208, 34485, 29175, 13744, 47551, 43332, 31688, 43033, 33361, 31366, 22654, 39974, 41386, 13060, 18944, 18945, 16424, 31276, 19416, 43157, 29187, 18950, 13762, 42617, 39952, 38450, 16651, 28011, 27005, 27006, 7286, 21026, 13594, 44587, 8350, 8397, 8432, 29760, 29761, 8440, 9954, 26810, 17454, 9433, 29756, 25010, 19951, 45844, 33092, 28056, 37428, 41312, 14359, 32662, 39523, 21719, 28003, 17459, 31882, 13537, 33368, 35986, 29513, 21734, 13935, 12012, 8319, 33124, 33125, 26915, 33096, 34526, 34527, 37435, 17646, 20377, 35741, 33129, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p06C: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 26118, 28006, 26838, 36901, 32757, 10187, 30380, 26110, 45878, 33251, 45879, 27145, 25940, 32105, 13291, 34272, 12762, 27629, 22078, 26741, 30714, 30015, 28198, 30718, 12594, 39329, 11328, 14815, 42018, 28448, 8982, 15194, 33860, 13387, 31614, 30748, 43333, 38727, 17155, 42085, 7383, 41510, 22697, 31622, 41526, 13401, 12443, 26184, 31651, 42097, 45069, 45072, 34792, 34823, 46572, 8986, 43878, 12541, 34793, 23903, 28568, 37278, 14556, 16816, 36724, 46625, 31845, 8919, 45565, 27479, 11924, 18971, 13099, 17297, 9825, 47855, 11365, 37569, 14560, 12231, 38686, 37297, 26735, 31842, 30719, 33565, 30077, 17302, 30895, 38408, 38409, 41365, 34983, 32862, 16190, 20465, 10701, 38410, 37113, 21546, 36031, 46630, 46801, 30902, 27367, 16386, 37703, 21343, 21344, 32962, 22275, 17871, 35859, 32271, 19519, 8704, 8705, 15704, 38245, 47139, 14612, 40586, 22085, 18270, 28946, 30723, 14846, 40857, 40866, 31592, 42649, 38348, 45090, 44800, 17433, 41729, 10396, 10397, 12425, 43990, 13891, 18309, 19235, 30404, 28049, 29080, 26946, 12176, 27481, 27368, 10920, 29381, 8358, 33350, 46802, 29534, 29357, 47770, 45220, 16238, 25463, 26947, 45492, 14944, 29173, 24348, 26310, 9564, 14945, 37846, 18310, 27848, 27030, 34621, 21799, 45241, 37307, 37338, 37339, 17587, 24356, 27334, 42658, 14401, 14744, 43999, 36514, 46883, 46118, 16333, 45842, 41620, 34894, 23113, 21457, 21634, 40209, 31848, 42956, 19945, 47148, 32198, 30170, 18975, 27372, 8198, 45494, 47448, 23907, 43948, 16334, 17877, 15628, 14438, 26864, 34994, 18088, 30106, 11672, 14563, 46637, 35241, 28934, 10486, 25261, 29473, 9073, 30730, 34987, 28477, 21711, 33048, 47543, 34008, 24042, 41113, 22093, 15181, 29359, 27685, 35863, 41987, 19689, 43883, 16656, 8292, 41184, 25612, 25844, 12426, 26441, 40210, 30171, 45495, 21278, 43393, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p06D: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 29321, 20890, 42447, 18849, 18920, 45306, 10549, 43326, 37852, 18055, 20351, 42026, 25027, 35006, 19757, 14319, 40519, 15195, 33033, 33264, 46816, 43522, 38463, 39000, 22569, 47395, 20542, 26445, 26451, 7449, 13452, 36432, 27967, 24043, 42577, 27338, 32199, 21102, 30229, 37938, 39962, 40218, 17886, 40873, 35244, 23069, 36200, 31421, 21845, 14356, 47246, 32879, 30112, 41304, 40591, 46896, 16708, 18568, 27729, 19213, 37450, 30857, 29293, 38417, 31960, 25467, 42983, 19952, 21381, 31070, 20474, 20585, 46325, 34111, 47865, 9652, 14413, 18981, 19758, 25465, 10011, 19142, 18272, 28982, 41305, 21194, 25040, 31870, 37944, 46293, 22313, 17230, 7899, 26755, 47868, 44012, 38728, 9141, 13530, 18648, 17896, 43011, 30370, 43740, 23656, 17511, 23778, 17278, 24289, 16052, 15213, 38464, 24780, 11501, 15013, 43012, 44507, 36859, 23808, 17135, 21200, 19956, 10925, 21465, 27010, 35394, 10491, 29544, 39611, 33973, 37037, 23360, 30084, 28767, 17312, 21286, 39859, 33795, 28653, 37000, 43892, 40017, 39425, 36799, 14078, 35248, 37233, 21960, 9697, 36435, 24390, 34804, 35007, 24046, 34805, 36162, 13597, 23875, 23499, 24656, 37857, 38309, 45103, 18649, 12808, 17782, 32992, 20361, 46049, 33266, 15227, 16660, 40564, 34458, 34736, 41460, 11563, 46073, 42456, 22800, 38359, 17236, 37315, 13397, 17619, 38312, 21659, 33797, 24828, 19127, 35723, 47837, 13054, 31426, 12682, 22016, 47985, 38750, 39970, 30534, 16407, 17071, 41560, 25134, 36125, 47258, 29665, 17516, 10111, 34511, 30421, 14618, 46731, 25976, 28408, 21726, 36210, 11804, 24049, 46296, 30123, 14701, 35062, 36570, 29864, 12438, 44525, 28489, 44196, 25977, 15710, 27381, 21394, 25291, 26323, 43409, 12009, 32041, 18506, 44526, 28655, 33878, 8771, 11505, 18101, 44759, 23507, 19176, 31623, 41561, 31077, 36497, 27554, 46820, 43477, 9151, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p06E: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 8224, 44752, 38250, 33009, 14671, 31624, 44753, 22664, 19792, 33798, 44754, 33271, 25978, 48132, 13601, 42584, 20367, 27495, 29296, 38751, 44257, 44755, 33944, 33976, 32778, 18664, 47505, 20252, 29094, 44277, 31895, 36762, 32042, 13700, 14496, 45647, 9165, 38366, 38313, 12930, 37803, 38155, 32826, 40249, 9664, 38066, 17620, 15778, 41767, 17912, 41131, 27346, 22668, 26823, 43581, 41768, 44028, 17829, 27555, 34056, 27014, 45284, 19148, 28224, 16850, 10850, 14188, 29298, 26967, 24789, 30770, 30771, 26968, 36529, 11843, 37870, 9473, 37114, 27500, 19001, 27884, 40750, 19576, 29565, 20127, 20246, 18180, 15045, 39709, 43070, 43533, 45971, 34207, 20829, 10500, 18743, 36016, 44278, 8475, 27699, 34120, 37009, 34026, 43902, 21735, 13462, 37158, 20683, 20692, 31896, 41569, 36034, 25632, 19262, 44820, 28275, 7876, 44103, 32221, 47724, 24882, 9927, 39445, 11510, 28787, 47999, 37548, 34121, 26679, 43679, 23441, 23252, 15016, 20378, 40909, 25755, 37871, 15597, 9092, 43680, 30180, 21222, 41891, 36069, 44836, 35618, 44837, 24671, 42299, 27113, 47822, 10588, 22707, 35872, 35690, 37462, 25457, 16251, 33211, 27742, 45763, 34212, 43103, 26347, 26534, 30374, 37811, 24440, 45285, 38631, 38797, 38160, 31170, 45511, 34127, 35281, 7271, 31527, 35137, 45115, 40707, 43354, 32681, 19180, 35282, 35659, 28595, 35678, 34128, 32884, 7258, 29371, 11260, 11152, 29388, 38266, 9572, 27593, 15960, 12987, 17522, 18830, 39101, 48000, 12815, 46989, 40536, 15373, 20937, 18426, 15905, 48109, 36175, 36279, 35402, 8495, 20771, 19018, 16953, 43419, 15800, 25633, 46965, 41892, 33809, 26681, 43686, 11512, 26187, 23697, 26230, 42215, 8934, 35898, 44570, 40690, 18358, 8496, 8782, 47015, 20554, 22864, 33992, 33645, 12788, 27404, 7536, 25919, 18283, 18121, 43958, 10035, 14596, 43823, 16957, 26684, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p06F: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 31675, 44311, 30009, 19830, 41465, 10244, 30443, 39020, 19831, 26013, 25770, 25637, 21161, 17040, 11809, 25822, 46757, 15607, 31219, 24138, 41788, 9609, 20777, 11748, 11516, 37132, 29182, 36278, 42426, 38966, 27405, 36076, 27893, 33646, 17347, 24672, 23663, 37464, 10742, 15654, 15020, 41070, 42601, 26704, 48144, 26789, 22519, 26467, 29594, 34662, 46051, 46021, 47747, 40936, 18678, 19229, 20391, 41578, 34772, 24913, 11979, 36372, 42127, 20489, 11810, 43757, 17932, 40691, 34663, 16671, 43689, 39896, 48258, 23316, 40937, 24797, 47016, 37878, 29877, 44613, 20784, 30187, 12562, 19043, 20962, 38553, 29260, 19611, 29312, 37884, 35318, 31040, 31041, 38838, 26048, 39120, 41396, 13914, 18753, 27711, 32997, 35306, 23862, 46373, 11811, 43135, 46304, 37552, 33592, 35940, 10248, 41336, 23261, 42386, 33751, 37071, 47420, 33039, 17762, 8545, 33514, 9946, 9947, 34591, 36895, 30309, 25149, 37885, 33308, 33288, 10602, 21485, 10603, 18490, 20614, 23883, 10343, 15681, 12060, 17977, 34934, 34670, 29599, 17256, 45121, 25590, 17978, 15295, 17533, 17647, 39463, 20397, 33515, 39121, 44739, 25923, 23595, 28936, 44337, 25200, 27512, 45449, 12503, 18688, 45536, 40301, 44632, 24308, 34397, 41198, 25348, 37680, 48037, 43835, 19057, 9551, 24802, 13079, 42501, 7614, 18594, 46377, 9950, 26716, 12407, 12462, 43192, 35475, 29884, 21918, 35754, 31543, 19441, 47916, 24700, 28991, 17003, 21248, 14873, 33298, 19612, 35411, 19058, 11208, 35769, 35075, 13335, 33299, 47518, 23552, 8945, 24701, 27354, 34153, 34675, 27419, 28939, 43704, 43705, 27136, 21257, 30611, 8581, 19876, 17483, 32845, 12035, 38387, 36187, 43498, 43499, 13832, 11653, 19281, 31700, 23701, 22350, 7298, 30347, 47927, 37894, 8946, 16451, 31055, 43706, 8947, 23395, 14787, 9576, 26941, 20428, 38010, 26482, 45362, 26207, 24494, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p070: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 43967, 42134, 25935, 35044, 47057, 43712, 13628, 37764, 18899, 40322, 29342, 33963, 8804, 9960, 27928, 25523, 20187, 30397, 33312, 10614, 16457, 8957, 19305, 39678, 25874, 31608, 17382, 43715, 32720, 24539, 21425, 39934, 43716, 35436, 38021, 40333, 18515, 41248, 47432, 25659, 23562, 13840, 14528, 18253, 23563, 34550, 25455, 43718, 27304, 19901, 24812, 20435, 43723, 14933, 25174, 43267, 20202, 45031, 9976, 12327, 32471, 20318, 23625, 14529, 34787, 44788, 47945, 14996, 33835, 24026, 23626, 11825, 32101, 43854, 31060, 14443, 16685, 22235, 41972, 17550, 43726, 33041, 45373, 26247, 41957, 24238, 27360, 33630, 35909, 12533, 20748, 10073, 43733, 17554, 7741, 47487, 23685, 23641, 28315, 37562, 26255, 41360, 39579, 41975, 15733, 41980, 44730, 19223, 8764, 27583, 16700, 12706, 18839, 39839, 39840, 18840, 17820, 25253, 45460, 47677, 21549, 45749, 40205, 10820, 47857, 45275, 45276, 9538, 42014, 30731, 47149, 14850, 28959, 21458, 38183, 30300, 42958, 25845, 11435, 29694, 22422, 29360, 41621, 22423, 29425, 28052, 10261, 24992, 16877, 22552, 13892, 16702, 40380, 46884, 16703, 16704, 37936, 31248, 8762, 12178, 39216, 46510, 47452, 22662, 46132, 15196, 7684, 40219, 40220, 25448, 47831, 41118, 21856, 36010, 29474, 21462, 29447, 35825, 35826, 9010, 42084, 36825, 33536, 47552, 45757, 13017, 38051, 34195, 24778, 10832, 18808, 47247, 18092, 34847, 23694, 36732, 20670, 40884, 17793, 32274, 25041, 18650, 42030, 40641, 40642, 39525, 43387, 38421, 47250, 42190, 34327, 37787, 36860, 27585, 45281, 22425, 17824, 23876, 39224, 47456, 41094, 46513, 30233, 41552, 18924, 16711, 10324, 18855, 22571, 21868, 14489, 33686, 42453, 18989, 48575, 36144, 21201, 32524, 25042, 38752, 15228, 21466, 40236, 30371, 36738, 47869, 36801, 37583, 17138, 29586, 23764, 41864, 40894, 14961, 10842, 32664, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 0, 0, 0, 0, 0, 0, 0, 0, 61674, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p071: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 18168, 38753, 34512, 17715, 41259, 22941, 21961, 39869, 38754, 41562, 17322, 47742, 22318, 12919, 40237, 19559, 38615, 41563, 26143, 17238, 41872, 18655, 27089, 21727, 12638, 8152, 14863, 25215, 23304, 19177, 37236, 38770, 12013, 38472, 17830, 10266, 15368, 38367, 20596, 11739, 15046, 30129, 31735, 33010, 38771, 31736, 40443, 10223, 41881, 41882, 43072, 22140, 44550, 15782, 32415, 29783, 40617, 15783, 34027, 10201, 33692, 40609, 28656, 16061, 38151, 10425, 17719, 23231, 47198, 13755, 39194, 18872, 15047, 24794, 41012, 40478, 18749, 20693, 20139, 8497, 43587, 47511, 37974, 37116, 33548, 38816, 29097, 29098, 9933, 41573, 21469, 21479, 44571, 27048, 33378, 38074, 45693, 21215, 31747, 32780, 26975, 18673, 40923, 46145, 37812, 14500, 31904, 35466, 42050, 25062, 47510, 20834, 45476, 16512, 7971, 18189, 45070, 28278, 34365, 24892, 8645, 16309, 37219, 36077, 10269, 33508, 14300, 9184, 18817, 40136, 39108, 38638, 38817, 45186, 17661, 17722, 38818, 45119, 40607, 28188, 33551, 31748, 42346, 41263, 27406, 24679, 43690, 38546, 32689, 16162, 41899, 31250, 25458, 38819, 8519, 8788, 11758, 26029, 20155, 34565, 43158, 25776, 29624, 35408, 43159, 36265, 22175, 48185, 45188, 18362, 42765, 47034, 7544, 38086, 25570, 17357, 29188, 32526, 21483, 26712, 23320, 33650, 11943, 45609, 20171, 38859, 38860, 38861, 43160, 40040, 10889, 18761, 10047, 42480, 35946, 32423, 41919, 41343, 31291, 22346, 12714, 13916, 33907, 20621, 14878, 34943, 24930, 44634, 25157, 36902, 33704, 14879, 14511, 41920, 41344, 23698, 27022, 36148, 43196, 21486, 27096, 21435, 20722, 43700, 44635, 43216, 41199, 23605, 35875, 45483, 9555, 35487, 38877, 32358, 48228, 24711, 18956, 47476, 40312, 25360, 37830, 43217, 40159, 46164, 19074, 12211, 28995, 23606, 32851, 39555, 17743, 41278, 21261, 11086, 12661, 42360, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p072: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 17744, 23702, 8809, 32715, 24519, 27935, 8071, 33021, 26210, 23466, 7522, 41284, 23138, 34876, 24953, 24558, 25883, 22218, 24986, 41952, 38920, 40334, 25670, 42524, 9485, 32490, 45036, 23707, 11829, 22236, 10986, 16686, 21953, 10360, 27316, 36140, 23712, 47490, 23689, 25414, 11952, 44733, 46112, 46114, 29255, 46503, 29448, 10488, 44804, 7314, 38068, 17394, 22176, 22201, 15399, 42394, 7714, 13186, 42401, 42176, 48361, 34768, 14366, 29319, 11399, 22598, 45386, 13242, 31181, 43827, 31227, 29952, 7847, 29364, 10234, 20128, 29278, 13606, 11386, 44301, 45694, 8646, 13243, 7922, 9185, 11389, 44118, 44119, 13633, 41443, 10501, 28944, 28945, 30076, 21499, 27962, 35668, 28013, 23799, 32584, 26727, 14615, 26815, 28053, 15745, 38594, 41855, 15885, 8123, 35002, 20353, 16393, 44153, 15890, 34016, 28020, 12873, 30914, 32289, 32203, 48130, 36251, 38729, 26757, 22769, 30927, 38536, 16481, 38772, 24123, 24134, 30294, 19391, 15762, 46736, 8203, 32222, 11511, 13607, 21884, 19978, 20129, 14974, 29914, 22619, 21740, 22581, 11167, 39110, 8168, 26468, 21073, 26513, 33130, 38087, 26839, 13870, 36903, 31331, 20559, 38878, 24520, 13634, 25098, 29286, 29973, 9247, 38921, 11028, 37914, 23223, 11030, 32270, 32269, 7676, 14557, 31839, 19687, 9859, 47856, 7444, 15879, 47736, 16727, 26546, 43991, 22551, 9121, 18041, 41498, 43382, 18536, 47738, 45133, 23090, 28955, 12800, 23091, 47209, 28050, 8114, 29695, 21714, 42659, 34009, 29446, 39211, 37340, 18152, 25262, 14745, 29758, 28529, 42280, 44143, 16267, 41223, 21635, 12427, 9126, 22926, 39514, 28888, 18569, 17775, 20665, 17597, 46133, 19540, 41371, 33486, 35712, 32655, 34451, 36853, 23851, 13595, 39218, 34112, 23010, 46511, 44500, 35530, 44250, 8442, 26756, 38730, 22011, 24112, 39225, 43399, 35366, 23724, 8135, 46911, 41626, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p073: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 33362, 24391, 17313, 39526, 21293, 29276, 14678, 39870, 7787, 30535, 28490, 8774, 43534, 23508, 25051, 20116, 31162, 23300, 41883, 17072, 48241, 27260, 10112, 42585, 46931, 46523, 41461, 27201, 9418, 11880, 33754, 25052, 13023, 26360, 18181, 48168, 16887, 37963, 14969, 38315, 44821, 40473, 47402, 26807, 38069, 11331, 39629, 37115, 41527, 28341, 40065, 19971, 18006, 8642, 44029, 44036, 26969, 9789, 42216, 35535, 9173, 27743, 18427, 44838, 35138, 26556, 44839, 12248, 44588, 34129, 17463, 31171, 43104, 46357, 9573, 17474, 26705, 21411, 20524, 27894, 46022, 9937, 7545, 7537, 17467, 11966, 8233, 22177, 8546, 8522, 18754, 30340, 25150, 40949, 36896, 42350, 24926, 34863, 39908, 34471, 13866, 20788, 15973, 22045, 13616, 19059, 23028, 39548, 40302, 35696, 39551, 41273, 28911, 8654, 19283, 29042, 27213, 25093, 28399, 16730, 34476, 25875, 35701, 39684, 27305, 32472, 18549, 28404, 26389, 39568, 30653, 22245, 41054, 27569, 47979, 26179, 25854, 44478, 35237, 37714, 31840, 15546, 13310, 23906, 7638, 19347, 17872, 12899, 11367, 15623, 21550, 44222, 30675, 44223, 10194, 26529, 17878, 38525, 15091, 38184, 21051, 41452, 8923, 8713, 7929, 44966, 22094, 27067, 22095, 37577, 20104, 26949, 12391, 30047, 37937, 18562, 39590, 31160, 25270, 12280, 42985, 7418, 30113, 13048, 15197, 41058, 39002, 9076, 11673, 16271, 20053, 33717, 30230, 11616, 22599, 32449, 34017, 33861, 42685, 48362, 19953, 27639, 33487, 25560, 8433, 46326, 46327, 22099, 14444, 25618, 21110, 20760, 20362, 24392, 16739, 39341, 47251, 16198, 41554, 40699, 42032, 40827, 26452, 35249, 47400, 31510, 43400, 41313, 8003, 14360, 39802, 42191, 39226, 17412, 16760, 10926, 40886, 7812, 29545, 23854, 12497, 43575, 18856, 38191, 14080, 10562, 12920, 38539, 38469, 10558, 22319, 26960, 8143, 36802, 39616, 11245, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p074: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 17239, 41066, 41637, 31885, 41126, 23732, 24293, 40703, 15229, 25470, 41454, 38755, 25292, 24124, 21211, 24753, 35604, 35605, 14963, 37584, 13058, 30051, 45913, 33275, 27653, 44551, 21662, 10370, 23514, 27654, 34081, 37872, 36574, 11252, 48512, 8278, 10492, 18280, 30551, 14207, 23305, 10117, 30552, 8279, 37623, 25989, 11805, 16635, 41770, 13115, 8153, 25137, 31517, 29784, 29257, 32320, 47888, 31518, 14446, 21115, 31737, 13667, 21070, 19151, 44440, 26917, 26977, 11480, 41013, 36359, 40479, 12305, 32781, 27658, 20140, 37975, 32918, 18674, 40128, 11333, 20264, 47685, 10202, 24796, 32229, 39246, 13756, 44916, 41462, 28385, 18190, 43588, 44303, 18751, 32973, 33277, 25492, 34135, 32691, 35622, 42226, 38161, 38547, 46367, 21230, 43692, 26537, 36177, 25495, 36079, 24453, 23735, 16779, 46473, 31182, 12078, 22165, 46121, 42227, 7333, 8939, 34533, 10158, 23321, 47650, 11759, 21169, 42610, 11982, 11760, 30591, 24166, 21358, 35626, 31916, 41073, 7546, 24760, 27076, 46029, 43438, 42481, 43608, 38096, 26061, 38489, 12715, 40709, 45611, 41346, 32063, 12576, 25158, 24931, 31766, 35332, 18762, 16793, 30344, 21361, 14512, 21242, 25506, 19442, 19060, 21362, 7352, 8596, 9556, 32081, 45453, 12507, 20726, 16980, 36002, 19075, 18601, 33310, 35488, 36550, 11212, 44348, 21262, 25876, 8953, 34572, 38258, 48435, 23613, 39038, 48052, 41081, 32933, 38388, 15613, 23952, 13635, 24542, 47106, 32793, 24226, 45366, 31776, 36480, 16805, 35429, 23472, 25671, 25884, 24561, 45369, 23708, 43644, 27314, 39730, 31785, 16687, 12672, 45376, 18621, 16497, 9127, 13212, 9142, 18337, 46744, 29982, 7887, 32476, 24622, 37482, 48575, 39738, 30903, 7848, 29562, 14647, 12392, 38299, 29176, 48575, 48575, 37513, 18154, 25271, 42686, 30119, 11627, 7769, 21962, 10146, 10659, 48575, 12554, 27205, 9368, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 0, 0, 0, 0, 0, 62695, 0, 0, 0, 0, 0, 0, 0, 0, 62704, 62705, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62716, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p075: 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 47780, 30131, 8647, 47354, 46358, 48575, 11639, 43598, 30784, 39457, 25808, 12959, 29190, 27121, 47651, 8302, 25224, 45626, 38563, 29888, 12374, 38303, 43625, 41826, 15615, 12269, 33924, 36526, 36527, 17249, 10150, 33999, 31643, 33868, 10018, 10019, 32945, 34028, 35213, 33899, 43927, 34712, 25953, 15346, 43880, 8271, 15043, 28896, 36511, 43984, 20049, 33842, 45677, 13038, 15161, 28238, 12978, 30080, 36728, 18461, 36794, 46445, 45277, 27102, 8422, 8423, 25579, 41297, 25464, 10195, 28021, 45095, 14573, 15198, 16051, 36519, 21053, 21054, 32273, 38052, 15199, 36520, 28022, 13925, 29366, 20475, 37453, 12184, 28246, 25468, 8212, 46404, 11240, 28024, 28025, 9655, 36523, 15562, 8443, 12189, 46932, 26280, 30536, 26281, 29309, 42586, 14455, 18471, 33757, 44279, 28029, 22325, 43037, 25474, 33758, 13232, 11049, 18474, 12501, 47784, 19402, 37628, 20483, 10593, 10206, 37283, 23936, 19426, 9763, 25507, 13262, 37154, 25228, 20502, 20504, 11090, 29898, 13278, 13283, 29826, 20883, 12431, 34518, 34519, 47017, 42755, 28415, 28199, 13311, 8359, 20811, 24898, 15746, 15886, 21571, 47310, 39293, 33569, 40728, 29101, 24357, 42019, 10463, 44006, 7652, 21055, 22100, 30508, 39184, 11997, 8434, 42986, 24370, 48238, 11383, 14949, 47560, 29475, 29767, 15638, 22604, 11597, 41167, 46659, 12397, 46405, 14414, 46821, 36272, 21641, 19546, 14753, 21642, 33490, 19957, 41061, 45759, 9046, 28768, 46596, 43808, 21388, 32213, 36273, 36827, 42716, 20816, 37951, 18928, 35891, 42087, 10843, 46933, 17770, 41480, 27043, 13541, 21403, 39874, 36933, 37010, 26762, 29839, 39875, 35367, 15114, 24423, 46970, 12094, 13950, 38622, 33374, 23811, 34461, 18665, 39446, 43106, 8260, 46076, 16637, 35928, 14768, 26509, 25139, 10670, 19813, 36580, 7394, 10859, 8499, 8500, 27659, 16485, 13784, 14067, 37976, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 62725, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p076: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 44201, 12016, 41482, 47465, 11886, 12360, 33985, 47200, 10869, 44589, 18018, 14977, 23449, 42055, 10430, 37060, 44441, 16999, 38196, 18680, 22949, 20070, 43358, 43137, 25823, 33249, 22178, 10879, 38842, 16611, 43161, 38164, 19614, 11390, 7825, 19030, 25496, 9882, 34466, 29107, 12992, 12241, 8911, 35902, 46083, 8790, 33996, 11903, 26425, 43197, 48250, 11023, 46084, 45832, 35209, 33301, 32307, 13174, 25828, 25829, 27912, 31544, 43495, 43758, 18769, 15319, 24936, 25645, 31333, 25514, 23828, 39482, 14783, 12375, 43549, 17737, 7280, 7835, 39483, 16615, 16922, 29016, 44667, 37899, 43232, 43844, 29852, 24015, 24499, 34599, 12481, 25204, 13084, 25205, 23559, 8912, 19894, 10693, 42106, 41106, 20846, 46568, 26943, 24576, 19321, 23569, 19488, 13005, 41108, 43777, 43511, 32111, 43862, 35910, 13011, 26438, 26261, 26265, 9067, 9074, 16832, 7685, 14402, 12707, 14404, 7757, 7764, 31398, 19524, 45461, 45462, 26875, 12700, 29242, 20812, 18730, 16754, 11674, 25277, 15790, 27863, 19542, 20674, 29666, 15794, 7269, 14085, 17519, 17331, 8476, 37624, 11055, 31123, 38801, 7278, 39997, 17534, 18834, 17535, 45539, 11990, 17542, 40002, 42489, 30201, 17545, 20729, 7360, 40502, 18838, 24562, 30000, 17697, 20802, 29747, 15670, 29476, 47343, 22285, 31897, 12056, 32331, 45656, 16434, 22289, 22290, 47363, 45664, 16452, 46110, 13638, 27679, 30676, 43665, 44227, 8081, 46095, 47155, 29563, 17598, 43668, 17609, 43014, 9080, 37604, 17610, 7506, 45907, 41632, 20112, 17622, 44197, 23155, 14581, 15595, 12639, 29322, 15370, 31898, 34074, 12642, 25999, 45917, 27114, 24167, 21162, 40939, 20149, 29332, 16677, 7405, 25863, 40847, 47290, 12577, 7409, 16458, 24563, 28046, 13312, 15705, 40730, 26743, 37773, 46719, 30732, 44883, 36521, 39701, 13883, 40381, 39074, 29365, 14950, 13893, 27640, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p077: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 27730, 34049, 34321, 45096, 27488, 29308, 14649, 27551, 12341, 26953, 26885, 22489, 39598, 22834, 34330, 41992, 46514, 42286, 33869, 19244, 12233, 46406, 23118, 21643, 33974, 42705, 34050, 27039, 27865, 47562, 46334, 46335, 27447, 34331, 44748, 13213, 28581, 48133, 48134, 10264, 45724, 41120, 9014, 27341, 25621, 35399, 36864, 27248, 13301, 12921, 28421, 27735, 41127, 10660, 23122, 22018, 27970, 46461, 36682, 42036, 41752, 27874, 47218, 27866, 46314, 46524, 26970, 35571, 33746, 17333, 18666, 12931, 10634, 12095, 22023, 14086, 26680, 39624, 38774, 23362, 23545, 20253, 33550, 36581, 16976, 37629, 24100, 34366, 31749, 25063, 41463, 21303, 46539, 24142, 23546, 35467, 22031, 34813, 35403, 13584, 8501, 29874, 28075, 19136, 28596, 26000, 43108, 20938, 9447, 47318, 44313, 19137, 26557, 39304, 40545, 18882, 16979, 45288, 11541, 20141, 27049, 13673, 18019, 41017, 36609, 23199, 15802, 32976, 26921, 40940, 14430, 38376, 27541, 11113, 23257, 27249, 38291, 22869, 12568, 10383, 22633, 35194, 39199, 31757, 27913, 27750, 26642, 34815, 45540, 46085, 43198, 13125, 22839, 27914, 34837, 11769, 25745, 10680, 26645, 29994, 10518, 16864, 27127, 37684, 32988, 30023, 38880, 31335, 30348, 47521, 12747, 33960, 34839, 24981, 10357, 39484, 22496, 42490, 40966, 36906, 27984, 25161, 16915, 20419, 42519, 7361, 19086, 45880, 20299, 16459, 46168, 32087, 26995, 11117, 33256, 28930, 41281, 42367, 19297, 27154, 27468, 30060, 27469, 24019, 23139, 22229, 41041, 27472, 19322, 25890, 27169, 25673, 16689, 26693, 39045, 11292, 36142, 22501, 47530, 26811, 21103, 21111, 44552, 34857, 45513, 22252, 34241, 42827, 33934, 46638, 17996, 33937, 43738, 21803, 47259, 20676, 12096, 13740, 7290, 20728, 45613, 44944, 7734, 34174, 13346, 30724, 19352, 48087, 15631, 38595, 46192, 22890, 15747, 39061, 14484, 23114, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p078: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 12546, 26530, 33357, 12342, 22102, 24371, 15097, 27641, 14121, 19240, 22507, 46817, 30741, 22457, 21056, 8925, 14146, 41507, 29701, 46194, 41628, 35450, 47643, 10294, 13894, 37490, 41860, 21104, 14951, 14421, 27867, 45725, 21644, 44509, 22605, 37353, 37354, 12875, 45825, 46336, 14160, 15214, 28027, 47563, 23427, 8639, 29064, 30085, 29581, 25278, 29477, 23910, 30235, 9081, 30236, 33870, 45243, 7315, 24393, 25622, 36862, 43933, 24394, 23119, 11198, 22768, 32215, 47404, 23074, 16768, 14170, 28338, 30869, 25980, 37952, 7316, 16025, 39617, 40528, 41638, 13460, 29587, 38757, 23856, 17905, 34855, 39228, 31259, 31707, 37863, 31314, 43038, 22772, 39877, 32325, 10082, 23737, 17832, 44280, 39878, 39239, 26785, 26458, 43903, 10299, 10334, 38368, 25476, 43784, 26759, 32326, 41884, 33375, 23343, 44553, 10852, 18400, 25912, 10449, 20254, 29106, 35067, 47894, 22776, 29618, 41574, 47785, 22804, 10564, 30560, 48242, 31690, 25140, 22288, 9097, 13359, 27660, 13117, 20142, 17721, 26001, 7325, 35468, 32333, 24086, 8095, 43421, 13818, 38542, 30561, 26342, 37630, 13029, 28344, 8160, 30777, 10450, 32923, 41660, 13251, 13361, 13610, 37371, 20954, 43592, 8683, 22713, 8524, 38080, 34864, 46368, 13759, 39251, 12563, 36364, 28390, 29673, 20276, 12951, 36020, 9798, 36539, 30785, 13911, 14978, 41139, 32349, 32350, 26538, 16167, 28666, 35310, 14094, 11641, 25498, 34935, 36086, 7948, 18430, 29729, 37985, 33193, 24001, 12081, 36543, 39255, 38845, 24692, 29335, 37886, 45150, 13787, 46239, 22634, 23429, 47652, 42236, 16964, 47655, 9951, 30804, 7549, 29600, 25592, 25929, 22497, 11421, 10454, 43490, 24004, 8791, 30805, 27804, 30806, 11970, 48193, 31696, 11581, 26337, 19457, 33609, 23829, 32069, 45614, 12748, 20420, 39142, 25162, 13369, 35953, 18770, 29338, 45257, 31296, 12794, 24500, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p079: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 20421, 20625, 38882, 46056, 31336, 13872, 20300, 44653, 47803, 17682, 22726, 45548, 23948, 20985, 11215, 42525, 32363, 12579, 42874, 20503, 29742, 29743, 44668, 30039, 14265, 7366, 22646, 20194, 44669, 32938, 27155, 29488, 11659, 9236, 42107, 26572, 9408, 39498, 23140, 23959, 24024, 47116, 24544, 24565, 14531, 32371, 29491, 43645, 24579, 25674, 25675, 27945, 9261, 34754, 16690, 23637, 9409, 41710, 34279, 34273, 24276, 32625, 33791, 44962, 34988, 30486, 35669, 26548, 40211, 42151, 39332, 30501, 30502, 46809, 8243, 13809, 47211, 32593, 42571, 34196, 44155, 46899, 36638, 15201, 15418, 27376, 48363, 46646, 35378, 27036, 48548, 31962, 18322, 47554, 33925, 35453, 11623, 9865, 27254, 26144, 44417, 39747, 38471, 36620, 30004, 47564, 16841, 39227, 46660, 19794, 15864, 46338, 15865, 34808, 21212, 33977, 15564, 23342, 12922, 12609, 19256, 36215, 30553, 16483, 16663, 48444, 25307, 25991, 9022, 21223, 12610, 46737, 25990, 9928, 8478, 46284, 18874, 44108, 39102, 43355, 48010, 19263, 46359, 15265, 44917, 38476, 39538, 42051, 46682, 42597, 26978, 34917, 12940, 8161, 47903, 46370, 43916, 19835, 15869, 36080, 34923, 26562, 35743, 15465, 41022, 30593, 44654, 39031, 19444, 35034, 9952, 12463, 16916, 35489, 24312, 28996, 27293, 12626, 24522, 32475, 45037, 36412, 45377, 24076, 32771, 44409, 44238, 24113, 40238, 31519, 17577, 36991, 40695, 34890, 32538, 36992, 48088, 9775, 15671, 42961, 39333, 9004, 28630, 31799, 31800, 47187, 14910, 17506, 45098, 22600, 27552, 46647, 21282, 8364, 46648, 44501, 27379, 22937, 7875, 29705, 28484, 24395, 44013, 48302, 29706, 9144, 25279, 27869, 10639, 28635, 31511, 41993, 48507, 46913, 46661, 34557, 21859, 48091, 19214, 19369, 10493, 36866, 46938, 19216, 17623, 43339, 47986, 46939, 20817, 32558, 13694, 42717, 47405, 18995, 28985, 15443, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p07A: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 38775, 15831, 23738, 15116, 41387, 34809, 26146, 23344, 15678, 21298, 36345, 10580, 37052, 33693, 34810, 41534, 26343, 26002, 16486, 48516, 32561, 47826, 7942, 7791, 19403, 46683, 46992, 23347, 24087, 29619, 22620, 9023, 11056, 48445, 44573, 35216, 26288, 39716, 42602, 39112, 8684, 19836, 15285, 29879, 29154, 20839, 47201, 48180, 40838, 10507, 12648, 38234, 39464, 48020, 44615, 19850, 40953, 46426, 47036, 12652, 20090, 19427, 15841, 15842, 16442, 32692, 35477, 32769, 19861, 22528, 28083, 9530, 26988, 47080, 19837, 26053, 35220, 19445, 43759, 38238, 31814, 33302, 17732, 43200, 18771, 31450, 19715, 35496, 39921, 30350, 20626, 47845, 47205, 48469, 26165, 35498, 28998, 33314, 19087, 32467, 29165, 44670, 30041, 19895, 37194, 38240, 10524, 19298, 23141, 26168, 8814, 33324, 32478, 47850, 24260, 11939, 41177, 37446, 21505, 31713, 38702, 31715, 22793, 44190, 33862, 21349, 42328, 11329, 47813, 36995, 23801, 31415, 45815, 42287, 8673, 7979, 42288, 9015, 37454, 47458, 20761, 31363, 13151, 38424, 16770, 42194, 46941, 11384, 42336, 36674, 20769, 11385, 21470, 39879, 10566, 22859, 11940, 38319, 12448, 22905, 22621, 47895, 40762, 35217, 16608, 23157, 13546, 47963, 41264, 38320, 37465, 41537, 44316, 21900, 31758, 42237, 42238, 36679, 10249, 44450, 36544, 13175, 21920, 25003, 38863, 38647, 23160, 11393, 46105, 23055, 23056, 25646, 10522, 12036, 24937, 45484, 11947, 31386, 31777, 13566, 45489, 25723, 31468, 24338, 11225, 34183, 15412, 30909, 11234, 17888, 30509, 17457, 34018, 14817, 34630, 27570, 32133, 45962, 47565, 25281, 25623, 9047, 21389, 21399, 46012, 7770, 35019, 22326, 17914, 36870, 35093, 21404, 13167, 43111, 34657, 21396, 32139, 20956, 30092, 13732, 24168, 47668, 9724, 12717, 12061, 37521, 21431, 22484, 21433, 47446, 47449, 23908, 29606, 44240, 10713, 15637, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p07B: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 26747, 47453, 37579, 13663, 19371, 20671, 7657, 35379, 19543, 31564, 46136, 35544, 41455, 47774, 44810, 18330, 17413, 40018, 9698, 8447, 8368, 20241, 42841, 13398, 33494, 34024, 12145, 12812, 47461, 28151, 10661, 16343, 24409, 31428, 27695, 7968, 36642, 35013, 15230, 9658, 8225, 14423, 12192, 48099, 12923, 25294, 45505, 29054, 15231, 16274, 14492, 19962, 15677, 14582, 34259, 26869, 30216, 36489, 20117, 31728, 25627, 27696, 8640, 26459, 16890, 31978, 10725, 43349, 42339, 39533, 8377, 31729, 23378, 12732, 39975, 21116, 32223, 35546, 32827, 14425, 23075, 47578, 36925, 19392, 12196, 17422, 9665, 47223, 22860, 23516, 8479, 33449, 12500, 46532, 9672, 15121, 45116, 37061, 29258, 24143, 23741, 21810, 16638, 20265, 17250, 36876, 39247, 46993, 10581, 35380, 34367, 47589, 48517, 39993, 33696, 36764, 9673, 41648, 15868, 23019, 15649, 11057, 23078, 15784, 45117, 29171, 30941, 39994, 20266, 30283, 23523, 48271, 8382, 8525, 8526, 16028, 35834, 16578, 44202, 20150, 12649, 16359, 10740, 46546, 31693, 33431, 47319, 26017, 9187, 19418, 25144, 35382, 22336, 15287, 45698, 16360, 22808, 31037, 30952, 22337, 11455, 16639, 44771, 9679, 48327, 9279, 45522, 31442, 37437, 26368, 12363, 39899, 33015, 20400, 41024, 8648, 35554, 39719, 39544, 30145, 46374, 40489, 18207, 42766, 47594, 44942, 11481, 26195, 38437, 13430, 34868, 19616, 20941, 18763, 40490, 27054, 14599, 11349, 47694, 29916, 14980, 47474, 18764, 31447, 18022, 31811, 27559, 31136, 16364, 23262, 34425, 25809, 45125, 17672, 36093, 45017, 11024, 15810, 14732, 33019, 46555, 16257, 28821, 31139, 39999, 11944, 25716, 29632, 13677, 24477, 8567, 47918, 11173, 33452, 10747, 47606, 31187, 25647, 23600, 20173, 9386, 24187, 19077, 8568, 12831, 11776, 41593, 29633, 9532, 47698, 29808, 29996, 13500, 44671, 27605, 37137, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p07C: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 45546, 33453, 16918, 42785, 18368, 10048, 22873, 11906, 30153, 45482, 19458, 16865, 35334, 25813, 9688, 26062, 28669, 35584, 11945, 13130, 35588, 23916, 13763, 24893, 39922, 9238, 27432, 33454, 12580, 24945, 12379, 13085, 15391, 20301, 27716, 23274, 12324, 20636, 12720, 18778, 35556, 23832, 45323, 39935, 26089, 34411, 45324, 30833, 29283, 30623, 29284, 15692, 21936, 26090, 26077, 41690, 9281, 12513, 33115, 47630, 16260, 30979, 24728, 9395, 47378, 23564, 34426, 23627, 23280, 44363, 45028, 17489, 46385, 35850, 36482, 28846, 11092, 19662, 42803, 30640, 36295, 47711, 47381, 14472, 35206, 47380, 31153, 47951, 36300, 26104, 25891, 20327, 37444, 43731, 44711, 23572, 25681, 31469, 24743, 23642, 30993, 45042, 47185, 32108, 24744, 8669, 13770, 48399, 24261, 34971, 26400, 43737, 45054, 47960, 44731, 27331, 12802, 14485, 33853, 46196, 33863, 29078, 17600, 24044, 39339, 48093, 28480, 12073, 46071, 30915, 45782, 8369, 7851, 38611, 33363, 22508, 32773, 14897, 8448, 12001, 43568, 46208, 27342, 35878, 18332, 7658, 24410, 15644, 21870, 30239, 27877, 11861, 45849, 47346, 10662, 35263, 36684, 24411, 38776, 35268, 17915, 36871, 48002, 9659, 44992, 47266, 25138, 47725, 7771, 23795, 14913, 14331, 31979, 17636, 24834, 39634, 15267, 24835, 9545, 21304, 24298, 44997, 26018, 21748, 30578, 12021, 7794, 46023, 25145, 48244, 21309, 17078, 18402, 33143, 33145, 36088, 8687, 32786, 27526, 18023, 40841, 48246, 18208, 20402, 45321, 11646, 24178, 40303, 15138, 29159, 8184, 16448, 40693, 15811, 36094, 31935, 19989, 9599, 47730, 36099, 27286, 33148, 14926, 45427, 22530, 20560, 27805, 33150, 33151, 29164, 38894, 24847, 20565, 23032, 9289, 18609, 34605, 48256, 39686, 29166, 37145, 28857, 24566, 48571, 12851, 28858, 36691, 23715, 27366, 34887, 21506, 39054, 16133, 46575, 21509, 44145, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p07D: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 19760, 9832, 47337, 41306, 44935, 17890, 44192, 17601, 37580, 32594, 38223, 38188, 31872, 28145, 47980, 36967, 28966, 15067, 19776, 34505, 11502, 29707, 46457, 33364, 17898, 46823, 19544, 14820, 45105, 32597, 12398, 21112, 35251, 14652, 35601, 12002, 21556, 45224, 7749, 21151, 15111, 46942, 30430, 48107, 11044, 17906, 45225, 24052, 39084, 15232, 40239, 33879, 9087, 47571, 31970, 25295, 47572, 33744, 15712, 42088, 15233, 37360, 46410, 12290, 11246, 34115, 47162, 39437, 48367, 21444, 7877, 32043, 27878, 34640, 48440, 23123, 21294, 32605, 17423, 40251, 20927, 47410, 11051, 16558, 7772, 22143, 23124, 18182, 11697, 18578, 16062, 36167, 20928, 22945, 20686, 32224, 15581, 26460, 41132, 8255, 39625, 15254, 16030, 13463, 32673, 36685, 43350, 23993, 40252, 22025, 40912, 15565, 13233, 36926, 34910, 20549, 39751, 19003, 22144, 46738, 20267, 22032, 10672, 27503, 46470, 26151, 10582, 31907, 34528, 7920, 36927, 39888, 18582, 31487, 16094, 40692, 36360, 36984, 40129, 17925, 39103, 15268, 36740, 35404, 13821, 23348, 15122, 21305, 18349, 46684, 41649, 21475, 15021, 19815, 40927, 32562, 48181, 10378, 13991, 24454, 26190, 24837, 11064, 32282, 33748, 30579, 30580, 47823, 30581, 37633, 31130, 39644, 34467, 37879, 30701, 36219, 37634, 15767, 37758, 8266, 47790, 9449, 17079, 12022, 26331, 25568, 30702, 45976, 8527, 11574, 25334, 27454, 30444, 31443, 36540, 48182, 16958, 48272, 38822, 48021, 40568, 24866, 21163, 14684, 32947, 27667, 44593, 48226, 14504, 26191, 40941, 43601, 33681, 30832, 40954, 39720, 20158, 22717, 39653, 32926, 27455, 19429, 13761, 10976, 12960, 27670, 27544, 44849, 40289, 8017, 34938, 31812, 8649, 18628, 16065, 11762, 27509, 38090, 15477, 37994, 36955, 16255, 27560, 40144, 24800, 48187, 8740, 45190, 43361, 36374, 16521, 47061, 45191, 10514, 9948, 12314, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p07E: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 39257, 44850, 48227, 40781, 34042, 37819, 16066, 41025, 43701, 21250, 43202, 47794, 28605, 7910, 16444, 29336, 47371, 20174, 11604, 32241, 34776, 45196, 39261, 11971, 38865, 32695, 36184, 15492, 45126, 10386, 15845, 32891, 18226, 45317, 36284, 39662, 35321, 46430, 48251, 36185, 18822, 9457, 8569, 15056, 11907, 24189, 35589, 41807, 39034, 48253, 23945, 22049, 31143, 26718, 46766, 26166, 28086, 29997, 24703, 27287, 41151, 48230, 19459, 33519, 35499, 14517, 26203, 8287, 42614, 33222, 27985, 42246, 31243, 19159, 39381, 19877, 33447, 40714, 32429, 41152, 35508, 31300, 45616, 48537, 46702, 33615, 33152, 25166, 44672, 14465, 24946, 11584, 48478, 20429, 32521, 10053, 32958, 40716, 19088, 18497, 48391, 38895, 31245, 45216, 12243, 34046, 19096, 39160, 33318, 20306, 20505, 18610, 45456, 11781, 40338, 20733, 8609, 12484, 43252, 29010, 35509, 43253, 33457, 40802, 19903, 8959, 31100, 23628, 30359, 41285, 48395, 30641, 29650, 42371, 27947, 24072, 40181, 48397, 23142, 43977, 40979, 23961, 39400, 9982, 20743, 25892, 9986, 43653, 9432, 32495, 39409, 48421, 48400, 26496, 24266, 12673, 23692, 23981, 24822, 34882, 21497, 44187, 17866, 47323, 39326, 15880, 44934, 19520, 37570, 23108, 19733, 32578, 37930, 45091, 17873, 11498, 29684, 33353, 15741, 28129, 32585, 48236, 26311, 14811, 46803, 38181, 14644, 47537, 46442, 28956, 34489, 39591, 15706, 40212, 15183, 24777, 48359, 33854, 39062, 46640, 47151, 47331, 7871, 15184, 11230, 33737, 42963, 21279, 12271, 7917, 32656, 20894, 22935, 32519, 13203, 17411, 18982, 16029, 41119, 20543, 26446, 22103, 20666, 36920, 16085, 39862, 22013, 40700, 39080, 35421, 36163, 19777, 36334, 19377, 40895, 25296, 43582, 40896, 30690, 14672, 11564, 33679, 16948, 34041, 37864, 27449, 34460, 8251, 11045, 36212, 25564, 32277, 48156, 45967, 37613, 26180, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p07F: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 47776, 47987, 22704, 39711, 20130, 27501, 23659, 36346, 27556, 19394, 45066, 19004, 34911, 13977, 13751, 8729, 39626, 16247, 47781, 18626, 12933, 26152, 8643, 27655, 44822, 21224, 15457, 32885, 46421, 15048, 11957, 15835, 9934, 24145, 43113, 20143, 8936, 29963, 26706, 23931, 43602, 35579, 27975, 33217, 40145, 24927, 33594, 45607, 20493, 31094, 31293, 18595, 20723, 48394, 15070, 40213, 15749, 15075, 32298, 15076, 30831, 9088, 30132, 39807, 46172, 15768, 43603, 43610, 31701, 39308, 16679, 48479, 35959, 10523, 30822, 38304, 43638, 23962, 35974, 25893, 16693, 37727, 37725, 15736, 37733, 17275, 26357, 26351, 15203, 33855, 14416, 16340, 47503, 21645, 26820, 16400, 27643, 15754, 7717, 16556, 36347, 22026, 15255, 33987, 41782, 46147, 48446, 16559, 47896, 44574, 46995, 7437, 14431, 23664, 34588, 34924, 29795, 26567, 25571, 7727, 14433, 24190, 10252, 38097, 8550, 19878, 45615, 10948, 25577, 19460, 22052, 27433, 46169, 26378, 29816, 19495, 19504, 26251, 42009, 27335, 31155, 12180, 27008, 42027, 44095, 44091, 14854, 7659, 15791, 42116, 16401, 31161, 45387, 15792, 25298, 43041, 47574, 12779, 40643, 31236, 42726, 39627, 32674, 32392, 32393, 31240, 18583, 35575, 39636, 43114, 42139, 31183, 31045, 44324, 16067, 20965, 36040, 44857, 38866, 14525, 33523, 14885, 33525, 24770, 23953, 16071, 29025, 31253, 10096, 44399, 16219, 42989, 10928, 38261, 14821, 17899, 10838, 10839, 12003, 15234, 39229, 8213, 43042, 23414, 43043, 29711, 25299, 25583, 46943, 32044, 38953, 40120, 39752, 38777, 38778, 22655, 31369, 19005, 18866, 39880, 33427, 17926, 20486, 12821, 12023, 14726, 12650, 33433, 10871, 47595, 20283, 41026, 10883, 29917, 48188, 37593, 18890, 18024, 17674, 17733, 17365, 7552, 29970, 43219, 24704, 18030, 7555, 25167, 29569, 31387, 7559, 14466, 43220, 19097, 41042, 12669, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p080: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 42370, 23844, 23843, 22565, 26892, 46281, 30517, 16272, 16275, 16273, 13215, 13234, 14311, 34699, 32910, 28214, 28215, 13726, 23984, 36730, 48094, 16054, 10280, 17513, 45106, 7718, 29712, 42719, 35015, 32156, 19964, 21872, 19200, 11160, 23879, 26344, 19601, 36037, 29222, 25777, 29041, 20527, 29421, 45708, 25782, 19471, 23887, 19308, 43978, 27950, 18519, 14353, 42935, 13314, 42395, 12143, 35092, 31512, 45107, 10780, 12345, 12346, 17901, 16086, 46723, 29367, 28769, 12350, 46411, 10330, 25300, 46526, 44098, 37501, 24903, 25628, 46733, 28893, 36624, 14333, 41528, 36697, 16513, 40914, 24663, 17523, 34082, 25064, 30078, 21310, 21901, 8383, 12884, 17041, 38197, 40943, 30088, 11750, 13362, 28505, 36775, 21821, 11763, 23159, 24693, 23263, 11764, 24694, 38292, 23264, 24706, 24714, 11777, 7553, 34037, 35103, 36743, 23275, 28832, 46769, 12381, 28918, 31403, 28556, 36746, 36748, 25682, 44485, 44477, 46137, 35008, 35242, 43115, 35285, 35023, 46153, 46154, 32804, 42898, 23894, 19349, 31844, 22734, 9637, 15883, 9122, 18638, 18705, 10767, 32586, 40010, 32863, 47308, 44897, 13682, 15742, 32653, 15624, 9739, 38350, 10138, 16390, 46641, 17214, 15092, 14700, 14853, 29495, 29426, 20105, 14631, 47812, 44001, 28135, 7483, 22736, 32405, 16134, 44495, 38222, 42181, 30503, 29759, 31071, 38703, 38704, 14746, 22737, 21345, 35861, 33969, 47186, 46069, 40089, 33972, 38053, 47338, 13204, 12395, 14748, 7686, 9134, 32034, 36522, 8127, 16503, 35813, 48089, 14713, 46650, 28577, 30114, 48140, 15356, 29427, 46328, 39426, 48549, 29498, 20054, 34070, 46651, 7967, 28023, 31963, 18156, 22602, 10774, 43523, 40733, 41991, 25619, 13453, 22374, 25850, 21382, 29065, 41555, 29382, 22985, 42708, 16712, 17137, 15892, 13458, 10656, 20591, 40593, 40594, 14325, 7454, 17794, 29923, 28463, 48141, 16761, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p081: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 10559, 36673, 46663, 12004, 26956, 40105, 12005, 40106, 26607, 26605, 19547, 40107, 28884, 23013, 33053, 45410, 30518, 28371, 27343, 28984, 26228, 37669, 9157, 38226, 37614, 40647, 20677, 21397, 44099, 17785, 12115, 25055, 33491, 36803, 26961, 11506, 33978, 31078, 12702, 21964, 11881, 40645, 40440, 37316, 29434, 10567, 28435, 30330, 13538, 37317, 28742, 28376, 29837, 16409, 26361, 24412, 24754, 46074, 12014, 20831, 24863, 34789, 29785, 8775, 26327, 29927, 23994, 23253, 11452, 12444, 36575, 28437, 21300, 28186, 23443, 42462, 41571, 32607, 33979, 11569, 15379, 15372, 21663, 14702, 31172, 37674, 13464, 29786, 17034, 48169, 13357, 38372, 27017, 28503, 47686, 10860, 11845, 26365, 29215, 12941, 7396, 40480, 28386, 34658, 34737, 28279, 45183, 47199, 32806, 14208, 33097, 37062, 42164, 20379, 37978, 20695, 44281, 19980, 13757, 8503, 10151, 15458, 39637, 28597, 27504, 37505, 36275, 37206, 7923, 31088, 26156, 37506, 34462, 36081, 35297, 47788, 15967, 43140, 9188, 24914, 19602, 29796, 40137, 15803, 26162, 8971, 29205, 10159, 26033, 17044, 29390, 11311, 8789, 20528, 15131, 36089, 27796, 38846, 47653, 26196, 20615, 43788, 26120, 47038, 41209, 12062, 25225, 36904, 29634, 28611, 11319, 24932, 12033, 16794, 39916, 36266, 14514, 46762, 20624, 33604, 18135, 12028, 33000, 39721, 35437, 14924, 43621, 33521, 47629, 12411, 23029, 28997, 37275, 24715, 8584, 43841, 22203, 11284, 43221, 21995, 23459, 24765, 33223, 37277, 16453, 30625, 12044, 8976, 41279, 28413, 38389, 45415, 39680, 8810, 40575, 23042, 23468, 41599, 25885, 19318, 45234, 26431, 32109, 45416, 26253, 28523, 45239, 10392, 30910, 38354, 16742, 45393, 25163, 16731, 48118, 20657, 28770, 11122, 19806, 15799, 11124, 27456, 28822, 46870, 46914, 15950, 20380, 13235, 46674, 40651, 35835, 46380, 21568, 39592, 44229, 9742, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p082: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 42290, 44244, 10930, 39093, 39094, 21594, 44317, 44443, 40571, 21823, 21612, 40460, 33767, 33784, 33792, 21553, 34335, 35892, 34522, 34379, 36583, 36021, 30392, 30393, 16644, 18498, 36611, 11355, 34832, 39248, 38548, 47239, 12595, 11338, 33488, 42836, 14488, 29246, 35864, 14491, 7852, 11339, 17415, 14653, 7813, 8370, 25852, 47159, 20363, 9568, 25301, 47462, 45507, 14028, 9158, 39438, 16017, 11340, 39230, 25855, 31739, 29404, 38781, 22967, 15269, 45477, 15022, 24146, 33697, 44306, 23742, 36808, 44575, 37979, 9189, 27210, 28692, 21678, 18766, 34445, 22718, 8741, 28080, 13257, 12653, 7952, 9762, 43204, 35156, 9577, 9624, 25783, 12320, 41211, 42362, 10952, 12721, 12515, 31228, 25941, 42876, 19656, 20443, 19309, 27165, 30642, 25945, 25894, 9990, 34760, 16035, 24824, 20106, 20176, 33262, 41865, 15238, 30089, 41943, 41969, 9630, 9642, 42892, 23904, 36725, 20575, 7305, 28197, 36629, 20576, 20863, 29603, 37571, 42916, 9850, 27444, 27332, 15618, 30897, 44486, 44487, 33713, 31708, 13678, 18303, 30670, 26736, 48120, 18983, 35387, 46871, 39699, 29751, 15168, 37252, 37931, 38456, 46626, 30726, 33476, 38182, 31108, 32539, 15169, 22832, 21045, 25841, 40858, 19350, 31502, 30493, 41612, 14812, 7643, 32963, 40374, 19741, 18391, 18392, 14613, 38589, 22087, 16265, 46804, 45092, 31503, 7575, 11149, 26876, 41449, 14740, 32636, 17405, 11724, 43384, 44082, 8706, 42937, 31393, 37932, 24350, 29834, 14140, 39588, 10139, 9565, 47538, 35211, 36329, 44900, 32442, 25263, 35823, 33714, 12804, 27536, 31666, 24359, 43930, 22593, 28054, 8125, 7965, 16268, 27636, 42828, 42831, 21846, 30028, 33005, 22927, 28889, 28530, 9128, 9005, 33480, 40685, 42281, 39334, 8210, 17879, 43572, 45723, 13385, 21636, 13193, 28746, 15632, 18089, 30107, 26951, 15187, 34011, 16335, 8424, 38049, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p083: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 15188, 47862, 26879, 14571, 19947, 26816, 26817, 7682, 11624, 27850, 47969, 46810, 10711, 19761, 21280, 25613, 11730, 28706, 44824, 41183, 43667, 31716, 15931, 27731, 24372, 32657, 43521, 16044, 31111, 9875, 10403, 44502, 17441, 48123, 25031, 38466, 19762, 16755, 11692, 20236, 11625, 16290, 16709, 26748, 9778, 20587, 20588, 15204, 44245, 47397, 47976, 20473, 18921, 43327, 9779, 14417, 32650, 32814, 10924, 26787, 36855, 47213, 30904, 47455, 41307, 18570, 15100, 32200, 15558, 12144, 21283, 40557, 11358, 9632, 21284, 14323, 7450, 31310, 10715, 32554, 20354, 36331, 18710, 30116, 24373, 21106, 23852, 34632, 47719, 12182, 20008, 32501, 8436, 9653, 31311, 18984, 19763, 12548, 48124, 32658, 19121, 40521, 26447, 43669, 41308, 21195, 35531, 43328, 26593, 17892, 47339, 42330, 13692, 37945, 24114, 13532, 15106, 32557, 43401, 17613, 8343, 9361, 45137, 12809, 37038, 35395, 35396, 10550, 10408, 38467, 8890, 38735, 16087, 24397, 30329, 47567, 27871, 24398, 47722, 48508, 37311, 31873, 33366, 35565, 10409, 29608, 21804, 26957, 27107, 40561, 21287, 10297, 33872, 22282, 41629, 36756, 44016, 12126, 16632, 17314, 44096, 12127, 20014, 37718, 35252, 28967, 33687, 39612, 23779, 15218, 14079, 27872, 38248, 20903, 28248, 28059, 22459, 23500, 24657, 34202, 38310, 37107, 39343, 19246, 44017, 43670, 43576, 16226, 11503, 26783, 26784, 11695, 37615, 21295, 12925, 32036, 13399, 20118, 48265, 16346, 23415, 25982, 21730, 38057, 22286, 28780, 23301, 17628, 30332, 45282, 15830, 17073, 15240, 26324, 10113, 11046, 35063, 11446, 45968, 27072, 9454, 7689, 24125, 37047, 9089, 17324, 8046, 31598, 21988, 38759, 31513, 12878, 20818, 30331, 12551, 21153, 31315, 35827, 16057, 18421, 16347, 25302, 14673, 31516, 7387, 37745, 8277, 47314, 41565, 21660, 20119, 25189, 35984, 34515, 36528, 12640, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p084: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 18277, 30537, 17629, 12010, 36213, 11474, 8462, 10147, 18573, 14759, 23509, 30423, 27108, 30125, 37790, 12439, 33419, 18574, 41753, 42720, 36643, 30538, 37616, 9660, 28220, 46413, 37431, 21516, 36696, 26362, 8463, 43044, 29310, 9295, 29435, 13353, 43672, 43673, 43674, 39872, 33054, 31804, 22613, 39808, 37673, 44434, 44283, 15446, 24790, 41009, 41010, 28276, 9670, 38316, 11535, 39881, 44259, 8681, 26907, 7392, 14192, 26462, 43682, 23379, 23380, 20482, 27502, 48561, 48562, 48303, 8009, 32779, 39011, 42463, 7393, 32047, 20132, 15258, 26186, 21301, 29566, 14971, 17916, 17917, 18008, 41885, 37011, 46315, 48003, 39712, 32608, 15951, 30839, 31652, 27349, 18744, 33888, 30333, 15598, 13426, 47350, 20381, 37965, 9167, 37805, 29249, 19807, 18184, 45412, 19972, 13752, 42340, 35400, 11741, 32226, 37806, 46348, 23187, 36765, 19135, 39012, 34122, 30772, 23588, 48170, 42161, 44761, 26972, 45067, 34641, 12935, 47681, 16606, 32454, 41168, 10025, 22404, 23254, 18405, 20516, 25757, 37966, 29300, 44183, 35139, 43540, 34130, 11514, 34214, 45071, 46361, 23783, 32830, 27119, 24443, 32300, 35381, 44840, 24444, 21815, 38803, 7943, 11154, 40816, 37064, 25486, 19269, 13030, 31124, 48304, 30250, 12097, 44766, 11161, 44576, 22995, 29328, 30334, 30335, 28169, 34859, 38961, 14865, 45118, 46538, 20144, 19592, 33013, 9574, 14299, 27268, 17444, 35536, 46362, 27745, 35140, 40929, 25487, 38962, 16417, 23733, 32682, 38286, 15606, 12135, 34131, 36071, 26420, 32886, 35576, 41015, 8162, 42301, 16895, 8504, 48222, 16955, 48563, 36644, 9674, 29549, 23591, 12464, 19818, 24147, 33892, 23769, 44577, 25319, 43688, 27895, 13168, 36648, 26871, 36830, 11265, 29620, 7398, 24673, 11752, 39022, 30133, 31808, 21164, 11517, 20958, 37880, 37164, 9611, 44616, 43142, 48073, 24976, 8505, 25920, 40987, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p085: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9377, 46024, 23932, 31220, 26707, 41661, 25335, 19808, 8783, 16961, 17281, 12823, 35298, 26021, 33819, 33648, 12824, 27596, 41265, 26708, 9190, 12952, 12100, 46302, 33900, 41140, 38081, 18198, 7538, 27351, 25772, 11891, 47168, 9456, 30198, 20521, 27407, 11753, 28716, 19032, 22040, 43429, 20392, 28628, 34539, 43356, 17042, 10426, 18360, 33380, 22867, 31132, 26511, 45394, 45523, 31217, 13493, 24761, 25219, 22868, 7294, 8528, 24179, 37996, 19619, 31046, 34086, 14462, 27128, 29223, 10043, 13033, 41397, 20616, 32953, 32954, 24002, 44327, 31326, 11169, 18436, 20161, 26597, 45122, 7973, 44052, 32058, 26055, 32505, 19046, 14232, 36375, 14729, 22180, 48454, 14448, 32836, 14874, 23265, 34835, 32948, 41486, 40782, 15480, 22181, 12571, 38485, 13431, 34940, 39917, 39125, 25639, 38166, 33703, 30596, 20162, 45192, 35539, 25349, 44636, 39258, 38302, 19620, 17943, 35041, 28993, 24005, 41031, 45197, 44617, 38975, 17543, 7988, 17447, 7344, 37827, 19062, 19063, 19865, 11654, 39718, 37685, 27598, 43205, 24092, 20495, 9553, 33910, 31225, 24707, 22629, 44858, 12209, 36468, 36044, 41172, 8571, 45871, 35540, 39377, 14515, 13337, 40304, 16449, 40305, 34594, 20413, 17448, 17848, 33073, 40410, 41269, 42353, 7797, 35198, 34595, 41275, 13833, 30057, 38003, 28912, 11082, 26586, 32846, 29984, 35848, 19880, 45454, 10439, 46381, 14371, 28551, 43707, 15848, 11818, 39923, 30612, 14435, 20292, 40961, 23209, 19643, 8693, 13179, 27426, 23607, 21260, 9587, 27562, 31772, 31453, 39552, 24961, 29227, 39489, 35338, 26124, 43236, 40971, 40199, 24211, 43237, 23433, 24016, 20790, 12836, 46859, 8100, 36291, 42363, 27932, 18693, 8807, 14468, 35201, 35961, 37166, 31781, 31338, 38116, 25524, 19079, 29197, 15851, 45203, 8023, 24547, 34602, 11184, 7301, 25235, 45457, 41043, 31609, 23566, 19310, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p086: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 37440, 38664, 32959, 32960, 30631, 17811, 25877, 35226, 37195, 27167, 45210, 30156, 44474, 41282, 19896, 21451, 41044, 27815, 31825, 35227, 21452, 29652, 28847, 9291, 32473, 43269, 39563, 44371, 21783, 24772, 24773, 43506, 31229, 43639, 25661, 36978, 18410, 45032, 25379, 32093, 42264, 14532, 26999, 17384, 23169, 23629, 19906, 12583, 26725, 24075, 23963, 18906, 14997, 46707, 38128, 23217, 46002, 18520, 24240, 19914, 27315, 24031, 18533, 26390, 19496, 23221, 26107, 20217, 33090, 36303, 23973, 32284, 39954, 43303, 26256, 27085, 8882, 18079, 18271, 25909, 29103, 26178, 34901, 39863, 31011, 11247, 18104, 40741, 12091, 15241, 40742, 40756, 25915, 18281, 44307, 17525, 20608, 21891, 17046, 8063, 41674, 45986, 45987, 23162, 8948, 39152, 34694, 10965, 31846, 13103, 19692, 31851, 13316, 34102, 39181, 22105, 46197, 33769, 44193, 17224, 48095, 17893, 18850, 27104, 16022, 35390, 39186, 9878, 34197, 42837, 26532, 39764, 14620, 14163, 7660, 10781, 30920, 38189, 38190, 32966, 7931, 29768, 44975, 44976, 22283, 30520, 36863, 43470, 30521, 9493, 44811, 22114, 18925, 31514, 30522, 47216, 41456, 17458, 28060, 37719, 14855, 14856, 17416, 16145, 45444, 15426, 32411, 21061, 15219, 10657, 13517, 8047, 39529, 28492, 12293, 31802, 44022, 45762, 30126, 10721, 44164, 17630, 17187, 21873, 24413, 15435, 32414, 45686, 16276, 29776, 29777, 39439, 47575, 13114, 8892, 9018, 16348, 45850, 31974, 33773, 36702, 25303, 16410, 12440, 16411, 43675, 24414, 10497, 31981, 27974, 15952, 11699, 18929, 18930, 26767, 15447, 42044, 37459, 25058, 47412, 42595, 39448, 23381, 20599, 24427, 43082, 30134, 30431, 17106, 33777, 42727, 37752, 27885, 31741, 31433, 16853, 31742, 46976, 26635, 23859, 46222, 20021, 28342, 34912, 30554, 40481, 21071, 31908, 33698, 43911, 20027, 37220, 10300, 8163, 14092, 17339, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p087: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 34589, 41068, 14975, 33989, 33990, 15375, 39638, 46175, 38481, 15271, 24148, 23743, 8506, 11162, 44767, 44109, 20944, 12445, 41650, 36766, 13065, 37221, 18931, 38321, 46690, 35070, 14685, 21679, 27408, 30585, 30586, 44599, 22339, 23452, 27211, 31176, 34925, 38824, 26333, 24456, 13253, 36654, 36220, 23317, 17254, 17351, 44600, 7946, 14707, 29797, 37816, 13861, 43143, 44775, 35661, 32236, 31089, 32975, 28507, 31629, 38082, 24868, 17080, 37551, 13408, 14217, 7856, 12953, 37760, 9501, 42098, 43691, 17004, 9939, 13364, 23453, 22637, 20945, 40072, 36776, 26930, 40783, 27457, 44328, 20843, 34219, 41028, 18767, 41800, 8650, 32787, 37822, 15481, 44851, 27055, 38092, 15300, 32837, 40146, 44053, 31918, 26841, 39200, 43605, 34143, 10977, 36041, 47421, 48189, 36376, 15482, 44852, 23202, 27129, 23458, 13615, 18209, 31813, 13258, 24464, 38323, 45075, 32140, 28285, 25778, 11482, 32696, 43696, 20491, 7890, 23746, 29413, 34944, 38869, 11709, 38870, 44859, 38274, 24708, 35158, 7832, 32701, 32702, 19633, 38439, 40713, 17367, 31547, 42777, 8335, 18437, 36097, 42869, 13716, 28233, 17676, 18230, 16792, 26540, 27752, 43206, 38206, 43703, 36260, 47172, 9578, 33221, 30604, 26686, 36692, 33654, 34403, 9625, 10683, 12969, 7554, 26071, 38109, 47083, 36100, 10436, 29971, 32071, 29809, 44350, 20422, 26373, 25784, 31578, 47174, 43501, 20500, 34723, 38210, 39924, 37688, 46257, 46308, 26517, 26518, 17015, 25515, 26846, 38883, 11779, 24203, 26690, 39925, 10213, 46033, 26794, 39828, 27933, 48419, 34952, 31822, 36262, 46770, 29642, 29643, 20731, 32083, 8873, 24948, 29343, 16868, 39036, 19717, 47657, 18779, 14708, 23833, 22212, 22213, 19090, 43444, 9961, 20638, 33616, 28356, 39936, 38499, 10980, 41353, 34953, 11185, 10525, 12516, 24318, 40341, 33620, 42877, 21365, 12214, 9966, 30823, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p088: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 11611, 39783, 33828, 26429, 31552, 43719, 9885, 24524, 45590, 41045, 24730, 47479, 45553, 40077, 26796, 40342, 30643, 32725, 20319, 27219, 17490, 32854, 19311, 47948, 21011, 30062, 17573, 27617, 14536, 24028, 21008, 23481, 27721, 24241, 11546, 24567, 31832, 28859, 25895, 13723, 39949, 47445, 25685, 24242, 25686, 14999, 42393, 29821, 28303, 16465, 21980, 43654, 34610, 38935, 9520, 32119, 32261, 13725, 9521, 26673, 32124, 21022, 47493, 47851, 41216, 18711, 29083, 29499, 29087, 40441, 47224, 26610, 14390, 22368, 27618, 39179, 40508, 41744, 22490, 44906, 32037, 25304, 41129, 34642, 39440, 36935, 39809, 20832, 39455, 41464, 18211, 38094, 12654, 10943, 38099, 12659, 47818, 17802, 32120, 42564, 42562, 9316, 15672, 44230, 8833, 9815, 42662, 33481, 10462, 15101, 16945, 14818, 34705, 20886, 28141, 47156, 12396, 42993, 47214, 47160, 21057, 46818, 40109, 32407, 46653, 32595, 31479, 21107, 22279, 44813, 27037, 9879, 7577, 28711, 18852, 32408, 19966, 37356, 25440, 12295, 8048, 29450, 42335, 48555, 8449, 33742, 35982, 21874, 17713, 41185, 40701, 46409, 42710, 29267, 9082, 12774, 37498, 15427, 16949, 46916, 46948, 32412, 29368, 43021, 26899, 37312, 28148, 16244, 41122, 46209, 31966, 8136, 44532, 38954, 27257, 9146, 9090, 15242, 10792, 10787, 22942, 32603, 20546, 20017, 20369, 9160, 20913, 14329, 15894, 32823, 47406, 16771, 43340, 9429, 25059, 22375, 40577, 47726, 12498, 40757, 23302, 22754, 28714, 34651, 20022, 23345, 10583, 24301, 21968, 33889, 30281, 15954, 43119, 44558, 46414, 25478, 31909, 32391, 19819, 43120, 9322, 47727, 34811, 33382, 32394, 24296, 24664, 24758, 22947, 20256, 15069, 9908, 8507, 23311, 36218, 44920, 25321, 10796, 10119, 11059, 13936, 8835, 24864, 33683, 29518, 29519, 14682, 44768, 26421, 17081, 41783, 13611, 36453, 47021, 21675, 42856, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p089: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 30564, 17076, 16560, 22755, 30434, 36456, 36366, 15468, 10974, 40282, 8685, 13254, 23318, 13733, 40710, 40711, 17724, 44921, 7974, 8013, 15469, 44318, 37159, 41796, 18883, 8170, 11204, 26157, 29459, 12364, 45146, 35680, 16256, 12155, 18508, 32697, 44922, 32890, 28232, 21487, 35624, 7833, 37224, 10801, 33194, 28722, 43611, 21077, 30962, 18511, 22952, 24695, 23596, 24180, 46287, 34150, 26163, 43207, 13191, 40314, 39382, 38110, 8840, 9621, 19450, 31244, 33340, 7975, 39722, 8553, 15321, 20293, 47700, 20294, 12038, 19644, 12376, 45258, 14519, 9227, 39826, 40419, 8900, 32507, 26687, 23608, 7585, 45549, 16923, 9640, 35501, 28999, 9914, 24767, 8611, 21134, 12512, 34604, 36003, 8612, 23617, 15331, 32852, 46861, 13844, 34607, 37510, 34416, 7776, 40177, 9259, 10479, 23571, 25678, 38991, 39404, 23638, 46289, 12329, 21832, 45379, 34166, 20334, 29378, 43297, 23648, 41495, 38687, 38688, 42331, 15032, 35925, 15448, 15060, 15513, 7731, 17691, 19498, 19506, 20347, 16598, 8721, 41866, 16772, 22125, 29948, 26900, 27384, 27385, 27589, 34341, 35020, 9906, 26366, 22146, 27400, 36686, 24680, 42347, 47022, 22291, 38968, 33556, 37824, 39126, 36588, 44339, 23669, 14247, 13675, 31491, 29423, 19881, 27754, 43708, 16321, 32012, 45991, 21264, 16616, 12724, 20438, 26379, 32166, 20196, 37911, 22230, 32018, 26382, 23680, 33966, 12852, 16628, 20345, 16595, 41854, 16752, 27374, 34303, 9899, 23654, 22106, 19779, 38955, 12813, 36577, 44308, 16313, 21244, 32158, 20658, 31857, 21108, 11862, 22126, 46949, 10283, 19550, 16350, 12446, 48012, 12881, 33640, 18475, 32231, 15963, 34368, 21028, 16856, 16159, 11266, 21029, 19186, 31912, 40487, 35299, 28510, 19430, 26036, 47040, 45662, 8572, 40499, 18236, 33655, 16179, 47110, 41204, 11289, 38904, 42805, 24604, 22237, 38931, 41961, 38938, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p08A: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 41613, 41614, 13349, 15419, 31858, 31859, 20758, 17823, 19764, 14454, 41377, 13153, 17967, 9880, 36241, 40739, 20904, 42711, 32598, 41378, 43402, 33574, 30751, 37313, 19780, 41379, 43403, 14082, 14825, 41521, 42155, 35118, 33946, 43410, 40391, 22127, 39972, 28422, 10415, 44023, 46831, 40595, 14654, 40442, 10221, 33799, 41640, 33034, 47824, 40830, 43047, 43048, 35269, 10665, 17567, 33890, 17638, 40916, 46416, 47580, 46600, 16295, 48014, 48110, 45854, 16418, 15449, 20257, 13236, 25308, 12882, 42118, 24428, 28343, 29370, 47351, 15714, 43085, 21881, 42341, 45765, 42729, 42730, 32138, 46142, 30135, 8481, 40618, 31983, 7691, 12197, 48369, 36169, 47512, 11634, 46223, 43904, 40835, 41328, 43121, 18815, 17650, 34369, 9795, 40029, 34132, 17776, 9837, 16304, 16857, 32232, 19019, 20946, 18476, 15567, 39754, 37814, 33893, 47355, 36879, 27273, 45860, 27774, 14209, 18876, 41658, 40598, 16561, 14392, 9053, 36675, 42745, 23997, 47416, 23079, 22968, 38430, 44579, 36276, 19841, 47024, 32614, 11892, 23772, 14095, 23098, 14293, 34380, 36813, 12449, 8171, 9940, 44174, 22778, 31373, 31488, 34704, 7399, 44448, 40033, 10591, 21074, 39645, 38435, 38639, 15871, 35124, 9304, 19033, 21412, 34844, 46474, 34845, 13613, 18404, 10209, 34790, 20968, 22720, 32001, 11812, 39981, 35479, 37761, 39466, 14730, 10681, 35756, 43166, 28606, 43440, 13172, 29844, 47909, 10044, 10384, 47817, 19853, 30454, 35942, 47795, 37997, 21682, 31677, 13432, 46603, 45531, 48273, 30958, 47910, 24889, 20403, 11275, 17475, 26349, 33953, 8837, 18491, 29938, 44330, 13264, 40788, 29951, 34399, 41033, 34400, 19190, 18492, 14248, 47231, 12964, 40154, 15310, 30378, 36777, 20414, 30710, 44638, 48040, 47656, 39032, 19065, 43364, 7406, 39477, 28262, 10437, 15035, 47425, 42058, 41923, 18772, 41034, 15986, 29157, 30459, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p08B: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 27983, 42504, 38100, 40495, 36287, 47291, 33610, 20296, 30202, 23271, 18823, 19291, 15920, 43709, 27282, 40001, 27428, 39035, 31191, 10388, 41245, 36390, 35342, 7954, 10751, 30967, 34405, 20532, 44862, 40317, 17740, 36188, 42248, 42249, 25837, 44356, 8808, 11838, 31704, 24204, 27806, 27807, 33656, 46263, 27781, 20308, 45550, 20847, 24717, 25786, 9557, 29198, 16981, 38980, 47935, 7557, 7558, 21178, 46264, 42797, 18142, 20569, 26657, 10258, 17379, 18443, 10061, 40800, 45619, 33328, 38905, 45667, 13841, 46615, 28358, 23618, 14109, 43640, 22220, 19480, 48492, 20736, 9290, 19099, 47705, 38503, 45598, 45714, 34230, 31389, 35965, 45599, 30384, 34047, 41047, 45486, 35970, 12529, 35514, 39565, 19485, 20797, 21366, 45997, 28301, 42624, 7302, 45888, 29899, 18964, 18502, 43270, 43271, 33621, 32498, 29046, 31101, 13851, 35796, 18378, 47298, 17491, 7369, 43647, 20449, 44695, 20328, 19111, 13646, 46270, 41161, 45374, 24032, 33967, 38138, 10074, 24613, 42808, 8759, 46276, 41962, 14282, 11097, 38142, 11098, 42379, 9995, 32499, 43513, 23645, 10482, 40189, 28867, 18556, 45381, 43307, 12539, 45903, 41976, 13662, 41606, 19727, 13342, 15400, 32568, 19336, 20864, 17965, 36239, 32496, 33563, 30715, 37293, 41362, 42899, 41363, 19728, 32571, 20510, 18973, 29172, 21840, 41496, 28416, 40818, 14069, 26346, 40584, 35110, 15040, 33789, 14639, 22080, 46590, 16387, 17556, 30100, 48357, 34294, 40610, 45750, 35239, 46394, 12862, 47240, 11614, 31950, 46127, 8408, 42938, 42651, 23063, 23986, 34304, 16552, 34103, 19531, 18843, 10542, 47392, 33856, 18462, 12428, 16286, 32194, 16824, 41298, 42965, 46504, 15552, 39741, 9828, 19170, 40823, 47248, 21058, 38419, 44410, 31359, 38605, 15858, 44156, 18985, 23092, 34842, 35113, 14292, 31669, 47401, 48262, 29137, 13600, 47870, 14715, 22692, 37946, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p08C: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 44252, 33840, 33940, 13154, 10014, 24877, 47814, 35454, 35917, 33941, 43022, 27971, 10416, 13220, 18813, 20371, 40116, 41233, 42457, 38058, 14173, 44533, 40999, 9924, 47989, 7388, 41874, 12926, 27263, 29924, 40744, 27785, 12525, 35270, 40253, 42204, 7938, 34357, 30933, 27390, 21157, 26637, 46227, 20268, 27780, 35932, 45597, 31319, 23593, 30376, 22168, 41909, 31091, 45866, 10476, 16388, 30921, 17907, 39191, 19563, 17927, 17196, 17843, 38884, 38885, 19206, 24949, 17288, 13647, 25689, 13525, 20477, 30683, 34344, 24302, 12708, 37553, 8332, 34673, 39668, 14987, 47119, 47133, 41977, 41979, 34245, 11231, 18859, 37258, 43049, 37259, 43050, 20120, 7665, 18062, 14195, 11155, 39805, 18677, 20145, 22743, 15568, 21892, 15127, 38826, 8940, 17468, 44618, 47426, 19990, 14881, 38886, 9228, 38167, 18603, 8949, 12842, 48199, 14887, 43258, 46876, 8043, 9864, 7456, 29778, 28155, 29713, 16280, 28160, 44167, 13116, 27886, 35025, 40653, 18584, 23312, 17652, 17464, 27896, 7468, 26923, 24171, 28511, 8386, 44461, 19991, 37118, 26809, 29810, 38887, 43224, 21934, 27930, 11142, 35966, 18557, 22257, 8116, 46329, 44806, 15420, 9428, 16221, 36252, 42712, 17421, 37587, 30050, 19257, 14586, 35893, 16661, 45508, 46951, 14389, 47581, 34358, 8482, 48015, 14391, 16891, 29950, 8678, 26594, 12301, 34079, 23125, 14765, 36699, 42732, 10727, 26908, 17717, 8483, 26004, 25216, 19021, 15569, 29932, 48016, 20066, 40932, 45585, 20696, 15570, 45390, 20385, 43606, 41393, 46475, 33760, 8941, 8942, 31913, 33761, 11374, 45395, 47280, 23550, 45356, 11710, 10385, 33667, 36590, 29525, 16068, 39467, 26617, 20404, 35481, 15483, 36024, 11813, 11814, 47043, 19432, 46082, 13676, 21251, 40601, 11542, 45154, 8020, 45289, 23553, 15057, 9595, 19463, 34091, 43225, 47701, 15502, 16322, 33114, 45551, 24950, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p08D: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 43240, 7801, 10458, 37691, 47099, 47804, 8811, 45080, 45629, 12485, 45367, 41944, 30358, 33622, 37694, 43725, 21267, 15727, 39504, 45400, 8624, 13648, 34575, 41958, 33671, 41163, 25743, 15731, 45402, 8111, 46318, 15403, 44795, 16217, 9427, 45496, 39421, 7782, 46070, 19238, 46885, 14572, 35883, 30048, 8670, 16287, 47545, 16655, 14385, 20355, 8200, 34323, 36695, 16880, 23117, 12282, 26886, 14749, 17711, 42689, 45583, 46918, 20057, 18991, 47981, 25214, 25968, 45388, 47982, 15561, 21206, 31886, 46462, 23544, 33756, 15450, 13670, 19395, 34561, 33666, 11701, 8484, 47269, 16063, 29515, 12400, 23547, 15049, 47792, 15470, 47690, 33112, 45532, 41925, 45357, 45077, 45627, 33611, 43710, 15728, 10822, 38760, 33800, 28273, 36880, 39105, 10503, 17727, 10519, 46286, 39263, 36102, 48288, 48287, 24376, 21510, 15421, 46134, 15674, 30684, 33576, 31730, 43473, 39532, 47990, 22128, 31567, 10722, 11599, 10467, 10468, 13237, 21668, 10225, 12783, 39096, 45855, 22147, 44993, 31984, 19594, 10737, 11163, 16517, 41240, 48017, 36651, 13988, 25065, 15682, 35581, 11894, 38969, 46156, 35300, 43491, 21755, 20405, 32351, 36147, 11576, 11984, 26038, 32159, 12572, 31816, 48041, 36385, 32009, 10902, 18787, 31339, 31301, 20792, 45487, 36484, 14375, 45347, 45348, 48308, 29244, 8044, 22938, 22606, 13884, 22129, 15112, 10447, 20247, 14661, 46832, 35671, 44982, 7721, 30540, 44983, 31166, 37433, 35828, 43087, 28657, 25310, 27044, 7693, 13187, 22902, 37366, 19974, 11602, 29468, 30846, 47583, 21669, 13027, 46740, 15117, 29324, 21886, 33497, 9278, 28499, 21882, 24429, 16033, 42747, 19407, 14035, 39540, 20602, 14036, 47417, 32233, 22987, 47635, 16897, 31751, 23233, 39756, 10861, 26005, 29933, 47000, 20028, 36687, 9448, 20382, 12201, 31268, 8508, 39356, 14037, 19408, 21751, 19842, 34535, 37074, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p08E: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 11270, 21413, 28806, 39901, 9381, 41194, 12059, 28036, 34536, 24838, 43915, 20700, 11065, 31277, 27976, 35757, 20406, 30598, 38324, 37998, 11548, 20969, 19621, 28813, 21684, 28814, 26335, 26039, 24101, 18509, 21913, 10745, 37643, 32240, 36319, 9202, 48330, 31448, 42863, 11901, 48190, 9451, 48191, 29674, 47044, 46541, 13034, 46759, 44341, 13958, 13917, 11364, 43921, 47203, 12965, 45738, 10455, 11320, 20407, 16522, 36098, 21824, 15312, 48333, 13265, 29942, 32788, 29158, 36386, 9819, 37209, 20297, 12624, 12084, 30463, 35771, 31192, 28670, 12996, 36391, 19647, 28827, 26656, 25459, 45365, 8586, 10954, 26082, 24951, 11908, 36047, 12326, 35348, 39037, 23239, 19475, 46771, 31197, 12843, 29344, 48200, 24718, 8309, 45429, 28674, 8905, 37196, 21778, 12726, 9731, 39392, 14527, 11189, 47179, 13877, 9111, 11912, 11913, 22222, 22223, 25237, 35687, 31302, 22067, 30385, 24895, 13878, 11929, 16683, 45488, 12219, 8619, 8620, 47482, 21942, 11186, 31391, 13886, 11094, 19491, 38572, 45038, 28676, 25239, 25110, 46780, 24606, 47127, 9988, 11193, 13769, 38139, 25690, 25244, 39405, 38144, 48386, 23646, 40361, 32481, 33042, 28868, 35806, 32123, 19676, 11931, 12114, 39046, 23225, 22259, 25246, 33847, 16146, 12352, 14827, 31976, 36419, 13989, 13990, 16160, 23747, 32563, 26424, 7297, 19433, 21756, 36131, 22810, 23884, 41805, 27023, 22533, 32014, 25790, 23890, 14005, 46774, 41945, 36424, 12671, 43658, 44721, 10292, 41504, 16834, 22280, 38055, 44977, 40439, 12285, 40997, 14577, 32600, 33492, 23094, 34516, 37260, 10417, 12296, 14174, 28157, 30542, 26825, 32915, 23095, 31018, 47665, 17825, 18110, 32051, 23126, 12883, 25312, 12302, 7517, 46418, 14589, 23082, 42095, 29591, 8154, 16351, 16352, 29454, 47585, 32748, 14197, 7695, 47306, 46838, 42205, 22615, 43088, 46978, 34372, 30138, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p08F: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 14334, 16205, 21745, 20773, 16715, 17654, 22409, 32234, 47273, 45312, 47001, 33759, 24887, 44602, 33699, 44046, 37678, 43487, 46234, 37638, 15381, 31630, 47282, 28512, 24090, 46242, 45982, 24890, 48033, 18892, 37762, 11577, 17082, 22475, 42864, 29630, 31138, 16965, 28667, 30146, 16642, 8177, 26336, 29280, 24843, 32931, 32789, 19637, 42059, 39478, 11352, 11852, 11487, 15987, 44057, 17849, 34542, 15494, 48042, 15313, 38168, 8237, 45937, 44352, 38169, 36189, 16454, 46383, 39269, 44863, 26083, 20639, 10256, 47671, 38117, 19160, 41212, 46268, 20793, 45993, 9310, 23870, 14888, 14469, 25172, 15999, 33326, 22485, 18613, 42879, 19664, 47808, 14347, 44696, 20450, 17859, 23967, 29556, 24607, 24618, 25897, 25247, 10290, 41492, 16819, 40989, 12263, 32587, 47662, 14147, 26313, 32909, 17821, 16337, 22603, 25851, 47304, 46819, 42995, 18094, 46402, 24378, 42187, 31615, 34336, 45308, 46919, 20764, 47253, 32205, 25969, 20765, 46218, 15366, 24878, 28659, 8155, 18867, 16952, 37753, 24833, 11570, 48004, 11847, 15274, 19595, 38162, 34530, 29550, 44848, 39253, 28661, 26044, 46250, 25159, 40375, 16353, 11636, 11640, 29875, 48447, 8737, 23454, 23455, 11647, 41173, 7884, 8745, 8746, 8747, 41174, 8751, 7836, 11662, 8756, 8758, 10398, 32866, 28986, 28989, 10063, 11556, 11554, 42561, 32623, 8636, 8637, 34175, 44184, 24896, 12168, 9895, 15619, 30898, 44188, 44189, 30721, 41366, 42644, 17094, 26600, 30403, 45221, 37771, 37105, 47811, 43666, 12169, 45164, 21188, 17406, 41500, 14549, 38590, 12170, 14072, 17120, 46290, 12171, 21189, 44882, 37848, 24652, 10707, 10319, 28573, 36635, 46886, 42663, 21459, 19948, 10401, 12272, 14355, 12805, 30226, 47546, 13194, 45497, 36198, 34623, 37342, 32168, 21376, 18922, 13454, 44157, 27255, 8293, 19363, 28203, 42690, 20895, 47755, 25032, 41372, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p090: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 37214, 35114, 34324, 36202, 29402, 18056, 28578, 13896, 21463, 41092, 41373, 9299, 43950, 39864, 31874, 36979, 47459, 31875, 12913, 12914, 37039, 21390, 36437, 13533, 42842, 46295, 36826, 16740, 38612, 34337, 10628, 35253, 45470, 32382, 15014, 24658, 35657, 18926, 24290, 16402, 23510, 8227, 12129, 22132, 8294, 18658, 12253, 25983, 44025, 47261, 21213, 44534, 11547, 23178, 37791, 36443, 43053, 12193, 44886, 26363, 8320, 29143, 44285, 12555, 35424, 13904, 35462, 41774, 11342, 10728, 36348, 44561, 34208, 46349, 44032, 45181, 14198, 8731, 17098, 14199, 39241, 18745, 31902, 12643, 12198, 37873, 28254, 42733, 16306, 42217, 11125, 25488, 41391, 35737, 12944, 10738, 44889, 35287, 35738, 31086, 26535, 42218, 16672, 46025, 7539, 34382, 9411, 10873, 35301, 45422, 46178, 13912, 12954, 25773, 10746, 12080, 25153, 48474, 32520, 30959, 41101, 44622, 42768, 14237, 24928, 21923, 34401, 8573, 42171, 26618, 40307, 35502, 17127, 45873, 36282, 14372, 27563, 8655, 8659, 23422, 24215, 44871, 42267, 26391, 24322, 42939, 36750, 12736, 30665, 43809, 33470, 17207, 44210, 26731, 32808, 31711, 38678, 23106, 15085, 22548, 8920, 14610, 40509, 28124, 40371, 33931, 7891, 44796, 12054, 19226, 40085, 7902, 38412, 21847, 43995, 17211, 35819, 31792, 8409, 29685, 9000, 33736, 8117, 37484, 12863, 48260, 42438, 25126, 23064, 16753, 47393, 34104, 22891, 44496, 15553, 17590, 31412, 46888, 19532, 18564, 18051, 40515, 20581, 38945, 16782, 29112, 23718, 20007, 23007, 46592, 23744, 45168, 41622, 10543, 13526, 38717, 26112, 15357, 38457, 15205, 15859, 17494, 23719, 20009, 16077, 22307, 43739, 9135, 39075, 8128, 24379, 45099, 9363, 39966, 30414, 29769, 31618, 16991, 47254, 35918, 48263, 30108, 23501, 28485, 10366, 44018, 9383, 39703, 12348, 21731, 43838, 31262, 42588, 13483, 41755, 26962, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p091: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 33008, 8146, 14175, 34517, 22020, 44427, 45173, 17998, 23179, 39706, 39707, 35132, 36063, 27740, 38785, 32867, 11258, 48005, 48269, 42464, 38427, 39713, 45110, 17521, 43817, 8379, 26909, 10239, 15125, 24974, 43423, 47646, 18350, 31269, 41576, 46015, 26698, 31270, 40840, 12740, 8603, 41332, 8529, 45603, 37881, 46605, 26925, 33588, 25146, 30199, 12365, 27130, 42494, 9638, 23024, 14981, 27131, 48275, 23131, 24766, 45361, 9956, 43964, 19465, 41933, 9968, 12107, 25373, 18546, 38923, 14992, 45371, 24585, 44083, 13317, 31861, 47871, 29546, 47344, 42843, 15640, 44255, 21557, 41756, 48441, 26826, 46463, 40900, 13540, 46346, 14828, 44817, 15533, 45174, 35867, 36501, 30847, 37370, 11885, 17191, 16354, 35215, 30248, 11060, 45313, 27768, 23880, 11573, 11061, 44171, 36881, 46844, 39357, 20551, 10598, 43545, 37075, 20778, 26982, 22950, 35371, 24056, 30337, 48451, 17141, 41903, 33450, 28699, 37888, 26045, 23665, 41588, 36223, 29503, 45930, 11520, 35943, 48455, 47796, 11902, 23322, 36387, 39479, 13585, 18232, 40846, 40547, 36001, 31923, 11523, 45199, 30257, 22642, 35163, 27283, 32242, 11115, 12085, 45201, 43937, 7512, 45779, 17144, 36104, 20561, 29998, 10459, 44676, 24205, 45430, 23834, 42621, 20566, 9311, 20795, 38906, 35968, 14406, 29002, 43272, 24319, 21943, 41953, 43273, 28700, 32858, 41288, 11095, 41964, 25395, 27324, 27325, 28702, 40464, 20806, 33455, 27330, 41973, 8708, 9435, 34346, 44168, 34360, 34417, 24281, 47215, 42423, 24885, 24216, 21100, 21101, 31862, 42838, 24973, 12596, 46097, 13318, 30238, 31877, 7661, 15361, 46340, 46724, 7662, 26275, 15362, 28205, 13159, 33579, 31351, 22858, 11370, 48103, 14553, 18422, 18423, 17325, 15759, 30544, 26760, 32646, 12927, 35017, 39086, 43054, 9854, 34116, 37103, 38762, 29079, 30929, 31889, 20372, 29868, 42403, 21117, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p092: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 7709, 14621, 10422, 40534, 13519, 44995, 30934, 15118, 29714, 28161, 40396, 14089, 22149, 13906, 16248, 43478, 31025, 7855, 33055, 32541, 10226, 28969, 14829, 45141, 42851, 31520, 29715, 16995, 17920, 43417, 22287, 13165, 43090, 47164, 39013, 15599, 32647, 19228, 35870, 22555, 44826, 25859, 14200, 31521, 13951, 48025, 28541, 37066, 34373, 27662, 16358, 22622, 25322, 9024, 35026, 16426, 9177, 29722, 44581, 35027, 48518, 9303, 44040, 36537, 20067, 46363, 34264, 34374, 46746, 21888, 9909, 34133, 34134, 41136, 46100, 8053, 17655, 8510, 34032, 11164, 34215, 9178, 47590, 10862, 45227, 30182, 36882, 31033, 15275, 45819, 25567, 30943, 15276, 24446, 44999, 29723, 41997, 7880, 9098, 20948, 16252, 34659, 46542, 28034, 39014, 39015, 12945, 19981, 28076, 35988, 18586, 42852, 34918, 23128, 22376, 8109, 20386, 36889, 40537, 17935, 20702, 10800, 14395, 26469, 9025, 34383, 27977, 19983, 43430, 22292, 47278, 11004, 39777, 36890, 27904, 24057, 19420, 44603, 40945, 32544, 48496, 47025, 31755, 33584, 10874, 39543, 40538, 32237, 29726, 36704, 47422, 39817, 27748, 22978, 42229, 39365, 39458, 40660, 22293, 9760, 23861, 19605, 29843, 32833, 27352, 42603, 43360, 16717, 7438, 13378, 44113, 33281, 22583, 31039, 26232, 34926, 7261, 13169, 17359, 32978, 34388, 22781, 31919, 39911, 46243, 40712, 45414, 36378, 12138, 16523, 17980, 47171, 36944, 26158, 26986, 23751, 37683, 40403, 45123, 8178, 38645, 35312, 44625, 9942, 13365, 9203, 17360, 20034, 17941, 11927, 14982, 9911, 37644, 47048, 34941, 41029, 18438, 44451, 36656, 23130, 47913, 26295, 40540, 31576, 33995, 17258, 26296, 42407, 11175, 45625, 21686, 39655, 36705, 26770, 30394, 24181, 29374, 32979, 10599, 15872, 24304, 36259, 8993, 47602, 46479, 37022, 25572, 48460, 21924, 10188, 44891, 20415, 15770, 13176, 36227, 10161, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p093: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 26338, 17084, 25350, 29734, 26057, 24194, 31189, 30285, 21996, 27671, 48461, 29635, 7471, 29735, 39664, 41436, 47763, 24061, 22640, 22811, 35767, 23323, 13620, 28453, 11458, 48044, 46551, 8205, 28823, 48252, 11524, 35948, 13367, 30606, 31050, 47799, 19451, 44640, 21172, 16645, 26845, 10123, 36593, 38871, 24806, 36228, 16492, 12139, 34679, 46382, 26058, 27214, 26059, 18406, 8841, 15543, 23531, 22748, 14624, 38672, 28234, 37686, 45358, 18286, 12697, 39378, 29919, 19205, 24891, 14442, 27078, 22416, 43614, 12795, 24808, 17011, 39553, 13719, 37088, 37896, 48197, 15503, 32791, 19649, 14254, 22297, 10457, 36392, 45709, 18372, 42062, 13764, 39270, 44353, 22786, 34038, 18780, 38016, 15504, 46107, 9766, 31454, 34155, 17854, 23210, 36594, 27986, 31298, 31299, 18032, 36945, 11780, 18605, 42520, 27673, 20423, 13735, 20416, 35081, 23211, 18239, 41036, 14000, 20988, 46384, 8656, 47175, 48049, 40670, 42410, 27025, 29305, 7264, 21086, 31151, 26994, 35638, 12215, 7955, 39273, 24723, 35642, 22436, 25526, 42258, 42527, 29044, 38275, 32718, 36109, 35643, 31199, 24527, 34874, 11459, 9239, 29345, 12164, 8338, 33197, 15771, 48051, 38444, 43713, 18837, 36662, 25527, 22417, 35557, 33397, 35168, 37692, 17547, 46490, 46491, 23754, 43242, 44869, 36134, 28833, 38981, 19994, 15922, 26542, 21976, 35127, 48375, 35644, 39313, 14988, 38170, 28113, 25943, 35645, 29199, 48348, 37144, 40676, 16684, 41159, 24810, 34477, 7621, 26692, 27934, 26380, 8604, 38120, 25535, 12848, 33153, 48234, 42799, 26091, 7561, 22790, 31203, 11978, 30472, 10167, 36048, 26722, 43849, 10064, 14989, 21430, 8812, 34690, 25833, 40717, 11784, 25662, 45368, 20440, 9627, 24228, 39316, 38907, 22535, 34783, 8312, 46086, 31152, 10528, 26101, 18447, 19665, 30360, 19103, 31246, 30191, 25175, 33327, 40718, 33156, 10529, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p094: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 23283, 34958, 25538, 28360, 18789, 30029, 35516, 14534, 31341, 32186, 42069, 36049, 39831, 22231, 20642, 48481, 24958, 31465, 23839, 13845, 40420, 45326, 19486, 20321, 47180, 12753, 41442, 43773, 13795, 22232, 29045, 45327, 30386, 36708, 14535, 10530, 13341, 33623, 22392, 20205, 14796, 35521, 25946, 21979, 19107, 44697, 24739, 47941, 31304, 20453, 47950, 23964, 8625, 36709, 18615, 42539, 13963, 17087, 12518, 21950, 14890, 12221, 8193, 43282, 7370, 48209, 41406, 13183, 47623, 17814, 47809, 19497, 28860, 17699, 19323, 31636, 8961, 43652, 23286, 28922, 40807, 20455, 20456, 31102, 9822, 47131, 27621, 24257, 23970, 19499, 48405, 23146, 33672, 29661, 23486, 13654, 34879, 11590, 26220, 8826, 8077, 25948, 39697, 23044, 25695, 14286, 25898, 40413, 20458, 23713, 9271, 20220, 42380, 9996, 39736, 20460, 38940, 16695, 9592, 28870, 24037, 11932, 32125, 29379, 26403, 48388, 26260, 45436, 28873, 22261, 36143, 47495, 23652, 21094, 15539, 42821, 46320, 13313, 46089, 30164, 24970, 37102, 30912, 11369, 33482, 33049, 14487, 13148, 27068, 29077, 42020, 9853, 40522, 15594, 9354, 35862, 21860, 13897, 10220, 47157, 28142, 8129, 15750, 7850, 31008, 42332, 31477, 22281, 38420, 16240, 22553, 14617, 19227, 36966, 28965, 7707, 44511, 31013, 46518, 31014, 16403, 9084, 22607, 30214, 9300, 9147, 44978, 48382, 28061, 35983, 20058, 13050, 44019, 36701, 9148, 25282, 34852, 30923, 26868, 8045, 34338, 41123, 35672, 8450, 28486, 29709, 13944, 40529, 22578, 23857, 14361, 26761, 41430, 44100, 10569, 20018, 42400, 28339, 46952, 12499, 36868, 26148, 13160, 43341, 22399, 45688, 47407, 39007, 13354, 13377, 39349, 18424, 32217, 33372, 17104, 13161, 16026, 27737, 46528, 33272, 20678, 42589, 10022, 11000, 36033, 7431, 43412, 32824, 47586, 23812, 30390, 38474, 23517, 36256, 24791, 22775, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p095: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 39882, 35609, 24297, 45624, 11156, 16996, 15866, 14090, 40704, 12134, 26286, 14972, 40397, 25566, 22384, 20258, 32971, 36315, 23740, 31570, 21670, 7241, 31177, 46285, 29150, 12136, 26833, 8204, 30566, 12690, 22709, 23313, 10120, 38807, 16488, 26367, 11454, 47761, 21158, 47002, 39358, 21990, 19201, 29516, 35929, 13360, 20387, 21893, 27208, 48019, 31445, 43593, 22412, 31184, 34927, 14220, 9761, 31278, 47169, 13760, 35153, 18760, 18588, 7262, 13710, 27019, 25825, 48026, 14772, 26983, 27915, 46480, 9204, 15978, 28815, 36132, 21974, 28816, 28111, 25501, 15844, 7949, 43169, 19987, 8943, 32698, 8794, 36045, 26717, 26371, 8305, 43839, 21423, 12793, 48335, 41147, 25513, 9957, 22205, 25005, 30353, 25931, 13835, 23609, 30383, 11928, 31194, 12749, 19300, 23950, 18607, 47937, 24724, 43243, 9821, 8815, 23476, 9989, 39732, 46048, 10140, 21558, 7578, 13238, 32002, 24985, 27309, 46045, 27069, 26549, 34729, 33541, 19247, 27070, 41641, 8465, 17326, 8466, 33495, 22385, 22556, 8257, 17921, 32994, 33170, 39449, 39450, 20134, 27701, 39193, 34824, 13544, 45695, 28410, 45861, 29593, 39285, 25324, 8736, 8511, 32995, 7334, 16610, 15968, 15969, 14432, 11271, 17975, 16786, 27707, 33261, 23353, 23788, 26116, 36773, 33439, 21752, 45012, 45013, 10045, 32160, 25227, 10124, 33462, 23354, 41590, 38207, 41675, 14250, 19139, 44641, 38208, 17986, 7976, 17982, 32165, 42317, 38211, 7860, 7472, 37897, 43371, 23397, 32361, 23610, 13588, 32244, 14986, 36553, 28834, 35781, 22418, 17685, 32364, 11422, 16618, 13563, 30713, 23165, 36113, 16620, 29986, 22499, 39167, 19104, 10068, 29901, 12584, 18616, 35792, 38215, 35685, 27065, 34727, 33530, 41608, 17303, 8399, 38242, 11414, 32991, 37849, 39418, 17874, 20100, 27683, 22506, 27087, 45683, 28405, 16756, 38186, 35715, 27690, 26113, 22398, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p096: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 14418, 15932, 17602, 23339, 21514, 44979, 23725, 13580, 44535, 41567, 10114, 39087, 38192, 19129, 41642, 14176, 10023, 23589, 32157, 19006, 23382, 32327, 17656, 36538, 12202, 32301, 17282, 18599, 15413, 15398, 23898, 13801, 40425, 30890, 38579, 15589, 46867, 43316, 42010, 13508, 14137, 34001, 7841, 29505, 22758, 45130, 32905, 46794, 29749, 21338, 14627, 42011, 43317, 46440, 20810, 10484, 14141, 31951, 12864, 48358, 48541, 13041, 25437, 7239, 37334, 37335, 8078, 9001, 15406, 19743, 25956, 25710, 10399, 40512, 14012, 25816, 27852, 20540, 34496, 14013, 39593, 14315, 16825, 44191, 15554, 33533, 22309, 31360, 40523, 11499, 15428, 8437, 39219, 33539, 34019, 46900, 30303, 13514, 44902, 46452, 11148, 39602, 12605, 28762, 45136, 39518, 29509, 14756, 48264, 43024, 13816, 26316, 43334, 21648, 11444, 10411, 29770, 25283, 36205, 39613, 25970, 34023, 39531, 43342, 47504, 42038, 32633, 39234, 10971, 41875, 43343, 34644, 12781, 44262, 25631, 37792, 37793, 28781, 13817, 35422, 7432, 18735, 20819, 35423, 43476, 15600, 41775, 18868, 15955, 45143, 38624, 23180, 7318, 39097, 36073, 19823, 46077, 12612, 7531, 39106, 43482, 33057, 32513, 25147, 37179, 12741, 20716, 35473, 35426, 7609, 39545, 14868, 28547, 14339, 19452, 12620, 38976, 43496, 47065, 18895, 25718, 38908, 24360, 24482, 24505, 47754, 18162, 46665, 35545, 22014, 28249, 43055, 32321, 41887, 31522, 30935, 40605, 41481, 19580, 16484, 18579, 47003, 16307, 22028, 11642, 43818, 21676, 11165, 18125, 45253, 26470, 44331, 11073, 13126, 35414, 17380, 38390, 34747, 16681, 11187, 45259, 43847, 19477, 38896, 11089, 25601, 24217, 28265, 41206, 45268, 19677, 19678, 44402, 44264, 41208, 28119, 15080, 33273, 28068, 38193, 14831, 29387, 45111, 24431, 10863, 41998, 25325, 23926, 7421, 7984, 38633, 13066, 12560, 18352, 38634, 13170, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p097: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 40769, 19843, 28081, 10435, 39913, 45776, 36774, 46481, 29554, 26987, 25342, 30460, 47287, 19286, 33442, 14688, 17944, 45874, 43367, 28513, 47607, 37274, 25160, 25351, 13473, 43616, 38655, 25363, 34746, 25364, 39271, 17947, 43372, 26619, 26620, 45155, 25598, 27236, 8958, 38662, 38121, 23403, 43449, 38982, 43259, 7303, 12487, 36309, 33158, 44698, 26102, 25663, 12328, 19666, 29396, 42072, 7738, 29745, 37918, 14998, 39174, 19915, 26591, 27184, 27185, 23971, 24628, 19329, 7304, 14805, 12331, 25696, 25396, 7374, 15003, 24641, 8030, 17754, 17755, 17757, 9066, 31612, 31613, 21405, 36502, 46364, 21409, 10510, 31694, 21414, 21419, 13080, 21424, 36509, 14666, 14680, 22585, 27297, 27523, 27520, 8056, 42495, 36595, 19109, 42547, 15933, 13319, 9792, 31028, 32609, 12814, 13702, 38625, 32610, 31529, 21226, 41170, 28973, 7710, 43483, 33035, 28172, 27905, 48371, 12204, 7881, 43146, 42348, 36221, 8174, 20841, 17936, 29455, 42000, 9026, 43363, 15979, 36225, 20971, 40147, 7402, 7403, 17772, 16209, 30848, 12210, 31327, 36742, 26652, 43793, 35413, 36657, 31383, 41149, 22828, 8288, 35773, 33682, 9032, 23398, 21694, 23491, 40327, 32792, 7914, 14309, 31823, 31824, 17686, 31388, 28090, 21697, 20181, 8660, 12796, 20190, 38173, 36192, 16262, 35782, 8190, 40175, 29346, 16000, 8613, 23405, 36050, 25793, 16934, 31343, 41175, 19492, 20213, 20508, 10099, 12222, 18382, 39576, 30995, 13656, 37511, 20222, 23653, 37853, 32611, 15289, 27051, 32293, 15980, 37999, 31384, 17266, 10211, 23399, 32801, 45205, 33829, 38025, 15997, 7803, 36193, 16263, 45208, 15818, 8614, 38032, 35525, 13651, 37512, 13657, 37842, 32588, 15206, 17248, 37980, 45184, 36179, 21554, 21562, 39373, 40310, 39383, 19483, 43329, 45252, 45185, 33721, 23913, 29636, 18788, 43623, 45211, 29655, 7414, 43375, 39787, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p098: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 18383, 42449, 13327, 31672, 23182, 39810, 34833, 17192, 40759, 42750, 40763, 14123, 35120, 23234, 30569, 17426, 44582, 37590, 7822, 13909, 12825, 12366, 29373, 30184, 25442, 10340, 21355, 24058, 17669, 31283, 14241, 14096, 38000, 40148, 23389, 33954, 42780, 42781, 17124, 13800, 44452, 30095, 24059, 15385, 20035, 36957, 19069, 23206, 20041, 26354, 36818, 10520, 43761, 45078, 18233, 17368, 21363, 37186, 37187, 30055, 23554, 37188, 48058, 48057, 11460, 13370, 23555, 35954, 17377, 30972, 22643, 12039, 41104, 31494, 42790, 33103, 36401, 14102, 14262, 41682, 38256, 22483, 43873, 47658, 41683, 39556, 40457, 42878, 44928, 33200, 12999, 13000, 20533, 23163, 24068, 23840, 30001, 37536, 26663, 11916, 42268, 17551, 31344, 16495, 41404, 41837, 19112, 10100, 32859, 27189, 8963, 39577, 30069, 25900, 23690, 28872, 32266, 42433, 13325, 31667, 17181, 39799, 34828, 40735, 40740, 37582, 16475, 13900, 30523, 7814, 35116, 17418, 44512, 25858, 25441, 30218, 21351, 20929, 20024, 36811, 17641, 43748, 21471, 22616, 42751, 30054, 19022, 37174, 17340, 43750, 43751, 22630, 36380, 43871, 14242, 47654, 41671, 14097, 28824, 26630, 12994, 33195, 17548, 24066, 10091, 32855, 30063, 32262, 14952, 8776, 16516, 15279, 39195, 45927, 8784, 33060, 7697, 35836, 25072, 16525, 41150, 33706, 21931, 8802, 34954, 38027, 42067, 42260, 35172, 22419, 35173, 14470, 25536, 38987, 25602, 29974, 29975, 25543, 8819, 8820, 8821, 24962, 8822, 33333, 15004, 40684, 14937, 42015, 45905, 8767, 33052, 21889, 34919, 35147, 42230, 25493, 29966, 8795, 8796, 14667, 14474, 14698, 14664, 34198, 34191, 9469, 19373, 13351, 35009, 37318, 45851, 35533, 39770, 37264, 32612, 44562, 22036, 10855, 43484, 14592, 14593, 35537, 43479, 36972, 42752, 48565, 8513, 21030, 36180, 8011, 11648, 36715, 35028, 8012, 34376, 14039, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p099: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 17164, 32615, 36587, 20703, 20032, 9027, 42231, 36891, 11649, 39778, 42099, 22042, 14368, 41914, 23924, 38830, 9477, 9105, 28438, 14243, 9384, 22345, 13555, 35313, 44332, 34392, 42245, 19158, 17085, 34393, 20417, 47800, 9029, 39665, 9389, 42509, 35949, 14690, 46031, 38104, 16646, 14251, 29099, 45202, 18241, 18782, 36719, 19082, 20182, 18034, 7355, 36105, 14839, 38112, 16455, 9767, 35128, 36111, 9240, 15815, 39155, 23273, 25599, 35169, 36232, 42531, 38171, 27812, 36115, 26660, 8605, 44687, 40677, 21181, 33160, 23284, 47709, 33625, 10906, 12488, 43275, 19487, 32509, 10532, 43859, 36196, 38135, 39789, 45893, 14840, 17177, 27186, 41965, 27824, 9997, 39790, 26405, 45382, 28309, 34171, 13344, 19340, 37298, 36052, 37253, 39055, 32589, 44491, 10823, 14564, 43465, 20349, 34306, 7997, 34996, 14014, 42664, 14357, 32502, 39765, 17603, 23923, 20667, 38718, 9011, 9085, 13534, 14164, 44256, 28434, 22314, 17074, 19146, 39621, 16634, 9755, 23255, 16420, 35141, 9930, 42473, 27789, 9180, 25489, 40654, 21165, 26640, 33146, 47695, 28305, 34441, 23183, 17051, 39702, 14867, 9193, 28543, 8533, 9219, 37087, 17201, 14691, 20183, 7408, 7364, 15514, 39393, 45079, 40411, 14892, 30044, 40414, 26533, 44563, 15018, 17341, 12816, 37373, 46228, 10739, 41330, 47591, 46694, 29552, 40451, 32648, 33058, 45148, 38199, 46754, 12454, 26117, 44047, 9195, 8014, 22170, 37380, 43147, 31996, 38200, 32003, 21448, 30220, 46104, 44778, 29526, 47367, 21904, 47603, 29055, 21688, 29730, 45405, 20091, 25343, 46427, 35839, 15486, 42102, 34266, 8557, 37383, 37384, 35036, 25502, 26569, 29944, 36230, 47069, 32704, 36285, 13471, 41270, 32183, 33912, 21449, 14370, 17168, 9220, 47429, 43369, 26477, 47288, 12467, 17169, 25518, 21768, 35104, 31495, 26775, 23756, 17378, 37090, 41037, 37229, 22351, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p09A: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 14128, 10636, 40501, 7282, 26084, 47765, 47295, 33830, 29946, 23327, 36233, 23532, 48201, 22727, 30627, 30628, 41936, 14692, 33227, 41937, 16002, 42320, 38666, 29958, 11785, 29959, 31057, 14693, 18790, 31054, 19209, 44367, 36406, 32249, 39279, 48203, 23213, 32794, 34957, 16531, 37395, 16804, 35176, 30984, 10620, 47113, 25539, 29659, 36294, 38988, 9636, 13643, 41954, 44873, 48282, 33229, 33626, 30647, 47123, 34752, 26103, 38989, 26383, 46038, 27942, 7625, 9487, 8823, 11787, 32021, 8622, 47124, 44708, 40806, 18449, 9113, 35362, 39950, 25179, 46003, 13881, 25549, 37398, 9728, 13093, 20648, 36711, 41966, 26396, 45895, 21332, 43298, 42548, 37329, 30045, 47386, 41974, 25703, 26128, 36307, 39737, 19930, 34765, 21794, 38997, 18558, 24273, 8829, 26527, 44479, 37332, 41295, 10703, 31952, 32642, 9123, 26111, 45404, 34250, 34997, 15414, 21638, 48261, 47547, 37344, 29053, 20078, 42966, 12273, 39850, 26550, 43330, 20589, 18418, 26448, 17153, 29922, 8768, 24116, 10629, 41867, 40470, 31480, 22315, 30546, 30547, 22699, 47757, 48159, 35264, 9470, 29955, 46980, 23191, 33212, 38626, 7605, 25490, 30944, 33585, 8785, 26369, 11754, 10046, 47375, 19899, 34750, 39726, 16397, 37953, 37968, 37969, 44288, 15715, 43094, 7485, 36954, 21072, 8058, 8175, 11605, 36421, 12885, 22911, 17126, 31284, 18028, 22989, 15982, 37210, 16101, 29940, 8590, 22645, 30880, 44359, 35439, 25791, 9253, 39940, 7925, 9254, 11609, 23043, 8978, 27817, 24960, 25796, 39946, 13653, 45401, 35442, 36426, 8980, 23045, 25901, 15793, 15797, 31374, 22561, 31356, 23841, 33259, 8770, 23310, 23314, 12817, 14656, 40661, 32418, 26837, 12455, 23319, 8972, 14447, 36658, 29731, 48046, 14449, 32422, 36464, 8061, 8558, 26843, 15304, 14340, 32705, 32006, 16175, 40667, 23392, 19871, 29639, 47631, 33709, 35590, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p09B: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 36478, 24508, 8974, 48202, 12844, 29647, 35084, 46557, 32248, 48204, 34840, 20313, 37424, 18256, 23470, 21533, 30646, 24738, 46434, 8979, 29660, 26573, 33133, 26665, 26666, 33346, 40808, 25112, 30989, 30988, 28304, 18620, 23407, 28925, 8981, 25121, 32483, 13535, 13554, 28411, 17985, 39156, 13567, 17292, 13570, 13569, 21537, 10198, 44722, 44726, 15941, 41927, 15390, 31553, 16802, 48206, 25603, 16806, 33659, 44709, 16836, 27045, 19824, 30572, 15550, 23198, 19153, 7699, 30252, 27053, 40772, 41802, 39918, 24870, 44663, 37192, 30465, 37765, 24873, 38113, 15663, 10694, 29976, 8616, 27818, 19721, 40804, 11121, 41843, 45896, 44265, 12598, 32543, 20949, 7671, 17937, 37321, 13171, 19711, 40957, 14098, 14222, 33389, 17428, 37270, 27918, 21079, 33955, 7859, 44853, 29801, 25924, 38203, 18217, 25862, 45231, 14634, 14875, 28177, 44054, 29956, 27800, 17679, 39265, 32007, 17263, 29737, 25354, 37389, 9110, 31926, 30151, 15318, 8575, 11680, 38105, 21691, 13127, 7730, 44061, 16970, 29738, 28640, 40496, 35842, 8064, 15498, 45741, 21914, 16369, 34225, 13412, 12332, 35776, 20989, 34545, 18070, 39784, 14342, 7474, 37898, 46166, 47430, 43556, 25083, 26479, 36907, 36422, 43229, 9059, 38017, 20629, 22920, 16796, 39385, 15993, 18935, 23865, 15323, 22586, 40672, 13961, 22298, 36402, 27515, 33711, 45742, 35591, 31496, 44360, 28441, 46266, 16973, 16103, 35222, 38500, 31929, 33522, 30317, 18695, 36661, 24316, 33398, 33399, 22589, 27161, 10613, 24218, 48291, 38898, 43923, 33916, 48061, 30633, 46566, 39785, 28442, 11528, 19900, 13133, 31463, 16494, 47322, 13419, 23533, 14794, 28518, 43261, 23328, 26093, 21619, 10128, 21323, 26339, 25374, 48280, 24229, 27220, 48207, 47114, 28644, 18287, 44369, 12890, 34158, 33918, 18696, 36407, 18036, 40504, 47440, 23477, 48208, 45589, 8661, 8662, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p09C: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 18697, 32252, 45593, 37835, 37836, 44372, 11490, 32796, 13280, 18794, 24815, 41827, 31826, 31827, 20314, 8341, 14271, 42071, 15522, 33105, 15694, 39205, 37425, 18259, 34418, 33022, 41049, 38175, 31146, 17552, 38446, 14637, 33232, 25546, 26543, 34232, 34162, 16623, 48065, 36298, 35704, 42269, 14117, 43876, 31062, 30649, 38176, 33024, 33928, 24741, 7567, 23921, 18907, 27722, 19916, 36668, 32024, 20214, 33920, 26670, 38992, 31931, 8855, 19917, 19909, 47484, 20509, 40682, 47660, 43860, 46039, 22537, 41215, 8879, 44713, 32025, 39835, 9115, 20749, 41358, 35363, 18800, 48483, 33633, 33634, 14475, 16939, 25180, 41359, 27549, 39044, 45622, 39733, 14935, 16629, 18074, 23036, 45594, 33234, 45898, 15699, 16941, 43801, 24325, 10171, 23975, 34611, 7372, 32861, 19928, 40985, 18387, 34612, 24635, 25123, 24640, 27626, 46387, 39791, 14290, 25903, 16696, 24274, 39412, 44231, 12597, 19702, 44033, 37265, 25913, 14633, 7670, 17657, 7725, 30139, 28637, 25860, 44041, 45729, 15459, 7726, 8054, 18064, 29792, 35832, 16788, 20959, 22584, 37988, 14337, 36892, 45586, 18067, 23020, 19845, 20609, 39367, 45733, 39779, 41334, 16100, 24182, 24697, 20165, 24306, 34223, 36659, 16966, 33391, 18686, 22294, 19855, 43918, 31632, 25355, 30608, 48277, 14689, 23324, 10125, 16493, 28514, 28641, 13128, 21314, 33913, 34152, 48047, 14928, 13270, 8337, 10165, 36394, 38172, 37832, 33102, 14257, 31821, 15506, 18783, 32246, 20501, 8658, 33225, 7560, 30629, 35700, 16619, 42259, 29415, 20191, 23919, 8854, 41214, 8876, 26662, 27720, 43850, 38123, 38984, 16932, 33627, 25177, 48482, 18380, 15696, 24321, 45894, 16649, 28712, 42853, 15281, 24447, 21525, 9308, 41895, 15358, 13118, 19411, 15050, 32887, 15655, 34140, 15052, 27749, 8016, 44773, 46698, 18364, 31538, 15134, 7827, 38204, 20166, 34147, 44629, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p09D: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 15082, 42168, 22189, 22190, 29846, 18541, 46485, 8019, 41915, 41434, 46611, 14625, 15053, 38205, 29191, 12317, 15915, 32841, 25356, 27599, 15305, 37391, 27672, 24489, 8689, 47071, 15916, 44779, 11658, 32075, 39919, 10686, 12468, 21692, 42315, 16370, 13413, 44643, 42005, 44644, 41438, 36707, 44645, 36549, 43617, 13791, 38441, 14343, 16529, 7345, 46701, 41932, 17807, 39927, 20043, 25084, 47431, 42063, 36395, 17948, 26480, 32849, 27988, 15921, 32547, 20630, 40673, 47293, 10688, 26481, 17808, 28642, 14129, 26234, 20044, 19890, 37091, 18545, 37422, 9329, 38501, 21977, 44680, 9242, 22353, 22354, 8336, 38899, 22355, 21774, 37024, 21322, 36403, 14103, 14104, 23101, 18250, 38570, 33917, 23560, 20808, 29375, 26095, 29813, 34552, 15334, 7413, 47943, 29657, 31554, 30980, 8101, 13134, 26096, 32367, 20198, 21781, 37112, 41441, 44785, 30635, 24230, 42536, 47767, 22813, 14053, 23329, 34040, 30636, 21324, 43262, 43263, 21325, 48062, 23534, 13420, 30474, 11529, 16072, 21700, 22224, 43264, 48480, 19484, 34691, 43631, 10907, 27547, 32797, 7415, 31829, 36409, 18260, 36410, 14272, 20852, 26850, 15336, 11492, 37094, 41828, 17696, 44875, 29921, 23332, 27000, 18261, 43632, 11380, 38668, 21784, 13422, 9582, 14659, 17751, 43648, 44876, 39401, 38279, 34163, 17752, 11191, 36119, 39281, 33025, 25547, 19671, 16380, 20212, 35558, 17389, 11663, 11664, 43287, 42372, 41956, 19493, 24587, 36556, 22876, 36325, 36326, 43288, 37096, 26544, 39947, 15822, 36557, 10446, 19672, 37148, 46313, 7568, 42322, 42629, 29202, 10910, 47129, 25605, 43861, 26127, 8626, 34756, 47953, 44382, 38507, 22249, 43454, 36414, 34965, 20649, 43299, 18451, 8629, 43656, 35364, 18801, 14541, 20650, 24964, 41967, 15824, 21624, 39507, 39508, 37097, 26598, 48484, 44714, 43659, 26108, 37149, 39509, 41207, 43305, 29903, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p09E: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 11218, 26399, 38937, 42811, 19505, 45560, 44389, 45899, 42551, 42075, 29904, 28926, 18388, 27329, 43661, 27196, 12856, 45053, 44716, 24038, 9334, 25904, 17756, 25705, 34766, 45058, 43663, 16697, 32129, 24275, 26267, 28704, 21507, 19353, 44742, 27728, 34105, 29177, 41419, 9566, 7999, 46453, 16342, 13390, 25853, 41424, 39865, 41994, 25284, 10658, 32038, 44749, 41186, 37357, 34904, 46953, 14330, 16510, 40648, 17797, 47263, 15896, 26227, 17911, 38475, 9169, 24135, 21969, 16421, 14091, 44564, 39451, 36351, 38543, 32336, 27542, 7397, 23315, 8097, 29621, 30945, 11515, 16064, 44770, 35288, 18204, 17664, 14223, 16438, 31809, 11644, 26984, 38640, 43175, 42351, 38272, 25504, 19624, 43176, 20167, 17730, 42613, 43618, 46307, 25594, 24941, 20633, 21615, 44665, 26086, 18608, 45882, 43627, 18375, 27162, 16691, 34757, 25911, 21125, 25357, 20315, 39502, 12110, 20325, 20338, 41711, 12105, 25984, 43957, 11864, 19710, 29460, 11865, 29462, 47609, 22295, 47520, 20184, 27290, 27291, 44470, 25531, 10441, 22299, 25169, 28521, 30639, 26097, 21620, 22300, 21328, 24552, 39728, 39503, 19996, 27307, 24588, 33836, 46041, 25182, 21333, 30658, 25418, 41718, 11866, 26609, 26603, 17665, 10272, 15136, 27527, 27528, 15142, 29486, 32164, 32010, 27989, 15145, 39676, 23535, 32016, 27534, 10916, 15006, 15113, 32004, 27531, 26508, 26940, 27797, 18893, 27959, 48281, 29109, 14894, 18747, 18736, 21126, 16719, 36506, 36975, 17945, 18496, 23134, 17952, 34587, 24183, 28643, 10699, 17759, 17758, 43177, 31051, 12409, 39138, 37242, 27927, 27910, 31053, 12323, 11286, 44125, 13036, 42623, 39277, 41817, 32017, 27027, 41829, 31662, 45035, 24236, 12530, 13644, 9536, 41602, 41701, 41834, 12417, 7481, 46437, 12330, 9537, 42631, 27004, 45954, 41850, 13661, 25905, 46840, 14901, 15324, 15395, 27506, 27486, 44865, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +zh_han_p09F: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 11911, 32167, 10257, 37473, 47441, 46708, 27193, 7570, 8880, 37402, 8634, 44828, 10240, 37396, 13330, 27410, 28230, 13334, 48034, 16427, 16428, 13418, 14886, 36235, 44789, 29820, 10132, 15823, 30827, 44790, 36051, 36270, 34590, 34580, 14883, 14786, 38213, 7704, 13132, 37394, 47177, 32092, 34039, 34227, 44178, 34231, 36784, 38505, 21786, 21331, 19166, 21792, 41839, 37025, 34968, 38933, 39693, 41844, 23982, 8344, 42356, 31927, 17203, 38659, 38663, 17991, 40357, 14285, 45673, 40719, 38305, 45674, 29017, 28325, 30589, 45795, 19891, 48063, 19494, 19502, 30488, 19435, 10803, 10471, 10472, 17689, 41468, 43450, 40344, 7977, 45557, 40349, 9874, 10695, 41830, 21829, 36666, 25380, 25365, 11144, 32256, 40353, 22751, 28851, 21623, 42321, 11588, 45158, 44475, 11217, 42883, 28522, 45559, 48285, 32145, 45161, 41848, 29206, 14288, 38401, 43309, 11612, 48286, 13012, 11219, 21271, 41544, 10771, 10465, 17632, 43418, 21816, 25329, 7972, 36652, 48028, 22744, 44453, 11578, 32142, 38392, 25648, 29416, 16180, 29417, 41831, 25680, 25724, 16184, 22451, 12224, 25433, 12225, 25609, 16150, 22443, 16798, 31834, 8883, 16751, 45021, 11437, 17701, 22254, 40191, 44720, 48576, 48576, 48576, 48576, 48576, 48576, 48576, 48576, 48576, 48576, 48576, 48576, 48576, 48576, 48576, 48576, 48576, 48576, 48576, 48576, 48576, 48576, 48576, 48576, 48576, 48576, 48576, 48576, 48576, 33544, 48576, 48576, 48576, 48576, 48576, 48576, 48576, 48576, 48576, 15781, 35688, 26611, 48576, 48576, 48576, 48576, 15911, 12357, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 7618, 36524, 28535, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 40870, 40871, 40872, 40873, 40874, 40875, 40876, 40877, 40878, 40879, 40880, 40881, 40882, 40883, 40884, 40885, 40886, 40887, 40888, 40889, 40890, 40891, 40892, 40893, 40894, 40895, 40896, 40897, 40898, 0, 40900, 40901, 40902, 40903, 40904, 40905, 40906, 40907, 40908, 0, 0, 0, 40912, 40913, 40914, 40915, 0, 0, 40918, 40919, 40920, 40921, 40922, 40923, 40924, 40925, 40926, 40927, 40928, 40929, 40930, 40931, 40932, 40933, 40934, 40935, 40936, 40937, 40938, 0, 0, 0, 40942, 40943, 40944, 40945, 40946, 40947, 40948, 40949, 40950, 40951, 40952, 40953, 40954, 40955, 40956, 40957, 40958, 40959, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p200: 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 17555, 30402, 48578, 31404, 48578, 17145, 48578, 48578, 48578, 31788, 9596, 48578, 48578, 34276, 48578, 48578, 48578, 48578, 48578, 34884, 22074, 48578, 48578, 48578, 48578, 48578, 48578, 44482, 48578, 22792, 48578, 48578, 48578, 48578, 47964, 48578, 48578, 48578, 40510, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 27993, 48578, 48578, 48578, 48578, 48578, 19359, 42443, 22277, 48578, 48578, 31009, 25964, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 11136, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 34394, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 31464, 48578, 48578, 48578, 48578, 15544, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 30504, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 10031, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 18538, 48578, 42886, 48529, 20855, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48259, 48578, 48578, 48074, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 21093, 48578, 48578, 29289, 48578, 13771, 11791, 48578, 33968, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 18729, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 43458, 48578, 16943, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 21491, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 33846, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 21577, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 32770, 0, 32772, 0, 32774, 32775, 32776, 0, 0, 32779, 32780, 0, 32782, 32783, 32784, 32785, 32786, 0, 0, 32789, 32790, 32791, 32792, 32793, 32794, 0, 32796, 0, 32798, 32799, 32800, 32801, 0, 32803, 32804, 32805, 0, 32807, 32808, 32809, 32810, 32811, 32812, 32813, 32814, 32815, 32816, 0, 32818, 32819, 32820, 32821, 32822, 0, 0, 0, 32826, 32827, 0, 0, 32830, 32831, 32832, 32833, 32834, 32835, 32836, 32837, 32838, 32839, 32840, 0, 32842, 32843, 32844, 32845, 32846, 32847, 32848, 32849, 32850, 32851, 32852, 32853, 32854, 0, 32856, 32857, 32858, 32859, 32860, 32861, 32862, 32863, 0, 32865, 32866, 32867, 32868, 0, 32870, 32871, 32872, 32873, 32874, 32875, 32876, 0, 32878, 32879, 32880, 32881, 32882, 32883, 32884, 32885, 32886, 0, 32888, 32889, 32890, 32891, 32892, 32893, 32894, 32895, 32896, 32897, 32898, 32899, 0, 32901, 0, 0, 0, 32905, 32906, 32907, 32908, 32909, 32910, 32911, 32912, 0, 32914, 32915, 0, 32917, 32918, 32919, 32920, 32921, 32922, 32923, 32924, 32925, 32926, 0, 32928, 32929, 0, 32931, 0, 0, 32934, 0, 32936, 32937, 32938, 32939, 32940, 32941, 32942, 32943, 32944, 32945, 32946, 32947, 32948, 32949, 32950, 32951, 0, 32953, 32954, 32955, 32956, 32957, 32958, 32959, 32960, 32961, 32962, 32963, 32964, 32965, 32966, 32967, 32968, 32969, 0, 32971, 0, 32973, 32974, 32975, 32976, 32977, 32978, 32979, 32980, 32981, 0, 32983, 32984, 32985, 32986, 32987, 32988, 32989, 32990, 32991, 32992, 32993, 32994, 32995, 32996, 32997, 32998, 32999, 33000, 33001, 33002, 0, 33004, 33005, 33006, 33007, 33008, 33009, 33010, 33011, 33012, 33013, 33014, 33015, 33016, 33017, 0, 33019, 33020, 33021, 33022, 33023, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p201: 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 48578, 48578, 48578, 48578, 48578, 42474, 48578, 48578, 48578, 13472, 48578, 48578, 22069, 20856, 48578, 13135, 48578, 22070, 11438, 48578, 48578, 48578, 25250, 48578, 48578, 48578, 36736, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 16041, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 41502, 48578, 48578, 42665, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 37876, 48578, 48578, 20862, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 42653, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 13300, 48578, 48578, 30510, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 7969, 48578, 48578, 48578, 48578, 40245, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 46075, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 43830, 48578, 48578, 48578, 40958, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 13302, 48578, 12377, 48578, 48578, 48578, 38039, 48578, 48578, 48578, 16534, 48578, 48578, 48578, 48578, 48578, 14555, 48578, 48578, 48578, 48578, 27836, 48578, 48578, 38677, 41723, 48578, 48578, 28473, 12421, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 12386, 48578, 48578, 48578, 36153, 48578, 48578, 16126, 48578, 48578, 48578, 48578, 22962, 11222, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32148, 48578, 27838, 48578, 34098, 48578, 15668, 48578, 34002, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 33024, 33025, 33026, 33027, 33028, 0, 33030, 33031, 33032, 0, 33034, 33035, 0, 0, 33038, 0, 33040, 0, 0, 33043, 33044, 33045, 0, 33047, 33048, 33049, 0, 33051, 33052, 33053, 33054, 33055, 33056, 33057, 33058, 0, 33060, 33061, 33062, 33063, 33064, 33065, 33066, 33067, 33068, 33069, 0, 33071, 33072, 0, 33074, 33075, 33076, 33077, 33078, 33079, 33080, 33081, 33082, 33083, 33084, 33085, 33086, 0, 33088, 33089, 0, 33091, 33092, 33093, 33094, 33095, 33096, 33097, 33098, 33099, 0, 33101, 33102, 33103, 33104, 33105, 33106, 33107, 33108, 33109, 33110, 0, 33112, 33113, 0, 33115, 33116, 33117, 33118, 33119, 33120, 33121, 33122, 33123, 33124, 33125, 33126, 33127, 33128, 33129, 33130, 33131, 0, 33133, 33134, 33135, 33136, 0, 33138, 33139, 33140, 33141, 33142, 33143, 33144, 0, 33146, 33147, 33148, 33149, 33150, 33151, 33152, 33153, 33154, 33155, 33156, 33157, 33158, 33159, 33160, 33161, 33162, 33163, 0, 33165, 33166, 33167, 0, 33169, 33170, 33171, 33172, 33173, 33174, 33175, 33176, 0, 33178, 0, 33180, 33181, 33182, 0, 33184, 33185, 33186, 0, 33188, 33189, 33190, 33191, 33192, 0, 33194, 33195, 33196, 33197, 0, 33199, 33200, 0, 0, 33203, 33204, 0, 0, 33207, 33208, 33209, 33210, 33211, 33212, 33213, 33214, 33215, 33216, 33217, 33218, 33219, 33220, 33221, 33222, 33223, 33224, 33225, 33226, 0, 33228, 33229, 33230, 0, 33232, 33233, 0, 33235, 33236, 33237, 33238, 0, 0, 33241, 33242, 33243, 33244, 33245, 33246, 33247, 33248, 33249, 33250, 33251, 33252, 33253, 33254, 33255, 33256, 33257, 33258, 33259, 33260, 33261, 33262, 0, 33264, 0, 33266, 0, 33268, 0, 33270, 0, 33272, 33273, 33274, 33275, 33276, 33277, 33278, 33279, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p202: 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 1, 2, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 48578, 37299, 48578, 48578, 48578, 34430, 48578, 48578, 48578, 48578, 28750, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 45166, 16540, 48578, 48578, 48578, 48578, 48578, 48578, 39841, 23800, 48578, 48578, 12429, 35559, 48578, 48578, 48578, 26780, 42666, 48578, 36250, 48578, 8425, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 35708, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 26443, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 38998, 19122, 12183, 48578, 48578, 21864, 48578, 13596, 48578, 48578, 7428, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 27038, 48578, 48578, 32409, 48578, 7265, 44504, 48578, 48578, 20357, 48578, 30746, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 27691, 48578, 48578, 48578, 47340, 46901, 47188, 28368, 9049, 48578, 47678, 34636, 41381, 22116, 31075, 48578, 48578, 16544, 48578, 37002, 48578, 48578, 48578, 43782, 46922, 48578, 48578, 48578, 48578, 48578, 48578, 23177, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 10466, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 24781, 41425, 48578, 48578, 48578, 48578, 17096, 27553, 33771, 44413, 48578, 35010, 35185, 48578, 46923, 48578, 48578, 31396, 48578, 15431, 48578, 48578, 21721, 8149, 48578, 8467, 48578, 48578, 35606, 48578, 48578, 31080, 27764, 10024, 48578, 48578, 33208, 19381, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 33280, 0, 33282, 33283, 33284, 0, 33286, 33287, 33288, 33289, 0, 33291, 33292, 33293, 33294, 33295, 33296, 33297, 33298, 33299, 33300, 33301, 33302, 33303, 33304, 33305, 33306, 33307, 33308, 33309, 33310, 33311, 33312, 33313, 33314, 33315, 0, 0, 33318, 33319, 33320, 33321, 33322, 33323, 0, 0, 33326, 33327, 0, 0, 33330, 33331, 33332, 0, 0, 33335, 0, 33337, 0, 33339, 33340, 33341, 33342, 33343, 33344, 33345, 0, 33347, 33348, 33349, 33350, 33351, 33352, 33353, 33354, 33355, 33356, 33357, 33358, 33359, 33360, 33361, 33362, 33363, 33364, 33365, 33366, 0, 33368, 33369, 33370, 33371, 33372, 33373, 33374, 33375, 33376, 33377, 0, 0, 0, 33381, 33382, 0, 33384, 0, 33386, 33387, 0, 33389, 33390, 33391, 33392, 33393, 33394, 33395, 33396, 33397, 33398, 33399, 33400, 33401, 33402, 33403, 33404, 33405, 33406, 33407, 33408, 33409, 33410, 33411, 33412, 33413, 33414, 33415, 33416, 0, 33418, 33419, 0, 33421, 0, 0, 33424, 33425, 0, 33427, 0, 33429, 33430, 33431, 33432, 33433, 33434, 33435, 33436, 33437, 33438, 0, 33440, 33441, 33442, 0, 0, 0, 0, 0, 33448, 0, 0, 0, 0, 0, 33454, 33455, 0, 33457, 0, 33459, 33460, 33461, 0, 0, 33464, 33465, 33466, 33467, 33468, 33469, 0, 33471, 33472, 33473, 33474, 33475, 33476, 33477, 0, 33479, 33480, 33481, 33482, 33483, 33484, 33485, 33486, 33487, 33488, 33489, 33490, 33491, 33492, 33493, 0, 0, 33496, 33497, 33498, 33499, 0, 0, 0, 0, 33504, 0, 0, 33507, 0, 33509, 33510, 0, 33512, 0, 33514, 33515, 0, 0, 33518, 0, 33520, 33521, 0, 33523, 33524, 0, 0, 0, 33528, 33529, 0, 0, 33532, 33533, 33534, 33535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p203: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 1, 1, 1, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 16222, 31731, 48578, 48578, 48578, 32768, 48578, 48578, 48578, 35189, 35191, 42199, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 11014, 48578, 48578, 34715, 46173, 24432, 15601, 35401, 45856, 48578, 47745, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 15454, 48578, 48578, 48578, 48578, 48578, 19397, 13489, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 19007, 48578, 48578, 20259, 41776, 46981, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 27015, 42342, 12784, 42736, 48578, 48578, 48578, 8897, 48578, 48578, 32054, 43128, 48578, 42121, 48578, 48578, 48578, 45696, 48578, 48578, 48578, 33428, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 23521, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 22156, 48578, 30437, 48578, 48578, 44309, 48578, 48578, 45295, 33062, 33282, 48578, 48578, 13913, 48578, 48578, 48578, 21031, 22631, 48578, 48578, 44940, 48578, 48578, 48578, 20279, 42232, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 39369, 48578, 40035, 31279, 48578, 48578, 48578, 44607, 32060, 48578, 48578, 48578, 48578, 48578, 39368, 26472, 48578, 16729, 48578, 48578, 10511, 11419, 42772, 48578, 46585, 48578, 48249, 13826, 48578, 45821, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 14731, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 33536, 33537, 33538, 33539, 33540, 33541, 33542, 33543, 33544, 33545, 33546, 33547, 33548, 33549, 33550, 33551, 33552, 33553, 33554, 33555, 33556, 0, 0, 33559, 33560, 33561, 0, 33563, 33564, 33565, 0, 0, 0, 33569, 33570, 33571, 33572, 33573, 33574, 33575, 33576, 33577, 0, 33579, 33580, 0, 0, 0, 0, 0, 0, 33587, 0, 33589, 33590, 33591, 33592, 33593, 33594, 33595, 33596, 0, 33598, 33599, 33600, 33601, 33602, 0, 0, 33605, 33606, 33607, 33608, 33609, 33610, 33611, 33612, 33613, 33614, 33615, 33616, 33617, 33618, 33619, 33620, 33621, 33622, 0, 33624, 33625, 0, 0, 0, 33629, 33630, 33631, 33632, 33633, 33634, 33635, 33636, 33637, 33638, 33639, 0, 0, 0, 0, 33644, 33645, 33646, 0, 33648, 33649, 0, 0, 33652, 0, 33654, 33655, 33656, 0, 33658, 33659, 33660, 0, 33662, 33663, 33664, 33665, 33666, 33667, 33668, 33669, 33670, 33671, 33672, 33673, 33674, 33675, 33676, 33677, 33678, 33679, 33680, 33681, 33682, 33683, 33684, 33685, 33686, 33687, 33688, 0, 33690, 33691, 33692, 33693, 33694, 33695, 33696, 33697, 33698, 33699, 33700, 33701, 33702, 33703, 33704, 33705, 33706, 33707, 33708, 33709, 0, 33711, 0, 33713, 33714, 0, 33716, 33717, 0, 0, 0, 33721, 33722, 0, 33724, 33725, 33726, 0, 0, 33729, 33730, 0, 33732, 33733, 33734, 0, 0, 33737, 33738, 33739, 33740, 33741, 33742, 33743, 33744, 33745, 33746, 0, 33748, 0, 0, 33751, 33752, 33753, 0, 0, 33756, 33757, 33758, 33759, 33760, 0, 0, 33763, 0, 33765, 33766, 0, 0, 0, 33770, 0, 33772, 0, 0, 33775, 0, 33777, 33778, 33779, 33780, 33781, 33782, 33783, 33784, 33785, 33786, 33787, 33788, 33789, 33790, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p204: 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 1, 42773, 27132, 48578, 48578, 48578, 48578, 48578, 48578, 8653, 20980, 34681, 24934, 8389, 35235, 48578, 48578, 48578, 12967, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 8185, 38255, 48578, 48578, 48578, 48578, 27151, 48578, 10050, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 12625, 48578, 48578, 48578, 48578, 30058, 20310, 25232, 16925, 30469, 17857, 48578, 48578, 48578, 19660, 40329, 46565, 10058, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 42262, 10066, 48578, 48578, 48578, 48578, 48578, 48578, 13003, 11009, 28430, 28431, 48578, 48578, 45837, 8664, 48578, 10069, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 39951, 48578, 48578, 48578, 48578, 11921, 40412, 21370, 30998, 48578, 31640, 48578, 48578, 48578, 48578, 16383, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 38592, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 44885, 9016, 48578, 48578, 48578, 48578, 37589, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 28718, 48578, 48578, 48578, 48578, 24799, 48578, 48578, 32515, 48578, 48578, 48578, 48578, 48578, 14601, 12833, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 18897, 43247, 39492, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 23639, 15530, 48578, 40630, 48578, 48578, 24852, 36150, 19510, 48578, 48578, 48578, 21035, 45678, 34099, 48578, 48578, 48578, 48578, 48578, 30506, 8671, 48578, 23655, 25187, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 46982, 8489, 34083, 48578, 48578, 48578, 48578, 34089, 48578, 31555, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 33794, 33795, 33796, 33797, 33798, 33799, 0, 0, 0, 0, 0, 0, 33806, 33807, 33808, 0, 33810, 33811, 33812, 33813, 33814, 33815, 33816, 33817, 33818, 33819, 33820, 33821, 33822, 33823, 33824, 0, 0, 33827, 33828, 33829, 33830, 0, 33832, 0, 33834, 33835, 33836, 33837, 33838, 33839, 33840, 33841, 33842, 33843, 33844, 0, 33846, 33847, 33848, 33849, 0, 0, 0, 0, 0, 0, 33856, 33857, 33858, 0, 0, 0, 0, 33863, 33864, 33865, 33866, 33867, 33868, 33869, 33870, 33871, 0, 0, 33874, 33875, 33876, 33877, 33878, 33879, 0, 0, 0, 0, 33884, 33885, 0, 0, 33888, 0, 33890, 33891, 33892, 33893, 33894, 33895, 33896, 33897, 0, 33899, 33900, 33901, 33902, 0, 0, 0, 0, 33907, 0, 33909, 33910, 33911, 33912, 0, 33914, 33915, 33916, 33917, 33918, 33919, 33920, 33921, 33922, 33923, 0, 33925, 33926, 33927, 33928, 33929, 33930, 33931, 33932, 33933, 33934, 33935, 33936, 33937, 33938, 33939, 33940, 33941, 33942, 33943, 33944, 33945, 33946, 33947, 0, 0, 33950, 33951, 33952, 33953, 0, 33955, 33956, 33957, 33958, 33959, 33960, 33961, 33962, 33963, 33964, 33965, 33966, 33967, 0, 33969, 33970, 33971, 33972, 0, 33974, 33975, 0, 33977, 33978, 33979, 33980, 33981, 0, 0, 33984, 33985, 33986, 33987, 33988, 33989, 33990, 33991, 33992, 33993, 0, 0, 0, 33997, 33998, 33999, 34000, 34001, 34002, 34003, 34004, 34005, 0, 0, 34008, 0, 34010, 34011, 0, 0, 0, 34015, 34016, 34017, 0, 0, 0, 34021, 34022, 34023, 34024, 34025, 0, 0, 34028, 0, 0, 34031, 34032, 34033, 34034, 34035, 34036, 34037, 0, 0, 0, 34041, 34042, 34043, 34044, 0, 34046, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p205: 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 48578, 48578, 8763, 38675, 48578, 48578, 48578, 48578, 48578, 22002, 48578, 19351, 48578, 38689, 31559, 48578, 48578, 17150, 48578, 48578, 48578, 26314, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 44988, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 24666, 48578, 48578, 48578, 48578, 48578, 48578, 7823, 48578, 48578, 17798, 48578, 48578, 48578, 30466, 48578, 48578, 48578, 30975, 46621, 26854, 48578, 48578, 48578, 48578, 11790, 48578, 48578, 28123, 48578, 48578, 48578, 48578, 48578, 36789, 48578, 48151, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 21439, 46117, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 28652, 10560, 48578, 48578, 30870, 48578, 48578, 44565, 20688, 48578, 48578, 48578, 48578, 48578, 46160, 48578, 48578, 48578, 48578, 48578, 12798, 21492, 48578, 48578, 48578, 35434, 48578, 48578, 42142, 48578, 48578, 48578, 37700, 48578, 48578, 24897, 48578, 36842, 48578, 27224, 48578, 48578, 48578, 48578, 44086, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 34905, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 25819, 48578, 48578, 48578, 43359, 48578, 48578, 48578, 48578, 48578, 10995, 48578, 48578, 48578, 48578, 48578, 15697, 21490, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 31585, 21454, 48578, 40087, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 17708, 48578, 48578, 48578, 36154, 48578, 31854, 40090, 21378, 28649, 21379, 48578, 48578, 19533, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 36562, 48578, 11999, 13206, 48578, 31668, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 30161, 30120, 48578, 13217, 25817, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 24755, 17240, 29385, 36059, 48578, 48578, 48578, 42737, 41067, 35658, 25480, 34769, 33981, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 34048, 34049, 0, 0, 34052, 34053, 34054, 34055, 34056, 0, 34058, 0, 34060, 0, 0, 34063, 34064, 0, 34066, 34067, 34068, 0, 34070, 34071, 34072, 34073, 34074, 34075, 34076, 34077, 34078, 34079, 0, 34081, 34082, 34083, 34084, 34085, 34086, 34087, 0, 34089, 34090, 34091, 34092, 34093, 34094, 0, 34096, 34097, 0, 34099, 34100, 34101, 0, 34103, 34104, 34105, 0, 0, 0, 34109, 34110, 34111, 34112, 0, 34114, 34115, 0, 34117, 34118, 34119, 34120, 34121, 0, 34123, 0, 34125, 34126, 34127, 34128, 34129, 34130, 34131, 34132, 0, 0, 34135, 34136, 34137, 34138, 34139, 34140, 34141, 34142, 0, 0, 34145, 34146, 0, 34148, 34149, 0, 0, 34152, 34153, 34154, 34155, 34156, 0, 34158, 34159, 34160, 34161, 34162, 0, 0, 34165, 34166, 34167, 0, 34169, 34170, 0, 34172, 34173, 34174, 0, 34176, 34177, 0, 34179, 0, 34181, 0, 34183, 34184, 34185, 34186, 0, 34188, 34189, 34190, 34191, 34192, 34193, 34194, 0, 34196, 34197, 34198, 34199, 34200, 34201, 34202, 0, 34204, 34205, 34206, 0, 34208, 34209, 34210, 34211, 34212, 0, 34214, 34215, 34216, 34217, 34218, 0, 0, 34221, 34222, 34223, 34224, 34225, 34226, 34227, 34228, 34229, 0, 0, 34232, 0, 34234, 34235, 34236, 34237, 34238, 34239, 34240, 34241, 0, 34243, 34244, 34245, 0, 34247, 0, 0, 0, 0, 0, 34253, 34254, 0, 34256, 34257, 34258, 34259, 34260, 34261, 34262, 34263, 0, 34265, 0, 0, 34268, 0, 34270, 34271, 34272, 34273, 34274, 34275, 34276, 0, 0, 34279, 0, 0, 34282, 34283, 34284, 34285, 34286, 34287, 34288, 34289, 34290, 0, 0, 0, 0, 34295, 34296, 34297, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p206: 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 1, 2, 1, 1, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 1, 1, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 48578, 9372, 35142, 48578, 48578, 31531, 33949, 48578, 48578, 48578, 29015, 36816, 20488, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 38852, 47073, 48578, 48578, 48578, 48578, 48578, 48578, 23556, 24510, 24511, 48578, 48578, 17690, 20791, 48578, 41702, 48578, 34483, 48578, 48578, 34238, 48578, 48578, 48578, 48578, 48578, 48578, 46391, 48578, 43939, 48578, 48578, 48578, 48578, 48578, 48578, 35656, 38451, 48578, 48578, 48578, 48578, 48578, 10137, 11794, 48578, 48578, 48578, 21850, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 34491, 48578, 48578, 48578, 48578, 48578, 21579, 37854, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 19248, 48578, 48578, 48578, 48578, 48578, 20833, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 45448, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 29208, 48578, 48578, 48578, 48578, 48578, 16537, 48578, 48578, 48578, 48578, 48578, 48578, 17453, 24277, 46868, 39583, 48578, 48578, 9296, 10191, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 45063, 17615, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 36181, 48578, 48578, 48578, 8813, 48578, 48578, 48578, 48578, 13095, 48578, 14378, 21493, 48578, 48578, 48578, 48578, 12891, 42893, 23289, 48578, 46181, 48578, 23367, 47237, 21837, 48578, 48578, 48578, 33564, 33408, 13097, 7806, 19343, 48578, 48578, 47138, 48578, 48578, 42639, 48578, 22829, 38404, 48578, 48578, 48578, 15877, 7636, 48578, 48578, 16237, 48578, 48578, 39416, 16498, 25555, 10765, 16562, 11327, 48578, 24105, 11874, 34695, 48578, 48578, 48578, 48578, 48578, 48578, 8355, 48578, 48578, 48578, 8999, 24344, 48578, 48578, 21551, 36614, 13967, 48578, 41549, 32169, 48578, 48578, 25021, 48578, 22676, 48578, 16031, 46322, 48578, 14847, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 34304, 0, 0, 34307, 34308, 0, 0, 34311, 34312, 34313, 0, 0, 0, 34317, 34318, 34319, 34320, 34321, 34322, 34323, 34324, 0, 0, 34327, 34328, 34329, 34330, 34331, 34332, 0, 0, 0, 34336, 34337, 0, 0, 34340, 0, 34342, 0, 34344, 34345, 0, 34347, 34348, 34349, 34350, 34351, 34352, 0, 34354, 0, 34356, 34357, 34358, 34359, 34360, 34361, 0, 0, 34364, 34365, 34366, 34367, 34368, 0, 0, 34371, 34372, 34373, 0, 34375, 34376, 34377, 34378, 34379, 34380, 34381, 0, 34383, 34384, 34385, 34386, 34387, 0, 0, 34390, 34391, 34392, 34393, 34394, 34395, 34396, 34397, 0, 34399, 34400, 34401, 34402, 34403, 0, 34405, 34406, 34407, 34408, 34409, 34410, 34411, 0, 34413, 34414, 34415, 34416, 34417, 34418, 34419, 34420, 34421, 0, 34423, 34424, 34425, 34426, 34427, 0, 34429, 34430, 34431, 34432, 34433, 34434, 0, 0, 0, 0, 34439, 34440, 0, 0, 34443, 34444, 34445, 34446, 34447, 34448, 34449, 34450, 0, 0, 34453, 34454, 34455, 34456, 34457, 34458, 34459, 0, 34461, 34462, 34463, 0, 34465, 34466, 34467, 34468, 0, 34470, 0, 0, 34473, 34474, 34475, 34476, 0, 0, 0, 34480, 0, 34482, 0, 0, 0, 34486, 34487, 34488, 0, 0, 0, 0, 0, 34494, 34495, 0, 34497, 34498, 0, 34500, 0, 0, 34503, 34504, 34505, 0, 0, 34508, 34509, 0, 34511, 34512, 0, 0, 0, 0, 0, 0, 34519, 0, 0, 0, 34523, 34524, 34525, 34526, 34527, 34528, 0, 34530, 34531, 34532, 0, 0, 34535, 34536, 0, 0, 0, 34540, 0, 0, 34543, 34544, 0, 34546, 0, 34548, 0, 0, 34551, 0, 34553, 34554, 34555, 34556, 34557, 34558, 34559, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p207: 2, 1, 2, 1, 1, 1, 2, 2, 1, 1, 2, 1, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 1, 1, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 48578, 42655, 48578, 21569, 40862, 20661, 48578, 48578, 26174, 21552, 48578, 11105, 48578, 48578, 39589, 48578, 23008, 13811, 48578, 48578, 48578, 48578, 26352, 38707, 31593, 9351, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 30854, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 29702, 41420, 8244, 17068, 16504, 48578, 48578, 48578, 21716, 48578, 48578, 30835, 48578, 22109, 48578, 48578, 48578, 48578, 48578, 24381, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 18394, 20590, 48578, 48578, 48578, 48578, 48578, 48578, 30858, 48578, 45684, 30836, 48578, 46211, 9747, 43742, 48578, 48578, 41557, 48578, 10929, 48578, 48578, 48578, 10783, 48578, 37543, 48578, 35131, 48578, 48578, 48578, 48578, 48578, 22461, 44815, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 11039, 48578, 35607, 37005, 48578, 48578, 46219, 36313, 48578, 38425, 48578, 12146, 24418, 9749, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32667, 16223, 32322, 48578, 24128, 48578, 48578, 48578, 48578, 36166, 48578, 48578, 48578, 48578, 48578, 24419, 48578, 48578, 27270, 48578, 10858, 48578, 48578, 16975, 25760, 11416, 35612, 20690, 21216, 48578, 48578, 48578, 14426, 45790, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 21217, 12015, 48578, 48578, 9729, 48487, 48578, 46149, 48578, 48578, 30016, 45919, 38810, 42345, 15377, 10936, 48578, 48578, 48578, 48578, 48578, 12019, 48578, 48578, 48578, 16519, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 19413, 48578, 48578, 33283, 45865, 25451, 33284, 42486, 48578, 48578, 48578, 48578, 48578, 21681, 48578, 48578, 48578, 48578, 48578, 37018, 48578, 48578, 48578, 32839, 45534, 18590, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 34560, 0, 34562, 0, 0, 0, 34566, 34567, 0, 0, 34570, 0, 34572, 34573, 0, 34575, 0, 0, 34578, 34579, 34580, 34581, 0, 0, 0, 0, 34586, 34587, 34588, 34589, 34590, 34591, 34592, 34593, 34594, 34595, 0, 34597, 34598, 34599, 34600, 34601, 34602, 34603, 34604, 34605, 34606, 34607, 34608, 0, 0, 0, 0, 0, 34614, 34615, 34616, 0, 34618, 34619, 0, 34621, 0, 34623, 34624, 34625, 34626, 34627, 0, 34629, 34630, 34631, 34632, 34633, 34634, 34635, 34636, 34637, 34638, 34639, 0, 0, 34642, 34643, 34644, 34645, 34646, 34647, 0, 34649, 0, 0, 34652, 0, 0, 0, 34656, 34657, 0, 34659, 0, 34661, 34662, 34663, 0, 34665, 0, 34667, 0, 34669, 34670, 34671, 34672, 34673, 0, 0, 34676, 34677, 34678, 34679, 34680, 34681, 34682, 34683, 34684, 0, 34686, 0, 0, 34689, 34690, 0, 0, 34693, 0, 34695, 0, 0, 0, 34699, 34700, 34701, 34702, 34703, 34704, 34705, 34706, 34707, 34708, 0, 0, 0, 34712, 0, 34714, 34715, 34716, 34717, 0, 34719, 34720, 34721, 34722, 34723, 0, 34725, 34726, 0, 34728, 0, 34730, 34731, 0, 0, 0, 0, 0, 0, 34738, 34739, 34740, 0, 0, 34743, 34744, 34745, 34746, 34747, 34748, 34749, 0, 0, 34752, 34753, 0, 0, 34756, 0, 34758, 34759, 0, 0, 0, 0, 0, 0, 34766, 34767, 34768, 34769, 34770, 0, 34772, 34773, 34774, 0, 34776, 34777, 34778, 34779, 34780, 34781, 34782, 34783, 34784, 34785, 34786, 0, 34788, 34789, 0, 0, 0, 0, 0, 34795, 34796, 34797, 34798, 34799, 0, 34801, 34802, 34803, 34804, 34805, 0, 34807, 34808, 34809, 0, 0, 0, 34813, 34814, 34815, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p208: 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 48578, 39546, 48578, 30960, 46161, 48578, 48578, 48578, 48578, 48578, 48578, 9510, 48578, 48578, 23393, 24491, 32790, 48578, 48578, 48578, 13622, 48578, 48578, 25075, 48578, 48578, 48578, 48578, 43624, 24512, 48578, 48578, 13625, 48578, 25369, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 37557, 48578, 48578, 48578, 48578, 13287, 48578, 48578, 48578, 21494, 48578, 24331, 22880, 22756, 48578, 46393, 48578, 48578, 48578, 48578, 48578, 48578, 17706, 48578, 8401, 48578, 29682, 48578, 48578, 48578, 48578, 48578, 17396, 48578, 48578, 48578, 48578, 48578, 48578, 47859, 13796, 48578, 42942, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 22677, 42943, 27853, 48578, 48578, 9490, 48578, 16076, 22682, 34308, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 25274, 8245, 48578, 48578, 13745, 48578, 48578, 48578, 48578, 21957, 28369, 48096, 48578, 48578, 48240, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 36056, 48578, 48578, 39235, 17329, 48578, 48578, 48578, 48578, 26284, 31020, 48578, 48578, 48578, 48578, 48578, 27888, 29179, 17461, 48578, 48578, 48578, 45691, 22029, 11806, 48578, 48578, 48578, 48578, 24448, 45697, 44111, 13067, 22161, 8165, 48578, 48578, 48578, 42302, 30017, 48578, 48578, 48578, 48578, 48578, 48578, 21236, 22413, 33285, 42100, 21237, 48578, 48578, 48578, 22724, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 9915, 48578, 48578, 28675, 48578, 37696, 26221, 48578, 48578, 48578, 48578, 48578, 45086, 42143, 7960, 48578, 48578, 22271, 41055, 48578, 47242, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 23242, 15042, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32035, 33739, 35542, 48578, 48578, 48578, 13578, 48578, 22992, 29478, 48578, 48578, 48578, 48578, 48578, 48578, 8051, 48578, 48578, 48578, 15460, 21597, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 34816, 0, 34818, 0, 0, 34821, 34822, 34823, 34824, 34825, 34826, 0, 34828, 34829, 0, 0, 0, 34833, 34834, 34835, 0, 34837, 34838, 0, 34840, 34841, 34842, 34843, 0, 0, 34846, 34847, 0, 34849, 0, 34851, 34852, 34853, 34854, 34855, 34856, 34857, 0, 34859, 34860, 34861, 34862, 0, 34864, 34865, 34866, 0, 34868, 0, 0, 0, 34872, 0, 34874, 34875, 34876, 34877, 34878, 34879, 0, 34881, 0, 34883, 0, 34885, 34886, 34887, 34888, 34889, 0, 34891, 34892, 34893, 34894, 34895, 34896, 0, 0, 34899, 0, 34901, 34902, 34903, 34904, 34905, 34906, 34907, 0, 0, 0, 34911, 34912, 0, 34914, 0, 0, 0, 34918, 34919, 34920, 34921, 34922, 34923, 34924, 0, 0, 34927, 34928, 0, 34930, 34931, 34932, 34933, 0, 0, 0, 34937, 34938, 0, 34940, 34941, 34942, 34943, 34944, 34945, 34946, 0, 34948, 34949, 0, 0, 34952, 34953, 34954, 34955, 0, 0, 34958, 34959, 34960, 34961, 34962, 0, 0, 0, 34966, 34967, 34968, 0, 0, 0, 34972, 34973, 34974, 34975, 0, 0, 0, 0, 0, 0, 34982, 34983, 34984, 0, 0, 34987, 34988, 34989, 34990, 34991, 34992, 0, 0, 0, 0, 0, 34998, 34999, 35000, 0, 35002, 35003, 35004, 35005, 35006, 35007, 35008, 35009, 35010, 35011, 0, 35013, 35014, 0, 35016, 0, 0, 35019, 35020, 35021, 35022, 35023, 0, 0, 0, 35027, 35028, 0, 0, 35031, 0, 35033, 35034, 35035, 35036, 35037, 35038, 35039, 0, 0, 35042, 35043, 35044, 35045, 35046, 35047, 35048, 35049, 0, 0, 0, 35053, 35054, 35055, 0, 35057, 0, 0, 35060, 35061, 35062, 35063, 35064, 35065, 0, 35067, 35068, 35069, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p209: 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 2, 2, 1, 1, 2, 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 32417, 48578, 48578, 48578, 21689, 48578, 48578, 48578, 48578, 48578, 31770, 48578, 48578, 47297, 18453, 7993, 48578, 48578, 48578, 48578, 48578, 42646, 48578, 42667, 42668, 48578, 48578, 48578, 48578, 26881, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32921, 48578, 48578, 48578, 48578, 11661, 48578, 48578, 17208, 48578, 11792, 48578, 48578, 48578, 39052, 48578, 48578, 48578, 48578, 32193, 36631, 48578, 13149, 48578, 17217, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 42421, 48578, 48578, 48578, 48578, 48578, 14061, 37858, 48578, 9570, 13162, 48578, 48578, 48578, 14179, 12938, 48578, 35376, 32235, 48578, 48578, 14224, 29184, 41071, 48578, 48578, 48578, 38561, 48578, 48578, 48578, 43248, 48578, 27992, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 18080, 48578, 48578, 48578, 17218, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 34172, 48578, 48578, 48578, 33045, 48578, 48578, 48578, 48578, 8396, 48578, 17209, 21371, 39050, 48578, 31586, 12089, 11681, 48578, 7807, 48578, 48578, 48578, 48578, 13772, 48578, 48578, 48578, 48578, 39056, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 46656, 26272, 48578, 18096, 19555, 16566, 48578, 48578, 48578, 48578, 48578, 29386, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 47423, 48578, 48578, 48578, 48578, 8390, 48578, 44343, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 30664, 48578, 48578, 17578, 11196, 48578, 48578, 33734, 10818, 9120, 48578, 48578, 48578, 32629, 43996, 48578, 48578, 48578, 28200, 48578, 48578, 48578, 48578, 18977, 36636, 7849, 48578, 48578, 48578, 48578, 40731, 48578, 48578, 48578, 44008, 10837, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 17795, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 35073, 35074, 35075, 0, 35077, 35078, 35079, 35080, 35081, 0, 35083, 35084, 0, 0, 0, 35088, 35089, 35090, 35091, 35092, 0, 35094, 0, 0, 35097, 35098, 35099, 35100, 0, 35102, 35103, 35104, 35105, 35106, 35107, 35108, 35109, 0, 35111, 35112, 35113, 35114, 0, 35116, 35117, 0, 35119, 0, 35121, 35122, 35123, 0, 35125, 35126, 35127, 35128, 0, 0, 35131, 0, 35133, 0, 35135, 35136, 35137, 35138, 35139, 35140, 35141, 35142, 0, 35144, 35145, 35146, 35147, 35148, 0, 0, 35151, 0, 0, 35154, 35155, 35156, 0, 0, 35159, 0, 0, 35162, 35163, 0, 0, 0, 35167, 35168, 35169, 0, 35171, 35172, 35173, 0, 35175, 0, 35177, 35178, 35179, 35180, 35181, 35182, 35183, 0, 35185, 35186, 35187, 0, 35189, 35190, 35191, 35192, 35193, 35194, 35195, 35196, 35197, 35198, 0, 35200, 35201, 35202, 0, 35204, 35205, 35206, 35207, 0, 35209, 0, 0, 0, 35213, 0, 0, 0, 35217, 0, 35219, 35220, 35221, 35222, 0, 35224, 35225, 35226, 35227, 0, 35229, 35230, 35231, 35232, 35233, 35234, 35235, 35236, 35237, 35238, 0, 0, 35241, 0, 0, 0, 35245, 35246, 35247, 35248, 35249, 0, 35251, 35252, 35253, 35254, 35255, 35256, 35257, 35258, 35259, 35260, 35261, 35262, 35263, 0, 35265, 35266, 35267, 35268, 0, 35270, 0, 35272, 35273, 35274, 35275, 35276, 35277, 35278, 35279, 35280, 35281, 0, 35283, 35284, 0, 0, 35287, 35288, 0, 0, 0, 35292, 35293, 35294, 0, 0, 35297, 35298, 35299, 0, 35301, 35302, 35303, 35304, 0, 0, 0, 35308, 35309, 35310, 35311, 0, 35313, 35314, 35315, 0, 0, 35318, 35319, 35320, 35321, 35322, 35323, 35324, 35325, 35326, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p20A: 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 48578, 48578, 48578, 37532, 48578, 48578, 40265, 48578, 48578, 48578, 22171, 48578, 35420, 31611, 47676, 48578, 48578, 48578, 48578, 48578, 48578, 19731, 48578, 48578, 8402, 48578, 38708, 48578, 48578, 48578, 48578, 48578, 19565, 48578, 22329, 48578, 48578, 24908, 43963, 48578, 48578, 48578, 48578, 48578, 48578, 21705, 48578, 48578, 48578, 48578, 44951, 48578, 48578, 7927, 48578, 48578, 29748, 48578, 48578, 45566, 48578, 48578, 42904, 12859, 48578, 48578, 31407, 48578, 35594, 48578, 11685, 48578, 47536, 44956, 48578, 48578, 48578, 48578, 48578, 20580, 48578, 48578, 48578, 48578, 34184, 48578, 48578, 42669, 39213, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 44802, 48578, 48578, 48578, 48578, 17027, 48578, 22686, 48578, 48578, 12000, 43000, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 24382, 48578, 13018, 48578, 48578, 38738, 48578, 48578, 48578, 48578, 8491, 48578, 48578, 8675, 26958, 24400, 48578, 48578, 35188, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 25473, 16894, 22705, 48578, 48578, 48578, 48578, 42738, 48578, 39016, 43425, 48578, 48578, 48578, 48578, 22710, 48578, 48578, 48578, 33813, 48578, 48578, 48578, 38339, 48578, 48578, 48578, 48578, 48578, 48578, 29882, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 45008, 17939, 48578, 48578, 24471, 15490, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 22208, 39386, 48578, 48578, 48578, 48578, 13004, 48578, 48578, 24609, 48578, 48578, 48578, 48578, 48578, 48578, 36987, 48578, 48578, 48578, 48578, 20093, 48578, 48578, 7763, 12892, 46046, 48578, 48578, 48578, 48578, 48578, 44480, 48578, 48578, 48578, 48578, 13806, 48578, 48578, 48578, 48578, 9466, 37028, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 35884, 19535, 30507, 33571, 28634, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 35328, 35329, 35330, 0, 35332, 35333, 0, 35335, 35336, 35337, 0, 35339, 0, 0, 0, 35343, 35344, 35345, 35346, 35347, 35348, 0, 35350, 35351, 0, 35353, 0, 35355, 35356, 35357, 35358, 35359, 0, 35361, 0, 35363, 35364, 0, 0, 35367, 35368, 35369, 35370, 35371, 35372, 0, 35374, 35375, 35376, 35377, 0, 35379, 35380, 0, 35382, 35383, 0, 35385, 35386, 0, 35388, 35389, 0, 0, 35392, 35393, 0, 35395, 0, 35397, 0, 35399, 0, 0, 35402, 35403, 35404, 35405, 35406, 0, 35408, 35409, 35410, 35411, 0, 35413, 35414, 0, 0, 35417, 35418, 35419, 35420, 35421, 35422, 35423, 0, 35425, 35426, 35427, 35428, 0, 35430, 0, 35432, 35433, 0, 0, 35436, 35437, 35438, 35439, 35440, 35441, 35442, 35443, 35444, 0, 35446, 0, 35448, 35449, 0, 35451, 35452, 35453, 35454, 0, 35456, 35457, 0, 0, 0, 35461, 35462, 0, 35464, 35465, 35466, 35467, 35468, 35469, 35470, 35471, 0, 0, 0, 35475, 35476, 35477, 35478, 0, 35480, 0, 0, 35483, 35484, 35485, 35486, 0, 35488, 35489, 35490, 0, 35492, 35493, 35494, 0, 35496, 35497, 35498, 35499, 35500, 35501, 0, 35503, 35504, 35505, 35506, 35507, 35508, 35509, 0, 0, 35512, 35513, 0, 0, 35516, 35517, 35518, 35519, 35520, 35521, 35522, 0, 0, 35525, 35526, 35527, 35528, 0, 35530, 35531, 0, 35533, 35534, 35535, 35536, 35537, 35538, 0, 35540, 35541, 35542, 35543, 0, 35545, 35546, 0, 0, 0, 35550, 35551, 35552, 35553, 35554, 0, 35556, 35557, 35558, 35559, 0, 35561, 35562, 35563, 35564, 0, 0, 35567, 35568, 35569, 35570, 35571, 35572, 35573, 0, 0, 0, 0, 0, 35579, 35580, 35581, 35582, 35583, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p20B: 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 48578, 48578, 48578, 48578, 48578, 48578, 16664, 48578, 8378, 48578, 48578, 40475, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 46429, 48578, 48578, 48578, 48578, 48578, 33032, 48578, 27835, 48578, 15156, 48578, 48578, 48578, 48578, 36151, 7926, 48578, 48578, 48578, 48578, 48578, 48578, 8846, 48578, 38680, 48578, 20865, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 21186, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 30906, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 34998, 21347, 48578, 10775, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 21350, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 35458, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 45648, 24137, 48578, 48578, 48578, 47841, 48578, 48578, 48578, 48578, 8733, 48578, 48578, 48578, 48578, 48578, 37268, 48578, 48578, 48578, 8535, 48578, 48578, 14773, 48578, 48578, 48578, 12695, 48578, 47473, 48578, 48578, 48578, 48578, 21698, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 42819, 48578, 48578, 41489, 48578, 48578, 10814, 16538, 46788, 48578, 48578, 48578, 48578, 48578, 48578, 32622, 48578, 48578, 43941, 48578, 9118, 48578, 19685, 30071, 48578, 48578, 43569, 41983, 26804, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 25727, 28096, 33091, 11326, 48578, 11613, 38514, 32573, 48578, 48578, 48578, 12260, 19515, 48578, 42823, 48578, 32402, 48578, 48578, 19233, 16499, 48578, 46184, 29857, 48578, 48578, 45219, 7864, 20871, 48578, 48578, 17989, 48578, 48578, 39585, 18841, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 45635, 12246, 15881, 48578, 29858, 48578, 29953, 34179, 24856, 44957, 18305, 8701, 48578, 48578, 32626, 48578, 32627, 48578, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 35584, 35585, 35586, 35587, 35588, 35589, 0, 35591, 0, 35593, 35594, 0, 35596, 35597, 35598, 35599, 35600, 35601, 35602, 0, 35604, 35605, 35606, 35607, 35608, 0, 35610, 0, 35612, 0, 35614, 35615, 35616, 35617, 0, 0, 35620, 35621, 35622, 35623, 35624, 35625, 0, 35627, 0, 35629, 0, 35631, 35632, 35633, 35634, 35635, 35636, 35637, 0, 35639, 35640, 35641, 35642, 35643, 35644, 35645, 0, 35647, 35648, 35649, 35650, 35651, 35652, 35653, 35654, 35655, 0, 0, 35658, 0, 35660, 35661, 35662, 35663, 35664, 35665, 35666, 35667, 35668, 35669, 35670, 0, 35672, 35673, 35674, 35675, 35676, 35677, 35678, 35679, 35680, 35681, 35682, 35683, 35684, 0, 35686, 35687, 35688, 35689, 35690, 35691, 35692, 35693, 35694, 0, 0, 35697, 35698, 35699, 0, 35701, 35702, 35703, 35704, 0, 35706, 35707, 35708, 35709, 35710, 0, 35712, 35713, 35714, 0, 35716, 35717, 0, 35719, 35720, 35721, 0, 35723, 0, 35725, 35726, 35727, 35728, 0, 35730, 35731, 35732, 35733, 35734, 35735, 35736, 0, 35738, 35739, 0, 35741, 35742, 0, 0, 0, 35746, 35747, 35748, 35749, 35750, 35751, 0, 35753, 35754, 0, 35756, 0, 35758, 0, 0, 35761, 35762, 0, 0, 0, 35766, 35767, 35768, 35769, 35770, 35771, 35772, 0, 0, 0, 0, 35777, 0, 0, 0, 35781, 35782, 35783, 0, 0, 35786, 0, 35788, 0, 35790, 35791, 0, 0, 35794, 0, 0, 35797, 35798, 0, 0, 0, 35802, 35803, 0, 35805, 35806, 0, 0, 35809, 35810, 35811, 35812, 35813, 35814, 35815, 35816, 0, 0, 0, 35820, 0, 35822, 0, 0, 0, 0, 0, 0, 35829, 35830, 0, 35832, 0, 35834, 35835, 35836, 35837, 35838, 35839, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p20C: 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, 2, 1, 1, 1, 2, 1, 2, 1, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 1, 2, 1, 48578, 48578, 48578, 48578, 42567, 46628, 48578, 21097, 38260, 10215, 48578, 31793, 48578, 47498, 48578, 45679, 30209, 7445, 48578, 17584, 48578, 11132, 41616, 48578, 48578, 48578, 34299, 18313, 14144, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 34185, 48578, 48578, 48578, 48578, 37304, 12265, 37529, 30166, 32734, 21629, 48578, 9069, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 44405, 13481, 48578, 16826, 34450, 48578, 48578, 35560, 28574, 47244, 25729, 9006, 48493, 42445, 32445, 48578, 25264, 33050, 48578, 48578, 23987, 14150, 48578, 47212, 19693, 48578, 48578, 14151, 48578, 48578, 48578, 48547, 48578, 48578, 28137, 45134, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 40215, 48423, 34626, 13375, 14451, 32553, 48578, 7892, 17219, 17881, 42573, 48578, 42574, 48578, 48578, 22594, 42971, 18916, 46505, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 21385, 48578, 48578, 15934, 48578, 48578, 29018, 31416, 48578, 13207, 48578, 19770, 43002, 42692, 48578, 15208, 34848, 34849, 43888, 22740, 18419, 17966, 48578, 48578, 48578, 17605, 48578, 48578, 17563, 31072, 30859, 48578, 35005, 48578, 7895, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 21285, 22687, 48578, 48578, 48578, 48578, 48578, 7250, 25749, 48578, 36997, 48578, 48578, 11400, 48578, 48578, 35115, 10553, 48578, 37785, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 35840, 35841, 35842, 35843, 0, 0, 35846, 0, 0, 0, 35850, 0, 35852, 0, 35854, 0, 0, 0, 35858, 0, 35860, 0, 0, 35863, 35864, 35865, 0, 0, 0, 35869, 35870, 35871, 35872, 35873, 35874, 35875, 35876, 35877, 35878, 35879, 35880, 35881, 35882, 35883, 35884, 35885, 35886, 35887, 35888, 35889, 35890, 35891, 0, 35893, 35894, 35895, 35896, 0, 0, 0, 0, 0, 0, 35903, 0, 35905, 35906, 35907, 35908, 35909, 35910, 35911, 35912, 35913, 35914, 35915, 35916, 35917, 35918, 35919, 0, 0, 35922, 0, 0, 35925, 35926, 0, 0, 0, 0, 0, 0, 0, 0, 35935, 0, 0, 35938, 35939, 0, 0, 35942, 0, 0, 35945, 35946, 0, 35948, 35949, 35950, 0, 35952, 35953, 0, 0, 35956, 35957, 35958, 35959, 35960, 35961, 35962, 35963, 35964, 35965, 35966, 35967, 35968, 35969, 35970, 35971, 35972, 35973, 35974, 35975, 35976, 35977, 0, 0, 0, 0, 0, 0, 35984, 0, 0, 0, 0, 35989, 0, 35991, 35992, 0, 0, 0, 0, 35997, 35998, 35999, 36000, 36001, 36002, 36003, 36004, 36005, 36006, 36007, 36008, 36009, 36010, 36011, 36012, 36013, 0, 36015, 36016, 0, 36018, 36019, 0, 0, 36022, 0, 36024, 0, 0, 0, 36028, 0, 0, 0, 0, 0, 0, 0, 36036, 36037, 36038, 0, 36040, 36041, 0, 0, 0, 36045, 0, 36047, 0, 36049, 36050, 36051, 36052, 36053, 36054, 36055, 36056, 36057, 36058, 36059, 36060, 36061, 36062, 36063, 36064, 36065, 36066, 36067, 36068, 36069, 36070, 36071, 36072, 36073, 36074, 36075, 0, 0, 36078, 36079, 36080, 36081, 36082, 0, 0, 36085, 0, 36087, 36088, 0, 36090, 36091, 0, 0, 36094, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p20D: 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 1, 48578, 48578, 29062, 48578, 21555, 48578, 48578, 8926, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 40014, 34020, 18044, 48578, 48578, 47559, 48578, 16601, 19374, 48578, 19782, 48578, 38740, 48578, 33796, 29214, 18163, 35717, 39967, 48578, 45471, 48578, 48578, 9283, 30755, 37455, 37314, 12636, 48578, 28149, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 45786, 48578, 48578, 41511, 48578, 48578, 38533, 46389, 12701, 17565, 48578, 7484, 29772, 33269, 14898, 16508, 48578, 48578, 48578, 30215, 48578, 48578, 48578, 41125, 17185, 15755, 7663, 48155, 27226, 48578, 19250, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 12981, 38741, 48578, 48578, 12234, 28316, 48578, 48578, 48578, 13109, 26453, 22693, 48578, 48578, 48578, 48578, 43058, 22135, 17633, 48578, 19567, 48578, 48578, 17716, 28783, 32990, 31021, 12298, 33691, 22701, 47463, 48578, 34117, 26181, 19969, 29925, 18060, 19383, 35726, 11047, 38317, 21400, 30179, 45788, 40394, 48578, 48578, 8723, 48578, 48578, 40903, 48578, 48578, 48578, 48578, 16349, 21067, 48578, 48578, 39452, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 14084, 48578, 9163, 29960, 48578, 48578, 48578, 45271, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 36096, 36097, 0, 36099, 0, 36101, 36102, 0, 36104, 36105, 36106, 36107, 36108, 36109, 36110, 36111, 36112, 36113, 36114, 36115, 36116, 36117, 36118, 36119, 36120, 36121, 36122, 36123, 36124, 36125, 36126, 36127, 36128, 0, 0, 0, 36132, 36133, 0, 36135, 0, 0, 36138, 0, 36140, 0, 36142, 0, 0, 0, 0, 0, 36148, 0, 36150, 36151, 0, 0, 0, 0, 0, 36157, 0, 36159, 36160, 36161, 36162, 36163, 36164, 36165, 36166, 36167, 36168, 36169, 36170, 36171, 36172, 36173, 36174, 36175, 36176, 36177, 36178, 36179, 36180, 36181, 36182, 36183, 36184, 36185, 36186, 36187, 36188, 36189, 36190, 36191, 0, 36193, 36194, 0, 36196, 36197, 0, 0, 0, 0, 36202, 0, 0, 0, 0, 0, 36208, 36209, 36210, 0, 36212, 36213, 36214, 0, 0, 0, 0, 0, 0, 36221, 0, 36223, 36224, 36225, 36226, 36227, 36228, 36229, 36230, 36231, 36232, 36233, 36234, 36235, 36236, 36237, 36238, 36239, 36240, 36241, 36242, 36243, 36244, 36245, 36246, 36247, 36248, 36249, 36250, 36251, 36252, 36253, 36254, 36255, 36256, 36257, 36258, 36259, 36260, 36261, 36262, 0, 0, 36265, 36266, 0, 0, 36269, 36270, 36271, 0, 0, 0, 36275, 36276, 36277, 36278, 0, 0, 0, 36282, 0, 36284, 36285, 0, 0, 0, 0, 0, 0, 0, 0, 36294, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36308, 36309, 0, 36311, 36312, 0, 36314, 36315, 36316, 36317, 0, 0, 36320, 36321, 0, 36323, 36324, 36325, 36326, 36327, 36328, 36329, 36330, 36331, 36332, 36333, 36334, 36335, 36336, 36337, 36338, 36339, 36340, 36341, 36342, 36343, 0, 36345, 0, 0, 36348, 36349, 36350, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p20E: 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48578, 29297, 37006, 48578, 43583, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 39767, 48578, 48578, 29144, 15898, 9164, 40244, 48578, 48578, 48578, 46350, 44291, 28591, 48578, 48578, 48578, 48578, 48578, 41388, 37504, 48578, 7507, 17336, 17835, 12358, 48578, 29119, 48578, 9634, 19581, 28468, 43905, 39883, 48578, 11302, 42343, 48578, 15958, 36065, 8052, 10028, 48578, 40919, 48578, 48578, 17122, 48578, 11052, 48578, 20260, 48501, 48578, 48578, 48578, 38073, 12150, 29716, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 18668, 48578, 38789, 48578, 29571, 25456, 28033, 27581, 23782, 37218, 7818, 48578, 48578, 15903, 48578, 22948, 48578, 48578, 19976, 9096, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 18669, 48578, 48323, 26463, 48578, 48578, 48578, 48578, 48578, 48578, 24158, 48578, 17659, 27790, 48578, 34814, 33897, 22543, 10866, 25330, 26422, 48578, 48578, 41785, 46150, 11304, 16430, 31573, 48578, 35931, 14917, 37067, 48578, 48578, 48578, 48578, 25331, 48578, 48578, 23770, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 36352, 0, 0, 36355, 0, 36357, 36358, 36359, 36360, 36361, 36362, 36363, 36364, 36365, 36366, 36367, 36368, 36369, 36370, 36371, 36372, 36373, 36374, 36375, 36376, 36377, 36378, 36379, 36380, 36381, 36382, 36383, 36384, 36385, 36386, 36387, 36388, 36389, 36390, 36391, 36392, 36393, 36394, 36395, 36396, 36397, 0, 36399, 36400, 0, 0, 0, 0, 36405, 36406, 36407, 0, 0, 0, 36411, 36412, 36413, 36414, 36415, 0, 0, 36418, 0, 0, 0, 0, 36423, 0, 36425, 0, 0, 0, 0, 0, 36431, 0, 0, 36434, 0, 0, 0, 0, 36439, 0, 36441, 36442, 0, 36444, 0, 36446, 0, 0, 36449, 36450, 36451, 0, 0, 0, 36455, 36456, 36457, 36458, 36459, 36460, 36461, 36462, 36463, 36464, 36465, 36466, 36467, 36468, 36469, 36470, 36471, 36472, 36473, 36474, 36475, 36476, 36477, 36478, 36479, 36480, 36481, 36482, 36483, 36484, 36485, 36486, 36487, 36488, 36489, 36490, 36491, 36492, 36493, 36494, 36495, 0, 36497, 0, 36499, 0, 0, 0, 0, 0, 0, 0, 36507, 36508, 0, 36510, 0, 36512, 36513, 0, 0, 36516, 36517, 36518, 36519, 36520, 36521, 36522, 36523, 36524, 36525, 36526, 36527, 36528, 36529, 36530, 36531, 36532, 36533, 36534, 36535, 36536, 36537, 36538, 36539, 36540, 36541, 36542, 36543, 36544, 36545, 36546, 36547, 36548, 36549, 36550, 36551, 36552, 36553, 36554, 36555, 36556, 0, 36558, 0, 0, 36561, 36562, 36563, 36564, 36565, 36566, 0, 36568, 0, 0, 36571, 0, 0, 0, 0, 0, 0, 36578, 36579, 0, 0, 0, 0, 0, 36585, 0, 0, 0, 36589, 36590, 36591, 36592, 0, 36594, 36595, 0, 36597, 36598, 36599, 36600, 36601, 36602, 36603, 36604, 36605, 36606, 36607, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p20F: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 2, 1, 2, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 1, 2, 1, 2, 1, 1, 1, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 23592, 45353, 38635, 48578, 48578, 48578, 48578, 24159, 7242, 26292, 46845, 11062, 20553, 48578, 20147, 48578, 48578, 48578, 48578, 26329, 42753, 48578, 33642, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 19414, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 43130, 28881, 48578, 48578, 48578, 19036, 48578, 45657, 48578, 48578, 17283, 48578, 43488, 8536, 7401, 39197, 28509, 48578, 48578, 48578, 12790, 20280, 29331, 48578, 48578, 44609, 11316, 45230, 48578, 9801, 48578, 46235, 33286, 48578, 29560, 16361, 46236, 48578, 48578, 48578, 48578, 48578, 24172, 13495, 48578, 11066, 48578, 48429, 30253, 48578, 48578, 33762, 25640, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 34668, 48578, 21238, 25340, 48578, 48578, 22520, 23456, 48578, 40774, 21239, 48578, 11334, 48578, 48578, 48578, 45009, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 26596, 40294, 21529, 19858, 48578, 45014, 48578, 48578, 48578, 20169, 48578, 17259, 48578, 33066, 19051, 31379, 48578, 33294, 48431, 48578, 48578, 25925, 18494, 11141, 33557, 38382, 19625, 47914, 39469, 42607, 17047, 23268, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 36608, 36609, 36610, 36611, 36612, 36613, 36614, 36615, 36616, 36617, 36618, 36619, 36620, 36621, 36622, 36623, 36624, 36625, 36626, 36627, 36628, 36629, 0, 0, 0, 36633, 36634, 36635, 36636, 0, 0, 0, 0, 0, 0, 36643, 0, 36645, 36646, 36647, 36648, 0, 0, 36651, 0, 36653, 36654, 36655, 36656, 36657, 36658, 36659, 36660, 36661, 36662, 36663, 36664, 36665, 36666, 0, 36668, 36669, 36670, 36671, 36672, 36673, 36674, 36675, 36676, 36677, 36678, 36679, 36680, 36681, 36682, 36683, 36684, 36685, 36686, 36687, 36688, 36689, 36690, 36691, 36692, 36693, 36694, 36695, 36696, 36697, 36698, 36699, 0, 0, 36702, 36703, 36704, 0, 36706, 0, 36708, 36709, 0, 36711, 0, 0, 0, 0, 0, 36717, 36718, 36719, 0, 0, 0, 36723, 36724, 0, 0, 0, 36728, 0, 36730, 0, 0, 36733, 0, 0, 0, 36737, 36738, 36739, 36740, 36741, 0, 0, 36744, 0, 36746, 0, 0, 36749, 36750, 0, 0, 36753, 36754, 36755, 36756, 36757, 36758, 36759, 36760, 36761, 36762, 36763, 36764, 36765, 36766, 36767, 36768, 36769, 0, 36771, 0, 0, 36774, 36775, 0, 0, 36778, 0, 0, 36781, 0, 36783, 36784, 36785, 0, 36787, 36788, 36789, 36790, 36791, 36792, 36793, 36794, 36795, 36796, 36797, 36798, 36799, 36800, 36801, 36802, 36803, 36804, 36805, 0, 0, 0, 0, 36810, 0, 36812, 36813, 36814, 0, 36816, 0, 36818, 0, 0, 0, 36822, 0, 0, 36825, 36826, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36838, 36839, 36840, 36841, 36842, 36843, 36844, 36845, 36846, 36847, 36848, 36849, 36850, 36851, 36852, 36853, 36854, 36855, 36856, 36857, 36858, 36859, 36860, 36861, 36862, 36863, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p210: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 47283, 48578, 48578, 26025, 48578, 9106, 34224, 43791, 22914, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 47052, 40149, 48578, 48578, 42511, 14252, 26202, 17370, 42512, 48578, 48578, 48578, 48578, 26478, 11582, 14602, 46764, 43794, 38239, 37469, 7346, 44344, 48578, 48578, 18407, 48578, 25076, 21315, 45256, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 45396, 13830, 48578, 19873, 48578, 48578, 48578, 38326, 48578, 19638, 38874, 48578, 45988, 37135, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 44345, 48578, 48578, 48578, 48578, 25086, 48578, 48578, 47092, 34157, 48578, 23868, 23557, 38018, 29465, 10755, 43763, 13560, 48578, 13561, 48578, 8070, 31455, 34685, 48578, 46768, 48578, 48578, 48578, 48578, 48578, 25087, 48578, 29641, 48578, 46179, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 29195, 48578, 48578, 40319, 19652, 23558, 43711, 9713, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 23895, 48578, 48578, 48578, 48578, 48578, 48578, 26350, 48578, 48578, 48578, 25654, 39157, 48578, 48578, 48578, 25233, 48578, 48578, 16803, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 40503, 48578, 48578, 48578, 24222, 11610, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 36864, 36865, 36866, 36867, 36868, 36869, 36870, 36871, 36872, 36873, 36874, 36875, 36876, 36877, 36878, 36879, 36880, 0, 36882, 36883, 0, 36885, 0, 0, 0, 0, 36890, 36891, 36892, 36893, 36894, 36895, 36896, 36897, 36898, 36899, 36900, 36901, 36902, 36903, 36904, 36905, 36906, 36907, 36908, 36909, 36910, 36911, 36912, 36913, 36914, 36915, 36916, 36917, 36918, 36919, 36920, 0, 0, 36923, 36924, 0, 0, 0, 0, 0, 36930, 36931, 36932, 36933, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36943, 36944, 0, 36946, 0, 0, 0, 36950, 36951, 36952, 36953, 36954, 36955, 36956, 36957, 36958, 36959, 36960, 36961, 36962, 36963, 36964, 36965, 36966, 0, 0, 36969, 0, 36971, 36972, 36973, 0, 36975, 0, 0, 36978, 0, 0, 36981, 36982, 36983, 36984, 36985, 36986, 36987, 36988, 36989, 36990, 36991, 36992, 36993, 36994, 36995, 36996, 36997, 36998, 36999, 37000, 37001, 0, 37003, 37004, 37005, 37006, 0, 37008, 37009, 0, 0, 37012, 0, 0, 0, 0, 0, 0, 0, 37020, 0, 37022, 0, 0, 0, 37026, 0, 37028, 37029, 37030, 37031, 37032, 0, 37034, 0, 37036, 0, 37038, 37039, 37040, 37041, 37042, 37043, 37044, 37045, 37046, 37047, 37048, 37049, 37050, 37051, 37052, 37053, 37054, 0, 37056, 37057, 0, 0, 0, 0, 0, 37063, 37064, 37065, 37066, 37067, 37068, 37069, 37070, 37071, 37072, 37073, 37074, 37075, 37076, 37077, 0, 37079, 37080, 37081, 37082, 37083, 37084, 0, 37086, 37087, 37088, 0, 0, 37091, 37092, 37093, 0, 37095, 37096, 0, 37098, 37099, 37100, 37101, 37102, 37103, 37104, 37105, 37106, 0, 37108, 37109, 37110, 0, 0, 37113, 37114, 37115, 37116, 37117, 37118, 37119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p211: 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 1, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 31682, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 20200, 12666, 20316, 31706, 40345, 43799, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 17107, 48578, 46316, 33766, 27301, 18611, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 11919, 32856, 33040, 19320, 42625, 48578, 12797, 48578, 26278, 48578, 43276, 48578, 48578, 48578, 48578, 48578, 48578, 9292, 29418, 35971, 14115, 45399, 11824, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 45800, 48578, 39041, 26802, 48578, 23484, 45214, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 14276, 48578, 48578, 48578, 13282, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 16624, 48578, 48578, 48578, 18698, 48578, 48578, 48578, 34420, 20331, 48578, 48578, 45897, 19675, 18699, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 37697, 26437, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 13571, 48578, 48578, 48578, 48578, 48578, 24820, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 28752, 28269, 21564, 44952, 48578, 48578, 42145, 11382, 48578, 48578, 48578, 9522, 24278, 13888, 28270, 28271, 48578, 48578, 48578, 48578, 48578, 32639, 48578, 48578, 48578, 48578, 44958, 48578, 48578, 43987, 48578, 43318, 48578, 17023, 48578, 48578, 48578, 12544, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 46323, 27253, 13196, 48578, 48578, 46324, 48578, 48578, 48578, 22963, 48578, 17220, 35112, 17591, 19360, 46199, 48578, 48578, 48578, 9012, 48578, 37855, 36938, 48578, 37031, 48578, 48578, 15752, 25750, 32201, 19174, 47664, 32318, 48578, 17904, 48578, 12550, 17617, 35866, 16567, 48578, 44515, 48578, 41523, 48578, 48578, 37546, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 37120, 37121, 37122, 37123, 37124, 37125, 37126, 0, 37128, 37129, 37130, 37131, 37132, 37133, 37134, 37135, 37136, 0, 0, 0, 0, 0, 0, 37143, 37144, 37145, 37146, 37147, 37148, 37149, 37150, 0, 37152, 0, 0, 0, 0, 37157, 37158, 37159, 37160, 37161, 37162, 37163, 37164, 37165, 37166, 37167, 37168, 0, 0, 0, 0, 0, 37174, 0, 37176, 0, 37178, 0, 37180, 37181, 37182, 37183, 37184, 37185, 0, 0, 0, 0, 0, 0, 37192, 37193, 37194, 37195, 37196, 37197, 37198, 37199, 37200, 37201, 37202, 0, 37204, 0, 0, 37207, 0, 0, 37210, 37211, 37212, 37213, 37214, 37215, 37216, 0, 37218, 37219, 37220, 0, 37222, 37223, 37224, 37225, 37226, 37227, 37228, 0, 37230, 37231, 37232, 0, 37234, 37235, 37236, 0, 0, 37239, 37240, 0, 0, 0, 37244, 37245, 37246, 37247, 37248, 37249, 37250, 37251, 37252, 0, 0, 37255, 37256, 37257, 37258, 37259, 37260, 37261, 37262, 0, 37264, 37265, 37266, 37267, 37268, 0, 37270, 37271, 37272, 37273, 37274, 37275, 37276, 37277, 37278, 37279, 37280, 37281, 37282, 0, 0, 0, 0, 37287, 37288, 0, 0, 37291, 37292, 37293, 0, 0, 0, 0, 0, 37299, 37300, 37301, 37302, 37303, 0, 37305, 37306, 37307, 37308, 0, 37310, 37311, 0, 37313, 0, 37315, 0, 37317, 37318, 37319, 0, 37321, 37322, 37323, 37324, 37325, 37326, 37327, 37328, 0, 0, 0, 37332, 37333, 0, 37335, 37336, 37337, 0, 37339, 0, 0, 0, 0, 0, 37345, 37346, 37347, 0, 37349, 0, 0, 37352, 0, 37354, 37355, 0, 0, 0, 0, 0, 0, 37362, 0, 37364, 0, 0, 0, 0, 37369, 0, 37371, 0, 37373, 37374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p212: 1, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 32383, 48578, 48578, 48578, 48578, 22136, 29178, 48578, 48578, 32179, 46742, 48578, 48578, 25315, 38429, 40446, 12199, 48578, 44762, 44914, 48578, 48578, 48578, 27899, 48578, 44042, 48578, 48578, 48578, 48578, 38545, 48578, 46016, 48578, 48578, 41020, 48578, 48578, 32514, 16963, 44610, 48578, 48578, 48578, 48578, 48578, 39266, 8690, 44063, 48578, 43373, 48578, 41082, 44070, 23956, 48578, 48578, 48578, 48578, 48578, 36788, 48578, 48578, 46317, 48578, 48578, 48578, 48578, 45301, 15534, 23424, 48578, 48578, 32308, 48578, 48578, 48578, 48578, 21706, 48578, 11469, 12141, 37248, 7246, 48578, 48578, 48578, 48078, 48578, 48578, 18727, 42922, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 8034, 10704, 48578, 48578, 32640, 48578, 48578, 48578, 48578, 48578, 48578, 25839, 48578, 48578, 20872, 34291, 48578, 48381, 48578, 48578, 48578, 48578, 48578, 48578, 42923, 48578, 48578, 14904, 14905, 48578, 48578, 48578, 27841, 48578, 48578, 48578, 34619, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 7526, 48578, 29835, 30104, 30168, 20003, 47301, 48578, 31795, 48578, 48578, 48578, 44084, 35914, 48578, 48578, 32735, 48578, 27369, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 42946, 48578, 32738, 48578, 48578, 25024, 31717, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 18917, 19752, 48578, 48578, 48578, 48578, 15857, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 44002, 9740, 12676, 43322, 48578, 44497, 8132, 48578, 9138, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 37377, 37378, 37379, 37380, 0, 0, 37383, 37384, 0, 0, 37387, 37388, 0, 0, 0, 0, 37393, 0, 0, 37396, 37397, 37398, 0, 37400, 0, 37402, 37403, 37404, 37405, 0, 37407, 0, 37409, 37410, 0, 37412, 37413, 0, 0, 0, 37417, 37418, 37419, 37420, 37421, 0, 0, 0, 37425, 0, 37427, 0, 0, 0, 37431, 37432, 37433, 37434, 37435, 0, 37437, 37438, 0, 37440, 37441, 37442, 37443, 0, 0, 0, 37447, 37448, 0, 37450, 37451, 37452, 37453, 0, 37455, 0, 0, 0, 0, 37460, 37461, 37462, 0, 37464, 37465, 0, 0, 37468, 37469, 37470, 37471, 37472, 37473, 37474, 37475, 37476, 37477, 37478, 37479, 37480, 0, 0, 37483, 37484, 0, 37486, 37487, 37488, 37489, 37490, 37491, 0, 37493, 37494, 0, 0, 37497, 0, 37499, 37500, 37501, 37502, 37503, 37504, 0, 37506, 37507, 0, 0, 37510, 37511, 37512, 0, 37514, 37515, 37516, 0, 37518, 37519, 37520, 37521, 37522, 37523, 37524, 37525, 37526, 37527, 37528, 37529, 37530, 0, 37532, 0, 0, 0, 0, 0, 37538, 0, 37540, 37541, 37542, 0, 0, 37545, 37546, 0, 37548, 0, 37550, 37551, 37552, 37553, 37554, 37555, 37556, 37557, 0, 37559, 0, 37561, 37562, 0, 0, 37565, 37566, 37567, 37568, 37569, 37570, 37571, 37572, 37573, 37574, 37575, 37576, 37577, 37578, 37579, 37580, 37581, 37582, 37583, 37584, 37585, 37586, 37587, 37588, 37589, 37590, 37591, 37592, 0, 0, 37595, 37596, 37597, 37598, 0, 37600, 37601, 37602, 37603, 37604, 37605, 37606, 0, 0, 0, 0, 37611, 0, 0, 37614, 0, 37616, 37617, 37618, 37619, 37620, 37621, 37622, 37623, 37624, 37625, 37626, 37627, 37628, 37629, 37630, 37631, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p213: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 31256, 48578, 48578, 48578, 48578, 48578, 9817, 48578, 40383, 48578, 10716, 48578, 48578, 48578, 48578, 45466, 23174, 48578, 14757, 48578, 48578, 35673, 16588, 48578, 48578, 13929, 48578, 48578, 48578, 48578, 16765, 48578, 46727, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 10016, 28373, 48578, 48578, 18164, 48578, 36207, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 43029, 48578, 48578, 28784, 45826, 18575, 48578, 13697, 48578, 30762, 9661, 48578, 48578, 11447, 48578, 48578, 48578, 12148, 48578, 48578, 48578, 46956, 16109, 48578, 48578, 48578, 38300, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 13698, 48578, 48578, 48578, 10724, 48578, 48578, 48578, 7461, 23377, 48578, 38361, 48578, 48578, 48578, 43584, 48578, 29949, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 45689, 47633, 48578, 35276, 48578, 48578, 48578, 48578, 28592, 48578, 48578, 48578, 48578, 48578, 48578, 47464, 9931, 48578, 48578, 8295, 28502, 46743, 19009, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 39299, 48578, 46983, 38790, 48578, 48578, 20517, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 13781, 15120, 48578, 48578, 20606, 10241, 7793, 48578, 48578, 48578, 48578, 48578, 25066, 48578, 48578, 48578, 48578, 48578, 48578, 7540, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 37632, 37633, 37634, 37635, 37636, 37637, 37638, 37639, 37640, 37641, 37642, 37643, 37644, 37645, 37646, 37647, 37648, 37649, 37650, 37651, 0, 37653, 37654, 37655, 37656, 37657, 0, 37659, 0, 37661, 0, 37663, 37664, 37665, 37666, 0, 0, 37669, 0, 37671, 37672, 0, 0, 37675, 37676, 0, 37678, 37679, 37680, 37681, 0, 37683, 0, 37685, 37686, 37687, 37688, 37689, 37690, 37691, 37692, 37693, 37694, 37695, 37696, 37697, 37698, 37699, 37700, 37701, 37702, 37703, 37704, 37705, 37706, 37707, 0, 0, 37710, 37711, 0, 37713, 0, 37715, 37716, 37717, 37718, 37719, 37720, 37721, 37722, 37723, 37724, 37725, 37726, 37727, 37728, 0, 37730, 37731, 0, 0, 0, 37735, 0, 37737, 0, 0, 37740, 37741, 0, 37743, 37744, 37745, 0, 37747, 37748, 37749, 0, 0, 37752, 37753, 37754, 0, 37756, 37757, 37758, 37759, 37760, 37761, 37762, 37763, 37764, 37765, 37766, 37767, 37768, 0, 37770, 37771, 37772, 0, 37774, 37775, 37776, 0, 0, 37779, 0, 37781, 37782, 37783, 0, 37785, 0, 37787, 37788, 37789, 37790, 37791, 37792, 37793, 37794, 37795, 37796, 37797, 37798, 37799, 37800, 37801, 37802, 0, 0, 37805, 0, 37807, 37808, 37809, 37810, 0, 37812, 37813, 37814, 37815, 37816, 37817, 0, 0, 37820, 37821, 0, 0, 0, 0, 37826, 37827, 37828, 37829, 37830, 37831, 37832, 37833, 37834, 37835, 37836, 37837, 37838, 37839, 37840, 37841, 37842, 37843, 37844, 37845, 37846, 37847, 0, 37849, 0, 0, 37852, 37853, 0, 37855, 37856, 37857, 37858, 37859, 37860, 37861, 37862, 37863, 37864, 0, 0, 37867, 37868, 0, 0, 0, 37872, 37873, 37874, 37875, 37876, 0, 37878, 37879, 37880, 37881, 37882, 37883, 0, 37885, 37886, 37887, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p214: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 45419, 11268, 48578, 48578, 37416, 48578, 48578, 17466, 22514, 43426, 48578, 39643, 48578, 48578, 48578, 48578, 48578, 48578, 15461, 8867, 48578, 23158, 48578, 48578, 48578, 31446, 33063, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 12158, 42427, 48578, 48578, 48578, 46052, 48578, 24839, 48578, 13799, 48578, 48578, 48578, 48578, 23817, 41267, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 47026, 48578, 22913, 48578, 48578, 48578, 35482, 38325, 48578, 48578, 48578, 22915, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 20284, 48578, 48578, 48578, 48578, 48578, 48578, 20525, 48578, 48578, 48578, 48578, 47798, 48578, 34774, 44334, 48578, 48578, 33067, 48578, 44630, 23667, 48578, 48578, 48578, 48578, 48578, 44647, 48578, 31096, 21928, 48578, 25077, 48578, 48578, 34570, 39667, 48578, 48578, 15611, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 35844, 48578, 48578, 48578, 48578, 36596, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 27233, 48578, 12840, 48578, 27463, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 18898, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 14051, 48578, 48578, 48578, 25088, 48578, 48578, 48578, 48578, 23561, 43447, 23673, 48578, 20640, 48578, 19304, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 17017, 48578, 48578, 45995, 48578, 48578, 48578, 48578, 48578, 48578, 27357, 48578, 48578, 23166, 48578, 48578, 48578, 48578, 48578, 48578, 14056, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 43451, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 37888, 37889, 37890, 37891, 37892, 37893, 37894, 37895, 37896, 37897, 37898, 0, 0, 37901, 37902, 0, 37904, 37905, 0, 0, 0, 37909, 0, 37911, 37912, 37913, 37914, 37915, 37916, 0, 0, 37919, 0, 37921, 37922, 37923, 0, 0, 37926, 37927, 37928, 37929, 37930, 37931, 37932, 37933, 37934, 37935, 37936, 37937, 37938, 37939, 37940, 37941, 37942, 37943, 37944, 37945, 37946, 37947, 37948, 37949, 37950, 0, 0, 37953, 37954, 37955, 0, 37957, 0, 37959, 0, 37961, 37962, 37963, 37964, 0, 0, 37967, 37968, 37969, 37970, 37971, 37972, 37973, 37974, 37975, 0, 37977, 0, 37979, 37980, 37981, 0, 0, 37984, 37985, 37986, 0, 37988, 37989, 37990, 37991, 37992, 37993, 37994, 37995, 37996, 37997, 37998, 0, 38000, 38001, 38002, 38003, 38004, 38005, 0, 38007, 38008, 38009, 38010, 0, 38012, 0, 0, 38015, 38016, 0, 38018, 0, 0, 38021, 38022, 38023, 38024, 38025, 0, 38027, 0, 0, 38030, 0, 38032, 38033, 0, 0, 38036, 38037, 0, 38039, 38040, 38041, 38042, 38043, 38044, 38045, 38046, 38047, 38048, 38049, 0, 38051, 38052, 38053, 38054, 0, 38056, 38057, 38058, 38059, 38060, 38061, 38062, 0, 38064, 0, 38066, 0, 38068, 38069, 38070, 38071, 38072, 38073, 38074, 38075, 38076, 38077, 0, 38079, 38080, 38081, 38082, 38083, 38084, 38085, 38086, 38087, 38088, 0, 38090, 38091, 38092, 0, 38094, 38095, 38096, 38097, 0, 0, 0, 38101, 0, 38103, 0, 38105, 38106, 38107, 38108, 38109, 38110, 38111, 38112, 38113, 38114, 0, 38116, 38117, 0, 38119, 38120, 38121, 38122, 38123, 38124, 0, 38126, 38127, 0, 38129, 38130, 38131, 38132, 38133, 38134, 0, 38136, 38137, 38138, 38139, 38140, 38141, 38142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p215: 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 24074, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 16232, 48578, 48578, 48578, 48578, 48578, 36791, 42177, 48578, 37728, 48578, 48578, 48578, 48578, 20898, 48578, 48578, 48578, 48578, 40640, 48578, 34637, 48578, 48578, 48578, 48578, 48578, 48578, 38060, 48578, 48578, 44566, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 45877, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 7486, 48578, 48578, 48578, 48578, 48578, 33202, 11096, 48578, 22982, 48578, 48578, 48578, 21796, 17148, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 27483, 48578, 48578, 48578, 48578, 17435, 48578, 48578, 11040, 48578, 48578, 48578, 25316, 48578, 48171, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 23290, 48578, 48578, 47141, 48578, 46090, 48578, 13298, 16269, 45101, 12343, 29131, 48578, 48578, 48578, 48578, 48578, 48578, 9013, 48578, 32413, 9902, 48578, 48578, 48578, 32743, 43336, 9903, 48578, 48578, 46957, 48578, 48578, 16590, 29117, 33881, 48578, 48578, 35277, 48578, 48578, 38337, 10795, 48578, 48578, 48578, 48578, 48578, 48578, 27595, 46748, 48578, 48578, 30439, 48578, 48578, 16254, 48578, 48578, 48578, 48578, 25812, 48578, 48048, 48578, 48578, 48578, 48578, 12531, 48578, 39578, 48578, 32802, 48578, 48578, 48578, 48578, 48578, 29662, 48578, 48578, 48578, 48578, 48578, 48578, 38683, 48578, 48578, 48578, 22961, 48578, 16870, 11495, 21037, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 21038, 38690, 48578, 22882, 48578, 16330, 45751, 14565, 48578, 48578, 40206, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 38144, 38145, 38146, 38147, 38148, 38149, 38150, 0, 38152, 38153, 38154, 38155, 38156, 38157, 38158, 38159, 38160, 38161, 38162, 38163, 38164, 0, 38166, 38167, 38168, 38169, 38170, 0, 0, 38173, 0, 38175, 38176, 38177, 38178, 0, 38180, 38181, 38182, 38183, 0, 38185, 0, 38187, 38188, 38189, 38190, 38191, 38192, 0, 38194, 38195, 0, 38197, 38198, 38199, 38200, 38201, 38202, 38203, 38204, 38205, 38206, 38207, 38208, 0, 38210, 38211, 38212, 38213, 38214, 38215, 38216, 0, 38218, 38219, 38220, 38221, 38222, 0, 0, 38225, 0, 38227, 38228, 38229, 0, 0, 38232, 38233, 38234, 38235, 38236, 38237, 38238, 38239, 38240, 38241, 0, 38243, 38244, 38245, 38246, 0, 38248, 38249, 0, 38251, 38252, 38253, 0, 38255, 0, 38257, 38258, 38259, 38260, 38261, 38262, 38263, 38264, 38265, 38266, 38267, 38268, 38269, 38270, 38271, 38272, 38273, 38274, 38275, 38276, 38277, 38278, 38279, 38280, 0, 38282, 38283, 0, 38285, 0, 38287, 0, 0, 0, 0, 0, 38293, 38294, 38295, 38296, 38297, 38298, 0, 38300, 0, 0, 38303, 38304, 38305, 0, 0, 0, 38309, 38310, 0, 38312, 38313, 0, 0, 0, 38317, 38318, 0, 38320, 38321, 0, 0, 38324, 38325, 38326, 38327, 38328, 38329, 0, 0, 38332, 38333, 0, 38335, 38336, 0, 38338, 38339, 38340, 38341, 0, 38343, 0, 38345, 38346, 38347, 38348, 0, 38350, 0, 38352, 0, 38354, 38355, 38356, 38357, 38358, 0, 38360, 38361, 38362, 38363, 38364, 38365, 0, 38367, 38368, 38369, 0, 38371, 0, 0, 0, 38375, 38376, 38377, 38378, 38379, 38380, 38381, 38382, 38383, 38384, 38385, 0, 0, 38388, 0, 38390, 0, 0, 0, 38394, 38395, 0, 38397, 38398, 38399, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p216: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 18565, 48578, 28707, 39067, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 11857, 48578, 16944, 48578, 48578, 48578, 38721, 48578, 48578, 48578, 48578, 48578, 30844, 48578, 48578, 26728, 48578, 48578, 46201, 48578, 48578, 22008, 48578, 48578, 48578, 8856, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 8857, 48578, 48578, 48578, 48578, 32208, 48578, 48578, 48578, 48578, 48578, 39089, 48578, 48578, 20680, 48578, 32218, 46833, 36500, 22380, 48578, 48578, 48578, 48578, 33139, 48578, 48578, 48006, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 20930, 48578, 48578, 48578, 48578, 48578, 48578, 8894, 48578, 13550, 48413, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 41786, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 8537, 48578, 48578, 48578, 22996, 48578, 41916, 37890, 48578, 18543, 48578, 17538, 48578, 48578, 48578, 48578, 16176, 48578, 48578, 27140, 48578, 48578, 24010, 48578, 12973, 48578, 9036, 18551, 48578, 48578, 37475, 22240, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 10815, 48578, 48578, 48578, 48578, 7634, 21544, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 12893, 48578, 46063, 48578, 12230, 34180, 17499, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 42434, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 8405, 29832, 42276, 48578, 48578, 12767, 9539, 30046, 44964, 31394, 29687, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 37405, 40207, 48578, 48578, 48578, 48578, 48578, 48578, 42440, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 38400, 38401, 38402, 38403, 38404, 38405, 38406, 38407, 38408, 38409, 38410, 38411, 38412, 0, 38414, 0, 0, 38417, 38418, 38419, 38420, 38421, 38422, 38423, 38424, 38425, 38426, 0, 38428, 0, 38430, 38431, 38432, 0, 38434, 38435, 38436, 38437, 38438, 0, 38440, 38441, 0, 38443, 38444, 0, 38446, 38447, 0, 38449, 38450, 38451, 0, 38453, 38454, 38455, 38456, 38457, 38458, 38459, 38460, 38461, 38462, 38463, 0, 38465, 38466, 38467, 38468, 0, 38470, 38471, 38472, 38473, 38474, 0, 38476, 38477, 0, 38479, 0, 0, 0, 0, 38484, 38485, 38486, 38487, 0, 38489, 38490, 0, 38492, 38493, 38494, 38495, 38496, 38497, 38498, 0, 38500, 38501, 38502, 38503, 38504, 38505, 0, 38507, 0, 0, 38510, 38511, 38512, 38513, 38514, 38515, 38516, 38517, 0, 38519, 38520, 38521, 38522, 38523, 38524, 38525, 38526, 38527, 38528, 0, 38530, 38531, 38532, 0, 38534, 0, 0, 38537, 0, 38539, 0, 38541, 38542, 38543, 38544, 0, 38546, 38547, 0, 38549, 38550, 0, 38552, 0, 38554, 0, 0, 38557, 38558, 0, 0, 38561, 38562, 38563, 38564, 38565, 38566, 38567, 0, 38569, 38570, 38571, 38572, 0, 0, 38575, 38576, 38577, 38578, 38579, 38580, 38581, 38582, 0, 38584, 0, 38586, 0, 0, 0, 38590, 38591, 38592, 38593, 38594, 38595, 38596, 38597, 38598, 38599, 38600, 38601, 38602, 38603, 0, 38605, 38606, 38607, 38608, 38609, 38610, 38611, 38612, 38613, 38614, 0, 0, 0, 38618, 38619, 0, 0, 0, 0, 0, 0, 38626, 38627, 38628, 38629, 38630, 38631, 38632, 38633, 38634, 38635, 38636, 38637, 38638, 38639, 38640, 38641, 38642, 38643, 38644, 0, 0, 38647, 38648, 38649, 38650, 38651, 38652, 0, 38654, 38655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p217: 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 2, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 14566, 16501, 18320, 32865, 48578, 48578, 48578, 48578, 48578, 32446, 15073, 18708, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32812, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 26865, 48578, 48578, 13775, 18979, 39068, 40637, 48578, 48578, 32447, 42576, 48578, 48578, 46202, 48578, 19771, 15860, 44159, 48578, 30304, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 11237, 11858, 46203, 28708, 48578, 31418, 48578, 48578, 9780, 48578, 28709, 35393, 48578, 48578, 48578, 48578, 48578, 9781, 10555, 42189, 13690, 37705, 48578, 28687, 27258, 48578, 48578, 48578, 48578, 48578, 29032, 39083, 48578, 42153, 48578, 9904, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 40232, 27588, 22791, 48578, 11883, 48578, 34054, 29369, 18344, 48578, 22702, 39623, 48578, 18001, 31732, 48161, 48578, 48578, 15245, 28221, 48578, 28588, 48578, 22929, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 28457, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 15899, 48578, 48578, 48578, 18002, 48578, 7256, 48578, 34118, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 40649, 11734, 20594, 48578, 45690, 39873, 24787, 32137, 48578, 48578, 33545, 40258, 48578, 16225, 27590, 9868, 48578, 14298, 48578, 48578, 48578, 13545, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 38660, 38661, 38662, 38663, 38664, 0, 0, 0, 38668, 38669, 38670, 38671, 38672, 38673, 38674, 38675, 38676, 38677, 38678, 38679, 38680, 38681, 0, 38683, 38684, 38685, 38686, 38687, 38688, 38689, 0, 38691, 38692, 0, 0, 0, 0, 38697, 38698, 0, 0, 38701, 38702, 0, 38704, 0, 0, 0, 38708, 0, 38710, 38711, 38712, 38713, 38714, 38715, 38716, 38717, 38718, 38719, 38720, 38721, 38722, 38723, 38724, 38725, 38726, 38727, 0, 0, 0, 0, 38732, 0, 38734, 38735, 0, 38737, 0, 0, 38740, 38741, 38742, 38743, 38744, 0, 0, 0, 0, 0, 38750, 0, 0, 38753, 38754, 38755, 38756, 38757, 0, 0, 38760, 0, 38762, 0, 38764, 38765, 38766, 38767, 38768, 38769, 38770, 38771, 38772, 38773, 38774, 38775, 38776, 38777, 38778, 38779, 38780, 38781, 38782, 38783, 38784, 38785, 38786, 38787, 38788, 38789, 38790, 38791, 38792, 38793, 38794, 38795, 38796, 38797, 38798, 38799, 38800, 38801, 38802, 38803, 38804, 38805, 38806, 38807, 0, 0, 0, 38811, 0, 38813, 0, 0, 0, 38817, 0, 0, 38820, 0, 0, 0, 38824, 38825, 0, 0, 38828, 0, 38830, 0, 38832, 38833, 38834, 38835, 38836, 38837, 38838, 38839, 38840, 38841, 38842, 38843, 38844, 38845, 0, 38847, 38848, 38849, 38850, 38851, 38852, 38853, 38854, 38855, 38856, 38857, 38858, 38859, 38860, 0, 38862, 38863, 38864, 0, 38866, 0, 38868, 0, 38870, 38871, 38872, 38873, 38874, 38875, 38876, 38877, 0, 0, 0, 38881, 0, 0, 0, 0, 38886, 38887, 0, 0, 38890, 0, 0, 0, 38894, 0, 38896, 38897, 38898, 0, 38900, 38901, 38902, 38903, 38904, 38905, 38906, 38907, 38908, 38909, 38910, 38911, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p218: 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 48578, 48578, 48578, 48578, 48578, 48578, 22861, 48578, 48578, 48578, 36646, 34126, 48578, 48578, 48578, 33180, 48578, 48578, 16607, 48578, 48578, 48578, 17531, 47006, 42130, 36833, 8514, 48578, 27791, 48578, 15282, 48578, 48578, 48578, 48578, 48578, 48578, 31216, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 47007, 48578, 48578, 35149, 48578, 48578, 28715, 22037, 48578, 42122, 48578, 18723, 48578, 48578, 48578, 8264, 27792, 10242, 48578, 48578, 48578, 26154, 33702, 9325, 45605, 34930, 48578, 48452, 44941, 45320, 26270, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32061, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 27558, 48578, 48578, 48578, 48578, 48578, 47691, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 12565, 48578, 44774, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 21822, 48578, 48578, 18949, 30799, 48578, 45194, 48578, 26713, 48578, 27828, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 29967, 48578, 21246, 48578, 48578, 48578, 48578, 48578, 42169, 48578, 48578, 48578, 48578, 48578, 48578, 10886, 28608, 35159, 48578, 48578, 48578, 48578, 48578, 34682, 48578, 48578, 29968, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 17371, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 42172, 48578, 28429, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 34408, 48578, 44781, 48578, 9458, 20992, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 40321, 48578, 48578, 48578, 41687, 39932, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 38912, 38913, 38914, 38915, 38916, 38917, 0, 38919, 38920, 38921, 0, 0, 38924, 38925, 38926, 0, 38928, 38929, 0, 38931, 38932, 38933, 0, 0, 0, 0, 0, 38939, 0, 38941, 0, 38943, 38944, 38945, 38946, 38947, 38948, 0, 38950, 38951, 38952, 38953, 38954, 38955, 38956, 38957, 38958, 38959, 38960, 38961, 38962, 38963, 38964, 38965, 38966, 38967, 38968, 0, 38970, 38971, 0, 38973, 38974, 0, 0, 38977, 0, 38979, 0, 38981, 38982, 38983, 0, 0, 0, 38987, 38988, 38989, 0, 0, 0, 0, 0, 38995, 0, 0, 0, 0, 39000, 39001, 39002, 39003, 39004, 39005, 39006, 39007, 39008, 39009, 39010, 39011, 39012, 0, 39014, 39015, 39016, 39017, 39018, 39019, 39020, 39021, 39022, 39023, 39024, 39025, 39026, 39027, 39028, 39029, 39030, 39031, 39032, 39033, 0, 39035, 39036, 39037, 39038, 39039, 0, 39041, 39042, 39043, 39044, 39045, 39046, 39047, 0, 39049, 0, 39051, 39052, 39053, 39054, 39055, 39056, 39057, 0, 39059, 39060, 0, 0, 39063, 0, 39065, 0, 39067, 0, 39069, 39070, 39071, 39072, 39073, 39074, 39075, 39076, 39077, 39078, 39079, 39080, 39081, 39082, 39083, 39084, 39085, 39086, 39087, 39088, 0, 39090, 0, 39092, 39093, 39094, 39095, 39096, 0, 39098, 39099, 39100, 39101, 39102, 39103, 0, 0, 0, 39107, 39108, 39109, 39110, 39111, 0, 39113, 39114, 0, 39116, 39117, 39118, 39119, 39120, 39121, 39122, 39123, 0, 39125, 39126, 39127, 39128, 39129, 39130, 39131, 39132, 39133, 39134, 39135, 0, 39137, 0, 39139, 39140, 39141, 39142, 39143, 39144, 39145, 0, 39147, 0, 39149, 0, 0, 39152, 39153, 39154, 39155, 39156, 39157, 39158, 39159, 39160, 0, 39162, 39163, 39164, 0, 0, 39167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p219: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 40330, 24533, 48578, 14605, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 47614, 48578, 28182, 48578, 47673, 48578, 48578, 23164, 48578, 48578, 48578, 26385, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 30842, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 37560, 48578, 48578, 48578, 48578, 48578, 48578, 34577, 48578, 10637, 48578, 42895, 48578, 48578, 48578, 48578, 17493, 48578, 20754, 48578, 48578, 18974, 48578, 40008, 11615, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 19753, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 28531, 48578, 28534, 36416, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 21883, 48578, 27772, 48578, 48578, 48578, 48578, 24130, 48578, 47221, 48578, 40906, 48578, 31744, 15262, 48578, 8968, 48578, 48578, 48578, 19811, 48578, 48578, 30556, 39099, 48578, 48578, 48578, 48578, 48578, 12739, 14335, 48578, 48578, 48578, 48578, 48578, 34564, 36893, 39980, 48578, 29805, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 12405, 48578, 19653, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 40049, 48578, 48578, 48578, 11827, 48578, 48578, 48578, 8918, 32732, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 27517, 48578, 48578, 48578, 48578, 27518, 48578, 34487, 39960, 7995, 37494, 48578, 29472, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 15577, 48578, 18083, 17788, 48578, 47447, 16564, 48578, 48578, 48578, 16879, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 12274, 48578, 48578, 8924, 18805, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 39168, 39169, 39170, 39171, 39172, 39173, 39174, 39175, 39176, 39177, 39178, 0, 0, 39181, 0, 39183, 39184, 39185, 39186, 39187, 39188, 39189, 39190, 0, 39192, 0, 39194, 0, 39196, 39197, 0, 39199, 39200, 39201, 0, 39203, 39204, 39205, 39206, 39207, 39208, 39209, 39210, 0, 39212, 39213, 39214, 39215, 39216, 39217, 39218, 39219, 39220, 39221, 0, 39223, 39224, 39225, 39226, 39227, 39228, 0, 39230, 0, 39232, 0, 39234, 39235, 39236, 39237, 0, 39239, 0, 39241, 39242, 0, 39244, 0, 0, 39247, 39248, 39249, 39250, 39251, 39252, 39253, 39254, 39255, 39256, 39257, 39258, 39259, 39260, 39261, 0, 39263, 39264, 39265, 39266, 39267, 39268, 39269, 0, 39271, 0, 0, 39274, 39275, 39276, 39277, 39278, 39279, 39280, 39281, 39282, 39283, 39284, 39285, 0, 39287, 0, 39289, 39290, 39291, 39292, 0, 39294, 0, 39296, 0, 39298, 0, 0, 39301, 0, 39303, 39304, 39305, 0, 39307, 39308, 0, 0, 39311, 39312, 39313, 39314, 39315, 0, 0, 39318, 39319, 39320, 39321, 39322, 0, 0, 0, 39326, 0, 39328, 39329, 39330, 39331, 39332, 39333, 39334, 39335, 0, 39337, 0, 39339, 39340, 39341, 39342, 39343, 39344, 39345, 39346, 0, 39348, 39349, 39350, 0, 39352, 39353, 39354, 0, 0, 39357, 39358, 39359, 39360, 39361, 39362, 39363, 39364, 39365, 39366, 39367, 39368, 39369, 39370, 39371, 39372, 0, 39374, 39375, 39376, 39377, 0, 39379, 0, 0, 0, 0, 39384, 0, 39386, 39387, 39388, 39389, 39390, 39391, 39392, 39393, 39394, 0, 39396, 0, 0, 39399, 0, 0, 39402, 39403, 39404, 0, 39406, 39407, 39408, 39409, 39410, 39411, 39412, 39413, 39414, 39415, 39416, 0, 39418, 39419, 0, 0, 39422, 39423, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p21A: 1, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 9782, 48578, 48578, 48578, 39295, 21717, 48578, 42285, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 14895, 45467, 48578, 48578, 48578, 14954, 48578, 48578, 48578, 48578, 48578, 48578, 21652, 44519, 48578, 48578, 48578, 48578, 48578, 19125, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 20907, 40615, 48578, 28218, 48578, 48578, 48578, 48578, 48578, 29033, 48578, 34055, 48578, 44541, 48578, 48578, 18577, 16091, 37618, 48578, 37363, 31264, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 43532, 48578, 19970, 48578, 48578, 48578, 48578, 48578, 48578, 35614, 48578, 20931, 38792, 38284, 48578, 48578, 48578, 26765, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 42045, 48578, 42209, 48578, 48578, 48578, 48578, 26768, 29181, 48578, 48578, 7422, 48578, 48578, 48578, 25821, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 14215, 48111, 48578, 48578, 48578, 48578, 14216, 48578, 7466, 48578, 48578, 48578, 48578, 19270, 48578, 9716, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 40621, 19847, 48578, 48521, 48578, 30590, 48578, 48578, 48578, 48578, 46552, 48578, 48578, 48578, 48578, 48578, 19438, 30457, 21991, 28906, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 33311, 48578, 48578, 48578, 48578, 48578, 17742, 32762, 31579, 48578, 48578, 48578, 48578, 21699, 48578, 48578, 24534, 48578, 48578, 48578, 48578, 48578, 34228, 48578, 48578, 28618, 39496, 15152, 48578, 48578, 32872, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 39425, 39426, 39427, 0, 0, 39430, 0, 39432, 39433, 39434, 39435, 39436, 39437, 39438, 39439, 39440, 39441, 39442, 39443, 39444, 39445, 0, 0, 39448, 39449, 39450, 0, 39452, 39453, 39454, 39455, 39456, 39457, 0, 0, 39460, 39461, 39462, 39463, 39464, 0, 39466, 39467, 39468, 39469, 39470, 39471, 39472, 39473, 0, 0, 39476, 0, 39478, 39479, 39480, 39481, 39482, 0, 39484, 0, 39486, 0, 39488, 39489, 0, 0, 0, 39493, 0, 0, 39496, 39497, 39498, 39499, 39500, 39501, 39502, 39503, 39504, 39505, 39506, 39507, 39508, 39509, 39510, 39511, 0, 39513, 0, 39515, 39516, 39517, 39518, 39519, 39520, 0, 39522, 0, 0, 0, 39526, 39527, 39528, 0, 39530, 39531, 39532, 39533, 39534, 39535, 39536, 39537, 39538, 39539, 39540, 39541, 0, 39543, 0, 39545, 39546, 39547, 39548, 0, 0, 39551, 39552, 0, 39554, 39555, 39556, 0, 39558, 39559, 39560, 39561, 39562, 39563, 39564, 39565, 39566, 39567, 39568, 0, 0, 39571, 39572, 39573, 39574, 0, 39576, 0, 39578, 39579, 39580, 39581, 0, 39583, 0, 39585, 39586, 39587, 39588, 39589, 39590, 39591, 39592, 39593, 39594, 39595, 39596, 39597, 39598, 39599, 0, 0, 39602, 0, 39604, 0, 39606, 39607, 39608, 39609, 0, 39611, 39612, 39613, 39614, 39615, 0, 0, 0, 0, 39620, 39621, 39622, 39623, 39624, 39625, 39626, 39627, 39628, 39629, 39630, 39631, 39632, 39633, 39634, 39635, 39636, 39637, 39638, 39639, 39640, 39641, 39642, 39643, 39644, 39645, 39646, 0, 39648, 39649, 39650, 39651, 39652, 0, 0, 0, 39656, 39657, 39658, 39659, 0, 39661, 39662, 0, 39664, 39665, 39666, 39667, 39668, 0, 39670, 39671, 0, 0, 0, 39675, 39676, 0, 39678, 39679, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p21B: 2, 1, 1, 2, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 48578, 40629, 16933, 48578, 19913, 48578, 27222, 15154, 48578, 33116, 44704, 20800, 27242, 25694, 31206, 48578, 27323, 48578, 48578, 42813, 48578, 25698, 17206, 28624, 23892, 33347, 48578, 48578, 25207, 48578, 44483, 48578, 48578, 48578, 48578, 48578, 48578, 29110, 48578, 48578, 48578, 48578, 48578, 38598, 48578, 48578, 48578, 8676, 48578, 48578, 8677, 41003, 48578, 20123, 48578, 48578, 8679, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 12691, 48578, 48578, 48578, 48578, 47649, 48578, 48578, 48578, 32756, 48578, 48578, 48578, 48578, 34740, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 19935, 48578, 48578, 18938, 48578, 48578, 45839, 48578, 48578, 48578, 7777, 25019, 48578, 40060, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 20231, 34440, 48578, 48578, 48578, 48578, 22577, 48578, 48578, 48578, 16600, 26273, 48578, 48578, 48578, 48578, 48578, 29034, 10178, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 24830, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 28225, 32868, 48578, 48578, 48578, 47008, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 9613, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 24472, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 23611, 48578, 48578, 48578, 9917, 48578, 37698, 48578, 48578, 24335, 48578, 48578, 38577, 29440, 44135, 48578, 15616, 48578, 48578, 48578, 7376, 40633, 34794, 32952, 48578, 48578, 48578, 48578, 48578, 7843, 43989, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 19212, 48578, 48578, 18851, 48578, 48578, 48551, 39854, 48578, 27446, 48578, 48578, 48578, 48578, 15548, 44884, 48578, 9284, 10282, 37204, 48578, 9285, 48578, 48578, 48578, 48578, 48578, 15549, 48578, 36621, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 39680, 0, 0, 39683, 0, 39685, 0, 0, 39688, 0, 0, 0, 0, 0, 0, 39695, 0, 39697, 39698, 0, 39700, 0, 0, 0, 0, 0, 39706, 39707, 0, 39709, 0, 39711, 39712, 39713, 39714, 39715, 39716, 0, 39718, 39719, 39720, 39721, 39722, 0, 39724, 39725, 39726, 0, 39728, 39729, 0, 0, 39732, 0, 39734, 39735, 0, 39737, 39738, 39739, 39740, 39741, 39742, 39743, 39744, 39745, 0, 39747, 39748, 39749, 39750, 0, 39752, 39753, 39754, 0, 39756, 39757, 39758, 39759, 0, 39761, 39762, 39763, 39764, 39765, 39766, 39767, 0, 39769, 39770, 0, 39772, 39773, 0, 39775, 39776, 39777, 0, 0, 39780, 0, 39782, 39783, 39784, 39785, 39786, 39787, 39788, 0, 0, 39791, 39792, 39793, 39794, 0, 39796, 39797, 39798, 0, 0, 39801, 39802, 39803, 39804, 39805, 0, 0, 39808, 39809, 39810, 39811, 39812, 39813, 39814, 39815, 39816, 39817, 39818, 39819, 39820, 39821, 0, 39823, 39824, 39825, 39826, 39827, 39828, 39829, 39830, 39831, 39832, 0, 0, 39835, 39836, 39837, 0, 39839, 39840, 39841, 39842, 39843, 39844, 39845, 0, 39847, 39848, 39849, 39850, 39851, 39852, 39853, 39854, 39855, 0, 39857, 39858, 39859, 39860, 39861, 39862, 39863, 39864, 39865, 39866, 0, 39868, 39869, 39870, 0, 39872, 0, 39874, 39875, 0, 39877, 39878, 0, 0, 0, 39882, 0, 39884, 39885, 39886, 0, 0, 0, 0, 39891, 39892, 39893, 39894, 39895, 0, 0, 39898, 39899, 39900, 39901, 39902, 39903, 39904, 39905, 0, 39907, 39908, 0, 39910, 39911, 0, 0, 39914, 0, 39916, 39917, 39918, 39919, 0, 0, 39922, 0, 0, 0, 39926, 0, 39928, 39929, 39930, 39931, 39932, 0, 39934, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p21C: 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1, 2, 1, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 28105, 48578, 48578, 48578, 48578, 18186, 28793, 48578, 48578, 48578, 48578, 18932, 25804, 48578, 36362, 48578, 31376, 31324, 47202, 48578, 48578, 48578, 12791, 48578, 48578, 48578, 25154, 48578, 48578, 32253, 47659, 48578, 23965, 48578, 40188, 48578, 48578, 32533, 48578, 48578, 12495, 48578, 13574, 28648, 48578, 48578, 48578, 34244, 48578, 48578, 39414, 48578, 48578, 48578, 48578, 48578, 48578, 46715, 48578, 48578, 48578, 7307, 11593, 30324, 48578, 34248, 48578, 48578, 48578, 31955, 34579, 12979, 48578, 39987, 34797, 48578, 18566, 48578, 48578, 48578, 42674, 21955, 48578, 48578, 46812, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 46130, 48578, 48578, 48578, 48578, 48578, 48578, 40881, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 25733, 48578, 47556, 48578, 35599, 48578, 48578, 48578, 13208, 48578, 48578, 32039, 48578, 22695, 18098, 21653, 48578, 31670, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 8991, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 36444, 48578, 22137, 48578, 48578, 31891, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 20547, 48578, 48578, 48578, 48578, 48578, 48578, 45176, 48578, 48578, 27047, 29717, 48578, 32053, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 27393, 48578, 48578, 36450, 48578, 48578, 22429, 48578, 8380, 48578, 31986, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 36628, 48578, 11274, 48578, 48578, 48578, 48578, 48578, 48578, 21753, 48578, 38835, 48578, 48578, 48578, 25221, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 10807, 19478, 48578, 48578, 48578, 48578, 48578, 25878, 48578, 48578, 48578, 24590, 48578, 48578, 48578, 48578, 48578, 22073, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 39937, 39938, 39939, 39940, 0, 0, 39943, 39944, 39945, 39946, 0, 0, 39949, 0, 39951, 0, 0, 0, 39955, 39956, 39957, 0, 39959, 39960, 39961, 0, 39963, 39964, 0, 0, 39967, 0, 39969, 0, 39971, 39972, 0, 39974, 39975, 0, 39977, 0, 0, 39980, 39981, 39982, 0, 39984, 39985, 0, 39987, 39988, 39989, 39990, 39991, 39992, 0, 39994, 39995, 39996, 0, 0, 0, 40000, 0, 40002, 40003, 40004, 0, 0, 0, 40008, 0, 0, 40011, 0, 40013, 40014, 40015, 0, 0, 40018, 40019, 0, 40021, 40022, 40023, 40024, 40025, 40026, 40027, 0, 40029, 40030, 40031, 40032, 40033, 40034, 0, 40036, 40037, 40038, 40039, 40040, 40041, 40042, 40043, 40044, 40045, 40046, 0, 40048, 0, 40050, 0, 40052, 40053, 40054, 0, 40056, 40057, 0, 40059, 0, 0, 0, 40063, 0, 40065, 40066, 40067, 40068, 40069, 40070, 40071, 40072, 40073, 40074, 40075, 40076, 0, 40078, 40079, 40080, 40081, 40082, 40083, 40084, 0, 40086, 0, 40088, 40089, 0, 40091, 40092, 40093, 40094, 40095, 40096, 40097, 40098, 0, 40100, 40101, 40102, 40103, 40104, 40105, 0, 40107, 40108, 0, 0, 40111, 0, 40113, 40114, 40115, 40116, 40117, 40118, 40119, 40120, 40121, 40122, 40123, 0, 40125, 40126, 0, 40128, 40129, 0, 40131, 0, 40133, 0, 40135, 40136, 40137, 40138, 40139, 40140, 40141, 40142, 0, 40144, 0, 40146, 40147, 40148, 40149, 40150, 40151, 0, 40153, 0, 40155, 40156, 40157, 0, 40159, 40160, 40161, 40162, 40163, 40164, 40165, 40166, 40167, 40168, 40169, 40170, 40171, 40172, 0, 0, 40175, 40176, 40177, 40178, 40179, 0, 40181, 40182, 40183, 0, 40185, 40186, 40187, 40188, 40189, 0, 40191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p21D: 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1, 1, 1, 2, 2, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 2, 1, 48578, 48578, 48578, 48578, 48578, 47388, 25954, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 28758, 48578, 48578, 48578, 48578, 48578, 32197, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 41491, 48578, 14131, 48578, 18297, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 26733, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 38582, 48578, 48578, 9734, 48578, 48578, 48578, 48578, 31472, 20867, 17869, 48578, 12335, 14301, 45567, 18306, 7502, 21041, 15404, 43929, 48578, 14943, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 28048, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 33263, 11795, 48578, 48578, 48578, 22504, 48578, 48578, 48578, 48578, 48578, 48578, 42324, 7309, 7964, 48578, 30211, 48578, 34249, 14567, 48578, 21710, 29753, 48578, 38048, 22886, 31401, 15626, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 23112, 35447, 8242, 19943, 41503, 48578, 48578, 48578, 22486, 28759, 48578, 40517, 48578, 39069, 48578, 25211, 13973, 48578, 10010, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 34310, 48578, 48578, 13812, 48578, 20472, 44406, 25962, 14303, 48578, 48578, 16392, 48578, 37942, 10296, 18646, 8889, 48578, 48578, 17308, 37168, 28143, 30682, 48578, 36949, 44746, 37717, 48578, 38460, 15862, 48578, 48578, 22764, 48578, 42694, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 39855, 48578, 16837, 41509, 35452, 35090, 48578, 47867, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 40192, 40193, 40194, 40195, 40196, 0, 0, 40199, 40200, 40201, 40202, 40203, 40204, 40205, 0, 40207, 40208, 40209, 40210, 40211, 0, 40213, 40214, 40215, 40216, 40217, 40218, 40219, 40220, 40221, 40222, 40223, 40224, 40225, 40226, 40227, 40228, 40229, 40230, 40231, 40232, 40233, 40234, 40235, 40236, 0, 40238, 0, 40240, 0, 40242, 40243, 40244, 40245, 40246, 40247, 40248, 40249, 40250, 40251, 40252, 40253, 40254, 40255, 0, 40257, 40258, 40259, 40260, 40261, 40262, 40263, 40264, 0, 40266, 40267, 0, 40269, 40270, 40271, 40272, 0, 0, 0, 40276, 0, 0, 0, 0, 0, 0, 0, 0, 40285, 0, 40287, 40288, 40289, 40290, 40291, 40292, 40293, 40294, 40295, 40296, 40297, 40298, 40299, 0, 40301, 40302, 40303, 40304, 40305, 40306, 40307, 40308, 40309, 0, 0, 40312, 40313, 40314, 0, 40316, 40317, 40318, 40319, 40320, 40321, 0, 0, 0, 40325, 0, 40327, 0, 0, 40330, 0, 0, 40333, 0, 0, 0, 0, 40338, 40339, 40340, 40341, 40342, 40343, 40344, 40345, 40346, 40347, 40348, 40349, 40350, 40351, 40352, 40353, 0, 0, 0, 0, 0, 40359, 40360, 40361, 0, 0, 40364, 0, 40366, 0, 40368, 0, 0, 40371, 0, 40373, 40374, 40375, 40376, 40377, 40378, 40379, 40380, 40381, 40382, 40383, 40384, 40385, 40386, 40387, 40388, 40389, 40390, 40391, 0, 40393, 40394, 0, 40396, 0, 0, 0, 0, 40401, 40402, 0, 40404, 0, 0, 0, 0, 40409, 40410, 0, 0, 0, 0, 40415, 0, 0, 0, 40419, 0, 0, 40422, 40423, 0, 40425, 0, 40427, 40428, 40429, 40430, 40431, 40432, 40433, 40434, 40435, 40436, 40437, 40438, 40439, 0, 40441, 0, 0, 0, 0, 40446, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p21E: 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 1, 1, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48578, 48578, 36998, 39520, 48578, 48578, 48578, 48578, 45572, 24385, 48578, 48578, 47557, 48578, 20899, 48578, 48578, 36439, 48578, 48578, 40111, 31725, 48578, 41513, 21655, 48578, 48578, 43408, 46728, 48578, 22463, 47984, 48578, 22608, 48578, 28772, 31209, 37607, 45502, 48578, 21656, 48578, 48131, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 41514, 48578, 48578, 25133, 48578, 30529, 48578, 48578, 48578, 48578, 18927, 48578, 48578, 48578, 48578, 30756, 48578, 42034, 35456, 48578, 30688, 16766, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 31597, 14065, 48578, 48557, 48578, 48578, 45574, 30757, 19568, 48578, 37364, 13223, 48578, 18998, 26828, 48578, 40831, 48578, 48578, 18003, 41760, 39750, 11735, 18177, 48578, 48578, 7462, 48578, 9019, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 13981, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 47508, 13224, 43953, 30692, 34206, 41261, 43954, 22446, 31352, 48578, 48578, 31168, 29564, 48578, 48578, 32220, 48578, 43677, 48578, 48578, 48578, 48578, 48578, 33373, 48578, 48578, 48578, 36171, 48578, 17971, 29841, 42210, 48578, 48578, 48578, 48578, 37056, 9869, 48578, 39300, 30557, 48578, 31745, 48578, 48578, 21219, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 46352, 48578, 48578, 48578, 47413, 48578, 38794, 48578, 38265, 47195, 48578, 48578, 48578, 35463, 48578, 48578, 22623, 23387, 22544, 48578, 48578, 10243, 8515, 27900, 47593, 17343, 44446, 42754, 26510, 48578, 48578, 30780, 16978, 26700, 24911, 25142, 48324, 23998, 18355, 11417, 30781, 23929, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 40448, 40449, 0, 0, 40452, 40453, 40454, 40455, 0, 0, 40458, 40459, 0, 40461, 0, 40463, 40464, 0, 40466, 40467, 0, 0, 40470, 0, 0, 40473, 40474, 0, 0, 40477, 0, 0, 40480, 0, 40482, 0, 0, 0, 0, 40487, 0, 40489, 0, 40491, 40492, 40493, 40494, 40495, 40496, 40497, 40498, 40499, 40500, 40501, 40502, 40503, 40504, 40505, 40506, 40507, 40508, 40509, 40510, 40511, 40512, 40513, 40514, 40515, 0, 40517, 40518, 0, 40520, 0, 40522, 40523, 40524, 40525, 0, 40527, 40528, 40529, 40530, 0, 40532, 0, 0, 40535, 0, 0, 40538, 40539, 40540, 40541, 40542, 40543, 40544, 40545, 0, 0, 40548, 0, 40550, 40551, 0, 0, 0, 40555, 0, 0, 40558, 0, 0, 40561, 0, 40563, 40564, 0, 0, 0, 0, 0, 40570, 40571, 0, 40573, 0, 40575, 40576, 40577, 40578, 40579, 40580, 40581, 40582, 0, 40584, 40585, 40586, 40587, 40588, 40589, 40590, 40591, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40601, 40602, 0, 0, 40605, 40606, 0, 40608, 0, 40610, 40611, 40612, 40613, 40614, 0, 40616, 40617, 40618, 0, 40620, 0, 0, 0, 40624, 40625, 40626, 40627, 0, 0, 40630, 0, 0, 40633, 0, 40635, 40636, 0, 40638, 40639, 40640, 40641, 40642, 40643, 40644, 40645, 40646, 40647, 0, 40649, 40650, 40651, 0, 40653, 0, 40655, 0, 0, 40658, 40659, 40660, 0, 40662, 40663, 0, 0, 0, 40667, 40668, 0, 0, 0, 0, 0, 0, 0, 0, 40677, 40678, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40690, 40691, 40692, 40693, 40694, 40695, 40696, 40697, 40698, 40699, 40700, 40701, 40702, 40703, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p21F: 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 1, 2, 2, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 48578, 10674, 48578, 30197, 13247, 48578, 48578, 48578, 48578, 48578, 23999, 48578, 48578, 48578, 42861, 48578, 48578, 48578, 48578, 13072, 48578, 48578, 13864, 15806, 18126, 48578, 39905, 15542, 29597, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 33951, 48578, 48578, 48578, 48578, 37883, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 13824, 10246, 43493, 23026, 22916, 48578, 48457, 16445, 48578, 48578, 45195, 47053, 48578, 48578, 19874, 10516, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 40297, 48578, 48578, 48578, 48578, 48433, 7424, 17449, 48578, 48578, 30222, 48578, 12835, 42513, 48578, 48578, 48578, 28353, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 20981, 7953, 23670, 9584, 48578, 8576, 48578, 48578, 48578, 48578, 45934, 30810, 48578, 48578, 48578, 48578, 48578, 28354, 48578, 48578, 26206, 48578, 23135, 48578, 27809, 48578, 24011, 29466, 48578, 48578, 48578, 48578, 48578, 24513, 9725, 48578, 12578, 24012, 48578, 48578, 14263, 48578, 8311, 22217, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 41083, 28838, 48578, 17170, 48578, 48578, 48578, 48578, 48578, 39559, 48578, 20317, 27303, 28844, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 9585, 35108, 45621, 43278, 48578, 48578, 48578, 10985, 48578, 9588, 48578, 48578, 48578, 48578, 24029, 29127, 24591, 48578, 48578, 24247, 26386, 48578, 48578, 48578, 36136, 48578, 48578, 28863, 28864, 48578, 19503, 48578, 24035, 48578, 28319, 48578, 48578, 25184, 25408, 48578, 48578, 39511, 44728, 48578, 45272, 32268, 25017, 48578, 48578, 48578, 48578, 48578, 44489, 18703, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 28366, 48578, 41374, 48578, 21724, 19251, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 40704, 0, 40706, 0, 0, 40709, 40710, 40711, 40712, 40713, 0, 40715, 40716, 40717, 0, 40719, 40720, 40721, 40722, 0, 40724, 40725, 0, 0, 0, 40729, 0, 0, 0, 40733, 40734, 40735, 40736, 40737, 40738, 40739, 40740, 40741, 40742, 40743, 40744, 40745, 40746, 40747, 0, 40749, 40750, 40751, 40752, 0, 40754, 40755, 40756, 40757, 40758, 40759, 40760, 40761, 40762, 0, 0, 0, 0, 0, 40768, 0, 0, 40771, 40772, 0, 0, 40775, 40776, 0, 0, 40779, 40780, 40781, 40782, 40783, 40784, 40785, 40786, 40787, 40788, 40789, 0, 40791, 40792, 40793, 40794, 0, 0, 0, 40798, 40799, 0, 40801, 0, 0, 40804, 40805, 40806, 0, 40808, 40809, 40810, 40811, 40812, 40813, 40814, 40815, 40816, 0, 0, 0, 0, 40821, 0, 40823, 40824, 40825, 40826, 0, 0, 40829, 40830, 40831, 40832, 40833, 0, 40835, 40836, 0, 40838, 0, 40840, 0, 40842, 0, 0, 40845, 40846, 40847, 40848, 40849, 0, 0, 40852, 0, 0, 40855, 40856, 0, 40858, 0, 0, 40861, 40862, 40863, 40864, 40865, 40866, 40867, 40868, 0, 0, 40871, 0, 40873, 40874, 40875, 40876, 40877, 0, 40879, 0, 0, 0, 40883, 40884, 40885, 40886, 40887, 40888, 40889, 40890, 0, 0, 0, 0, 40895, 40896, 40897, 0, 40899, 0, 40901, 40902, 40903, 40904, 0, 0, 0, 40908, 40909, 0, 0, 40912, 40913, 40914, 0, 40916, 40917, 0, 0, 40920, 0, 40922, 0, 40924, 0, 40926, 40927, 0, 0, 40930, 40931, 0, 0, 40934, 0, 0, 0, 40938, 40939, 40940, 40941, 40942, 0, 0, 40945, 40946, 40947, 40948, 40949, 40950, 40951, 40952, 40953, 0, 40955, 0, 40957, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p220: 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 48578, 43061, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 38901, 33323, 20745, 43857, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 34095, 21272, 37661, 42417, 21496, 48578, 48578, 16188, 48578, 48578, 48578, 48578, 18853, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 14369, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 17296, 48578, 48578, 48578, 48578, 48578, 48578, 15210, 48578, 48578, 48578, 15223, 47876, 19376, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 7909, 48578, 48578, 30485, 34240, 48578, 13137, 29531, 39512, 33119, 48578, 48578, 48578, 48578, 10135, 44933, 48578, 16127, 48578, 38406, 48578, 14807, 48578, 48578, 10005, 48578, 28447, 22081, 48578, 46115, 48578, 31001, 48578, 48578, 7572, 48578, 48578, 48578, 48578, 37729, 47143, 48578, 18704, 48578, 9344, 47500, 8415, 10216, 46500, 15173, 22833, 48578, 48504, 41111, 48578, 15409, 48578, 48578, 48578, 42277, 48578, 48578, 9071, 48578, 8119, 40094, 34311, 42676, 48578, 17884, 11996, 48578, 42975, 47642, 48578, 48578, 48578, 48578, 10829, 48578, 48578, 48578, 48578, 48578, 48578, 30172, 48578, 48578, 48578, 43392, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 44904, 48578, 48578, 48578, 48578, 21443, 48578, 48578, 26887, 31113, 48578, 43005, 48578, 48578, 48578, 38461, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 8084, 19252, 11800, 22798, 48578, 48578, 48578, 48578, 35720, 48578, 17317, 31116, 48578, 48578, 48578, 46729, 48578, 48578, 48578, 48578, 48578, 33270, 48578, 48578, 30926, 17069, 48578, 48578, 16946, 48578, 48578, 20124, 47163, 27498, 16848, 34350, 27972, 14185, 7708, 23439, 48578, 48578, 48578, 47349, 48578, 19569, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 40960, 0, 40962, 40963, 40964, 40965, 40966, 40967, 40968, 40969, 0, 0, 0, 0, 40974, 40975, 40976, 40977, 40978, 40979, 40980, 0, 0, 0, 0, 0, 40986, 40987, 0, 40989, 40990, 40991, 40992, 0, 40994, 40995, 40996, 40997, 40998, 40999, 41000, 41001, 0, 41003, 41004, 41005, 41006, 41007, 41008, 41009, 41010, 41011, 41012, 0, 41014, 41015, 41016, 41017, 41018, 41019, 0, 41021, 41022, 41023, 0, 0, 0, 41027, 41028, 41029, 41030, 41031, 41032, 41033, 41034, 41035, 41036, 41037, 41038, 0, 41040, 41041, 0, 0, 41044, 0, 0, 0, 0, 41049, 41050, 41051, 41052, 0, 0, 41055, 0, 41057, 0, 41059, 0, 41061, 41062, 0, 41064, 0, 0, 41067, 0, 41069, 0, 41071, 41072, 0, 41074, 41075, 41076, 41077, 0, 0, 41080, 0, 41082, 0, 0, 0, 0, 0, 0, 0, 41090, 0, 0, 41093, 0, 41095, 41096, 41097, 0, 41099, 41100, 0, 41102, 0, 0, 0, 0, 41107, 0, 0, 41110, 0, 0, 41113, 41114, 41115, 41116, 0, 41118, 41119, 41120, 41121, 41122, 41123, 0, 41125, 41126, 41127, 0, 41129, 41130, 41131, 41132, 41133, 41134, 41135, 41136, 0, 41138, 41139, 41140, 41141, 0, 41143, 41144, 0, 0, 41147, 0, 41149, 41150, 41151, 0, 41153, 41154, 41155, 41156, 41157, 41158, 41159, 41160, 41161, 41162, 41163, 41164, 0, 0, 0, 0, 41169, 41170, 41171, 41172, 0, 41174, 0, 0, 41177, 41178, 41179, 0, 41181, 41182, 41183, 41184, 41185, 0, 41187, 41188, 0, 0, 41191, 41192, 0, 41194, 41195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41205, 41206, 41207, 0, 41209, 0, 41211, 41212, 41213, 41214, 41215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p221: 1, 2, 2, 2, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 1, 2, 1, 1, 2, 2, 1, 1, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 45446, 48578, 48578, 48578, 45645, 43063, 48578, 16277, 48578, 48578, 16778, 43591, 33456, 17642, 7940, 27892, 27112, 48578, 48578, 38630, 12303, 48578, 48578, 21472, 48578, 48578, 48578, 48578, 17337, 48578, 48578, 36834, 22836, 24162, 47009, 19025, 45336, 48578, 13141, 11888, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 47010, 48578, 22979, 48578, 39818, 18488, 24923, 12025, 31281, 20706, 48578, 40776, 14396, 48578, 37323, 35938, 47028, 48578, 48578, 48578, 48578, 48578, 48578, 28392, 26927, 12956, 9719, 48578, 48578, 20717, 24698, 48578, 33392, 12459, 48578, 48578, 35483, 24699, 17100, 48578, 48578, 8839, 48578, 11711, 13076, 26198, 28548, 41806, 23603, 48578, 48578, 15612, 11179, 48578, 48578, 48578, 8593, 48342, 19084, 48578, 23542, 39491, 14930, 17747, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 42368, 45946, 48578, 28432, 48578, 26433, 48578, 44878, 48578, 28467, 48578, 48578, 48578, 48578, 48578, 48578, 32549, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 15945, 48578, 20261, 30136, 48578, 48578, 48578, 8915, 48578, 48578, 20411, 48578, 48578, 9058, 48578, 48578, 48578, 48578, 48578, 27365, 18291, 48578, 48578, 48578, 13136, 48578, 43942, 42147, 8239, 48578, 10394, 19355, 48578, 42148, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 16602, 41870, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 10806, 48578, 33409, 41726, 42907, 42908, 10315, 48578, 48578, 17300, 18702, 48578, 48578, 48578, 48578, 34801, 35446, 32536, 35912, 46799, 48578, 14561, 15031, 48578, 48578, 48578, 48578, 35913, 48578, 27251, 29754, 9345, 28132, 36513, 7680, 42948, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 41217, 41218, 41219, 0, 0, 41222, 0, 41224, 41225, 0, 0, 0, 0, 0, 0, 0, 41233, 41234, 0, 0, 41237, 41238, 0, 41240, 41241, 41242, 41243, 0, 41245, 41246, 0, 0, 0, 0, 0, 0, 41253, 0, 0, 41256, 41257, 41258, 41259, 41260, 41261, 41262, 41263, 41264, 0, 41266, 0, 41268, 0, 0, 0, 0, 0, 0, 41275, 0, 0, 41278, 0, 0, 0, 41282, 41283, 41284, 41285, 41286, 41287, 0, 0, 0, 0, 41292, 41293, 0, 0, 41296, 0, 0, 41299, 41300, 0, 0, 0, 41304, 41305, 0, 41307, 0, 0, 0, 0, 0, 0, 41314, 41315, 0, 0, 41318, 41319, 41320, 0, 0, 0, 41324, 0, 0, 0, 0, 41329, 41330, 41331, 41332, 41333, 41334, 41335, 41336, 0, 0, 41339, 0, 41341, 0, 41343, 0, 41345, 0, 41347, 41348, 41349, 41350, 41351, 41352, 0, 41354, 41355, 41356, 41357, 41358, 41359, 41360, 41361, 41362, 41363, 41364, 41365, 41366, 41367, 41368, 41369, 41370, 41371, 0, 41373, 0, 0, 41376, 41377, 41378, 0, 41380, 41381, 0, 41383, 41384, 0, 41386, 41387, 41388, 41389, 41390, 0, 0, 41393, 41394, 41395, 0, 41397, 0, 0, 0, 41401, 0, 0, 41404, 0, 41406, 41407, 41408, 41409, 41410, 41411, 41412, 41413, 41414, 0, 0, 41417, 41418, 41419, 41420, 41421, 41422, 41423, 41424, 41425, 41426, 41427, 41428, 0, 41430, 0, 0, 0, 0, 0, 41436, 41437, 0, 0, 41440, 41441, 41442, 41443, 0, 0, 0, 0, 0, 41449, 0, 0, 41452, 41453, 41454, 41455, 0, 41457, 0, 0, 0, 0, 0, 0, 0, 41465, 41466, 41467, 41468, 41469, 41470, 41471, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p222: 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 1, 48578, 48578, 41734, 48578, 36615, 48578, 42180, 33936, 22595, 36851, 48578, 41091, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 44151, 48578, 7783, 48578, 48578, 48578, 39221, 26137, 23359, 45385, 31867, 48578, 48578, 11877, 48407, 25799, 48578, 39222, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 33867, 48578, 48578, 30327, 48578, 21289, 31163, 43030, 48578, 28773, 13778, 48578, 20909, 35457, 45965, 11839, 48578, 48578, 8249, 16603, 33785, 48578, 21208, 12917, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 12349, 48578, 28206, 48578, 29019, 48578, 19557, 41634, 48578, 29037, 48578, 13699, 38062, 29912, 48578, 48578, 48578, 18178, 48578, 20082, 42459, 22303, 23587, 23440, 43347, 48578, 48578, 48578, 37170, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 28379, 48578, 48578, 48578, 48578, 48368, 48578, 48578, 48578, 48578, 26555, 34913, 46986, 48578, 48578, 18869, 47783, 48578, 19011, 48578, 48578, 48578, 48578, 48578, 11159, 48578, 10335, 48578, 48578, 40652, 23590, 48578, 11746, 33991, 27901, 42600, 42219, 39018, 48426, 9055, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 44310, 48578, 26009, 48578, 48578, 48578, 48578, 37181, 37990, 48578, 14871, 33952, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 24924, 48578, 48578, 48578, 48578, 48578, 48578, 34592, 12406, 21992, 44336, 40453, 42241, 35219, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 19221, 48578, 30964, 48578, 48578, 48578, 48578, 48578, 26519, 48578, 48578, 22415, 48578, 48578, 48578, 25933, 48578, 43966, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 39677, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 38502, 48578, 43507, 38913, 48578, 48578, 45799, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 41472, 41473, 0, 41475, 0, 41477, 0, 0, 0, 0, 41482, 0, 41484, 41485, 41486, 41487, 41488, 41489, 41490, 0, 41492, 0, 41494, 41495, 41496, 0, 0, 0, 0, 0, 41502, 41503, 0, 0, 0, 41507, 0, 41509, 41510, 41511, 41512, 41513, 41514, 41515, 41516, 41517, 41518, 0, 41520, 41521, 0, 41523, 0, 0, 0, 41527, 0, 0, 41530, 0, 0, 0, 0, 41535, 41536, 0, 0, 0, 41540, 0, 0, 41543, 41544, 41545, 41546, 41547, 41548, 41549, 41550, 41551, 41552, 0, 41554, 0, 41556, 0, 41558, 0, 0, 41561, 0, 41563, 0, 0, 0, 41567, 41568, 41569, 0, 41571, 0, 0, 0, 0, 0, 0, 41578, 41579, 41580, 0, 41582, 41583, 41584, 41585, 41586, 41587, 41588, 0, 41590, 41591, 41592, 41593, 0, 41595, 41596, 41597, 41598, 0, 0, 0, 41602, 41603, 0, 0, 41606, 0, 41608, 41609, 41610, 41611, 41612, 0, 41614, 0, 41616, 41617, 0, 0, 41620, 0, 0, 0, 0, 0, 0, 0, 0, 41629, 41630, 41631, 41632, 41633, 41634, 41635, 41636, 41637, 41638, 0, 41640, 0, 41642, 41643, 41644, 41645, 0, 0, 41648, 0, 0, 41651, 41652, 41653, 41654, 41655, 41656, 41657, 41658, 0, 41660, 41661, 41662, 41663, 41664, 41665, 0, 0, 0, 0, 0, 0, 0, 41673, 41674, 41675, 41676, 41677, 41678, 41679, 41680, 41681, 0, 41683, 0, 41685, 41686, 41687, 41688, 41689, 0, 41691, 41692, 0, 41694, 41695, 41696, 0, 41698, 0, 41700, 41701, 41702, 41703, 41704, 41705, 41706, 41707, 41708, 41709, 0, 41711, 41712, 41713, 41714, 41715, 41716, 41717, 41718, 41719, 41720, 0, 41722, 0, 0, 41725, 41726, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p223: 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 40346, 48578, 48578, 48578, 32098, 48578, 48578, 48578, 24249, 48578, 48578, 48578, 48578, 30991, 48578, 48578, 48578, 48578, 48578, 48578, 25409, 26259, 48578, 48578, 48578, 48578, 9893, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 46595, 48578, 41635, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 43519, 23172, 48578, 48578, 48578, 31949, 48578, 15166, 48578, 44492, 48578, 48578, 48578, 48578, 48578, 30497, 48578, 48578, 48578, 48578, 30738, 19755, 44744, 48578, 48578, 48578, 48578, 48578, 15863, 22009, 48578, 30513, 48578, 15578, 48578, 32290, 48578, 48578, 48578, 48578, 38063, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 47011, 48578, 48578, 48578, 20270, 48578, 35029, 48578, 48578, 43185, 30961, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 24333, 48578, 48578, 45383, 42924, 48578, 9424, 42925, 15884, 48578, 13199, 48578, 46642, 42978, 48578, 45279, 12284, 48578, 35266, 48578, 48578, 48578, 48578, 48578, 20983, 10474, 32099, 48578, 17295, 39413, 48578, 48578, 48578, 48578, 48578, 48578, 32188, 20861, 48578, 48578, 48578, 22001, 48578, 48578, 48578, 48578, 12419, 48578, 48578, 21095, 48578, 48578, 48578, 48578, 48578, 48578, 8988, 18146, 48578, 48578, 48578, 22082, 48578, 44216, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 24279, 31208, 34795, 22887, 48578, 46395, 48578, 48578, 48578, 48578, 15174, 33851, 48578, 48578, 48578, 11441, 48578, 48578, 36852, 48578, 42979, 48578, 42023, 48578, 48578, 37345, 47245, 19538, 48578, 48578, 48578, 48578, 48578, 41375, 48578, 33939, 40996, 48578, 48578, 48578, 48578, 48578, 25466, 44751, 18166, 46597, 48578, 48578, 29584, 48578, 48578, 48578, 22118, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 41729, 41730, 41731, 0, 41733, 41734, 41735, 0, 41737, 41738, 41739, 41740, 0, 41742, 41743, 41744, 41745, 41746, 41747, 0, 0, 41750, 41751, 41752, 41753, 0, 41755, 41756, 41757, 41758, 41759, 41760, 41761, 41762, 41763, 41764, 41765, 0, 41767, 0, 41769, 41770, 41771, 41772, 41773, 41774, 41775, 41776, 41777, 0, 0, 41780, 41781, 41782, 0, 41784, 0, 41786, 0, 41788, 41789, 41790, 41791, 41792, 0, 41794, 41795, 41796, 41797, 0, 0, 0, 41801, 41802, 41803, 41804, 41805, 0, 0, 41808, 0, 41810, 0, 41812, 0, 41814, 41815, 41816, 41817, 0, 41819, 41820, 41821, 41822, 41823, 41824, 41825, 41826, 41827, 41828, 41829, 41830, 0, 41832, 41833, 41834, 0, 41836, 0, 41838, 41839, 0, 0, 41842, 41843, 41844, 41845, 41846, 41847, 41848, 41849, 41850, 41851, 0, 41853, 41854, 0, 0, 41857, 0, 0, 0, 41861, 0, 41863, 0, 0, 41866, 0, 0, 41869, 0, 41871, 41872, 41873, 41874, 41875, 0, 0, 0, 41879, 0, 0, 41882, 41883, 41884, 41885, 41886, 41887, 0, 0, 41890, 41891, 41892, 0, 41894, 41895, 41896, 41897, 0, 41899, 41900, 0, 41902, 41903, 41904, 41905, 41906, 41907, 0, 0, 41910, 41911, 41912, 0, 41914, 0, 41916, 41917, 41918, 41919, 41920, 41921, 41922, 0, 0, 0, 0, 41927, 0, 41929, 41930, 41931, 41932, 0, 0, 41935, 41936, 41937, 0, 41939, 41940, 0, 41942, 0, 41944, 0, 41946, 41947, 0, 0, 0, 41951, 41952, 41953, 41954, 41955, 0, 41957, 0, 0, 41960, 41961, 41962, 41963, 41964, 0, 0, 0, 0, 41969, 41970, 0, 41972, 41973, 41974, 0, 41976, 41977, 41978, 41979, 41980, 41981, 41982, 41983, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p224: 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 48578, 48578, 46960, 29913, 44911, 48578, 20125, 48578, 48578, 48578, 29407, 48578, 48578, 48578, 47683, 48578, 39454, 48578, 8265, 48578, 11747, 48578, 27902, 48578, 48578, 48578, 17037, 48578, 48578, 48578, 10600, 31282, 48578, 48578, 48578, 48578, 48578, 48578, 8562, 48578, 48578, 31242, 48578, 47284, 48578, 48578, 48578, 48578, 48578, 48578, 14521, 8874, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 9244, 32765, 48578, 48578, 48578, 48578, 48578, 13340, 32254, 21621, 42266, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 39207, 48578, 48578, 45439, 48578, 48578, 48578, 48578, 48578, 48578, 12344, 48578, 38535, 37358, 48578, 18105, 48578, 48578, 48578, 48578, 38795, 48578, 48578, 48578, 48578, 23522, 48578, 14686, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 18252, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 39325, 48578, 48578, 33532, 48578, 48578, 48578, 14742, 48578, 48578, 12123, 48578, 15211, 48578, 11244, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 13376, 23695, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 39019, 48578, 48578, 48578, 48578, 48578, 8786, 44631, 35484, 39027, 48578, 48578, 48578, 48578, 30287, 48578, 33560, 48578, 48578, 48578, 48578, 20751, 48578, 42910, 48578, 48578, 37568, 19688, 48578, 37575, 37212, 48578, 48578, 48578, 7503, 48578, 36492, 10706, 48578, 48578, 48578, 32404, 48578, 33047, 43385, 29688, 11670, 36846, 43466, 48578, 48578, 15929, 36617, 46508, 47335, 48578, 42677, 22983, 35054, 48578, 48578, 48578, 12907, 48578, 48578, 48578, 48578, 40100, 48578, 39857, 16738, 37407, 14957, 38462, 48578, 48578, 40698, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 44011, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 41984, 41985, 0, 0, 0, 41989, 0, 41991, 41992, 41993, 0, 41995, 41996, 41997, 0, 41999, 0, 42001, 0, 42003, 0, 42005, 0, 42007, 42008, 42009, 0, 42011, 42012, 42013, 0, 0, 42016, 42017, 42018, 42019, 42020, 42021, 0, 42023, 42024, 0, 42026, 0, 42028, 42029, 42030, 42031, 42032, 42033, 0, 0, 42036, 42037, 42038, 42039, 42040, 42041, 42042, 42043, 42044, 42045, 0, 0, 42048, 42049, 42050, 42051, 42052, 0, 0, 0, 0, 42057, 42058, 42059, 42060, 42061, 42062, 42063, 42064, 42065, 42066, 0, 42068, 42069, 0, 42071, 42072, 42073, 42074, 42075, 42076, 0, 42078, 0, 0, 42081, 0, 42083, 42084, 42085, 42086, 0, 42088, 42089, 42090, 42091, 0, 42093, 0, 42095, 42096, 42097, 42098, 42099, 42100, 42101, 42102, 42103, 42104, 0, 42106, 42107, 42108, 42109, 42110, 42111, 42112, 42113, 42114, 42115, 42116, 42117, 0, 42119, 42120, 0, 42122, 42123, 42124, 0, 42126, 42127, 0, 42129, 0, 42131, 0, 42133, 42134, 42135, 42136, 42137, 42138, 42139, 42140, 0, 0, 42143, 42144, 42145, 42146, 42147, 42148, 42149, 42150, 42151, 42152, 0, 42154, 42155, 42156, 42157, 42158, 0, 0, 0, 0, 42163, 42164, 42165, 42166, 0, 42168, 0, 42170, 42171, 42172, 42173, 0, 42175, 0, 42177, 42178, 0, 0, 42181, 0, 0, 42184, 42185, 42186, 0, 42188, 0, 0, 42191, 42192, 42193, 0, 42195, 0, 0, 0, 0, 0, 0, 42202, 42203, 0, 0, 0, 0, 42208, 0, 0, 0, 42212, 42213, 42214, 0, 42216, 42217, 42218, 42219, 0, 42221, 0, 0, 0, 0, 0, 42227, 42228, 0, 42230, 42231, 42232, 42233, 42234, 42235, 42236, 42237, 42238, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p225: 2, 1, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 48578, 25287, 41871, 48578, 48578, 13395, 30758, 36208, 17233, 48578, 10720, 35060, 48578, 48578, 48578, 48578, 48578, 32276, 48578, 48578, 17318, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32799, 30766, 22381, 44271, 9752, 10640, 44544, 48578, 9052, 48578, 11736, 47408, 48578, 44557, 48578, 48578, 48578, 48578, 22138, 25587, 33213, 44567, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 34716, 48578, 48578, 48578, 48578, 48578, 44915, 48578, 48578, 46014, 48578, 48578, 34717, 48578, 11205, 46019, 33142, 39363, 48578, 11962, 27209, 12820, 48578, 48578, 48578, 47012, 7607, 48578, 48578, 48578, 48578, 48578, 48578, 40655, 48578, 29934, 48578, 20783, 23051, 33064, 39648, 45774, 13073, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 42763, 48578, 48578, 19054, 33596, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 10978, 42778, 40299, 47054, 36689, 48578, 30098, 39486, 48578, 48578, 39379, 35344, 48578, 11934, 48578, 48578, 48578, 48578, 48578, 35105, 48578, 48578, 48578, 17765, 48578, 39683, 48578, 44071, 48578, 44694, 48578, 48578, 35851, 48578, 22242, 28320, 48578, 12977, 48578, 42896, 8395, 48578, 48578, 48578, 48578, 48578, 48578, 40721, 42912, 32877, 48578, 16128, 48578, 48578, 42913, 48578, 48578, 48578, 48578, 46869, 40370, 48578, 19732, 48578, 39291, 48578, 48578, 48578, 46087, 28418, 40204, 48578, 48578, 48578, 42927, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 15343, 48578, 33790, 48578, 44799, 14548, 48578, 15088, 38586, 38692, 17953, 48578, 48578, 48578, 19737, 10193, 48578, 48578, 48578, 48578, 27844, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 42240, 0, 0, 42243, 42244, 0, 0, 0, 0, 42249, 0, 0, 42252, 42253, 42254, 42255, 42256, 0, 42258, 42259, 0, 42261, 42262, 42263, 42264, 42265, 42266, 42267, 42268, 42269, 42270, 0, 0, 0, 0, 0, 0, 0, 42278, 0, 42280, 0, 0, 42283, 0, 42285, 42286, 42287, 42288, 0, 0, 0, 0, 42293, 42294, 42295, 42296, 42297, 42298, 42299, 42300, 42301, 42302, 42303, 42304, 42305, 42306, 42307, 42308, 0, 42310, 42311, 42312, 42313, 42314, 0, 42316, 42317, 0, 42319, 42320, 0, 42322, 0, 0, 0, 0, 42327, 0, 0, 0, 42331, 42332, 42333, 0, 0, 42336, 42337, 42338, 42339, 42340, 42341, 0, 42343, 0, 42345, 0, 0, 0, 0, 0, 0, 42352, 42353, 42354, 42355, 42356, 42357, 42358, 0, 42360, 42361, 0, 0, 42364, 42365, 42366, 42367, 42368, 42369, 42370, 42371, 0, 0, 0, 0, 0, 42377, 0, 0, 42380, 42381, 0, 0, 42384, 0, 42386, 42387, 42388, 42389, 42390, 0, 42392, 42393, 42394, 0, 42396, 0, 42398, 0, 42400, 0, 42402, 42403, 0, 42405, 0, 0, 42408, 0, 42410, 0, 0, 42413, 42414, 42415, 42416, 42417, 42418, 0, 0, 0, 42422, 0, 42424, 42425, 0, 42427, 42428, 42429, 42430, 0, 0, 42433, 0, 42435, 0, 42437, 42438, 42439, 0, 0, 0, 42443, 42444, 42445, 0, 42447, 42448, 42449, 42450, 42451, 42452, 42453, 42454, 42455, 42456, 42457, 42458, 42459, 42460, 42461, 42462, 42463, 42464, 42465, 42466, 42467, 42468, 42469, 42470, 42471, 42472, 42473, 42474, 0, 42476, 0, 42478, 0, 0, 42481, 0, 0, 0, 0, 42486, 42487, 42488, 0, 0, 42491, 42492, 42493, 42494, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p226: 1, 2, 2, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2, 1, 2, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 29538, 48578, 48578, 28002, 31847, 26878, 48578, 12175, 48578, 39210, 33852, 36249, 17876, 8419, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 28527, 48578, 31309, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32906, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 20541, 9741, 27337, 48578, 48578, 42980, 48578, 35561, 48578, 38599, 40994, 48578, 48578, 38946, 48578, 42834, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 28332, 48578, 48578, 38050, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 22488, 48578, 48578, 25736, 26138, 47733, 48578, 48578, 48578, 48578, 48578, 48578, 46905, 48578, 40560, 48578, 16081, 21196, 39608, 19772, 12124, 48578, 23806, 14896, 21867, 48578, 48578, 48578, 48578, 27571, 39223, 48578, 48578, 48578, 48578, 35247, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 46906, 48578, 18328, 22854, 48578, 35600, 28580, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 36264, 47558, 48578, 48578, 48578, 48578, 48578, 12188, 48578, 31879, 41515, 48578, 39434, 48578, 48578, 28449, 48578, 48578, 48578, 46824, 8891, 48578, 48578, 48578, 10990, 23585, 13396, 32384, 39804, 48578, 39969, 37609, 32880, 37774, 28585, 48578, 7752, 41516, 48578, 48578, 48578, 48578, 48578, 34906, 43471, 48578, 44523, 48578, 48578, 48578, 48578, 48578, 24118, 19253, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 42497, 42498, 0, 0, 0, 42502, 0, 42504, 0, 0, 0, 0, 0, 42510, 42511, 42512, 42513, 42514, 42515, 42516, 42517, 42518, 42519, 42520, 42521, 42522, 42523, 42524, 0, 42526, 0, 42528, 42529, 42530, 42531, 42532, 42533, 42534, 0, 42536, 42537, 42538, 42539, 42540, 42541, 42542, 42543, 42544, 42545, 42546, 42547, 42548, 42549, 42550, 42551, 0, 0, 0, 42555, 42556, 0, 42558, 0, 42560, 0, 0, 42563, 42564, 0, 42566, 0, 42568, 42569, 42570, 42571, 42572, 42573, 42574, 42575, 0, 42577, 42578, 0, 42580, 42581, 42582, 42583, 42584, 42585, 42586, 42587, 42588, 42589, 42590, 42591, 42592, 42593, 42594, 42595, 42596, 42597, 42598, 42599, 42600, 42601, 42602, 42603, 42604, 42605, 0, 42607, 42608, 0, 0, 0, 42612, 42613, 42614, 42615, 42616, 42617, 0, 42619, 0, 42621, 0, 0, 0, 0, 0, 42627, 0, 0, 0, 42631, 42632, 42633, 42634, 0, 0, 42637, 42638, 42639, 42640, 0, 42642, 42643, 42644, 42645, 42646, 42647, 42648, 42649, 42650, 42651, 42652, 42653, 42654, 42655, 42656, 42657, 42658, 42659, 42660, 42661, 42662, 42663, 0, 42665, 0, 0, 42668, 0, 0, 42671, 42672, 42673, 42674, 42675, 42676, 42677, 42678, 42679, 42680, 42681, 0, 0, 42684, 42685, 42686, 42687, 42688, 0, 42690, 0, 0, 42693, 0, 42695, 42696, 0, 42698, 42699, 42700, 0, 0, 42703, 42704, 42705, 0, 0, 0, 0, 0, 42711, 0, 0, 0, 0, 0, 42717, 0, 0, 42720, 42721, 42722, 42723, 42724, 0, 0, 42727, 0, 42729, 42730, 42731, 42732, 42733, 0, 0, 42736, 42737, 42738, 42739, 42740, 42741, 42742, 42743, 42744, 42745, 42746, 42747, 42748, 42749, 42750, 42751, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p227: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 1, 1, 2, 1, 2, 2, 1, 1, 1, 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 2, 1, 2, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 7932, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 38746, 48578, 21515, 48578, 48578, 40248, 30931, 29146, 40543, 13949, 19705, 38538, 28004, 41878, 30767, 28106, 10849, 18005, 48578, 33246, 48578, 28340, 48578, 48578, 10631, 10632, 23230, 48578, 20083, 37048, 17826, 13603, 48578, 48578, 39237, 47222, 19259, 10972, 12194, 48578, 48578, 26903, 42338, 48578, 48578, 48578, 48578, 48578, 21966, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 34353, 48578, 48578, 43413, 48578, 48578, 48578, 16413, 38621, 48578, 48578, 48578, 17099, 36446, 48578, 17827, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32523, 48578, 42722, 48578, 37281, 48578, 48578, 48578, 31746, 17162, 48578, 30774, 48578, 48578, 19265, 36451, 29718, 48578, 48578, 16093, 48578, 40260, 48578, 27395, 15867, 35676, 39772, 48578, 34524, 48578, 48578, 15263, 48578, 48578, 48578, 48578, 48578, 47645, 25588, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 44034, 48578, 48578, 48578, 48578, 10635, 13783, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 24163, 42123, 24164, 48578, 48578, 25917, 28035, 35470, 7330, 48578, 48578, 22863, 48578, 46229, 7331, 36277, 48578, 26189, 37176, 8327, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 19026, 18587, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 42752, 42753, 42754, 42755, 42756, 42757, 42758, 42759, 42760, 42761, 42762, 42763, 42764, 42765, 42766, 42767, 42768, 42769, 42770, 42771, 42772, 42773, 42774, 0, 42776, 42777, 42778, 42779, 42780, 42781, 42782, 42783, 42784, 42785, 42786, 0, 42788, 0, 42790, 42791, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42805, 0, 42807, 0, 42809, 42810, 0, 0, 0, 42814, 0, 0, 0, 0, 42819, 42820, 0, 0, 0, 0, 0, 42826, 42827, 0, 0, 42830, 42831, 42832, 42833, 42834, 0, 42836, 42837, 42838, 42839, 42840, 42841, 42842, 42843, 42844, 42845, 42846, 42847, 42848, 42849, 42850, 42851, 42852, 42853, 42854, 42855, 42856, 42857, 42858, 42859, 0, 42861, 42862, 0, 42864, 42865, 42866, 0, 0, 42869, 42870, 42871, 0, 0, 42874, 0, 42876, 42877, 42878, 42879, 42880, 42881, 42882, 42883, 42884, 42885, 42886, 0, 42888, 0, 42890, 0, 42892, 42893, 42894, 0, 0, 42897, 0, 42899, 42900, 0, 0, 0, 42904, 42905, 0, 42907, 0, 42909, 0, 0, 0, 0, 42914, 0, 42916, 42917, 0, 42919, 42920, 42921, 42922, 42923, 0, 0, 42926, 42927, 42928, 42929, 42930, 42931, 42932, 42933, 42934, 42935, 42936, 42937, 42938, 42939, 42940, 42941, 42942, 42943, 42944, 42945, 42946, 42947, 42948, 0, 42950, 42951, 42952, 42953, 0, 0, 42956, 42957, 42958, 42959, 42960, 42961, 42962, 42963, 42964, 42965, 42966, 42967, 42968, 42969, 42970, 42971, 42972, 42973, 42974, 42975, 42976, 42977, 0, 0, 0, 42981, 42982, 0, 0, 0, 0, 42987, 42988, 0, 42990, 0, 0, 0, 42994, 0, 0, 0, 42998, 42999, 43000, 43001, 43002, 43003, 43004, 43005, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p228: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 2, 2, 2, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 23388, 48578, 40400, 48578, 48578, 48578, 33247, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 34661, 32338, 7672, 37222, 48578, 48578, 48578, 15475, 8869, 48578, 36130, 48578, 39819, 48578, 34932, 9196, 48578, 26584, 12566, 48578, 16902, 17761, 38837, 12567, 43154, 48578, 8329, 48578, 16363, 12026, 33287, 48578, 48578, 48578, 15972, 44612, 28120, 48578, 24457, 47030, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 46157, 48578, 48578, 48578, 19422, 32924, 48578, 48578, 48578, 11005, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 20960, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 10207, 46237, 48578, 48578, 48578, 48578, 35314, 43833, 48578, 48578, 30801, 47915, 48578, 48578, 22434, 48578, 42499, 48578, 30802, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 40625, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 42609, 11114, 48578, 48578, 48578, 37153, 7348, 30038, 48578, 48578, 25078, 27461, 7349, 48578, 27830, 38106, 43795, 28549, 48578, 48578, 48578, 9222, 48578, 25595, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32982, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 26122, 9809, 48578, 48578, 11287, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 43008, 43009, 43010, 43011, 43012, 43013, 43014, 43015, 43016, 43017, 43018, 43019, 43020, 43021, 43022, 43023, 43024, 43025, 43026, 43027, 43028, 43029, 43030, 43031, 43032, 43033, 43034, 0, 43036, 0, 43038, 43039, 43040, 0, 43042, 43043, 43044, 43045, 43046, 43047, 43048, 43049, 43050, 0, 0, 0, 0, 43055, 43056, 43057, 0, 0, 43060, 0, 43062, 0, 43064, 0, 0, 43067, 0, 0, 43070, 0, 0, 0, 0, 0, 43076, 0, 43078, 0, 0, 0, 43082, 43083, 43084, 0, 0, 0, 43088, 0, 0, 43091, 43092, 43093, 43094, 43095, 43096, 43097, 43098, 43099, 43100, 43101, 43102, 43103, 43104, 43105, 43106, 43107, 43108, 43109, 43110, 43111, 43112, 43113, 43114, 43115, 43116, 43117, 43118, 43119, 0, 43121, 43122, 43123, 0, 0, 43126, 43127, 43128, 0, 43130, 43131, 43132, 43133, 43134, 43135, 43136, 43137, 0, 43139, 43140, 43141, 43142, 43143, 43144, 43145, 43146, 43147, 0, 0, 43150, 43151, 43152, 43153, 0, 0, 43156, 43157, 0, 0, 43160, 43161, 0, 43163, 0, 43165, 0, 43167, 43168, 43169, 43170, 43171, 43172, 43173, 43174, 43175, 43176, 43177, 43178, 43179, 43180, 43181, 43182, 43183, 43184, 43185, 43186, 43187, 43188, 43189, 43190, 43191, 43192, 0, 43194, 43195, 43196, 43197, 43198, 43199, 43200, 43201, 43202, 43203, 43204, 43205, 43206, 43207, 43208, 0, 0, 43211, 43212, 43213, 0, 0, 0, 43217, 43218, 0, 0, 0, 43222, 0, 0, 0, 0, 43227, 43228, 43229, 0, 43231, 0, 43233, 43234, 43235, 43236, 43237, 43238, 43239, 43240, 43241, 43242, 43243, 43244, 43245, 43246, 43247, 43248, 43249, 43250, 0, 43252, 43253, 43254, 43255, 43256, 43257, 43258, 0, 0, 43261, 43262, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p229: 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 48578, 33254, 24210, 48578, 35083, 48578, 24514, 48578, 48578, 48578, 48578, 39151, 48578, 41597, 12086, 48578, 25521, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 27152, 48578, 45990, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 47750, 48578, 48578, 27565, 48578, 24536, 48578, 21826, 48578, 48578, 48578, 40331, 40332, 25721, 25657, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 36293, 47612, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 9974, 39560, 48578, 48578, 43721, 29555, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 40178, 48578, 20799, 48578, 48578, 48578, 10957, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 17575, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 37285, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 17964, 48578, 48578, 26674, 48578, 21142, 48578, 32028, 13507, 31841, 45273, 48578, 34000, 45274, 48578, 48578, 42824, 48578, 48578, 48578, 48578, 18459, 48578, 48578, 48578, 48578, 22440, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 44969, 28575, 34899, 48578, 38330, 48578, 48578, 48578, 9492, 48578, 20111, 48578, 27584, 33718, 48578, 32744, 15642, 48578, 48578, 48578, 48578, 31211, 48578, 34560, 47883, 48578, 48578, 48578, 48578, 48578, 48578, 34119, 48578, 36447, 48578, 48578, 48578, 48578, 45692, 45857, 48578, 48578, 48578, 48578, 48578, 14914, 27591, 48578, 45579, 48578, 48578, 48578, 47013, 30947, 17344, 15964, 48578, 48578, 48578, 48578, 48578, 48578, 9500, 48578, 17039, 20607, 48578, 43825, 7547, 48578, 48578, 48578, 48578, 48578, 48578, 45700, 48578, 39119, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 43264, 0, 0, 43267, 0, 43269, 0, 43271, 43272, 43273, 43274, 0, 43276, 0, 0, 43279, 0, 43281, 43282, 43283, 43284, 43285, 43286, 43287, 0, 43289, 0, 43291, 43292, 43293, 43294, 43295, 43296, 43297, 43298, 43299, 0, 43301, 43302, 0, 43304, 0, 43306, 0, 43308, 43309, 43310, 0, 0, 0, 0, 43315, 43316, 43317, 43318, 43319, 43320, 43321, 43322, 43323, 43324, 43325, 43326, 43327, 43328, 43329, 0, 0, 43332, 43333, 43334, 43335, 43336, 43337, 43338, 0, 0, 43341, 43342, 0, 0, 43345, 43346, 43347, 43348, 43349, 43350, 43351, 0, 43353, 0, 43355, 43356, 43357, 0, 43359, 43360, 43361, 43362, 43363, 43364, 43365, 43366, 43367, 43368, 43369, 43370, 43371, 43372, 43373, 43374, 43375, 43376, 43377, 43378, 0, 43380, 43381, 43382, 43383, 43384, 43385, 43386, 43387, 43388, 0, 43390, 43391, 43392, 43393, 43394, 43395, 43396, 0, 43398, 43399, 0, 43401, 0, 43403, 0, 0, 0, 0, 43408, 0, 0, 43411, 43412, 0, 43414, 43415, 43416, 43417, 0, 43419, 43420, 43421, 43422, 0, 43424, 43425, 43426, 43427, 43428, 43429, 43430, 43431, 43432, 43433, 43434, 43435, 43436, 43437, 43438, 43439, 0, 0, 0, 43443, 0, 43445, 43446, 43447, 0, 43449, 0, 43451, 0, 0, 43454, 0, 0, 43457, 43458, 43459, 43460, 0, 43462, 0, 0, 43465, 43466, 43467, 43468, 43469, 43470, 0, 43472, 0, 43474, 43475, 43476, 43477, 0, 0, 43480, 43481, 43482, 43483, 43484, 0, 0, 43487, 0, 43489, 43490, 43491, 0, 0, 0, 0, 43496, 43497, 43498, 43499, 43500, 43501, 0, 43503, 0, 0, 43506, 0, 0, 43509, 43510, 43511, 43512, 43513, 43514, 0, 43516, 0, 43518, 43519, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p22A: 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 1, 1, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 1, 48578, 40777, 38552, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 22193, 19436, 48578, 10887, 48578, 37648, 48578, 27603, 45587, 48578, 48578, 48578, 48578, 21006, 34229, 48578, 38914, 48578, 14274, 48578, 48578, 48578, 18298, 18302, 48578, 24340, 48578, 48578, 11224, 48578, 48578, 42569, 26863, 40726, 47147, 48578, 42952, 48578, 48578, 48578, 48578, 48578, 48578, 24900, 48578, 48578, 48578, 48578, 20109, 20232, 21713, 48578, 48578, 47549, 48578, 48578, 48578, 38530, 48578, 48578, 48578, 48578, 48578, 48578, 22696, 22663, 24421, 8374, 15947, 48578, 40748, 33377, 25317, 22624, 48578, 48578, 48578, 48578, 48578, 9197, 8652, 34732, 30619, 33628, 48578, 48578, 48578, 19335, 48578, 31348, 48578, 48578, 48578, 48578, 48578, 42914, 22077, 46047, 48578, 40428, 48578, 48578, 48578, 48578, 37296, 17147, 39292, 48578, 37331, 42643, 48578, 48578, 48578, 48578, 48578, 48578, 11875, 48578, 48578, 48578, 20467, 28237, 48578, 48578, 29663, 48578, 20874, 41164, 18149, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 44080, 29059, 42435, 48578, 48578, 43520, 48578, 22816, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 39844, 39700, 48578, 48578, 48578, 48578, 28330, 48578, 46067, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 20880, 48578, 48578, 29061, 33568, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 20004, 48578, 48578, 48578, 48578, 47311, 32739, 48578, 48578, 25963, 33051, 29069, 48578, 9132, 46193, 48578, 31562, 48578, 11595, 48311, 48578, 38331, 38528, 48578, 48578, 28747, 48578, 48578, 48578, 39336, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 43520, 0, 0, 43523, 43524, 43525, 43526, 43527, 43528, 43529, 43530, 43531, 43532, 43533, 43534, 0, 0, 43537, 0, 43539, 0, 43541, 0, 0, 43544, 43545, 43546, 43547, 0, 0, 43550, 0, 43552, 0, 43554, 43555, 43556, 0, 0, 43559, 0, 43561, 43562, 0, 43564, 43565, 0, 0, 0, 0, 43570, 0, 43572, 43573, 43574, 43575, 43576, 43577, 0, 43579, 43580, 43581, 43582, 0, 0, 0, 43586, 43587, 0, 43589, 43590, 43591, 0, 43593, 43594, 43595, 43596, 43597, 43598, 0, 0, 0, 0, 0, 43604, 0, 0, 0, 0, 43609, 43610, 43611, 43612, 43613, 0, 0, 0, 0, 0, 43619, 43620, 43621, 0, 43623, 0, 43625, 43626, 43627, 43628, 43629, 0, 0, 0, 43633, 0, 43635, 43636, 43637, 43638, 0, 0, 0, 43642, 0, 0, 43645, 43646, 43647, 43648, 43649, 43650, 0, 43652, 43653, 43654, 0, 0, 43657, 43658, 0, 43660, 0, 0, 0, 43664, 43665, 43666, 43667, 43668, 43669, 43670, 43671, 43672, 43673, 43674, 43675, 43676, 43677, 43678, 43679, 43680, 43681, 43682, 43683, 43684, 0, 0, 0, 43688, 43689, 0, 43691, 0, 43693, 43694, 43695, 43696, 43697, 43698, 43699, 43700, 43701, 0, 0, 43704, 43705, 43706, 43707, 0, 43709, 0, 43711, 43712, 43713, 43714, 43715, 43716, 43717, 43718, 43719, 43720, 43721, 43722, 43723, 43724, 43725, 43726, 43727, 0, 43729, 43730, 0, 0, 43733, 43734, 43735, 43736, 43737, 43738, 43739, 43740, 43741, 43742, 43743, 43744, 43745, 0, 43747, 43748, 43749, 43750, 0, 0, 43753, 43754, 0, 0, 0, 43758, 0, 0, 43761, 0, 43763, 0, 0, 43766, 0, 0, 43769, 43770, 0, 43772, 43773, 43774, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p22B: 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 2, 17885, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 36821, 21150, 48578, 48578, 48578, 48578, 20900, 17712, 36999, 46205, 30035, 21197, 28290, 48578, 48578, 48578, 48578, 13898, 48578, 38726, 40226, 48578, 39077, 23807, 13739, 19773, 9744, 11012, 48578, 15753, 48578, 48578, 48578, 48578, 48578, 39745, 12608, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 8720, 39858, 40385, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 44424, 39435, 24119, 31076, 48578, 48578, 27011, 48578, 31258, 41518, 48578, 30838, 31786, 48578, 7933, 46522, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 45575, 34735, 48578, 48578, 33245, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 25975, 48578, 48578, 48578, 40112, 48578, 15364, 45824, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 45578, 48578, 13750, 48578, 12737, 44545, 48578, 26183, 48578, 37671, 41191, 20682, 44948, 46962, 37961, 48578, 15948, 21807, 48578, 41764, 12130, 26904, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 43777, 43778, 43779, 43780, 43781, 43782, 43783, 43784, 43785, 43786, 43787, 43788, 43789, 43790, 43791, 43792, 43793, 43794, 43795, 43796, 43797, 43798, 43799, 43800, 43801, 43802, 43803, 43804, 43805, 43806, 43807, 43808, 43809, 43810, 43811, 43812, 43813, 43814, 43815, 43816, 43817, 43818, 0, 0, 43821, 43822, 43823, 43824, 0, 0, 0, 0, 0, 0, 0, 43832, 43833, 43834, 43835, 0, 43837, 0, 0, 43840, 0, 0, 0, 0, 0, 0, 43847, 0, 43849, 43850, 43851, 43852, 43853, 0, 0, 43856, 43857, 43858, 43859, 43860, 43861, 43862, 43863, 43864, 43865, 43866, 43867, 43868, 43869, 43870, 43871, 43872, 43873, 43874, 43875, 43876, 0, 0, 0, 43880, 43881, 43882, 43883, 43884, 43885, 43886, 43887, 43888, 43889, 43890, 43891, 43892, 43893, 43894, 43895, 43896, 43897, 43898, 43899, 43900, 43901, 43902, 43903, 43904, 0, 0, 0, 0, 43909, 43910, 0, 43912, 0, 0, 43915, 0, 0, 43918, 0, 0, 43921, 43922, 43923, 43924, 43925, 43926, 43927, 43928, 43929, 0, 0, 43932, 43933, 0, 43935, 43936, 43937, 43938, 43939, 43940, 43941, 43942, 43943, 43944, 43945, 43946, 43947, 43948, 43949, 43950, 43951, 43952, 43953, 43954, 43955, 43956, 43957, 43958, 43959, 43960, 43961, 43962, 43963, 43964, 43965, 43966, 43967, 43968, 43969, 43970, 43971, 43972, 0, 43974, 43975, 43976, 0, 43978, 0, 0, 43981, 43982, 43983, 43984, 43985, 43986, 43987, 43988, 43989, 43990, 43991, 43992, 43993, 43994, 43995, 43996, 43997, 43998, 43999, 44000, 44001, 44002, 44003, 44004, 44005, 44006, 44007, 44008, 0, 44010, 0, 44012, 0, 0, 44015, 0, 44017, 0, 0, 0, 0, 0, 0, 44024, 0, 0, 44027, 0, 0, 0, 44031, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p22C: 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 48578, 48578, 48578, 48578, 48578, 48578, 15247, 7257, 48578, 48578, 41007, 48578, 15760, 7391, 48578, 48578, 48578, 48578, 19572, 48578, 48578, 48578, 48578, 48578, 29780, 46834, 48578, 48578, 29118, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 29372, 48578, 42723, 48578, 48578, 20920, 48578, 47996, 48578, 20084, 37526, 48578, 48578, 20085, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 10029, 48578, 35615, 35616, 19585, 35098, 48578, 36316, 29720, 30195, 48578, 48578, 48578, 48578, 48578, 27397, 48578, 48578, 48578, 48578, 48578, 42466, 48578, 31603, 21221, 48578, 48578, 22060, 48578, 48578, 44763, 32898, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 7878, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 8933, 48578, 48578, 48578, 38079, 45478, 31439, 35151, 25918, 48578, 48578, 48578, 13248, 11309, 8518, 47467, 26505, 14769, 30019, 43542, 41138, 48578, 7608, 47899, 48325, 48578, 48578, 8381, 48578, 48578, 48578, 48578, 48578, 23785, 48578, 36455, 48578, 48578, 48578, 48578, 48578, 36677, 20148, 48578, 48578, 48578, 48578, 36929, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 13937, 13468, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 44032, 44033, 44034, 44035, 44036, 44037, 0, 0, 44040, 44041, 0, 44043, 0, 0, 44046, 44047, 44048, 44049, 0, 44051, 44052, 44053, 44054, 44055, 0, 0, 44058, 44059, 0, 44061, 44062, 44063, 44064, 44065, 44066, 44067, 44068, 44069, 44070, 44071, 44072, 44073, 44074, 44075, 44076, 44077, 44078, 44079, 44080, 44081, 44082, 44083, 44084, 44085, 44086, 44087, 44088, 44089, 44090, 44091, 44092, 44093, 44094, 0, 44096, 0, 44098, 44099, 0, 44101, 0, 44103, 0, 0, 44106, 44107, 0, 44109, 44110, 44111, 44112, 44113, 44114, 44115, 44116, 44117, 44118, 44119, 44120, 44121, 44122, 44123, 44124, 44125, 44126, 0, 44128, 0, 0, 0, 0, 44133, 0, 0, 0, 44137, 44138, 44139, 44140, 44141, 0, 44143, 44144, 44145, 44146, 44147, 0, 44149, 0, 0, 44152, 44153, 0, 44155, 44156, 0, 0, 44159, 44160, 44161, 44162, 44163, 44164, 44165, 44166, 44167, 44168, 44169, 44170, 44171, 44172, 44173, 44174, 44175, 44176, 44177, 44178, 44179, 0, 44181, 44182, 44183, 44184, 44185, 44186, 44187, 44188, 44189, 44190, 44191, 44192, 44193, 44194, 44195, 44196, 44197, 44198, 44199, 44200, 44201, 44202, 44203, 44204, 44205, 44206, 44207, 0, 44209, 44210, 44211, 0, 0, 0, 0, 0, 44217, 44218, 44219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44229, 0, 0, 0, 44233, 44234, 0, 44236, 44237, 44238, 44239, 44240, 0, 44242, 0, 44244, 44245, 44246, 44247, 44248, 0, 0, 44251, 44252, 44253, 44254, 0, 44256, 44257, 44258, 44259, 44260, 44261, 44262, 44263, 44264, 44265, 44266, 44267, 44268, 44269, 44270, 44271, 44272, 44273, 44274, 44275, 44276, 44277, 44278, 44279, 44280, 44281, 44282, 44283, 44284, 0, 0, 44287, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p22D: 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 1, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 48578, 48578, 8682, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 47032, 48578, 14872, 48578, 48578, 48578, 22540, 47033, 45793, 8539, 23052, 48578, 7882, 22065, 31998, 48578, 30449, 23934, 40142, 36039, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 35154, 48578, 8176, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 42131, 20281, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 45479, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 47636, 48578, 48578, 14509, 48578, 33782, 48578, 31764, 48578, 30254, 48578, 36706, 33393, 45255, 48578, 48578, 48578, 28721, 16591, 11987, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 31381, 48578, 13260, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 30036, 11652, 48578, 7951, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 43560, 48578, 48578, 48578, 39550, 48578, 48578, 42871, 27561, 13742, 47372, 48578, 22812, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 46032, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 25522, 48578, 46858, 10052, 13627, 44867, 48578, 48578, 35662, 20995, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 44288, 44289, 0, 44291, 44292, 44293, 44294, 44295, 44296, 44297, 44298, 44299, 44300, 44301, 44302, 44303, 44304, 44305, 44306, 44307, 44308, 44309, 44310, 44311, 44312, 44313, 44314, 44315, 44316, 44317, 44318, 44319, 0, 44321, 0, 44323, 44324, 44325, 0, 0, 0, 0, 0, 44331, 0, 0, 0, 44335, 0, 0, 0, 0, 44340, 44341, 44342, 44343, 44344, 44345, 44346, 44347, 0, 44349, 0, 44351, 44352, 44353, 44354, 44355, 44356, 44357, 44358, 0, 0, 44361, 44362, 44363, 44364, 44365, 44366, 44367, 44368, 44369, 44370, 44371, 44372, 44373, 44374, 44375, 44376, 44377, 44378, 44379, 44380, 44381, 44382, 44383, 44384, 44385, 44386, 44387, 44388, 0, 44390, 44391, 44392, 44393, 44394, 44395, 44396, 44397, 44398, 44399, 44400, 44401, 44402, 44403, 44404, 44405, 44406, 44407, 44408, 44409, 44410, 44411, 44412, 44413, 44414, 44415, 0, 44417, 44418, 0, 44420, 0, 44422, 0, 44424, 0, 44426, 0, 0, 0, 44430, 44431, 44432, 0, 0, 0, 44436, 44437, 44438, 44439, 44440, 44441, 44442, 44443, 44444, 44445, 44446, 44447, 44448, 0, 44450, 0, 44452, 44453, 44454, 44455, 44456, 44457, 44458, 44459, 44460, 44461, 44462, 44463, 44464, 44465, 44466, 0, 0, 44469, 0, 44471, 44472, 44473, 44474, 44475, 44476, 44477, 44478, 44479, 44480, 44481, 44482, 44483, 44484, 44485, 44486, 44487, 44488, 44489, 44490, 44491, 44492, 0, 44494, 44495, 44496, 0, 44498, 44499, 0, 0, 0, 0, 44504, 0, 44506, 44507, 44508, 44509, 44510, 44511, 44512, 44513, 0, 44515, 44516, 44517, 44518, 44519, 44520, 44521, 44522, 44523, 44524, 44525, 44526, 44527, 44528, 44529, 44530, 44531, 44532, 44533, 0, 44535, 0, 0, 0, 0, 44540, 44541, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p22E: 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 1, 24515, 16213, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 7913, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 17052, 24944, 33962, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 28731, 48578, 11948, 38029, 48578, 37326, 48578, 48578, 35224, 48578, 25658, 48578, 48578, 48578, 48578, 48578, 39933, 41820, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 31683, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 38915, 48578, 44370, 48578, 46618, 40348, 9858, 14932, 48578, 17057, 48578, 21367, 23704, 39397, 48578, 48578, 25376, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 24025, 48578, 48578, 48578, 22360, 40054, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 45262, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 16625, 31467, 26487, 42373, 26242, 35802, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 26488, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 7711, 10103, 48578, 47957, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 36681, 48578, 48578, 48578, 37561, 25411, 48578, 48578, 48578, 44729, 30717, 48578, 30498, 48578, 48578, 48578, 48578, 19746, 9125, 48578, 34107, 15355, 48578, 16758, 48578, 48578, 13019, 48578, 17442, 48578, 15579, 48578, 30533, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 10573, 19000, 48578, 48578, 39242, 34211, 46988, 30573, 48578, 17165, 48578, 48578, 20710, 24473, 48578, 24979, 48578, 31287, 48578, 48578, 48578, 33075, 48578, 30475, 34100, 48578, 48578, 20875, 48578, 48578, 48578, 48578, 48578, 48578, 8120, 8638, 7645, 22276, 29691, 48578, 48578, 12390, 48578, 48578, 36054, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 44546, 44547, 44548, 44549, 44550, 44551, 44552, 44553, 44554, 44555, 0, 44557, 44558, 44559, 44560, 44561, 44562, 44563, 44564, 44565, 44566, 0, 0, 0, 44570, 44571, 44572, 44573, 44574, 44575, 44576, 44577, 44578, 0, 44580, 0, 0, 44583, 0, 44585, 44586, 0, 44588, 0, 44590, 44591, 44592, 44593, 44594, 0, 0, 44597, 44598, 44599, 44600, 44601, 44602, 44603, 44604, 44605, 44606, 44607, 44608, 44609, 44610, 0, 44612, 44613, 44614, 44615, 44616, 44617, 44618, 44619, 44620, 0, 44622, 0, 44624, 0, 0, 0, 0, 44629, 0, 44631, 0, 0, 0, 44635, 44636, 0, 44638, 44639, 44640, 44641, 44642, 44643, 44644, 44645, 44646, 44647, 44648, 44649, 44650, 44651, 44652, 44653, 0, 44655, 44656, 44657, 0, 0, 44660, 44661, 44662, 44663, 44664, 44665, 44666, 44667, 0, 44669, 44670, 44671, 44672, 44673, 44674, 44675, 0, 0, 0, 0, 0, 0, 44682, 44683, 44684, 44685, 44686, 44687, 44688, 0, 44690, 44691, 44692, 44693, 44694, 44695, 44696, 44697, 44698, 44699, 44700, 44701, 0, 0, 44704, 0, 44706, 44707, 44708, 44709, 44710, 44711, 44712, 44713, 44714, 0, 44716, 44717, 44718, 0, 0, 44721, 44722, 44723, 0, 0, 44726, 0, 44728, 44729, 44730, 44731, 0, 0, 44734, 0, 0, 44737, 0, 44739, 44740, 0, 44742, 0, 44744, 0, 44746, 0, 44748, 44749, 44750, 44751, 44752, 44753, 44754, 0, 0, 44757, 44758, 0, 0, 0, 0, 44763, 0, 44765, 44766, 0, 0, 44769, 0, 44771, 0, 44773, 44774, 44775, 0, 44777, 0, 0, 44780, 44781, 0, 44783, 44784, 44785, 44786, 44787, 44788, 0, 0, 0, 0, 0, 44794, 44795, 0, 44797, 44798, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p22F: 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 1, 1, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 23227, 22889, 48578, 22845, 48578, 48578, 48578, 48578, 48578, 34108, 34109, 19362, 8038, 48578, 48578, 48578, 22660, 23068, 48578, 48578, 48578, 48578, 27688, 48578, 48578, 24901, 14155, 15937, 48578, 48578, 48578, 37736, 13943, 48578, 48578, 30860, 18420, 48578, 17954, 48578, 48578, 29580, 48578, 20759, 48578, 48578, 48578, 48578, 31964, 48128, 47341, 23071, 48578, 33360, 48578, 19774, 37786, 30305, 41187, 48578, 33688, 48578, 48578, 48578, 48578, 48578, 23728, 46825, 36804, 48578, 48578, 12235, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 42035, 21209, 46826, 48578, 48578, 47884, 48578, 45245, 9925, 48578, 48578, 48578, 48578, 26905, 48578, 48578, 48578, 22801, 47265, 18106, 29590, 48578, 48578, 48578, 21589, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 11566, 27698, 48578, 48578, 48578, 48578, 40023, 48578, 13671, 37874, 48578, 9498, 44293, 13703, 22386, 29872, 48578, 48578, 10587, 48578, 48578, 48578, 11538, 48578, 33727, 41777, 23017, 48578, 44938, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 30574, 46545, 48578, 22711, 30575, 46846, 26012, 48578, 48578, 48578, 48578, 29724, 29152, 29470, 48578, 48578, 48578, 48578, 48578, 48578, 14724, 48578, 48578, 48578, 48578, 38195, 48578, 48578, 27120, 48578, 48578, 48578, 48578, 48578, 33554, 48578, 48578, 48578, 40623, 48578, 14045, 8850, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 43960, 48578, 26709, 48578, 24980, 48578, 48578, 40150, 26277, 31288, 12745, 48578, 10605, 10606, 48578, 48578, 48578, 48578, 48578, 11580, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 9685, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 44802, 0, 44804, 44805, 44806, 44807, 44808, 0, 0, 0, 0, 44813, 44814, 44815, 0, 0, 44818, 44819, 44820, 44821, 0, 44823, 44824, 0, 0, 0, 44828, 44829, 44830, 0, 0, 44833, 44834, 0, 0, 44837, 0, 44839, 44840, 0, 44842, 0, 44844, 44845, 44846, 44847, 0, 0, 0, 0, 44852, 0, 44854, 0, 0, 0, 0, 44859, 0, 44861, 44862, 44863, 44864, 44865, 0, 0, 0, 44869, 44870, 0, 44872, 44873, 44874, 44875, 44876, 44877, 44878, 44879, 44880, 44881, 44882, 44883, 44884, 0, 0, 0, 44888, 44889, 0, 44891, 0, 0, 44894, 44895, 44896, 44897, 0, 44899, 44900, 44901, 0, 0, 0, 0, 44906, 44907, 44908, 0, 44910, 44911, 44912, 44913, 44914, 44915, 44916, 44917, 44918, 44919, 0, 0, 44922, 44923, 44924, 44925, 0, 44927, 0, 0, 44930, 0, 0, 0, 0, 0, 44936, 44937, 0, 44939, 44940, 44941, 0, 44943, 0, 0, 0, 44947, 0, 44949, 44950, 44951, 44952, 44953, 44954, 44955, 44956, 44957, 44958, 44959, 44960, 44961, 44962, 44963, 44964, 44965, 0, 0, 44968, 0, 0, 0, 0, 44973, 44974, 44975, 44976, 0, 0, 0, 44980, 44981, 44982, 44983, 44984, 44985, 0, 44987, 44988, 44989, 44990, 0, 44992, 44993, 0, 44995, 44996, 44997, 44998, 44999, 0, 45001, 45002, 45003, 0, 45005, 0, 0, 45008, 45009, 45010, 45011, 45012, 45013, 45014, 45015, 45016, 45017, 0, 45019, 0, 45021, 0, 45023, 45024, 0, 0, 0, 0, 45029, 0, 0, 45032, 45033, 45034, 45035, 45036, 0, 45038, 45039, 45040, 45041, 45042, 45043, 45044, 45045, 45046, 45047, 0, 45049, 45050, 45051, 45052, 45053, 45054, 45055, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p230: 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 23942, 45935, 24311, 24709, 32399, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 10438, 48578, 10610, 16372, 48578, 48254, 11084, 11378, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 24067, 34875, 26208, 48578, 48578, 48578, 48578, 15335, 48578, 24553, 48578, 33174, 48578, 48578, 48578, 33132, 48578, 48578, 48578, 33086, 48578, 48578, 48578, 28853, 48578, 48578, 48384, 24324, 48578, 48578, 48578, 34613, 48578, 48578, 15338, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 8428, 48578, 48578, 48578, 12634, 48578, 48578, 48578, 48578, 34114, 48578, 48578, 48578, 15713, 36018, 48578, 48578, 48578, 48578, 26710, 48578, 48578, 24174, 48578, 48578, 8563, 48578, 48578, 48578, 29341, 48578, 43973, 48578, 48578, 48578, 48578, 21502, 48578, 16987, 24899, 48578, 48578, 38356, 30861, 13516, 48578, 25047, 48578, 20672, 48578, 25048, 48578, 48578, 48578, 48578, 48578, 36625, 48578, 48578, 16998, 48578, 29389, 31275, 48578, 12827, 45187, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 23905, 48578, 48578, 48578, 34893, 40376, 48578, 48578, 48578, 48578, 40386, 39800, 26415, 48578, 48578, 48578, 48578, 48578, 8252, 36622, 48578, 48578, 48578, 48578, 48578, 48578, 40024, 48578, 13490, 48578, 48578, 48578, 48578, 12557, 36767, 47684, 48578, 48578, 48578, 48578, 48578, 29185, 48578, 38380, 48578, 48578, 48578, 48578, 48578, 48578, 40408, 32928, 48578, 48578, 47926, 12574, 48578, 48578, 48578, 12040, 48578, 48578, 48578, 47939, 48578, 48578, 48578, 48578, 48578, 11793, 10006, 48578, 48578, 48578, 48578, 42082, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 41745, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 41750, 48578, 46459, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 29133, 41880, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 45061, 45062, 45063, 45064, 45065, 45066, 45067, 45068, 0, 45070, 0, 0, 45073, 0, 0, 0, 45077, 45078, 45079, 45080, 45081, 45082, 45083, 0, 0, 0, 45087, 45088, 45089, 45090, 0, 45092, 0, 45094, 0, 45096, 45097, 45098, 0, 45100, 45101, 45102, 0, 45104, 45105, 45106, 0, 45108, 45109, 0, 0, 45112, 45113, 45114, 0, 45116, 45117, 0, 45119, 45120, 45121, 45122, 45123, 45124, 45125, 45126, 45127, 45128, 0, 45130, 45131, 45132, 0, 45134, 45135, 45136, 45137, 0, 45139, 45140, 45141, 0, 0, 45144, 45145, 45146, 45147, 0, 45149, 45150, 0, 45152, 45153, 0, 45155, 45156, 45157, 0, 45159, 0, 45161, 45162, 45163, 45164, 0, 45166, 0, 0, 45169, 45170, 0, 0, 0, 45174, 0, 45176, 0, 45178, 0, 45180, 45181, 45182, 45183, 45184, 0, 45186, 45187, 0, 45189, 0, 0, 45192, 0, 0, 45195, 45196, 45197, 45198, 45199, 45200, 45201, 0, 45203, 45204, 45205, 0, 0, 45208, 45209, 45210, 45211, 0, 0, 0, 45215, 45216, 45217, 45218, 45219, 0, 0, 45222, 45223, 45224, 45225, 45226, 45227, 0, 45229, 0, 45231, 45232, 45233, 45234, 0, 0, 0, 45238, 45239, 45240, 45241, 45242, 0, 45244, 0, 45246, 45247, 45248, 45249, 45250, 45251, 0, 0, 45254, 45255, 0, 0, 45258, 45259, 45260, 0, 45262, 45263, 45264, 0, 45266, 45267, 45268, 45269, 45270, 0, 0, 45273, 45274, 45275, 45276, 0, 45278, 45279, 45280, 45281, 45282, 45283, 45284, 45285, 45286, 0, 45288, 45289, 45290, 45291, 45292, 45293, 45294, 45295, 45296, 45297, 45298, 0, 45300, 0, 45302, 45303, 45304, 45305, 45306, 45307, 45308, 0, 0, 45311, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p231: 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48578, 48578, 48578, 48578, 48578, 14655, 48578, 48578, 48578, 41778, 44295, 48578, 48578, 36354, 15462, 8215, 48578, 41787, 48578, 18878, 48578, 48578, 48578, 48578, 48578, 18821, 48578, 48578, 16910, 41928, 48578, 18243, 8803, 48578, 48578, 48578, 48578, 48578, 48578, 35526, 48578, 48578, 48578, 48578, 48578, 48578, 48121, 19739, 14120, 19775, 23228, 48578, 24880, 48578, 48578, 48578, 19266, 48578, 37891, 47827, 48578, 48578, 48578, 36792, 48578, 48578, 48578, 45290, 44138, 48578, 48578, 48578, 48578, 32582, 48578, 48578, 48578, 27519, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 28133, 48578, 48578, 36994, 48578, 12339, 48578, 22091, 48578, 48578, 40727, 12769, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 39795, 48578, 48578, 48578, 48578, 48578, 48578, 40612, 48578, 48578, 44087, 16542, 48578, 48578, 38712, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 17710, 48578, 48578, 48578, 48578, 13326, 48578, 48578, 25847, 48578, 40813, 48578, 47342, 39610, 18712, 9745, 34255, 15709, 29132, 7451, 48578, 48578, 48578, 40062, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 17510, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 31481, 16088, 33493, 15224, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 45576, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 12436, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 13022, 33877, 48578, 48366, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 8859, 48578, 48578, 48578, 11449, 46300, 12299, 48578, 48578, 38336, 31734, 48578, 48578, 48578, 25136, 48578, 19130, 19389, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 45312, 45313, 45314, 45315, 45316, 0, 45318, 45319, 45320, 0, 0, 45323, 45324, 0, 0, 0, 45328, 0, 45330, 0, 45332, 45333, 45334, 45335, 45336, 0, 45338, 45339, 0, 0, 45342, 0, 0, 45345, 45346, 45347, 45348, 45349, 45350, 0, 45352, 45353, 45354, 45355, 45356, 45357, 0, 0, 0, 0, 0, 45363, 0, 45365, 45366, 45367, 0, 45369, 0, 0, 45372, 45373, 45374, 0, 45376, 45377, 45378, 0, 0, 45381, 45382, 45383, 45384, 0, 45386, 45387, 45388, 0, 45390, 45391, 45392, 45393, 45394, 45395, 45396, 45397, 45398, 45399, 45400, 45401, 0, 45403, 45404, 0, 45406, 0, 45408, 0, 45410, 45411, 0, 0, 45414, 45415, 45416, 45417, 45418, 45419, 45420, 45421, 45422, 45423, 0, 45425, 45426, 45427, 45428, 45429, 45430, 0, 45432, 45433, 0, 0, 45436, 45437, 0, 45439, 45440, 45441, 45442, 45443, 45444, 45445, 45446, 45447, 0, 45449, 45450, 45451, 45452, 0, 45454, 45455, 0, 45457, 0, 45459, 0, 0, 0, 0, 0, 0, 0, 0, 45468, 45469, 45470, 0, 45472, 45473, 45474, 45475, 45476, 45477, 45478, 0, 45480, 45481, 45482, 45483, 45484, 45485, 45486, 45487, 45488, 45489, 0, 0, 0, 0, 45494, 45495, 45496, 45497, 45498, 45499, 45500, 0, 45502, 45503, 45504, 45505, 45506, 45507, 45508, 45509, 45510, 0, 45512, 45513, 45514, 45515, 45516, 45517, 45518, 45519, 45520, 45521, 45522, 45523, 45524, 45525, 0, 0, 45528, 0, 45530, 45531, 45532, 45533, 45534, 45535, 45536, 45537, 0, 45539, 45540, 45541, 0, 0, 0, 45545, 45546, 0, 0, 45549, 45550, 45551, 0, 45553, 0, 0, 45556, 45557, 45558, 45559, 45560, 45561, 45562, 45563, 45564, 45565, 45566, 45567, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p232: 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 48578, 48578, 48578, 48578, 48578, 9605, 48578, 48578, 48578, 48578, 28064, 48578, 48578, 13230, 38065, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 8726, 36418, 48578, 48578, 48578, 37057, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 16112, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 10731, 11844, 36420, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 19272, 30441, 33216, 33205, 41098, 7509, 28229, 48578, 42054, 34532, 33383, 48578, 48578, 48578, 48578, 36812, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 41536, 18816, 48578, 48578, 48578, 8937, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 29231, 9614, 48578, 7548, 48578, 26928, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 27125, 48578, 36505, 48578, 48578, 48578, 48578, 48578, 48578, 33206, 40959, 22495, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 23774, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 8872, 11815, 48578, 48578, 39470, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 37240, 48578, 48578, 48578, 48578, 44649, 12470, 43796, 48578, 46108, 48578, 30395, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 19071, 48578, 48578, 48578, 48578, 48578, 7356, 27832, 48578, 48578, 21319, 23612, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 25095, 29999, 48578, 9246, 31782, 48578, 48578, 8606, 48578, 48578, 48578, 48578, 48578, 43851, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 45568, 45569, 45570, 45571, 45572, 0, 45574, 45575, 45576, 45577, 0, 45579, 45580, 0, 0, 45583, 45584, 45585, 45586, 45587, 45588, 45589, 45590, 45591, 45592, 45593, 45594, 45595, 45596, 45597, 45598, 45599, 0, 0, 45602, 45603, 45604, 0, 45606, 45607, 45608, 45609, 45610, 45611, 45612, 45613, 45614, 45615, 45616, 45617, 45618, 45619, 45620, 45621, 0, 45623, 45624, 45625, 45626, 45627, 45628, 45629, 45630, 45631, 45632, 45633, 45634, 45635, 0, 0, 0, 45639, 45640, 45641, 45642, 45643, 45644, 45645, 45646, 45647, 45648, 45649, 0, 0, 0, 0, 0, 0, 0, 45657, 0, 0, 0, 45661, 45662, 45663, 45664, 0, 45666, 45667, 45668, 45669, 45670, 45671, 45672, 0, 0, 45675, 45676, 45677, 0, 45679, 45680, 45681, 45682, 45683, 45684, 45685, 45686, 45687, 45688, 45689, 45690, 45691, 45692, 45693, 0, 0, 45696, 0, 45698, 0, 45700, 45701, 45702, 45703, 45704, 45705, 45706, 45707, 45708, 45709, 45710, 45711, 45712, 45713, 45714, 45715, 0, 45717, 0, 45719, 45720, 45721, 45722, 45723, 45724, 0, 0, 0, 45728, 45729, 45730, 45731, 45732, 45733, 45734, 0, 45736, 45737, 45738, 45739, 45740, 45741, 45742, 45743, 45744, 45745, 45746, 45747, 45748, 45749, 0, 0, 45752, 45753, 0, 45755, 45756, 45757, 45758, 45759, 45760, 45761, 45762, 45763, 0, 45765, 45766, 45767, 45768, 0, 0, 0, 45772, 0, 45774, 0, 45776, 45777, 45778, 45779, 45780, 45781, 45782, 45783, 0, 45785, 45786, 45787, 45788, 45789, 0, 0, 45792, 45793, 0, 0, 45796, 45797, 45798, 45799, 45800, 45801, 45802, 45803, 45804, 45805, 45806, 45807, 45808, 45809, 0, 0, 45812, 0, 0, 45815, 45816, 0, 45818, 45819, 45820, 45821, 45822, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p233: 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 48578, 48578, 48578, 48578, 48578, 24554, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 28854, 48578, 12698, 48578, 48578, 48578, 18553, 48578, 48578, 48578, 45044, 48578, 48578, 11494, 48578, 24629, 48578, 46042, 25412, 11530, 48578, 48578, 48578, 48578, 48578, 48578, 9651, 41303, 48578, 48578, 48578, 21802, 19117, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 36829, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 28901, 21908, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 9841, 48578, 48578, 48578, 48578, 48578, 48578, 45431, 48578, 48578, 48578, 48578, 44724, 48578, 48578, 48578, 22735, 48578, 48578, 48578, 48578, 48578, 48578, 23116, 14712, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 45172, 31074, 48578, 48578, 48578, 32211, 48578, 48578, 48578, 30242, 48578, 29529, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 16113, 43101, 26464, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 23041, 48578, 41099, 28693, 48578, 48578, 48578, 48578, 48578, 18220, 21759, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 42522, 48578, 48578, 48578, 48578, 38917, 48578, 48578, 45040, 36139, 30075, 13882, 8112, 48578, 48578, 24967, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 43879, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 41412, 48578, 48578, 20653, 48578, 48578, 23358, 48578, 46444, 34620, 48578, 48578, 34189, 48578, 48578, 48578, 43997, 29291, 39961, 19529, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 30407, 17586, 48578, 48578, 22817, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 45824, 45825, 45826, 45827, 45828, 0, 45830, 45831, 45832, 45833, 45834, 45835, 45836, 0, 45838, 0, 45840, 45841, 45842, 0, 45844, 45845, 45846, 0, 45848, 45849, 0, 45851, 0, 45853, 0, 0, 0, 45857, 45858, 45859, 45860, 45861, 45862, 0, 0, 45865, 45866, 45867, 0, 0, 45870, 45871, 45872, 45873, 45874, 45875, 45876, 45877, 45878, 45879, 45880, 45881, 45882, 45883, 45884, 45885, 0, 45887, 45888, 45889, 45890, 45891, 45892, 45893, 0, 0, 45896, 45897, 45898, 45899, 45900, 45901, 45902, 0, 45904, 45905, 45906, 45907, 45908, 45909, 0, 45911, 45912, 45913, 45914, 0, 45916, 45917, 45918, 0, 45920, 45921, 45922, 45923, 45924, 45925, 0, 0, 45928, 45929, 45930, 45931, 45932, 45933, 45934, 0, 0, 45937, 45938, 45939, 0, 45941, 45942, 45943, 0, 45945, 0, 45947, 45948, 45949, 45950, 45951, 45952, 45953, 45954, 45955, 0, 0, 0, 45959, 45960, 45961, 45962, 45963, 45964, 45965, 45966, 45967, 45968, 0, 45970, 0, 0, 45973, 45974, 45975, 45976, 45977, 0, 0, 45980, 45981, 45982, 45983, 45984, 45985, 45986, 45987, 45988, 45989, 45990, 45991, 45992, 0, 45994, 45995, 45996, 45997, 0, 45999, 46000, 0, 0, 0, 0, 0, 46006, 46007, 0, 46009, 46010, 46011, 46012, 46013, 46014, 46015, 0, 46017, 46018, 46019, 46020, 46021, 46022, 46023, 46024, 46025, 46026, 46027, 46028, 46029, 0, 46031, 46032, 0, 46034, 46035, 0, 46037, 0, 0, 46040, 46041, 0, 46043, 46044, 46045, 0, 0, 0, 0, 46050, 46051, 46052, 46053, 46054, 46055, 46056, 46057, 46058, 46059, 46060, 46061, 46062, 46063, 46064, 46065, 46066, 46067, 46068, 46069, 0, 0, 46072, 46073, 0, 46075, 46076, 46077, 46078, 46079, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p234: 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48578, 48578, 42442, 10826, 48578, 48578, 48578, 48578, 48578, 48578, 22568, 44970, 48578, 48578, 37489, 28650, 48578, 11622, 48578, 42681, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 21625, 48578, 48578, 48578, 48578, 48578, 48578, 41989, 24108, 48578, 12247, 10967, 48578, 48578, 48578, 48578, 48578, 42700, 48578, 48578, 48578, 48578, 17311, 48578, 48578, 48578, 48578, 42580, 48578, 10998, 18329, 47632, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 31721, 14019, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 36858, 39340, 48578, 48578, 48578, 48578, 48578, 15226, 48578, 48578, 13053, 38952, 40063, 46460, 31365, 37004, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 17321, 23121, 35569, 48578, 34457, 36641, 48578, 48578, 48578, 46344, 48578, 48578, 28451, 48578, 31081, 43414, 48578, 24862, 33422, 48136, 29781, 15798, 48578, 48578, 21214, 44027, 48578, 33583, 48578, 27387, 29229, 48578, 18107, 48578, 48578, 48578, 44166, 48578, 27204, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 46080, 46081, 0, 0, 46084, 46085, 46086, 46087, 46088, 46089, 0, 0, 46092, 46093, 0, 0, 46096, 0, 46098, 0, 46100, 46101, 46102, 46103, 46104, 46105, 46106, 46107, 46108, 46109, 46110, 46111, 46112, 46113, 46114, 46115, 0, 46117, 46118, 46119, 46120, 46121, 46122, 0, 0, 46125, 0, 0, 46128, 46129, 46130, 46131, 46132, 0, 46134, 46135, 46136, 46137, 0, 46139, 46140, 46141, 46142, 0, 46144, 0, 0, 0, 46148, 46149, 46150, 46151, 46152, 46153, 46154, 46155, 46156, 46157, 46158, 46159, 46160, 46161, 46162, 46163, 46164, 46165, 46166, 46167, 46168, 46169, 46170, 46171, 46172, 46173, 46174, 46175, 46176, 46177, 46178, 46179, 46180, 46181, 0, 0, 46184, 46185, 46186, 46187, 46188, 46189, 46190, 46191, 46192, 46193, 46194, 46195, 46196, 46197, 46198, 46199, 0, 0, 46202, 46203, 46204, 46205, 46206, 0, 46208, 46209, 0, 0, 0, 0, 0, 0, 46216, 46217, 46218, 46219, 46220, 46221, 46222, 46223, 46224, 46225, 46226, 46227, 46228, 46229, 46230, 46231, 46232, 46233, 46234, 46235, 46236, 46237, 46238, 46239, 46240, 46241, 46242, 46243, 46244, 46245, 46246, 46247, 46248, 46249, 46250, 46251, 46252, 46253, 46254, 46255, 46256, 46257, 46258, 46259, 46260, 46261, 46262, 0, 0, 0, 46266, 0, 0, 46269, 46270, 46271, 0, 46273, 46274, 0, 46276, 0, 0, 46279, 0, 0, 0, 0, 0, 46285, 46286, 0, 0, 46289, 0, 46291, 0, 0, 46294, 0, 46296, 46297, 46298, 0, 46300, 0, 46302, 46303, 46304, 46305, 46306, 46307, 46308, 46309, 46310, 46311, 46312, 46313, 46314, 46315, 46316, 46317, 46318, 46319, 46320, 46321, 46322, 46323, 46324, 46325, 46326, 46327, 46328, 46329, 46330, 46331, 46332, 46333, 46334, 46335, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p235: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 1, 2, 1, 1, 1, 2, 1, 2, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 46835, 48578, 48578, 8376, 48578, 48578, 48578, 33883, 30769, 39350, 29323, 22542, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 34731, 29782, 48578, 45283, 47509, 48578, 35144, 21473, 48578, 48578, 9932, 14499, 39976, 43481, 18011, 26914, 37058, 48578, 19812, 48578, 48578, 48578, 42743, 48578, 44569, 21445, 29481, 48578, 39886, 48578, 16281, 48578, 48578, 16250, 35549, 39537, 47667, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 11054, 48578, 48578, 48578, 48578, 48578, 31267, 36355, 45114, 48578, 48578, 33500, 25061, 48578, 46841, 48578, 48578, 48578, 29271, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 21739, 23518, 48578, 48578, 48578, 48108, 48578, 32055, 16432, 22162, 46750, 7510, 31605, 29794, 48414, 48578, 31036, 48578, 12098, 48578, 19597, 36363, 32831, 48578, 17140, 41331, 48578, 8166, 46751, 48578, 13910, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 12527, 48578, 48578, 48578, 48578, 32634, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 15653, 48578, 48578, 15786, 35740, 48578, 37436, 42126, 22907, 47014, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 46336, 46337, 46338, 46339, 46340, 46341, 46342, 46343, 46344, 46345, 46346, 46347, 46348, 46349, 46350, 46351, 0, 46353, 46354, 0, 46356, 46357, 46358, 0, 0, 0, 0, 0, 46364, 46365, 46366, 46367, 46368, 46369, 46370, 46371, 46372, 46373, 46374, 46375, 46376, 46377, 46378, 0, 0, 46381, 0, 0, 46384, 0, 0, 46387, 46388, 0, 0, 0, 0, 0, 0, 0, 46396, 0, 46398, 46399, 46400, 0, 46402, 0, 0, 0, 46406, 0, 46408, 0, 46410, 46411, 0, 0, 0, 0, 46416, 46417, 46418, 46419, 46420, 46421, 46422, 46423, 46424, 46425, 46426, 46427, 46428, 46429, 46430, 46431, 46432, 46433, 46434, 46435, 46436, 46437, 46438, 46439, 46440, 46441, 46442, 46443, 46444, 46445, 46446, 46447, 46448, 46449, 46450, 46451, 46452, 46453, 46454, 46455, 46456, 46457, 46458, 46459, 46460, 46461, 0, 46463, 46464, 46465, 46466, 46467, 0, 0, 0, 46471, 46472, 0, 0, 46475, 0, 46477, 46478, 46479, 0, 46481, 46482, 46483, 46484, 46485, 46486, 46487, 46488, 46489, 46490, 46491, 46492, 46493, 46494, 46495, 46496, 46497, 46498, 0, 0, 46501, 46502, 46503, 0, 46505, 0, 0, 0, 0, 0, 0, 0, 0, 46514, 0, 46516, 0, 46518, 0, 0, 0, 46522, 0, 0, 46525, 0, 0, 46528, 0, 46530, 46531, 46532, 46533, 46534, 46535, 46536, 46537, 46538, 0, 46540, 46541, 46542, 46543, 0, 46545, 46546, 46547, 46548, 46549, 46550, 46551, 46552, 46553, 46554, 46555, 46556, 46557, 46558, 46559, 46560, 46561, 46562, 46563, 46564, 46565, 46566, 46567, 46568, 46569, 46570, 46571, 46572, 46573, 46574, 46575, 46576, 46577, 0, 46579, 46580, 0, 0, 46583, 0, 0, 0, 0, 46588, 46589, 46590, 46591, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p236: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 20152, 28604, 33902, 7947, 34719, 13496, 48578, 30957, 17255, 30841, 15683, 48578, 48578, 11518, 9802, 8543, 42605, 15130, 14125, 48578, 23820, 17473, 24175, 48578, 48578, 48578, 48578, 36258, 33903, 48578, 43435, 48578, 48578, 20153, 48578, 48578, 48578, 9803, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 28811, 11848, 48578, 48578, 42764, 48578, 48578, 48578, 36084, 48578, 48578, 22041, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 10878, 16282, 48578, 48578, 20961, 46238, 18206, 26771, 48578, 48578, 48578, 48274, 35038, 48578, 48578, 14780, 48035, 48036, 48578, 20974, 34942, 48578, 11484, 29484, 48578, 48578, 48578, 42409, 12792, 48578, 23939, 40786, 32840, 48578, 29261, 22044, 39131, 42500, 7404, 48578, 43189, 20170, 48578, 48578, 35076, 38343, 48578, 33297, 46854, 8334, 47696, 48578, 48578, 48578, 20558, 17540, 48578, 10888, 13915, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 9208, 19628, 11305, 48578, 26475, 48578, 48578, 32956, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 18222, 48578, 48578, 48578, 48578, 48578, 12471, 48578, 48578, 17285, 32356, 33395, 45936, 45545, 11353, 30461, 13267, 48578, 45778, 36986, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 46592, 46593, 46594, 46595, 46596, 46597, 46598, 46599, 46600, 46601, 46602, 46603, 46604, 46605, 46606, 46607, 46608, 46609, 46610, 46611, 46612, 46613, 0, 0, 0, 0, 0, 0, 46620, 0, 0, 0, 0, 46625, 46626, 0, 0, 0, 0, 0, 0, 46633, 0, 0, 0, 46637, 46638, 46639, 46640, 0, 0, 46643, 0, 46645, 46646, 0, 46648, 46649, 46650, 0, 46652, 46653, 46654, 46655, 46656, 46657, 46658, 46659, 46660, 46661, 46662, 46663, 46664, 46665, 46666, 46667, 46668, 46669, 46670, 46671, 46672, 46673, 46674, 46675, 46676, 46677, 46678, 0, 0, 46681, 46682, 0, 46684, 46685, 46686, 0, 46688, 46689, 0, 46691, 46692, 46693, 46694, 46695, 46696, 46697, 46698, 46699, 46700, 46701, 46702, 46703, 0, 0, 46706, 46707, 0, 0, 0, 0, 46712, 46713, 46714, 0, 0, 46717, 46718, 0, 0, 0, 46722, 0, 0, 46725, 0, 0, 46728, 46729, 46730, 0, 0, 46733, 0, 0, 0, 46737, 0, 0, 0, 0, 0, 46743, 0, 0, 46746, 46747, 0, 0, 46750, 0, 0, 0, 0, 46755, 46756, 46757, 0, 0, 46760, 0, 0, 46763, 46764, 46765, 46766, 46767, 46768, 46769, 46770, 46771, 46772, 46773, 46774, 46775, 46776, 46777, 46778, 46779, 46780, 46781, 46782, 46783, 46784, 46785, 46786, 46787, 46788, 46789, 46790, 46791, 46792, 46793, 46794, 46795, 46796, 46797, 46798, 46799, 46800, 46801, 46802, 0, 0, 0, 46806, 0, 46808, 46809, 0, 46811, 46812, 46813, 46814, 46815, 46816, 46817, 46818, 46819, 46820, 46821, 46822, 46823, 46824, 46825, 46826, 0, 46828, 46829, 46830, 46831, 46832, 0, 46834, 46835, 0, 0, 0, 0, 0, 0, 0, 0, 46844, 0, 0, 46847, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p237: 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 2, 1, 1, 2, 2, 48578, 11608, 33076, 48578, 26372, 48578, 48578, 19639, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 26426, 31550, 48578, 48578, 48578, 31771, 22047, 48578, 48578, 48578, 7351, 20291, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 36472, 38209, 48578, 48578, 31295, 48578, 48578, 48578, 29282, 19161, 48578, 48578, 7357, 48578, 34872, 24719, 13838, 48578, 35777, 21176, 8594, 41813, 15873, 29985, 44666, 33827, 48578, 48578, 20186, 48578, 18244, 48578, 48578, 25090, 48578, 8752, 35345, 20634, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 47805, 48578, 48578, 48578, 48578, 17204, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 13918, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 40200, 27163, 15148, 26087, 36028, 48578, 48578, 25533, 39389, 33199, 48578, 48578, 11854, 47731, 48578, 10389, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 24811, 48578, 48578, 48578, 24225, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 29676, 37423, 48578, 48578, 37441, 48578, 24956, 40052, 11468, 18529, 28732, 30983, 24556, 48578, 48578, 29438, 36665, 25534, 38504, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 43772, 48578, 45717, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 44376, 48578, 39566, 41085, 34733, 38924, 48578, 48578, 27002, 33342, 24816, 48578, 21534, 23891, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 46848, 0, 0, 46851, 0, 46853, 46854, 0, 46856, 46857, 46858, 46859, 46860, 46861, 46862, 46863, 46864, 46865, 46866, 46867, 46868, 46869, 46870, 46871, 46872, 46873, 46874, 46875, 46876, 46877, 46878, 46879, 46880, 46881, 0, 0, 46884, 46885, 46886, 0, 0, 46889, 46890, 46891, 0, 0, 46894, 46895, 46896, 46897, 46898, 46899, 46900, 46901, 46902, 46903, 46904, 0, 0, 46907, 46908, 0, 46910, 46911, 46912, 0, 0, 46915, 46916, 0, 46918, 0, 0, 0, 46922, 0, 0, 0, 0, 0, 0, 0, 0, 46931, 46932, 0, 46934, 0, 46936, 46937, 0, 46939, 0, 0, 0, 46943, 46944, 46945, 46946, 46947, 46948, 46949, 46950, 46951, 46952, 46953, 46954, 46955, 46956, 46957, 46958, 46959, 46960, 46961, 46962, 46963, 46964, 46965, 46966, 46967, 0, 46969, 46970, 46971, 46972, 0, 46974, 46975, 46976, 46977, 46978, 46979, 46980, 46981, 46982, 0, 46984, 46985, 46986, 46987, 46988, 46989, 46990, 46991, 0, 0, 0, 0, 0, 46997, 46998, 0, 0, 0, 47002, 47003, 0, 0, 47006, 0, 47008, 47009, 47010, 47011, 47012, 47013, 47014, 47015, 47016, 47017, 47018, 47019, 47020, 47021, 47022, 47023, 0, 47025, 47026, 47027, 0, 47029, 47030, 47031, 47032, 47033, 47034, 47035, 47036, 47037, 47038, 47039, 0, 0, 47042, 47043, 0, 47045, 0, 0, 0, 0, 0, 0, 0, 47053, 47054, 0, 0, 0, 0, 47059, 47060, 47061, 47062, 47063, 47064, 47065, 47066, 47067, 47068, 47069, 47070, 47071, 47072, 47073, 47074, 47075, 0, 47077, 0, 47079, 47080, 47081, 47082, 47083, 47084, 47085, 47086, 47087, 0, 47089, 0, 0, 0, 0, 47094, 47095, 0, 0, 0, 47099, 0, 0, 47102, 47103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p238: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 2, 2, 1, 2, 1, 1, 1, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 39945, 48283, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 25548, 48578, 46171, 48578, 46273, 48578, 24030, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 13743, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 20332, 34734, 48525, 31470, 48578, 23872, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 44710, 43296, 28564, 48578, 48578, 9710, 48578, 48578, 48578, 48578, 48578, 48578, 41968, 48578, 32939, 48578, 48578, 48578, 48578, 48578, 48578, 41712, 13290, 27476, 48578, 48578, 48578, 48578, 48578, 48578, 23977, 48578, 37563, 48578, 48578, 48578, 48578, 48578, 48578, 28122, 48578, 48578, 48578, 48578, 48578, 41716, 48578, 48578, 48578, 24040, 48578, 48578, 33404, 18144, 48578, 48578, 38694, 38695, 48578, 44081, 17180, 48578, 17110, 48578, 37448, 40865, 29692, 35881, 38699, 38700, 8922, 31473, 38701, 44226, 39060, 48578, 11689, 31109, 39183, 48578, 48578, 37479, 14156, 44088, 40556, 28478, 17221, 8430, 34013, 48578, 48578, 45843, 13047, 44408, 48578, 29212, 48578, 16839, 37737, 30918, 42701, 48578, 48578, 48313, 48578, 30919, 13350, 22767, 48578, 11239, 42581, 48578, 48578, 17186, 23047, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 13057, 39091, 47998, 25305, 48137, 48578, 44549, 19132, 48578, 34977, 22466, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 7464, 48578, 44102, 19587, 19179, 30840, 18012, 18013, 48578, 13059, 48578, 48578, 48578, 48578, 48578, 40070, 48578, 48578, 48578, 33808, 33426, 48578, 48578, 48578, 40134, 42224, 12237, 48578, 40270, 10675, 44112, 17569, 33429, 48578, 48578, 48578, 48578, 35833, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 47104, 47105, 47106, 47107, 47108, 47109, 47110, 47111, 47112, 47113, 47114, 47115, 47116, 47117, 0, 0, 47120, 47121, 47122, 47123, 47124, 47125, 47126, 47127, 47128, 47129, 0, 47131, 0, 47133, 0, 47135, 0, 47137, 47138, 47139, 47140, 47141, 47142, 47143, 47144, 47145, 47146, 47147, 47148, 0, 47150, 47151, 47152, 47153, 47154, 47155, 47156, 47157, 47158, 0, 0, 0, 0, 47163, 0, 47165, 47166, 47167, 47168, 47169, 47170, 47171, 47172, 47173, 47174, 47175, 47176, 0, 0, 0, 47180, 47181, 0, 47183, 47184, 47185, 47186, 47187, 47188, 0, 47190, 0, 47192, 47193, 47194, 47195, 47196, 47197, 0, 0, 0, 47201, 47202, 47203, 47204, 47205, 47206, 0, 47208, 0, 47210, 47211, 47212, 47213, 47214, 47215, 0, 47217, 47218, 47219, 47220, 47221, 0, 47223, 47224, 47225, 0, 47227, 47228, 0, 0, 47231, 47232, 0, 0, 47235, 0, 0, 47238, 0, 47240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47252, 0, 0, 0, 47256, 47257, 0, 0, 0, 0, 0, 0, 0, 0, 47266, 47267, 0, 0, 0, 47271, 0, 47273, 0, 0, 0, 0, 47278, 47279, 0, 47281, 0, 0, 0, 47285, 0, 0, 47288, 47289, 0, 0, 47292, 47293, 47294, 47295, 47296, 47297, 47298, 47299, 47300, 47301, 47302, 47303, 0, 0, 0, 0, 0, 47309, 0, 0, 47312, 0, 0, 47315, 47316, 47317, 47318, 47319, 47320, 47321, 0, 47323, 0, 0, 0, 0, 0, 0, 47330, 0, 47332, 47333, 47334, 47335, 47336, 0, 47338, 47339, 47340, 0, 0, 47343, 47344, 47345, 0, 0, 0, 47349, 0, 0, 0, 0, 0, 47355, 47356, 47357, 47358, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p239: 2, 1, 2, 1, 2, 2, 2, 1, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 1, 1, 1, 48578, 47468, 48578, 7292, 48578, 48578, 48578, 32341, 45526, 48578, 23418, 25826, 11317, 48578, 44116, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 36459, 48578, 34149, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 40039, 39140, 48578, 48578, 48578, 48578, 48578, 19294, 10901, 43231, 48578, 48578, 48578, 48578, 34573, 45026, 9975, 14270, 38918, 38925, 43775, 48353, 45235, 48578, 48578, 45238, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 35706, 37662, 48578, 48578, 48578, 40432, 48578, 48578, 37770, 15345, 48578, 48578, 48578, 48578, 25908, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 20229, 48578, 48578, 41619, 48578, 8431, 22739, 16654, 48578, 48578, 47978, 48578, 48578, 48578, 48578, 48578, 23229, 47313, 46910, 48578, 48578, 37044, 48578, 48578, 48578, 35722, 48578, 11251, 10499, 10633, 47577, 48578, 12236, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 8494, 48578, 20064, 48578, 48578, 43102, 48578, 48578, 44996, 15766, 48578, 48578, 48578, 48578, 48578, 15656, 48578, 48578, 48578, 48578, 48578, 31290, 48578, 48578, 48578, 11177, 11180, 8578, 48578, 48578, 48578, 16921, 48578, 48578, 16456, 9035, 43565, 47807, 16462, 48578, 24593, 48578, 48578, 48578, 48578, 48578, 14132, 12252, 48578, 48578, 48578, 48578, 48578, 9488, 48578, 48578, 48578, 48578, 48578, 36428, 13681, 42930, 48578, 48578, 48578, 13192, 48578, 28957, 48578, 41222, 28420, 16876, 22566, 48578, 48578, 11357, 48578, 48578, 48578, 45681, 43998, 48578, 7780, 34190, 13044, 29240, 31856, 48578, 48578, 48578, 41224, 48578, 27857, 22597, 44089, 20664, 9133, 48578, 48578, 48578, 48578, 40688, 48578, 48578, 48578, 48578, 48578, 27340, 26450, 48578, 41227, 48578, 14021, 48578, 14386, 33489, 48578, 23245, 28406, 27491, 24389, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 47360, 0, 47362, 0, 47364, 47365, 47366, 0, 0, 47369, 0, 0, 0, 47373, 0, 47375, 47376, 47377, 47378, 47379, 47380, 47381, 0, 47383, 0, 47385, 47386, 47387, 47388, 47389, 47390, 47391, 47392, 0, 0, 47395, 47396, 47397, 47398, 47399, 0, 0, 0, 47403, 47404, 47405, 47406, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47416, 47417, 0, 47419, 47420, 47421, 47422, 47423, 47424, 47425, 0, 0, 47428, 47429, 47430, 0, 47432, 47433, 0, 0, 47436, 47437, 47438, 47439, 0, 47441, 47442, 47443, 47444, 47445, 47446, 47447, 47448, 47449, 47450, 47451, 47452, 47453, 0, 47455, 47456, 0, 47458, 0, 0, 0, 47462, 47463, 0, 47465, 47466, 47467, 47468, 47469, 0, 0, 0, 47473, 47474, 0, 47476, 47477, 47478, 0, 47480, 0, 0, 0, 0, 47485, 0, 47487, 47488, 47489, 47490, 47491, 47492, 47493, 47494, 0, 47496, 0, 47498, 47499, 0, 47501, 47502, 0, 0, 47505, 47506, 47507, 47508, 47509, 0, 47511, 47512, 47513, 47514, 47515, 0, 47517, 47518, 47519, 0, 0, 0, 47523, 47524, 47525, 0, 47527, 47528, 0, 0, 0, 0, 0, 47534, 0, 47536, 47537, 47538, 47539, 47540, 0, 0, 47543, 47544, 47545, 47546, 47547, 0, 47549, 47550, 47551, 47552, 47553, 0, 0, 0, 47557, 47558, 47559, 0, 47561, 0, 47563, 0, 0, 0, 0, 47568, 47569, 0, 47571, 47572, 47573, 0, 0, 47576, 0, 0, 0, 0, 0, 47582, 47583, 47584, 0, 47586, 0, 0, 0, 0, 0, 47592, 47593, 47594, 47595, 0, 47597, 47598, 47599, 47600, 47601, 0, 0, 47604, 0, 47606, 0, 47608, 0, 0, 47611, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p23A: 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 1, 2, 1, 1, 1, 2, 2, 1, 2, 2, 1, 2, 1, 1, 2, 2, 1, 2, 2, 1, 1, 1, 2, 1, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 26274, 48578, 13210, 48578, 30862, 24047, 48578, 26897, 48578, 17784, 10328, 46930, 48578, 16406, 12075, 48578, 48578, 48578, 48578, 38614, 36245, 48578, 48578, 38768, 42160, 37962, 48578, 48320, 26553, 44431, 29667, 43069, 31600, 44989, 22268, 20548, 40908, 8253, 48578, 48578, 48578, 48578, 26417, 47759, 48578, 48578, 48578, 48578, 48578, 48578, 13704, 39813, 48578, 48578, 19017, 48578, 48578, 48578, 16423, 22574, 48578, 48578, 40477, 19150, 8644, 48578, 48578, 48578, 22712, 22575, 48578, 48578, 12099, 48578, 48578, 48578, 48578, 48578, 48578, 26028, 48578, 48453, 45424, 20711, 16674, 48578, 48578, 48578, 48578, 41583, 14338, 48578, 31656, 48578, 48578, 12746, 35039, 35486, 25001, 48578, 48578, 48578, 48578, 33602, 48578, 8580, 38107, 42517, 48578, 45835, 48578, 42412, 13182, 7358, 48578, 48578, 20564, 48578, 48578, 35225, 48578, 18530, 44692, 48578, 48578, 32489, 48578, 48578, 13009, 48385, 7810, 48578, 31505, 48578, 48578, 19950, 48578, 29765, 48578, 48578, 36951, 48578, 48578, 48578, 11042, 48578, 48578, 48578, 48578, 16843, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 19400, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 41238, 48578, 13061, 48578, 48578, 8735, 45297, 36885, 48578, 48578, 48578, 48578, 48578, 48578, 33555, 48578, 16491, 32347, 48578, 48578, 48578, 48578, 48578, 48578, 16446, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 18223, 22998, 48578, 48578, 16319, 48578, 35331, 48578, 11085, 48578, 22787, 48578, 13589, 48578, 48578, 48578, 48578, 43249, 48578, 48578, 12665, 31202, 48578, 48578, 48578, 48578, 48578, 25688, 48578, 24256, 48578, 24621, 31638, 48578, 37840, 48578, 27961, 48578, 48578, 48578, 48578, 30729, 48578, 20512, 40102, 48578, 48578, 48578, 48578, 12304, 48578, 25769, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 47617, 0, 47619, 0, 0, 47622, 0, 47624, 0, 0, 0, 47628, 0, 0, 47631, 47632, 47633, 47634, 0, 0, 47637, 47638, 0, 0, 0, 47642, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47654, 47655, 47656, 47657, 0, 0, 47660, 47661, 47662, 47663, 47664, 47665, 0, 0, 47668, 47669, 0, 47671, 47672, 47673, 0, 0, 47676, 47677, 0, 0, 0, 47681, 47682, 47683, 0, 0, 47686, 47687, 0, 47689, 47690, 47691, 47692, 47693, 47694, 0, 47696, 0, 0, 0, 0, 47701, 47702, 47703, 47704, 0, 0, 47707, 0, 47709, 47710, 0, 0, 0, 0, 47715, 47716, 47717, 47718, 0, 47720, 0, 0, 0, 47724, 0, 47726, 0, 0, 0, 47730, 47731, 0, 47733, 47734, 0, 47736, 0, 0, 47739, 47740, 0, 47742, 47743, 0, 0, 0, 47747, 0, 47749, 47750, 0, 47752, 0, 47754, 47755, 0, 47757, 47758, 47759, 0, 47761, 47762, 47763, 47764, 0, 47766, 47767, 47768, 47769, 47770, 47771, 47772, 47773, 47774, 47775, 0, 47777, 47778, 47779, 47780, 47781, 47782, 47783, 0, 47785, 0, 47787, 47788, 0, 0, 0, 47792, 47793, 47794, 47795, 47796, 47797, 0, 47799, 0, 0, 47802, 47803, 47804, 47805, 47806, 47807, 0, 47809, 47810, 47811, 47812, 47813, 47814, 47815, 0, 0, 47818, 47819, 0, 47821, 0, 47823, 0, 47825, 0, 47827, 0, 47829, 47830, 47831, 47832, 0, 47834, 47835, 0, 0, 47838, 47839, 47840, 47841, 47842, 0, 47844, 0, 47846, 0, 0, 47849, 0, 47851, 0, 47853, 47854, 47855, 47856, 0, 47858, 0, 0, 47861, 47862, 47863, 47864, 0, 47866, 0, 47868, 47869, 47870, 47871, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p23B: 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 1, 1, 2, 2, 1, 1, 2, 1, 1, 2, 2, 2, 48578, 48578, 16653, 48578, 48578, 48578, 29506, 48578, 48578, 29766, 48578, 22015, 48578, 8092, 22163, 22039, 34378, 48578, 48578, 48578, 48578, 40198, 48578, 48578, 32951, 21432, 30269, 33118, 48578, 48578, 48578, 48578, 19346, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 14814, 8122, 21049, 33027, 48578, 29693, 48578, 48578, 48578, 48578, 48578, 12904, 26814, 7747, 7748, 36637, 25268, 34015, 46401, 29697, 38601, 48578, 45571, 8040, 48578, 48578, 48578, 48578, 48578, 48578, 26135, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 17440, 13512, 15193, 28479, 48578, 48578, 48578, 15940, 48578, 48578, 32816, 39524, 48578, 48578, 8441, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 26819, 48578, 48578, 48578, 32745, 31883, 48578, 48578, 48578, 9150, 48578, 17443, 28374, 41636, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 29453, 35398, 48578, 37430, 48578, 31977, 24132, 12687, 48578, 20921, 20922, 16950, 20126, 8473, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 33169, 7904, 11509, 48578, 48578, 48578, 28223, 7919, 48578, 48578, 32680, 19977, 35145, 48578, 48578, 48578, 12688, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 39353, 45858, 26916, 48578, 48578, 48008, 48578, 19829, 30577, 48578, 48578, 48578, 48578, 32889, 35578, 32751, 38637, 32687, 32688, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 35742, 48578, 35152, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 24176, 48578, 48578, 11980, 48184, 27075, 39025, 48578, 26793, 28812, 48578, 35407, 48578, 29523, 48578, 48578, 8544, 12958, 48578, 48578, 32068, 31330, 48578, 14838, 35317, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 47872, 47873, 0, 47875, 47876, 47877, 0, 47879, 47880, 0, 47882, 0, 47884, 0, 0, 0, 0, 47889, 47890, 47891, 47892, 0, 47894, 47895, 0, 0, 0, 0, 47900, 47901, 47902, 47903, 0, 47905, 47906, 47907, 47908, 47909, 47910, 47911, 47912, 0, 0, 0, 0, 47917, 0, 47919, 47920, 47921, 47922, 47923, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47934, 0, 0, 47937, 47938, 47939, 47940, 47941, 47942, 0, 47944, 47945, 47946, 47947, 47948, 47949, 47950, 47951, 47952, 47953, 47954, 47955, 47956, 47957, 0, 0, 0, 0, 47962, 47963, 47964, 0, 47966, 47967, 0, 0, 47970, 47971, 0, 47973, 47974, 47975, 47976, 47977, 47978, 47979, 47980, 47981, 0, 47983, 47984, 47985, 0, 0, 47988, 47989, 47990, 0, 47992, 0, 0, 0, 47996, 47997, 47998, 47999, 48000, 48001, 48002, 0, 0, 48005, 0, 48007, 0, 0, 0, 48011, 0, 0, 0, 0, 0, 48017, 48018, 48019, 48020, 48021, 48022, 48023, 48024, 48025, 48026, 48027, 48028, 48029, 48030, 48031, 0, 0, 0, 48035, 48036, 48037, 0, 0, 48040, 48041, 0, 0, 0, 48045, 48046, 48047, 0, 48049, 48050, 48051, 48052, 48053, 48054, 48055, 48056, 48057, 48058, 48059, 48060, 48061, 0, 0, 0, 48065, 48066, 0, 48068, 0, 0, 48071, 48072, 48073, 48074, 0, 0, 0, 0, 0, 0, 48081, 48082, 48083, 48084, 48085, 48086, 48087, 48088, 48089, 0, 48091, 0, 48093, 48094, 48095, 48096, 48097, 48098, 48099, 0, 48101, 48102, 0, 0, 0, 0, 48107, 0, 0, 48110, 0, 48112, 0, 48114, 48115, 0, 0, 48118, 48119, 0, 0, 48122, 0, 0, 48125, 48126, 48127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p23C: 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1, 1, 2, 1, 2, 1, 1, 2, 2, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48578, 48578, 48578, 40787, 48578, 48578, 48578, 32758, 19440, 48578, 48578, 32080, 25079, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 33252, 48578, 48578, 23363, 48578, 12041, 42523, 9060, 48578, 20997, 48578, 32085, 32086, 48578, 48578, 48578, 27153, 32427, 48578, 8952, 10254, 48578, 48578, 13632, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32474, 39399, 48578, 48578, 36236, 32106, 28855, 48578, 48578, 34553, 25947, 48578, 23365, 48578, 48578, 48578, 48578, 48578, 27637, 27689, 48578, 48578, 48578, 12437, 48578, 48578, 43543, 48578, 48578, 40042, 48578, 48578, 48578, 19740, 48578, 48578, 48578, 48578, 43325, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 14832, 47225, 48578, 48578, 48578, 16440, 48578, 48578, 48578, 48578, 48578, 9773, 48578, 25460, 48578, 48578, 9313, 48578, 48578, 48578, 29237, 34981, 12592, 46392, 48578, 48578, 33472, 48578, 11312, 48578, 21547, 48578, 48578, 48578, 48578, 48578, 22673, 10702, 48578, 48578, 48578, 48578, 48578, 18311, 24349, 33351, 48578, 48578, 29290, 37847, 38520, 48578, 48578, 48578, 43664, 48578, 48578, 48578, 48578, 33352, 12765, 48578, 48578, 12336, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 36990, 17588, 30212, 48578, 46808, 28958, 28572, 48578, 48578, 48578, 48578, 48578, 32736, 16583, 48578, 46718, 48578, 48578, 19530, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 14568, 48578, 48578, 20882, 17134, 48578, 48578, 48578, 45960, 48578, 39073, 48578, 48578, 47975, 48578, 48578, 38947, 30003, 48578, 48578, 8199, 48578, 20234, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48128, 48129, 48130, 0, 48132, 48133, 48134, 0, 0, 48137, 48138, 0, 0, 48141, 48142, 48143, 48144, 48145, 48146, 48147, 48148, 0, 48150, 48151, 0, 48153, 0, 0, 0, 48157, 0, 48159, 0, 0, 48162, 48163, 48164, 0, 0, 48167, 0, 0, 48170, 48171, 0, 48173, 48174, 48175, 48176, 48177, 48178, 48179, 48180, 48181, 0, 0, 48184, 48185, 0, 0, 0, 48189, 48190, 0, 0, 48193, 0, 48195, 48196, 48197, 48198, 48199, 0, 0, 48202, 48203, 48204, 0, 48206, 48207, 0, 48209, 48210, 0, 48212, 48213, 48214, 0, 48216, 48217, 48218, 48219, 0, 48221, 48222, 48223, 48224, 48225, 48226, 48227, 48228, 48229, 0, 0, 48232, 48233, 48234, 0, 48236, 48237, 48238, 48239, 48240, 0, 48242, 0, 48244, 48245, 0, 48247, 48248, 48249, 0, 0, 0, 0, 48254, 48255, 0, 48257, 0, 48259, 0, 48261, 48262, 48263, 48264, 48265, 0, 0, 48268, 48269, 48270, 48271, 48272, 0, 0, 0, 48276, 48277, 0, 0, 0, 48281, 48282, 48283, 0, 48285, 48286, 48287, 48288, 0, 0, 48291, 48292, 0, 48294, 48295, 48296, 48297, 48298, 48299, 48300, 48301, 48302, 48303, 48304, 0, 0, 0, 48308, 0, 0, 0, 48312, 48313, 48314, 48315, 48316, 0, 0, 48319, 0, 48321, 48322, 0, 48324, 48325, 48326, 48327, 48328, 48329, 48330, 48331, 48332, 48333, 48334, 48335, 48336, 48337, 48338, 48339, 48340, 48341, 48342, 48343, 48344, 48345, 48346, 48347, 0, 48349, 48350, 0, 0, 48353, 48354, 48355, 0, 48357, 0, 48359, 48360, 0, 48362, 48363, 0, 0, 48366, 48367, 0, 48369, 0, 48371, 48372, 48373, 48374, 48375, 48376, 48377, 48378, 48379, 48380, 48381, 48382, 48383, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p23D: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 20352, 48578, 48578, 45242, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 8221, 26888, 48578, 48578, 45468, 47740, 48578, 23093, 48578, 48578, 8342, 48578, 29295, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 26889, 36011, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 37280, 26414, 48578, 48578, 35887, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 7419, 48578, 48578, 48578, 48578, 48578, 17237, 47460, 48578, 14024, 14025, 15711, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 31787, 48578, 37743, 48578, 27873, 46297, 38225, 47741, 48578, 20815, 29479, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 35261, 48578, 48578, 48578, 48578, 21879, 48578, 48578, 30422, 9542, 48578, 37126, 33370, 48578, 37359, 48578, 48578, 18469, 48578, 43035, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 27646, 47161, 48578, 48578, 48578, 34854, 48578, 48578, 48578, 43036, 37744, 7528, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 35236, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 16851, 37413, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48384, 48385, 48386, 48387, 48388, 48389, 48390, 48391, 48392, 48393, 48394, 48395, 48396, 48397, 48398, 48399, 48400, 48401, 48402, 0, 48404, 48405, 0, 48407, 48408, 48409, 48410, 48411, 48412, 48413, 0, 0, 48416, 48417, 0, 0, 48420, 0, 48422, 48423, 0, 48425, 0, 48427, 48428, 48429, 48430, 48431, 48432, 48433, 48434, 48435, 48436, 48437, 48438, 48439, 48440, 48441, 48442, 48443, 0, 0, 48446, 48447, 48448, 48449, 48450, 48451, 48452, 48453, 48454, 48455, 48456, 48457, 48458, 48459, 48460, 48461, 48462, 48463, 48464, 48465, 48466, 48467, 48468, 48469, 48470, 48471, 48472, 48473, 48474, 48475, 48476, 48477, 0, 0, 48480, 48481, 0, 48483, 48484, 48485, 48486, 48487, 48488, 48489, 48490, 48491, 48492, 48493, 48494, 48495, 48496, 0, 48498, 48499, 48500, 48501, 48502, 0, 0, 48505, 0, 0, 0, 48509, 48510, 48511, 48512, 48513, 48514, 48515, 48516, 48517, 0, 48519, 0, 48521, 0, 0, 0, 0, 48526, 0, 0, 48529, 48530, 48531, 48532, 48533, 48534, 48535, 0, 48537, 48538, 48539, 48540, 0, 48542, 48543, 0, 0, 48546, 0, 0, 48549, 0, 48551, 48552, 0, 48554, 0, 48556, 48557, 48558, 48559, 48560, 48561, 48562, 48563, 48564, 48565, 48566, 48567, 48568, 48569, 48570, 48571, 48572, 48573, 48574, 48575, 48576, 48577, 48578, 48579, 48580, 48581, 48582, 48583, 48584, 48585, 48586, 48587, 48588, 48589, 48590, 48591, 48592, 48593, 48594, 48595, 48596, 48597, 48598, 48599, 48600, 48601, 48602, 48603, 48604, 48605, 48606, 48607, 0, 0, 48610, 48611, 48612, 0, 48614, 48615, 48616, 0, 0, 0, 48620, 48621, 48622, 48623, 48624, 48625, 48626, 48627, 48628, 48629, 0, 48631, 48632, 48633, 48634, 48635, 48636, 48637, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p23E: 1, 2, 2, 1, 1, 2, 1, 1, 2, 1, 1, 1, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 2, 2, 1, 1, 2, 1, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 18942, 48578, 48578, 40910, 45335, 48578, 48105, 8728, 48578, 12195, 43337, 32278, 48578, 48578, 18524, 28107, 45248, 48578, 36341, 48578, 48578, 48578, 48578, 48578, 42725, 35895, 33776, 34856, 48578, 40530, 48578, 48578, 44104, 48578, 48578, 14862, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 22703, 48578, 48578, 48578, 15249, 48578, 48578, 48578, 48578, 48578, 48578, 27700, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 29867, 48578, 19578, 31371, 47197, 15717, 44765, 10733, 48578, 48578, 48578, 31122, 48578, 48515, 48578, 40127, 26831, 48578, 18188, 48578, 29873, 41389, 48578, 39245, 36356, 48578, 48578, 28164, 11303, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 38541, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 18720, 41239, 36246, 48578, 31372, 48578, 48578, 20600, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 12526, 7789, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 12561, 22865, 48578, 21677, 33385, 21307, 48578, 48578, 27795, 29022, 48578, 34862, 48578, 34665, 47728, 15284, 48578, 48578, 45391, 40135, 23786, 36835, 48578, 48578, 48578, 48578, 48578, 48578, 46231, 48578, 48578, 9547, 48578, 45000, 48578, 48578, 47356, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 48641, 48642, 0, 0, 48645, 0, 0, 48648, 0, 0, 0, 48652, 48653, 0, 0, 0, 48657, 0, 48659, 48660, 48661, 48662, 48663, 0, 0, 0, 0, 48668, 0, 48670, 48671, 0, 48673, 48674, 0, 48676, 48677, 48678, 48679, 48680, 48681, 48682, 48683, 48684, 48685, 48686, 48687, 48688, 48689, 48690, 48691, 48692, 48693, 48694, 48695, 48696, 48697, 48698, 48699, 48700, 48701, 48702, 48703, 48704, 48705, 48706, 48707, 48708, 48709, 48710, 0, 48712, 48713, 48714, 0, 48716, 48717, 48718, 48719, 48720, 48721, 0, 48723, 48724, 48725, 48726, 48727, 48728, 48729, 0, 48731, 0, 0, 0, 0, 0, 0, 48738, 48739, 48740, 0, 48742, 0, 48744, 0, 0, 48747, 0, 48749, 0, 0, 48752, 0, 0, 48755, 48756, 0, 0, 48759, 48760, 48761, 48762, 48763, 48764, 48765, 48766, 48767, 0, 48769, 48770, 48771, 48772, 48773, 48774, 48775, 48776, 48777, 48778, 48779, 48780, 48781, 48782, 48783, 48784, 48785, 48786, 48787, 48788, 48789, 48790, 48791, 48792, 48793, 48794, 48795, 48796, 48797, 48798, 48799, 48800, 48801, 48802, 48803, 48804, 48805, 48806, 48807, 48808, 48809, 48810, 48811, 0, 0, 0, 48815, 0, 48817, 48818, 0, 48820, 48821, 48822, 48823, 48824, 48825, 48826, 48827, 0, 0, 48830, 48831, 48832, 48833, 48834, 48835, 48836, 48837, 48838, 48839, 48840, 48841, 48842, 48843, 48844, 0, 0, 48847, 0, 0, 0, 48851, 48852, 0, 0, 48855, 0, 48857, 0, 0, 0, 48861, 48862, 0, 0, 0, 0, 48867, 48868, 48869, 48870, 48871, 48872, 0, 48874, 48875, 0, 48877, 0, 48879, 48880, 0, 48882, 48883, 48884, 48885, 48886, 48887, 48888, 48889, 48890, 48891, 48892, 48893, 48894, 48895, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p23F: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 1, 1, 2, 1, 2, 2, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 35900, 48578, 48578, 48578, 41659, 26014, 41789, 48578, 48578, 48578, 48578, 48578, 45520, 34718, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 17006, 47470, 48578, 32834, 32835, 48578, 48578, 22474, 19849, 15808, 48578, 48578, 48578, 40287, 48578, 48578, 29232, 20154, 48578, 48578, 48578, 46758, 45701, 48578, 17959, 48578, 23053, 48578, 9198, 48578, 48578, 33289, 7469, 20399, 48578, 36280, 48578, 48578, 35074, 48578, 27231, 43437, 35901, 17007, 48578, 48578, 32902, 38085, 48578, 48578, 35033, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 30792, 48578, 46054, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 13434, 15306, 33957, 35319, 43195, 24803, 48578, 17671, 48578, 46378, 48578, 45537, 48578, 11988, 11989, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 15054, 24309, 22870, 48578, 48578, 48578, 40037, 44121, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48896, 48897, 48898, 48899, 48900, 48901, 48902, 48903, 48904, 48905, 48906, 48907, 48908, 48909, 48910, 48911, 48912, 48913, 48914, 48915, 48916, 48917, 48918, 48919, 48920, 48921, 0, 48923, 48924, 48925, 0, 0, 0, 48929, 48930, 48931, 48932, 48933, 0, 0, 48936, 48937, 48938, 48939, 48940, 48941, 48942, 48943, 48944, 48945, 48946, 48947, 48948, 48949, 48950, 48951, 48952, 48953, 48954, 48955, 48956, 48957, 48958, 48959, 48960, 48961, 48962, 48963, 48964, 0, 0, 48967, 0, 0, 48970, 48971, 0, 0, 0, 48975, 48976, 48977, 0, 48979, 48980, 0, 0, 48983, 48984, 48985, 0, 0, 48988, 0, 48990, 0, 48992, 0, 48994, 48995, 0, 0, 0, 48999, 0, 49001, 49002, 0, 49004, 0, 0, 0, 0, 49009, 49010, 0, 0, 49013, 49014, 0, 49016, 49017, 49018, 49019, 49020, 49021, 49022, 49023, 49024, 49025, 49026, 49027, 49028, 49029, 49030, 49031, 49032, 49033, 49034, 49035, 49036, 49037, 49038, 49039, 49040, 49041, 49042, 49043, 49044, 49045, 49046, 49047, 49048, 49049, 49050, 49051, 49052, 49053, 49054, 49055, 49056, 49057, 49058, 49059, 0, 49061, 0, 49063, 49064, 49065, 49066, 49067, 49068, 49069, 49070, 49071, 49072, 49073, 49074, 49075, 49076, 49077, 49078, 49079, 49080, 49081, 49082, 49083, 49084, 49085, 49086, 49087, 49088, 49089, 49090, 49091, 49092, 0, 0, 0, 0, 0, 0, 49099, 0, 49101, 0, 49103, 0, 49105, 0, 0, 49108, 49109, 49110, 49111, 49112, 49113, 49114, 49115, 49116, 0, 0, 0, 49120, 49121, 49122, 0, 0, 49125, 49126, 49127, 49128, 49129, 49130, 49131, 49132, 49133, 49134, 49135, 49136, 49137, 49138, 49139, 49140, 49141, 49142, 49143, 49144, 49145, 49146, 49147, 49148, 49149, 49150, 49151, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p240: 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 1, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 2, 48578, 48578, 48578, 17478, 48578, 48578, 48578, 48578, 48578, 17363, 22747, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 44633, 48578, 48578, 48578, 48578, 48578, 18631, 35587, 48578, 23461, 48578, 13558, 20418, 30189, 8691, 48578, 48578, 48578, 48578, 41246, 48578, 8749, 48578, 48578, 48578, 48578, 38108, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 12480, 20998, 7802, 48578, 28672, 39673, 33313, 48578, 48578, 18445, 11299, 48578, 48578, 29234, 25091, 12841, 9459, 48578, 45712, 48578, 26123, 48578, 48578, 48578, 19295, 48578, 48578, 24518, 43764, 48578, 38020, 8595, 17054, 48578, 29894, 48578, 48578, 8805, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 41814, 48578, 48578, 48578, 47702, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 17949, 48578, 48578, 48578, 25234, 14264, 48578, 43503, 23703, 48578, 42364, 48578, 48578, 41157, 24540, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 23705, 25377, 38919, 17858, 48578, 20741, 47944, 48578, 48578, 48578, 46775, 48578, 48578, 9256, 36269, 7442, 48578, 48578, 41354, 24022, 45398, 18963, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 49152, 49153, 49154, 0, 49156, 49157, 49158, 49159, 49160, 0, 0, 49163, 49164, 49165, 49166, 49167, 49168, 49169, 49170, 49171, 49172, 49173, 49174, 49175, 49176, 49177, 49178, 49179, 49180, 0, 49182, 49183, 49184, 49185, 49186, 0, 0, 49189, 0, 49191, 0, 0, 0, 0, 49196, 49197, 49198, 49199, 0, 49201, 0, 49203, 49204, 49205, 49206, 0, 49208, 49209, 49210, 49211, 49212, 49213, 49214, 49215, 49216, 49217, 49218, 49219, 49220, 49221, 49222, 49223, 49224, 49225, 49226, 49227, 49228, 49229, 49230, 49231, 49232, 49233, 49234, 49235, 49236, 49237, 49238, 49239, 49240, 49241, 49242, 49243, 49244, 49245, 49246, 49247, 49248, 0, 0, 0, 49252, 0, 0, 0, 49256, 49257, 0, 0, 49260, 49261, 0, 0, 0, 0, 49266, 0, 49268, 0, 49270, 49271, 49272, 0, 49274, 49275, 0, 0, 49278, 0, 0, 0, 49282, 0, 49284, 49285, 0, 49287, 49288, 49289, 49290, 49291, 49292, 49293, 49294, 49295, 49296, 49297, 49298, 49299, 49300, 49301, 49302, 49303, 49304, 49305, 49306, 49307, 49308, 49309, 49310, 49311, 0, 49313, 49314, 49315, 0, 49317, 49318, 49319, 49320, 49321, 49322, 49323, 49324, 49325, 49326, 49327, 49328, 49329, 0, 49331, 49332, 49333, 0, 0, 49336, 0, 0, 49339, 0, 49341, 49342, 0, 0, 49345, 49346, 49347, 49348, 49349, 49350, 49351, 49352, 49353, 49354, 49355, 49356, 49357, 49358, 49359, 49360, 49361, 49362, 49363, 49364, 49365, 49366, 49367, 49368, 49369, 49370, 49371, 49372, 49373, 49374, 49375, 49376, 49377, 49378, 49379, 49380, 49381, 49382, 49383, 0, 0, 0, 0, 49388, 0, 0, 49391, 49392, 49393, 0, 49395, 49396, 0, 0, 0, 49400, 49401, 0, 0, 0, 0, 49406, 49407, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p241: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 39168, 17951, 48578, 14606, 20324, 11826, 45263, 48578, 9405, 48578, 43975, 48578, 48578, 13849, 29318, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 35794, 48578, 29377, 48578, 48578, 48578, 14471, 38926, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 42374, 26388, 48578, 48578, 8666, 48578, 21268, 24594, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 41960, 13568, 48578, 48578, 26726, 48578, 16185, 32494, 9558, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 27084, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 16470, 34743, 48578, 48578, 48578, 48578, 48578, 41714, 8635, 48578, 48578, 48578, 48578, 48578, 48578, 8830, 10624, 23241, 48578, 19225, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 10821, 48578, 38349, 48578, 11841, 46875, 48578, 48578, 48578, 48578, 48578, 48578, 34796, 48578, 48578, 16548, 30301, 40867, 34895, 48578, 38524, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 15090, 48578, 34302, 48578, 48578, 18976, 18706, 29241, 48578, 48578, 48578, 48578, 48578, 48578, 47502, 48578, 42682, 48578, 48578, 48578, 48578, 24369, 33537, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 27638, 48578, 15889, 48578, 18093, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 14296, 14420, 48578, 48578, 40885, 42702, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 43781, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 49408, 49409, 49410, 49411, 49412, 49413, 49414, 49415, 49416, 49417, 49418, 49419, 49420, 49421, 0, 0, 49424, 0, 0, 0, 0, 49429, 0, 49431, 0, 49433, 49434, 0, 0, 49437, 49438, 49439, 49440, 49441, 49442, 49443, 49444, 0, 49446, 0, 49448, 49449, 49450, 0, 0, 49453, 49454, 49455, 49456, 49457, 49458, 49459, 49460, 49461, 0, 0, 49464, 49465, 0, 49467, 0, 0, 49470, 49471, 49472, 49473, 49474, 49475, 49476, 49477, 49478, 49479, 49480, 49481, 0, 0, 49484, 49485, 0, 49487, 0, 0, 0, 49491, 49492, 49493, 49494, 49495, 49496, 49497, 49498, 49499, 49500, 49501, 49502, 49503, 49504, 49505, 49506, 0, 49508, 49509, 49510, 49511, 49512, 49513, 49514, 49515, 49516, 49517, 49518, 49519, 49520, 0, 0, 49523, 49524, 49525, 49526, 49527, 0, 0, 49530, 49531, 49532, 49533, 49534, 49535, 0, 0, 0, 49539, 0, 49541, 49542, 49543, 49544, 49545, 49546, 49547, 49548, 0, 49550, 0, 49552, 0, 0, 49555, 49556, 49557, 49558, 49559, 49560, 0, 49562, 49563, 0, 0, 0, 0, 49568, 0, 49570, 49571, 49572, 49573, 49574, 49575, 49576, 49577, 49578, 49579, 49580, 49581, 0, 49583, 0, 49585, 49586, 0, 0, 0, 49590, 49591, 49592, 49593, 49594, 49595, 0, 49597, 0, 49599, 49600, 49601, 49602, 0, 0, 49605, 49606, 49607, 49608, 49609, 49610, 49611, 49612, 49613, 49614, 49615, 49616, 49617, 49618, 49619, 49620, 49621, 49622, 49623, 49624, 49625, 49626, 49627, 0, 49629, 0, 49631, 0, 49633, 49634, 49635, 49636, 49637, 49638, 49639, 49640, 49641, 49642, 49643, 49644, 49645, 49646, 0, 0, 49649, 49650, 0, 0, 49653, 49654, 49655, 49656, 49657, 49658, 49659, 49660, 49661, 0, 49663, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p242: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 10718, 48578, 48578, 48578, 48578, 42703, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 12811, 18941, 17621, 48578, 45726, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 45108, 39346, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 39436, 23877, 33743, 34339, 47880, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 8860, 21560, 38318, 20684, 15250, 48578, 39710, 22428, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 28383, 48578, 19267, 19588, 23446, 48578, 48578, 48578, 48578, 15066, 33549, 24997, 27594, 10336, 48578, 48578, 27788, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 25762, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 14031, 48578, 48578, 28384, 48578, 19401, 48578, 48578, 47587, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 49664, 49665, 49666, 49667, 49668, 49669, 49670, 49671, 49672, 49673, 49674, 49675, 49676, 49677, 49678, 49679, 49680, 49681, 49682, 49683, 0, 49685, 49686, 49687, 49688, 0, 49690, 49691, 49692, 49693, 49694, 49695, 49696, 49697, 49698, 49699, 49700, 0, 0, 0, 49704, 0, 49706, 49707, 49708, 49709, 49710, 49711, 49712, 49713, 49714, 49715, 49716, 49717, 0, 0, 49720, 49721, 49722, 49723, 49724, 49725, 49726, 49727, 49728, 49729, 49730, 49731, 49732, 49733, 49734, 49735, 49736, 49737, 49738, 49739, 0, 0, 0, 0, 0, 49745, 49746, 49747, 49748, 49749, 49750, 49751, 49752, 49753, 49754, 49755, 49756, 49757, 49758, 49759, 49760, 49761, 49762, 49763, 0, 0, 0, 0, 0, 49769, 0, 0, 49772, 49773, 49774, 49775, 49776, 49777, 49778, 49779, 49780, 49781, 49782, 49783, 49784, 49785, 49786, 49787, 49788, 49789, 49790, 49791, 49792, 49793, 49794, 49795, 49796, 49797, 49798, 49799, 49800, 49801, 49802, 49803, 49804, 49805, 49806, 49807, 49808, 49809, 49810, 49811, 49812, 49813, 49814, 49815, 49816, 49817, 49818, 49819, 49820, 49821, 49822, 49823, 49824, 49825, 49826, 49827, 49828, 49829, 49830, 49831, 49832, 49833, 49834, 49835, 49836, 49837, 49838, 49839, 49840, 49841, 0, 49843, 0, 0, 0, 49847, 49848, 49849, 49850, 0, 0, 0, 0, 0, 49856, 49857, 0, 49859, 49860, 49861, 49862, 49863, 49864, 49865, 49866, 49867, 49868, 49869, 49870, 0, 49872, 49873, 49874, 49875, 49876, 49877, 49878, 49879, 49880, 49881, 49882, 49883, 49884, 49885, 49886, 49887, 49888, 49889, 49890, 49891, 49892, 49893, 49894, 49895, 0, 49897, 49898, 0, 49900, 0, 49902, 49903, 0, 49905, 49906, 49907, 49908, 49909, 49910, 49911, 49912, 49913, 49914, 49915, 49916, 49917, 49918, 49919, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p243: 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 1, 48578, 48578, 35283, 14032, 48578, 48578, 48578, 21481, 48578, 48578, 45298, 18947, 43753, 18194, 25218, 38288, 17349, 48578, 48578, 48578, 28258, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 39109, 48578, 15719, 48578, 48578, 48578, 48578, 17723, 19417, 39774, 33386, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 37225, 48578, 46102, 34671, 48578, 44117, 20156, 48578, 48578, 48578, 48578, 48578, 45480, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 46028, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 33018, 48578, 48578, 48578, 48578, 48578, 48578, 41584, 48578, 48578, 48578, 48578, 48578, 48578, 12027, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 19613, 33651, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 14246, 23825, 35999, 48578, 47604, 48578, 48578, 48578, 48578, 48578, 25201, 48578, 45610, 48578, 21994, 18134, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 33958, 19282, 48578, 48578, 48578, 23270, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 11279, 47369, 48578, 48578, 48578, 7519, 48578, 47928, 48578, 48578, 48578, 48578, 40498, 48578, 27604, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 49920, 49921, 0, 0, 49924, 49925, 49926, 0, 49928, 49929, 0, 0, 0, 0, 0, 0, 0, 49937, 49938, 49939, 0, 49941, 49942, 49943, 49944, 49945, 49946, 49947, 49948, 49949, 49950, 49951, 49952, 49953, 49954, 49955, 49956, 49957, 49958, 49959, 49960, 49961, 49962, 49963, 49964, 49965, 49966, 49967, 49968, 49969, 49970, 49971, 49972, 49973, 49974, 0, 49976, 0, 49978, 49979, 49980, 49981, 0, 0, 0, 0, 49986, 49987, 49988, 49989, 49990, 49991, 49992, 49993, 49994, 49995, 49996, 49997, 49998, 49999, 0, 50001, 0, 0, 50004, 0, 0, 50007, 50008, 50009, 50010, 50011, 0, 50013, 50014, 50015, 50016, 50017, 50018, 50019, 0, 50021, 50022, 50023, 50024, 50025, 50026, 50027, 50028, 50029, 50030, 50031, 50032, 50033, 50034, 50035, 50036, 50037, 50038, 50039, 50040, 50041, 50042, 50043, 50044, 0, 50046, 50047, 50048, 50049, 50050, 50051, 0, 50053, 50054, 50055, 50056, 50057, 50058, 0, 50060, 50061, 50062, 50063, 50064, 50065, 50066, 50067, 50068, 50069, 50070, 0, 0, 50073, 50074, 50075, 50076, 50077, 50078, 50079, 50080, 50081, 50082, 0, 0, 0, 50086, 0, 50088, 50089, 50090, 50091, 50092, 0, 50094, 0, 50096, 0, 0, 50099, 50100, 50101, 50102, 50103, 50104, 50105, 50106, 50107, 50108, 50109, 50110, 50111, 50112, 50113, 50114, 50115, 50116, 50117, 50118, 50119, 50120, 50121, 50122, 50123, 50124, 50125, 50126, 50127, 50128, 50129, 50130, 50131, 50132, 50133, 50134, 0, 0, 50137, 50138, 50139, 0, 50141, 50142, 50143, 50144, 50145, 50146, 50147, 50148, 50149, 50150, 50151, 50152, 50153, 50154, 50155, 50156, 50157, 50158, 50159, 50160, 0, 0, 50163, 50164, 50165, 0, 50167, 0, 50169, 50170, 50171, 50172, 0, 50174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p244: 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 18139, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 35951, 48578, 48578, 48578, 48578, 8582, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 13338, 48578, 48578, 48578, 48578, 48578, 22435, 48578, 8806, 48578, 48578, 48578, 48578, 19296, 25092, 11946, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 39674, 32527, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 45027, 48578, 41280, 48578, 24983, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 33401, 48578, 48578, 34414, 48578, 48578, 48578, 40336, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 39942, 48578, 48578, 48578, 42413, 23678, 43268, 48578, 48578, 48578, 48578, 48578, 24771, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 9257, 9601, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 42369, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 24817, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 35803, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 19919, 48578, 48578, 38932, 47130, 48578, 48578, 48578, 48578, 38934, 48578, 48578, 45051, 48578, 48578, 48578, 48578, 48578, 48578, 39580, 48578, 47962, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 46044, 48578, 48578, 48578, 48578, 48578, 48356, 48578, 28098, 48578, 48578, 48578, 48578, 48578, 48578, 12632, 25028, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 50177, 50178, 50179, 50180, 50181, 50182, 50183, 50184, 50185, 50186, 50187, 50188, 50189, 50190, 50191, 50192, 50193, 50194, 50195, 0, 50197, 50198, 50199, 50200, 0, 50202, 50203, 50204, 50205, 50206, 50207, 50208, 50209, 50210, 0, 50212, 50213, 50214, 50215, 50216, 0, 50218, 0, 50220, 50221, 50222, 50223, 0, 0, 0, 50227, 50228, 50229, 50230, 50231, 50232, 50233, 50234, 50235, 50236, 50237, 50238, 50239, 50240, 50241, 50242, 0, 0, 50245, 50246, 50247, 50248, 50249, 50250, 50251, 50252, 50253, 50254, 50255, 50256, 50257, 50258, 0, 50260, 0, 50262, 0, 50264, 50265, 50266, 50267, 50268, 50269, 50270, 50271, 50272, 50273, 50274, 0, 50276, 50277, 0, 50279, 50280, 50281, 0, 50283, 50284, 50285, 50286, 50287, 50288, 50289, 50290, 0, 50292, 50293, 50294, 0, 0, 0, 50298, 50299, 50300, 50301, 50302, 0, 50304, 50305, 50306, 50307, 50308, 50309, 50310, 50311, 50312, 50313, 50314, 50315, 50316, 50317, 50318, 50319, 50320, 50321, 50322, 50323, 0, 0, 50326, 50327, 50328, 50329, 50330, 50331, 50332, 0, 50334, 50335, 50336, 50337, 50338, 50339, 50340, 50341, 0, 50343, 50344, 50345, 50346, 50347, 50348, 50349, 50350, 50351, 50352, 50353, 50354, 50355, 50356, 50357, 50358, 50359, 50360, 50361, 50362, 0, 50364, 50365, 50366, 50367, 50368, 50369, 50370, 50371, 50372, 50373, 50374, 50375, 50376, 50377, 50378, 50379, 50380, 50381, 50382, 50383, 50384, 0, 50386, 50387, 0, 0, 50390, 50391, 50392, 50393, 0, 50395, 50396, 0, 50398, 50399, 50400, 50401, 50402, 50403, 0, 50405, 0, 50407, 50408, 50409, 50410, 50411, 50412, 50413, 50414, 0, 50416, 50417, 50418, 50419, 50420, 0, 50422, 0, 50424, 50425, 50426, 50427, 50428, 50429, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p245: 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 2, 1, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 1, 1, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 1, 28100, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 29449, 48578, 21857, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 26418, 48578, 48578, 34700, 33680, 48578, 48578, 26419, 48578, 14833, 48578, 48578, 48578, 8055, 48578, 48578, 48578, 48578, 24458, 48578, 48578, 40624, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 12505, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 10645, 48578, 48578, 48578, 46059, 48578, 48578, 35205, 48578, 48578, 33929, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 16015, 48578, 48578, 48578, 48578, 48578, 44200, 48578, 18879, 10348, 48578, 20755, 47553, 34498, 48578, 48578, 39971, 48578, 48578, 48578, 28902, 48578, 48578, 48578, 48578, 48578, 48578, 20466, 48578, 20468, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 13150, 48578, 48578, 48578, 48578, 48578, 31212, 31884, 48578, 14962, 48578, 48578, 48578, 48578, 48578, 45972, 22612, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 13249, 45528, 48578, 48578, 16720, 33300, 14921, 48578, 48578, 20526, 48578, 41677, 47078, 48578, 48578, 48578, 24559, 48578, 48578, 48578, 25415, 48578, 48578, 48578, 42650, 48578, 32132, 29320, 16239, 48578, 20051, 17596, 48578, 29669, 48578, 21858, 48578, 10320, 48578, 48578, 25043, 34328, 30234, 39801, 48578, 29863, 26416, 11879, 48578, 44426, 48578, 48578, 48578, 22826, 40250, 48578, 48578, 48578, 48578, 37622, 41769, 29514, 48578, 48578, 48578, 10577, 48578, 48578, 48578, 48578, 36357, 10337, 8498, 24795, 20065, 48578, 36770, 48578, 48578, 48578, 36317, 48578, 48578, 48578, 48578, 48578, 13256, 48578, 34672, 24177, 26119, 39198, 48578, 11968, 48578, 48578, 48578, 9107, 37183, 30343, 48578, 25223, 14922, 48578, 9223, 10088, 48578, 48578, 12506, 35854, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 50433, 50434, 50435, 50436, 50437, 50438, 50439, 50440, 0, 50442, 0, 50444, 50445, 50446, 50447, 50448, 50449, 50450, 50451, 50452, 50453, 0, 50455, 50456, 0, 0, 50459, 50460, 0, 50462, 0, 50464, 50465, 50466, 0, 50468, 50469, 50470, 50471, 0, 50473, 50474, 0, 50476, 50477, 50478, 50479, 50480, 50481, 50482, 50483, 50484, 50485, 0, 50487, 50488, 50489, 50490, 50491, 50492, 50493, 50494, 50495, 0, 50497, 50498, 50499, 0, 50501, 50502, 0, 50504, 50505, 0, 50507, 50508, 50509, 50510, 50511, 50512, 50513, 0, 50515, 50516, 50517, 50518, 50519, 0, 50521, 0, 0, 50524, 0, 0, 0, 50528, 50529, 0, 50531, 50532, 50533, 0, 50535, 50536, 50537, 50538, 50539, 50540, 0, 50542, 0, 50544, 50545, 50546, 50547, 50548, 50549, 50550, 0, 50552, 50553, 50554, 50555, 50556, 0, 0, 50559, 0, 50561, 50562, 50563, 50564, 50565, 0, 0, 50568, 50569, 50570, 50571, 50572, 50573, 50574, 50575, 50576, 50577, 0, 0, 50580, 50581, 0, 0, 0, 50585, 50586, 0, 50588, 0, 0, 50591, 50592, 50593, 0, 50595, 50596, 50597, 0, 50599, 50600, 50601, 0, 50603, 0, 0, 0, 50607, 0, 0, 50610, 0, 50612, 0, 50614, 0, 50616, 50617, 0, 0, 0, 0, 50622, 0, 0, 0, 50626, 0, 50628, 50629, 50630, 0, 0, 50633, 50634, 50635, 50636, 0, 0, 0, 50640, 50641, 50642, 0, 50644, 50645, 50646, 50647, 0, 0, 0, 0, 0, 50653, 0, 50655, 50656, 50657, 0, 50659, 50660, 50661, 50662, 50663, 0, 50665, 0, 0, 0, 0, 50670, 0, 50672, 50673, 50674, 0, 0, 0, 50678, 0, 0, 50681, 0, 0, 50684, 50685, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p246: 1, 2, 2, 1, 2, 1, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 1, 1, 1, 2, 1, 2, 2, 1, 2, 1, 1, 1, 2, 1, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 2, 2, 1, 2, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 12662, 48578, 48578, 24560, 48578, 41448, 41451, 45845, 48578, 48578, 42714, 48578, 30429, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 18299, 48578, 36726, 48578, 22843, 48578, 48578, 11497, 44000, 14908, 48578, 29111, 36603, 21192, 29757, 10400, 29860, 48578, 21050, 16823, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 47737, 48578, 48578, 18151, 11108, 34622, 36157, 29762, 32740, 32741, 48578, 18043, 29578, 48578, 48578, 48578, 48578, 48578, 48578, 7785, 48578, 39217, 48578, 48578, 48578, 31563, 28533, 48578, 36158, 32154, 48578, 48578, 40103, 48578, 46135, 18397, 40388, 48578, 34431, 48578, 48578, 37045, 48578, 24829, 8455, 11134, 48578, 40471, 48578, 40390, 15110, 48578, 48578, 48578, 48578, 21063, 48578, 48578, 48578, 15365, 48578, 48578, 36255, 33803, 48578, 48578, 10224, 11436, 48578, 48578, 48578, 48578, 48578, 48578, 32416, 18047, 8254, 48578, 9444, 48578, 48578, 48578, 48578, 28005, 48578, 48578, 48578, 40751, 13231, 48578, 48578, 10030, 44302, 47226, 48578, 48578, 48578, 24140, 34434, 48578, 48578, 48578, 48578, 48578, 13608, 48578, 26808, 18750, 48578, 36217, 48578, 13705, 36358, 34029, 26976, 48578, 48578, 48578, 46356, 31533, 29878, 36078, 9575, 42225, 48578, 40708, 7907, 16433, 48578, 48578, 48578, 9378, 48578, 48578, 48578, 48578, 48578, 48578, 16310, 9186, 48578, 48578, 48578, 38254, 48578, 48578, 19833, 48578, 48578, 48578, 48578, 48578, 23419, 48578, 48578, 11969, 27712, 11873, 29189, 43828, 48578, 48578, 48578, 48578, 26840, 22714, 26729, 13336, 18540, 13995, 20490, 35307, 48578, 48578, 48578, 48578, 9721, 35762, 48578, 18768, 22196, 41345, 48578, 48578, 40626, 48578, 27420, 32398, 23826, 48578, 48578, 47079, 38011, 48578, 48578, 48578, 48578, 33309, 48578, 48578, 48578, 45397, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 50689, 50690, 0, 50692, 0, 0, 0, 50696, 50697, 0, 50699, 0, 50701, 50702, 50703, 50704, 50705, 50706, 50707, 0, 50709, 0, 50711, 0, 50713, 50714, 0, 0, 0, 50718, 0, 0, 0, 0, 0, 0, 50725, 0, 0, 50728, 50729, 50730, 50731, 50732, 50733, 50734, 50735, 50736, 50737, 0, 50739, 50740, 0, 0, 0, 0, 0, 0, 0, 50748, 0, 0, 50751, 50752, 50753, 50754, 50755, 50756, 0, 50758, 0, 50760, 50761, 50762, 0, 0, 50765, 0, 0, 50768, 50769, 0, 50771, 0, 0, 0, 50775, 0, 50777, 50778, 0, 50780, 0, 0, 0, 50784, 0, 50786, 0, 0, 50789, 50790, 50791, 50792, 0, 50794, 50795, 50796, 0, 50798, 50799, 0, 0, 50802, 50803, 0, 0, 50806, 50807, 50808, 50809, 50810, 50811, 0, 0, 0, 50815, 0, 50817, 50818, 50819, 50820, 0, 50822, 50823, 50824, 0, 0, 50827, 50828, 0, 0, 0, 50832, 50833, 50834, 0, 0, 50837, 50838, 50839, 50840, 50841, 0, 50843, 0, 0, 50846, 0, 50848, 0, 0, 0, 0, 50853, 50854, 50855, 0, 0, 0, 0, 0, 0, 50862, 0, 0, 0, 50866, 50867, 50868, 0, 50870, 50871, 50872, 50873, 50874, 50875, 0, 0, 50878, 50879, 50880, 0, 50882, 50883, 0, 50885, 50886, 50887, 50888, 50889, 0, 50891, 50892, 0, 0, 0, 0, 0, 50898, 50899, 50900, 50901, 0, 0, 0, 0, 0, 0, 0, 0, 50910, 50911, 50912, 50913, 0, 0, 50916, 0, 0, 0, 50920, 50921, 0, 50923, 0, 0, 0, 50927, 50928, 0, 0, 50931, 50932, 50933, 50934, 0, 50936, 50937, 50938, 0, 50940, 50941, 50942, 50943, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p247: 2, 1, 1, 2, 1, 2, 2, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1, 1, 2, 2, 2, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 1, 1, 48578, 7441, 38127, 48578, 18531, 48578, 48578, 46000, 48578, 43643, 15923, 19106, 48578, 32257, 48578, 48578, 48578, 48578, 48578, 25113, 21793, 7742, 23978, 48578, 26672, 25416, 48578, 48578, 24337, 19683, 48578, 48578, 48578, 18912, 40429, 34286, 46183, 48578, 48578, 9068, 48578, 48578, 48578, 9736, 48578, 48578, 48578, 9738, 21276, 7641, 8115, 48578, 48578, 41853, 48578, 18312, 48578, 44221, 48578, 8407, 11337, 48578, 19690, 48578, 48578, 48578, 28051, 48578, 26812, 47145, 48578, 42437, 13480, 42420, 48578, 48578, 48578, 32641, 43319, 48578, 17504, 48578, 28134, 36713, 15411, 28018, 45291, 48578, 18153, 48578, 10363, 37341, 48578, 48578, 11229, 15182, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 8037, 48578, 48578, 48578, 48578, 12870, 9434, 25955, 30213, 12179, 42448, 48578, 42835, 48578, 48578, 48578, 39744, 8317, 47396, 48578, 42684, 48578, 26177, 48578, 23070, 48578, 48578, 46897, 48578, 48578, 48578, 48578, 37480, 12771, 34629, 25029, 45442, 46898, 28334, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 9861, 48578, 48578, 39861, 45409, 48578, 48578, 44508, 13531, 9834, 40104, 42031, 48578, 39527, 8002, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 45785, 48578, 31871, 48578, 18159, 45307, 22112, 48578, 17184, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 7453, 45469, 48578, 48578, 33418, 48578, 39615, 10785, 41751, 48578, 7459, 48578, 48578, 48578, 46217, 22123, 48578, 48578, 24403, 48578, 23911, 48578, 48578, 9442, 48578, 25979, 48578, 19961, 48578, 48578, 39298, 40025, 41570, 40752, 48578, 13902, 43681, 18865, 36342, 29021, 39009, 48578, 48578, 37051, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 37519, 10369, 48578, 48578, 48578, 17831, 48578, 36343, 41008, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 50944, 0, 0, 50947, 0, 50949, 50950, 0, 50952, 0, 0, 0, 50956, 0, 50958, 50959, 50960, 50961, 50962, 0, 0, 0, 0, 50967, 0, 0, 50970, 50971, 0, 0, 50974, 50975, 50976, 0, 0, 0, 0, 50981, 50982, 0, 50984, 50985, 50986, 0, 50988, 50989, 50990, 0, 0, 0, 0, 50995, 50996, 0, 50998, 0, 51000, 0, 51002, 0, 0, 51005, 0, 51007, 51008, 51009, 0, 51011, 0, 0, 51014, 0, 0, 0, 51018, 51019, 51020, 0, 0, 51023, 0, 51025, 0, 0, 0, 0, 0, 51031, 0, 51033, 0, 0, 51036, 51037, 0, 0, 51040, 51041, 51042, 51043, 51044, 51045, 51046, 0, 51048, 51049, 51050, 51051, 0, 0, 0, 0, 0, 0, 51058, 0, 51060, 51061, 51062, 0, 0, 0, 51066, 0, 51068, 0, 51070, 0, 51072, 51073, 0, 51075, 51076, 51077, 51078, 0, 0, 0, 0, 0, 0, 0, 51086, 51087, 51088, 51089, 51090, 51091, 51092, 51093, 51094, 0, 51096, 51097, 0, 0, 51100, 51101, 0, 0, 0, 0, 0, 51107, 0, 0, 51110, 51111, 51112, 51113, 51114, 51115, 51116, 51117, 0, 51119, 0, 51121, 0, 0, 0, 51125, 0, 51127, 51128, 51129, 51130, 51131, 51132, 51133, 51134, 0, 0, 51137, 51138, 0, 51140, 0, 0, 0, 51144, 0, 51146, 51147, 51148, 0, 0, 51151, 51152, 0, 51154, 0, 51156, 51157, 0, 51159, 0, 51161, 0, 51163, 51164, 0, 0, 0, 0, 51169, 0, 0, 0, 0, 0, 0, 51176, 51177, 0, 51179, 51180, 51181, 51182, 51183, 51184, 51185, 51186, 51187, 51188, 51189, 51190, 0, 0, 51193, 51194, 51195, 0, 51197, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p248: 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 1, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 45249, 48578, 48578, 48578, 48578, 48578, 48578, 15949, 48578, 48578, 48578, 25756, 9866, 29327, 19589, 48578, 35731, 48578, 48578, 38799, 48578, 48578, 39887, 48578, 33215, 19979, 35284, 18721, 48578, 12077, 48578, 35732, 34706, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 15264, 24441, 48578, 33810, 48578, 36070, 48578, 48578, 48578, 48578, 48578, 48578, 12988, 48578, 48578, 48578, 8520, 48578, 16311, 11889, 48578, 30951, 48578, 48578, 23930, 35295, 48578, 48578, 48243, 17445, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 10868, 9610, 48578, 48578, 38375, 39898, 25067, 41579, 48578, 48578, 48578, 48578, 48578, 48578, 8521, 48578, 18679, 48578, 38820, 10676, 40779, 28349, 41665, 48578, 40288, 45702, 48578, 35476, 48578, 39122, 8267, 32421, 34867, 7824, 16905, 22389, 10382, 48578, 48578, 40950, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 14227, 24459, 38839, 18684, 35308, 48578, 10186, 48578, 48578, 48578, 48578, 48578, 26030, 41666, 48578, 48578, 12504, 12408, 42003, 48578, 45822, 21919, 48578, 13956, 33219, 23530, 35320, 48578, 48578, 48578, 48578, 48578, 48578, 45538, 48578, 48578, 48578, 8565, 48578, 48578, 43561, 48578, 17450, 48578, 25080, 48578, 48578, 17484, 42060, 48578, 48578, 48578, 48578, 48578, 34873, 7359, 31775, 48578, 48578, 24014, 40170, 48578, 34409, 48578, 48578, 48578, 48578, 48578, 48578, 25936, 48578, 32366, 24726, 48578, 48578, 48578, 48578, 48578, 40046, 48578, 43637, 48578, 48578, 40180, 48578, 48578, 48578, 48578, 48578, 48578, 25384, 43979, 48578, 48578, 48578, 48578, 12534, 23686, 39953, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 43136, 48578, 48578, 48578, 38411, 48578, 42931, 37301, 9314, 48578, 40433, 48578, 48578, 34889, 21098, 48578, 7642, 14439, 48578, 27849, 33004, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 51201, 51202, 51203, 51204, 51205, 51206, 0, 51208, 51209, 51210, 0, 0, 0, 0, 51215, 0, 51217, 51218, 0, 51220, 51221, 0, 51223, 0, 0, 0, 0, 51228, 0, 51230, 0, 0, 51233, 51234, 51235, 51236, 51237, 51238, 51239, 51240, 51241, 0, 0, 51244, 0, 51246, 0, 51248, 51249, 51250, 51251, 51252, 51253, 0, 51255, 51256, 51257, 0, 51259, 0, 0, 51262, 0, 51264, 51265, 0, 0, 51268, 51269, 0, 0, 51272, 51273, 51274, 51275, 51276, 51277, 51278, 0, 0, 51281, 51282, 0, 0, 0, 0, 51287, 51288, 51289, 51290, 51291, 51292, 0, 51294, 0, 51296, 0, 0, 0, 0, 0, 51302, 0, 0, 51305, 0, 51307, 0, 0, 0, 0, 0, 0, 0, 0, 51316, 51317, 0, 51319, 51320, 51321, 51322, 51323, 51324, 51325, 0, 0, 0, 0, 0, 51331, 0, 51333, 51334, 51335, 51336, 51337, 0, 0, 51340, 51341, 0, 0, 0, 51345, 0, 0, 51348, 0, 0, 0, 0, 51353, 51354, 51355, 51356, 51357, 51358, 0, 51360, 51361, 51362, 0, 51364, 51365, 0, 51367, 0, 51369, 0, 51371, 51372, 0, 0, 51375, 51376, 51377, 51378, 51379, 0, 0, 0, 51383, 51384, 0, 0, 51387, 0, 51389, 51390, 51391, 51392, 51393, 51394, 0, 51396, 0, 0, 51399, 51400, 51401, 51402, 51403, 0, 51405, 0, 51407, 51408, 0, 51410, 51411, 51412, 51413, 51414, 51415, 0, 0, 51418, 51419, 51420, 51421, 0, 0, 0, 51425, 51426, 51427, 51428, 51429, 51430, 51431, 0, 51433, 51434, 51435, 0, 51437, 0, 0, 0, 51441, 0, 51443, 51444, 0, 0, 51447, 0, 0, 51450, 0, 0, 51453, 51454, 51455, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p249: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 1, 2, 1, 2, 2, 1, 1, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 12232, 19748, 48578, 48578, 48578, 48578, 35245, 31719, 7651, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 36518, 44005, 48578, 37348, 48578, 37530, 44154, 48578, 13388, 48578, 48578, 39001, 22818, 48578, 48578, 48578, 31722, 13776, 14022, 48578, 43013, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 38731, 31478, 35250, 48578, 48578, 25471, 48578, 37585, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 10298, 47403, 48578, 26898, 48578, 48578, 48578, 48578, 48578, 48578, 32212, 48578, 48578, 48578, 48578, 48578, 44199, 48578, 43073, 27264, 48578, 48578, 23515, 46967, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 28496, 48578, 7817, 48578, 48578, 48578, 13402, 48578, 48578, 48578, 46968, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 43105, 48578, 48578, 25318, 44304, 11742, 12939, 46990, 48578, 48578, 48578, 32919, 48578, 48578, 20383, 48578, 48578, 48578, 48578, 48578, 37676, 48578, 21231, 48578, 29410, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 51456, 51457, 51458, 51459, 51460, 51461, 51462, 51463, 51464, 51465, 0, 0, 51468, 51469, 51470, 51471, 0, 0, 0, 51475, 51476, 51477, 51478, 51479, 51480, 51481, 51482, 51483, 51484, 51485, 51486, 51487, 51488, 51489, 51490, 51491, 51492, 51493, 0, 0, 51496, 0, 51498, 0, 0, 51501, 0, 51503, 51504, 0, 0, 51507, 51508, 51509, 0, 0, 0, 51513, 0, 51515, 51516, 51517, 51518, 51519, 51520, 51521, 51522, 51523, 51524, 51525, 51526, 51527, 51528, 51529, 51530, 51531, 51532, 51533, 51534, 51535, 51536, 51537, 0, 0, 0, 51541, 51542, 0, 51544, 0, 51546, 51547, 51548, 51549, 51550, 51551, 51552, 51553, 51554, 51555, 51556, 51557, 51558, 51559, 51560, 51561, 51562, 51563, 51564, 0, 0, 51567, 0, 51569, 51570, 51571, 51572, 51573, 51574, 0, 51576, 51577, 51578, 51579, 51580, 0, 51582, 0, 0, 51585, 51586, 0, 0, 51589, 51590, 51591, 51592, 51593, 51594, 51595, 51596, 51597, 51598, 51599, 51600, 51601, 51602, 51603, 51604, 51605, 51606, 51607, 51608, 51609, 51610, 51611, 51612, 51613, 51614, 51615, 51616, 51617, 51618, 51619, 0, 51621, 0, 51623, 51624, 51625, 0, 51627, 51628, 51629, 0, 51631, 51632, 51633, 51634, 51635, 51636, 51637, 51638, 51639, 51640, 51641, 51642, 51643, 51644, 51645, 51646, 51647, 51648, 51649, 51650, 51651, 51652, 51653, 51654, 51655, 51656, 51657, 51658, 51659, 51660, 51661, 51662, 51663, 51664, 51665, 51666, 51667, 51668, 0, 51670, 51671, 0, 0, 0, 0, 0, 51677, 51678, 51679, 0, 51681, 51682, 0, 51684, 51685, 51686, 51687, 51688, 0, 51690, 0, 51692, 0, 51694, 51695, 51696, 51697, 51698, 51699, 51700, 51701, 51702, 51703, 51704, 51705, 51706, 51707, 51708, 51709, 51710, 51711, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p24A: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 26015, 32056, 48578, 39021, 12203, 48578, 48578, 48578, 48578, 18363, 26423, 48578, 23915, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 16208, 48578, 48578, 48578, 48578, 25452, 48578, 48578, 48578, 48578, 48578, 48578, 23827, 48578, 47697, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 45450, 17541, 39823, 48578, 48578, 17544, 24496, 48578, 48578, 13081, 15989, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 18602, 48578, 48578, 48578, 48578, 48578, 48578, 14253, 48578, 39267, 48578, 48578, 48578, 48578, 20188, 30622, 39272, 44127, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 46563, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 47704, 48578, 48578, 48578, 10090, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 40351, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 28362, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 19920, 36558, 48578, 48578, 48578, 48578, 41849, 48578, 48578, 48578, 17495, 40421, 25417, 48578, 7811, 8273, 48578, 48578, 48578, 48578, 16241, 25275, 48578, 48578, 23375, 30866, 20768, 48578, 14297, 42202, 13581, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 51712, 51713, 51714, 51715, 51716, 51717, 51718, 51719, 51720, 51721, 51722, 51723, 51724, 0, 0, 51727, 0, 0, 51730, 51731, 51732, 51733, 0, 0, 51736, 0, 51738, 51739, 51740, 51741, 51742, 51743, 51744, 51745, 51746, 51747, 51748, 51749, 51750, 51751, 51752, 51753, 51754, 51755, 51756, 51757, 51758, 51759, 51760, 51761, 51762, 51763, 51764, 51765, 0, 51767, 51768, 51769, 51770, 0, 51772, 51773, 51774, 51775, 51776, 51777, 0, 51779, 0, 51781, 51782, 51783, 51784, 51785, 51786, 51787, 51788, 51789, 51790, 51791, 51792, 51793, 51794, 51795, 51796, 51797, 51798, 51799, 51800, 51801, 51802, 51803, 51804, 51805, 51806, 51807, 51808, 51809, 51810, 51811, 51812, 51813, 51814, 51815, 0, 0, 0, 51819, 51820, 0, 0, 51823, 51824, 0, 0, 51827, 51828, 51829, 51830, 51831, 51832, 51833, 51834, 51835, 51836, 0, 51838, 51839, 51840, 51841, 51842, 51843, 0, 51845, 0, 51847, 51848, 51849, 51850, 0, 0, 0, 0, 51855, 51856, 51857, 51858, 51859, 51860, 51861, 51862, 51863, 51864, 51865, 51866, 51867, 51868, 51869, 51870, 51871, 51872, 0, 51874, 51875, 51876, 51877, 51878, 51879, 51880, 51881, 0, 51883, 51884, 51885, 0, 51887, 51888, 51889, 51890, 51891, 51892, 51893, 51894, 51895, 51896, 51897, 51898, 51899, 51900, 51901, 51902, 51903, 51904, 51905, 51906, 51907, 51908, 51909, 51910, 51911, 51912, 0, 51914, 51915, 51916, 51917, 51918, 51919, 51920, 51921, 51922, 51923, 51924, 0, 51926, 51927, 51928, 51929, 51930, 51931, 51932, 0, 0, 51935, 51936, 51937, 51938, 0, 51940, 51941, 51942, 0, 0, 0, 51946, 0, 0, 51949, 51950, 51951, 51952, 0, 0, 51955, 51956, 0, 0, 0, 51960, 0, 0, 0, 51964, 51965, 51966, 51967, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p24B: 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 48578, 19230, 13672, 29501, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 44847, 48578, 48578, 25779, 40539, 48578, 48578, 24690, 42235, 38840, 42242, 48578, 38890, 48578, 48578, 25886, 48578, 41955, 48578, 48578, 32259, 48578, 48578, 48578, 48578, 32484, 37493, 48307, 14569, 42959, 13684, 35448, 48578, 29698, 48578, 17223, 48578, 40876, 48578, 16199, 48578, 12910, 48578, 28144, 48578, 48578, 48578, 48578, 48578, 48578, 14026, 37457, 48578, 48578, 28775, 48578, 48578, 48578, 48578, 48578, 13156, 18715, 48578, 48578, 36344, 14588, 48578, 48578, 48578, 38473, 7494, 48578, 30130, 48578, 48578, 48578, 48578, 17245, 48578, 15765, 24141, 48578, 13860, 15456, 28165, 48578, 9692, 48578, 48578, 48578, 48578, 20837, 48578, 31692, 48578, 43597, 39758, 48578, 48578, 48578, 48578, 18195, 48578, 48578, 35296, 48578, 48578, 48578, 48578, 48578, 48578, 15910, 14228, 40951, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 38862, 48578, 48578, 48578, 22525, 17048, 20845, 11350, 23944, 17805, 48476, 48578, 48578, 48578, 48578, 30032, 48578, 48578, 12719, 38891, 23947, 48578, 33613, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 25887, 48578, 13850, 22361, 48578, 48578, 10097, 48578, 40183, 37477, 46274, 48578, 47661, 48578, 48578, 48578, 25607, 23980, 48578, 48578, 48578, 12270, 15629, 48578, 48578, 48578, 48578, 48578, 48578, 34319, 48578, 48578, 41780, 48578, 48578, 48578, 48578, 15659, 48578, 48578, 48578, 41697, 48578, 48578, 48578, 48578, 48578, 35388, 48578, 48578, 48578, 47154, 48578, 34320, 48578, 48578, 48578, 48578, 34073, 48578, 48578, 48578, 10020, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 18776, 43562, 48578, 48578, 27217, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 51968, 0, 0, 0, 51972, 51973, 51974, 51975, 51976, 51977, 51978, 51979, 0, 51981, 51982, 0, 0, 51985, 51986, 0, 0, 0, 0, 51991, 0, 51993, 51994, 0, 51996, 0, 51998, 51999, 0, 52001, 52002, 52003, 52004, 0, 0, 0, 0, 0, 0, 0, 52012, 0, 52014, 0, 52016, 0, 52018, 0, 52020, 0, 52022, 0, 52024, 52025, 52026, 52027, 52028, 52029, 0, 0, 52032, 52033, 0, 52035, 52036, 52037, 52038, 52039, 0, 0, 52042, 52043, 0, 0, 52046, 52047, 52048, 0, 0, 52051, 0, 52053, 52054, 52055, 52056, 0, 52058, 0, 0, 52061, 0, 0, 0, 52065, 0, 52067, 52068, 52069, 52070, 0, 52072, 0, 52074, 0, 0, 52077, 52078, 52079, 52080, 0, 52082, 52083, 0, 52085, 52086, 52087, 52088, 52089, 52090, 0, 0, 0, 52094, 52095, 52096, 52097, 52098, 52099, 52100, 52101, 0, 52103, 52104, 52105, 0, 0, 0, 0, 0, 0, 0, 52113, 52114, 52115, 52116, 0, 52118, 52119, 0, 0, 0, 52123, 0, 52125, 52126, 52127, 52128, 52129, 52130, 52131, 52132, 52133, 52134, 0, 52136, 0, 0, 52139, 52140, 0, 52142, 0, 0, 0, 52146, 0, 52148, 52149, 52150, 0, 0, 52153, 52154, 52155, 0, 0, 52158, 52159, 52160, 52161, 52162, 52163, 0, 52165, 52166, 0, 52168, 52169, 52170, 52171, 0, 52173, 52174, 52175, 0, 52177, 52178, 52179, 52180, 52181, 0, 52183, 52184, 52185, 0, 52187, 0, 52189, 52190, 52191, 52192, 0, 52194, 52195, 52196, 0, 52198, 52199, 52200, 52201, 52202, 52203, 52204, 52205, 52206, 52207, 52208, 52209, 52210, 52211, 52212, 52213, 52214, 0, 0, 52217, 52218, 0, 52220, 52221, 52222, 52223, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p24C: 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48578, 48578, 32477, 48578, 48578, 39740, 48578, 48578, 8144, 48578, 48578, 48578, 11348, 48578, 48578, 48578, 48578, 30362, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 22590, 23409, 48578, 48578, 32272, 48578, 17434, 10827, 26742, 48578, 48578, 48578, 48578, 45753, 48578, 48578, 48578, 14909, 48578, 10279, 48578, 48578, 48578, 48578, 48578, 48578, 21348, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 25030, 48578, 28139, 28140, 36854, 48578, 48578, 48578, 32406, 48365, 29704, 44094, 48578, 34504, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 25044, 34432, 37152, 48578, 15829, 33719, 37350, 48578, 28247, 48578, 48578, 48578, 37410, 16148, 13157, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 27202, 7900, 48578, 40115, 35012, 36805, 16884, 48578, 48578, 15251, 16888, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 16889, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 47513, 48578, 23519, 48578, 26341, 36579, 32455, 48578, 48578, 13404, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 22030, 41655, 48578, 48578, 32899, 12402, 48578, 48578, 26920, 48578, 48578, 48578, 48578, 48578, 26231, 48578, 40952, 48578, 38841, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 26514, 30451, 48578, 9839, 48578, 48578, 33653, 17364, 30149, 48578, 48578, 48578, 19443, 48578, 48578, 48578, 48578, 24498, 48578, 44650, 7834, 48578, 36267, 48578, 48578, 48578, 48578, 11078, 48578, 48578, 11079, 48578, 48578, 48578, 30468, 38892, 8188, 48578, 48578, 48578, 42533, 48578, 48578, 16732, 48578, 47613, 48578, 48578, 48578, 23957, 23958, 9770, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 52224, 52225, 0, 52227, 52228, 0, 52230, 52231, 0, 52233, 52234, 52235, 0, 52237, 52238, 52239, 52240, 0, 52242, 52243, 52244, 52245, 52246, 52247, 52248, 0, 0, 52251, 52252, 0, 52254, 0, 0, 0, 52258, 52259, 52260, 52261, 0, 52263, 52264, 52265, 0, 52267, 0, 52269, 52270, 52271, 52272, 52273, 52274, 0, 52276, 52277, 52278, 52279, 52280, 52281, 52282, 52283, 52284, 52285, 52286, 52287, 52288, 52289, 52290, 0, 52292, 0, 0, 0, 52296, 52297, 52298, 0, 0, 0, 0, 52303, 0, 52305, 52306, 52307, 52308, 52309, 52310, 52311, 52312, 52313, 52314, 0, 0, 0, 52318, 0, 0, 0, 52322, 0, 52324, 52325, 52326, 0, 0, 0, 52330, 52331, 52332, 52333, 52334, 52335, 52336, 52337, 52338, 52339, 0, 0, 52342, 0, 0, 0, 0, 52347, 52348, 0, 0, 52351, 52352, 52353, 52354, 52355, 52356, 52357, 52358, 52359, 52360, 0, 52362, 52363, 52364, 52365, 52366, 52367, 52368, 0, 52370, 0, 52372, 0, 0, 0, 52376, 52377, 0, 52379, 52380, 52381, 52382, 52383, 52384, 52385, 52386, 52387, 52388, 52389, 52390, 52391, 0, 0, 52394, 52395, 0, 0, 52398, 52399, 0, 52401, 52402, 52403, 52404, 52405, 0, 52407, 0, 52409, 0, 52411, 52412, 52413, 52414, 52415, 52416, 52417, 0, 0, 52420, 0, 52422, 52423, 0, 0, 0, 52427, 52428, 52429, 0, 52431, 52432, 52433, 52434, 0, 52436, 0, 0, 52439, 0, 52441, 52442, 52443, 52444, 0, 52446, 52447, 0, 52449, 52450, 52451, 0, 0, 0, 52455, 52456, 52457, 0, 52459, 52460, 0, 52462, 0, 52464, 52465, 52466, 0, 0, 0, 52470, 52471, 52472, 52473, 52474, 52475, 52476, 52477, 52478, 52479, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p24D: 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 16734, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 13293, 48578, 48578, 48578, 48578, 48578, 41473, 48578, 48578, 48578, 48578, 28761, 34520, 48578, 46969, 48578, 48578, 48578, 47058, 48578, 48578, 47059, 29851, 48578, 21501, 21503, 42932, 44139, 48578, 21504, 48578, 48578, 48578, 48578, 18639, 48578, 13685, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 36201, 31414, 31506, 40435, 9898, 19759, 48578, 31594, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 13689, 46645, 48578, 48578, 29211, 48578, 38602, 48578, 38185, 48578, 48578, 48578, 48578, 48578, 8444, 48578, 48578, 8082, 48578, 28026, 21203, 36204, 24902, 48578, 48578, 48578, 48578, 9603, 45685, 48578, 48578, 48578, 48578, 48578, 10778, 41422, 23176, 43525, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 25626, 30867, 48578, 17398, 33678, 17157, 9748, 48578, 20673, 23855, 48578, 48578, 48578, 48578, 48578, 48578, 38756, 48578, 48578, 9156, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 46827, 48578, 37288, 15252, 48578, 18108, 48578, 28788, 43074, 47744, 48578, 48578, 48578, 9790, 48578, 48578, 48578, 35368, 48578, 48578, 45180, 48578, 48578, 48578, 48578, 48578, 48578, 13701, 48578, 38773, 11371, 40531, 20685, 33884, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 37706, 8089, 14704, 20384, 32230, 43107, 13405, 40924, 28166, 19590, 48578, 48578, 46420, 30559, 13785, 43420, 48578, 21593, 29790, 40447, 26328, 9446, 25449, 8862, 12645, 12689, 48578, 48578, 48578, 48578, 48578, 23490, 48578, 38800, 21890, 48578, 39977, 48578, 21302, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 37533, 48578, 28389, 39717, 32342, 31441, 37014, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 52481, 52482, 52483, 52484, 52485, 52486, 52487, 52488, 52489, 52490, 52491, 52492, 0, 52494, 52495, 52496, 52497, 52498, 0, 52500, 52501, 52502, 52503, 0, 0, 52506, 0, 52508, 52509, 52510, 0, 52512, 52513, 0, 0, 52516, 0, 0, 0, 0, 52521, 0, 52523, 52524, 52525, 52526, 0, 52528, 0, 52530, 52531, 52532, 52533, 52534, 52535, 52536, 52537, 52538, 0, 0, 0, 0, 0, 0, 52545, 0, 52547, 52548, 52549, 52550, 52551, 52552, 52553, 0, 0, 52556, 52557, 0, 52559, 0, 52561, 0, 52563, 52564, 52565, 52566, 52567, 0, 52569, 52570, 0, 52572, 0, 0, 0, 0, 52577, 52578, 52579, 52580, 0, 0, 52583, 52584, 52585, 52586, 52587, 0, 0, 0, 0, 52592, 52593, 52594, 52595, 52596, 52597, 52598, 52599, 0, 0, 52602, 0, 0, 0, 0, 52607, 0, 0, 52610, 52611, 52612, 52613, 52614, 52615, 0, 52617, 52618, 0, 52620, 52621, 52622, 52623, 52624, 52625, 52626, 0, 52628, 0, 0, 52631, 0, 52633, 0, 0, 0, 52637, 52638, 52639, 0, 52641, 52642, 52643, 0, 52645, 52646, 0, 52648, 52649, 52650, 52651, 52652, 52653, 0, 52655, 0, 0, 0, 0, 0, 52661, 52662, 52663, 52664, 52665, 52666, 52667, 52668, 52669, 52670, 52671, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52682, 52683, 0, 0, 0, 0, 52688, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52698, 52699, 52700, 52701, 52702, 0, 52704, 0, 0, 52707, 0, 52709, 0, 52711, 52712, 52713, 52714, 52715, 52716, 52717, 52718, 52719, 52720, 52721, 52722, 52723, 52724, 52725, 52726, 52727, 52728, 0, 52730, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p24E: 1, 1, 2, 2, 2, 1, 1, 2, 1, 1, 1, 2, 2, 2, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 40837, 19029, 48578, 48578, 48578, 27664, 37984, 48578, 44043, 37177, 12308, 48578, 48578, 48578, 22669, 28174, 48578, 15463, 44590, 46848, 48578, 17194, 7260, 15464, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 41999, 48578, 48578, 34218, 48578, 9938, 48578, 48578, 48578, 10880, 45189, 34709, 48578, 35309, 33192, 48578, 14229, 46584, 7277, 35627, 9382, 48578, 32396, 43162, 41798, 48578, 28176, 38554, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 24460, 24461, 48578, 38844, 22179, 34141, 48578, 41485, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 10433, 43693, 8566, 10349, 48578, 48578, 45663, 37421, 18365, 36283, 43792, 8388, 28907, 24804, 40454, 44458, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 8183, 48578, 27802, 13790, 48578, 12619, 30601, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 34710, 48578, 48578, 39920, 47204, 47802, 48578, 8750, 48578, 38012, 38879, 48578, 12716, 48578, 40075, 29314, 28825, 48578, 48578, 8901, 33826, 14784, 27714, 30811, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 33608, 35635, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 19640, 48578, 48578, 12413, 22051, 26076, 48578, 7620, 48578, 48578, 48578, 43233, 34600, 35506, 38114, 37596, 11214, 48578, 48578, 48578, 48578, 38393, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 8607, 48578, 43504, 19222, 48578, 48578, 22437, 28916, 48578, 48578, 48578, 48578, 7365, 48578, 24543, 48578, 45796, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 26099, 48578, 48578, 48578, 48578, 8755, 29347, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 16930, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 52738, 52739, 52740, 0, 0, 52743, 0, 0, 0, 52747, 52748, 52749, 0, 0, 52752, 0, 0, 0, 52756, 0, 0, 0, 52760, 52761, 52762, 52763, 52764, 52765, 52766, 52767, 52768, 0, 52770, 52771, 0, 52773, 0, 52775, 52776, 52777, 0, 0, 0, 52781, 0, 0, 52784, 0, 0, 0, 0, 0, 52790, 0, 0, 0, 52794, 0, 0, 52797, 52798, 52799, 52800, 52801, 52802, 52803, 52804, 52805, 52806, 0, 0, 52809, 0, 0, 0, 52813, 0, 52815, 52816, 52817, 52818, 52819, 52820, 52821, 52822, 52823, 52824, 52825, 52826, 0, 0, 0, 0, 52831, 52832, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52843, 52844, 52845, 52846, 52847, 52848, 52849, 0, 52851, 0, 0, 52854, 0, 0, 52857, 52858, 52859, 52860, 52861, 52862, 52863, 0, 52865, 52866, 0, 0, 0, 52870, 0, 52872, 0, 0, 52875, 0, 52877, 0, 0, 0, 52881, 52882, 0, 0, 0, 0, 0, 52888, 52889, 52890, 52891, 52892, 52893, 52894, 52895, 52896, 52897, 52898, 52899, 52900, 52901, 52902, 52903, 52904, 52905, 0, 0, 52908, 52909, 52910, 52911, 52912, 52913, 52914, 52915, 52916, 52917, 52918, 0, 52920, 52921, 0, 0, 0, 52925, 0, 52927, 52928, 52929, 0, 0, 0, 0, 0, 0, 52936, 52937, 52938, 52939, 0, 52941, 52942, 52943, 52944, 52945, 52946, 52947, 52948, 52949, 0, 52951, 0, 0, 52954, 52955, 0, 0, 52958, 52959, 52960, 52961, 0, 52963, 0, 52965, 0, 52967, 52968, 52969, 52970, 52971, 52972, 52973, 52974, 52975, 52976, 0, 52978, 52979, 52980, 52981, 0, 0, 52984, 52985, 52986, 52987, 52988, 52989, 52990, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p24F: 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 1, 1, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 35229, 27178, 39567, 25742, 48578, 30824, 48578, 48578, 48578, 48578, 48578, 10098, 43291, 17432, 48578, 24775, 16692, 48578, 38038, 48578, 48578, 48578, 48578, 22246, 23972, 26250, 24624, 48578, 29823, 48578, 48578, 48578, 48578, 48578, 18634, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 16767, 48578, 48578, 48578, 48578, 21742, 48578, 48578, 12710, 48578, 48578, 48578, 14781, 48578, 48578, 48578, 48578, 48578, 48578, 46631, 48578, 27031, 48578, 18640, 48578, 48578, 48578, 29243, 8362, 48578, 30173, 48578, 48578, 48578, 48578, 48578, 48578, 14320, 48578, 18644, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 10197, 48578, 26455, 15077, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 11050, 48578, 48321, 28253, 39992, 48578, 48578, 48578, 48578, 48578, 7790, 25997, 48578, 26465, 48578, 48578, 28689, 45512, 48578, 48578, 48578, 47588, 18191, 48578, 48578, 18881, 36129, 11063, 48578, 48578, 48578, 48578, 48578, 48578, 18756, 13492, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 27575, 48578, 9209, 48578, 48578, 12968, 48578, 12734, 30312, 48578, 35080, 11080, 48578, 48578, 48578, 48578, 42366, 27218, 25660, 48578, 48578, 48578, 48578, 24727, 48578, 48578, 8907, 48578, 48578, 48578, 48578, 26169, 48578, 48578, 48578, 48578, 33335, 48526, 48578, 48578, 48578, 12068, 25419, 46574, 29833, 7978, 48578, 48578, 32311, 48578, 48578, 29699, 28289, 29700, 9277, 8126, 14403, 48578, 27693, 27864, 37495, 46096, 46912, 11859, 48578, 48578, 48578, 48578, 41317, 19561, 16885, 48578, 10563, 48578, 48578, 48578, 17332, 40026, 32324, 48578, 11567, 48578, 15369, 48578, 48578, 48578, 48578, 48578, 31572, 25998, 32332, 13028, 30939, 48578, 48578, 48578, 48578, 10182, 35733, 8094, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 52996, 0, 52998, 52999, 53000, 53001, 53002, 0, 0, 0, 53006, 0, 0, 53009, 0, 53011, 53012, 53013, 53014, 0, 0, 0, 0, 53019, 0, 53021, 53022, 53023, 53024, 53025, 0, 53027, 53028, 53029, 53030, 53031, 53032, 53033, 53034, 53035, 53036, 53037, 0, 53039, 53040, 53041, 53042, 0, 53044, 53045, 0, 53047, 53048, 53049, 0, 53051, 53052, 53053, 53054, 53055, 53056, 0, 53058, 0, 53060, 0, 53062, 53063, 53064, 0, 0, 53067, 0, 53069, 53070, 53071, 53072, 53073, 53074, 0, 53076, 0, 53078, 53079, 53080, 53081, 53082, 53083, 53084, 53085, 53086, 53087, 53088, 53089, 53090, 0, 53092, 0, 0, 53095, 53096, 53097, 53098, 53099, 53100, 53101, 53102, 0, 53104, 0, 0, 0, 53108, 53109, 53110, 53111, 53112, 0, 0, 53115, 0, 53117, 53118, 0, 0, 53121, 53122, 53123, 0, 0, 53126, 53127, 0, 0, 0, 53131, 53132, 53133, 53134, 53135, 53136, 0, 0, 53139, 53140, 53141, 53142, 53143, 53144, 53145, 53146, 0, 53148, 0, 53150, 53151, 0, 53153, 0, 0, 53156, 0, 0, 53159, 53160, 53161, 53162, 0, 0, 0, 53166, 53167, 53168, 53169, 0, 53171, 53172, 0, 53174, 53175, 53176, 53177, 0, 53179, 53180, 53181, 53182, 0, 0, 53185, 53186, 53187, 0, 0, 0, 0, 0, 53193, 53194, 0, 53196, 53197, 0, 0, 0, 0, 0, 0, 53204, 0, 0, 0, 0, 0, 0, 53211, 53212, 53213, 53214, 0, 0, 0, 53218, 0, 53220, 53221, 53222, 0, 0, 0, 53226, 0, 53228, 0, 53230, 53231, 53232, 53233, 53234, 0, 0, 0, 0, 0, 53240, 53241, 53242, 53243, 0, 0, 0, 53247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p250: 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 48578, 13708, 8282, 18065, 48578, 48578, 48578, 48578, 45731, 45732, 48578, 48578, 48578, 48578, 32348, 26515, 17257, 48578, 48578, 25497, 26050, 48578, 48038, 48578, 29848, 47370, 48578, 45426, 48578, 28974, 48578, 48578, 19076, 48578, 48578, 41200, 48578, 23463, 48578, 48578, 48578, 48578, 48578, 29024, 41821, 32464, 28401, 48578, 23473, 16733, 13639, 48578, 48578, 25889, 48578, 48578, 48578, 20336, 40360, 30830, 48578, 48578, 39838, 48578, 48578, 17067, 20884, 26805, 48578, 48578, 39185, 23153, 48578, 48578, 48578, 48578, 48578, 48578, 43932, 48578, 17136, 27378, 42333, 48578, 48578, 38153, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 24407, 22017, 38423, 31313, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 13164, 11253, 48578, 48578, 35570, 48578, 48578, 10931, 48578, 48578, 32181, 33812, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 27206, 21899, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 37077, 48578, 48578, 48578, 48578, 48578, 48578, 28988, 27803, 48578, 48578, 48578, 48578, 48578, 14923, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 7551, 17010, 18224, 9512, 13871, 17143, 20727, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 16371, 48578, 48578, 48578, 48578, 21129, 48578, 48578, 42064, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 9843, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 18905, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32107, 22649, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 31639, 43306, 48578, 48578, 22420, 20651, 48578, 48578, 11010, 9315, 16043, 20579, 46632, 48578, 48578, 38246, 48578, 8921, 48578, 48578, 48578, 40611, 14570, 48578, 48578, 42660, 11368, 42326, 48578, 48578, 41988, 13686, 41735, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 53248, 0, 0, 0, 53252, 53253, 53254, 53255, 0, 0, 53258, 53259, 53260, 53261, 0, 0, 0, 53265, 53266, 0, 0, 53269, 0, 53271, 0, 0, 53274, 0, 53276, 0, 53278, 53279, 0, 53281, 53282, 0, 53284, 0, 53286, 53287, 53288, 53289, 53290, 0, 0, 0, 0, 53295, 0, 0, 0, 53299, 53300, 0, 53302, 53303, 53304, 0, 0, 0, 53308, 53309, 0, 53311, 53312, 0, 0, 0, 53316, 53317, 0, 0, 53320, 53321, 53322, 53323, 53324, 53325, 0, 53327, 0, 0, 0, 53331, 53332, 0, 53334, 53335, 53336, 53337, 53338, 53339, 53340, 53341, 53342, 0, 0, 0, 0, 53347, 53348, 53349, 53350, 53351, 53352, 53353, 53354, 53355, 53356, 53357, 0, 0, 53360, 53361, 0, 53363, 53364, 0, 53366, 53367, 0, 0, 53370, 53371, 53372, 53373, 53374, 53375, 53376, 53377, 0, 0, 53380, 53381, 53382, 53383, 53384, 53385, 53386, 0, 53388, 53389, 53390, 53391, 53392, 53393, 0, 0, 53396, 53397, 53398, 53399, 53400, 0, 53402, 53403, 53404, 53405, 53406, 53407, 53408, 53409, 0, 0, 0, 0, 0, 0, 0, 53417, 53418, 53419, 53420, 53421, 53422, 53423, 0, 53425, 53426, 53427, 53428, 0, 53430, 53431, 0, 53433, 53434, 53435, 53436, 53437, 53438, 53439, 0, 53441, 53442, 53443, 53444, 53445, 53446, 53447, 53448, 53449, 53450, 53451, 0, 53453, 53454, 53455, 53456, 53457, 53458, 53459, 0, 0, 53462, 53463, 53464, 53465, 53466, 53467, 53468, 53469, 53470, 0, 0, 53473, 53474, 0, 0, 53477, 53478, 0, 0, 0, 0, 0, 53484, 53485, 0, 53487, 0, 53489, 53490, 53491, 0, 0, 53494, 53495, 0, 0, 0, 53499, 53500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p251: 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 48578, 27103, 48578, 48578, 48578, 48578, 48578, 10650, 28055, 20586, 48578, 29082, 48578, 17029, 41225, 48578, 48578, 15200, 41166, 15096, 29542, 27860, 38714, 38355, 33538, 48578, 48578, 38715, 30740, 27521, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 12393, 48578, 11110, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 14754, 27582, 48578, 41228, 40887, 34903, 21806, 26867, 8042, 48578, 42706, 16506, 28582, 48578, 42707, 48578, 48553, 48578, 48578, 29063, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 13049, 14576, 43015, 34332, 48578, 48578, 11860, 46407, 48578, 48578, 48578, 48578, 48578, 34340, 20675, 18058, 14327, 48578, 48578, 48578, 48578, 24051, 41230, 16107, 48578, 34433, 48578, 21963, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 20912, 37862, 48578, 34443, 21395, 48578, 40814, 10999, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 20479, 28000, 48578, 48578, 44527, 48578, 48578, 22142, 48578, 48578, 48578, 48578, 36822, 48578, 48578, 39876, 48578, 13486, 48578, 17033, 26763, 37707, 40911, 37776, 35572, 22024, 44990, 48578, 17246, 48578, 33885, 48578, 40119, 25475, 32987, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 8477, 48578, 48578, 28409, 48578, 48578, 48578, 37672, 21591, 32299, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 28590, 48578, 27265, 35573, 48578, 31238, 48578, 48578, 17338, 47893, 27271, 40925, 48578, 23768, 20939, 13358, 10203, 46991, 14681, 20026, 22332, 19268, 30432, 21671, 47816, 48578, 13063, 20694, 41432, 48578, 45918, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 46681, 48578, 26612, 18114, 40263, 34213, 16780, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 40926, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 53504, 0, 53506, 53507, 53508, 53509, 53510, 0, 0, 0, 53514, 0, 53516, 0, 0, 53519, 53520, 0, 0, 0, 0, 0, 0, 0, 0, 53529, 53530, 0, 0, 0, 53534, 53535, 53536, 53537, 53538, 53539, 53540, 53541, 0, 53543, 0, 53545, 53546, 53547, 53548, 53549, 53550, 53551, 53552, 0, 0, 53555, 0, 0, 0, 0, 0, 0, 53562, 0, 0, 0, 53566, 0, 53568, 0, 53570, 53571, 0, 53573, 53574, 53575, 53576, 53577, 53578, 53579, 53580, 53581, 53582, 53583, 53584, 0, 0, 0, 0, 53589, 53590, 0, 0, 53593, 53594, 53595, 53596, 53597, 0, 0, 0, 0, 53602, 53603, 53604, 53605, 0, 0, 0, 53609, 0, 53611, 0, 53613, 53614, 53615, 53616, 53617, 53618, 53619, 0, 0, 53622, 0, 0, 53625, 0, 0, 53628, 53629, 53630, 53631, 53632, 53633, 53634, 53635, 53636, 0, 0, 53639, 53640, 0, 53642, 53643, 0, 53645, 53646, 53647, 53648, 0, 53650, 53651, 0, 53653, 0, 53655, 0, 0, 0, 0, 0, 0, 0, 0, 53664, 0, 53666, 0, 53668, 0, 0, 0, 53672, 53673, 53674, 53675, 53676, 53677, 53678, 0, 53680, 53681, 0, 53683, 53684, 53685, 0, 0, 0, 53689, 53690, 53691, 53692, 53693, 53694, 53695, 53696, 53697, 53698, 53699, 0, 53701, 0, 0, 53704, 0, 53706, 53707, 0, 0, 0, 0, 53712, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53725, 0, 0, 0, 53729, 0, 53731, 53732, 53733, 53734, 53735, 53736, 53737, 53738, 53739, 53740, 0, 53742, 0, 0, 0, 0, 0, 53748, 53749, 53750, 53751, 53752, 53753, 53754, 53755, 53756, 53757, 53758, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p252: 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 48578, 48578, 19599, 48578, 11432, 48578, 26922, 32900, 40766, 18681, 33430, 21817, 48578, 48578, 48578, 23129, 48578, 18020, 16609, 16520, 48578, 27274, 13250, 8523, 24865, 23450, 33552, 26016, 39111, 48578, 48578, 35193, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 29183, 48578, 24088, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 22908, 16785, 48578, 48578, 38821, 29333, 33291, 22269, 17979, 16675, 21909, 48578, 28231, 18435, 15974, 24462, 16315, 36461, 48578, 26566, 36281, 12206, 48578, 48578, 48578, 30452, 44614, 20712, 27597, 16097, 27232, 38088, 48578, 36373, 30592, 48578, 48578, 10434, 13497, 48578, 29334, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 17358, 48578, 48578, 48578, 27421, 26516, 26051, 30458, 22782, 48578, 13263, 30803, 20622, 22526, 31292, 27422, 33516, 48578, 48578, 48578, 48578, 48578, 48578, 20157, 24184, 22721, 40960, 48578, 48578, 48578, 48578, 48578, 48578, 26646, 15055, 10087, 18951, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 22871, 48578, 48578, 38013, 16678, 19641, 48497, 19290, 40160, 48578, 48578, 48578, 48578, 35494, 48578, 32932, 48578, 36261, 48578, 48578, 48578, 46613, 23325, 39782, 27462, 48578, 39141, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 33031, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 14260, 27609, 47523, 48279, 27216, 48578, 38893, 48578, 36106, 48578, 20092, 10166, 19654, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 47933, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 17748, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 53760, 53761, 0, 53763, 0, 53765, 0, 0, 0, 0, 0, 0, 53772, 53773, 53774, 0, 53776, 0, 0, 0, 53780, 0, 0, 0, 0, 0, 0, 0, 0, 53789, 53790, 0, 53792, 53793, 53794, 53795, 53796, 53797, 53798, 53799, 53800, 53801, 53802, 53803, 0, 53805, 0, 53807, 53808, 53809, 53810, 53811, 53812, 53813, 53814, 0, 0, 53817, 53818, 0, 0, 0, 0, 0, 0, 0, 53826, 0, 0, 0, 0, 0, 0, 53833, 0, 0, 0, 53837, 53838, 53839, 0, 0, 0, 0, 0, 0, 0, 53847, 0, 0, 53850, 53851, 0, 0, 53854, 0, 53856, 53857, 53858, 53859, 53860, 53861, 53862, 53863, 53864, 53865, 53866, 53867, 53868, 53869, 53870, 53871, 0, 53873, 53874, 53875, 0, 0, 0, 0, 0, 53881, 0, 0, 0, 0, 0, 0, 0, 53889, 53890, 53891, 53892, 53893, 53894, 0, 0, 0, 0, 53899, 53900, 53901, 53902, 53903, 53904, 0, 0, 0, 0, 53909, 53910, 53911, 53912, 53913, 53914, 53915, 53916, 53917, 53918, 53919, 53920, 53921, 53922, 53923, 53924, 53925, 53926, 0, 53928, 53929, 0, 0, 0, 0, 0, 0, 53936, 53937, 53938, 53939, 0, 53941, 0, 53943, 0, 53945, 53946, 53947, 0, 0, 0, 0, 53952, 0, 53954, 53955, 53956, 53957, 53958, 53959, 53960, 53961, 53962, 53963, 0, 53965, 53966, 53967, 53968, 53969, 53970, 53971, 53972, 53973, 53974, 53975, 53976, 0, 0, 0, 0, 0, 53982, 0, 53984, 0, 53986, 0, 0, 0, 53990, 53991, 53992, 53993, 53994, 53995, 53996, 53997, 0, 53999, 54000, 54001, 54002, 54003, 54004, 54005, 54006, 54007, 54008, 54009, 54010, 54011, 54012, 54013, 54014, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p253: 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 9811, 30821, 27470, 46433, 22922, 42534, 47296, 48578, 20193, 48578, 29376, 48578, 48578, 18902, 48578, 27756, 25600, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 34819, 48578, 26622, 24233, 48578, 48578, 34878, 42802, 48578, 48578, 48578, 48578, 24564, 48578, 48578, 48578, 40079, 36263, 40680, 48578, 48578, 41160, 24578, 27179, 37915, 27180, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 42375, 23636, 25385, 43649, 43650, 24595, 20326, 16808, 48578, 48578, 48578, 16626, 40355, 48578, 48578, 33838, 48578, 48420, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 22502, 23979, 48578, 48578, 48578, 48578, 48578, 8760, 48578, 48578, 34578, 29081, 40877, 48578, 48578, 48578, 17512, 48578, 48578, 48578, 48578, 16844, 48578, 45827, 23736, 11925, 46971, 15017, 31485, 48578, 45510, 28167, 28971, 43109, 48578, 48578, 11749, 34136, 20275, 48178, 41790, 43600, 48578, 48578, 48578, 32922, 48578, 32694, 39123, 48578, 16612, 22433, 48578, 38641, 48578, 31545, 11770, 48578, 45541, 40323, 48578, 44652, 45360, 11395, 24314, 24315, 40970, 27296, 40972, 32937, 48578, 48578, 16926, 32764, 48578, 48578, 26851, 48578, 31556, 11949, 11950, 11953, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 38418, 48578, 14440, 7688, 48578, 48578, 48578, 48578, 48578, 48578, 30863, 46934, 36683, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 46935, 46732, 48578, 18656, 11043, 48578, 46936, 48578, 48578, 48578, 43746, 48578, 48578, 48578, 38623, 8090, 48578, 17913, 33948, 48578, 22152, 23256, 48578, 48578, 42855, 41533, 48578, 48578, 8325, 48578, 48578, 48578, 22986, 30940, 48578, 48578, 46099, 48578, 22411, 33647, 48578, 48578, 7467, 46232, 47018, 48578, 48578, 48578, 48578, 48578, 48578, 47035, 48578, 20713, 48578, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 54023, 0, 54025, 0, 54027, 54028, 0, 54030, 0, 0, 54033, 54034, 54035, 54036, 54037, 54038, 54039, 0, 54041, 0, 0, 54044, 54045, 0, 0, 54048, 54049, 54050, 54051, 0, 54053, 54054, 54055, 0, 0, 0, 54059, 54060, 0, 0, 0, 0, 0, 54066, 54067, 54068, 54069, 54070, 54071, 54072, 54073, 0, 0, 0, 0, 0, 0, 0, 0, 54082, 54083, 54084, 0, 0, 54087, 54088, 0, 54090, 0, 54092, 54093, 54094, 54095, 54096, 54097, 54098, 0, 0, 54101, 54102, 54103, 54104, 54105, 0, 54107, 54108, 0, 0, 0, 54112, 54113, 54114, 0, 54116, 54117, 54118, 54119, 0, 54121, 0, 0, 0, 0, 0, 0, 54128, 0, 0, 0, 0, 54133, 54134, 0, 0, 0, 0, 0, 0, 54141, 54142, 54143, 0, 54145, 0, 0, 54148, 0, 0, 54151, 0, 54153, 0, 0, 54156, 0, 0, 54159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54169, 54170, 0, 0, 54173, 54174, 0, 54176, 0, 0, 0, 0, 54181, 54182, 54183, 54184, 54185, 54186, 54187, 54188, 54189, 0, 54191, 0, 0, 54194, 54195, 54196, 54197, 54198, 54199, 0, 0, 0, 54203, 54204, 54205, 54206, 54207, 54208, 54209, 54210, 54211, 0, 0, 54214, 0, 0, 54217, 0, 54219, 54220, 54221, 0, 54223, 54224, 54225, 0, 0, 54228, 0, 0, 54231, 0, 0, 54234, 54235, 0, 0, 54238, 54239, 0, 54241, 54242, 54243, 0, 0, 54246, 54247, 0, 54249, 0, 0, 54252, 54253, 0, 0, 0, 54257, 54258, 54259, 54260, 54261, 54262, 0, 54264, 0, 54266, 54267, 54268, 54269, 54270, 54271, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p254: 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 34946, 30349, 29225, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 47934, 48578, 48578, 48578, 48578, 48578, 48578, 43651, 48578, 18555, 48578, 41494, 48578, 48578, 34182, 29239, 30368, 48578, 48578, 48578, 26744, 9852, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 45097, 48578, 48578, 16395, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 12394, 48578, 28335, 48578, 46195, 48578, 18155, 48578, 48578, 48578, 48578, 48578, 22763, 48578, 13214, 36735, 48578, 48578, 16585, 48578, 48578, 31709, 34258, 20056, 7597, 28118, 30073, 20013, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 46294, 9360, 38333, 48578, 9818, 48578, 48578, 48578, 48578, 28337, 22458, 48578, 48578, 48578, 13599, 16586, 31723, 48578, 32665, 42846, 13779, 23991, 48578, 47260, 22965, 14066, 39347, 13055, 29142, 14171, 43811, 38616, 22770, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 46937, 48578, 48578, 48578, 46828, 41318, 48578, 48578, 46598, 48578, 48578, 42037, 48578, 19255, 19562, 28375, 48578, 48578, 48578, 48578, 41519, 25981, 48578, 48578, 15115, 33140, 11254, 37964, 48578, 15371, 22773, 35018, 22554, 48578, 43075, 18472, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 44433, 48578, 48578, 48578, 48578, 24424, 48578, 48578, 25190, 13669, 14190, 48578, 48578, 48578, 31239, 13609, 48578, 48578, 20940, 11571, 39632, 48578, 48578, 48578, 15834, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 12646, 48578, 48578, 48578, 17836, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48179, 48578, 48578, 30786, 37376, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 54275, 54276, 54277, 54278, 54279, 54280, 54281, 0, 54283, 54284, 54285, 54286, 54287, 54288, 0, 54290, 0, 54292, 0, 54294, 54295, 0, 0, 0, 54299, 54300, 54301, 0, 0, 54304, 54305, 54306, 54307, 54308, 54309, 54310, 54311, 54312, 0, 54314, 54315, 0, 54317, 54318, 54319, 54320, 54321, 54322, 54323, 54324, 54325, 54326, 54327, 54328, 0, 54330, 0, 54332, 0, 54334, 0, 54336, 54337, 54338, 54339, 54340, 0, 54342, 0, 0, 54345, 54346, 0, 54348, 54349, 0, 0, 0, 0, 0, 0, 0, 54357, 54358, 54359, 54360, 54361, 54362, 54363, 54364, 54365, 54366, 54367, 54368, 0, 0, 0, 54372, 0, 54374, 54375, 54376, 54377, 0, 0, 54380, 54381, 54382, 0, 0, 0, 54386, 0, 0, 0, 0, 54391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54402, 54403, 54404, 54405, 54406, 54407, 54408, 54409, 54410, 54411, 54412, 54413, 54414, 54415, 54416, 54417, 54418, 0, 54420, 54421, 54422, 0, 0, 54425, 54426, 0, 54428, 54429, 0, 54431, 0, 0, 0, 54435, 54436, 54437, 54438, 0, 0, 54441, 54442, 0, 0, 0, 0, 54447, 0, 0, 0, 0, 54452, 0, 0, 54455, 54456, 54457, 54458, 54459, 54460, 54461, 0, 54463, 54464, 54465, 54466, 0, 54468, 54469, 0, 0, 0, 54473, 54474, 54475, 0, 0, 54478, 54479, 0, 0, 0, 54483, 54484, 54485, 0, 54487, 54488, 54489, 54490, 54491, 54492, 54493, 54494, 54495, 54496, 54497, 54498, 54499, 54500, 54501, 54502, 54503, 54504, 54505, 54506, 54507, 0, 54509, 54510, 54511, 0, 54513, 54514, 54515, 54516, 54517, 54518, 54519, 54520, 54521, 54522, 0, 54524, 54525, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p255: 1, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 17839, 29842, 16115, 48578, 28803, 48578, 48578, 22807, 48578, 48578, 46849, 48578, 48578, 48578, 48578, 48578, 48578, 39995, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 33816, 44315, 20485, 48578, 48578, 48578, 48578, 48578, 30700, 10452, 33190, 48578, 35628, 31042, 19044, 48578, 33593, 14230, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 31810, 48578, 22715, 48578, 48578, 38270, 48030, 19615, 48578, 48578, 48578, 48578, 12227, 48578, 12137, 48578, 48578, 48578, 25810, 22527, 23390, 12830, 31397, 48578, 27921, 48578, 48578, 17083, 17846, 10251, 17764, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 9618, 46246, 48578, 48578, 16967, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 40790, 29637, 22202, 48578, 48578, 15688, 34947, 48578, 35495, 32359, 48578, 38492, 41678, 29675, 40003, 29315, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 23462, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 8308, 46432, 19655, 48578, 48578, 21177, 24720, 22750, 48578, 47307, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 45485, 48578, 23918, 30470, 9063, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 43505, 30040, 48578, 48578, 48578, 48578, 35204, 26211, 48578, 12849, 13640, 24987, 47946, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 10189, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 10478, 35795, 48578, 48578, 48578, 48578, 48578, 32372, 12670, 48578, 48578, 32492, 48578, 30267, 48578, 48578, 48578, 48578, 48578, 48578, 47183, 40080, 48578, 48578, 20507, 32113, 24034, 9414, 32306, 48578, 48578, 48578, 48578, 48578, 48578, 39837, 24078, 48578, 48578, 48578, 23714, 48578, 48578, 48578, 48578, 23434, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 54531, 0, 54533, 54534, 0, 54536, 54537, 0, 54539, 54540, 54541, 54542, 54543, 54544, 0, 54546, 54547, 54548, 54549, 54550, 54551, 54552, 54553, 54554, 54555, 54556, 54557, 54558, 54559, 54560, 0, 0, 0, 54564, 54565, 54566, 54567, 54568, 0, 0, 0, 54572, 0, 0, 0, 54576, 0, 0, 54579, 54580, 54581, 54582, 54583, 54584, 54585, 54586, 0, 54588, 0, 54590, 54591, 0, 0, 0, 54595, 54596, 54597, 54598, 0, 54600, 0, 54602, 54603, 54604, 0, 0, 0, 0, 0, 54610, 0, 54612, 54613, 0, 0, 0, 0, 54618, 54619, 54620, 54621, 54622, 54623, 54624, 54625, 0, 0, 54628, 54629, 0, 54631, 54632, 54633, 54634, 54635, 54636, 54637, 54638, 54639, 0, 0, 0, 54643, 54644, 0, 0, 54647, 0, 0, 54650, 0, 0, 0, 0, 0, 54656, 54657, 54658, 54659, 54660, 54661, 54662, 54663, 54664, 54665, 54666, 54667, 54668, 0, 54670, 54671, 54672, 54673, 54674, 54675, 54676, 54677, 54678, 0, 0, 0, 54682, 54683, 0, 0, 0, 54687, 0, 54689, 54690, 54691, 54692, 54693, 54694, 54695, 0, 54697, 0, 0, 0, 54701, 54702, 54703, 54704, 54705, 54706, 54707, 54708, 0, 0, 54711, 54712, 54713, 54714, 0, 0, 54717, 0, 0, 0, 0, 54722, 54723, 54724, 54725, 54726, 54727, 54728, 54729, 0, 54731, 54732, 54733, 54734, 54735, 54736, 54737, 0, 0, 54740, 54741, 54742, 54743, 54744, 0, 0, 54747, 54748, 0, 54750, 0, 54752, 54753, 54754, 54755, 54756, 54757, 0, 0, 54760, 54761, 0, 0, 0, 0, 0, 54767, 54768, 54769, 54770, 54771, 54772, 0, 0, 54775, 54776, 54777, 0, 54779, 54780, 54781, 54782, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p256: 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48578, 23435, 48578, 48578, 44734, 48578, 48578, 48578, 48578, 48578, 20752, 31499, 19348, 48578, 48578, 15669, 48578, 48578, 42933, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 42960, 46639, 48578, 48578, 8832, 34010, 21572, 48578, 48578, 48578, 48578, 17562, 15202, 48578, 21639, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48533, 42687, 48578, 48578, 48578, 48578, 39600, 42688, 48578, 35003, 48578, 11466, 48578, 48578, 27868, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 45848, 48578, 41314, 48578, 48578, 32817, 48578, 19245, 48578, 48578, 48578, 33690, 48578, 48578, 48578, 34459, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 44162, 44528, 48578, 48578, 22320, 48578, 48578, 48578, 48578, 48578, 48578, 48001, 25992, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 10791, 23306, 48578, 48578, 48578, 48578, 47825, 48578, 48578, 48578, 48578, 48578, 18014, 48578, 48578, 40834, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48174, 43787, 48578, 48578, 47414, 48578, 48578, 25589, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 29073, 48578, 48578, 48578, 48578, 48578, 48578, 8548, 48578, 10881, 48578, 48372, 15025, 26031, 30377, 48578, 48578, 48578, 48578, 48578, 47693, 48578, 46240, 34142, 44449, 26032, 24841, 48578, 48578, 48578, 22197, 25002, 8268, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 54784, 0, 54786, 54787, 0, 54789, 54790, 54791, 54792, 54793, 0, 0, 0, 54797, 54798, 0, 54800, 54801, 0, 54803, 54804, 54805, 54806, 54807, 54808, 54809, 54810, 54811, 54812, 54813, 54814, 54815, 0, 0, 54818, 54819, 0, 0, 0, 54823, 54824, 54825, 54826, 0, 0, 54829, 0, 54831, 54832, 54833, 54834, 54835, 54836, 54837, 54838, 54839, 54840, 54841, 54842, 54843, 54844, 54845, 54846, 54847, 0, 0, 54850, 54851, 54852, 54853, 0, 0, 54856, 0, 54858, 0, 54860, 54861, 0, 54863, 54864, 54865, 54866, 54867, 54868, 54869, 54870, 54871, 54872, 54873, 54874, 54875, 54876, 54877, 54878, 54879, 54880, 0, 54882, 0, 54884, 54885, 0, 54887, 0, 54889, 54890, 54891, 0, 54893, 54894, 54895, 0, 54897, 54898, 54899, 54900, 54901, 54902, 54903, 54904, 54905, 54906, 54907, 54908, 54909, 0, 0, 54912, 54913, 0, 54915, 54916, 54917, 54918, 54919, 54920, 0, 0, 54923, 54924, 54925, 54926, 54927, 54928, 54929, 54930, 54931, 54932, 54933, 54934, 54935, 54936, 54937, 0, 0, 54940, 54941, 54942, 54943, 0, 54945, 54946, 54947, 54948, 54949, 0, 54951, 54952, 0, 54954, 54955, 54956, 54957, 54958, 54959, 54960, 54961, 54962, 54963, 54964, 54965, 54966, 54967, 54968, 54969, 54970, 54971, 54972, 54973, 0, 0, 54976, 54977, 0, 54979, 54980, 0, 54982, 54983, 54984, 54985, 54986, 54987, 54988, 54989, 54990, 54991, 54992, 0, 54994, 54995, 54996, 54997, 54998, 54999, 0, 55001, 0, 55003, 0, 0, 0, 0, 55008, 55009, 55010, 55011, 55012, 0, 55014, 0, 0, 0, 0, 0, 55020, 55021, 55022, 0, 0, 0, 55026, 55027, 55028, 55029, 55030, 55031, 55032, 55033, 55034, 55035, 55036, 55037, 55038, 55039, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p257: 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 1, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 48578, 48578, 48578, 43218, 16614, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 7583, 48578, 48578, 16917, 27715, 48578, 41815, 23614, 48578, 48578, 9237, 48578, 48578, 45363, 44129, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 43279, 28557, 48578, 48578, 48578, 48578, 48578, 28560, 17092, 22364, 48578, 34164, 48578, 39572, 48578, 30994, 32373, 23224, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 33775, 48578, 19264, 48578, 37677, 48578, 48578, 48578, 48578, 48578, 14797, 14804, 48578, 44484, 48578, 48578, 48578, 46633, 16549, 48578, 20885, 26745, 17589, 48578, 44085, 48578, 48578, 48578, 48578, 48578, 48578, 13687, 34896, 48578, 24358, 48578, 48578, 20892, 28963, 7715, 44239, 48578, 48578, 48578, 48578, 48578, 46649, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 17599, 22601, 48578, 48578, 48578, 48578, 13691, 19959, 48578, 10365, 48578, 11467, 17611, 45814, 48578, 48578, 48578, 48578, 27040, 48578, 48578, 17612, 48098, 47457, 48578, 48578, 37355, 48578, 48578, 48578, 48578, 48578, 48495, 48578, 32821, 14027, 20545, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 17796, 48578, 8250, 27875, 48578, 48578, 48578, 48578, 48318, 48578, 48578, 8861, 48578, 22944, 20020, 48578, 48578, 48578, 48578, 47840, 48578, 40650, 48578, 48578, 48578, 48578, 48578, 48578, 17635, 48578, 31261, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 14722, 34030, 48578, 48578, 48578, 47787, 23050, 45580, 39354, 48578, 8502, 43110, 48578, 10204, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 26918, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 37631, 48578, 48578, 48578, 48578, 48578, 48578, 38433, 22909, 38340, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 55040, 55041, 55042, 0, 0, 55045, 55046, 55047, 55048, 55049, 55050, 55051, 0, 55053, 55054, 0, 0, 55057, 0, 0, 55060, 55061, 0, 55063, 55064, 0, 0, 55067, 55068, 55069, 55070, 55071, 55072, 55073, 55074, 55075, 55076, 0, 0, 55079, 55080, 55081, 55082, 55083, 0, 0, 0, 55087, 0, 55089, 0, 55091, 0, 0, 0, 55095, 55096, 55097, 55098, 55099, 55100, 55101, 55102, 55103, 0, 55105, 0, 55107, 0, 55109, 55110, 55111, 55112, 55113, 0, 0, 55116, 0, 55118, 55119, 55120, 0, 0, 55123, 0, 0, 0, 55127, 0, 55129, 55130, 55131, 55132, 55133, 55134, 0, 0, 55137, 0, 55139, 55140, 0, 0, 0, 0, 55145, 55146, 55147, 55148, 55149, 0, 55151, 55152, 55153, 55154, 55155, 55156, 55157, 55158, 55159, 0, 0, 55162, 55163, 55164, 55165, 0, 0, 55168, 0, 55170, 0, 0, 0, 55174, 55175, 55176, 55177, 0, 55179, 55180, 0, 0, 0, 55184, 55185, 0, 55187, 55188, 55189, 55190, 55191, 0, 55193, 0, 0, 0, 55197, 55198, 55199, 55200, 55201, 55202, 55203, 55204, 55205, 55206, 0, 55208, 0, 0, 55211, 55212, 55213, 55214, 0, 55216, 55217, 0, 55219, 0, 0, 55222, 55223, 55224, 55225, 0, 55227, 0, 55229, 55230, 55231, 55232, 55233, 55234, 0, 55236, 0, 55238, 55239, 55240, 55241, 55242, 55243, 55244, 0, 0, 55247, 55248, 55249, 0, 0, 0, 0, 55254, 0, 0, 55257, 0, 55259, 55260, 55261, 55262, 55263, 55264, 55265, 55266, 55267, 55268, 55269, 55270, 55271, 55272, 55273, 0, 55275, 55276, 55277, 55278, 55279, 55280, 55281, 55282, 55283, 55284, 55285, 0, 55287, 55288, 55289, 55290, 55291, 55292, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p258: 1, 1, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 40484, 22626, 48578, 21527, 13731, 18682, 48578, 48578, 47019, 9678, 32785, 19600, 48578, 42482, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 21308, 42128, 48578, 48578, 48578, 48578, 48225, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 9527, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 34936, 24463, 16443, 10208, 48578, 14728, 25499, 48578, 20963, 45074, 48578, 48578, 47037, 48578, 48578, 11067, 8870, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 19428, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 26370, 20172, 48578, 11392, 34775, 48578, 26199, 22347, 20789, 48578, 36467, 45665, 48578, 48578, 43199, 48578, 11771, 28439, 19988, 48578, 48578, 48578, 48578, 48578, 19862, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 7342, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 20286, 48578, 48578, 8236, 48578, 14516, 35497, 48498, 13082, 15813, 15847, 23830, 48578, 47930, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 18367, 48578, 48578, 37189, 48578, 48578, 48578, 8583, 21765, 48578, 48578, 48578, 48578, 48578, 48578, 18440, 48578, 48578, 48578, 10611, 48578, 48578, 48578, 23030, 12511, 15996, 40171, 48578, 21000, 48578, 9479, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48343, 48578, 30355, 48578, 48578, 34601, 9328, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 28917, 41822, 47377, 48578, 27164, 48578, 8696, 48578, 39830, 48578, 48578, 48578, 48578, 26088, 24227, 48578, 48578, 48578, 19902, 48578, 27615, 24069, 48578, 47118, 43974, 8697, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 28091, 32465, 32466, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 55298, 0, 0, 0, 55302, 55303, 0, 0, 0, 0, 55308, 0, 55310, 55311, 55312, 55313, 55314, 55315, 55316, 55317, 55318, 55319, 55320, 55321, 55322, 0, 0, 55325, 55326, 55327, 55328, 0, 55330, 55331, 55332, 55333, 55334, 55335, 55336, 0, 55338, 55339, 55340, 55341, 55342, 55343, 55344, 0, 0, 0, 0, 55349, 0, 0, 55352, 0, 0, 55355, 55356, 0, 55358, 55359, 0, 0, 55362, 55363, 55364, 55365, 55366, 55367, 55368, 55369, 55370, 55371, 55372, 55373, 55374, 55375, 55376, 55377, 0, 55379, 55380, 55381, 55382, 55383, 55384, 55385, 55386, 55387, 0, 0, 55390, 0, 0, 55393, 0, 0, 0, 55397, 0, 0, 55400, 55401, 0, 55403, 0, 0, 0, 55407, 55408, 55409, 55410, 55411, 0, 55413, 55414, 55415, 55416, 55417, 55418, 55419, 55420, 0, 55422, 55423, 55424, 55425, 55426, 55427, 55428, 55429, 55430, 0, 55432, 55433, 0, 55435, 0, 0, 0, 0, 0, 0, 0, 55443, 0, 55445, 55446, 55447, 55448, 55449, 55450, 55451, 55452, 55453, 55454, 0, 55456, 55457, 0, 55459, 55460, 55461, 0, 0, 55464, 55465, 55466, 55467, 55468, 55469, 0, 55471, 55472, 55473, 0, 55475, 55476, 55477, 0, 0, 0, 0, 55482, 0, 55484, 0, 55486, 55487, 55488, 55489, 55490, 55491, 55492, 55493, 0, 55495, 0, 55497, 55498, 0, 0, 55501, 55502, 55503, 55504, 55505, 55506, 55507, 55508, 55509, 55510, 0, 0, 0, 55514, 0, 55516, 0, 55518, 0, 55520, 55521, 55522, 55523, 0, 0, 55526, 55527, 55528, 0, 55530, 0, 0, 55533, 0, 0, 0, 55537, 55538, 55539, 55540, 55541, 55542, 55543, 0, 0, 0, 55547, 55548, 55549, 55550, 55551, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p259: 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 1, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 48578, 48578, 28734, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32260, 46275, 48578, 48578, 48578, 48578, 24077, 48578, 48578, 48578, 48578, 48578, 48578, 12538, 22253, 48578, 48578, 48578, 25403, 48578, 25421, 41717, 48578, 48578, 48578, 42275, 46441, 30405, 7308, 48578, 29052, 26779, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 22456, 48578, 21508, 41742, 27522, 48578, 43394, 37578, 42329, 37451, 29763, 35451, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 22819, 48578, 48578, 17897, 48578, 27763, 25280, 43017, 33871, 48578, 48554, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 37001, 48578, 43934, 48578, 37496, 16845, 17969, 48578, 48578, 48578, 34342, 48578, 40616, 48578, 7240, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 10565, 48578, 22771, 43040, 42115, 36763, 13543, 9791, 25584, 48578, 48578, 48578, 31899, 41096, 33886, 23038, 36934, 48578, 31083, 48578, 11123, 48578, 48578, 48578, 48578, 38229, 48578, 25739, 7434, 48578, 48578, 48578, 48578, 48578, 48578, 22467, 48578, 42296, 48578, 15253, 48578, 48578, 48578, 8296, 23662, 30873, 13064, 48578, 48578, 20772, 16781, 48578, 40619, 48578, 48578, 22708, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 39633, 38402, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 16207, 48578, 48578, 48578, 29218, 22627, 48578, 48578, 48578, 22910, 48578, 48578, 48578, 48578, 48578, 36545, 16317, 26539, 48578, 25591, 48578, 48578, 48578, 38089, 38236, 48578, 48578, 48578, 48578, 48578, 48578, 16227, 48578, 37078, 28903, 48578, 48578, 27414, 48578, 48578, 48578, 23750, 31093, 26648, 46247, 48578, 18495, 43836, 21249, 48578, 27057, 48578, 48578, 15307, 48578, 48578, 48578, 32070, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 55552, 55553, 0, 55555, 55556, 55557, 55558, 55559, 55560, 55561, 0, 0, 55564, 55565, 55566, 55567, 0, 55569, 55570, 55571, 55572, 55573, 55574, 0, 0, 55577, 55578, 55579, 0, 55581, 0, 0, 55584, 55585, 55586, 0, 0, 0, 0, 55591, 0, 0, 55594, 55595, 55596, 55597, 55598, 55599, 55600, 0, 55602, 0, 0, 0, 55606, 0, 0, 0, 0, 0, 0, 55613, 55614, 55615, 55616, 55617, 55618, 55619, 55620, 0, 55622, 55623, 0, 55625, 0, 0, 0, 0, 55630, 0, 55632, 55633, 55634, 55635, 55636, 55637, 55638, 55639, 55640, 55641, 55642, 0, 55644, 0, 55646, 0, 0, 0, 55650, 55651, 55652, 0, 55654, 0, 55656, 0, 55658, 55659, 55660, 55661, 55662, 55663, 55664, 0, 55666, 0, 0, 0, 0, 0, 0, 0, 55674, 55675, 55676, 0, 0, 0, 0, 0, 55682, 0, 55684, 0, 55686, 55687, 55688, 55689, 0, 55691, 0, 0, 55694, 55695, 55696, 55697, 55698, 55699, 0, 55701, 0, 55703, 0, 55705, 55706, 55707, 0, 0, 0, 0, 55712, 55713, 0, 0, 55716, 0, 55718, 55719, 0, 55721, 55722, 55723, 55724, 55725, 55726, 55727, 55728, 55729, 55730, 55731, 55732, 55733, 0, 0, 55736, 55737, 55738, 55739, 55740, 55741, 55742, 55743, 55744, 55745, 0, 55747, 55748, 55749, 0, 0, 55752, 55753, 55754, 0, 55756, 55757, 55758, 55759, 55760, 0, 0, 0, 55764, 0, 55766, 55767, 55768, 0, 0, 55771, 55772, 55773, 55774, 55775, 55776, 0, 55778, 0, 0, 55781, 55782, 0, 55784, 55785, 55786, 0, 0, 0, 0, 55791, 0, 0, 0, 55795, 0, 55797, 55798, 0, 55800, 55801, 55802, 0, 55804, 55805, 55806, 55807, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p25A: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 25596, 15499, 12472, 48578, 16211, 48578, 12037, 48578, 48578, 40549, 48578, 48578, 48578, 48578, 48578, 48578, 37023, 34474, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 31783, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32724, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 24580, 48578, 48578, 48578, 19489, 37443, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 36918, 48578, 48578, 48578, 48578, 48578, 35976, 48578, 25422, 48578, 42934, 32908, 48578, 29263, 48578, 48578, 48578, 9410, 48578, 48578, 48578, 44974, 32317, 47566, 17156, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 14422, 17159, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 9302, 30087, 25057, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 23232, 15266, 36582, 38371, 48578, 21673, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 46371, 48578, 15286, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 25638, 48578, 48578, 48578, 39124, 36546, 48578, 48578, 48578, 19851, 48578, 48578, 48578, 42358, 48578, 11905, 48578, 48578, 29430, 31451, 48578, 48578, 48578, 48578, 48578, 25650, 19716, 48578, 48578, 48578, 48578, 48578, 36910, 42796, 48578, 10127, 48578, 48578, 48578, 48578, 48578, 16181, 48578, 48578, 13477, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 39735, 48578, 48578, 36796, 48578, 47639, 42830, 42987, 48092, 30679, 48578, 48578, 9816, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 13895, 48578, 48578, 10927, 25967, 13899, 48578, 14619, 34333, 36436, 19370, 31801, 34799, 10406, 48578, 48578, 18826, 34423, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 55808, 55809, 55810, 55811, 55812, 55813, 55814, 55815, 55816, 55817, 55818, 55819, 0, 0, 0, 55823, 0, 55825, 0, 55827, 55828, 0, 55830, 55831, 55832, 55833, 55834, 55835, 0, 0, 55838, 55839, 55840, 55841, 55842, 55843, 55844, 55845, 55846, 55847, 55848, 55849, 0, 55851, 55852, 55853, 55854, 55855, 55856, 55857, 55858, 0, 55860, 55861, 55862, 55863, 55864, 55865, 55866, 0, 55868, 55869, 55870, 0, 0, 55873, 55874, 55875, 55876, 55877, 55878, 55879, 55880, 55881, 55882, 55883, 0, 55885, 55886, 55887, 55888, 55889, 0, 55891, 0, 55893, 0, 0, 55896, 0, 55898, 55899, 55900, 0, 55902, 55903, 55904, 0, 0, 0, 0, 55909, 55910, 55911, 55912, 55913, 55914, 55915, 55916, 55917, 55918, 55919, 55920, 0, 0, 55923, 55924, 55925, 55926, 55927, 55928, 55929, 55930, 55931, 55932, 55933, 55934, 55935, 0, 0, 0, 55939, 55940, 55941, 55942, 55943, 55944, 55945, 0, 0, 0, 0, 55950, 0, 55952, 55953, 55954, 55955, 55956, 55957, 55958, 55959, 0, 55961, 0, 55963, 55964, 55965, 55966, 55967, 55968, 55969, 0, 55971, 55972, 55973, 0, 0, 55976, 55977, 55978, 0, 55980, 55981, 55982, 0, 55984, 0, 55986, 55987, 0, 0, 55990, 55991, 55992, 55993, 55994, 0, 0, 55997, 55998, 55999, 56000, 56001, 0, 0, 56004, 0, 56006, 56007, 56008, 56009, 56010, 0, 56012, 56013, 0, 56015, 56016, 56017, 56018, 56019, 56020, 56021, 0, 56023, 56024, 0, 56026, 0, 0, 0, 0, 0, 56032, 56033, 0, 56035, 56036, 56037, 56038, 56039, 56040, 56041, 56042, 56043, 0, 56045, 56046, 0, 0, 0, 56050, 0, 0, 0, 0, 0, 0, 0, 56058, 56059, 0, 0, 56062, 56063, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p25B: 1, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 1, 1, 2, 1, 2, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 45104, 48578, 48578, 48578, 48578, 48578, 25624, 48578, 26677, 16243, 48578, 48578, 48578, 39348, 27876, 48578, 33945, 48578, 30177, 42337, 31969, 32451, 48578, 48578, 48578, 21880, 48578, 48578, 43472, 7761, 28777, 48578, 11015, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32672, 11360, 28789, 24425, 20481, 22572, 9667, 11002, 47626, 48106, 42042, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 38230, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 19802, 19803, 48578, 48578, 48578, 26188, 31906, 13908, 7983, 9907, 48578, 9174, 48578, 10671, 46301, 26806, 48578, 19814, 27573, 44918, 48578, 38477, 46994, 30090, 48578, 48578, 10935, 48578, 48578, 48578, 48578, 48578, 27272, 14705, 12079, 27116, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 43428, 26791, 13031, 13121, 48578, 31038, 48578, 48578, 17437, 46752, 21747, 28690, 48578, 48578, 48578, 27275, 16435, 48578, 48578, 48578, 48578, 48578, 47627, 28804, 47904, 48578, 42483, 11836, 48578, 40767, 48578, 39113, 48578, 48578, 9100, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 9528, 48578, 48578, 48578, 48578, 41791, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 21170, 48578, 48578, 21820, 12569, 13713, 48578, 42408, 21416, 22716, 26473, 37992, 37020, 44048, 29303, 48578, 29799, 13366, 48578, 37993, 10344, 20401, 48578, 34937, 47908, 35208, 48578, 32925, 48578, 44322, 48578, 48578, 48578, 48578, 14231, 48578, 48578, 22931, 48578, 47601, 48578, 48578, 48578, 48578, 48578, 39256, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 56065, 56066, 56067, 56068, 56069, 0, 56071, 0, 0, 56074, 56075, 56076, 0, 0, 56079, 0, 56081, 0, 0, 0, 0, 56086, 56087, 56088, 0, 56090, 56091, 0, 0, 0, 56095, 0, 56097, 56098, 56099, 56100, 56101, 56102, 56103, 56104, 56105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56117, 56118, 56119, 56120, 56121, 56122, 56123, 0, 56125, 56126, 56127, 56128, 56129, 56130, 56131, 56132, 56133, 56134, 56135, 56136, 56137, 56138, 0, 0, 56141, 56142, 56143, 0, 0, 0, 0, 0, 56149, 0, 56151, 0, 0, 0, 56155, 0, 0, 0, 56159, 0, 0, 0, 56163, 56164, 0, 56166, 56167, 56168, 56169, 56170, 0, 0, 0, 0, 56175, 56176, 56177, 56178, 56179, 56180, 56181, 56182, 56183, 56184, 56185, 56186, 56187, 56188, 56189, 56190, 56191, 56192, 56193, 56194, 56195, 56196, 56197, 56198, 56199, 56200, 56201, 56202, 56203, 56204, 0, 0, 0, 0, 56209, 0, 56211, 56212, 0, 0, 0, 0, 56217, 56218, 56219, 0, 0, 56222, 56223, 56224, 56225, 56226, 0, 0, 0, 56230, 0, 0, 56233, 0, 56235, 0, 56237, 56238, 0, 56240, 56241, 56242, 56243, 56244, 56245, 56246, 56247, 56248, 56249, 56250, 56251, 56252, 56253, 0, 56255, 56256, 56257, 56258, 0, 56260, 56261, 56262, 56263, 56264, 56265, 56266, 56267, 56268, 56269, 56270, 56271, 56272, 0, 56274, 56275, 0, 0, 0, 56279, 0, 0, 0, 0, 0, 0, 0, 0, 56288, 0, 0, 56291, 0, 0, 0, 56295, 0, 0, 0, 56299, 0, 56301, 0, 56303, 56304, 56305, 56306, 0, 56308, 56309, 0, 56311, 0, 56313, 56314, 56315, 56316, 56317, 0, 56319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p25C: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 2, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 15308, 36226, 38864, 11025, 15687, 26121, 9686, 33603, 25508, 48578, 39133, 19446, 42868, 35947, 48578, 18225, 48578, 48578, 12083, 16019, 48578, 34398, 33220, 17981, 39661, 48578, 48578, 39260, 48578, 48578, 48578, 48578, 28084, 35632, 48578, 45833, 48578, 15137, 33303, 29056, 43201, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 31546, 31697, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 19078, 34777, 12410, 29192, 27929, 30965, 10898, 29281, 22048, 48578, 48578, 10253, 25081, 8995, 22874, 12473, 11081, 36836, 12474, 26689, 18369, 24938, 39485, 48578, 9622, 26063, 11377, 38493, 26653, 48578, 48578, 48578, 48115, 48578, 13718, 48578, 48578, 34786, 15500, 21930, 47373, 48578, 13177, 37779, 11396, 30966, 37228, 48578, 24712, 8799, 24196, 48578, 48578, 24197, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 8598, 15509, 12042, 13590, 48578, 45364, 25651, 41350, 31778, 19470, 31098, 48578, 20303, 33710, 14052, 34549, 9393, 40796, 13436, 48578, 32428, 48578, 42065, 32957, 25230, 20304, 12970, 14884, 13086, 48464, 48578, 28928, 48578, 48578, 48578, 48578, 35383, 36597, 7476, 48578, 48578, 9689, 13371, 33915, 13720, 36396, 20730, 48465, 46057, 20305, 12482, 12415, 35106, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 56320, 56321, 56322, 56323, 56324, 56325, 56326, 56327, 56328, 56329, 56330, 56331, 56332, 56333, 56334, 56335, 56336, 56337, 56338, 56339, 56340, 56341, 56342, 56343, 56344, 56345, 56346, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56356, 0, 0, 0, 0, 56361, 0, 56363, 56364, 0, 0, 56367, 0, 0, 0, 0, 56372, 56373, 0, 56375, 56376, 56377, 56378, 0, 0, 56381, 0, 56383, 0, 0, 0, 0, 56388, 56389, 56390, 56391, 56392, 56393, 56394, 56395, 56396, 56397, 56398, 56399, 56400, 56401, 56402, 56403, 56404, 56405, 56406, 56407, 56408, 56409, 56410, 56411, 56412, 56413, 56414, 56415, 56416, 56417, 56418, 56419, 56420, 56421, 56422, 0, 0, 56425, 56426, 56427, 56428, 56429, 56430, 56431, 56432, 56433, 56434, 56435, 56436, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56446, 56447, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56460, 0, 0, 0, 0, 0, 56466, 56467, 56468, 0, 56470, 0, 56472, 56473, 0, 0, 0, 0, 56478, 0, 0, 0, 0, 0, 56484, 0, 0, 0, 56488, 56489, 0, 56491, 56492, 56493, 56494, 56495, 56496, 56497, 56498, 56499, 56500, 56501, 56502, 56503, 56504, 56505, 56506, 56507, 56508, 56509, 56510, 56511, 56512, 56513, 56514, 56515, 56516, 56517, 0, 0, 0, 0, 56522, 0, 0, 0, 0, 0, 0, 56529, 0, 0, 0, 0, 0, 0, 0, 56537, 0, 56539, 0, 0, 0, 0, 0, 0, 0, 0, 56548, 0, 56550, 56551, 56552, 56553, 0, 0, 0, 56557, 56558, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56571, 56572, 56573, 56574, 56575, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p25D: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 45940, 36780, 47095, 48578, 48578, 44065, 29285, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 24317, 48578, 48578, 31056, 48578, 35511, 21827, 7367, 15998, 21937, 37276, 8608, 30882, 9248, 19095, 48578, 20436, 48578, 48578, 16261, 35385, 48578, 48578, 48578, 48578, 11660, 31252, 48578, 48578, 48578, 41691, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 13088, 48578, 48578, 27612, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 30265, 25444, 21009, 47615, 16463, 48578, 48578, 13738, 46170, 48578, 33732, 31581, 27306, 48578, 30159, 11822, 11029, 48578, 48578, 33084, 48578, 48578, 48578, 48578, 48578, 48578, 36598, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 25542, 26125, 25944, 48284, 48578, 48578, 48578, 26215, 18633, 48578, 36667, 37199, 31247, 25238, 8103, 29467, 45892, 48578, 24581, 48578, 48578, 48578, 36411, 18262, 48578, 48578, 48578, 48578, 48578, 25105, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 18965, 32022, 41109, 48578, 21434, 13284, 35433, 48578, 38136, 48578, 41707, 41603, 7888, 48578, 20535, 28561, 24596, 18265, 30825, 47184, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 8627, 48578, 48578, 44385, 13285, 25243, 24611, 47954, 19921, 21703, 48578, 15000, 48578, 44712, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 25115, 45266, 31064, 20853, 16627, 48578, 47958, 48578, 48578, 15531, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 33336, 48578, 48578, 11923, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 56576, 56577, 56578, 56579, 56580, 56581, 56582, 56583, 56584, 56585, 56586, 56587, 56588, 56589, 56590, 56591, 0, 0, 0, 56595, 56596, 0, 0, 56599, 56600, 56601, 56602, 56603, 56604, 56605, 56606, 56607, 56608, 0, 56610, 56611, 0, 56613, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56624, 0, 56626, 56627, 0, 0, 56630, 56631, 56632, 56633, 0, 0, 56636, 56637, 56638, 0, 56640, 56641, 56642, 56643, 56644, 56645, 56646, 56647, 56648, 56649, 56650, 56651, 56652, 56653, 56654, 0, 56656, 56657, 0, 56659, 56660, 56661, 56662, 56663, 56664, 56665, 56666, 56667, 0, 0, 0, 0, 0, 56673, 56674, 0, 0, 56677, 0, 0, 0, 56681, 0, 0, 0, 56685, 56686, 0, 56688, 56689, 56690, 56691, 56692, 56693, 0, 56695, 56696, 56697, 56698, 56699, 56700, 56701, 56702, 56703, 56704, 56705, 56706, 56707, 56708, 0, 0, 0, 0, 56713, 56714, 56715, 0, 0, 56718, 0, 0, 0, 0, 0, 0, 0, 56726, 0, 56728, 56729, 56730, 0, 0, 56733, 56734, 56735, 56736, 56737, 0, 56739, 56740, 56741, 56742, 56743, 56744, 56745, 56746, 56747, 56748, 56749, 56750, 56751, 56752, 56753, 56754, 56755, 56756, 0, 0, 0, 56760, 0, 0, 0, 56764, 0, 56766, 0, 0, 0, 56770, 0, 0, 0, 0, 0, 0, 56777, 56778, 56779, 56780, 56781, 56782, 56783, 56784, 0, 56786, 56787, 0, 0, 0, 0, 0, 0, 0, 56795, 0, 56797, 0, 56799, 56800, 56801, 56802, 56803, 56804, 56805, 56806, 56807, 0, 0, 0, 0, 0, 56813, 0, 56815, 56816, 0, 56818, 56819, 56820, 56821, 56822, 56823, 56824, 0, 56826, 56827, 0, 56829, 56830, 56831, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p25E: 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 48578, 48578, 48578, 18966, 48578, 48578, 48578, 48578, 12585, 25702, 43311, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 33043, 45059, 48578, 12858, 48578, 48578, 48578, 48578, 48578, 48578, 15701, 45328, 33636, 44732, 9275, 48578, 13348, 14486, 48578, 44494, 48578, 33864, 48578, 48578, 48578, 48578, 48578, 16138, 48578, 27586, 37256, 48578, 48578, 25045, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 45643, 29500, 48578, 27261, 48578, 27736, 14583, 48578, 28152, 35014, 42718, 19963, 47570, 48578, 48578, 48578, 48578, 48578, 7815, 44529, 48578, 30217, 48578, 48578, 48578, 18537, 9544, 20597, 48578, 48578, 48578, 35924, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 46973, 48578, 27347, 22573, 48578, 48578, 48578, 48578, 42154, 13820, 32280, 9375, 11262, 31354, 25484, 9175, 48578, 22510, 14915, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 12647, 48578, 48578, 48578, 13548, 15961, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 25333, 38967, 48578, 28602, 47274, 47275, 48578, 48578, 48578, 48578, 11021, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 28627, 19419, 48578, 31990, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 22390, 48578, 48578, 39652, 48578, 17668, 48578, 25151, 48578, 48031, 48578, 48578, 48578, 29221, 11897, 48578, 48578, 48578, 48578, 9805, 48578, 48578, 48578, 48578, 48578, 47227, 9309, 48578, 48578, 48578, 48578, 48578, 11026, 39134, 33070, 39473, 33304, 27529, 48578, 14513, 46699, 48578, 12032, 48578, 48578, 48578, 48578, 48578, 39305, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 29160, 24198, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 56832, 56833, 56834, 0, 56836, 56837, 56838, 56839, 0, 0, 0, 56843, 56844, 56845, 56846, 56847, 56848, 56849, 56850, 56851, 56852, 56853, 56854, 0, 0, 56857, 0, 56859, 56860, 56861, 56862, 56863, 56864, 0, 0, 0, 0, 0, 56870, 0, 0, 56873, 0, 56875, 0, 56877, 56878, 56879, 56880, 56881, 0, 56883, 0, 0, 56886, 56887, 0, 56889, 56890, 56891, 56892, 56893, 56894, 56895, 56896, 0, 0, 56899, 0, 56901, 0, 0, 56904, 0, 0, 0, 0, 0, 56910, 56911, 56912, 56913, 56914, 0, 0, 56917, 0, 56919, 56920, 56921, 0, 0, 0, 56925, 56926, 56927, 0, 56929, 56930, 56931, 56932, 56933, 56934, 56935, 56936, 0, 56938, 0, 0, 56941, 56942, 56943, 56944, 0, 0, 0, 0, 0, 0, 0, 0, 56953, 0, 0, 56956, 56957, 56958, 56959, 56960, 56961, 56962, 56963, 56964, 0, 56966, 56967, 56968, 0, 0, 56971, 56972, 56973, 56974, 56975, 56976, 56977, 56978, 56979, 56980, 56981, 56982, 56983, 56984, 0, 0, 56987, 0, 0, 0, 56991, 56992, 56993, 56994, 0, 56996, 56997, 56998, 56999, 57000, 57001, 57002, 57003, 57004, 57005, 57006, 57007, 57008, 57009, 57010, 57011, 0, 0, 57014, 0, 57016, 57017, 57018, 57019, 57020, 57021, 57022, 57023, 57024, 57025, 57026, 57027, 0, 57029, 57030, 0, 57032, 0, 57034, 0, 57036, 0, 57038, 57039, 57040, 0, 0, 57043, 57044, 57045, 57046, 0, 57048, 57049, 57050, 57051, 57052, 0, 0, 57055, 57056, 57057, 57058, 57059, 0, 0, 0, 0, 0, 0, 57066, 0, 0, 57069, 0, 57071, 57072, 57073, 57074, 57075, 0, 57077, 57078, 57079, 57080, 57081, 57082, 57083, 57084, 57085, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p25F: 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 1, 2, 2, 1, 1, 1, 1, 2, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 1, 1, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 48336, 48578, 11975, 45547, 48578, 24199, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 30624, 48578, 47847, 12043, 30316, 48578, 14524, 35957, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48054, 48376, 47294, 32716, 25165, 35958, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 34415, 48578, 48578, 48578, 11992, 48060, 15149, 48578, 48578, 48578, 48578, 40047, 48578, 48578, 48578, 48578, 48578, 48578, 14990, 48578, 48578, 48578, 48578, 48578, 48578, 39687, 20442, 48578, 14934, 48578, 48578, 48578, 48578, 24582, 27946, 48578, 48578, 48578, 48578, 48578, 48578, 43976, 48578, 48578, 48578, 48578, 48578, 19325, 48578, 32023, 48578, 48578, 48578, 48578, 28701, 48578, 48578, 48578, 27319, 48578, 48578, 30828, 48578, 48578, 17703, 48578, 24819, 48578, 48578, 48578, 48578, 48578, 48578, 48572, 48578, 48578, 25426, 48578, 48578, 47450, 48578, 28705, 48578, 48578, 19691, 32630, 20893, 15673, 48578, 48578, 42988, 48578, 48578, 47303, 48578, 38603, 48578, 48578, 48578, 48578, 16084, 11878, 48578, 27587, 48578, 48578, 48578, 41315, 48578, 46662, 39964, 48578, 48578, 15215, 18160, 48578, 48578, 48578, 12772, 48578, 22113, 13152, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 34442, 48578, 48578, 37739, 48578, 48578, 48578, 48578, 48578, 48578, 28153, 12778, 34343, 11631, 34514, 48578, 37499, 10329, 14493, 48578, 16344, 44756, 48578, 48578, 16604, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 31429, 48578, 45910, 12291, 33755, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 47267, 39768, 27739, 48138, 18719, 27266, 48578, 39092, 46974, 29299, 13984, 48578, 48578, 48578, 11698, 27973, 48578, 10284, 48578, 43078, 16246, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 57089, 0, 0, 57092, 0, 57094, 57095, 57096, 57097, 57098, 57099, 57100, 57101, 57102, 57103, 57104, 57105, 57106, 57107, 57108, 57109, 57110, 57111, 0, 57113, 0, 0, 0, 57117, 0, 0, 57120, 57121, 57122, 57123, 57124, 57125, 57126, 57127, 57128, 0, 0, 0, 0, 0, 0, 57135, 57136, 57137, 57138, 57139, 57140, 57141, 0, 57143, 57144, 57145, 0, 0, 0, 57149, 57150, 57151, 57152, 0, 57154, 57155, 57156, 57157, 57158, 57159, 0, 57161, 57162, 57163, 57164, 57165, 57166, 0, 0, 57169, 0, 57171, 57172, 57173, 57174, 0, 0, 57177, 57178, 57179, 57180, 57181, 57182, 0, 57184, 57185, 57186, 57187, 57188, 0, 57190, 0, 57192, 57193, 57194, 57195, 0, 57197, 57198, 57199, 0, 57201, 57202, 0, 57204, 57205, 0, 57207, 0, 57209, 57210, 57211, 57212, 57213, 57214, 0, 57216, 57217, 0, 57219, 57220, 0, 57222, 0, 57224, 57225, 0, 0, 0, 0, 57230, 57231, 0, 57233, 57234, 0, 57236, 0, 57238, 57239, 57240, 57241, 0, 0, 57244, 0, 57246, 57247, 57248, 0, 57250, 0, 0, 57253, 57254, 0, 0, 57257, 57258, 57259, 0, 57261, 0, 0, 57264, 57265, 57266, 57267, 57268, 57269, 57270, 57271, 57272, 0, 57274, 57275, 0, 57277, 57278, 57279, 57280, 57281, 57282, 0, 0, 0, 0, 0, 57288, 0, 0, 0, 57292, 0, 0, 57295, 57296, 0, 57298, 57299, 57300, 57301, 57302, 57303, 57304, 57305, 0, 57307, 0, 0, 0, 57311, 57312, 57313, 57314, 57315, 57316, 57317, 0, 0, 0, 0, 0, 0, 57324, 0, 0, 0, 0, 57329, 57330, 57331, 0, 0, 57334, 0, 57336, 0, 0, 57339, 57340, 57341, 57342, 57343, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p260: 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 1, 1, 1, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 21299, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 45601, 30091, 42470, 20942, 48578, 29721, 48578, 48578, 33379, 47746, 21476, 48578, 48578, 25485, 44442, 48578, 21674, 48578, 48578, 48578, 48578, 29149, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 26919, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 10376, 48578, 47688, 28691, 22827, 20840, 18483, 48578, 48578, 40401, 48519, 41900, 22166, 48578, 48578, 48578, 48578, 18122, 47358, 33818, 48578, 41792, 48578, 40273, 13252, 48578, 48578, 10379, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 20277, 19838, 48578, 48578, 11575, 17933, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 12207, 48578, 48578, 48578, 22391, 40491, 19045, 20282, 47365, 45735, 15478, 10882, 8286, 29155, 48578, 48578, 48578, 19852, 31044, 48578, 37681, 29204, 8549, 34869, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 21311, 42492, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 14733, 48578, 48578, 24188, 48578, 48578, 24478, 29806, 48578, 48578, 48578, 48578, 48578, 48578, 35490, 25509, 17673, 19168, 36000, 34870, 47062, 9210, 48578, 48578, 48578, 39135, 48578, 48578, 48578, 30200, 32401, 48578, 28085, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 43837, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 57344, 57345, 57346, 57347, 57348, 57349, 57350, 0, 57352, 57353, 57354, 57355, 57356, 57357, 57358, 57359, 57360, 57361, 57362, 0, 0, 0, 0, 57367, 0, 57369, 57370, 0, 0, 0, 57374, 57375, 0, 0, 57378, 0, 57380, 57381, 57382, 57383, 0, 57385, 57386, 57387, 57388, 57389, 57390, 57391, 57392, 57393, 57394, 57395, 57396, 57397, 57398, 57399, 0, 57401, 57402, 57403, 57404, 57405, 57406, 57407, 57408, 57409, 57410, 57411, 0, 57413, 0, 0, 0, 0, 0, 57419, 57420, 0, 0, 0, 0, 57425, 57426, 57427, 57428, 0, 0, 0, 57432, 0, 57434, 0, 0, 57437, 57438, 0, 57440, 57441, 57442, 57443, 57444, 57445, 57446, 57447, 57448, 57449, 57450, 57451, 57452, 57453, 57454, 57455, 57456, 57457, 0, 0, 57460, 57461, 0, 0, 57464, 57465, 57466, 57467, 57468, 57469, 57470, 57471, 0, 57473, 57474, 57475, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57486, 57487, 57488, 0, 0, 57491, 0, 0, 0, 0, 57496, 57497, 57498, 57499, 57500, 57501, 57502, 57503, 0, 0, 57506, 57507, 57508, 57509, 57510, 57511, 57512, 57513, 57514, 57515, 57516, 57517, 57518, 57519, 57520, 57521, 57522, 57523, 57524, 57525, 57526, 57527, 57528, 57529, 57530, 57531, 57532, 57533, 57534, 57535, 57536, 57537, 57538, 57539, 0, 57541, 57542, 0, 57544, 57545, 0, 0, 57548, 57549, 57550, 57551, 57552, 57553, 0, 0, 0, 0, 0, 0, 0, 0, 57562, 57563, 57564, 0, 57566, 57567, 57568, 0, 0, 57571, 0, 57573, 57574, 57575, 57576, 57577, 57578, 57579, 57580, 57581, 57582, 57583, 57584, 57585, 57586, 57587, 57588, 57589, 57590, 57591, 57592, 57593, 57594, 57595, 57596, 0, 57598, 57599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p261: 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 1, 1, 2, 1, 1, 1, 2, 2, 1, 2, 1, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 48578, 48578, 12319, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 30712, 13144, 28826, 34778, 48578, 33708, 23355, 35500, 48578, 13501, 13268, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 16177, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 47670, 17049, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 40797, 32089, 48578, 48578, 41351, 48578, 48578, 20637, 46261, 48578, 13087, 33184, 8270, 48578, 35640, 31099, 48578, 48578, 48578, 40798, 48578, 41352, 48578, 48578, 27931, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 35512, 23467, 47524, 47379, 48578, 24546, 48578, 12380, 21775, 48578, 45209, 10059, 26377, 48578, 48578, 33319, 48578, 24729, 48578, 48393, 48578, 48578, 23565, 34782, 31462, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 13503, 48578, 48578, 48578, 48578, 48578, 38667, 27170, 48578, 19904, 48578, 48578, 10697, 48578, 28555, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 42263, 48578, 48578, 23479, 48578, 48578, 26216, 48578, 35523, 15153, 48578, 48578, 24027, 38034, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 11786, 48578, 48578, 48578, 48578, 48578, 24597, 48578, 30064, 48578, 22302, 21831, 48578, 23485, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 19922, 48578, 48578, 27623, 48578, 42376, 8668, 48578, 48578, 48578, 11832, 34969, 48578, 48578, 34970, 48578, 48578, 17704, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 57600, 57601, 0, 57603, 57604, 57605, 57606, 57607, 57608, 57609, 0, 0, 0, 0, 57614, 0, 0, 0, 57618, 0, 0, 57621, 57622, 57623, 57624, 57625, 57626, 57627, 0, 57629, 57630, 57631, 57632, 57633, 57634, 57635, 57636, 57637, 57638, 57639, 57640, 57641, 57642, 57643, 57644, 57645, 57646, 0, 0, 57649, 57650, 57651, 57652, 57653, 57654, 57655, 57656, 57657, 57658, 57659, 0, 0, 57662, 57663, 0, 57665, 57666, 0, 0, 57669, 0, 0, 0, 57673, 0, 0, 57676, 57677, 57678, 0, 57680, 0, 57682, 57683, 0, 57685, 57686, 57687, 57688, 57689, 57690, 57691, 57692, 57693, 57694, 57695, 57696, 57697, 57698, 57699, 57700, 57701, 57702, 57703, 57704, 57705, 57706, 57707, 57708, 57709, 57710, 57711, 57712, 57713, 57714, 57715, 57716, 0, 0, 0, 0, 57721, 0, 57723, 0, 0, 57726, 0, 0, 0, 57730, 57731, 0, 57733, 0, 57735, 0, 57737, 57738, 0, 0, 0, 57742, 57743, 57744, 57745, 57746, 57747, 57748, 57749, 57750, 57751, 0, 57753, 57754, 57755, 57756, 57757, 0, 0, 57760, 0, 57762, 57763, 0, 57765, 0, 57767, 57768, 57769, 57770, 57771, 57772, 57773, 57774, 57775, 57776, 57777, 57778, 57779, 57780, 57781, 57782, 57783, 0, 57785, 57786, 0, 57788, 57789, 0, 57791, 0, 0, 57794, 57795, 0, 0, 57798, 57799, 57800, 57801, 57802, 57803, 57804, 57805, 0, 57807, 57808, 57809, 57810, 57811, 0, 57813, 0, 57815, 0, 0, 57818, 0, 57820, 57821, 57822, 57823, 57824, 57825, 57826, 57827, 57828, 57829, 57830, 0, 57832, 57833, 0, 57835, 0, 0, 57838, 57839, 57840, 0, 0, 57843, 57844, 0, 57846, 57847, 0, 57849, 57850, 57851, 57852, 57853, 57854, 57855, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p262: 2, 2, 2, 1, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 48578, 48578, 48578, 28323, 48578, 13294, 48578, 48578, 10318, 45170, 48578, 40689, 34506, 48578, 10021, 27648, 24660, 43351, 40474, 37804, 16416, 36953, 35679, 14723, 12151, 28798, 11890, 48536, 20964, 41145, 9211, 21128, 43500, 40792, 48578, 44242, 40613, 48578, 30749, 8083, 40525, 16202, 48578, 48578, 48424, 48578, 48578, 48578, 20830, 48578, 22383, 48578, 48578, 40535, 8096, 34529, 44595, 48578, 47320, 45923, 48578, 48578, 48578, 48578, 48578, 48578, 47170, 48578, 48578, 48578, 9806, 48578, 11457, 25593, 48578, 48578, 48578, 48578, 35412, 48578, 47522, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 8754, 48578, 48578, 48578, 40458, 48578, 41541, 48578, 48578, 25390, 48578, 48578, 48578, 48578, 41543, 48578, 48578, 48578, 48578, 36729, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 12803, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 29764, 18324, 9696, 48578, 48578, 48578, 48578, 48578, 48578, 36495, 27996, 21984, 48578, 27997, 48578, 21871, 25561, 48578, 25439, 48578, 48578, 48578, 25562, 18334, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 15217, 18161, 48578, 48578, 14172, 16149, 16345, 48578, 48578, 48578, 48578, 16557, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 26283, 48578, 14494, 26185, 27109, 15256, 25477, 48578, 48578, 48578, 48578, 48578, 40130, 16356, 48578, 39635, 9176, 48578, 19817, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32182, 26003, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 34865, 48578, 48578, 27999, 44597, 17350, 48578, 48578, 48578, 48578, 48578, 45002, 12453, 48578, 48578, 48578, 48578, 44323, 20159, 48578, 48578, 15769, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 9620, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 57856, 57857, 57858, 0, 57860, 0, 57862, 57863, 0, 0, 57866, 0, 0, 57869, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57890, 0, 0, 57893, 0, 0, 0, 0, 57898, 57899, 0, 57901, 57902, 57903, 0, 57905, 0, 57907, 57908, 0, 0, 0, 0, 57913, 0, 0, 57916, 57917, 57918, 57919, 57920, 57921, 0, 57923, 57924, 57925, 0, 57927, 0, 0, 57930, 57931, 57932, 57933, 0, 57935, 0, 57937, 57938, 57939, 57940, 57941, 57942, 57943, 57944, 0, 57946, 57947, 57948, 0, 57950, 0, 57952, 57953, 0, 57955, 57956, 57957, 57958, 0, 57960, 57961, 57962, 57963, 0, 57965, 57966, 57967, 57968, 57969, 57970, 57971, 57972, 57973, 57974, 57975, 57976, 0, 57978, 57979, 57980, 57981, 57982, 57983, 57984, 0, 0, 0, 57988, 57989, 57990, 57991, 57992, 57993, 0, 0, 0, 57997, 0, 57999, 0, 0, 58002, 0, 58004, 58005, 58006, 0, 0, 58009, 58010, 58011, 58012, 58013, 58014, 58015, 58016, 58017, 58018, 58019, 58020, 58021, 0, 0, 58024, 58025, 0, 0, 0, 58029, 58030, 58031, 58032, 0, 58034, 58035, 58036, 58037, 58038, 58039, 58040, 0, 58042, 0, 0, 0, 0, 0, 58048, 58049, 58050, 58051, 58052, 0, 0, 58055, 0, 0, 58058, 0, 58060, 58061, 58062, 58063, 58064, 58065, 58066, 0, 0, 58069, 58070, 58071, 58072, 58073, 58074, 58075, 58076, 58077, 0, 58079, 58080, 0, 0, 0, 58084, 58085, 58086, 58087, 58088, 0, 0, 58091, 58092, 58093, 58094, 0, 0, 58097, 58098, 0, 58100, 58101, 58102, 58103, 58104, 58105, 58106, 58107, 58108, 58109, 58110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p263: 1, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 1, 2, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 33997, 25574, 48578, 48578, 48578, 48578, 20623, 48578, 48578, 35322, 35323, 47230, 48578, 48578, 48578, 48578, 48578, 48578, 25004, 48578, 41103, 26065, 48578, 19879, 48578, 48578, 41679, 48578, 48578, 48578, 48578, 26078, 48578, 27717, 36397, 48578, 48578, 48578, 18692, 48578, 48578, 43234, 36004, 48578, 38569, 48578, 48578, 48578, 19479, 48578, 48578, 48578, 48578, 48578, 48578, 13641, 23331, 48578, 22301, 48578, 48578, 48578, 48578, 34165, 28295, 30268, 48578, 48578, 34555, 32296, 48578, 48578, 48578, 48578, 48578, 48578, 32580, 48578, 48578, 14852, 48578, 48578, 35713, 37255, 48578, 42028, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 13932, 11598, 48578, 16408, 14858, 48578, 48578, 32775, 48578, 48578, 48578, 15795, 39748, 48578, 39749, 18046, 48578, 36165, 33578, 42043, 48139, 48578, 44823, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 35234, 48578, 48578, 11372, 39753, 48578, 7821, 48578, 26682, 48578, 15374, 23432, 24299, 48578, 20943, 43956, 48578, 48578, 48578, 48578, 44598, 48578, 10870, 48578, 11373, 43138, 33510, 48578, 48578, 48578, 19617, 41586, 48578, 48578, 38643, 11519, 26772, 48578, 48578, 48578, 48578, 15298, 19985, 16318, 16376, 20037, 48578, 48578, 48578, 39474, 48578, 21258, 48148, 25781, 48578, 48578, 16320, 48578, 48578, 48578, 32546, 48578, 33520, 48578, 48578, 22210, 36911, 44128, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 20189, 13636, 48578, 18254, 48578, 48578, 48578, 33228, 44693, 48578, 48578, 48578, 48578, 48578, 26624, 48578, 46706, 41600, 15820, 48578, 18532, 48578, 48578, 48578, 48578, 48578, 32265, 48578, 48578, 42110, 48578, 48422, 48578, 48578, 48578, 39849, 42990, 41743, 17891, 44243, 48578, 48578, 48578, 10834, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 58114, 58115, 58116, 58117, 0, 58119, 58120, 0, 0, 0, 58124, 58125, 58126, 58127, 58128, 58129, 0, 58131, 0, 0, 58134, 0, 58136, 58137, 0, 58139, 58140, 58141, 58142, 0, 58144, 0, 0, 58147, 58148, 58149, 0, 58151, 58152, 0, 0, 58155, 0, 58157, 58158, 58159, 0, 58161, 58162, 58163, 58164, 58165, 58166, 0, 0, 58169, 0, 58171, 58172, 58173, 58174, 0, 0, 0, 58178, 58179, 0, 0, 58182, 58183, 58184, 58185, 58186, 58187, 0, 58189, 58190, 0, 58192, 58193, 0, 0, 58196, 0, 58198, 58199, 58200, 58201, 58202, 58203, 58204, 58205, 58206, 58207, 58208, 58209, 58210, 58211, 58212, 58213, 0, 0, 58216, 0, 0, 58219, 58220, 0, 58222, 58223, 58224, 0, 0, 58227, 0, 0, 58230, 0, 0, 0, 0, 58235, 0, 58237, 58238, 58239, 58240, 58241, 58242, 58243, 0, 58245, 58246, 0, 0, 58249, 0, 58251, 0, 58253, 0, 0, 0, 58257, 0, 0, 58260, 58261, 58262, 58263, 0, 58265, 0, 58267, 0, 0, 0, 58271, 58272, 58273, 0, 0, 58276, 58277, 0, 0, 0, 58281, 58282, 58283, 58284, 0, 0, 0, 0, 0, 58290, 58291, 58292, 0, 58294, 0, 0, 0, 58298, 58299, 0, 58301, 58302, 58303, 0, 58305, 0, 58307, 58308, 0, 0, 0, 58312, 58313, 58314, 58315, 58316, 58317, 58318, 58319, 58320, 58321, 58322, 58323, 0, 0, 58326, 0, 58328, 58329, 58330, 0, 0, 58333, 58334, 58335, 58336, 58337, 0, 58339, 0, 0, 0, 58343, 0, 58345, 58346, 58347, 58348, 58349, 0, 58351, 58352, 0, 58354, 0, 58356, 58357, 58358, 0, 0, 0, 0, 0, 58364, 58365, 58366, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p264: 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 48578, 10714, 48578, 48578, 17414, 33267, 29245, 35716, 14822, 10655, 48578, 48578, 17900, 41229, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 46829, 48578, 48578, 48578, 48578, 32045, 48578, 48578, 48578, 48578, 38758, 15235, 48578, 34521, 17160, 48578, 30243, 48578, 11675, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 9881, 48578, 48578, 17833, 48578, 48578, 48578, 48578, 29469, 33891, 39889, 48578, 48578, 41014, 11677, 36771, 30249, 48578, 48578, 48578, 48578, 48578, 48578, 35746, 9759, 48578, 48578, 48328, 19273, 40942, 41901, 9883, 48578, 37374, 48578, 48578, 48578, 48578, 48578, 48578, 39465, 41027, 18025, 18629, 15976, 10991, 8551, 17841, 17842, 10743, 48578, 9807, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 45736, 48578, 45810, 35764, 48578, 48578, 30255, 35765, 48578, 44055, 15309, 11606, 12208, 35698, 48578, 25510, 48578, 48578, 11607, 48578, 17853, 48578, 17373, 23421, 48578, 34154, 48578, 48578, 48578, 48578, 36912, 19089, 17683, 30025, 44673, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 39390, 17289, 48578, 30260, 48578, 48578, 48578, 48578, 48578, 48578, 23480, 19326, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 35877, 48578, 48578, 48578, 23846, 48578, 34631, 48578, 48578, 48578, 12635, 13020, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 40627, 48578, 48578, 37782, 48578, 10313, 28212, 48578, 22079, 48578, 48578, 14328, 14332, 29075, 29090, 48578, 48578, 48578, 48578, 48578, 48578, 47669, 48578, 48578, 48578, 48578, 29167, 48578, 25018, 23985, 48578, 7648, 48578, 48578, 48578, 48578, 10496, 48578, 48578, 16776, 32225, 16027, 48578, 16203, 33749, 48578, 48578, 48578, 48578, 23525, 46549, 43139, 16959, 37815, 26345, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 58368, 0, 58370, 58371, 0, 0, 0, 0, 0, 0, 58378, 58379, 0, 0, 58382, 58383, 58384, 58385, 58386, 58387, 58388, 58389, 0, 58391, 58392, 58393, 58394, 0, 58396, 58397, 58398, 58399, 0, 0, 58402, 0, 0, 58405, 0, 58407, 0, 58409, 58410, 58411, 58412, 58413, 58414, 58415, 0, 58417, 58418, 0, 58420, 58421, 58422, 58423, 0, 0, 0, 58427, 58428, 0, 0, 0, 0, 58433, 58434, 58435, 58436, 58437, 58438, 0, 0, 58441, 58442, 0, 0, 0, 0, 0, 58448, 0, 58450, 58451, 58452, 58453, 58454, 58455, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58466, 0, 58468, 58469, 58470, 58471, 58472, 58473, 58474, 58475, 58476, 58477, 58478, 0, 58480, 0, 0, 58483, 58484, 0, 0, 58487, 0, 0, 0, 0, 0, 58493, 0, 58495, 58496, 0, 58498, 0, 58500, 0, 0, 58503, 0, 58505, 58506, 58507, 58508, 0, 0, 0, 0, 0, 58514, 58515, 58516, 58517, 58518, 58519, 58520, 58521, 58522, 58523, 0, 0, 58526, 0, 58528, 58529, 58530, 58531, 58532, 58533, 0, 0, 58536, 58537, 58538, 58539, 58540, 58541, 58542, 58543, 0, 58545, 58546, 58547, 0, 58549, 0, 58551, 58552, 58553, 0, 0, 58556, 58557, 58558, 58559, 58560, 58561, 58562, 58563, 58564, 58565, 58566, 58567, 0, 58569, 58570, 0, 58572, 0, 0, 58575, 0, 58577, 58578, 0, 0, 0, 0, 58583, 58584, 58585, 58586, 58587, 58588, 0, 58590, 58591, 58592, 58593, 0, 58595, 0, 0, 58598, 0, 58600, 58601, 58602, 58603, 0, 58605, 58606, 0, 0, 0, 58610, 0, 0, 58613, 58614, 58615, 58616, 0, 0, 0, 0, 0, 0, 58623, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p265: 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 1, 1, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 48578, 48578, 34222, 43609, 34062, 37079, 8552, 48578, 45529, 47228, 48578, 32759, 30602, 15493, 9687, 48578, 48578, 48578, 48578, 24200, 26655, 48578, 24713, 8800, 48578, 48578, 48578, 11407, 43235, 48578, 48578, 48578, 29306, 48578, 48578, 48578, 48578, 43254, 23033, 48578, 48578, 8817, 48578, 10913, 32117, 27957, 46187, 33410, 33411, 48578, 48578, 48578, 48578, 48578, 48578, 42152, 16140, 28216, 48578, 48578, 40228, 48578, 48578, 36604, 48578, 48578, 48578, 48578, 48578, 48578, 42397, 48578, 48578, 33365, 48578, 48578, 48578, 48578, 48578, 33243, 48578, 48578, 12983, 40897, 48578, 48578, 48578, 48578, 48578, 32046, 48578, 48578, 48578, 48578, 48578, 48578, 17834, 34078, 36823, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 14058, 48578, 48578, 48578, 48578, 24906, 48578, 17972, 24300, 48578, 39773, 48578, 48578, 33988, 48578, 48578, 15123, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 41794, 37759, 30445, 13992, 48578, 18484, 30953, 48578, 40274, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 11705, 34033, 48578, 48578, 48578, 14397, 48578, 40492, 48578, 37226, 41906, 48578, 25071, 48578, 48578, 27279, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48247, 48578, 48032, 48578, 18227, 43702, 24705, 12162, 36548, 36610, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32700, 48578, 7343, 48578, 48578, 7353, 46255, 17014, 26066, 46109, 27289, 24939, 46256, 48578, 48578, 48578, 32141, 11778, 48578, 48578, 36745, 48578, 35960, 45941, 18246, 48578, 30026, 48578, 12165, 32717, 48578, 48578, 48578, 48578, 48578, 28400, 48578, 48578, 48578, 48578, 28300, 12514, 20734, 48578, 48578, 48578, 48578, 48578, 21938, 14373, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 58624, 58625, 0, 0, 0, 0, 0, 58631, 0, 0, 58634, 0, 0, 0, 0, 58639, 58640, 58641, 58642, 0, 0, 58645, 0, 0, 58648, 58649, 58650, 0, 0, 58653, 58654, 58655, 0, 58657, 58658, 58659, 58660, 0, 0, 58663, 58664, 0, 58666, 0, 0, 0, 0, 0, 0, 58673, 58674, 58675, 58676, 58677, 58678, 0, 0, 0, 58682, 58683, 0, 58685, 58686, 0, 58688, 58689, 58690, 58691, 58692, 58693, 0, 58695, 58696, 0, 58698, 58699, 58700, 58701, 58702, 0, 58704, 58705, 0, 0, 58708, 58709, 58710, 58711, 58712, 0, 58714, 58715, 58716, 58717, 58718, 58719, 0, 0, 0, 58723, 58724, 58725, 58726, 58727, 58728, 58729, 58730, 58731, 58732, 58733, 58734, 58735, 0, 58737, 58738, 58739, 58740, 0, 58742, 0, 0, 58745, 0, 58747, 58748, 0, 58750, 58751, 0, 58753, 58754, 58755, 58756, 58757, 58758, 58759, 0, 0, 0, 0, 58764, 0, 0, 58767, 0, 58769, 58770, 58771, 58772, 58773, 58774, 58775, 58776, 58777, 58778, 58779, 58780, 0, 0, 58783, 58784, 58785, 0, 58787, 0, 58789, 0, 0, 58792, 0, 58794, 58795, 0, 58797, 58798, 58799, 58800, 58801, 58802, 58803, 58804, 58805, 58806, 58807, 0, 58809, 0, 58811, 0, 0, 0, 0, 0, 0, 58818, 58819, 58820, 58821, 58822, 58823, 58824, 58825, 58826, 0, 58828, 0, 58830, 58831, 0, 0, 0, 0, 0, 0, 0, 0, 58840, 58841, 58842, 0, 0, 58845, 58846, 0, 58848, 0, 0, 0, 58852, 0, 58854, 0, 0, 58857, 58858, 58859, 58860, 58861, 0, 58863, 58864, 58865, 58866, 0, 0, 0, 58870, 58871, 58872, 58873, 58874, 0, 0, 58877, 58878, 58879, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p266: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 24599, 48578, 17018, 37539, 48578, 48578, 48578, 48578, 28754, 48578, 21105, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 29829, 10817, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 29830, 42915, 13575, 37486, 41256, 48578, 30725, 33566, 48578, 48578, 40725, 48578, 48578, 17560, 29361, 48578, 29496, 48578, 40588, 48578, 10770, 35882, 48437, 48390, 30733, 13576, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 34798, 48578, 48578, 28116, 38705, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 10263, 42964, 48578, 48578, 46512, 48578, 48578, 21715, 12281, 48578, 33122, 48578, 48578, 47555, 37666, 48578, 48578, 33123, 7874, 20080, 26606, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 37427, 48578, 30743, 48578, 48578, 48578, 48578, 47718, 37349, 48578, 48578, 30115, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 29582, 23073, 42709, 48578, 40229, 44936, 17769, 48578, 17997, 46515, 11532, 34334, 37491, 48578, 40108, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 16106, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 14161, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 22925, 28147, 48578, 48578, 21646, 41128, 31971, 10331, 26147, 17625, 34075, 28291, 48578, 17626, 9786, 41564, 16090, 28778, 48578, 17032, 41639, 16633, 48578, 48578, 46945, 23893, 48578, 48578, 48578, 48578, 48578, 48578, 13666, 30760, 31972, 22124, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 58880, 58881, 58882, 58883, 58884, 58885, 58886, 58887, 58888, 58889, 0, 58891, 0, 0, 58894, 58895, 58896, 58897, 0, 58899, 0, 58901, 58902, 58903, 58904, 58905, 58906, 58907, 58908, 58909, 58910, 58911, 58912, 58913, 58914, 58915, 58916, 58917, 58918, 58919, 58920, 0, 0, 58923, 58924, 58925, 58926, 58927, 58928, 58929, 0, 0, 0, 0, 0, 58935, 0, 0, 58938, 58939, 0, 58941, 58942, 0, 0, 58945, 0, 58947, 0, 58949, 0, 0, 0, 0, 0, 0, 58956, 58957, 58958, 58959, 58960, 58961, 58962, 58963, 58964, 58965, 58966, 58967, 58968, 0, 58970, 58971, 0, 0, 58974, 58975, 58976, 58977, 58978, 58979, 58980, 58981, 58982, 0, 0, 58985, 58986, 0, 58988, 58989, 0, 0, 58992, 0, 58994, 58995, 0, 0, 58998, 58999, 0, 0, 0, 0, 59004, 59005, 59006, 59007, 59008, 59009, 59010, 59011, 59012, 59013, 59014, 59015, 0, 59017, 0, 59019, 59020, 59021, 59022, 0, 0, 59025, 59026, 0, 59028, 59029, 59030, 59031, 59032, 59033, 59034, 59035, 59036, 0, 0, 0, 59040, 0, 0, 0, 59044, 0, 0, 0, 0, 0, 59050, 0, 59052, 59053, 59054, 59055, 59056, 59057, 59058, 59059, 59060, 59061, 59062, 59063, 0, 59065, 59066, 59067, 59068, 59069, 59070, 59071, 59072, 59073, 59074, 59075, 59076, 0, 59078, 59079, 59080, 59081, 59082, 59083, 59084, 59085, 59086, 0, 0, 59089, 59090, 0, 0, 0, 0, 0, 0, 0, 0, 59099, 0, 0, 0, 0, 0, 59105, 0, 0, 0, 59109, 59110, 0, 0, 59113, 59114, 59115, 59116, 59117, 59118, 0, 0, 0, 0, 59123, 59124, 59125, 59126, 59127, 59128, 59129, 59130, 59131, 59132, 59133, 59134, 59135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p267: 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 1, 1, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 2, 1, 1, 2, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48578, 14964, 48578, 40898, 37217, 48578, 17247, 22901, 48578, 48578, 33887, 46975, 48578, 29428, 46535, 24426, 37626, 48578, 14554, 40445, 48578, 48578, 41529, 48578, 48578, 48578, 48578, 21664, 33980, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 26786, 48578, 37282, 47890, 38780, 43535, 21297, 37261, 48578, 48578, 16110, 19805, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 47666, 48578, 48578, 36698, 48578, 46673, 48578, 19579, 48578, 48578, 48578, 43687, 38076, 48578, 18676, 36772, 9935, 48578, 48578, 23197, 30874, 7879, 9757, 37415, 28280, 20835, 48578, 41575, 48578, 37063, 48578, 38233, 48578, 11743, 48578, 48578, 40928, 43539, 48578, 48578, 8297, 48578, 48578, 48578, 48578, 26115, 48578, 48578, 48578, 48578, 45286, 12153, 48578, 48578, 48578, 28799, 21814, 18015, 48578, 48578, 48578, 16114, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 18016, 22448, 16158, 48578, 18948, 40275, 48578, 48578, 39114, 17253, 27276, 48578, 38290, 19184, 33218, 40449, 46233, 19274, 48578, 16163, 48578, 48578, 33111, 21118, 37466, 48578, 48578, 48578, 13798, 10677, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 38823, 48578, 48578, 48578, 48578, 27277, 45392, 33191, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 37266, 46996, 38235, 48578, 48578, 43439, 37284, 48578, 10942, 45530, 48578, 39910, 27799, 11898, 48578, 48578, 8688, 40663, 48578, 48578, 42767, 48578, 48578, 48578, 48578, 48578, 48578, 18820, 48578, 45661, 35583, 19157, 21910, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 59136, 0, 59138, 0, 0, 59141, 0, 0, 59144, 59145, 0, 0, 59148, 0, 0, 0, 0, 59153, 0, 0, 59156, 59157, 0, 59159, 59160, 59161, 59162, 0, 0, 59165, 59166, 59167, 59168, 59169, 59170, 59171, 59172, 59173, 59174, 59175, 59176, 59177, 59178, 59179, 59180, 0, 59182, 0, 0, 0, 0, 0, 0, 59189, 59190, 0, 0, 59193, 59194, 59195, 59196, 59197, 59198, 59199, 59200, 59201, 59202, 59203, 59204, 59205, 59206, 59207, 59208, 59209, 59210, 59211, 59212, 59213, 59214, 0, 59216, 59217, 0, 59219, 0, 59221, 0, 59223, 59224, 59225, 0, 0, 59228, 0, 0, 0, 59232, 59233, 0, 0, 0, 0, 0, 0, 0, 59241, 0, 59243, 0, 59245, 0, 59247, 0, 59249, 59250, 0, 0, 59253, 59254, 0, 59256, 59257, 59258, 59259, 0, 59261, 59262, 59263, 59264, 0, 0, 59267, 59268, 59269, 0, 0, 0, 59273, 59274, 59275, 0, 59277, 59278, 59279, 59280, 59281, 59282, 59283, 59284, 0, 0, 0, 59288, 0, 0, 59291, 59292, 0, 0, 0, 59296, 0, 0, 0, 0, 0, 0, 59303, 0, 59305, 59306, 0, 0, 0, 59310, 59311, 59312, 0, 0, 59315, 59316, 59317, 59318, 59319, 59320, 59321, 59322, 59323, 59324, 0, 59326, 59327, 59328, 59329, 0, 0, 0, 59333, 59334, 59335, 59336, 59337, 59338, 59339, 59340, 59341, 59342, 59343, 59344, 59345, 59346, 0, 0, 0, 59350, 59351, 0, 0, 59354, 0, 0, 59357, 0, 0, 0, 59361, 59362, 0, 0, 59365, 59366, 0, 59368, 59369, 59370, 59371, 59372, 59373, 0, 59375, 0, 0, 0, 0, 59380, 59381, 59382, 59383, 59384, 59385, 59386, 59387, 59388, 59389, 59390, 59391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p268: 2, 1, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 2, 48578, 11899, 48578, 48578, 19447, 41347, 35555, 9722, 48578, 43203, 48578, 48578, 48578, 48578, 8793, 48578, 48578, 48578, 22198, 24479, 48578, 48578, 29485, 48578, 48578, 48578, 48578, 45232, 42502, 48578, 8570, 46305, 46306, 48578, 21609, 46248, 48578, 48578, 34676, 48578, 48578, 48578, 38867, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 40844, 28208, 39475, 16968, 38098, 48578, 48578, 19642, 33078, 48578, 48578, 13435, 29122, 13715, 46559, 22918, 48578, 48578, 27753, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 7989, 19072, 48578, 48578, 48195, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 33172, 48578, 36268, 42787, 48578, 44655, 48578, 48578, 48578, 42361, 28929, 48578, 11087, 19193, 48578, 13839, 48578, 30816, 43765, 9061, 28915, 18785, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 43766, 48578, 48578, 48578, 7990, 48578, 48578, 48578, 16744, 24020, 48491, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 10060, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 20311, 48578, 48578, 48578, 27171, 48578, 40053, 48578, 48578, 48578, 48578, 48578, 40459, 48578, 24234, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 31357, 48578, 48578, 48578, 48578, 38036, 28184, 48578, 29397, 48578, 23966, 48578, 48578, 26394, 48578, 48578, 48578, 26248, 48578, 16074, 48578, 26249, 48578, 48578, 32118, 48578, 48578, 48578, 26401, 48578, 28307, 48578, 48578, 26402, 45057, 48578, 48578, 48578, 48578, 48578, 34806, 48578, 48578, 27383, 37721, 9669, 20131, 37750, 48578, 48578, 48578, 48578, 48578, 19986, 48578, 48578, 48578, 48578, 18614, 48578, 48578, 48578, 24823, 48119, 7758, 34438, 48578, 48578, 37599, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 59392, 0, 59394, 59395, 0, 0, 0, 0, 59400, 0, 59402, 59403, 59404, 59405, 0, 59407, 59408, 59409, 0, 0, 59412, 59413, 0, 59415, 59416, 59417, 59418, 0, 0, 59421, 0, 0, 0, 59425, 0, 0, 59428, 59429, 0, 59431, 59432, 59433, 0, 59435, 59436, 59437, 59438, 59439, 59440, 59441, 59442, 59443, 59444, 59445, 59446, 0, 0, 0, 0, 0, 59452, 59453, 0, 0, 59456, 59457, 0, 0, 0, 0, 0, 59463, 59464, 0, 59466, 59467, 59468, 59469, 59470, 59471, 59472, 59473, 59474, 59475, 59476, 0, 0, 59479, 59480, 0, 59482, 59483, 59484, 59485, 59486, 59487, 59488, 59489, 59490, 59491, 59492, 59493, 59494, 59495, 0, 59497, 0, 0, 59500, 0, 59502, 59503, 59504, 0, 0, 59507, 0, 0, 59510, 0, 59512, 0, 0, 0, 0, 0, 59518, 59519, 59520, 59521, 59522, 59523, 59524, 59525, 0, 59527, 59528, 59529, 0, 59531, 59532, 59533, 0, 0, 0, 59537, 59538, 59539, 59540, 59541, 59542, 59543, 59544, 0, 59546, 59547, 59548, 59549, 59550, 59551, 59552, 59553, 59554, 0, 59556, 59557, 59558, 0, 59560, 0, 59562, 59563, 59564, 59565, 59566, 0, 59568, 0, 59570, 59571, 59572, 59573, 59574, 59575, 59576, 59577, 0, 59579, 59580, 59581, 59582, 0, 0, 59585, 0, 59587, 0, 59589, 59590, 0, 59592, 59593, 59594, 0, 59596, 0, 59598, 0, 59600, 59601, 0, 59603, 59604, 59605, 0, 59607, 0, 59609, 59610, 0, 0, 59613, 59614, 59615, 59616, 59617, 0, 59619, 59620, 0, 0, 0, 0, 0, 59626, 59627, 59628, 59629, 59630, 0, 59632, 59633, 59634, 59635, 0, 59637, 59638, 59639, 0, 0, 0, 0, 59644, 59645, 0, 59647, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p269: 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 48578, 48578, 34507, 48578, 48578, 48578, 48578, 16762, 38733, 48578, 32818, 42334, 48578, 48578, 15796, 48578, 48578, 48578, 48578, 48578, 48578, 45003, 48578, 48578, 43829, 37507, 9199, 48578, 48578, 48578, 48578, 40455, 48578, 48578, 29890, 9224, 48578, 48578, 17171, 45836, 38397, 48578, 42535, 8617, 17175, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 10835, 48578, 48578, 46946, 48578, 28491, 48578, 48578, 48578, 38478, 7293, 48578, 48578, 48578, 48578, 48578, 7291, 44459, 10890, 48578, 48578, 21422, 47082, 47096, 47097, 21707, 48578, 48578, 48578, 48578, 17215, 48578, 48578, 48578, 30082, 48578, 48578, 42291, 48578, 48578, 48578, 48578, 48578, 44015, 30086, 48578, 27879, 48578, 48578, 48578, 48578, 48578, 48560, 30244, 48578, 41193, 23097, 43081, 30245, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 47791, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 28506, 31934, 11849, 48578, 48578, 48578, 48578, 48578, 48578, 42310, 48578, 48578, 48578, 48578, 14880, 48578, 48578, 48578, 39262, 48578, 20494, 9764, 48578, 48578, 40041, 9765, 48578, 48578, 48578, 48578, 48578, 10615, 12045, 48578, 48578, 48578, 31779, 48578, 44685, 48578, 44364, 48578, 48578, 48578, 38257, 48578, 9771, 44473, 48578, 48578, 48578, 48578, 48578, 48578, 48524, 12628, 48578, 48578, 22057, 12629, 43660, 48578, 15038, 48578, 48578, 48578, 38306, 48578, 48578, 21204, 30750, 48578, 31596, 48578, 23372, 48578, 35889, 39342, 48578, 36498, 48578, 23376, 48578, 36608, 48578, 18183, 47411, 45853, 35728, 48578, 36503, 35736, 35747, 18431, 41795, 36716, 48578, 36717, 35748, 48578, 48578, 48578, 48578, 48578, 48578, 18525, 48578, 20038, 30807, 48578, 35770, 48578, 48578, 35907, 18499, 48578, 48578, 47706, 18412, 48578, 48578, 23643, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 59648, 59649, 0, 59651, 59652, 59653, 59654, 0, 0, 59657, 0, 0, 59660, 59661, 0, 59663, 59664, 59665, 59666, 59667, 59668, 0, 59670, 59671, 0, 0, 0, 59675, 59676, 59677, 59678, 0, 59680, 59681, 0, 0, 59684, 59685, 0, 0, 0, 59689, 0, 0, 0, 59693, 59694, 59695, 59696, 59697, 59698, 59699, 59700, 59701, 59702, 59703, 0, 59705, 59706, 0, 59708, 0, 59710, 59711, 59712, 0, 0, 59715, 59716, 59717, 59718, 59719, 0, 0, 0, 59723, 59724, 0, 0, 0, 0, 0, 59730, 59731, 59732, 59733, 0, 59735, 59736, 59737, 0, 59739, 59740, 0, 59742, 59743, 59744, 59745, 59746, 0, 0, 59749, 0, 59751, 59752, 59753, 59754, 59755, 0, 0, 59758, 0, 0, 0, 0, 59763, 59764, 59765, 59766, 59767, 59768, 59769, 59770, 0, 59772, 59773, 59774, 59775, 59776, 59777, 59778, 0, 0, 0, 59782, 59783, 59784, 59785, 59786, 59787, 0, 59789, 59790, 59791, 59792, 0, 59794, 59795, 59796, 0, 59798, 0, 0, 59801, 59802, 0, 0, 59805, 59806, 59807, 59808, 59809, 0, 0, 59812, 59813, 59814, 0, 59816, 0, 59818, 0, 59820, 59821, 59822, 0, 59824, 0, 0, 59827, 59828, 59829, 59830, 59831, 59832, 0, 0, 59835, 59836, 0, 0, 0, 59840, 0, 59842, 59843, 59844, 0, 59846, 59847, 0, 0, 59850, 0, 59852, 0, 59854, 0, 0, 59857, 0, 59859, 0, 59861, 0, 59863, 0, 0, 0, 0, 59868, 0, 0, 0, 0, 0, 0, 59875, 0, 0, 59878, 59879, 59880, 59881, 59882, 59883, 0, 59885, 0, 0, 59888, 0, 59890, 59891, 0, 0, 59894, 59895, 0, 0, 59898, 59899, 0, 59901, 59902, 59903, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p26A: 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 2, 1, 1, 1, 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 48578, 48578, 48578, 48578, 48578, 48578, 48485, 42936, 15185, 38596, 48578, 15186, 48578, 13315, 35714, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 10281, 48578, 48578, 32644, 32275, 48578, 15893, 48578, 48578, 48578, 48578, 15237, 12924, 13113, 43897, 48578, 20081, 48578, 48578, 25629, 48578, 48578, 43898, 29775, 48578, 19217, 31740, 48578, 14497, 38479, 36872, 17424, 48578, 48578, 35896, 48578, 48578, 48578, 48578, 48578, 17786, 48578, 48578, 48578, 48578, 48578, 36626, 48578, 48578, 48578, 47270, 48578, 48578, 7795, 40276, 12599, 48578, 21119, 48578, 48578, 48578, 48578, 48578, 18123, 8098, 48578, 13363, 48578, 48578, 48578, 29120, 38091, 44326, 48578, 40493, 15299, 39654, 30793, 37021, 48578, 48578, 19618, 48578, 43789, 48578, 12744, 37821, 38847, 48578, 29279, 48578, 34043, 44120, 48578, 7279, 20412, 48578, 16258, 33020, 48578, 48578, 48578, 16228, 48578, 48578, 33435, 36096, 48578, 48578, 48578, 48578, 48578, 48578, 26067, 7556, 48578, 30814, 40669, 48578, 12250, 48578, 48578, 48578, 14436, 38115, 48578, 13919, 24947, 14467, 18786, 22211, 35779, 48499, 32508, 9481, 36290, 48578, 48578, 18500, 40799, 48578, 45881, 48578, 48578, 48578, 15691, 48578, 48578, 29651, 9484, 40076, 12218, 48578, 48578, 48578, 19905, 48578, 48578, 48578, 48578, 24320, 48578, 48578, 29350, 48578, 48578, 48578, 25684, 24600, 38990, 36301, 48578, 48578, 25391, 48578, 48578, 48578, 48578, 24328, 32436, 25427, 48578, 48578, 48578, 16951, 48578, 48578, 48578, 48578, 48578, 30178, 27880, 29270, 48578, 48578, 7720, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 30583, 48578, 48578, 41667, 48578, 48578, 48578, 48578, 48578, 37508, 7501, 48578, 27776, 27713, 41402, 27172, 48578, 48578, 16573, 48578, 48578, 20578, 48578, 48578, 48578, 48578, 15575, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 59904, 59905, 59906, 59907, 59908, 59909, 0, 0, 0, 0, 59914, 0, 59916, 0, 0, 59919, 59920, 59921, 59922, 59923, 59924, 59925, 0, 59927, 59928, 0, 0, 59931, 0, 59933, 59934, 59935, 59936, 0, 0, 0, 0, 59941, 0, 59943, 59944, 0, 59946, 59947, 0, 0, 59950, 0, 0, 59953, 0, 0, 0, 0, 59958, 59959, 0, 59961, 59962, 59963, 59964, 59965, 0, 59967, 59968, 59969, 59970, 59971, 0, 59973, 59974, 59975, 0, 59977, 59978, 0, 0, 0, 59982, 0, 59984, 59985, 59986, 59987, 59988, 0, 0, 59991, 0, 59993, 59994, 59995, 0, 0, 0, 59999, 0, 0, 0, 0, 0, 60005, 60006, 0, 60008, 0, 60010, 0, 0, 0, 60014, 0, 60016, 0, 0, 60019, 0, 0, 60022, 0, 0, 60025, 60026, 60027, 0, 60029, 60030, 0, 0, 60033, 60034, 60035, 60036, 60037, 60038, 0, 0, 60041, 0, 0, 60044, 0, 60046, 60047, 60048, 0, 0, 60051, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60062, 60063, 0, 0, 60066, 0, 60068, 60069, 60070, 0, 60072, 60073, 0, 0, 0, 0, 60078, 60079, 60080, 0, 60082, 60083, 60084, 60085, 0, 60087, 60088, 0, 60090, 60091, 60092, 0, 0, 0, 0, 60097, 60098, 0, 60100, 60101, 60102, 60103, 0, 0, 0, 60107, 60108, 60109, 0, 60111, 60112, 60113, 60114, 60115, 0, 0, 0, 60119, 60120, 0, 60122, 60123, 60124, 60125, 60126, 60127, 60128, 0, 60130, 60131, 0, 60133, 60134, 60135, 60136, 60137, 0, 0, 60140, 0, 0, 0, 0, 60145, 60146, 0, 60148, 60149, 0, 60151, 60152, 60153, 60154, 0, 60156, 60157, 60158, 60159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p26B: 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48578, 9426, 38588, 46188, 32552, 22831, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 46119, 47152, 31850, 16988, 16135, 30302, 18319, 27485, 48578, 48578, 36493, 48578, 48578, 48578, 48578, 37734, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 47454, 12181, 40614, 28101, 48578, 48578, 21956, 48578, 48578, 28651, 48578, 48578, 48578, 48578, 48578, 48578, 18325, 33358, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 46652, 48578, 48578, 35670, 48578, 34900, 48578, 48578, 48578, 42991, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 31724, 46915, 26145, 32819, 48578, 30519, 44418, 47252, 42033, 39528, 27969, 11038, 18857, 21512, 21582, 29990, 48578, 48578, 48578, 48578, 20762, 48578, 16565, 48578, 27870, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 38734, 30328, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 19778, 48578, 48578, 48578, 48578, 48578, 48578, 38227, 8145, 42847, 15239, 34907, 21965, 19795, 48578, 28586, 48578, 8226, 48578, 48578, 48578, 48578, 40899, 48578, 48578, 31566, 9159, 48578, 48578, 37720, 46299, 48578, 38360, 33720, 45473, 42090, 48578, 48578, 35117, 28779, 48578, 48578, 48578, 48578, 8460, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 11871, 31165, 48578, 48578, 48578, 48578, 48578, 40020, 46667, 33772, 48578, 48578, 46947, 29589, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 60160, 0, 0, 0, 0, 0, 60166, 60167, 60168, 60169, 60170, 60171, 60172, 60173, 60174, 60175, 60176, 60177, 60178, 60179, 0, 0, 0, 0, 0, 0, 0, 0, 60188, 60189, 0, 60191, 60192, 60193, 60194, 0, 60196, 60197, 60198, 60199, 60200, 60201, 60202, 60203, 60204, 60205, 60206, 60207, 60208, 60209, 60210, 60211, 60212, 60213, 60214, 60215, 0, 0, 0, 0, 60220, 60221, 0, 60223, 60224, 0, 60226, 60227, 60228, 60229, 60230, 60231, 0, 0, 60234, 60235, 60236, 60237, 60238, 60239, 60240, 60241, 60242, 60243, 60244, 60245, 60246, 60247, 60248, 60249, 60250, 60251, 0, 60253, 60254, 0, 60256, 0, 60258, 60259, 60260, 0, 60262, 60263, 60264, 60265, 60266, 60267, 60268, 0, 0, 0, 0, 60273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60285, 60286, 60287, 60288, 0, 60290, 0, 60292, 0, 60294, 60295, 60296, 60297, 60298, 60299, 60300, 60301, 60302, 60303, 0, 0, 60306, 60307, 60308, 60309, 60310, 60311, 60312, 60313, 60314, 60315, 60316, 60317, 60318, 60319, 60320, 60321, 60322, 60323, 60324, 60325, 60326, 60327, 60328, 60329, 60330, 60331, 60332, 60333, 60334, 0, 60336, 60337, 60338, 60339, 60340, 60341, 0, 0, 0, 0, 0, 0, 0, 60349, 0, 60351, 0, 60353, 60354, 60355, 60356, 0, 60358, 60359, 0, 0, 60362, 60363, 0, 0, 60366, 0, 0, 0, 0, 60371, 60372, 0, 0, 60375, 60376, 60377, 60378, 0, 60380, 60381, 60382, 60383, 60384, 60385, 60386, 0, 0, 60389, 60390, 60391, 60392, 60393, 0, 0, 0, 60397, 60398, 0, 0, 60401, 60402, 60403, 60404, 60405, 60406, 60407, 60408, 60409, 60410, 60411, 60412, 60413, 60414, 60415, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p26C: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 2, 2, 1, 1, 1, 2, 1, 1, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 1, 1, 2, 1, 1, 2, 2, 1, 1, 1, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 13158, 48578, 48578, 48578, 48578, 48578, 48578, 38369, 48578, 46830, 8461, 48578, 14859, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 7901, 48578, 48578, 48578, 48578, 31900, 28538, 9166, 13903, 48578, 34261, 40753, 10148, 40754, 42402, 27267, 48578, 48578, 48578, 40395, 47891, 15444, 48578, 48578, 29840, 41235, 48578, 44555, 39447, 44556, 44282, 48578, 21665, 35674, 22803, 48578, 48578, 46536, 27110, 15763, 48578, 48578, 48578, 48578, 48578, 28066, 39010, 8480, 48578, 15445, 48578, 48578, 48578, 48578, 48578, 40027, 48578, 48578, 48578, 21521, 48578, 48578, 16279, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 10726, 21522, 21523, 48578, 48578, 33376, 48578, 14679, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 15257, 48578, 48578, 48578, 37675, 40755, 9093, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 17524, 48578, 40131, 29931, 44444, 48578, 36536, 29791, 48578, 34263, 22994, 19405, 48578, 48578, 45651, 28228, 27998, 48578, 15270, 13706, 48578, 48578, 34058, 9794, 48578, 10734, 16855, 27661, 36035, 7792, 31175, 48578, 47897, 38077, 41327, 48578, 27557, 45287, 44037, 48578, 44169, 48578, 33501, 17649, 26153, 46745, 48578, 48578, 48578, 21408, 46360, 48578, 48578, 27117, 44038, 48578, 38373, 7696, 48578, 48578, 22033, 32829, 11846, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 60416, 60417, 60418, 60419, 60420, 60421, 60422, 60423, 60424, 60425, 60426, 60427, 60428, 60429, 60430, 0, 60432, 60433, 60434, 60435, 60436, 60437, 0, 60439, 0, 0, 60442, 0, 60444, 60445, 60446, 60447, 60448, 60449, 60450, 60451, 60452, 0, 60454, 60455, 60456, 60457, 0, 0, 0, 0, 60462, 0, 0, 0, 0, 0, 0, 60469, 60470, 60471, 0, 0, 0, 60475, 60476, 0, 0, 60479, 0, 0, 0, 0, 60484, 0, 0, 0, 60488, 60489, 0, 0, 0, 60493, 60494, 60495, 60496, 60497, 0, 0, 0, 60501, 0, 60503, 60504, 60505, 60506, 60507, 0, 60509, 60510, 60511, 0, 60513, 60514, 0, 60516, 60517, 60518, 60519, 60520, 60521, 60522, 60523, 60524, 60525, 60526, 60527, 0, 0, 0, 60531, 60532, 0, 60534, 0, 60536, 60537, 60538, 60539, 60540, 60541, 60542, 60543, 60544, 60545, 60546, 60547, 60548, 60549, 60550, 60551, 60552, 60553, 60554, 60555, 60556, 60557, 60558, 60559, 60560, 60561, 60562, 60563, 60564, 60565, 60566, 60567, 60568, 60569, 60570, 60571, 60572, 60573, 60574, 60575, 60576, 60577, 60578, 60579, 60580, 60581, 60582, 60583, 60584, 60585, 60586, 0, 60588, 60589, 60590, 0, 0, 0, 60594, 60595, 60596, 60597, 60598, 60599, 60600, 60601, 60602, 60603, 60604, 60605, 60606, 60607, 60608, 0, 60610, 0, 0, 0, 60614, 0, 0, 60617, 0, 0, 0, 60621, 60622, 0, 0, 0, 60626, 0, 0, 60629, 60630, 0, 0, 60633, 0, 0, 0, 0, 0, 0, 60640, 0, 0, 0, 60644, 0, 0, 0, 60648, 0, 60650, 0, 0, 0, 0, 60655, 60656, 60657, 0, 0, 60660, 60661, 0, 0, 60664, 0, 0, 60667, 60668, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p26D: 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, 2, 1, 46686, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 18192, 41996, 48578, 22334, 33778, 22862, 48578, 48578, 31032, 48578, 48578, 27118, 48578, 48578, 48578, 48578, 48578, 36647, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 28800, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 10735, 48578, 40600, 48578, 19185, 48578, 48578, 12822, 23745, 48578, 45421, 9680, 35623, 48377, 35406, 48578, 39252, 48578, 40277, 48578, 48578, 20957, 44044, 48578, 16312, 16096, 48578, 48578, 48578, 22338, 18819, 19603, 30273, 38434, 48578, 43141, 48578, 48578, 28207, 48578, 32752, 28259, 48578, 30142, 33587, 13122, 19604, 18403, 13823, 22822, 35750, 48578, 17974, 48578, 34534, 48578, 48578, 48578, 17799, 14900, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 22866, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 28638, 48578, 48578, 48578, 11168, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 31251, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 39115, 18197, 35123, 38378, 48578, 17166, 32832, 27122, 48578, 33144, 48578, 38482, 48578, 44050, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 60673, 60674, 60675, 60676, 60677, 60678, 60679, 60680, 0, 0, 60683, 0, 0, 0, 60687, 60688, 0, 60690, 60691, 0, 60693, 60694, 60695, 60696, 60697, 0, 60699, 60700, 60701, 60702, 60703, 60704, 60705, 60706, 60707, 60708, 60709, 60710, 60711, 60712, 60713, 60714, 60715, 60716, 60717, 60718, 60719, 60720, 60721, 60722, 60723, 60724, 60725, 60726, 60727, 60728, 60729, 60730, 60731, 60732, 60733, 60734, 60735, 60736, 60737, 60738, 60739, 60740, 60741, 60742, 60743, 60744, 60745, 60746, 60747, 60748, 60749, 60750, 60751, 0, 60753, 60754, 60755, 60756, 60757, 60758, 60759, 60760, 60761, 60762, 60763, 60764, 60765, 60766, 0, 60768, 0, 60770, 0, 60772, 60773, 0, 0, 60776, 0, 0, 0, 0, 0, 60782, 0, 60784, 0, 60786, 60787, 0, 0, 60790, 0, 0, 60793, 60794, 60795, 0, 0, 0, 0, 0, 60801, 0, 60803, 60804, 0, 60806, 0, 0, 60809, 0, 0, 0, 0, 0, 0, 0, 0, 60818, 0, 60820, 0, 60822, 60823, 60824, 0, 0, 60827, 60828, 60829, 60830, 60831, 60832, 60833, 60834, 60835, 60836, 60837, 60838, 60839, 60840, 60841, 60842, 60843, 60844, 60845, 60846, 60847, 60848, 60849, 0, 60851, 60852, 60853, 60854, 60855, 60856, 60857, 60858, 60859, 60860, 60861, 60862, 60863, 60864, 60865, 60866, 60867, 60868, 60869, 60870, 60871, 60872, 60873, 60874, 60875, 60876, 60877, 60878, 60879, 60880, 60881, 60882, 60883, 60884, 60885, 60886, 60887, 60888, 0, 60890, 60891, 60892, 0, 60894, 60895, 60896, 60897, 60898, 60899, 60900, 60901, 0, 60903, 60904, 60905, 60906, 60907, 60908, 60909, 60910, 60911, 60912, 60913, 0, 0, 0, 0, 60918, 0, 0, 0, 60922, 0, 60924, 0, 60926, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p26E: 2, 1, 1, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48578, 35903, 33904, 48578, 48578, 48578, 30704, 48578, 17045, 30877, 39372, 48578, 48578, 48578, 48578, 35409, 26034, 48578, 48578, 30453, 13124, 48578, 48578, 30595, 20033, 44051, 38972, 10250, 48578, 48578, 48578, 48578, 48578, 27415, 25827, 8385, 48578, 48578, 48578, 48578, 48578, 48578, 29524, 48578, 48578, 48578, 46375, 33905, 10042, 15479, 48578, 48578, 48578, 48578, 32000, 34939, 48578, 48578, 48415, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 46158, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 29800, 48578, 48578, 11850, 48578, 48578, 48578, 48578, 48578, 15812, 13617, 48578, 15140, 16613, 33240, 35197, 20287, 30284, 48578, 9507, 8303, 28001, 46106, 39982, 48578, 21761, 34541, 20288, 24193, 48578, 11375, 23886, 48578, 17734, 18228, 16367, 46055, 20975, 39824, 48578, 13586, 17260, 20039, 39825, 19631, 34593, 23789, 19448, 33517, 48578, 48578, 36186, 48039, 34739, 48578, 19632, 11280, 19864, 33909, 25226, 24933, 48578, 33147, 48578, 7439, 32929, 48578, 36382, 12465, 48578, 18596, 48578, 33071, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 60928, 0, 0, 60931, 60932, 60933, 0, 60935, 0, 0, 0, 60939, 60940, 60941, 60942, 0, 0, 60945, 60946, 0, 0, 60949, 60950, 0, 0, 0, 0, 0, 60956, 60957, 60958, 60959, 60960, 0, 0, 0, 60964, 60965, 60966, 60967, 60968, 60969, 0, 60971, 60972, 60973, 0, 0, 0, 0, 60978, 60979, 60980, 60981, 0, 0, 60984, 60985, 0, 60987, 60988, 60989, 60990, 60991, 60992, 60993, 60994, 60995, 60996, 60997, 60998, 60999, 61000, 61001, 61002, 61003, 61004, 61005, 61006, 61007, 61008, 61009, 61010, 61011, 61012, 61013, 61014, 61015, 61016, 61017, 61018, 61019, 61020, 61021, 61022, 61023, 61024, 61025, 61026, 61027, 61028, 61029, 61030, 61031, 61032, 61033, 61034, 0, 61036, 61037, 61038, 61039, 61040, 61041, 61042, 61043, 61044, 61045, 61046, 61047, 61048, 61049, 61050, 61051, 61052, 0, 61054, 61055, 0, 61057, 61058, 61059, 61060, 61061, 0, 0, 61064, 0, 0, 0, 0, 0, 0, 61071, 0, 0, 0, 0, 0, 61077, 0, 0, 0, 0, 61082, 0, 0, 61085, 0, 0, 0, 0, 0, 0, 61092, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61102, 61103, 0, 0, 0, 61107, 0, 0, 0, 0, 0, 0, 61114, 0, 61116, 0, 0, 61119, 0, 0, 61122, 0, 61124, 0, 61126, 61127, 61128, 61129, 61130, 61131, 61132, 61133, 61134, 61135, 61136, 61137, 61138, 61139, 61140, 61141, 61142, 61143, 61144, 61145, 61146, 61147, 61148, 61149, 61150, 61151, 61152, 61153, 61154, 61155, 61156, 61157, 61158, 61159, 61160, 61161, 61162, 61163, 61164, 61165, 61166, 61167, 61168, 61169, 61170, 61171, 61172, 61173, 61174, 61175, 61176, 61177, 61178, 61179, 61180, 61181, 61182, 61183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p26F: 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48578, 48578, 48578, 48578, 48578, 48578, 32949, 38438, 21922, 18597, 24091, 26056, 48578, 48578, 35905, 45612, 48578, 48578, 48578, 31049, 48578, 48578, 48578, 38868, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 11679, 33783, 48578, 48578, 48578, 48578, 33072, 48578, 48578, 26935, 32082, 48578, 9225, 15689, 48578, 31452, 22050, 12508, 10164, 42061, 17680, 48578, 19461, 48578, 9031, 48578, 26993, 48578, 48578, 48578, 13874, 7584, 21316, 26068, 27532, 13083, 17738, 48578, 20178, 48578, 48578, 18442, 16259, 48578, 48578, 26069, 15320, 18958, 48578, 45588, 48578, 21259, 34948, 32386, 48578, 48578, 48578, 48578, 48578, 12475, 48578, 37687, 8692, 48578, 48578, 48578, 48578, 20042, 48578, 48578, 48578, 48578, 48578, 48578, 12412, 21531, 39476, 9226, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 39268, 48578, 8801, 48578, 48578, 48578, 30258, 48578, 48578, 33241, 8187, 33444, 38014, 48578, 9579, 26070, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 12476, 48578, 16460, 45233, 7924, 15725, 48578, 48578, 10231, 19887, 25009, 48578, 31780, 20430, 26079, 13736, 35372, 42256, 43502, 48578, 35780, 42257, 21320, 11183, 15325, 44868, 33731, 48578, 9062, 12581, 34412, 48578, 48578, 25867, 31456, 26375, 30261, 48578, 27159, 21002, 48578, 48578, 19472, 48578, 48578, 26080, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 61184, 61185, 61186, 61187, 61188, 61189, 0, 0, 0, 0, 0, 0, 61196, 61197, 0, 0, 61200, 61201, 61202, 0, 61204, 61205, 61206, 0, 61208, 61209, 61210, 61211, 61212, 61213, 61214, 61215, 61216, 0, 0, 61219, 61220, 61221, 61222, 0, 61224, 61225, 0, 0, 61228, 0, 0, 61231, 0, 0, 0, 0, 0, 0, 61238, 0, 61240, 0, 61242, 0, 61244, 61245, 61246, 0, 0, 0, 0, 0, 0, 0, 61254, 0, 61256, 61257, 0, 0, 61260, 61261, 0, 0, 0, 61265, 0, 61267, 0, 0, 0, 61271, 61272, 61273, 61274, 61275, 0, 61277, 0, 0, 61280, 61281, 61282, 61283, 0, 61285, 61286, 61287, 61288, 61289, 61290, 0, 0, 0, 0, 61295, 61296, 61297, 61298, 61299, 61300, 61301, 61302, 61303, 61304, 61305, 61306, 61307, 61308, 61309, 61310, 61311, 61312, 61313, 61314, 61315, 61316, 61317, 61318, 61319, 61320, 61321, 61322, 61323, 61324, 61325, 61326, 0, 61328, 0, 61330, 61331, 61332, 0, 61334, 61335, 0, 0, 0, 0, 61340, 0, 0, 61343, 61344, 61345, 61346, 61347, 61348, 61349, 61350, 61351, 61352, 0, 61354, 0, 0, 0, 0, 61359, 61360, 0, 0, 0, 61364, 0, 0, 0, 0, 0, 0, 0, 61372, 0, 0, 0, 0, 0, 0, 0, 61380, 0, 0, 0, 61384, 61385, 0, 0, 0, 0, 61390, 0, 0, 61393, 61394, 0, 61396, 61397, 0, 61399, 61400, 61401, 61402, 61403, 61404, 61405, 61406, 61407, 61408, 61409, 61410, 61411, 61412, 61413, 61414, 61415, 61416, 61417, 61418, 61419, 61420, 61421, 61422, 61423, 61424, 61425, 61426, 61427, 61428, 61429, 61430, 61431, 61432, 61433, 61434, 61435, 61436, 61437, 61438, 61439, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p270: 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48578, 48578, 48578, 48578, 10212, 27610, 27160, 20307, 48578, 48578, 9452, 48578, 35347, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 17745, 33082, 48578, 48055, 22788, 16102, 34951, 48578, 48578, 48578, 48578, 48578, 36404, 45992, 40340, 34791, 10808, 43971, 25942, 27238, 25099, 35045, 48578, 48578, 38903, 14526, 15150, 33965, 36405, 9886, 45029, 48578, 15151, 20437, 12974, 48578, 48578, 48578, 40174, 12382, 48578, 48578, 48578, 46772, 48578, 48578, 48578, 40973, 48578, 48578, 48578, 48578, 28840, 14604, 27166, 27718, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 25792, 13642, 48578, 45996, 20444, 17383, 12486, 33341, 20445, 35969, 20742, 30206, 48578, 30160, 48578, 47707, 48578, 24957, 48149, 48578, 47947, 48578, 18377, 48578, 48578, 48578, 48578, 39165, 48578, 27173, 21940, 27616, 39500, 48578, 23282, 27174, 20203, 48578, 48578, 48578, 29026, 48578, 12975, 33230, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 11290, 46778, 31061, 26170, 48578, 47949, 48578, 48578, 48578, 48570, 17271, 35441, 16324, 48578, 11120, 19910, 43281, 44377, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 29027, 28559, 33023, 48578, 48578, 48578, 25178, 48578, 48578, 28920, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 61440, 61441, 61442, 61443, 0, 0, 0, 0, 61448, 61449, 0, 61451, 0, 61453, 61454, 61455, 61456, 61457, 61458, 61459, 0, 0, 61462, 0, 0, 0, 0, 61467, 61468, 61469, 61470, 61471, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61482, 61483, 0, 0, 0, 0, 0, 0, 0, 61491, 0, 0, 0, 61495, 61496, 61497, 0, 0, 61500, 61501, 61502, 0, 61504, 61505, 61506, 0, 61508, 61509, 61510, 61511, 0, 0, 0, 0, 61516, 61517, 61518, 61519, 61520, 61521, 61522, 61523, 61524, 61525, 61526, 61527, 61528, 61529, 61530, 61531, 61532, 61533, 61534, 61535, 61536, 61537, 61538, 61539, 61540, 61541, 61542, 61543, 61544, 61545, 61546, 61547, 61548, 61549, 61550, 61551, 61552, 61553, 61554, 61555, 61556, 61557, 61558, 61559, 61560, 61561, 61562, 61563, 61564, 61565, 0, 0, 61568, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61578, 0, 61580, 0, 61582, 0, 0, 61585, 0, 61587, 0, 61589, 61590, 61591, 61592, 0, 61594, 0, 0, 0, 0, 61599, 0, 0, 0, 61603, 61604, 61605, 0, 61607, 0, 0, 61610, 61611, 61612, 61613, 61614, 61615, 61616, 61617, 61618, 61619, 61620, 61621, 61622, 61623, 61624, 61625, 61626, 61627, 61628, 61629, 61630, 61631, 61632, 61633, 61634, 61635, 61636, 61637, 61638, 61639, 61640, 61641, 61642, 61643, 61644, 61645, 61646, 0, 0, 0, 0, 61651, 0, 61653, 61654, 61655, 0, 0, 0, 0, 61660, 0, 0, 0, 0, 61665, 61666, 61667, 61668, 61669, 61670, 61671, 0, 0, 0, 61675, 61676, 61677, 0, 61679, 61680, 0, 61682, 61683, 61684, 61685, 61686, 61687, 61688, 61689, 61690, 61691, 61692, 61693, 61694, 61695, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p271: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 2, 2, 1, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 31345, 42270, 15528, 34755, 23285, 32110, 13439, 34609, 48578, 48578, 48578, 48578, 48578, 24250, 21789, 32961, 48578, 48578, 48578, 45719, 48578, 48578, 48578, 39948, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 27083, 34233, 13010, 24612, 12760, 45378, 48578, 26395, 9519, 48578, 48578, 7525, 48578, 48578, 20333, 48578, 13184, 48578, 48578, 43734, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 43302, 12537, 29030, 48578, 45045, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 24327, 24267, 18389, 48578, 44181, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 28321, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 10483, 48578, 48578, 48578, 48578, 48578, 48578, 15005, 8881, 48578, 48578, 48578, 48578, 26694, 15734, 19333, 48578, 11867, 48578, 44130, 48578, 48578, 44182, 48578, 48578, 48578, 40734, 48578, 48578, 48578, 48578, 40888, 18274, 25856, 48578, 39232, 43045, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 18278, 18338, 48101, 48578, 48578, 48578, 48578, 48578, 48578, 16153, 37162, 38426, 25320, 16357, 47166, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 25861, 48578, 48578, 48578, 48378, 48578, 48578, 48578, 36886, 39196, 17662, 48578, 48578, 48578, 48578, 45011, 48578, 48578, 48578, 48578, 48578, 28261, 9200, 18130, 30808, 34568, 31188, 47286, 42354, 16368, 48578, 48578, 48578, 7831, 22477, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 17675, 19866, 18229, 41680, 48578, 48578, 48578, 48578, 11488, 13339, 31819, 18031, 48578, 48578, 17546, 48578, 48578, 48380, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 61696, 61697, 61698, 61699, 61700, 61701, 61702, 61703, 61704, 61705, 61706, 61707, 61708, 0, 0, 0, 0, 0, 0, 0, 0, 61717, 61718, 61719, 61720, 61721, 0, 0, 0, 61725, 61726, 61727, 0, 61729, 61730, 61731, 0, 61733, 61734, 61735, 61736, 61737, 61738, 61739, 61740, 61741, 61742, 61743, 61744, 61745, 61746, 61747, 61748, 61749, 61750, 61751, 0, 0, 0, 0, 0, 0, 61758, 0, 0, 61761, 61762, 0, 61764, 61765, 0, 61767, 0, 61769, 61770, 0, 61772, 61773, 61774, 61775, 61776, 61777, 61778, 61779, 61780, 61781, 0, 0, 0, 61785, 0, 61787, 61788, 61789, 61790, 61791, 61792, 61793, 61794, 61795, 61796, 61797, 61798, 61799, 61800, 61801, 61802, 61803, 61804, 61805, 0, 0, 0, 61809, 0, 61811, 61812, 61813, 61814, 61815, 61816, 61817, 0, 61819, 61820, 61821, 61822, 61823, 61824, 61825, 0, 61827, 61828, 61829, 61830, 61831, 61832, 0, 0, 61835, 61836, 61837, 61838, 0, 0, 0, 61842, 0, 61844, 0, 61846, 61847, 0, 61849, 61850, 61851, 0, 61853, 61854, 61855, 61856, 0, 0, 0, 61860, 0, 0, 61863, 61864, 61865, 61866, 61867, 61868, 61869, 0, 0, 0, 61873, 61874, 61875, 61876, 61877, 61878, 0, 0, 0, 0, 0, 0, 61885, 61886, 61887, 61888, 61889, 61890, 61891, 0, 61893, 61894, 61895, 0, 61897, 61898, 61899, 0, 0, 0, 61903, 61904, 61905, 61906, 0, 61908, 61909, 61910, 61911, 61912, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61922, 61923, 61924, 0, 0, 61927, 61928, 61929, 61930, 61931, 61932, 61933, 0, 0, 0, 0, 61938, 61939, 61940, 61941, 0, 0, 0, 0, 61946, 61947, 0, 61949, 61950, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p272: 2, 1, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 2, 2, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48578, 39490, 48578, 48578, 39311, 39161, 48578, 48578, 33320, 48578, 48578, 48578, 16003, 39166, 48578, 48578, 48578, 16005, 48578, 48578, 26171, 48578, 16006, 22731, 48578, 34479, 47624, 48578, 36306, 41499, 28571, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 26442, 35389, 48578, 48578, 10012, 48578, 48578, 38604, 48578, 44194, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 45443, 48578, 43020, 38736, 17902, 32204, 37740, 10782, 39081, 36563, 45138, 48578, 42582, 19548, 18858, 15068, 48578, 15360, 48578, 48578, 19549, 41062, 48578, 48578, 35865, 48578, 13693, 48578, 48578, 48578, 44812, 48578, 48578, 48578, 12912, 48578, 48578, 47506, 35814, 48578, 32746, 41189, 44530, 14585, 8107, 48578, 32135, 48578, 9367, 19965, 45687, 48578, 29066, 33774, 48578, 48578, 48578, 24415, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 16846, 16577, 48578, 12294, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 15566, 48578, 48578, 11700, 48578, 41771, 35065, 34355, 48578, 22946, 46837, 36873, 32048, 14193, 48578, 40532, 32828, 44284, 48578, 48578, 43083, 43084, 40915, 15079, 15953, 48578, 48578, 48578, 48578, 17637, 43352, 48578, 17970, 48578, 13986, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 40533, 14498, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 30433, 33381, 48578, 13707, 12943, 24150, 43118, 38963, 16095, 36877, 22580, 17973, 23349, 28801, 10736, 36361, 48578, 36878, 48578, 48578, 48578, 48578, 48578, 24151, 28171, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 45859, 8108, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 61952, 0, 61954, 61955, 0, 0, 61958, 61959, 0, 61961, 61962, 61963, 0, 0, 61966, 61967, 61968, 0, 61970, 61971, 0, 61973, 0, 0, 61976, 0, 0, 61979, 0, 0, 0, 61983, 61984, 61985, 61986, 61987, 61988, 61989, 0, 0, 61992, 61993, 0, 61995, 61996, 0, 61998, 0, 62000, 62001, 62002, 62003, 62004, 62005, 62006, 62007, 62008, 0, 62010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62020, 0, 0, 0, 0, 62025, 0, 62027, 62028, 0, 0, 62031, 62032, 0, 62034, 0, 62036, 62037, 62038, 0, 62040, 62041, 62042, 0, 62044, 62045, 0, 0, 62048, 0, 0, 0, 0, 0, 62054, 0, 62056, 0, 0, 0, 62060, 0, 0, 62063, 62064, 62065, 0, 62067, 62068, 62069, 62070, 62071, 62072, 62073, 62074, 62075, 62076, 62077, 62078, 62079, 62080, 62081, 62082, 62083, 0, 0, 62086, 0, 62088, 62089, 62090, 62091, 62092, 62093, 62094, 0, 62096, 62097, 0, 62099, 0, 0, 0, 62103, 0, 0, 0, 0, 0, 62109, 0, 0, 0, 62113, 62114, 0, 0, 0, 0, 0, 62120, 62121, 62122, 62123, 0, 0, 62126, 0, 62128, 0, 62130, 62131, 62132, 62133, 62134, 62135, 62136, 62137, 62138, 62139, 62140, 0, 0, 62143, 62144, 62145, 62146, 62147, 62148, 62149, 62150, 62151, 62152, 0, 0, 62155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62169, 0, 62171, 62172, 62173, 62174, 62175, 0, 0, 62178, 62179, 62180, 62181, 62182, 62183, 62184, 62185, 62186, 62187, 62188, 62189, 62190, 62191, 62192, 0, 0, 62195, 62196, 62197, 62198, 62199, 62200, 62201, 62202, 62203, 62204, 62205, 62206, 62207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p273: 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 1, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 48578, 36650, 48578, 45228, 14218, 34468, 22809, 29625, 15466, 26022, 40278, 40279, 40659, 26023, 36584, 35751, 11707, 31993, 48578, 15467, 46691, 48578, 40280, 48290, 14771, 27668, 40485, 48578, 48578, 36887, 30563, 48578, 29964, 48578, 35472, 14367, 48578, 48578, 48578, 18285, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 35071, 48578, 8864, 13323, 7857, 34137, 40281, 39979, 14727, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 11363, 34720, 42166, 22182, 34063, 48578, 43961, 14600, 48578, 48578, 23203, 12962, 48578, 26842, 20966, 48578, 41669, 48578, 48578, 37823, 48578, 48578, 33182, 20967, 44329, 38093, 14233, 32239, 21484, 15026, 25642, 13259, 29937, 48578, 24801, 18210, 26197, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 13074, 48578, 48578, 48578, 12029, 27981, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 37722, 21972, 22638, 41670, 20714, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 16172, 48578, 32703, 35541, 33605, 48578, 48578, 10748, 48578, 30605, 35633, 48578, 42503, 45451, 32304, 45933, 7674, 48332, 35634, 46249, 39137, 48578, 11209, 20724, 48459, 15914, 38648, 48578, 48578, 26297, 19634, 48578, 48578, 40151, 40152, 48578, 48578, 13523, 48578, 48578, 48578, 48578, 31815, 48578, 48578, 48578, 48578, 48578, 30150, 48578, 25512, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 20976, 48578, 19064, 48578, 48578, 48578, 33441, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 46767, 7354, 40967, 8585, 48578, 42388, 28617, 47477, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 62208, 0, 62210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62226, 0, 0, 62229, 0, 0, 0, 0, 0, 62235, 62236, 0, 0, 62239, 0, 62241, 0, 0, 62244, 62245, 62246, 0, 62248, 62249, 62250, 62251, 62252, 62253, 62254, 62255, 62256, 62257, 62258, 62259, 62260, 62261, 62262, 62263, 62264, 62265, 62266, 0, 62268, 0, 0, 0, 0, 0, 0, 0, 62276, 62277, 62278, 62279, 62280, 62281, 62282, 62283, 62284, 62285, 62286, 62287, 62288, 62289, 0, 0, 0, 0, 0, 62295, 0, 0, 62298, 62299, 0, 0, 62302, 0, 0, 62305, 0, 62307, 62308, 0, 62310, 62311, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62323, 0, 0, 0, 62327, 62328, 62329, 62330, 62331, 62332, 62333, 62334, 0, 62336, 62337, 62338, 0, 0, 62341, 62342, 62343, 62344, 62345, 62346, 62347, 62348, 62349, 62350, 62351, 62352, 62353, 62354, 62355, 62356, 0, 0, 0, 0, 0, 62362, 62363, 62364, 62365, 62366, 62367, 62368, 0, 62370, 0, 0, 0, 62374, 62375, 0, 62377, 0, 0, 62380, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62390, 0, 0, 0, 0, 0, 62396, 62397, 0, 0, 62400, 62401, 0, 0, 62404, 62405, 0, 62407, 62408, 62409, 62410, 0, 62412, 62413, 62414, 62415, 62416, 0, 62418, 0, 62420, 62421, 62422, 62423, 62424, 62425, 62426, 62427, 62428, 62429, 62430, 62431, 62432, 62433, 62434, 62435, 62436, 0, 62438, 0, 62440, 62441, 62442, 0, 62444, 62445, 62446, 62447, 62448, 62449, 62450, 62451, 62452, 62453, 62454, 62455, 0, 0, 0, 0, 62460, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p274: 2, 1, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 1, 1, 2, 2, 1, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 48578, 35339, 48578, 40162, 44656, 32008, 48578, 48578, 48337, 46700, 46034, 26299, 38015, 10949, 27427, 48578, 19462, 48578, 35340, 42429, 38979, 37139, 24716, 41080, 48578, 38652, 48578, 48578, 48578, 48578, 48578, 26847, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 17946, 48578, 48578, 26300, 13629, 11819, 9955, 26072, 35341, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 26301, 48578, 48578, 48578, 48578, 48578, 47176, 24212, 14789, 48578, 21364, 23276, 43238, 18446, 12046, 48578, 44674, 8290, 37243, 34603, 12325, 38443, 11715, 28941, 12582, 48344, 17268, 48578, 29814, 11379, 48578, 48578, 13721, 29262, 48578, 48578, 47433, 48578, 40172, 46262, 31457, 41038, 48578, 33257, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 8600, 48578, 15512, 48578, 48578, 48578, 48578, 48578, 24523, 48578, 48578, 48578, 48578, 48578, 14108, 48578, 42391, 34606, 48578, 33321, 48578, 30471, 17101, 33322, 48578, 15517, 26848, 48578, 23954, 45884, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 9887, 48578, 48578, 48578, 48578, 38119, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 23955, 48578, 45591, 43628, 7368, 40078, 48578, 8610, 48578, 48578, 48578, 48578, 48578, 48578, 9978, 48578, 48578, 29818, 11823, 25102, 30644, 48578, 19907, 21329, 13421, 14710, 42804, 37146, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 27221, 9515, 41469, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 42109, 48578, 36786, 48578, 48578, 48578, 46779, 48578, 40352, 26217, 48578, 24584, 48578, 26852, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 62464, 0, 62466, 0, 0, 0, 62470, 62471, 0, 0, 0, 0, 0, 0, 0, 62479, 0, 62481, 0, 0, 0, 0, 0, 0, 62488, 0, 62490, 62491, 62492, 62493, 62494, 0, 62496, 62497, 62498, 62499, 62500, 62501, 62502, 62503, 62504, 62505, 62506, 62507, 0, 62509, 62510, 0, 0, 0, 0, 0, 0, 62517, 62518, 62519, 62520, 62521, 62522, 62523, 62524, 62525, 62526, 62527, 0, 62529, 62530, 62531, 62532, 62533, 0, 0, 0, 62537, 0, 0, 0, 0, 0, 62543, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62555, 0, 0, 62558, 62559, 0, 0, 62562, 62563, 0, 62565, 0, 0, 0, 0, 62570, 0, 62572, 62573, 62574, 62575, 62576, 62577, 62578, 62579, 62580, 62581, 62582, 62583, 62584, 62585, 62586, 62587, 62588, 62589, 62590, 62591, 0, 62593, 0, 62595, 62596, 62597, 62598, 62599, 0, 62601, 62602, 62603, 62604, 62605, 0, 62607, 0, 0, 62610, 0, 62612, 0, 0, 0, 62616, 0, 0, 62619, 0, 0, 62622, 62623, 62624, 62625, 62626, 62627, 62628, 62629, 62630, 62631, 0, 62633, 62634, 62635, 62636, 0, 62638, 62639, 62640, 62641, 62642, 62643, 62644, 62645, 62646, 62647, 62648, 62649, 62650, 62651, 62652, 0, 62654, 0, 0, 0, 0, 62659, 0, 62661, 62662, 62663, 62664, 62665, 62666, 0, 62668, 62669, 0, 0, 0, 0, 62674, 0, 0, 0, 0, 0, 0, 62681, 62682, 62683, 62684, 62685, 62686, 62687, 62688, 62689, 62690, 62691, 62692, 62693, 62694, 62695, 0, 0, 0, 62699, 62700, 62701, 62702, 62703, 62704, 62705, 0, 62707, 0, 62709, 62710, 62711, 0, 62713, 0, 0, 62716, 0, 62718, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p275: 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 2, 1, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 1, 1, 2, 2, 1, 2, 2, 1, 48578, 48578, 39280, 48578, 48578, 35210, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 35230, 41251, 48578, 48578, 48578, 48578, 48578, 24602, 44879, 48578, 48578, 45953, 48578, 35804, 41086, 38137, 42544, 29419, 26853, 36413, 30065, 48578, 13724, 31930, 42881, 48578, 48578, 48578, 48578, 37397, 9889, 48578, 48578, 21269, 48578, 48578, 48578, 48578, 14118, 48578, 48578, 48578, 48578, 48578, 48578, 9991, 43655, 25392, 48578, 39573, 48578, 30479, 48578, 45043, 26304, 43735, 32114, 48578, 48578, 48578, 14736, 48069, 48578, 48578, 48578, 48578, 48578, 31637, 48578, 48578, 48578, 28924, 38146, 34761, 48578, 15532, 48578, 48578, 27955, 27956, 37401, 9891, 45417, 48578, 48578, 48578, 48578, 48578, 24263, 24268, 48578, 39284, 21999, 48578, 28268, 27442, 48578, 48578, 18802, 48578, 34788, 48578, 40850, 48578, 48578, 14737, 48578, 40364, 48578, 48578, 48578, 48578, 35808, 43926, 48578, 45955, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 31232, 28308, 48578, 25248, 48578, 48578, 48578, 26264, 39581, 15339, 48578, 25429, 48578, 48578, 48578, 33235, 48578, 19116, 48578, 48578, 48578, 48578, 48578, 36753, 48578, 31644, 48578, 18713, 48578, 7455, 48578, 48578, 48578, 48578, 48578, 48578, 26683, 48578, 28598, 48578, 48578, 48578, 17043, 29219, 48578, 48578, 39816, 48578, 21124, 48578, 48578, 48578, 48578, 46556, 48578, 28097, 48578, 48578, 33173, 18370, 48578, 48345, 18960, 48578, 48578, 19473, 48578, 48578, 48578, 42538, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 40526, 48578, 48578, 23436, 44531, 22145, 48578, 48578, 48578, 48578, 48578, 34650, 46540, 48578, 43912, 48578, 15906, 48578, 20393, 40452, 48578, 48578, 18891, 48578, 48578, 34724, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 62720, 62721, 0, 62723, 62724, 0, 62726, 62727, 62728, 62729, 62730, 62731, 62732, 62733, 62734, 62735, 62736, 62737, 62738, 62739, 62740, 62741, 0, 0, 62744, 62745, 62746, 62747, 62748, 0, 0, 62751, 62752, 0, 62754, 0, 0, 0, 0, 0, 0, 0, 0, 62763, 0, 0, 0, 62767, 62768, 62769, 62770, 0, 0, 62773, 62774, 0, 62776, 62777, 62778, 62779, 0, 62781, 62782, 62783, 62784, 62785, 62786, 0, 0, 0, 62790, 0, 62792, 0, 62794, 0, 0, 0, 0, 62799, 62800, 62801, 0, 0, 62804, 62805, 62806, 62807, 62808, 0, 62810, 62811, 62812, 0, 0, 0, 62816, 0, 62818, 62819, 0, 0, 0, 0, 0, 62825, 62826, 62827, 62828, 62829, 0, 0, 62832, 0, 0, 62835, 0, 0, 62838, 62839, 0, 62841, 0, 62843, 0, 62845, 62846, 0, 62848, 0, 62850, 62851, 62852, 62853, 0, 0, 62856, 0, 62858, 62859, 62860, 62861, 62862, 62863, 62864, 0, 0, 62867, 0, 62869, 62870, 62871, 0, 0, 0, 62875, 0, 62877, 62878, 62879, 0, 62881, 0, 62883, 62884, 62885, 62886, 62887, 0, 62889, 0, 62891, 0, 62893, 0, 62895, 62896, 62897, 62898, 62899, 62900, 0, 62902, 0, 62904, 62905, 62906, 0, 0, 62909, 62910, 0, 62912, 0, 62914, 62915, 62916, 62917, 0, 62919, 0, 62921, 62922, 0, 0, 62925, 0, 0, 62928, 62929, 0, 62931, 62932, 62933, 0, 62935, 62936, 62937, 62938, 62939, 62940, 62941, 62942, 62943, 62944, 62945, 62946, 62947, 62948, 62949, 0, 62951, 62952, 0, 0, 0, 62956, 62957, 62958, 62959, 62960, 0, 0, 62963, 0, 62965, 0, 62967, 0, 0, 62970, 62971, 0, 62973, 62974, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p276: 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 1, 2, 2, 1, 2, 1, 1, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 2, 48578, 48578, 10953, 17430, 48578, 48578, 48578, 48578, 24969, 48578, 48578, 48578, 48578, 20469, 48578, 16136, 48578, 47863, 48578, 48578, 48578, 48578, 48578, 30678, 48578, 48578, 48578, 48578, 30911, 48578, 13513, 30174, 48578, 48578, 18326, 48578, 48578, 28964, 48578, 30745, 13104, 13105, 48578, 24374, 48578, 48578, 40592, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 28104, 48578, 46516, 23437, 46917, 48578, 14122, 9083, 30176, 40738, 43935, 11629, 24399, 48578, 48578, 29451, 48578, 48578, 40702, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 30388, 48578, 10303, 30761, 48578, 48578, 43046, 48578, 36336, 13978, 25630, 48578, 20370, 48578, 48578, 48578, 48578, 48578, 45969, 44908, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 44260, 48578, 16058, 48578, 18059, 48578, 48578, 48578, 30691, 48578, 28067, 18667, 25740, 39095, 14088, 23765, 14763, 37627, 48578, 12057, 48578, 29615, 48578, 48578, 48578, 12133, 38262, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 15832, 48578, 48578, 48578, 12018, 48578, 48578, 30778, 24152, 31435, 31125, 22806, 8280, 48578, 34463, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 37813, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 33503, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48023, 48578, 48578, 36457, 30954, 13612, 48578, 48578, 37072, 48578, 48578, 37817, 48578, 48578, 48578, 18199, 40486, 48578, 33511, 46851, 48578, 48578, 48578, 48578, 10798, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 47366, 38271, 10744, 35631, 40291, 48578, 22719, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 62976, 62977, 0, 0, 62980, 62981, 62982, 62983, 0, 62985, 62986, 62987, 62988, 0, 62990, 0, 62992, 0, 62994, 62995, 62996, 62997, 62998, 0, 63000, 63001, 63002, 63003, 0, 63005, 0, 0, 63008, 63009, 0, 63011, 63012, 0, 63014, 0, 0, 0, 63018, 0, 63020, 63021, 0, 63023, 63024, 63025, 63026, 63027, 63028, 63029, 63030, 63031, 63032, 63033, 63034, 63035, 63036, 0, 63038, 0, 0, 0, 63042, 0, 0, 0, 0, 0, 0, 0, 63050, 63051, 0, 63053, 63054, 0, 63056, 63057, 63058, 63059, 63060, 63061, 63062, 63063, 63064, 63065, 63066, 0, 63068, 0, 0, 63071, 63072, 0, 63074, 0, 0, 0, 63078, 0, 63080, 63081, 63082, 63083, 63084, 0, 0, 63087, 63088, 63089, 63090, 63091, 63092, 63093, 0, 63095, 0, 63097, 0, 63099, 63100, 63101, 0, 63103, 0, 0, 0, 0, 0, 0, 0, 0, 63112, 0, 63114, 0, 63116, 63117, 63118, 0, 0, 63121, 63122, 63123, 63124, 63125, 63126, 63127, 63128, 63129, 63130, 63131, 63132, 63133, 63134, 63135, 63136, 0, 63138, 63139, 63140, 0, 63142, 63143, 0, 0, 0, 0, 0, 0, 63150, 0, 63152, 63153, 63154, 63155, 63156, 63157, 63158, 0, 63160, 63161, 63162, 63163, 63164, 63165, 63166, 63167, 63168, 63169, 63170, 63171, 0, 63173, 63174, 63175, 63176, 63177, 63178, 63179, 63180, 63181, 63182, 0, 63184, 63185, 0, 0, 0, 63189, 63190, 0, 63192, 63193, 0, 63195, 63196, 63197, 0, 0, 63200, 0, 0, 63203, 63204, 63205, 63206, 0, 63208, 63209, 63210, 63211, 63212, 63213, 63214, 63215, 63216, 63217, 63218, 63219, 63220, 63221, 63222, 63223, 0, 0, 0, 0, 0, 63229, 0, 63231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p277: 2, 1, 1, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 2, 1, 1, 1, 2, 2, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 48578, 33461, 34145, 34469, 48578, 21078, 48578, 48578, 48578, 15843, 26161, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 40292, 48578, 48578, 48578, 48578, 48578, 46852, 48578, 48578, 48578, 26650, 48578, 34722, 22723, 48578, 13142, 42612, 48578, 35324, 11394, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 12034, 37438, 48578, 48578, 40306, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 41076, 48578, 48578, 48578, 48578, 17739, 22204, 48578, 48578, 36475, 14785, 48578, 46857, 34404, 37190, 48578, 48578, 10950, 48578, 36476, 45989, 17806, 48578, 32084, 37895, 48578, 13875, 8068, 48578, 48578, 48578, 24940, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 34949, 48578, 48578, 48578, 48578, 48578, 8843, 40316, 8902, 48578, 11834, 48578, 48578, 48578, 21933, 17684, 48578, 48578, 48578, 23278, 43845, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 34686, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 28841, 48578, 44365, 47940, 27168, 18255, 48578, 48578, 25100, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 20850, 40608, 48578, 48578, 48578, 48578, 41824, 48578, 48578, 48578, 48578, 48578, 21012, 23475, 34692, 21013, 23960, 48578, 48578, 48351, 48578, 34419, 48578, 48578, 48578, 48578, 48578, 37916, 13593, 35356, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 40184, 32479, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 26495, 48578, 48578, 48578, 48578, 30997, 48578, 48578, 48578, 48578, 48578, 48578, 28322, 25423, 48578, 48578, 19932, 48578, 48578, 48578, 27770, 48578, 48578, 16391, 48578, 48578, 48578, 48578, 41063, 48578, 48578, 48578, 40743, 48578, 48578, 48578, 48578, 9191, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 37828, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 63232, 0, 0, 0, 63236, 0, 63238, 63239, 63240, 0, 0, 63243, 63244, 63245, 63246, 63247, 63248, 63249, 63250, 63251, 0, 63253, 63254, 63255, 63256, 63257, 0, 63259, 63260, 63261, 0, 63263, 0, 0, 63266, 0, 0, 63269, 0, 0, 63272, 63273, 63274, 63275, 63276, 63277, 63278, 63279, 63280, 0, 0, 63283, 63284, 0, 63286, 63287, 63288, 63289, 63290, 63291, 63292, 0, 63294, 63295, 63296, 63297, 0, 0, 63300, 63301, 0, 0, 63304, 0, 0, 0, 63308, 63309, 0, 63311, 0, 0, 0, 63315, 0, 0, 63318, 0, 0, 63321, 63322, 63323, 0, 63325, 63326, 63327, 63328, 63329, 63330, 63331, 0, 63333, 63334, 63335, 63336, 63337, 0, 0, 0, 63341, 0, 63343, 63344, 63345, 0, 0, 63348, 63349, 63350, 0, 0, 63353, 63354, 63355, 63356, 63357, 63358, 63359, 0, 63361, 63362, 63363, 63364, 63365, 63366, 63367, 63368, 63369, 63370, 63371, 63372, 0, 63374, 0, 0, 0, 0, 63379, 63380, 0, 63382, 63383, 63384, 63385, 63386, 63387, 63388, 0, 0, 63391, 63392, 63393, 63394, 0, 63396, 63397, 63398, 63399, 63400, 0, 0, 0, 0, 0, 63406, 63407, 0, 63409, 0, 63411, 63412, 63413, 63414, 63415, 0, 0, 0, 63419, 63420, 63421, 63422, 63423, 63424, 63425, 63426, 0, 0, 63429, 63430, 63431, 63432, 63433, 63434, 63435, 0, 63437, 63438, 63439, 63440, 0, 63442, 63443, 63444, 63445, 63446, 63447, 0, 0, 63450, 63451, 0, 63453, 63454, 63455, 0, 63457, 63458, 0, 63460, 63461, 63462, 63463, 0, 63465, 63466, 63467, 0, 63469, 63470, 63471, 63472, 0, 63474, 63475, 63476, 63477, 63478, 63479, 63480, 63481, 63482, 63483, 0, 63485, 63486, 63487, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p278: 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 1, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 1, 1, 1, 1, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, 48578, 48578, 22923, 48578, 48578, 48578, 37598, 48578, 9833, 48578, 26893, 22691, 48578, 48578, 11696, 48578, 48578, 48578, 39620, 27882, 48578, 48578, 48578, 48578, 48578, 48578, 19128, 10083, 34124, 46415, 14194, 27269, 48578, 34125, 31982, 34523, 48578, 11601, 41772, 48578, 48578, 18115, 30435, 46998, 18722, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 46842, 48578, 44110, 48578, 48578, 48578, 48578, 48578, 15870, 42306, 30274, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 42756, 10641, 19840, 48578, 7296, 48578, 13469, 48578, 35478, 48578, 21605, 48578, 48578, 48578, 48578, 48578, 48578, 30795, 24696, 41100, 48578, 24978, 48578, 48578, 48578, 48578, 45198, 41102, 11840, 29918, 48578, 23204, 48578, 36383, 18630, 12373, 16912, 10387, 48578, 33668, 19867, 48578, 48578, 48578, 48578, 24805, 22450, 34088, 48578, 13502, 44064, 30613, 48578, 40004, 48578, 48578, 48578, 48578, 48578, 43239, 25785, 48578, 48578, 11397, 48578, 48578, 48578, 48578, 23888, 15817, 48578, 48578, 48578, 45618, 48578, 37912, 48578, 48578, 48578, 20204, 48578, 48578, 48578, 48578, 43646, 14539, 24603, 30986, 48578, 48578, 48578, 42378, 48578, 48578, 48578, 23171, 37923, 48578, 32376, 48578, 48578, 40006, 32377, 48578, 48578, 18145, 48578, 48578, 48578, 48578, 13926, 11235, 48578, 48578, 33873, 48578, 48578, 47882, 14081, 19796, 48578, 48578, 35921, 48578, 29248, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 21065, 31367, 48578, 48578, 48578, 48578, 31023, 21885, 48578, 48578, 31901, 37365, 48578, 48578, 48578, 29147, 35021, 48578, 48578, 48578, 42728, 48578, 16425, 19182, 29259, 48013, 48578, 20601, 48578, 48578, 39023, 33729, 48578, 42757, 47023, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 26348, 48578, 47279, 22183, 35941, 29156, 21911, 18212, 48578, 47041, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 63488, 63489, 0, 63491, 63492, 63493, 0, 63495, 0, 63497, 0, 0, 63500, 63501, 0, 63503, 63504, 63505, 0, 0, 63508, 63509, 63510, 63511, 63512, 63513, 0, 0, 0, 0, 0, 0, 63520, 0, 0, 0, 63524, 0, 0, 63527, 63528, 0, 0, 0, 0, 63533, 63534, 63535, 63536, 63537, 63538, 63539, 0, 63541, 0, 63543, 63544, 63545, 63546, 63547, 0, 0, 0, 63551, 63552, 63553, 63554, 63555, 63556, 63557, 63558, 0, 0, 0, 63562, 0, 63564, 0, 63566, 0, 63568, 0, 63570, 63571, 63572, 63573, 63574, 63575, 0, 0, 0, 63579, 0, 63581, 63582, 63583, 63584, 0, 0, 0, 0, 63589, 0, 63591, 0, 0, 0, 0, 0, 63597, 0, 0, 63600, 63601, 63602, 63603, 0, 0, 0, 63607, 0, 0, 0, 63611, 0, 63613, 63614, 63615, 63616, 63617, 0, 0, 63620, 63621, 0, 63623, 63624, 63625, 63626, 0, 0, 63629, 63630, 63631, 0, 63633, 0, 63635, 63636, 63637, 0, 63639, 63640, 63641, 63642, 0, 0, 0, 0, 63647, 63648, 63649, 0, 63651, 63652, 63653, 0, 0, 63656, 0, 63658, 63659, 0, 0, 63662, 63663, 0, 63665, 63666, 63667, 63668, 0, 0, 63671, 63672, 0, 63674, 63675, 0, 0, 0, 63679, 63680, 0, 63682, 0, 63684, 63685, 63686, 63687, 63688, 63689, 63690, 0, 0, 63693, 63694, 63695, 63696, 0, 0, 63699, 63700, 0, 0, 63703, 63704, 63705, 0, 0, 63708, 63709, 63710, 0, 63712, 0, 0, 0, 0, 63717, 0, 63719, 63720, 0, 0, 63723, 0, 0, 63726, 63727, 63728, 63729, 63730, 63731, 63732, 0, 63734, 0, 0, 0, 0, 0, 0, 63741, 0, 63743, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p279: 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, 1, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 2, 1, 1, 2, 2, 2, 1, 1, 1, 2, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 1, 1, 2, 1, 1, 1, 1, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 2, 48578, 48578, 48578, 8331, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 10891, 41032, 19635, 16547, 21762, 38384, 37386, 48578, 31922, 37829, 13734, 48578, 34472, 48578, 46431, 28425, 48578, 48578, 39144, 46258, 47085, 48578, 28112, 48578, 48578, 48578, 48578, 20179, 48578, 48578, 48578, 48578, 48578, 42247, 17055, 48578, 48578, 12889, 48578, 19299, 21321, 48578, 48578, 48578, 48578, 48578, 48578, 22219, 45030, 48578, 48578, 48578, 48578, 48578, 48578, 19663, 48578, 35352, 48578, 20209, 48578, 23333, 38398, 23144, 8825, 22239, 48578, 48578, 8632, 48578, 9994, 48578, 48070, 24638, 48578, 48578, 48578, 15065, 31068, 41730, 48578, 36009, 27851, 48578, 48578, 48578, 22855, 38737, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 18339, 18340, 48578, 15243, 48578, 48578, 42117, 17097, 48578, 32540, 43529, 14965, 22321, 48578, 45109, 48578, 48578, 41383, 48578, 39085, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 39190, 48578, 48578, 17420, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 18341, 48578, 48578, 18109, 30389, 14456, 48578, 48578, 48578, 48578, 19973, 48578, 48578, 42731, 48578, 48578, 48578, 48578, 48578, 37319, 28108, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 43416, 43536, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 19820, 37777, 34370, 13786, 14034, 48578, 37372, 37463, 24445, 48578, 48578, 48578, 32525, 48578, 48578, 11702, 40931, 47271, 48143, 48578, 48578, 48578, 48578, 48578, 48578, 37755, 41483, 48578, 19821, 10268, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 19593, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 33553, 37073, 48578, 8899, 39116, 29725, 45771, 48578, 48578, 19034, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 63744, 63745, 63746, 0, 63748, 63749, 63750, 63751, 63752, 63753, 63754, 63755, 63756, 0, 0, 0, 0, 0, 0, 0, 63764, 0, 0, 0, 63768, 0, 63770, 0, 0, 63773, 63774, 0, 0, 0, 63778, 0, 63780, 63781, 63782, 63783, 0, 63785, 63786, 63787, 63788, 63789, 0, 0, 63792, 63793, 0, 63795, 0, 0, 63798, 63799, 63800, 63801, 63802, 63803, 0, 0, 63806, 63807, 63808, 63809, 63810, 63811, 0, 63813, 0, 63815, 0, 63817, 0, 0, 0, 0, 0, 63823, 63824, 0, 63826, 0, 63828, 0, 0, 63831, 63832, 63833, 0, 0, 0, 63837, 0, 0, 63840, 63841, 63842, 0, 0, 63845, 63846, 63847, 63848, 63849, 63850, 63851, 63852, 63853, 0, 0, 63856, 0, 63858, 63859, 0, 0, 63862, 0, 0, 0, 0, 63867, 0, 63869, 63870, 0, 63872, 0, 63874, 63875, 63876, 63877, 63878, 63879, 63880, 63881, 63882, 63883, 63884, 63885, 0, 63887, 63888, 0, 63890, 63891, 63892, 63893, 63894, 63895, 63896, 63897, 0, 63899, 63900, 0, 0, 0, 63904, 63905, 63906, 63907, 0, 63909, 63910, 0, 63912, 63913, 63914, 63915, 63916, 0, 0, 63919, 63920, 63921, 63922, 63923, 63924, 63925, 63926, 63927, 0, 0, 63930, 63931, 63932, 63933, 63934, 63935, 63936, 63937, 63938, 0, 0, 0, 0, 0, 63944, 0, 0, 0, 63948, 63949, 63950, 0, 63952, 63953, 0, 0, 0, 0, 63958, 63959, 63960, 63961, 63962, 63963, 0, 0, 63966, 0, 0, 63969, 63970, 63971, 63972, 63973, 63974, 63975, 63976, 0, 63978, 63979, 63980, 63981, 63982, 63983, 63984, 63985, 63986, 63987, 63988, 0, 0, 63991, 0, 0, 0, 0, 63996, 63997, 0, 63999, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p27A: 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, 1, 1, 2, 1, 2, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 35580, 48578, 17726, 48578, 44939, 48578, 38436, 48578, 25336, 48578, 45772, 18432, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 9941, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 14219, 48578, 10431, 48578, 48578, 48578, 48578, 48578, 35480, 48578, 36589, 48578, 48578, 48578, 48578, 48578, 48578, 47042, 36462, 7518, 47911, 48146, 22639, 48578, 33292, 36547, 26037, 48578, 48578, 48578, 48578, 33529, 45737, 48578, 48578, 48578, 10944, 48578, 41908, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 28038, 18131, 48578, 48578, 48578, 48578, 48578, 48578, 10682, 48578, 48578, 35311, 48578, 48578, 48578, 48578, 48578, 28394, 48578, 48578, 19636, 13957, 18068, 48578, 11837, 45666, 43441, 48578, 40000, 48578, 8743, 8304, 23460, 48578, 10684, 48578, 30879, 48578, 7407, 34151, 48578, 48578, 10892, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 29074, 48578, 19868, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 29224, 48578, 39201, 48578, 48578, 9884, 48578, 7281, 48578, 48578, 34090, 17681, 48578, 19645, 10687, 39146, 46560, 48578, 48578, 35684, 48578, 26571, 48578, 48578, 29740, 48578, 48578, 40793, 31097, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 39309, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 44657, 48578, 48578, 48578, 48578, 48578, 48578, 20986, 39312, 25937, 48578, 31458, 48578, 9844, 48578, 48578, 48578, 42135, 19888, 33407, 25831, 48578, 19474, 47098, 37780, 48578, 8601, 7410, 42620, 7411, 48578, 48578, 48578, 48578, 24213, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 39388, 48578, 48578, 48578, 48578, 21618, 36005, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 64001, 0, 64003, 0, 64005, 0, 64007, 0, 64009, 0, 0, 64012, 64013, 64014, 64015, 64016, 64017, 64018, 64019, 64020, 64021, 64022, 0, 64024, 64025, 64026, 64027, 64028, 64029, 64030, 0, 64032, 0, 64034, 64035, 64036, 64037, 64038, 0, 64040, 0, 64042, 64043, 64044, 64045, 64046, 64047, 0, 0, 0, 0, 0, 0, 64054, 0, 0, 0, 64058, 64059, 64060, 64061, 0, 0, 64064, 64065, 64066, 0, 64068, 0, 64070, 64071, 64072, 64073, 64074, 64075, 64076, 64077, 64078, 64079, 64080, 64081, 0, 0, 64084, 64085, 64086, 64087, 64088, 64089, 0, 64091, 64092, 0, 64094, 64095, 64096, 64097, 64098, 0, 64100, 64101, 0, 0, 0, 64105, 0, 0, 0, 64109, 0, 64111, 0, 0, 0, 64115, 0, 64117, 0, 64119, 0, 0, 64122, 64123, 0, 64125, 64126, 64127, 64128, 64129, 64130, 64131, 64132, 0, 64134, 0, 64136, 64137, 64138, 64139, 64140, 64141, 64142, 64143, 64144, 64145, 64146, 0, 64148, 0, 64150, 64151, 0, 64153, 0, 64155, 64156, 0, 0, 64159, 0, 0, 0, 0, 64164, 64165, 0, 64167, 0, 64169, 64170, 0, 64172, 64173, 0, 0, 64176, 64177, 64178, 64179, 64180, 64181, 64182, 64183, 64184, 0, 64186, 64187, 64188, 64189, 64190, 64191, 64192, 64193, 64194, 64195, 64196, 64197, 64198, 64199, 64200, 64201, 0, 64203, 64204, 64205, 64206, 64207, 64208, 0, 0, 0, 64212, 0, 64214, 0, 64216, 64217, 64218, 0, 0, 0, 0, 64223, 0, 0, 0, 64227, 0, 0, 0, 0, 64232, 64233, 64234, 64235, 0, 64237, 64238, 64239, 64240, 64241, 64242, 64243, 64244, 64245, 64246, 64247, 64248, 0, 64250, 64251, 64252, 64253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p27B: 2, 1, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 1, 2, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 48578, 17549, 17749, 48578, 48578, 45668, 45944, 43257, 39162, 48578, 39163, 14450, 41692, 48578, 48578, 28039, 48578, 48578, 48578, 48578, 48578, 16374, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 45128, 48578, 48578, 48578, 48578, 48578, 47235, 48578, 10062, 11411, 19102, 45261, 16982, 20320, 41470, 48578, 48578, 48578, 39832, 17750, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 12489, 48578, 48578, 48578, 27473, 28921, 48578, 27181, 48578, 25106, 47382, 30318, 35816, 48578, 48578, 48578, 43729, 36296, 17060, 48578, 48578, 48578, 48578, 31230, 48578, 26218, 33089, 25107, 10760, 40201, 48578, 48578, 17063, 8074, 26489, 22055, 48578, 48578, 48578, 14277, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 17700, 48578, 27063, 48578, 48578, 40358, 30066, 48578, 17205, 10480, 33632, 19113, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 43657, 48578, 20337, 48578, 48578, 48578, 48578, 7417, 48578, 48578, 48578, 35805, 42632, 37201, 48578, 48578, 48578, 25553, 48578, 48527, 48578, 24272, 48578, 30070, 41254, 48578, 28462, 13572, 48578, 48578, 23693, 48578, 48578, 48578, 48578, 48578, 45840, 22088, 46339, 19551, 30922, 48578, 17188, 14860, 48578, 17189, 17918, 17651, 18017, 48578, 48578, 48578, 45981, 11068, 35874, 31137, 48578, 33823, 43612, 48578, 48578, 31492, 48578, 48578, 19292, 48578, 39147, 17741, 39153, 39203, 17451, 23889, 48578, 24548, 48578, 48578, 10526, 48578, 48578, 48578, 22362, 38939, 17294, 48578, 48578, 48578, 48578, 48578, 13539, 48578, 13487, 37549, 48578, 48578, 13488, 45310, 22034, 48578, 25802, 11269, 48578, 46550, 48578, 48578, 48578, 30597, 22494, 19279, 23527, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 15573, 48578, 34475, 48578, 13414, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 64256, 0, 0, 64259, 64260, 0, 0, 0, 0, 64265, 0, 0, 0, 64269, 64270, 0, 64272, 64273, 64274, 64275, 64276, 0, 64278, 64279, 64280, 64281, 64282, 64283, 64284, 64285, 0, 64287, 64288, 64289, 64290, 64291, 0, 64293, 0, 0, 0, 0, 0, 0, 0, 64301, 64302, 64303, 0, 0, 64306, 64307, 64308, 64309, 64310, 64311, 64312, 64313, 64314, 64315, 64316, 64317, 64318, 64319, 64320, 64321, 64322, 0, 64324, 64325, 64326, 0, 0, 64329, 0, 64331, 0, 0, 0, 0, 64336, 64337, 64338, 0, 0, 0, 64342, 64343, 64344, 64345, 0, 64347, 0, 0, 0, 0, 0, 64353, 64354, 0, 0, 0, 0, 64359, 64360, 64361, 0, 64363, 64364, 64365, 64366, 64367, 64368, 64369, 64370, 0, 64372, 0, 64374, 64375, 0, 0, 64378, 0, 0, 0, 0, 64383, 64384, 64385, 64386, 64387, 64388, 64389, 0, 64391, 0, 64393, 64394, 64395, 64396, 0, 64398, 64399, 64400, 0, 0, 0, 64404, 64405, 64406, 0, 64408, 0, 64410, 0, 64412, 0, 0, 64415, 0, 0, 64418, 64419, 0, 64421, 64422, 64423, 64424, 64425, 0, 0, 0, 0, 0, 64431, 0, 0, 64434, 0, 0, 0, 0, 64439, 64440, 64441, 0, 0, 0, 0, 64446, 0, 0, 64449, 64450, 0, 64452, 64453, 0, 64455, 0, 0, 0, 0, 0, 0, 64462, 0, 64464, 64465, 0, 64467, 64468, 64469, 0, 0, 0, 64473, 64474, 64475, 64476, 64477, 0, 64479, 0, 0, 64482, 64483, 0, 0, 0, 64487, 0, 0, 64490, 0, 64492, 64493, 64494, 0, 0, 0, 0, 64499, 64500, 64501, 64502, 64503, 64504, 64505, 0, 64507, 0, 64509, 0, 64511, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p27C: 2, 2, 2, 1, 1, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 1, 2, 1, 1, 1, 1, 2, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 1, 1, 1, 1, 2, 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 48578, 48578, 48578, 25787, 37120, 48578, 48578, 44357, 38653, 48578, 36554, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 17058, 48578, 48578, 48578, 48578, 48578, 35972, 30654, 48578, 48578, 48578, 48578, 48578, 48578, 25116, 24631, 48578, 41290, 48578, 48578, 48578, 48578, 16105, 36733, 17315, 11241, 48578, 37257, 48578, 40604, 44024, 27883, 10788, 48578, 18279, 13582, 48578, 28030, 48578, 28159, 48578, 25309, 48578, 48578, 48578, 7326, 39355, 48578, 48578, 48578, 22471, 35024, 33128, 48578, 48578, 48578, 43122, 48578, 48578, 48578, 48578, 43145, 40034, 48578, 46692, 13552, 48578, 48578, 48578, 48578, 26616, 48578, 48578, 48578, 26334, 22185, 48578, 48578, 48578, 31185, 25341, 48578, 48578, 48578, 48578, 48578, 48578, 29941, 11851, 14049, 44460, 48578, 48578, 48578, 47844, 48578, 39148, 18527, 27755, 36101, 48578, 48578, 48578, 30313, 48578, 27434, 26658, 48578, 16572, 48578, 30974, 48578, 25171, 27719, 38030, 9727, 48578, 18379, 35431, 48578, 48578, 21941, 33446, 27182, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 37921, 38936, 25454, 48578, 48578, 8633, 38149, 48578, 48578, 48578, 24375, 46210, 48578, 43866, 18172, 37586, 7666, 20121, 48578, 48578, 48578, 48578, 48534, 45914, 9095, 31805, 41995, 48578, 48578, 13403, 32049, 48578, 48578, 48578, 48578, 29787, 45817, 48578, 48578, 33504, 16305, 8849, 42746, 15272, 48578, 40448, 34371, 36831, 48578, 48578, 13321, 48578, 48578, 37016, 39900, 38483, 29520, 18884, 48578, 48578, 48578, 48578, 23526, 48578, 48578, 48578, 35035, 11983, 33437, 47321, 46159, 37887, 23528, 8554, 48578, 48578, 13433, 48578, 48578, 28395, 40074, 32516, 37160, 38101, 44056, 26989, 44860, 47232, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 35165, 48578, 16378, 33752, 48578, 46123, 29811, 48578, 48578, 36837, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 64512, 64513, 64514, 0, 0, 64517, 64518, 0, 0, 64521, 0, 64523, 64524, 64525, 64526, 64527, 64528, 64529, 0, 64531, 64532, 64533, 64534, 64535, 0, 0, 64538, 64539, 64540, 64541, 64542, 64543, 0, 0, 64546, 0, 64548, 64549, 64550, 64551, 0, 0, 0, 0, 64556, 0, 64558, 0, 0, 0, 0, 64563, 0, 0, 64566, 0, 64568, 0, 64570, 0, 64572, 64573, 64574, 0, 0, 64577, 64578, 64579, 0, 0, 0, 64583, 64584, 64585, 0, 64587, 64588, 64589, 64590, 0, 0, 64593, 0, 0, 64596, 64597, 64598, 64599, 0, 64601, 64602, 64603, 0, 0, 64606, 64607, 64608, 0, 0, 64611, 64612, 64613, 64614, 64615, 64616, 0, 0, 0, 0, 64621, 64622, 64623, 0, 64625, 0, 0, 0, 0, 64630, 64631, 64632, 0, 64634, 0, 0, 64637, 0, 64639, 0, 64641, 0, 0, 0, 0, 64646, 0, 0, 64649, 64650, 0, 0, 0, 64654, 64655, 64656, 64657, 64658, 64659, 64660, 64661, 64662, 0, 0, 0, 64666, 64667, 0, 0, 64670, 64671, 64672, 0, 0, 64675, 0, 0, 0, 0, 0, 64681, 64682, 64683, 64684, 0, 0, 0, 0, 0, 64690, 64691, 0, 0, 64694, 64695, 64696, 64697, 0, 0, 64700, 64701, 0, 0, 0, 0, 0, 64707, 0, 0, 0, 64711, 64712, 0, 64714, 64715, 0, 0, 0, 0, 0, 64721, 64722, 64723, 64724, 0, 64726, 64727, 64728, 0, 0, 0, 0, 0, 0, 0, 0, 64737, 64738, 0, 64740, 64741, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64751, 64752, 64753, 64754, 64755, 64756, 64757, 0, 64759, 0, 0, 64762, 0, 0, 64765, 64766, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p27D: 2, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 48578, 10690, 29644, 9962, 43846, 34781, 48578, 38567, 48578, 29815, 18694, 48578, 15332, 48578, 8852, 48578, 48578, 48578, 48578, 28359, 48578, 8853, 38131, 43852, 48578, 28403, 16593, 48578, 48578, 48578, 48578, 48578, 24614, 48578, 40463, 41715, 30231, 29507, 48578, 48578, 48578, 48578, 35602, 48578, 32599, 33540, 48578, 48578, 48578, 48578, 35603, 48578, 48578, 48578, 48578, 48578, 12351, 48578, 27090, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 34444, 48578, 48578, 48578, 48578, 16294, 48578, 17190, 34359, 42094, 48578, 16419, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 22614, 48578, 48578, 21666, 48578, 29302, 9671, 7970, 40599, 9430, 48578, 48578, 25192, 7327, 48578, 48578, 48578, 27401, 23540, 48578, 48578, 48578, 39890, 48578, 33779, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 19219, 28599, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 46604, 48578, 25220, 45699, 48578, 48578, 45120, 48578, 48578, 40944, 48578, 48578, 48578, 48578, 48578, 48578, 10595, 38341, 38827, 48578, 48578, 8172, 48578, 48578, 33652, 48578, 48578, 48578, 44619, 27416, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 13741, 48578, 48578, 9840, 48578, 45542, 10643, 48578, 36778, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 42786, 48578, 48578, 48578, 48578, 48578, 42170, 48578, 48578, 22919, 48578, 14882, 40163, 10644, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 23272, 48578, 48578, 48578, 8954, 48578, 25789, 48578, 48578, 48578, 43241, 27435, 40325, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 16801, 48578, 26376, 48578, 48578, 33617, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 21776, 13592, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 64768, 0, 0, 0, 0, 0, 64774, 0, 64776, 0, 0, 64779, 0, 64781, 0, 64783, 64784, 64785, 64786, 0, 64788, 0, 0, 0, 64792, 0, 0, 64795, 64796, 64797, 64798, 64799, 0, 64801, 0, 0, 0, 0, 64806, 64807, 64808, 64809, 0, 64811, 0, 0, 64814, 64815, 64816, 64817, 0, 64819, 64820, 64821, 64822, 64823, 0, 64825, 0, 64827, 64828, 64829, 64830, 64831, 64832, 64833, 64834, 0, 64836, 64837, 64838, 64839, 0, 64841, 0, 0, 0, 64845, 0, 64847, 64848, 64849, 64850, 64851, 64852, 64853, 64854, 64855, 64856, 64857, 64858, 0, 64860, 64861, 0, 64863, 0, 0, 0, 0, 0, 64869, 64870, 0, 0, 64873, 64874, 64875, 0, 0, 64878, 64879, 64880, 0, 64882, 0, 64884, 64885, 64886, 64887, 64888, 64889, 64890, 0, 0, 64893, 64894, 64895, 64896, 64897, 64898, 64899, 0, 64901, 0, 0, 64904, 64905, 0, 64907, 64908, 0, 64910, 64911, 64912, 64913, 64914, 64915, 0, 0, 0, 64919, 64920, 0, 64922, 64923, 0, 64925, 64926, 64927, 0, 0, 64930, 64931, 64932, 64933, 64934, 64935, 64936, 64937, 64938, 64939, 64940, 64941, 64942, 64943, 64944, 64945, 0, 64947, 64948, 0, 64950, 0, 0, 64953, 0, 64955, 64956, 64957, 64958, 64959, 64960, 64961, 64962, 64963, 64964, 0, 64966, 64967, 64968, 64969, 64970, 0, 64972, 64973, 0, 64975, 0, 0, 0, 64979, 64980, 64981, 64982, 64983, 64984, 64985, 64986, 0, 64988, 64989, 64990, 0, 64992, 0, 64994, 64995, 64996, 0, 0, 0, 65000, 65001, 65002, 65003, 65004, 65005, 65006, 65007, 65008, 0, 65010, 0, 65012, 65013, 0, 65015, 65016, 65017, 65018, 65019, 65020, 65021, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p27E: 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 1, 1, 2, 1, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, 48578, 48578, 39391, 48578, 48578, 46862, 48578, 48578, 8977, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 46863, 47708, 41205, 24814, 35517, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 23709, 21949, 27474, 41403, 46001, 16984, 48578, 48578, 48578, 48578, 48578, 48578, 47126, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 38143, 32285, 9890, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32635, 48578, 45046, 48578, 48071, 48578, 48578, 48578, 26498, 16878, 48578, 10568, 48578, 21667, 36578, 37682, 48578, 48578, 48578, 46668, 48578, 48578, 28277, 48578, 48578, 48578, 48578, 17197, 48578, 48578, 48578, 48578, 38848, 25152, 48578, 48578, 41589, 40963, 48578, 48578, 48578, 48578, 18371, 15724, 40968, 48578, 39154, 48578, 48578, 48578, 12048, 48578, 48578, 39170, 18263, 48578, 48578, 48578, 48578, 48578, 48578, 41604, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 42994, 10719, 22115, 48578, 48314, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 20763, 43052, 48578, 35985, 10844, 7690, 36981, 48157, 31887, 48578, 48578, 10845, 39005, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 28587, 48578, 11863, 48578, 38537, 48578, 11256, 35214, 43869, 21811, 7692, 48578, 11676, 12936, 29354, 10853, 48578, 31932, 48578, 41651, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 45818, 48578, 48578, 48578, 48578, 39639, 8298, 23080, 30779, 47272, 21744, 31436, 27897, 44841, 48578, 16896, 48411, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 31437, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 18202, 31914, 17123, 15472, 23787, 33434, 38828, 9305, 34381, 43914, 16716, 48578, 28805, 48578, 48578, 18048, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 65024, 65025, 0, 65027, 65028, 0, 65030, 65031, 0, 65033, 65034, 65035, 65036, 65037, 65038, 65039, 65040, 65041, 65042, 65043, 65044, 0, 0, 0, 0, 0, 65050, 65051, 65052, 65053, 65054, 65055, 65056, 65057, 65058, 65059, 65060, 65061, 0, 0, 0, 0, 0, 0, 65068, 65069, 65070, 65071, 65072, 65073, 0, 65075, 65076, 65077, 65078, 65079, 65080, 65081, 65082, 65083, 65084, 0, 0, 0, 65088, 65089, 65090, 65091, 65092, 65093, 65094, 65095, 0, 65097, 0, 65099, 0, 65101, 65102, 65103, 0, 0, 65106, 0, 65108, 0, 0, 0, 65112, 65113, 65114, 0, 65116, 65117, 0, 65119, 65120, 65121, 65122, 0, 65124, 65125, 65126, 65127, 0, 0, 65130, 65131, 0, 0, 65134, 65135, 65136, 65137, 0, 0, 0, 65141, 0, 65143, 65144, 65145, 0, 65147, 65148, 0, 0, 65151, 65152, 65153, 65154, 65155, 65156, 0, 65158, 65159, 65160, 65161, 65162, 65163, 65164, 65165, 0, 0, 0, 65169, 0, 65171, 65172, 65173, 65174, 65175, 65176, 65177, 65178, 65179, 0, 0, 65182, 0, 0, 0, 0, 0, 0, 65189, 65190, 0, 0, 65193, 65194, 65195, 65196, 65197, 65198, 65199, 0, 65201, 0, 65203, 0, 65205, 0, 0, 0, 0, 0, 65211, 0, 0, 0, 0, 65216, 0, 65218, 0, 65220, 65221, 65222, 65223, 65224, 65225, 65226, 65227, 65228, 0, 65230, 65231, 65232, 65233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65243, 0, 0, 65246, 65247, 65248, 65249, 65250, 65251, 65252, 65253, 65254, 0, 65256, 65257, 65258, 65259, 65260, 65261, 65262, 65263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65275, 0, 65277, 65278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p27F: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 27409, 48578, 48578, 48578, 14234, 39468, 45152, 40955, 31575, 13409, 24089, 30796, 23597, 15301, 30705, 10992, 48578, 48578, 11900, 48578, 48578, 27922, 8099, 48578, 48578, 48578, 12655, 48578, 48578, 48578, 20977, 11007, 10893, 44639, 11973, 35325, 36469, 34677, 45703, 15311, 48578, 10352, 15064, 18029, 45704, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 20978, 45705, 45872, 48578, 48578, 41808, 17130, 38566, 18444, 12995, 42250, 35166, 30969, 19646, 40628, 30815, 22296, 48578, 17131, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 41816, 21003, 11976, 48578, 37142, 46035, 29972, 26081, 46703, 11288, 27436, 31196, 48578, 24809, 48578, 48578, 48578, 48578, 48578, 48578, 24525, 48578, 48578, 48578, 14110, 35350, 22221, 48578, 48578, 21777, 35967, 24955, 33131, 13475, 48578, 45260, 46773, 48578, 48578, 48578, 41158, 25372, 48578, 48578, 12725, 48578, 48578, 45889, 41048, 31582, 20798, 29900, 48578, 48578, 17290, 48578, 48578, 48578, 48578, 48578, 44378, 17061, 48578, 41355, 48578, 48578, 41356, 9987, 21015, 21790, 41836, 13649, 48578, 17988, 39691, 41357, 48578, 48578, 48578, 48578, 25393, 21018, 43308, 32122, 15665, 15002, 48578, 22258, 32027, 48578, 48578, 48578, 48578, 21576, 48578, 19765, 19695, 48578, 48578, 48578, 48578, 48578, 48578, 38950, 29383, 48578, 23120, 22939, 48578, 22940, 45760, 48578, 48578, 7719, 48578, 48578, 10448, 18342, 29070, 14083, 40596, 13885, 34025, 37588, 14826, 48578, 48578, 38761, 47991, 48578, 18343, 48578, 48578, 48578, 48578, 8893, 48578, 37432, 7854, 15943, 48578, 22609, 48578, 48578, 48578, 48578, 48578, 48578, 47782, 15260, 27887, 20023, 37367, 44560, 48578, 28031, 22148, 21736, 16515, 30219, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 65280, 65281, 65282, 65283, 65284, 65285, 65286, 65287, 65288, 65289, 0, 65291, 65292, 65293, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65306, 65307, 0, 65309, 65310, 0, 0, 65313, 65314, 65315, 0, 65317, 65318, 65319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65330, 0, 0, 0, 0, 65335, 65336, 65337, 65338, 65339, 65340, 65341, 65342, 65343, 65344, 65345, 65346, 65347, 0, 0, 0, 65351, 65352, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65365, 0, 65367, 65368, 65369, 65370, 65371, 65372, 65373, 0, 0, 0, 65377, 0, 0, 0, 0, 0, 0, 0, 0, 65386, 0, 65388, 65389, 65390, 65391, 65392, 65393, 0, 65395, 65396, 65397, 0, 0, 0, 65401, 65402, 0, 0, 0, 0, 0, 65408, 0, 0, 65411, 65412, 65413, 0, 0, 65416, 65417, 0, 65419, 65420, 0, 0, 0, 0, 0, 65426, 65427, 0, 65429, 65430, 65431, 65432, 65433, 0, 0, 65436, 0, 65438, 65439, 0, 0, 0, 0, 0, 0, 65446, 0, 0, 0, 65450, 65451, 65452, 65453, 0, 0, 0, 0, 0, 0, 65460, 0, 0, 65463, 65464, 65465, 65466, 0, 65468, 0, 0, 65471, 65472, 65473, 65474, 65475, 65476, 0, 0, 65479, 0, 0, 65482, 0, 0, 65485, 65486, 0, 65488, 65489, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65499, 65500, 0, 0, 65503, 0, 65505, 65506, 65507, 65508, 0, 65510, 0, 0, 0, 65514, 0, 65516, 65517, 65518, 65519, 65520, 65521, 0, 0, 0, 0, 0, 0, 65528, 0, 0, 0, 0, 0, 65534, 65535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p280: 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 2, 2, 1, 1, 2, 1, 1, 2, 2, 1, 1, 2, 1, 1, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 28539, 48579, 48579, 48579, 37492, 41773, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 11112, 23081, 17163, 48579, 39757, 38806, 48579, 12067, 36832, 33014, 48579, 13953, 10338, 48579, 48579, 48579, 24054, 48018, 48579, 46579, 48535, 48579, 48579, 22511, 45311, 48579, 44769, 31752, 48579, 48579, 48579, 14427, 41329, 48579, 19822, 48579, 9758, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 34537, 41141, 40138, 36318, 17353, 39364, 33512, 37289, 17427, 23351, 9702, 13494, 29121, 41902, 10596, 30306, 30788, 45004, 15128, 48579, 48579, 48579, 48579, 36815, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 38342, 34034, 37419, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 35991, 48579, 41487, 47045, 26041, 41801, 21685, 48579, 48579, 12694, 48579, 11276, 48373, 14235, 46760, 29629, 48579, 8871, 48579, 12886, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 23529, 48579, 42493, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 17476, 29337, 36026, 22524, 40789, 48297, 19870, 38649, 48579, 48579, 11376, 48579, 48579, 30256, 41804, 37439, 48579, 13618, 48579, 29943, 10894, 19191, 30096, 48579, 11772, 45740, 48579, 48579, 48579, 48579, 37555, 48579, 48579, 48579, 48579, 37527, 48579, 48579, 48579, 14249, 38102, 7755, 48579, 20496, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 9808, 48579, 11285, 22990, 36288, 48278, 24501, 35772, 33079, 48579, 48579, 29339, 29340, 48579, 48579, 48579, 33253, 31297, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48338, 48579, 47086, 41809, 48579, 20987, 28466, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 32769, 32770, 32771, 0, 0, 32774, 32775, 32776, 32777, 32778, 32779, 32780, 32781, 32782, 32783, 32784, 32785, 32786, 32787, 0, 0, 0, 32791, 0, 0, 32794, 0, 0, 0, 32798, 0, 0, 32801, 32802, 32803, 0, 0, 32806, 0, 0, 32809, 32810, 0, 0, 32813, 0, 0, 32816, 32817, 32818, 0, 0, 32821, 0, 32823, 0, 32825, 32826, 32827, 32828, 32829, 32830, 32831, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32851, 32852, 32853, 32854, 0, 32856, 32857, 32858, 32859, 32860, 32861, 32862, 0, 0, 0, 32866, 32867, 32868, 32869, 32870, 32871, 32872, 32873, 32874, 32875, 32876, 32877, 32878, 32879, 32880, 32881, 32882, 32883, 0, 32885, 0, 0, 0, 0, 0, 32891, 32892, 0, 32894, 0, 0, 0, 0, 0, 32900, 0, 32902, 0, 32904, 32905, 32906, 32907, 32908, 32909, 32910, 32911, 0, 32913, 0, 32915, 32916, 32917, 32918, 32919, 32920, 32921, 32922, 32923, 0, 0, 0, 0, 0, 0, 0, 0, 32932, 32933, 0, 32935, 32936, 0, 0, 0, 32940, 0, 32942, 0, 0, 0, 0, 32947, 0, 0, 32950, 32951, 32952, 32953, 0, 32955, 32956, 32957, 32958, 0, 32960, 32961, 32962, 0, 0, 0, 32966, 0, 32968, 32969, 32970, 32971, 32972, 32973, 32974, 32975, 32976, 32977, 32978, 0, 32980, 0, 0, 0, 0, 0, 0, 0, 32988, 32989, 0, 0, 32992, 32993, 32994, 0, 0, 32997, 32998, 32999, 33000, 33001, 33002, 33003, 33004, 0, 33006, 0, 0, 33009, 0, 0, 33012, 33013, 33014, 33015, 33016, 33017, 33018, 33019, 33020, 33021, 33022, 33023, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p281: 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 1, 1, 1, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 48579, 48579, 48579, 48579, 26233, 32013, 48579, 12751, 24848, 10054, 31459, 25832, 13274, 11977, 48579, 48579, 19718, 48579, 48579, 10255, 34741, 48346, 48579, 22532, 48579, 48579, 31198, 24214, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 34711, 44675, 46036, 24017, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 30204, 48579, 48579, 48579, 48579, 46267, 40048, 48579, 36006, 12049, 23619, 48579, 40801, 34689, 45743, 9513, 48579, 48579, 8391, 29677, 48579, 48579, 48579, 48579, 10618, 48579, 48579, 48579, 48579, 48579, 31340, 19482, 48579, 48579, 48579, 48579, 48579, 45797, 48579, 23620, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 36599, 33085, 21136, 47616, 14054, 48579, 9846, 22053, 36116, 8313, 48579, 14533, 25103, 45592, 35518, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 33325, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 47120, 37197, 48579, 31635, 48579, 11587, 48579, 48579, 48579, 35798, 9065, 38241, 48579, 48579, 30223, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 27820, 9407, 48579, 48579, 23145, 48579, 12112, 32518, 8075, 23573, 48579, 48579, 48579, 48579, 48579, 48579, 28679, 24251, 48579, 48579, 48579, 48579, 48579, 48579, 20746, 25896, 24616, 25691, 16937, 48579, 48579, 48579, 10075, 48579, 48579, 48579, 48579, 48579, 48579, 39410, 48579, 10104, 48579, 40362, 46005, 48579, 48579, 48579, 48579, 48579, 34763, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 27362, 26257, 26499, 48579, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 33024, 33025, 33026, 33027, 0, 0, 33030, 0, 0, 0, 0, 0, 0, 0, 33038, 33039, 0, 33041, 33042, 0, 0, 0, 33046, 0, 33048, 33049, 0, 0, 33052, 33053, 33054, 33055, 33056, 33057, 33058, 33059, 33060, 33061, 33062, 33063, 33064, 33065, 33066, 33067, 33068, 33069, 0, 0, 0, 0, 33074, 33075, 33076, 33077, 33078, 33079, 33080, 33081, 33082, 33083, 33084, 33085, 33086, 33087, 33088, 33089, 33090, 33091, 33092, 0, 33094, 33095, 33096, 33097, 0, 0, 33100, 0, 0, 0, 33104, 0, 0, 0, 0, 33109, 33110, 0, 0, 33113, 33114, 33115, 33116, 0, 33118, 33119, 33120, 33121, 33122, 0, 0, 33125, 33126, 33127, 33128, 33129, 0, 33131, 0, 33133, 33134, 33135, 33136, 33137, 33138, 33139, 33140, 33141, 33142, 33143, 33144, 33145, 33146, 33147, 33148, 33149, 33150, 33151, 33152, 0, 0, 0, 0, 0, 33158, 0, 0, 0, 0, 33163, 0, 0, 0, 0, 33168, 33169, 33170, 33171, 33172, 33173, 33174, 33175, 33176, 0, 33178, 33179, 33180, 33181, 33182, 33183, 33184, 33185, 33186, 33187, 33188, 33189, 33190, 0, 0, 33193, 0, 33195, 0, 33197, 33198, 33199, 0, 0, 0, 33203, 33204, 0, 33206, 33207, 33208, 33209, 33210, 33211, 33212, 0, 0, 33215, 33216, 0, 33218, 0, 0, 0, 0, 33223, 33224, 33225, 33226, 33227, 33228, 0, 0, 33231, 33232, 33233, 33234, 33235, 33236, 0, 0, 0, 0, 0, 33242, 33243, 33244, 0, 33246, 33247, 33248, 33249, 33250, 33251, 0, 33253, 0, 33255, 0, 0, 33258, 33259, 33260, 33261, 33262, 0, 33264, 33265, 33266, 33267, 33268, 33269, 33270, 33271, 33272, 33273, 33274, 0, 0, 0, 33278, 33279, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p282: 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 1, 2, 13013, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 13295, 48579, 37565, 45061, 26266, 48579, 26268, 48579, 48579, 48579, 48579, 24081, 48579, 37524, 13303, 28456, 33726, 40241, 29779, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 26824, 48579, 43474, 48579, 9168, 48579, 47584, 48579, 48579, 10933, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 28032, 37368, 48579, 36928, 42406, 48579, 48579, 48579, 48579, 48579, 48579, 18831, 48579, 32613, 48579, 42471, 48579, 48579, 48579, 48579, 48579, 37377, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48383, 44620, 48579, 48579, 7243, 48579, 47281, 37554, 48579, 48579, 48579, 13996, 47233, 17105, 18774, 27530, 48579, 48579, 48579, 11486, 31449, 16173, 36779, 26990, 48579, 48579, 48579, 36149, 48579, 48579, 32710, 48579, 48579, 32711, 30614, 17056, 48579, 48579, 48579, 39829, 36552, 48579, 48579, 48579, 48579, 48579, 48579, 39937, 48579, 48579, 45885, 12050, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 23635, 48579, 48579, 48579, 33919, 48579, 24033, 24617, 48579, 9919, 28869, 26258, 48579, 36734, 18986, 48579, 48579, 48579, 48579, 16147, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 30752, 44253, 48579, 40393, 48579, 48579, 48579, 48579, 44985, 7667, 12297, 19378, 41130, 48579, 48579, 22131, 28968, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 13695, 19564, 48579, 48579, 48579, 48579, 48579, 48579, 29250, 16204, 8228, 48579, 22774, 42119, 25565, 28500, 45766, 43537, 28658, 29480, 48579, 16154, 9371, 17639, 32749, 16892, 48579, 48579, 48579, 8486, 38784, 21737, 19152, 8509, 48579, 36627, 46581, 48579, 17837, 43123, 11703, 48579, 9054, 48579, 48579, 48579, 48579, 16161, 48579, 48579, 14428, 48579, 48579, 42053, 40836, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 33281, 33282, 33283, 33284, 33285, 33286, 33287, 0, 33289, 0, 0, 0, 33293, 0, 33295, 33296, 33297, 33298, 0, 33300, 0, 0, 0, 0, 0, 0, 33307, 33308, 33309, 33310, 33311, 33312, 33313, 33314, 33315, 33316, 0, 33318, 0, 33320, 0, 33322, 0, 33324, 33325, 0, 33327, 33328, 33329, 33330, 33331, 33332, 33333, 0, 0, 33336, 0, 0, 33339, 33340, 33341, 33342, 33343, 33344, 0, 33346, 0, 33348, 0, 33350, 33351, 33352, 33353, 33354, 0, 33356, 33357, 33358, 33359, 33360, 33361, 33362, 33363, 33364, 33365, 0, 0, 33368, 33369, 0, 33371, 0, 0, 33374, 33375, 33376, 0, 0, 0, 0, 0, 33382, 33383, 33384, 0, 0, 0, 0, 0, 33390, 33391, 33392, 0, 33394, 33395, 0, 33397, 33398, 0, 0, 0, 33402, 33403, 33404, 0, 0, 33407, 33408, 33409, 33410, 33411, 33412, 0, 33414, 33415, 0, 0, 33418, 33419, 33420, 33421, 33422, 33423, 33424, 33425, 33426, 33427, 0, 33429, 33430, 33431, 0, 33433, 0, 0, 33436, 0, 0, 0, 33440, 0, 0, 33443, 33444, 33445, 33446, 0, 33448, 33449, 33450, 33451, 33452, 33453, 33454, 33455, 0, 0, 33458, 0, 33460, 33461, 33462, 33463, 0, 0, 0, 0, 0, 33469, 33470, 0, 0, 33473, 33474, 33475, 33476, 33477, 33478, 33479, 0, 0, 33482, 33483, 33484, 33485, 33486, 33487, 0, 0, 0, 33491, 0, 0, 0, 0, 0, 0, 0, 0, 33500, 0, 0, 0, 0, 0, 33506, 33507, 33508, 0, 0, 0, 0, 0, 33514, 0, 0, 33517, 0, 0, 0, 33521, 0, 33523, 33524, 33525, 33526, 0, 33528, 33529, 0, 33531, 33532, 0, 0, 33535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p283: 2, 1, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 1, 1, 2, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 1, 48579, 17838, 48579, 48579, 45413, 9870, 17934, 48579, 36542, 48579, 48579, 48579, 46693, 40488, 40817, 48579, 48579, 46477, 48579, 48579, 37639, 48579, 48579, 48579, 22340, 48579, 48579, 48579, 48579, 38379, 48579, 48579, 26043, 48579, 46554, 32753, 10604, 15302, 48579, 14236, 36182, 36090, 48579, 21973, 10285, 35758, 12887, 48579, 48192, 48579, 48579, 22779, 37165, 48579, 22780, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 32754, 45076, 17677, 48229, 11773, 31818, 48579, 48579, 48579, 28087, 13959, 40845, 22784, 39663, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 13619, 22478, 48579, 43613, 48579, 48579, 48579, 48043, 48579, 48579, 48579, 48579, 18775, 48579, 29638, 48579, 24502, 48579, 9229, 15991, 21766, 22641, 48579, 18237, 42252, 36103, 48579, 31773, 32760, 25575, 19080, 19464, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 47087, 48579, 36108, 46860, 22534, 48579, 48579, 48579, 48579, 48579, 48579, 42136, 48579, 36133, 17855, 48579, 48579, 48579, 24849, 48579, 9626, 48579, 48579, 48579, 28210, 48232, 48579, 12752, 48579, 20641, 29653, 48579, 16721, 14345, 20439, 20794, 29123, 45458, 48579, 48579, 48579, 48579, 29658, 12517, 48579, 32096, 24737, 28092, 23679, 48579, 48579, 48579, 48579, 14889, 48579, 48579, 48579, 19165, 48579, 48579, 48579, 23087, 48579, 43512, 34742, 20451, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 26490, 48579, 26105, 48579, 48579, 48579, 48579, 48579, 16011, 32493, 48579, 48579, 30067, 48579, 25692, 48579, 48579, 48579, 46438, 39692, 48579, 48579, 25245, 24747, 33528, 9270, 24625, 48579, 48579, 48579, 48579, 48579, 48579, 40190, 16013, 27724, 24749, 48579, 48579, 22260, 47300, 48579, 48579, 48579, 48579, 22651, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 33536, 0, 33538, 33539, 0, 0, 0, 33543, 0, 33545, 33546, 33547, 0, 0, 0, 33551, 33552, 0, 33554, 33555, 0, 33557, 33558, 33559, 0, 33561, 33562, 33563, 33564, 0, 33566, 33567, 0, 33569, 0, 0, 0, 0, 33574, 0, 0, 0, 33578, 0, 0, 0, 0, 33583, 0, 33585, 33586, 0, 0, 33589, 0, 33591, 33592, 33593, 33594, 33595, 33596, 33597, 33598, 33599, 33600, 33601, 33602, 33603, 33604, 0, 0, 0, 0, 0, 0, 33611, 33612, 33613, 0, 0, 0, 0, 0, 33619, 33620, 33621, 33622, 33623, 33624, 33625, 33626, 0, 0, 33629, 0, 33631, 33632, 33633, 0, 33635, 33636, 33637, 33638, 0, 33640, 0, 33642, 0, 33644, 0, 0, 0, 0, 33649, 0, 0, 0, 33653, 0, 0, 0, 0, 0, 33659, 33660, 33661, 33662, 33663, 33664, 33665, 33666, 33667, 33668, 33669, 33670, 33671, 33672, 0, 33674, 0, 0, 0, 33678, 33679, 33680, 33681, 33682, 33683, 0, 33685, 0, 0, 33688, 33689, 33690, 0, 33692, 0, 33694, 33695, 33696, 0, 0, 33699, 0, 33701, 0, 0, 33704, 0, 0, 0, 0, 0, 0, 33711, 33712, 33713, 33714, 0, 0, 33717, 0, 0, 0, 0, 33722, 33723, 33724, 33725, 0, 33727, 33728, 33729, 0, 33731, 33732, 33733, 0, 33735, 0, 0, 0, 33739, 33740, 33741, 33742, 33743, 33744, 33745, 0, 33747, 0, 33749, 33750, 33751, 33752, 33753, 0, 0, 33756, 33757, 0, 33759, 0, 33761, 33762, 33763, 0, 0, 33766, 33767, 0, 0, 0, 0, 0, 33773, 33774, 33775, 33776, 33777, 33778, 0, 0, 0, 0, 33783, 33784, 0, 0, 33787, 33788, 33789, 33790, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p284: 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 48579, 13296, 48579, 46279, 48579, 34495, 19357, 25620, 16713, 45452, 39688, 30905, 48579, 33874, 48579, 48579, 43475, 21066, 48579, 48579, 33894, 33895, 33036, 48579, 48579, 48579, 48579, 39117, 48579, 48579, 48579, 48579, 48579, 22954, 48579, 32072, 48579, 15988, 7885, 48579, 8587, 30970, 48579, 48579, 48579, 48579, 48579, 48579, 8955, 7886, 48579, 48569, 29895, 48579, 19312, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 7889, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 29000, 48579, 10445, 48579, 29572, 48579, 48579, 15340, 37026, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 29831, 30224, 48579, 48579, 10764, 48579, 48579, 41219, 30727, 38591, 48579, 48579, 46877, 12900, 11725, 43994, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 11726, 48579, 48579, 12901, 47858, 48579, 48289, 11796, 48579, 48579, 29362, 41736, 30734, 32737, 20006, 48579, 46887, 31852, 44967, 48579, 34305, 48579, 48579, 48579, 17456, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 37308, 48579, 48579, 8887, 48579, 22487, 48579, 48579, 48579, 11557, 48579, 11671, 48579, 43467, 34325, 28217, 32911, 48579, 42029, 10651, 48579, 11596, 48579, 48579, 16141, 27256, 48579, 19696, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 16045, 45463, 48579, 48579, 48579, 8274, 48579, 48579, 48579, 48579, 48579, 40423, 23373, 48579, 13216, 48579, 48579, 36758, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 34807, 48579, 48579, 48579, 12286, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 24291, 48579, 43893, 20593, 48579, 48579, 35686, 32136, 43411, 44757, 20914, 48579, 30928, 42157, 41522, 48579, 48579, 31625, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 29512, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 33792, 0, 33794, 0, 33796, 0, 0, 0, 0, 0, 0, 0, 33804, 0, 33806, 33807, 0, 0, 33810, 33811, 0, 0, 0, 33815, 33816, 33817, 33818, 0, 33820, 33821, 33822, 33823, 33824, 0, 33826, 0, 33828, 0, 0, 33831, 0, 0, 33834, 33835, 33836, 33837, 33838, 33839, 0, 0, 33842, 0, 0, 33845, 0, 33847, 33848, 33849, 33850, 33851, 33852, 33853, 0, 33855, 33856, 33857, 33858, 33859, 33860, 33861, 33862, 33863, 33864, 33865, 0, 33867, 0, 33869, 0, 33871, 33872, 0, 0, 33875, 33876, 33877, 33878, 33879, 33880, 33881, 33882, 33883, 0, 0, 33886, 33887, 0, 33889, 33890, 0, 0, 0, 33894, 33895, 0, 0, 0, 0, 33900, 33901, 33902, 33903, 33904, 33905, 33906, 33907, 33908, 33909, 33910, 33911, 33912, 0, 33914, 33915, 0, 0, 33918, 0, 0, 33921, 33922, 0, 0, 0, 0, 0, 33928, 0, 0, 0, 33932, 0, 33934, 33935, 33936, 0, 33938, 33939, 33940, 33941, 33942, 33943, 33944, 0, 33946, 33947, 0, 33949, 0, 33951, 33952, 33953, 0, 33955, 0, 33957, 0, 0, 0, 0, 33962, 0, 0, 33965, 0, 33967, 33968, 0, 0, 33971, 0, 33973, 33974, 33975, 33976, 33977, 33978, 33979, 0, 0, 33982, 33983, 33984, 0, 33986, 33987, 33988, 33989, 33990, 0, 0, 33993, 0, 33995, 33996, 0, 33998, 33999, 34000, 34001, 34002, 34003, 34004, 34005, 34006, 34007, 34008, 34009, 0, 34011, 34012, 34013, 0, 34015, 34016, 34017, 34018, 34019, 34020, 34021, 0, 34023, 0, 0, 34026, 34027, 0, 0, 0, 0, 0, 34033, 0, 0, 0, 34037, 34038, 0, 34040, 34041, 34042, 34043, 34044, 34045, 34046, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p285: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 19967, 48579, 36983, 48579, 36312, 48579, 48579, 48579, 48579, 48579, 13905, 10026, 19975, 10854, 20133, 34653, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 35729, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 46677, 48579, 44825, 48579, 48579, 18111, 48579, 25060, 48579, 48579, 48579, 45514, 48579, 11267, 48579, 48579, 48579, 31939, 8261, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 18585, 22970, 34031, 48579, 20947, 48579, 37756, 48579, 48579, 48579, 18116, 48579, 48579, 48579, 48579, 48579, 48579, 45524, 45337, 42129, 48579, 10799, 21600, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 24916, 44203, 48579, 48579, 48579, 48579, 8686, 48579, 23099, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 11127, 41466, 47905, 48579, 31444, 39646, 48579, 44772, 38556, 20715, 39821, 33438, 48579, 47046, 48579, 48579, 11006, 48579, 8651, 37825, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 12657, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 44623, 37182, 48579, 48579, 10286, 48579, 48579, 48579, 19066, 31095, 48579, 38004, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 44058, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 12966, 48579, 12238, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 34048, 34049, 34050, 34051, 34052, 34053, 34054, 34055, 34056, 34057, 34058, 34059, 34060, 34061, 34062, 34063, 34064, 34065, 34066, 34067, 34068, 34069, 34070, 0, 34072, 0, 34074, 0, 34076, 34077, 34078, 34079, 34080, 0, 0, 0, 0, 0, 0, 34087, 34088, 34089, 34090, 34091, 34092, 34093, 34094, 0, 34096, 34097, 34098, 34099, 34100, 34101, 34102, 34103, 34104, 34105, 34106, 34107, 34108, 34109, 34110, 34111, 34112, 34113, 34114, 34115, 34116, 34117, 34118, 34119, 34120, 34121, 34122, 34123, 34124, 34125, 34126, 34127, 34128, 34129, 34130, 34131, 34132, 0, 34134, 0, 34136, 34137, 0, 34139, 0, 34141, 34142, 34143, 0, 34145, 0, 34147, 34148, 34149, 0, 0, 34152, 34153, 34154, 34155, 34156, 34157, 34158, 34159, 34160, 34161, 34162, 34163, 34164, 34165, 34166, 34167, 34168, 0, 0, 0, 34172, 0, 34174, 0, 34176, 34177, 34178, 0, 34180, 34181, 34182, 34183, 34184, 34185, 0, 0, 0, 34189, 0, 0, 34192, 34193, 34194, 34195, 34196, 34197, 34198, 34199, 34200, 34201, 0, 0, 34204, 34205, 34206, 34207, 0, 34209, 0, 34211, 34212, 34213, 34214, 34215, 34216, 34217, 34218, 34219, 0, 0, 0, 34223, 0, 0, 34226, 0, 0, 0, 0, 0, 34232, 0, 34234, 34235, 0, 34237, 0, 0, 34240, 34241, 34242, 34243, 34244, 34245, 34246, 34247, 34248, 34249, 34250, 34251, 34252, 34253, 34254, 34255, 34256, 34257, 34258, 0, 34260, 34261, 34262, 34263, 34264, 34265, 34266, 34267, 34268, 0, 0, 34271, 34272, 0, 34274, 34275, 34276, 0, 0, 34279, 0, 34281, 34282, 34283, 34284, 34285, 34286, 34287, 0, 34289, 34290, 34291, 34292, 34293, 34294, 34295, 34296, 34297, 34298, 34299, 0, 34301, 0, 34303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p286: 2, 1, 1, 1, 1, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48579, 44059, 21610, 37185, 45340, 48579, 48579, 19081, 48579, 33445, 48579, 48579, 19293, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 42253, 48579, 48579, 48579, 48579, 39669, 48579, 48579, 48579, 48579, 39670, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 12971, 48579, 21616, 48579, 48579, 48579, 19091, 48579, 22587, 44066, 48579, 48579, 24549, 48579, 48579, 48579, 11354, 48579, 10758, 48579, 19313, 48579, 44072, 48579, 45033, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 35791, 45370, 48579, 48579, 48579, 28850, 47621, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 39575, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 34173, 48579, 22842, 30666, 37100, 14479, 12053, 48579, 48579, 37247, 9733, 9422, 39792, 29532, 21337, 30487, 33724, 28952, 28125, 48579, 31500, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 8398, 48579, 48579, 48579, 48579, 48579, 8410, 7962, 8707, 47967, 28130, 38046, 17455, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 21146, 48579, 46591, 48579, 48579, 48579, 31399, 48579, 48579, 48579, 48579, 48579, 48579, 17500, 36848, 45440, 34069, 12065, 18707, 32811, 45305, 28632, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 39335, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 32195, 19749, 43390, 24286, 26749, 33738, 17306, 12118, 22308, 19766, 9353, 25730, 15074, 44007, 23011, 48579, 48579, 48579, 48579, 48579, 39798, 48579, 48579, 48579, 48579, 45100, 48579, 31507, 18923, 30326, 48579, 48579, 48579, 48579, 48579, 24115, 29508, 34508, 21647, 42713, 46517, 10968, 48579, 38951, 48579, 18275, 32774, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 34304, 0, 0, 0, 0, 34309, 34310, 0, 34312, 0, 34314, 34315, 0, 34317, 34318, 34319, 34320, 34321, 34322, 34323, 0, 34325, 34326, 34327, 34328, 0, 34330, 34331, 34332, 34333, 0, 34335, 34336, 34337, 34338, 34339, 34340, 34341, 34342, 34343, 34344, 34345, 34346, 34347, 0, 34349, 0, 34351, 34352, 34353, 0, 34355, 0, 0, 34358, 34359, 0, 34361, 34362, 34363, 0, 34365, 0, 34367, 0, 34369, 0, 34371, 0, 34373, 34374, 34375, 34376, 34377, 34378, 34379, 34380, 34381, 0, 0, 34384, 34385, 34386, 0, 0, 34389, 34390, 34391, 34392, 34393, 34394, 34395, 34396, 34397, 34398, 34399, 34400, 0, 34402, 34403, 34404, 34405, 34406, 34407, 34408, 0, 34410, 0, 0, 0, 0, 0, 34416, 34417, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34428, 0, 34430, 34431, 34432, 34433, 34434, 34435, 34436, 34437, 34438, 34439, 34440, 34441, 34442, 34443, 34444, 0, 34446, 34447, 34448, 34449, 34450, 0, 0, 0, 0, 0, 0, 0, 34458, 34459, 34460, 34461, 34462, 34463, 34464, 0, 34466, 0, 34468, 34469, 34470, 0, 34472, 34473, 34474, 34475, 34476, 34477, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34487, 34488, 34489, 34490, 34491, 34492, 34493, 0, 34495, 34496, 34497, 34498, 34499, 34500, 34501, 34502, 34503, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34519, 34520, 34521, 34522, 34523, 0, 34525, 34526, 34527, 34528, 0, 34530, 0, 0, 0, 34534, 34535, 34536, 34537, 34538, 0, 0, 0, 0, 0, 0, 0, 34546, 0, 34548, 0, 0, 34551, 34552, 34553, 34554, 34555, 34556, 34557, 34558, 34559, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p287: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 2, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 18652, 31364, 46664, 43676, 39006, 31263, 19797, 46527, 18734, 48579, 44261, 48270, 26963, 48579, 48579, 48579, 34052, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 32216, 48579, 48579, 48579, 48579, 48579, 48579, 20480, 17631, 48579, 36874, 17640, 38156, 43089, 29405, 48579, 48579, 38263, 31024, 24430, 42734, 11430, 40917, 37967, 48579, 48579, 48579, 48579, 48579, 15901, 48579, 44435, 48579, 48579, 45829, 15650, 30942, 22512, 24154, 33896, 16667, 48579, 29980, 48579, 48579, 24155, 48579, 18282, 48579, 48579, 37065, 34834, 48579, 18351, 24156, 48579, 48579, 25820, 48579, 48579, 48579, 12558, 48579, 48564, 33505, 48579, 33820, 48579, 15024, 21902, 36888, 20701, 31320, 15805, 48024, 18759, 33513, 48579, 48579, 35933, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 37320, 48579, 25450, 48579, 10597, 38301, 48522, 44624, 48579, 47471, 48579, 32397, 39026, 32064, 48579, 15977, 48579, 48579, 48579, 48579, 48579, 48579, 30455, 40784, 48579, 48579, 48579, 48579, 15610, 32353, 11072, 27137, 48579, 48579, 48579, 48579, 48579, 48579, 33911, 32073, 48579, 48579, 31294, 9511, 48579, 48579, 24503, 48579, 37689, 23946, 40500, 23755, 48579, 48579, 34406, 46561, 14520, 48579, 48579, 48579, 48579, 48579, 47088, 48579, 48579, 48579, 48579, 43445, 48579, 24526, 48579, 48579, 48579, 48579, 27811, 38023, 48579, 43629, 32470, 48579, 48579, 48579, 48579, 48579, 32185, 48579, 48579, 48579, 48579, 26432, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 12287, 48579, 43530, 8373, 15895, 48579, 38251, 41757, 27496, 48579, 15777, 31888, 46669, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 34560, 34561, 34562, 34563, 34564, 34565, 34566, 34567, 34568, 34569, 34570, 34571, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34581, 0, 0, 0, 34585, 34586, 34587, 0, 34589, 34590, 34591, 34592, 34593, 34594, 34595, 34596, 34597, 34598, 34599, 34600, 0, 34602, 34603, 34604, 34605, 34606, 34607, 0, 0, 34610, 0, 0, 0, 0, 0, 34616, 34617, 0, 0, 0, 0, 0, 0, 0, 34625, 34626, 34627, 34628, 34629, 0, 34631, 0, 34633, 34634, 0, 0, 0, 0, 0, 0, 0, 34642, 0, 34644, 34645, 0, 34647, 0, 34649, 34650, 0, 0, 34653, 0, 0, 34656, 34657, 0, 34659, 34660, 34661, 0, 34663, 0, 0, 34666, 0, 34668, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34678, 34679, 0, 34681, 34682, 34683, 34684, 34685, 34686, 34687, 34688, 34689, 34690, 34691, 34692, 34693, 34694, 34695, 34696, 34697, 34698, 34699, 0, 34701, 0, 34703, 0, 0, 0, 0, 34708, 0, 34710, 0, 0, 0, 34714, 0, 34716, 34717, 34718, 34719, 34720, 34721, 0, 0, 34724, 34725, 34726, 34727, 0, 0, 0, 0, 34732, 34733, 34734, 34735, 34736, 34737, 0, 0, 34740, 34741, 0, 0, 34744, 34745, 0, 34747, 0, 0, 0, 0, 34752, 34753, 0, 0, 0, 34757, 34758, 34759, 34760, 34761, 0, 34763, 34764, 34765, 34766, 0, 34768, 0, 34770, 34771, 34772, 34773, 0, 0, 34776, 0, 0, 34779, 34780, 34781, 34782, 34783, 0, 34785, 34786, 34787, 34788, 0, 34790, 34791, 34792, 34793, 34794, 34795, 34796, 34797, 34798, 34799, 34800, 34801, 0, 34803, 0, 0, 0, 34807, 0, 0, 0, 34811, 0, 0, 0, 34815, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p288: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 16355, 36875, 48579, 25313, 36349, 11637, 42735, 14591, 30181, 8487, 48579, 8050, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 29592, 48579, 35369, 48579, 48579, 35068, 37875, 39978, 48579, 48579, 48579, 48579, 48579, 17526, 41784, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 42748, 45423, 43754, 28281, 48579, 48579, 48579, 48579, 48579, 45229, 48579, 36585, 38829, 20779, 41663, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 28428, 35994, 41910, 36592, 47047, 11022, 36224, 48579, 48579, 48579, 48579, 45775, 48579, 48579, 48579, 48579, 48579, 48579, 27510, 48579, 48579, 38557, 43492, 41911, 23863, 48579, 48579, 48579, 48579, 30188, 48579, 19192, 17142, 28008, 11774, 48579, 48579, 22955, 11027, 48579, 44122, 48579, 48579, 48579, 47919, 48579, 48579, 35162, 48579, 48579, 48579, 48579, 48579, 48579, 43554, 48579, 48579, 48463, 33183, 25597, 17376, 38111, 27146, 18238, 24504, 48579, 27430, 48579, 7912, 20298, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 32360, 48579, 48579, 48579, 27147, 48579, 28009, 17961, 18374, 27295, 33464, 48579, 48579, 33657, 10288, 48579, 47936, 48579, 46704, 28694, 48579, 48579, 48579, 48579, 48579, 19889, 48579, 48579, 22647, 46564, 48579, 48579, 48579, 48579, 48579, 12383, 24984, 45945, 16214, 23837, 18409, 11322, 48579, 20312, 23279, 48579, 48579, 48579, 48579, 33765, 48579, 48579, 48579, 48579, 48579, 48579, 10461, 36007, 48579, 18258, 27177, 29490, 45949, 10169, 48579, 15693, 48579, 48579, 43274, 48579, 35519, 48579, 48579, 48579, 40980, 19912, 23710, 48579, 48579, 48579, 42806, 48579, 48579, 27439, 48579, 27620, 48579, 48579, 48579, 11937, 48579, 48579, 23683, 48579, 48579, 41605, 48579, 48579, 27326, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 34816, 34817, 34818, 34819, 34820, 34821, 34822, 34823, 34824, 34825, 34826, 0, 0, 34829, 0, 0, 0, 0, 0, 0, 0, 34837, 0, 34839, 34840, 34841, 34842, 34843, 34844, 34845, 34846, 0, 34848, 0, 34850, 34851, 0, 0, 0, 34855, 34856, 34857, 34858, 34859, 0, 0, 34862, 34863, 34864, 34865, 34866, 34867, 34868, 34869, 0, 0, 0, 0, 34874, 34875, 34876, 34877, 34878, 0, 34880, 0, 0, 0, 0, 34885, 34886, 34887, 34888, 34889, 34890, 34891, 0, 0, 0, 0, 0, 0, 0, 34899, 34900, 34901, 34902, 0, 34904, 34905, 34906, 34907, 34908, 34909, 0, 34911, 34912, 0, 0, 0, 0, 34917, 34918, 34919, 34920, 0, 34922, 0, 0, 0, 0, 34927, 34928, 0, 0, 34931, 0, 34933, 34934, 34935, 0, 34937, 34938, 0, 34940, 34941, 34942, 34943, 34944, 34945, 0, 34947, 34948, 0, 0, 0, 0, 0, 0, 0, 0, 34957, 0, 34959, 0, 0, 34962, 34963, 34964, 34965, 34966, 34967, 34968, 34969, 34970, 34971, 0, 34973, 34974, 34975, 0, 34977, 0, 0, 0, 0, 0, 34983, 34984, 0, 0, 34987, 0, 34989, 0, 0, 34992, 34993, 34994, 34995, 34996, 0, 34998, 34999, 0, 0, 35002, 35003, 35004, 35005, 35006, 0, 0, 0, 0, 0, 0, 0, 35014, 0, 0, 35017, 35018, 35019, 35020, 0, 35022, 35023, 35024, 35025, 35026, 35027, 0, 0, 35030, 0, 0, 0, 0, 0, 35036, 0, 35038, 35039, 0, 35041, 0, 35043, 35044, 35045, 0, 0, 0, 35049, 35050, 35051, 0, 35053, 35054, 0, 35056, 0, 35058, 35059, 35060, 0, 35062, 35063, 0, 35065, 35066, 0, 35068, 35069, 0, 35071, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p289: 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48579, 48579, 43925, 9591, 20340, 48579, 48579, 35181, 48579, 48579, 48579, 48579, 48579, 48579, 41719, 48579, 48579, 22021, 48579, 48579, 48579, 14239, 48579, 48579, 14925, 48579, 14927, 48579, 48579, 48579, 48579, 48579, 48579, 16745, 26582, 48579, 25013, 48579, 48579, 48579, 48579, 10934, 48579, 24157, 48579, 48579, 48579, 48579, 48579, 46763, 48579, 48579, 40326, 48579, 48579, 11088, 48579, 19670, 48579, 48579, 48579, 29708, 48579, 48579, 48579, 48579, 20915, 48579, 48579, 48579, 48579, 47315, 48579, 48579, 48579, 48579, 48579, 40597, 48579, 48579, 48579, 23127, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 21353, 48579, 18346, 48579, 48579, 31026, 48579, 48579, 48579, 48579, 9700, 48579, 48579, 30565, 37632, 26832, 48579, 13520, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 22846, 48579, 12306, 48579, 28345, 48579, 17928, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 23541, 13994, 30955, 48579, 43431, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 25824, 18885, 48579, 48579, 48579, 15473, 26835, 48579, 47276, 48579, 48579, 43870, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 23822, 19622, 43168, 25500, 11768, 48579, 28286, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 37238, 39822, 48579, 48579, 48579, 8742, 11404, 38646, 48579, 21687, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 40073, 29736, 47920, 32981, 48579, 33250, 48147, 48579, 46610, 48579, 48579, 48334, 32005, 48579, 10895, 48579, 47064, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 35072, 35073, 0, 0, 0, 35077, 35078, 0, 35080, 35081, 35082, 35083, 35084, 35085, 0, 35087, 35088, 0, 35090, 35091, 35092, 0, 35094, 35095, 0, 35097, 0, 35099, 35100, 35101, 35102, 35103, 35104, 0, 0, 35107, 0, 35109, 35110, 35111, 35112, 0, 35114, 0, 35116, 35117, 35118, 35119, 35120, 0, 35122, 35123, 0, 35125, 35126, 0, 35128, 0, 35130, 35131, 35132, 0, 35134, 35135, 35136, 35137, 0, 35139, 35140, 35141, 35142, 0, 35144, 35145, 35146, 35147, 35148, 0, 35150, 35151, 35152, 0, 35154, 35155, 35156, 35157, 35158, 35159, 35160, 0, 35162, 0, 35164, 35165, 0, 35167, 35168, 35169, 35170, 0, 35172, 35173, 0, 0, 0, 35177, 0, 35179, 35180, 35181, 35182, 35183, 35184, 35185, 35186, 35187, 0, 35189, 0, 35191, 0, 35193, 0, 35195, 35196, 35197, 35198, 35199, 35200, 35201, 0, 0, 0, 35205, 0, 35207, 35208, 35209, 35210, 35211, 35212, 35213, 35214, 35215, 35216, 35217, 35218, 35219, 35220, 35221, 0, 0, 35224, 35225, 35226, 0, 0, 35229, 0, 35231, 35232, 0, 35234, 35235, 35236, 35237, 35238, 35239, 35240, 35241, 35242, 35243, 35244, 0, 0, 0, 0, 0, 35250, 0, 35252, 35253, 35254, 35255, 35256, 35257, 35258, 35259, 35260, 35261, 35262, 35263, 35264, 35265, 35266, 35267, 35268, 35269, 35270, 35271, 35272, 35273, 35274, 35275, 35276, 35277, 35278, 35279, 0, 0, 35282, 35283, 35284, 0, 0, 0, 35288, 0, 35290, 35291, 35292, 35293, 35294, 35295, 35296, 35297, 35298, 35299, 35300, 0, 0, 0, 0, 35305, 0, 0, 35308, 0, 35310, 35311, 0, 0, 35314, 0, 35316, 0, 35318, 35319, 35320, 35321, 35322, 35323, 35324, 35325, 35326, 35327, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p28A: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 1, 2, 1, 1, 1, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 32294, 30963, 41437, 10287, 17678, 32870, 48579, 48579, 48579, 21690, 38650, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 10896, 23132, 48579, 11853, 32940, 23396, 10753, 48339, 20627, 48579, 44354, 37089, 27148, 12163, 34871, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 14985, 16283, 13415, 9820, 26936, 10049, 8657, 44659, 48579, 48579, 37595, 48340, 48579, 48050, 48579, 11335, 37649, 37470, 48579, 32184, 48579, 48579, 37650, 48579, 39310, 48579, 48579, 48579, 48579, 48579, 48579, 43797, 20424, 48579, 48579, 38024, 36399, 33226, 48579, 30626, 33396, 44677, 19657, 13562, 10056, 37143, 48579, 48579, 25528, 48579, 47806, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 32941, 48579, 48579, 41934, 16461, 48579, 24528, 9768, 48579, 48579, 48579, 12972, 25529, 45942, 30190, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 25834, 48579, 47112, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 35328, 35329, 35330, 35331, 35332, 35333, 35334, 35335, 35336, 35337, 35338, 35339, 35340, 35341, 35342, 35343, 35344, 35345, 35346, 35347, 35348, 35349, 35350, 0, 0, 0, 0, 0, 0, 35357, 35358, 35359, 0, 0, 35362, 35363, 35364, 35365, 35366, 35367, 35368, 35369, 35370, 35371, 0, 0, 35374, 0, 0, 0, 0, 0, 0, 35381, 0, 0, 0, 0, 0, 35387, 35388, 35389, 35390, 35391, 35392, 35393, 35394, 35395, 35396, 35397, 35398, 35399, 35400, 35401, 35402, 35403, 35404, 35405, 35406, 35407, 35408, 35409, 35410, 35411, 35412, 35413, 35414, 35415, 35416, 35417, 35418, 35419, 35420, 35421, 35422, 35423, 35424, 35425, 35426, 35427, 35428, 0, 0, 0, 0, 0, 0, 0, 0, 35437, 35438, 0, 0, 35441, 0, 35443, 0, 0, 0, 35447, 0, 35449, 35450, 0, 35452, 0, 35454, 35455, 35456, 35457, 35458, 35459, 0, 0, 35462, 35463, 0, 0, 0, 35467, 0, 0, 0, 0, 0, 0, 0, 35475, 35476, 0, 35478, 0, 35480, 35481, 35482, 35483, 35484, 35485, 35486, 35487, 35488, 35489, 35490, 35491, 35492, 35493, 35494, 35495, 35496, 35497, 35498, 35499, 35500, 35501, 35502, 35503, 35504, 35505, 35506, 0, 35508, 35509, 0, 0, 35512, 0, 0, 35515, 35516, 35517, 0, 0, 0, 0, 35522, 35523, 35524, 35525, 35526, 35527, 35528, 35529, 35530, 35531, 35532, 35533, 35534, 35535, 35536, 35537, 0, 35539, 0, 35541, 35542, 35543, 35544, 35545, 35546, 35547, 35548, 35549, 35550, 35551, 35552, 35553, 35554, 35555, 35556, 35557, 35558, 35559, 35560, 35561, 35562, 35563, 35564, 35565, 35566, 35567, 35568, 35569, 35570, 35571, 35572, 35573, 35574, 35575, 35576, 35577, 35578, 35579, 35580, 35581, 35582, 35583, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p28B: 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 48579, 24731, 48579, 48579, 48579, 26430, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 14055, 48579, 48579, 22233, 24568, 23630, 48579, 32942, 16375, 9979, 40803, 48579, 48579, 46864, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 41250, 9112, 10531, 48579, 47617, 17766, 48579, 48579, 7838, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 13279, 48579, 48579, 45950, 17062, 48579, 48579, 8818, 23482, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 21140, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 15584, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 27240, 48579, 44707, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 39043, 48579, 29978, 34962, 48579, 48579, 48579, 48579, 48579, 48579, 12758, 48579, 48579, 48579, 11551, 12854, 19500, 9992, 48579, 48579, 48579, 47956, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 9461, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 20573, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 36962, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 24270, 48579, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 35584, 0, 35586, 35587, 35588, 0, 35590, 35591, 35592, 35593, 35594, 35595, 35596, 0, 35598, 35599, 0, 0, 0, 35603, 0, 0, 0, 0, 35608, 35609, 0, 35611, 35612, 35613, 35614, 35615, 35616, 35617, 35618, 35619, 35620, 35621, 35622, 35623, 35624, 35625, 35626, 35627, 35628, 35629, 35630, 35631, 35632, 35633, 35634, 35635, 35636, 35637, 35638, 35639, 35640, 35641, 35642, 35643, 35644, 35645, 35646, 35647, 35648, 0, 0, 0, 35652, 0, 0, 35655, 35656, 0, 35658, 35659, 35660, 35661, 35662, 35663, 35664, 35665, 35666, 0, 35668, 35669, 0, 0, 35672, 35673, 0, 0, 35676, 35677, 35678, 35679, 35680, 35681, 35682, 35683, 35684, 35685, 35686, 35687, 35688, 35689, 35690, 35691, 35692, 35693, 35694, 35695, 35696, 35697, 35698, 35699, 35700, 35701, 35702, 35703, 35704, 35705, 0, 35707, 35708, 35709, 35710, 35711, 35712, 35713, 0, 35715, 35716, 35717, 35718, 35719, 35720, 35721, 35722, 35723, 35724, 35725, 35726, 35727, 35728, 35729, 0, 35731, 0, 35733, 35734, 35735, 35736, 35737, 35738, 35739, 35740, 35741, 35742, 35743, 35744, 35745, 35746, 35747, 35748, 35749, 35750, 35751, 35752, 35753, 0, 35755, 0, 0, 35758, 35759, 35760, 35761, 35762, 35763, 0, 35765, 35766, 35767, 0, 0, 0, 0, 35772, 35773, 35774, 0, 35776, 35777, 35778, 35779, 35780, 35781, 35782, 35783, 35784, 35785, 35786, 35787, 35788, 35789, 35790, 35791, 35792, 35793, 35794, 0, 35796, 35797, 35798, 35799, 35800, 35801, 35802, 35803, 35804, 35805, 0, 35807, 35808, 35809, 35810, 35811, 35812, 35813, 35814, 35815, 35816, 35817, 35818, 35819, 35820, 35821, 35822, 35823, 35824, 35825, 0, 35827, 35828, 35829, 35830, 35831, 35832, 35833, 35834, 35835, 35836, 0, 35838, 35839, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p28C: 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 1, 2, 2, 1, 1, 2, 2, 2, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1, 1, 2, 2, 1, 1, 1, 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 2, 2, 1, 2, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 1, 48579, 48579, 31150, 48579, 48579, 48579, 11552, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 35807, 48579, 13185, 48579, 20342, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 46866, 22255, 48579, 27825, 48579, 26404, 48579, 48579, 48579, 48579, 48579, 8029, 48579, 48579, 48579, 48579, 48579, 48579, 48401, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 46180, 48579, 48579, 44391, 48579, 48579, 8032, 48579, 48579, 26531, 39063, 18327, 42996, 14074, 16341, 37041, 46341, 48579, 31903, 35271, 24888, 31985, 25323, 16668, 23752, 36943, 12160, 25830, 18781, 34473, 20628, 48477, 15583, 37903, 48579, 48579, 23293, 13747, 35064, 30545, 42091, 48579, 48579, 48579, 34347, 48579, 15580, 48579, 48579, 12644, 42297, 48579, 48579, 48579, 31027, 48579, 33694, 10149, 27779, 48579, 27786, 48579, 48579, 48579, 28387, 48579, 48579, 11744, 48579, 28802, 46101, 9701, 48579, 48579, 35069, 28807, 11708, 48579, 48579, 22341, 48579, 33700, 48579, 47472, 13997, 7470, 8333, 48579, 48579, 36463, 48579, 29845, 39259, 31920, 34066, 48579, 48579, 48579, 36046, 48579, 48579, 48579, 26651, 29920, 48579, 36477, 32714, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 11783, 48579, 48579, 19476, 15029, 38660, 20796, 23838, 45620, 29654, 9534, 48579, 29003, 48579, 10067, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 26668, 16936, 28743, 10962, 10105, 48579, 48579, 48579, 28324, 48579, 48579, 39187, 21513, 19697, 46458, 48579, 48579, 48579, 48579, 36806, 48579, 48579, 27073, 44987, 48579, 47165, 37262, 32972, 40255, 38786, 48579, 36810, 28970, 48579, 37754, 20135, 48579, 14830, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 8732, 48579, 48579, 48579, 48579, 42749, 48579, 48579, 13244, 19409, 15680, 48579, 48579, 20146, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 35840, 35841, 0, 35843, 35844, 35845, 0, 35847, 35848, 35849, 35850, 35851, 35852, 35853, 35854, 0, 35856, 0, 35858, 0, 35860, 35861, 35862, 35863, 35864, 35865, 35866, 0, 0, 35869, 0, 35871, 0, 35873, 35874, 35875, 35876, 35877, 0, 35879, 35880, 35881, 35882, 35883, 35884, 0, 35886, 35887, 35888, 35889, 35890, 35891, 35892, 0, 35894, 35895, 0, 35897, 35898, 0, 35900, 35901, 0, 0, 0, 0, 0, 0, 0, 0, 35910, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35927, 35928, 0, 0, 0, 0, 0, 35934, 35935, 35936, 0, 35938, 0, 35940, 35941, 0, 0, 35944, 35945, 35946, 0, 35948, 0, 0, 0, 35952, 0, 35954, 35955, 35956, 0, 35958, 35959, 0, 35961, 0, 0, 0, 35965, 35966, 0, 0, 0, 35970, 35971, 0, 35973, 0, 35975, 0, 0, 0, 0, 35980, 35981, 0, 35983, 0, 0, 0, 0, 35988, 35989, 35990, 0, 35992, 35993, 35994, 0, 0, 35997, 0, 0, 36000, 36001, 36002, 36003, 36004, 36005, 36006, 0, 36008, 36009, 0, 0, 0, 0, 0, 0, 0, 0, 36018, 0, 36020, 0, 36022, 36023, 36024, 36025, 36026, 36027, 36028, 36029, 0, 0, 0, 0, 0, 36035, 36036, 36037, 0, 36039, 36040, 0, 0, 0, 0, 36045, 36046, 36047, 36048, 0, 36050, 36051, 0, 0, 36054, 0, 0, 0, 0, 0, 36060, 0, 0, 36063, 0, 0, 36066, 0, 36068, 36069, 36070, 36071, 36072, 36073, 36074, 36075, 36076, 36077, 36078, 36079, 36080, 36081, 0, 36083, 36084, 36085, 36086, 0, 36088, 36089, 0, 0, 0, 36093, 36094, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p28D: 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 2, 1, 1, 1, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 21446, 48579, 48579, 48579, 48579, 48579, 22387, 48579, 48579, 48579, 32335, 48579, 28257, 27978, 40947, 35101, 33993, 23083, 32344, 37882, 48579, 48579, 48579, 13255, 28260, 48579, 33017, 16164, 13553, 48579, 28662, 48579, 48579, 10229, 17663, 41904, 48579, 48579, 48579, 48579, 48579, 37082, 9326, 48579, 18213, 43917, 48579, 34265, 11277, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 39912, 27077, 24305, 36379, 48579, 20163, 48579, 48579, 48579, 46853, 16524, 16643, 48579, 30797, 48579, 14687, 44462, 46251, 38005, 14126, 9913, 38872, 48579, 16450, 48579, 48579, 48579, 48579, 48579, 48579, 32354, 19067, 48579, 40156, 43615, 48579, 35768, 37520, 15314, 21084, 29885, 48579, 48579, 48579, 34067, 44355, 22972, 48579, 29892, 40164, 29108, 39672, 20425, 40969, 48579, 8588, 48579, 48579, 48579, 28264, 48579, 24845, 48579, 29945, 48579, 48579, 48579, 21427, 48579, 48579, 48579, 35699, 41935, 7363, 48579, 48579, 39929, 31200, 38568, 36110, 48579, 22352, 48579, 48579, 48579, 48579, 48579, 23402, 48579, 48579, 48579, 48579, 48579, 48579, 23791, 48579, 28469, 48579, 48579, 13565, 34574, 48579, 20737, 28842, 48579, 44366, 48579, 48579, 48579, 48579, 48579, 9691, 48579, 20738, 48579, 18503, 38214, 42392, 14113, 16723, 18411, 20643, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 24070, 48579, 33658, 43938, 48579, 12727, 16622, 28951, 48579, 35524, 39834, 48579, 33087, 10131, 48579, 48579, 48579, 48579, 48579, 48579, 33001, 48579, 45081, 48579, 14841, 20454, 40983, 48579, 48579, 48579, 39173, 34576, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 40186, 24627, 48579, 48579, 36963, 48579, 48579, 27361, 10077, 19210, 48579, 48579, 47674, 45052, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 23651, 48579, 41720, 12586, 39794, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 36097, 36098, 36099, 36100, 36101, 0, 36103, 36104, 36105, 0, 36107, 0, 0, 0, 0, 0, 0, 0, 0, 36116, 36117, 36118, 0, 0, 36121, 0, 0, 0, 36125, 0, 36127, 36128, 0, 0, 0, 36132, 36133, 36134, 36135, 36136, 0, 0, 36139, 0, 0, 36142, 0, 0, 36145, 36146, 36147, 36148, 36149, 36150, 36151, 36152, 0, 0, 0, 0, 36157, 0, 36159, 36160, 36161, 0, 0, 0, 36165, 0, 36167, 0, 0, 0, 0, 0, 0, 0, 36175, 0, 36177, 36178, 36179, 36180, 36181, 36182, 0, 0, 36185, 0, 0, 36188, 0, 0, 0, 0, 0, 36194, 36195, 36196, 0, 0, 0, 36200, 0, 0, 0, 0, 0, 0, 36207, 0, 36209, 36210, 36211, 0, 36213, 0, 36215, 0, 36217, 36218, 36219, 0, 36221, 36222, 36223, 0, 0, 0, 36227, 36228, 0, 0, 0, 0, 36233, 0, 36235, 36236, 36237, 36238, 36239, 0, 36241, 36242, 36243, 36244, 36245, 36246, 0, 36248, 0, 36250, 36251, 0, 0, 36254, 0, 0, 36257, 0, 36259, 36260, 36261, 36262, 36263, 0, 36265, 0, 36267, 0, 0, 0, 0, 0, 0, 0, 36275, 36276, 36277, 36278, 36279, 36280, 36281, 0, 36283, 0, 0, 36286, 0, 0, 0, 36290, 0, 0, 36293, 0, 0, 36296, 36297, 36298, 36299, 36300, 36301, 0, 36303, 0, 36305, 0, 0, 0, 36309, 36310, 36311, 0, 0, 36314, 36315, 36316, 36317, 36318, 36319, 36320, 36321, 36322, 36323, 36324, 0, 0, 36327, 36328, 0, 36330, 36331, 0, 0, 0, 36335, 36336, 0, 0, 36339, 36340, 36341, 36342, 36343, 36344, 36345, 36346, 0, 36348, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p28E: 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 1, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 44955, 36793, 8240, 33161, 39601, 13205, 29869, 29928, 48579, 35691, 48579, 20617, 42387, 48579, 45034, 48579, 32621, 31346, 30483, 13096, 30484, 48579, 48579, 17298, 44794, 43985, 19521, 15590, 17109, 34288, 48579, 31944, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 38243, 48579, 48579, 46443, 30165, 41615, 16327, 21848, 36602, 48579, 48579, 48579, 48579, 48579, 14142, 48579, 48579, 41413, 25209, 8411, 48579, 48579, 48579, 48085, 17880, 48579, 13968, 48579, 13810, 41114, 48579, 33534, 48579, 33535, 42182, 32443, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 37343, 48579, 48579, 8990, 40879, 37232, 10551, 48579, 13527, 42997, 48579, 48579, 48579, 10321, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 21986, 19372, 48579, 46138, 8246, 48579, 36564, 48579, 48579, 48579, 48579, 29583, 48579, 48579, 48579, 48579, 15429, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 37408, 48579, 39429, 28583, 25625, 48579, 48579, 47872, 48579, 46529, 34827, 48158, 14966, 13748, 29865, 41758, 35187, 31890, 14177, 31019, 48579, 31079, 48579, 9399, 41384, 48579, 48579, 48579, 48579, 48579, 48579, 47777, 48579, 48579, 26870, 20679, 48579, 48579, 48579, 48579, 48579, 45911, 29788, 38787, 41886, 14766, 28790, 48579, 46979, 48579, 35610, 48579, 43091, 48579, 23995, 40918, 48579, 43092, 48579, 48579, 37807, 48579, 48579, 19396, 10373, 13239, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 44827, 48579, 38957, 48579, 25479, 35611, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 8262, 39302, 41894, 48579, 11958, 48579, 22513, 48579, 48579, 31627, 25763, 8326, 48579, 48579, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 36360, 0, 36362, 0, 0, 36365, 0, 36367, 0, 0, 0, 0, 0, 36373, 36374, 0, 0, 0, 0, 0, 0, 0, 36382, 0, 36384, 36385, 36386, 36387, 36388, 36389, 36390, 36391, 36392, 0, 36394, 36395, 0, 0, 0, 0, 0, 0, 36402, 36403, 36404, 36405, 36406, 0, 36408, 36409, 0, 0, 0, 36413, 36414, 36415, 0, 0, 36418, 0, 36420, 0, 0, 36423, 0, 36425, 0, 0, 0, 36429, 36430, 36431, 36432, 36433, 36434, 36435, 0, 36437, 36438, 0, 0, 0, 0, 36443, 0, 0, 36446, 36447, 36448, 0, 36450, 36451, 36452, 36453, 36454, 36455, 36456, 36457, 36458, 36459, 36460, 36461, 36462, 36463, 36464, 36465, 36466, 36467, 36468, 0, 0, 36471, 0, 0, 36474, 0, 36476, 36477, 36478, 36479, 0, 36481, 36482, 36483, 36484, 0, 36486, 36487, 36488, 36489, 36490, 36491, 36492, 36493, 36494, 36495, 36496, 36497, 36498, 36499, 36500, 36501, 0, 36503, 0, 0, 0, 36507, 36508, 0, 36510, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36522, 0, 36524, 0, 0, 36527, 36528, 36529, 36530, 36531, 36532, 0, 36534, 36535, 0, 0, 36538, 36539, 36540, 36541, 36542, 0, 0, 0, 0, 0, 0, 36549, 0, 36551, 0, 36553, 0, 36555, 0, 0, 36558, 0, 36560, 36561, 0, 36563, 36564, 0, 0, 0, 36568, 36569, 36570, 36571, 36572, 36573, 36574, 36575, 36576, 36577, 36578, 0, 36580, 0, 36582, 0, 0, 36585, 36586, 36587, 36588, 36589, 36590, 36591, 36592, 0, 0, 0, 36596, 0, 36598, 0, 36600, 36601, 0, 0, 0, 36605, 36606, 36607, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p28F: 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 45974, 11941, 38484, 40768, 10381, 17469, 22169, 48579, 10470, 9800, 10036, 46753, 41333, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 15970, 10432, 42485, 48579, 48579, 48579, 48579, 11207, 32065, 40293, 48579, 45983, 22745, 48579, 22188, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 32066, 48579, 27138, 42508, 48276, 30346, 48579, 34402, 48579, 48579, 48579, 48579, 34596, 9953, 48579, 48579, 13624, 48579, 17016, 26073, 41594, 48579, 48579, 48579, 48579, 28728, 8956, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 37193, 48579, 48579, 48579, 48579, 48579, 48579, 28619, 18550, 31059, 48579, 48579, 48579, 48579, 48579, 48579, 39318, 48579, 48579, 25404, 48579, 48579, 48579, 48579, 24681, 48579, 43170, 48579, 24465, 35042, 48579, 48579, 12321, 48579, 48579, 38132, 48579, 48579, 11694, 48579, 48579, 48579, 21559, 17909, 48579, 44263, 48579, 23181, 48579, 48579, 48579, 17425, 15902, 14662, 48579, 48579, 23190, 48579, 48579, 16777, 10794, 48579, 48579, 21561, 48579, 48579, 35405, 48579, 48579, 13245, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 35435, 48579, 48579, 48579, 31528, 48579, 48579, 48579, 16787, 48579, 48579, 48579, 48579, 48579, 48579, 47762, 48579, 48579, 36688, 48579, 48579, 45006, 48579, 48579, 48579, 48579, 48579, 48427, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 38487, 11986, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 47049, 48579, 48579, 48579, 48579, 34816, 48579, 13410, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 37892, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 10994, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 36608, 36609, 36610, 36611, 36612, 36613, 36614, 36615, 0, 0, 0, 0, 0, 0, 0, 36623, 0, 0, 0, 0, 0, 36629, 36630, 36631, 36632, 36633, 36634, 36635, 36636, 36637, 36638, 36639, 36640, 36641, 36642, 0, 0, 0, 36646, 36647, 36648, 36649, 0, 0, 0, 36653, 0, 0, 36656, 0, 36658, 36659, 36660, 36661, 36662, 36663, 36664, 36665, 36666, 36667, 36668, 0, 36670, 0, 0, 0, 0, 36675, 0, 36677, 36678, 36679, 36680, 0, 0, 36683, 36684, 0, 36686, 0, 0, 0, 36690, 36691, 36692, 36693, 0, 0, 36696, 36697, 36698, 36699, 36700, 36701, 36702, 0, 36704, 36705, 36706, 36707, 36708, 36709, 0, 0, 0, 36713, 36714, 36715, 36716, 36717, 36718, 0, 36720, 36721, 0, 36723, 36724, 36725, 36726, 0, 36728, 0, 36730, 0, 0, 36733, 36734, 0, 36736, 36737, 0, 36739, 36740, 0, 36742, 36743, 36744, 0, 0, 36747, 0, 36749, 0, 36751, 36752, 36753, 0, 0, 0, 36757, 36758, 0, 36760, 36761, 0, 0, 36764, 36765, 0, 36767, 36768, 0, 36770, 36771, 0, 36773, 36774, 36775, 36776, 36777, 36778, 36779, 0, 36781, 36782, 36783, 0, 36785, 36786, 36787, 0, 36789, 36790, 36791, 36792, 36793, 36794, 0, 36796, 36797, 0, 36799, 36800, 0, 36802, 36803, 36804, 36805, 36806, 0, 36808, 36809, 36810, 36811, 36812, 36813, 36814, 0, 0, 36817, 36818, 36819, 36820, 36821, 36822, 36823, 36824, 36825, 36826, 0, 36828, 36829, 36830, 36831, 0, 36833, 0, 36835, 36836, 36837, 36838, 36839, 36840, 36841, 36842, 36843, 36844, 0, 36846, 36847, 36848, 36849, 36850, 36851, 36852, 36853, 36854, 36855, 36856, 36857, 36858, 36859, 36860, 36861, 36862, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p290: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1, 1, 2, 2, 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 1, 2, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 32989, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 19650, 48579, 48579, 48579, 48579, 48579, 13131, 48579, 9580, 48579, 22875, 48579, 48579, 37904, 48579, 48579, 48579, 9514, 48579, 48579, 26521, 29235, 48579, 48579, 48579, 48579, 48579, 48579, 33154, 48579, 48579, 48579, 37913, 48579, 48579, 48579, 48579, 48579, 33157, 48579, 48579, 21137, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 37917, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 9462, 24258, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 45055, 48579, 48579, 48579, 48579, 45082, 48579, 48579, 10494, 48579, 48579, 33496, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 18112, 33459, 37263, 48579, 15081, 48579, 31601, 40758, 48579, 48579, 48579, 11332, 15452, 48579, 48579, 48579, 43124, 13406, 15277, 15278, 45515, 30391, 48579, 25326, 48579, 48579, 48579, 33460, 29482, 48579, 48579, 48579, 43432, 26471, 18486, 43546, 8300, 44204, 33821, 48579, 40283, 11206, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 33822, 13070, 48579, 48579, 48579, 43171, 48579, 10346, 16099, 25643, 30147, 45153, 41912, 27916, 48579, 35410, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 21418, 48579, 35126, 29412, 48579, 41467, 33293, 14001, 48579, 48579, 11405, 40308, 48579, 37134, 16174, 41148, 48579, 23420, 48579, 25352, 48579, 12316, 45706, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 43368, 35078, 48579, 44463, 37387, 37388, 48579, 48579, 7729, 32463, 9230, 12322, 48579, 45710, 18033, 48579, 48579, 48579, 18961, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 36864, 36865, 36866, 36867, 36868, 36869, 36870, 36871, 36872, 36873, 36874, 0, 36876, 36877, 36878, 36879, 36880, 36881, 36882, 36883, 36884, 36885, 0, 36887, 36888, 36889, 36890, 36891, 0, 36893, 0, 36895, 0, 36897, 36898, 0, 36900, 36901, 36902, 0, 36904, 36905, 0, 0, 36908, 36909, 36910, 36911, 36912, 36913, 0, 36915, 36916, 36917, 0, 36919, 36920, 36921, 36922, 36923, 0, 36925, 36926, 0, 36928, 36929, 36930, 36931, 36932, 36933, 36934, 36935, 36936, 36937, 36938, 36939, 0, 36941, 36942, 36943, 36944, 36945, 36946, 36947, 36948, 36949, 36950, 36951, 36952, 36953, 36954, 36955, 36956, 36957, 0, 0, 36960, 36961, 36962, 36963, 36964, 36965, 36966, 36967, 36968, 36969, 36970, 36971, 36972, 36973, 36974, 0, 36976, 36977, 36978, 36979, 0, 36981, 36982, 0, 36984, 36985, 0, 36987, 36988, 36989, 36990, 36991, 36992, 36993, 0, 0, 0, 36997, 0, 36999, 0, 0, 37002, 37003, 37004, 0, 0, 37007, 37008, 37009, 0, 0, 0, 0, 0, 0, 37016, 0, 37018, 37019, 37020, 0, 0, 37023, 37024, 37025, 0, 0, 0, 0, 0, 0, 0, 37033, 0, 0, 37036, 37037, 37038, 37039, 37040, 37041, 37042, 37043, 0, 0, 37046, 37047, 37048, 0, 37050, 0, 0, 0, 0, 0, 0, 0, 37058, 0, 37060, 37061, 37062, 37063, 37064, 37065, 37066, 0, 37068, 0, 0, 37071, 0, 0, 0, 37075, 37076, 0, 0, 37079, 0, 0, 0, 37083, 0, 37085, 0, 37087, 0, 0, 37090, 37091, 37092, 37093, 37094, 37095, 37096, 37097, 37098, 37099, 0, 0, 37102, 0, 0, 0, 37106, 37107, 0, 0, 0, 0, 37112, 0, 0, 37115, 37116, 37117, 0, 37119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p291: 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 48579, 48579, 48579, 48579, 48579, 25865, 48579, 48579, 48579, 48579, 25453, 32847, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 12478, 27149, 39314, 38293, 17270, 48056, 46492, 33316, 12108, 24529, 48579, 12997, 24725, 16323, 48579, 48579, 48579, 29646, 48579, 48579, 48579, 43626, 48579, 18071, 48579, 13834, 38661, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 30012, 17746, 48579, 25652, 27936, 14735, 26167, 45554, 9251, 13089, 26799, 48579, 47751, 26092, 29394, 13842, 9396, 48579, 48579, 48579, 48579, 10390, 26723, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 38909, 48579, 48579, 48579, 48579, 48579, 48579, 7443, 47181, 48579, 28293, 37442, 17694, 48579, 48579, 13846, 37556, 47182, 9706, 24569, 34749, 48579, 48579, 48579, 9707, 48579, 34959, 48579, 13847, 48579, 19140, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 20210, 29005, 12490, 15526, 19324, 19108, 11665, 48579, 43924, 33088, 36787, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 25604, 48579, 48579, 35373, 25386, 26669, 13092, 48579, 48579, 48579, 29439, 48579, 25387, 48579, 48579, 24608, 48579, 29029, 48579, 48579, 48579, 25111, 33561, 48579, 14803, 48579, 48579, 48579, 48579, 33562, 48579, 48579, 25397, 46006, 48579, 8965, 24264, 48579, 48579, 34972, 32482, 20221, 47959, 48579, 48579, 25400, 25401, 27243, 48579, 34764, 48579, 48579, 48579, 48579, 25405, 48579, 48579, 19197, 48579, 48579, 48579, 48579, 48579, 48579, 25424, 20224, 32130, 48579, 48579, 48579, 29009, 21398, 10374, 48579, 48579, 48579, 48579, 48579, 46372, 31698, 48579, 31702, 14261, 48579, 48579, 33329, 48579, 48579, 48579, 48579, 48579, 8147, 48579, 14674, 48579, 48579, 14767, 14703, 48579, 48579, 48579, 48579, 14622, 22930, 48579, 48579, 48579, 48579, 45254, 19048, 48579, 14709, 48579, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 37120, 37121, 37122, 37123, 37124, 0, 37126, 37127, 37128, 37129, 0, 0, 37132, 37133, 37134, 37135, 37136, 37137, 37138, 37139, 37140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37151, 0, 0, 0, 37155, 37156, 37157, 0, 37159, 37160, 37161, 0, 37163, 0, 37165, 0, 0, 37168, 37169, 37170, 37171, 37172, 37173, 37174, 0, 0, 37177, 0, 0, 0, 0, 0, 0, 0, 0, 37186, 0, 0, 0, 0, 0, 37192, 37193, 37194, 37195, 0, 0, 37198, 37199, 37200, 37201, 37202, 37203, 37204, 37205, 0, 37207, 37208, 37209, 37210, 37211, 37212, 0, 0, 37215, 0, 0, 0, 37219, 37220, 0, 0, 0, 0, 0, 0, 37227, 37228, 37229, 0, 37231, 0, 37233, 0, 37235, 0, 37237, 37238, 37239, 37240, 37241, 37242, 37243, 0, 0, 0, 0, 0, 0, 0, 37251, 0, 0, 0, 37255, 37256, 37257, 37258, 37259, 37260, 37261, 0, 37263, 37264, 0, 0, 0, 0, 37269, 37270, 37271, 0, 37273, 0, 37275, 37276, 0, 37278, 0, 37280, 37281, 37282, 0, 0, 37285, 0, 37287, 37288, 37289, 37290, 0, 37292, 37293, 0, 0, 37296, 0, 0, 37299, 37300, 0, 0, 0, 0, 37305, 37306, 0, 0, 0, 37310, 0, 37312, 37313, 37314, 37315, 0, 37317, 37318, 0, 37320, 37321, 37322, 37323, 37324, 37325, 0, 0, 0, 37329, 37330, 37331, 0, 0, 0, 37335, 37336, 37337, 37338, 37339, 0, 0, 37342, 0, 0, 37345, 37346, 0, 37348, 37349, 37350, 37351, 37352, 0, 37354, 0, 37356, 37357, 0, 0, 37360, 37361, 37362, 37363, 0, 0, 37366, 37367, 37368, 37369, 0, 0, 37372, 0, 37374, 37375, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p292: 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 2, 1, 2, 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 2, 1, 1, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 1, 2, 1, 2, 1, 1, 1, 2, 1, 1, 1, 48579, 13848, 48579, 48579, 48579, 48579, 29251, 28972, 29429, 12450, 12361, 7328, 48579, 36586, 10271, 7582, 27050, 28282, 48579, 48579, 9286, 44605, 39366, 26614, 48579, 48579, 30094, 48579, 13788, 48579, 12656, 48579, 48579, 40572, 28612, 17200, 11281, 34701, 26688, 48579, 48579, 48579, 48579, 48579, 37690, 43226, 13180, 41595, 48579, 38391, 35384, 48579, 7440, 23615, 28287, 48579, 31937, 27533, 29136, 9516, 9535, 48579, 48579, 48579, 23706, 36600, 42542, 48579, 28677, 48579, 34703, 48579, 48579, 48579, 48579, 11666, 48579, 20335, 48579, 48579, 15729, 48579, 48579, 48579, 20461, 17064, 48579, 45901, 48579, 26439, 48579, 48579, 19379, 16893, 48579, 48579, 48579, 20029, 19709, 48579, 48579, 41137, 48579, 14976, 48579, 48579, 48579, 8512, 30568, 48579, 48579, 44842, 7508, 12787, 48579, 48579, 14212, 14866, 48579, 48579, 21903, 28542, 37378, 48579, 33901, 15288, 39254, 32059, 30251, 37640, 25337, 26563, 47361, 8057, 48579, 44606, 48579, 48579, 48579, 48579, 8284, 26615, 48579, 19984, 48579, 42101, 48579, 22980, 20785, 48579, 9028, 48579, 48579, 48579, 26474, 16863, 14047, 47050, 48579, 48579, 48579, 46482, 14240, 47427, 7701, 48579, 48579, 48579, 46483, 14983, 13556, 28668, 9387, 13828, 33394, 33306, 8574, 48579, 48579, 48579, 47067, 46252, 9388, 48579, 48579, 48579, 22199, 41399, 48579, 48579, 48579, 39149, 48579, 47931, 7799, 42254, 11116, 35774, 30971, 48579, 28412, 44660, 14255, 20180, 43227, 39926, 48579, 28828, 48579, 48579, 8996, 48579, 48579, 48579, 48579, 17086, 40165, 13181, 48579, 48579, 21695, 35639, 13269, 15326, 27514, 34413, 41155, 36400, 44678, 48579, 48579, 40173, 15327, 47100, 28554, 41156, 42066, 48579, 15036, 48255, 47376, 41039, 48579, 48579, 48579, 47434, 48579, 23492, 48579, 43798, 15874, 23404, 48579, 14101, 37905, 26996, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 37376, 0, 37378, 37379, 37380, 37381, 0, 0, 0, 0, 0, 0, 37388, 0, 0, 0, 0, 0, 37394, 37395, 0, 0, 0, 0, 37400, 37401, 0, 37403, 0, 37405, 0, 37407, 37408, 0, 0, 0, 0, 0, 0, 37415, 37416, 37417, 37418, 37419, 0, 0, 0, 0, 37424, 0, 0, 37427, 0, 0, 0, 37431, 0, 0, 0, 0, 0, 37437, 37438, 37439, 0, 0, 0, 37443, 0, 37445, 0, 37447, 37448, 37449, 37450, 0, 37452, 0, 37454, 37455, 0, 37457, 37458, 37459, 0, 0, 37462, 0, 37464, 0, 37466, 37467, 0, 0, 37470, 37471, 37472, 0, 0, 37475, 37476, 0, 37478, 0, 37480, 37481, 37482, 0, 0, 37485, 37486, 0, 0, 0, 37490, 37491, 0, 0, 37494, 37495, 0, 0, 0, 37499, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37510, 0, 37512, 37513, 37514, 37515, 0, 0, 37518, 0, 37520, 0, 37522, 0, 0, 37525, 0, 37527, 37528, 37529, 0, 0, 0, 0, 37534, 37535, 37536, 0, 0, 0, 0, 37541, 37542, 37543, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37553, 37554, 37555, 0, 0, 0, 37559, 37560, 37561, 0, 0, 37564, 37565, 37566, 0, 37568, 0, 0, 0, 0, 0, 0, 37575, 0, 0, 0, 0, 0, 0, 37582, 0, 37584, 37585, 0, 37587, 37588, 37589, 37590, 0, 0, 0, 37594, 37595, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37605, 37606, 0, 0, 0, 0, 0, 0, 37613, 0, 0, 0, 0, 37618, 37619, 37620, 0, 37622, 0, 37624, 0, 0, 0, 37628, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p293: 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 1, 1, 2, 1, 1, 1, 2, 2, 1, 1, 2, 1, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 1, 2, 2, 1, 1, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 2, 1, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 2, 2, 1, 2, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 48579, 48579, 48579, 18516, 11118, 48579, 35646, 35783, 35647, 35784, 41249, 48579, 16215, 20075, 48579, 9252, 35785, 44894, 48579, 48579, 48579, 48579, 48579, 48579, 35786, 48579, 48579, 48579, 48579, 11463, 48579, 48579, 40603, 17692, 35592, 48579, 48579, 48579, 48579, 27939, 10983, 35416, 45555, 26100, 46037, 26486, 40974, 20206, 33527, 48579, 40975, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 20534, 48579, 48579, 48579, 8073, 26590, 48579, 36913, 39171, 48579, 48579, 32727, 48579, 34048, 47383, 48579, 20211, 15527, 12755, 48579, 48579, 43858, 21702, 48579, 43292, 7916, 48579, 33330, 35527, 48579, 13964, 40356, 48579, 48579, 48579, 18618, 48579, 48579, 48579, 32874, 28563, 47385, 16938, 48579, 26492, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 46710, 40984, 48579, 46711, 48579, 22251, 21704, 48579, 48579, 44880, 25899, 48579, 48579, 9273, 48579, 48579, 32729, 40365, 48579, 48579, 48579, 48579, 48579, 39047, 26406, 48579, 48579, 48579, 16014, 48579, 48579, 48389, 17334, 48579, 20603, 33037, 31530, 32385, 29457, 45007, 10339, 15290, 29502, 48579, 48579, 27052, 48579, 48579, 36178, 48579, 22733, 39127, 48579, 48579, 48579, 48579, 48579, 14048, 48579, 43172, 48579, 48579, 35492, 48579, 39264, 21975, 48579, 37893, 48579, 43208, 48579, 44661, 48579, 7800, 37393, 35775, 29463, 48579, 48579, 48579, 9033, 48579, 48579, 45206, 45207, 13766, 32934, 37906, 48579, 48579, 48579, 48579, 48579, 38031, 16928, 48579, 12220, 39278, 48579, 48579, 19194, 21998, 35417, 48579, 35522, 48579, 48579, 25794, 7804, 44699, 46619, 16935, 48579, 23170, 15821, 12384, 48579, 48579, 48579, 39571, 45813, 33331, 48579, 22650, 9332, 9267, 48579, 48579, 35528, 48579, 44718, 9333, 21535, 21536, 48579, 22058, 22263, 48579, 28136, 45809, 36160, 37981, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 37632, 37633, 37634, 0, 0, 37637, 0, 0, 0, 0, 0, 37643, 0, 0, 37646, 0, 0, 0, 37650, 37651, 37652, 37653, 37654, 37655, 0, 37657, 37658, 37659, 37660, 0, 37662, 37663, 0, 0, 0, 37667, 37668, 37669, 37670, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37681, 0, 37683, 37684, 37685, 37686, 37687, 37688, 37689, 37690, 37691, 37692, 37693, 0, 37695, 37696, 37697, 0, 0, 37700, 0, 0, 37703, 37704, 0, 37706, 0, 0, 37709, 0, 0, 0, 37713, 37714, 0, 0, 37717, 0, 0, 37720, 0, 0, 37723, 0, 0, 37726, 37727, 37728, 0, 37730, 37731, 37732, 0, 0, 0, 0, 37737, 0, 37739, 37740, 37741, 37742, 37743, 37744, 37745, 0, 0, 37748, 0, 37750, 0, 0, 37753, 37754, 0, 0, 37757, 37758, 0, 37760, 37761, 0, 0, 37764, 37765, 37766, 37767, 37768, 0, 0, 37771, 37772, 37773, 0, 37775, 37776, 0, 0, 37779, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37789, 37790, 0, 37792, 37793, 0, 37795, 0, 0, 37798, 37799, 37800, 37801, 37802, 0, 37804, 0, 37806, 37807, 0, 37809, 0, 0, 37812, 0, 37814, 0, 37816, 0, 37818, 0, 0, 0, 0, 37823, 37824, 37825, 0, 37827, 37828, 0, 0, 0, 0, 0, 37834, 37835, 37836, 37837, 37838, 0, 0, 37841, 0, 0, 37844, 37845, 0, 0, 0, 37849, 0, 37851, 37852, 0, 0, 0, 0, 0, 37858, 0, 0, 0, 37862, 37863, 37864, 0, 0, 0, 37868, 0, 0, 0, 37872, 37873, 0, 37875, 0, 0, 0, 0, 37880, 0, 0, 37883, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p294: 1, 1, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 2, 1, 1, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 1, 1, 2, 1, 2, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 2, 1, 1, 1, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 1, 2, 1, 2, 2, 1, 1, 1, 2, 1, 2, 2, 1, 2, 1, 1, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 39250, 40264, 48579, 48579, 48579, 33080, 19466, 48579, 48579, 40343, 48579, 48579, 13852, 48116, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 44890, 31604, 15291, 29626, 29458, 48579, 43550, 48579, 17844, 48331, 48579, 16168, 13470, 17572, 38381, 48579, 29391, 48579, 48579, 35326, 22479, 28829, 17486, 15058, 14256, 42528, 48579, 48579, 36781, 13476, 46269, 33185, 48579, 48579, 48579, 27940, 35354, 48579, 23920, 48579, 30387, 14116, 47952, 42545, 48579, 48579, 48579, 39734, 16746, 32565, 25432, 48579, 48579, 7598, 48579, 48579, 9855, 48579, 13952, 31743, 22903, 40760, 18580, 42162, 46467, 36814, 8281, 48579, 48579, 7496, 48579, 22449, 48579, 22906, 29517, 44172, 7581, 27074, 27898, 48579, 48579, 48579, 48579, 48579, 15376, 31628, 23448, 13521, 35992, 48579, 48579, 31090, 42349, 38083, 18203, 27906, 17571, 41143, 48579, 8532, 30185, 48579, 12789, 48579, 46424, 48579, 34138, 22473, 9681, 48579, 48579, 40770, 46425, 48579, 47515, 48579, 48579, 48579, 48579, 19049, 10802, 48579, 48579, 17960, 29023, 28817, 41913, 48579, 10993, 15386, 16718, 30456, 48579, 16037, 36817, 48579, 48579, 48579, 35995, 31092, 48579, 48579, 21607, 40785, 30706, 48579, 46484, 48579, 48579, 48579, 31924, 48579, 14127, 48579, 48579, 19070, 17983, 31678, 48579, 10301, 48579, 48579, 15496, 48579, 17850, 38873, 38490, 26774, 48579, 48579, 36320, 48579, 48579, 17851, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 9217, 48579, 31577, 16038, 48579, 48579, 15315, 23237, 48579, 48579, 48579, 48579, 48579, 8903, 21428, 22480, 16795, 48579, 15849, 40794, 7473, 45020, 38656, 42791, 21317, 48579, 26075, 32245, 37191, 48579, 19882, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 21488, 22207, 30024, 23326, 48579, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 37890, 37891, 37892, 0, 0, 37895, 37896, 0, 37898, 37899, 0, 0, 37902, 37903, 37904, 37905, 37906, 37907, 37908, 37909, 37910, 37911, 0, 0, 0, 0, 0, 37917, 0, 37919, 0, 0, 37922, 0, 0, 0, 0, 37927, 0, 37929, 37930, 0, 0, 0, 0, 0, 0, 0, 37938, 37939, 0, 0, 0, 0, 37944, 37945, 37946, 0, 0, 37949, 0, 37951, 0, 0, 0, 0, 37956, 37957, 37958, 0, 0, 0, 0, 37963, 37964, 0, 37966, 37967, 0, 37969, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37979, 37980, 0, 37982, 0, 37984, 0, 0, 0, 0, 0, 0, 37991, 37992, 37993, 37994, 37995, 0, 0, 0, 0, 0, 38001, 38002, 0, 0, 0, 0, 0, 0, 0, 38010, 0, 0, 38013, 0, 38015, 0, 38017, 0, 0, 0, 38021, 38022, 0, 0, 38025, 0, 38027, 38028, 38029, 38030, 0, 0, 38033, 38034, 0, 0, 0, 0, 38039, 0, 0, 0, 0, 38044, 0, 0, 38047, 38048, 38049, 0, 0, 38052, 38053, 0, 0, 0, 38057, 0, 38059, 38060, 38061, 0, 38063, 0, 38065, 38066, 0, 0, 0, 38070, 0, 38072, 38073, 0, 38075, 0, 0, 0, 0, 38080, 38081, 0, 38083, 38084, 0, 38086, 38087, 38088, 38089, 38090, 38091, 38092, 38093, 38094, 38095, 0, 38097, 0, 0, 38100, 38101, 0, 0, 38104, 38105, 38106, 38107, 38108, 0, 0, 0, 0, 38113, 0, 0, 0, 0, 0, 0, 0, 38121, 0, 0, 0, 38125, 0, 38127, 38128, 38129, 38130, 38131, 38132, 38133, 38134, 38135, 38136, 38137, 0, 0, 0, 0, 38142, 38143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p295: 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 1, 2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 2, 2, 1, 1, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 2, 1, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 37534, 19092, 13920, 44893, 21004, 48579, 16924, 15852, 30263, 27081, 47703, 17439, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 43874, 31928, 48579, 24065, 7498, 29856, 38277, 48579, 48579, 31610, 48579, 31580, 27613, 13504, 27298, 45886, 48579, 31684, 42800, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 7837, 48579, 48579, 21978, 48579, 45556, 40976, 23631, 26522, 26523, 29200, 8102, 48579, 30288, 40977, 48579, 48579, 48579, 7624, 48579, 48579, 48579, 48579, 48579, 17962, 48579, 48579, 17963, 45951, 48579, 33343, 15853, 48579, 30207, 25006, 48579, 48579, 48579, 48579, 37537, 41051, 48579, 48579, 48579, 48579, 48579, 23218, 48579, 48579, 14278, 17391, 33332, 48579, 48579, 12492, 48579, 48579, 48579, 48579, 48579, 41052, 48579, 14283, 15614, 48579, 12600, 48579, 27223, 42630, 28931, 48579, 30068, 48579, 48579, 48579, 9583, 48579, 48579, 48579, 48579, 44930, 48579, 14287, 28866, 48579, 48579, 43514, 48579, 48579, 31305, 48579, 17860, 25406, 48579, 9920, 43778, 48579, 48579, 48579, 48579, 16630, 48579, 28736, 40771, 35934, 21265, 48579, 48579, 48579, 29616, 48579, 24905, 48579, 48579, 8156, 48579, 48579, 40417, 37267, 10228, 15651, 48579, 18117, 37757, 48579, 48579, 15280, 29551, 48579, 28346, 41326, 41242, 48579, 48579, 25569, 25338, 41244, 31995, 17470, 42759, 17354, 48579, 15292, 7698, 42760, 48579, 9192, 48579, 48579, 48579, 17845, 24467, 48579, 48579, 48579, 33065, 38849, 48579, 48579, 48579, 34391, 29965, 18493, 42770, 9205, 9218, 28440, 31925, 48579, 48579, 38006, 10354, 44060, 48579, 38103, 18953, 33074, 48579, 48579, 48579, 17984, 35164, 17369, 29461, 48579, 14635, 48579, 25517, 47374, 29812, 48579, 24506, 48579, 48579, 11461, 38888, 46562, 48579, 8306, 46587, 35503, 41811, 48579, 48579, 48579, 48579, 31633, 38657, 24872, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 38149, 0, 0, 0, 0, 0, 0, 38156, 38157, 38158, 38159, 38160, 38161, 38162, 38163, 0, 0, 38166, 0, 0, 0, 0, 38171, 38172, 0, 38174, 0, 0, 0, 0, 0, 38180, 0, 0, 38183, 38184, 38185, 38186, 38187, 38188, 38189, 0, 38191, 38192, 0, 38194, 0, 0, 0, 0, 0, 0, 0, 38202, 0, 0, 38205, 38206, 38207, 0, 38209, 38210, 38211, 38212, 38213, 0, 38215, 38216, 0, 0, 38219, 0, 0, 38222, 0, 0, 38225, 38226, 38227, 38228, 0, 0, 38231, 38232, 38233, 38234, 38235, 0, 38237, 38238, 0, 0, 0, 38242, 38243, 0, 38245, 38246, 38247, 38248, 38249, 0, 38251, 0, 0, 38254, 0, 38256, 0, 0, 0, 38260, 0, 38262, 38263, 38264, 0, 38266, 38267, 38268, 38269, 0, 38271, 0, 0, 38274, 38275, 0, 38277, 38278, 0, 38280, 0, 0, 38283, 0, 0, 38286, 38287, 38288, 38289, 0, 38291, 0, 0, 0, 0, 38296, 38297, 38298, 0, 38300, 0, 38302, 38303, 0, 38305, 38306, 0, 0, 0, 0, 38311, 0, 0, 38314, 38315, 0, 0, 38318, 0, 0, 0, 38322, 38323, 0, 0, 0, 0, 0, 0, 0, 38331, 0, 0, 0, 38335, 0, 38337, 38338, 38339, 0, 0, 38342, 38343, 38344, 0, 0, 38347, 38348, 38349, 0, 0, 0, 0, 0, 0, 0, 0, 38358, 38359, 0, 0, 0, 38363, 0, 0, 0, 38367, 38368, 38369, 0, 0, 0, 0, 38374, 0, 38376, 0, 0, 0, 38380, 0, 38382, 38383, 0, 0, 0, 38387, 0, 0, 0, 0, 38392, 38393, 38394, 38395, 0, 0, 0, 38399, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p296: 1, 1, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 1, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 1, 1, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 46165, 24846, 48579, 48579, 48579, 20848, 48579, 17856, 43968, 48579, 23464, 18072, 48579, 44927, 17950, 42529, 48579, 43767, 41105, 44067, 48579, 48579, 48579, 48579, 32247, 48579, 48579, 48579, 36114, 35648, 48579, 24550, 35174, 24551, 48579, 48579, 44686, 48579, 48579, 43260, 48579, 48579, 48579, 48579, 48579, 40681, 7563, 37147, 35355, 34725, 48579, 44700, 48579, 14993, 48579, 48579, 48579, 35357, 37200, 44701, 46569, 46570, 48579, 36237, 48579, 48579, 48579, 48579, 25544, 48579, 10621, 35432, 33233, 48579, 48579, 48579, 48579, 48579, 48579, 16466, 15001, 25118, 29979, 48579, 48579, 48579, 24632, 48579, 25700, 11145, 39955, 17861, 40366, 33839, 48579, 48579, 25707, 17993, 41088, 15007, 48579, 7687, 9136, 36214, 35272, 46143, 8777, 35146, 37175, 35625, 39902, 17803, 33224, 48579, 14683, 48579, 48579, 48579, 48579, 28978, 26800, 48579, 48579, 48579, 48579, 18619, 46713, 48579, 48579, 48579, 42998, 48579, 44513, 48579, 48579, 42721, 44937, 10723, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 43480, 28976, 32750, 48579, 48579, 48579, 28162, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 36532, 48579, 7668, 48579, 48579, 48579, 48579, 14365, 46543, 14213, 30282, 19410, 28504, 48579, 21477, 20030, 48579, 48579, 15652, 48579, 48579, 48579, 25327, 48579, 48448, 48579, 48579, 8164, 48579, 48579, 48579, 48579, 48579, 48579, 34531, 42857, 29272, 48579, 48579, 48579, 28391, 34384, 48579, 26685, 34385, 48579, 36369, 48579, 48579, 48579, 48579, 48579, 48579, 16165, 48579, 48579, 48579, 48579, 24060, 8018, 44777, 48502, 23753, 40664, 48579, 48579, 45315, 10642, 20164, 26931, 20036, 44626, 48579, 48579, 44627, 42771, 48579, 48579, 48579, 26730, 45316, 48579, 47797, 36381, 48579, 48579, 39128, 21763, 45359, 26060, 36229, 48579, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 38402, 38403, 38404, 0, 38406, 0, 0, 38409, 0, 0, 38412, 0, 0, 0, 38416, 0, 0, 0, 38420, 38421, 38422, 38423, 0, 38425, 38426, 38427, 0, 0, 38430, 0, 0, 0, 38434, 38435, 0, 38437, 38438, 0, 38440, 38441, 38442, 38443, 38444, 0, 0, 0, 0, 0, 38450, 0, 38452, 0, 38454, 38455, 38456, 0, 0, 0, 0, 0, 38462, 0, 38464, 38465, 38466, 38467, 0, 38469, 0, 0, 0, 38473, 38474, 38475, 38476, 38477, 38478, 0, 0, 0, 0, 38483, 38484, 38485, 0, 38487, 0, 0, 0, 0, 0, 0, 38494, 38495, 0, 0, 0, 0, 38500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38513, 0, 38515, 38516, 38517, 38518, 0, 0, 38521, 38522, 38523, 38524, 0, 0, 38527, 38528, 38529, 0, 38531, 0, 38533, 38534, 0, 0, 0, 38538, 38539, 38540, 38541, 38542, 38543, 38544, 38545, 38546, 38547, 38548, 0, 0, 0, 38552, 38553, 38554, 0, 38556, 38557, 38558, 38559, 38560, 38561, 38562, 0, 38564, 0, 38566, 38567, 38568, 38569, 0, 0, 0, 0, 0, 0, 38576, 0, 0, 38579, 38580, 0, 38582, 38583, 38584, 0, 38586, 0, 38588, 38589, 0, 38591, 38592, 38593, 38594, 38595, 38596, 0, 0, 0, 38600, 38601, 38602, 0, 0, 38605, 0, 0, 38608, 0, 38610, 38611, 38612, 38613, 38614, 38615, 0, 38617, 38618, 38619, 38620, 0, 0, 0, 0, 0, 0, 38627, 38628, 0, 0, 0, 0, 0, 0, 38635, 38636, 0, 0, 38639, 38640, 38641, 0, 0, 38644, 0, 0, 38647, 38648, 0, 0, 0, 0, 0, 38654, 38655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p297: 1, 1, 2, 1, 2, 2, 1, 1, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 1, 47801, 25353, 48579, 21925, 48579, 48579, 19453, 21997, 48579, 48579, 48045, 48579, 44943, 13411, 48579, 48579, 48579, 48579, 28311, 48579, 48579, 48579, 10979, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 7511, 48579, 48579, 48579, 16069, 48579, 9108, 13368, 38008, 48579, 48579, 48579, 48579, 32243, 22644, 48579, 48579, 29893, 22481, 15322, 43922, 48579, 37140, 36976, 44176, 42173, 48579, 42390, 48579, 48579, 41930, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 39487, 48579, 36393, 48579, 35504, 48579, 48579, 48579, 11657, 48579, 48579, 48579, 40849, 38658, 9478, 44662, 48579, 48579, 10057, 39276, 48579, 22588, 9581, 9769, 31936, 48579, 48579, 12166, 48579, 35349, 48579, 48579, 18408, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 38445, 44782, 48579, 48579, 48579, 48579, 20571, 39786, 45798, 33155, 27816, 48579, 33669, 9628, 35415, 11410, 27299, 47480, 10981, 19898, 10982, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 24734, 48579, 48579, 48579, 48579, 17172, 48579, 48579, 48579, 48579, 48579, 13879, 39788, 10533, 33670, 24570, 18793, 48579, 48579, 12754, 48579, 48579, 24850, 48579, 48579, 48579, 48579, 48579, 48579, 45236, 48579, 48579, 48579, 19319, 25176, 48579, 48579, 13645, 17387, 43855, 44929, 17102, 25383, 48579, 24774, 48579, 7626, 12519, 43284, 29006, 33629, 48579, 40462, 48579, 48579, 12223, 44702, 9486, 38399, 9813, 9265, 48579, 20330, 48579, 48579, 48579, 48579, 48579, 48579, 27190, 38037, 27822, 48579, 48579, 48579, 48579, 34821, 21016, 34880, 19327, 48579, 48579, 11591, 48579, 25697, 18534, 48579, 37328, 48579, 48579, 44388, 48579, 48579, 10106, 43864, 19332, 48579, 23691, 48579, 48579, 48579, 48579, 28131, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 38658, 0, 38660, 38661, 0, 0, 38664, 38665, 0, 38667, 0, 0, 38670, 38671, 38672, 38673, 0, 38675, 38676, 38677, 0, 38679, 38680, 38681, 38682, 38683, 38684, 38685, 38686, 0, 38688, 38689, 38690, 0, 38692, 0, 0, 0, 38696, 38697, 38698, 38699, 0, 0, 38702, 38703, 0, 0, 0, 0, 38708, 0, 0, 0, 0, 38713, 0, 38715, 38716, 0, 38718, 38719, 38720, 38721, 38722, 38723, 38724, 38725, 38726, 38727, 0, 38729, 0, 38731, 0, 38733, 38734, 38735, 0, 38737, 38738, 38739, 0, 0, 0, 0, 38744, 38745, 0, 0, 38748, 0, 0, 0, 0, 38753, 38754, 0, 38756, 0, 38758, 38759, 0, 38761, 38762, 38763, 38764, 38765, 38766, 38767, 38768, 38769, 38770, 38771, 38772, 38773, 38774, 0, 0, 38777, 38778, 38779, 38780, 0, 0, 0, 0, 0, 38786, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38796, 38797, 38798, 38799, 38800, 38801, 38802, 38803, 38804, 38805, 38806, 38807, 38808, 0, 38810, 38811, 38812, 38813, 0, 38815, 38816, 38817, 38818, 38819, 0, 0, 0, 0, 0, 0, 38826, 38827, 0, 38829, 38830, 0, 38832, 38833, 38834, 38835, 38836, 38837, 0, 38839, 38840, 38841, 0, 0, 38844, 38845, 0, 0, 0, 0, 0, 0, 38852, 0, 38854, 0, 0, 0, 0, 0, 38860, 0, 38862, 38863, 0, 0, 0, 0, 0, 0, 38870, 0, 38872, 38873, 38874, 38875, 38876, 38877, 0, 0, 0, 38881, 38882, 38883, 38884, 0, 0, 0, 0, 38889, 38890, 0, 38892, 0, 0, 38895, 0, 38897, 38898, 0, 38900, 38901, 0, 0, 0, 38905, 0, 38907, 38908, 38909, 38910, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p298: 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 1, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 2, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 1, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 7644, 15633, 42832, 20010, 48579, 12185, 13355, 41380, 32559, 21989, 37127, 40832, 35121, 48579, 9612, 10515, 48579, 13328, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 17125, 48579, 48579, 48579, 48579, 38558, 48579, 48579, 48579, 48579, 48579, 48579, 30711, 48579, 19467, 48579, 48579, 48579, 48579, 48579, 23212, 37909, 48579, 48579, 48579, 48579, 48579, 48579, 34447, 15337, 48579, 37150, 48579, 8896, 48579, 35930, 17401, 30020, 48579, 48579, 48579, 44319, 35935, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 39724, 48579, 40678, 48579, 48579, 48579, 48579, 38297, 17173, 29656, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 35973, 48579, 8909, 39731, 48579, 48579, 42882, 48579, 48579, 29989, 18572, 28028, 7669, 48579, 14594, 48579, 48579, 48579, 13320, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 14834, 48579, 48579, 21075, 48579, 48579, 48579, 35593, 48579, 48579, 48579, 48579, 48579, 37679, 15909, 48579, 48579, 14835, 48579, 37382, 48579, 38201, 16526, 13938, 48579, 46244, 11678, 42311, 48579, 7883, 9385, 27917, 48579, 30221, 48579, 48579, 15981, 48579, 48579, 25503, 48579, 48579, 32460, 48579, 48579, 48579, 48579, 48579, 48579, 15657, 48579, 18215, 27982, 48579, 48579, 40666, 18725, 15316, 18934, 48579, 32074, 20979, 37324, 44342, 27923, 47289, 21611, 48579, 34569, 23084, 31768, 25073, 15497, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 40964, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 25229, 48579, 28830, 48579, 29741, 48579, 15505, 9392, 43228, 48579, 48579, 9231, 48579, 14099, 48579, 48579, 48579, 48579, 48579, 46259, 48579, 24507, 48579, 48579, 37110, 12216, 48579, 26085, 41598, 13416, 31461, 37652, 27769, 48418, 15516, 32015, 8206, 7586, 31201, 48579, 48579, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 38916, 0, 0, 0, 0, 0, 0, 0, 0, 38925, 0, 0, 38928, 0, 38930, 38931, 38932, 38933, 38934, 38935, 38936, 38937, 0, 38939, 38940, 38941, 38942, 0, 38944, 38945, 38946, 38947, 38948, 38949, 0, 38951, 0, 38953, 38954, 38955, 38956, 38957, 0, 0, 38960, 38961, 38962, 38963, 38964, 38965, 0, 0, 38968, 0, 38970, 0, 38972, 0, 0, 0, 38976, 38977, 38978, 0, 0, 38981, 38982, 38983, 38984, 38985, 38986, 38987, 0, 38989, 0, 38991, 38992, 38993, 38994, 0, 0, 0, 38998, 38999, 39000, 39001, 39002, 39003, 39004, 0, 39006, 0, 0, 39009, 39010, 0, 39012, 39013, 0, 0, 0, 0, 39018, 0, 39020, 39021, 39022, 0, 39024, 39025, 39026, 39027, 39028, 39029, 39030, 0, 39032, 39033, 0, 39035, 39036, 39037, 0, 39039, 39040, 39041, 39042, 39043, 0, 0, 39046, 39047, 0, 39049, 0, 39051, 0, 0, 0, 39055, 0, 0, 0, 39059, 0, 0, 0, 39063, 0, 39065, 39066, 0, 39068, 39069, 0, 39071, 39072, 0, 39074, 39075, 39076, 39077, 39078, 39079, 0, 39081, 0, 0, 39084, 39085, 0, 0, 0, 0, 39090, 0, 0, 0, 0, 0, 0, 0, 39098, 0, 0, 0, 0, 0, 39104, 39105, 39106, 39107, 39108, 39109, 39110, 39111, 39112, 39113, 0, 39115, 39116, 39117, 39118, 39119, 39120, 39121, 39122, 39123, 39124, 39125, 0, 39127, 0, 39129, 0, 39131, 0, 0, 0, 39135, 39136, 0, 39138, 0, 39140, 39141, 39142, 39143, 39144, 0, 39146, 0, 39148, 39149, 0, 0, 39152, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39165, 39166, 39167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p299: 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 48579, 32387, 48579, 48579, 48579, 48579, 48579, 48579, 32365, 18448, 39675, 23364, 48579, 48579, 48579, 12047, 48579, 48579, 42798, 48579, 48579, 48579, 10691, 48257, 28402, 10619, 13737, 43875, 46288, 48579, 36027, 42070, 40176, 41046, 48579, 13767, 34702, 39493, 39494, 48579, 48579, 14112, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 23423, 48579, 48579, 48579, 48579, 48579, 38122, 43972, 44368, 48579, 48579, 36324, 48579, 21138, 48579, 36117, 30645, 48579, 13002, 36194, 26212, 45998, 38174, 19908, 7523, 29236, 30885, 48579, 48579, 48579, 34161, 35703, 48579, 48579, 27941, 48579, 48579, 48579, 44073, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 45718, 48579, 48579, 42265, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 10958, 24243, 44379, 10071, 42626, 48579, 48579, 10908, 48579, 24244, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 37095, 48579, 48352, 48579, 48579, 39505, 48579, 48579, 48579, 48579, 39176, 48579, 8910, 17272, 30655, 33186, 48579, 14697, 48579, 33631, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 18554, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 7957, 44386, 44387, 48579, 19674, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 22999, 48210, 48579, 48579, 48579, 48579, 48579, 48579, 39696, 27194, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 24633, 47134, 14543, 25120, 9463, 13659, 16724, 40631, 24271, 30829, 48579, 48579, 22256, 37330, 48579, 21952, 39956, 48579, 48579, 48579, 48579, 32127, 48579, 48579, 48579, 47675, 48579, 48579, 48579, 48579, 22264, 48579, 48579, 48579, 48579, 21046, 48579, 47332, 39594, 25614, 42080, 32444, 42967, 25033, 9075, 19143, 19767, 13455, 47249, 32174, 20896, 48579, 48579, 48579, 48579, 21720, 48579, 8202, 48579, 48579, 8321, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 39168, 0, 39170, 39171, 39172, 39173, 39174, 39175, 0, 0, 0, 0, 39180, 39181, 39182, 0, 39184, 39185, 0, 39187, 39188, 39189, 0, 0, 0, 0, 0, 0, 0, 39197, 0, 0, 0, 0, 39202, 0, 0, 0, 0, 39207, 39208, 0, 39210, 39211, 39212, 39213, 39214, 39215, 39216, 39217, 0, 39219, 39220, 39221, 39222, 39223, 0, 0, 0, 39227, 39228, 0, 39230, 0, 39232, 0, 0, 39235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39245, 39246, 39247, 0, 0, 39250, 39251, 0, 39253, 39254, 39255, 0, 39257, 39258, 39259, 39260, 39261, 39262, 39263, 0, 39265, 39266, 0, 39268, 39269, 39270, 39271, 39272, 39273, 39274, 0, 0, 0, 0, 0, 39280, 39281, 0, 39283, 0, 39285, 39286, 39287, 39288, 39289, 39290, 39291, 39292, 0, 39294, 0, 39296, 39297, 0, 39299, 39300, 39301, 39302, 0, 39304, 0, 0, 0, 0, 39309, 0, 39311, 0, 39313, 39314, 39315, 39316, 39317, 39318, 39319, 0, 39321, 39322, 39323, 39324, 39325, 39326, 39327, 0, 0, 0, 39331, 0, 39333, 39334, 39335, 39336, 39337, 39338, 39339, 39340, 39341, 39342, 39343, 39344, 0, 0, 39347, 39348, 39349, 39350, 39351, 39352, 0, 0, 39355, 39356, 39357, 39358, 39359, 39360, 39361, 39362, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39373, 39374, 0, 0, 39377, 0, 0, 39380, 39381, 39382, 39383, 0, 39385, 39386, 39387, 0, 39389, 39390, 39391, 39392, 0, 39394, 39395, 39396, 39397, 0, 39399, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39414, 39415, 39416, 39417, 0, 39419, 0, 39421, 39422, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p29A: 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 1, 2, 1, 2, 2, 1, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 15956, 11536, 48579, 31029, 35148, 38071, 10584, 25758, 44287, 23416, 31030, 12989, 35692, 45975, 48579, 14508, 25094, 36739, 19380, 30930, 18185, 48579, 48579, 44289, 30773, 44290, 37460, 48579, 7724, 30571, 33038, 31271, 41535, 39541, 48579, 48579, 48579, 48579, 48579, 48579, 11603, 14595, 48579, 23350, 16962, 32302, 14221, 31756, 48579, 48579, 26564, 22912, 42307, 48579, 48579, 32303, 11139, 20072, 48579, 47516, 48579, 13789, 37481, 48579, 28393, 48579, 48579, 48579, 41672, 36897, 48579, 48579, 48579, 48579, 48579, 40542, 16969, 30097, 48579, 48579, 48579, 44464, 17735, 48579, 47921, 48579, 48579, 33764, 44467, 48579, 48579, 19883, 48579, 31195, 34818, 11583, 48341, 24095, 28516, 48579, 37472, 45711, 48579, 12479, 48579, 48579, 48579, 48579, 48579, 48579, 13722, 8753, 20849, 30881, 17688, 11008, 41684, 48579, 41938, 48579, 48579, 48579, 35087, 36292, 42319, 48579, 22562, 48579, 47766, 16929, 7283, 17174, 48579, 48579, 48579, 48579, 35649, 40978, 8816, 48579, 15059, 32019, 26801, 48579, 17059, 48579, 48579, 48579, 48579, 48579, 8623, 22238, 11413, 48579, 48579, 30361, 48579, 48579, 48579, 43285, 48579, 48579, 30987, 43294, 14279, 25388, 48579, 8628, 48579, 48579, 48579, 48579, 48579, 19328, 27834, 48579, 48579, 41289, 48579, 48579, 41970, 48579, 48579, 48579, 24634, 48579, 35977, 48579, 48579, 48579, 26262, 48579, 22431, 26926, 39903, 48579, 48579, 48579, 48579, 7295, 48579, 48579, 35695, 48579, 48579, 27056, 48579, 17012, 48579, 48579, 48579, 15846, 28352, 17487, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 32305, 48579, 48579, 48579, 48579, 9629, 33258, 48579, 48579, 48579, 48579, 29822, 48579, 48579, 48579, 48579, 48579, 48579, 40081, 39957, 21738, 48579, 48579, 48579, 48579, 10592, 28388, 48579, 48579, 48579, 48579, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 39426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39438, 0, 0, 0, 0, 0, 0, 39445, 39446, 0, 0, 0, 0, 39451, 0, 0, 0, 0, 0, 0, 39458, 39459, 39460, 39461, 39462, 39463, 0, 0, 39466, 0, 0, 0, 0, 0, 39472, 39473, 0, 0, 0, 39477, 39478, 0, 0, 0, 39482, 0, 39484, 0, 0, 39487, 0, 39489, 39490, 39491, 0, 0, 39494, 39495, 39496, 39497, 39498, 0, 0, 0, 39502, 39503, 39504, 0, 0, 39507, 0, 39509, 39510, 0, 0, 39513, 39514, 0, 39516, 0, 0, 0, 0, 0, 0, 39523, 0, 0, 39526, 0, 39528, 39529, 39530, 39531, 39532, 39533, 0, 0, 0, 0, 0, 0, 0, 39541, 0, 39543, 39544, 39545, 0, 0, 0, 39549, 0, 39551, 0, 0, 0, 0, 39556, 39557, 39558, 39559, 0, 0, 0, 39563, 0, 0, 0, 39567, 0, 39569, 39570, 39571, 39572, 39573, 0, 0, 0, 39577, 39578, 0, 39580, 39581, 39582, 0, 39584, 39585, 0, 0, 0, 0, 39590, 0, 39592, 39593, 39594, 39595, 39596, 0, 0, 39599, 39600, 0, 39602, 39603, 0, 39605, 39606, 39607, 0, 39609, 0, 39611, 39612, 39613, 0, 39615, 0, 0, 0, 39619, 39620, 39621, 39622, 0, 39624, 39625, 0, 39627, 39628, 0, 39630, 0, 39632, 39633, 39634, 0, 0, 0, 39638, 39639, 39640, 39641, 39642, 39643, 39644, 39645, 39646, 39647, 0, 39649, 39650, 39651, 39652, 0, 0, 39655, 39656, 39657, 39658, 0, 39660, 39661, 39662, 39663, 39664, 39665, 0, 0, 0, 39669, 39670, 39671, 39672, 0, 0, 39675, 39676, 39677, 39678, 39679, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p29B: 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 28452, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 28037, 48579, 33701, 48579, 12993, 48579, 48579, 25345, 48579, 46428, 42312, 48579, 15487, 31047, 31761, 21758, 9057, 26844, 45777, 35815, 48579, 48579, 48579, 10945, 48579, 48579, 48579, 48579, 48579, 48579, 45820, 48579, 34146, 43936, 48579, 31769, 12660, 36470, 47771, 48579, 43555, 48579, 28396, 9109, 23086, 46855, 14002, 11775, 8021, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 24206, 48579, 48579, 21769, 38212, 25082, 48579, 48579, 38344, 34269, 28726, 26776, 21532, 48579, 48579, 48579, 48579, 40671, 48579, 48579, 48579, 48579, 38327, 48579, 12664, 48579, 38897, 7479, 12217, 48233, 17381, 11462, 8339, 48579, 13474, 48579, 46058, 48579, 48579, 48579, 41440, 48579, 48579, 12845, 19207, 48579, 48579, 48579, 27674, 48579, 48579, 15518, 48579, 8026, 22728, 26849, 32528, 48205, 30883, 39204, 35177, 40679, 28180, 48579, 48579, 48579, 26661, 48579, 48579, 48579, 48579, 45669, 9969, 33831, 38346, 48579, 48579, 48579, 48579, 7284, 7956, 17452, 48579, 33231, 35650, 36483, 41540, 48579, 9064, 32726, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 33402, 38298, 48579, 48579, 7565, 48579, 47732, 48579, 30013, 35418, 42627, 35178, 13505, 35179, 26384, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 14802, 48500, 48579, 28414, 12728, 46781, 12087, 24963, 19722, 9114, 11830, 10623, 9331, 48579, 33134, 45375, 48579, 48579, 48579, 48579, 48579, 20803, 48579, 48579, 42377, 25949, 48579, 9559, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 28565, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 21019, 30365, 47752, 45380, 48579, 48579, 48579, 48579, 48579, 48579, 24639, 48579, 48579, 23487, 48579, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 39681, 39682, 39683, 39684, 39685, 39686, 39687, 39688, 39689, 39690, 39691, 39692, 0, 39694, 0, 39696, 0, 39698, 39699, 0, 39701, 0, 0, 39704, 0, 0, 0, 0, 0, 0, 0, 0, 39713, 39714, 39715, 0, 39717, 39718, 39719, 39720, 39721, 39722, 0, 39724, 0, 0, 39727, 0, 0, 0, 0, 39732, 0, 39734, 0, 0, 0, 0, 0, 0, 0, 39742, 39743, 39744, 39745, 39746, 39747, 39748, 39749, 39750, 0, 39752, 39753, 0, 0, 0, 39757, 39758, 0, 0, 0, 0, 0, 39764, 39765, 39766, 39767, 0, 39769, 39770, 39771, 39772, 0, 39774, 0, 39776, 0, 0, 0, 0, 0, 0, 0, 39784, 0, 39786, 0, 39788, 39789, 39790, 0, 39792, 39793, 0, 0, 39796, 39797, 39798, 0, 39800, 39801, 0, 39803, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39814, 39815, 39816, 0, 39818, 39819, 39820, 39821, 0, 0, 0, 0, 39826, 39827, 39828, 39829, 0, 0, 0, 39833, 0, 0, 0, 0, 39838, 0, 0, 39841, 39842, 39843, 39844, 39845, 39846, 39847, 39848, 39849, 39850, 0, 0, 39853, 39854, 0, 39856, 0, 39858, 0, 0, 0, 0, 0, 0, 0, 39866, 39867, 39868, 39869, 39870, 39871, 39872, 39873, 39874, 0, 0, 39877, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39888, 0, 0, 39891, 39892, 39893, 39894, 39895, 0, 39897, 39898, 0, 0, 39901, 0, 39903, 39904, 39905, 39906, 39907, 39908, 39909, 39910, 39911, 0, 39913, 39914, 39915, 39916, 39917, 39918, 39919, 0, 0, 0, 0, 39924, 39925, 39926, 39927, 39928, 39929, 0, 39931, 39932, 0, 39934, 39935, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p29C: 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 10964, 48579, 48579, 46008, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 8739, 38269, 48579, 48579, 48579, 48579, 17987, 48579, 48579, 48579, 30043, 48579, 33334, 48579, 48579, 48579, 48579, 28566, 14842, 40843, 48579, 34267, 48579, 21944, 48579, 48579, 48579, 22248, 48579, 44725, 48579, 17000, 17005, 48579, 18216, 48579, 48579, 24486, 40158, 14341, 44861, 17129, 48579, 48579, 21429, 48579, 22725, 48579, 48198, 14791, 48579, 29601, 16070, 48579, 20197, 28517, 48579, 39495, 24572, 10273, 48579, 14346, 16073, 44703, 18264, 14800, 7566, 48579, 48579, 48579, 14376, 48579, 48579, 48579, 48579, 22732, 22959, 9268, 48579, 48579, 42549, 20805, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 10276, 16075, 32894, 48579, 45056, 48579, 25185, 48579, 48579, 48579, 48579, 44727, 45062, 45804, 39958, 48579, 48579, 27628, 48579, 48579, 48579, 16847, 21517, 48579, 37434, 48579, 48579, 38958, 37970, 47892, 38072, 23192, 48579, 48579, 27046, 48579, 17528, 17400, 14623, 28949, 44173, 18477, 48579, 48579, 23784, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 47466, 16862, 8534, 20073, 36655, 48579, 26192, 22823, 48428, 25339, 30588, 48579, 47469, 48579, 48579, 48579, 48579, 16437, 48379, 48579, 42001, 35218, 48579, 23201, 48579, 10122, 48579, 42239, 48579, 48579, 44628, 48579, 48579, 48579, 48579, 48579, 48579, 34540, 23551, 43174, 13498, 48579, 48579, 48579, 38491, 43762, 15317, 47699, 15388, 48579, 35327, 24310, 42355, 37227, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 16913, 48579, 48579, 48579, 26200, 41931, 30615, 23790, 47478, 48579, 16866, 18141, 48579, 48579, 48579, 48579, 48579, 48579, 21318, 48579, 48579, 10805, 48579, 48579, 21772, 45713, 48579, 27546, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 39937, 39938, 0, 39940, 39941, 39942, 39943, 39944, 39945, 39946, 39947, 39948, 0, 0, 39951, 39952, 39953, 39954, 0, 39956, 39957, 39958, 0, 39960, 0, 39962, 39963, 39964, 39965, 0, 0, 0, 39969, 0, 39971, 0, 39973, 39974, 39975, 0, 39977, 0, 39979, 0, 0, 39982, 0, 39984, 39985, 0, 0, 0, 0, 0, 39991, 39992, 0, 39994, 0, 39996, 0, 0, 39999, 0, 0, 40002, 0, 0, 40005, 0, 0, 0, 40009, 0, 0, 0, 0, 0, 0, 40016, 40017, 40018, 0, 40020, 40021, 40022, 40023, 0, 0, 0, 40027, 40028, 0, 0, 40031, 40032, 40033, 40034, 40035, 40036, 40037, 0, 0, 0, 40041, 0, 40043, 0, 40045, 40046, 40047, 40048, 0, 0, 0, 0, 40053, 40054, 0, 40056, 40057, 40058, 0, 0, 40061, 0, 40063, 40064, 0, 0, 0, 0, 0, 40070, 40071, 0, 40073, 0, 0, 0, 0, 0, 0, 40080, 40081, 0, 40083, 40084, 40085, 40086, 40087, 40088, 40089, 40090, 40091, 40092, 40093, 40094, 40095, 0, 0, 0, 0, 0, 40101, 0, 0, 0, 0, 0, 40107, 0, 40109, 40110, 40111, 40112, 0, 0, 40115, 0, 0, 40118, 0, 40120, 0, 40122, 0, 40124, 40125, 0, 40127, 40128, 40129, 40130, 40131, 40132, 0, 0, 0, 0, 40137, 40138, 40139, 0, 0, 0, 0, 0, 40145, 0, 0, 0, 0, 40150, 40151, 40152, 40153, 40154, 40155, 40156, 0, 40158, 40159, 40160, 0, 0, 0, 0, 0, 40166, 0, 0, 40169, 40170, 40171, 40172, 40173, 40174, 0, 40176, 40177, 0, 40179, 40180, 0, 0, 40183, 0, 40185, 40186, 40187, 40188, 40189, 40190, 40191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p29D: 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 1, 1, 2, 47435, 15662, 40602, 19659, 48579, 48579, 48579, 33465, 27061, 45212, 48579, 48579, 48579, 34478, 48579, 48579, 26213, 44179, 20572, 29124, 48579, 48579, 48579, 48579, 21945, 44180, 48579, 48579, 43286, 36297, 37919, 10312, 25241, 16496, 48579, 24586, 25007, 48579, 48579, 20646, 42073, 8824, 30648, 48579, 48579, 48579, 43295, 48579, 48579, 8964, 27192, 9848, 48579, 15664, 48579, 48579, 48579, 32115, 12855, 23974, 48579, 48579, 48579, 48579, 25407, 48579, 48579, 48579, 18559, 32126, 48579, 26407, 48579, 23226, 48579, 48579, 48579, 31910, 44445, 18478, 48579, 48579, 48579, 24055, 48579, 32616, 39996, 35031, 48579, 48579, 13711, 8866, 48579, 48579, 48579, 48579, 28950, 48579, 17729, 29504, 48579, 14778, 28082, 48579, 48579, 15133, 48579, 48579, 18218, 37723, 33390, 48579, 20618, 38559, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 15488, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 9030, 47608, 48579, 47475, 10685, 48579, 33959, 18137, 9306, 48579, 48579, 48579, 48579, 32462, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 28088, 48579, 24487, 48579, 48579, 19992, 48579, 48579, 26570, 48579, 48579, 27150, 27987, 47292, 39554, 18959, 16592, 21613, 48579, 28089, 48579, 32892, 48579, 38497, 48579, 32848, 48579, 45780, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 29135, 40166, 48579, 20562, 48579, 48579, 48579, 48579, 48579, 48579, 24313, 34546, 43244, 12846, 31661, 21773, 48579, 48579, 47101, 48579, 23758, 9394, 23100, 43245, 48579, 9241, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 10904, 48579, 48579, 48579, 48579, 48579, 20567, 48579, 38394, 41401, 48579, 48579, 48579, 48579, 37244, 26777, 48579, 14636, 47942, 48579, 30884, 48579, 35702, 30634, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 40196, 40197, 40198, 0, 0, 0, 40202, 40203, 40204, 0, 40206, 40207, 0, 0, 0, 0, 40212, 40213, 40214, 40215, 0, 0, 40218, 40219, 0, 0, 0, 0, 0, 0, 40226, 0, 0, 40229, 40230, 0, 0, 0, 0, 40235, 40236, 40237, 0, 40239, 40240, 0, 0, 0, 40244, 0, 40246, 40247, 40248, 0, 0, 0, 40252, 40253, 40254, 40255, 0, 40257, 40258, 40259, 0, 0, 40262, 0, 40264, 0, 40266, 40267, 40268, 0, 0, 0, 40272, 40273, 40274, 0, 40276, 0, 0, 0, 40280, 40281, 0, 0, 40284, 40285, 40286, 40287, 0, 40289, 0, 0, 40292, 0, 0, 40295, 40296, 0, 40298, 40299, 0, 0, 0, 40303, 0, 0, 40306, 40307, 40308, 40309, 40310, 40311, 40312, 0, 40314, 40315, 40316, 40317, 40318, 40319, 40320, 0, 0, 40323, 0, 0, 40326, 0, 0, 0, 40330, 40331, 40332, 40333, 0, 40335, 40336, 40337, 40338, 40339, 40340, 40341, 0, 40343, 0, 40345, 40346, 0, 40348, 40349, 0, 40351, 40352, 0, 0, 0, 0, 0, 0, 0, 40360, 0, 40362, 0, 40364, 0, 40366, 0, 40368, 0, 40370, 40371, 40372, 40373, 40374, 40375, 40376, 40377, 40378, 40379, 40380, 40381, 40382, 40383, 40384, 0, 0, 40387, 0, 40389, 40390, 40391, 40392, 40393, 40394, 0, 0, 0, 0, 0, 0, 40401, 40402, 0, 40404, 0, 0, 0, 0, 40409, 0, 40411, 40412, 40413, 40414, 40415, 40416, 40417, 40418, 40419, 40420, 40421, 40422, 0, 40424, 40425, 40426, 40427, 40428, 0, 40430, 0, 0, 40433, 40434, 40435, 40436, 0, 0, 40439, 0, 0, 40442, 0, 40444, 0, 0, 40447, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p29E: 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 29678, 8875, 14931, 37111, 18501, 48579, 48579, 14266, 48579, 48579, 48579, 14267, 48579, 48579, 13372, 48579, 32853, 48579, 48579, 48579, 48579, 48579, 14268, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 41947, 35046, 48579, 48579, 48579, 48579, 48579, 43720, 28519, 28520, 42801, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 27300, 48579, 48579, 48579, 48579, 42414, 30192, 11855, 48579, 38133, 48579, 17176, 43641, 48579, 36785, 47121, 14696, 44074, 48579, 48579, 23214, 7480, 7736, 48579, 17386, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 28266, 28235, 48579, 48579, 21330, 48579, 48579, 37837, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 11291, 48579, 35652, 36195, 30650, 36118, 38035, 15695, 48579, 16008, 48579, 17388, 48579, 28183, 16009, 48579, 48579, 48579, 48579, 46571, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 35705, 48579, 48579, 48579, 34960, 48579, 28620, 33201, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 40182, 48579, 48579, 48579, 48354, 44383, 28621, 30476, 48579, 48579, 33921, 48579, 48579, 48579, 48579, 48579, 48579, 9307, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 23334, 24252, 48579, 16532, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 41838, 9398, 20457, 48579, 38506, 9709, 25181, 47713, 48579, 18908, 48579, 36916, 45746, 48579, 17767, 48579, 48579, 17093, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 21369, 48579, 48579, 48579, 13286, 48579, 43736, 48579, 48579, 48579, 48579, 47132, 48579, 48579, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 40453, 40454, 0, 40456, 40457, 40458, 0, 40460, 40461, 0, 40463, 0, 40465, 40466, 40467, 40468, 40469, 0, 40471, 40472, 40473, 40474, 40475, 40476, 40477, 0, 0, 40480, 40481, 40482, 40483, 40484, 0, 0, 0, 0, 40489, 40490, 40491, 40492, 40493, 40494, 40495, 40496, 40497, 40498, 40499, 40500, 40501, 40502, 40503, 40504, 0, 40506, 40507, 40508, 40509, 0, 0, 0, 40513, 0, 40515, 0, 0, 40518, 0, 0, 0, 0, 40523, 40524, 0, 0, 0, 40528, 0, 40530, 40531, 40532, 40533, 40534, 40535, 40536, 40537, 40538, 40539, 40540, 40541, 0, 0, 40544, 40545, 0, 40547, 40548, 0, 40550, 40551, 40552, 40553, 40554, 40555, 40556, 40557, 40558, 40559, 40560, 0, 40562, 0, 0, 0, 0, 0, 0, 40569, 0, 40571, 0, 40573, 0, 0, 40576, 40577, 40578, 40579, 0, 40581, 40582, 40583, 40584, 40585, 40586, 40587, 40588, 40589, 40590, 40591, 40592, 40593, 40594, 40595, 40596, 40597, 40598, 0, 40600, 40601, 40602, 0, 40604, 0, 0, 40607, 40608, 40609, 40610, 40611, 40612, 40613, 40614, 40615, 40616, 40617, 40618, 0, 40620, 40621, 40622, 0, 0, 0, 0, 40627, 40628, 0, 40630, 40631, 40632, 40633, 40634, 40635, 0, 40637, 40638, 40639, 40640, 40641, 40642, 40643, 40644, 40645, 40646, 40647, 40648, 40649, 40650, 0, 0, 40653, 0, 40655, 40656, 40657, 40658, 40659, 40660, 40661, 0, 0, 0, 40665, 0, 0, 0, 0, 40670, 0, 40672, 0, 0, 40675, 0, 40677, 40678, 0, 40680, 40681, 40682, 40683, 40684, 40685, 40686, 40687, 40688, 0, 40690, 40691, 40692, 0, 40694, 0, 40696, 40697, 40698, 40699, 0, 40701, 40702, 40703, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p29F: 2, 2, 1, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 1, 48579, 48579, 38041, 48579, 19926, 32767, 48579, 48579, 7628, 12520, 26398, 42550, 37839, 48579, 48579, 48579, 48579, 48579, 31231, 48579, 48579, 48579, 48579, 48579, 48579, 16012, 19927, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48301, 48579, 42814, 48579, 48579, 45747, 48579, 25122, 48579, 48579, 48579, 48579, 48579, 48579, 42553, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 45900, 48579, 48579, 48579, 11101, 8828, 48579, 48579, 48579, 48579, 40986, 43981, 48579, 48579, 48579, 48579, 48579, 40367, 37924, 24642, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 9274, 20344, 9998, 23336, 48579, 48579, 31665, 48579, 48579, 48579, 48579, 48579, 34767, 38941, 32128, 48579, 48579, 48579, 48579, 48579, 48579, 26409, 48579, 48579, 12540, 28646, 24329, 48579, 7745, 48579, 14201, 15119, 15453, 19167, 45773, 7400, 48579, 48579, 31921, 11069, 27511, 41398, 37109, 28515, 18390, 34543, 48579, 40795, 47234, 22536, 48579, 48579, 48579, 48579, 48579, 39891, 39892, 11704, 10864, 48579, 13119, 43125, 48579, 13322, 48579, 48579, 17355, 37592, 48579, 42860, 8059, 43148, 48579, 48579, 48579, 48579, 41394, 48579, 48579, 48579, 48579, 39759, 48579, 48579, 48579, 48579, 48579, 48579, 8345, 48579, 48579, 20972, 15912, 45581, 48579, 46487, 18219, 38850, 40404, 39914, 15489, 47229, 48579, 26932, 40405, 31186, 48579, 48579, 48579, 14876, 7828, 18542, 48579, 48579, 48579, 48579, 48579, 48579, 20619, 48579, 8062, 41435, 42240, 48579, 48579, 48579, 48579, 48579, 39129, 48579, 21926, 48579, 32163, 45018, 35843, 36973, 27925, 45707, 32076, 48579, 15141, 48579, 32077, 10897, 48579, 44062, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 36389, 48579, 48579, 37468, 48579, 48579, 37392, 48579, 11178, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 40704, 40705, 0, 40707, 0, 0, 40710, 40711, 0, 0, 0, 0, 0, 40717, 40718, 40719, 40720, 40721, 0, 40723, 40724, 40725, 40726, 40727, 40728, 0, 0, 40731, 40732, 40733, 40734, 40735, 40736, 40737, 40738, 40739, 40740, 40741, 0, 40743, 0, 40745, 40746, 0, 40748, 0, 40750, 40751, 40752, 40753, 40754, 40755, 0, 40757, 40758, 40759, 40760, 40761, 40762, 40763, 0, 40765, 40766, 40767, 0, 0, 40770, 40771, 40772, 40773, 0, 0, 40776, 40777, 40778, 40779, 40780, 0, 0, 0, 40784, 40785, 40786, 40787, 40788, 40789, 40790, 40791, 40792, 40793, 40794, 0, 0, 0, 0, 40799, 40800, 0, 40802, 40803, 40804, 40805, 40806, 0, 0, 0, 40810, 40811, 40812, 40813, 40814, 40815, 0, 40817, 40818, 0, 0, 0, 40822, 0, 40824, 0, 0, 0, 0, 0, 0, 40831, 40832, 0, 0, 0, 0, 0, 0, 0, 0, 40841, 0, 0, 0, 40845, 40846, 40847, 40848, 40849, 0, 0, 0, 0, 40854, 0, 0, 40857, 0, 40859, 40860, 0, 0, 40863, 0, 0, 0, 40867, 40868, 40869, 40870, 0, 40872, 40873, 40874, 40875, 0, 40877, 40878, 40879, 40880, 40881, 40882, 0, 40884, 40885, 0, 0, 0, 40889, 0, 0, 0, 0, 0, 0, 0, 40897, 0, 0, 0, 40901, 40902, 40903, 0, 0, 0, 40907, 40908, 40909, 40910, 40911, 40912, 0, 40914, 0, 0, 0, 40918, 40919, 40920, 40921, 40922, 0, 40924, 0, 40926, 0, 0, 0, 0, 0, 0, 0, 40934, 0, 40936, 0, 0, 40939, 0, 40941, 40942, 40943, 40944, 40945, 40946, 40947, 40948, 40949, 40950, 0, 40952, 40953, 0, 40955, 40956, 0, 40958, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p2A0: 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 2, 1, 1, 1, 2, 2, 2, 1, 2, 1, 1, 1, 2, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 1, 1, 48579, 15917, 48579, 48579, 48579, 48579, 48579, 48579, 44780, 15918, 32078, 48579, 48579, 48579, 48579, 21927, 48579, 48579, 13271, 42793, 34156, 43230, 48579, 16867, 20563, 48579, 35082, 31774, 48579, 14258, 18726, 18936, 41348, 48579, 48579, 21771, 48579, 45812, 10899, 23867, 48579, 30616, 40674, 48579, 18896, 36909, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 15507, 48579, 48579, 41349, 20990, 27356, 44664, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 47749, 20631, 47102, 10616, 48579, 21005, 39930, 10440, 24220, 45025, 48579, 47103, 23835, 38395, 32090, 48579, 37708, 48579, 42622, 43246, 23759, 48579, 36958, 7412, 22215, 41940, 48579, 48579, 48579, 21935, 48579, 46493, 48579, 47104, 26798, 48579, 48579, 48579, 40715, 48579, 48579, 11408, 11143, 48579, 48579, 48579, 48579, 48579, 31204, 14694, 10168, 48579, 27471, 35351, 7588, 48579, 15394, 48579, 48579, 48579, 38124, 46705, 27675, 10129, 41694, 44688, 48579, 15519, 35787, 19720, 48579, 14795, 48579, 48579, 18257, 21701, 48579, 44472, 48579, 48579, 48579, 48579, 48579, 30638, 26997, 48579, 48579, 8878, 17088, 48579, 48579, 48579, 27777, 48579, 37653, 37654, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 21326, 44689, 39501, 48579, 48579, 11493, 19668, 48579, 39727, 29567, 15523, 48579, 48579, 48579, 25540, 48579, 33106, 41176, 48299, 48579, 21014, 48579, 48579, 45891, 48579, 44373, 44374, 27001, 27566, 26937, 13962, 15524, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 20448, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 27548, 48579, 7524, 48579, 48579, 48579, 48579, 22729, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 18038, 48579, 48579, 48579, 16325, 48579, 38929, 48579, 32728, 15924, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 40960, 0, 40962, 40963, 40964, 40965, 40966, 40967, 0, 0, 0, 40971, 40972, 40973, 40974, 0, 40976, 40977, 0, 0, 0, 0, 40982, 0, 0, 40985, 0, 0, 40988, 0, 0, 0, 0, 40993, 40994, 0, 40996, 0, 0, 0, 41000, 0, 0, 41003, 0, 0, 41006, 41007, 41008, 41009, 41010, 41011, 41012, 41013, 41014, 41015, 41016, 41017, 0, 41019, 41020, 0, 0, 0, 0, 41025, 41026, 41027, 41028, 41029, 41030, 41031, 0, 0, 0, 0, 41036, 0, 0, 0, 0, 0, 41042, 0, 0, 0, 0, 41047, 0, 41049, 0, 0, 0, 41053, 0, 0, 0, 0, 41058, 41059, 41060, 0, 41062, 0, 41064, 0, 0, 41067, 41068, 41069, 0, 41071, 41072, 0, 0, 41075, 41076, 41077, 41078, 41079, 0, 0, 0, 41083, 0, 0, 0, 41087, 0, 41089, 41090, 41091, 0, 0, 0, 0, 0, 0, 41098, 0, 0, 0, 41102, 0, 41104, 41105, 0, 0, 41108, 0, 41110, 41111, 41112, 41113, 41114, 0, 0, 41117, 41118, 0, 0, 41121, 41122, 41123, 0, 41125, 0, 0, 41128, 41129, 41130, 41131, 41132, 41133, 41134, 41135, 41136, 41137, 41138, 41139, 0, 0, 0, 41143, 41144, 0, 0, 41147, 0, 0, 0, 41151, 41152, 41153, 0, 41155, 0, 0, 0, 41159, 0, 41161, 41162, 0, 41164, 0, 0, 0, 0, 0, 0, 0, 41172, 41173, 41174, 41175, 41176, 41177, 41178, 0, 41180, 41181, 41182, 41183, 41184, 41185, 41186, 41187, 41188, 41189, 0, 41191, 0, 41193, 41194, 41195, 41196, 0, 41198, 41199, 41200, 41201, 41202, 41203, 41204, 41205, 0, 41207, 41208, 41209, 0, 41211, 0, 41213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p2A1: 1, 1, 1, 2, 2, 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 29351, 44877, 39317, 48579, 48579, 33403, 29746, 48579, 31663, 43856, 32102, 48579, 16231, 48579, 16010, 39402, 48579, 35358, 48579, 48579, 48579, 7839, 30651, 18073, 48579, 48579, 48579, 38930, 48579, 38447, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 30477, 18384, 16810, 48579, 12853, 33660, 26626, 27723, 19918, 38993, 39406, 19673, 10170, 22878, 10959, 48579, 48579, 48579, 48579, 48579, 48579, 46040, 30002, 35360, 26303, 24253, 27241, 10960, 36510, 48579, 25389, 48579, 10911, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 10961, 48579, 48579, 10912, 48579, 48579, 48579, 28735, 48579, 43877, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 27440, 48579, 34554, 48579, 39177, 48579, 14284, 48068, 48579, 48579, 21017, 19501, 17992, 34093, 24619, 48579, 30480, 48579, 47299, 34966, 32116, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 40187, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 34967, 48579, 48579, 48579, 40809, 48579, 48579, 48579, 48579, 15529, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 29007, 41542, 25552, 20076, 16811, 23222, 10915, 9560, 11194, 48579, 17019, 48579, 12418, 48579, 48579, 48579, 20459, 48579, 12521, 18075, 48579, 22879, 48579, 11293, 30996, 7373, 48579, 29905, 48579, 48579, 48579, 48579, 48579, 48579, 41407, 21334, 27244, 48579, 8966, 23649, 16469, 11100, 48579, 48579, 43863, 16533, 44390, 47387, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 9464, 48579, 25554, 9335, 26500, 21021, 46388, 27627, 16735, 48579, 20047, 48579, 23488, 48579, 48579, 48579, 48579, 48579, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 41219, 41220, 0, 0, 41223, 0, 0, 0, 41227, 0, 41229, 0, 0, 41232, 0, 41234, 41235, 41236, 0, 0, 0, 41240, 41241, 41242, 0, 41244, 0, 41246, 41247, 41248, 41249, 41250, 41251, 41252, 41253, 41254, 41255, 41256, 41257, 41258, 41259, 41260, 0, 0, 0, 41264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41276, 41277, 41278, 41279, 41280, 41281, 0, 0, 0, 0, 0, 0, 0, 0, 41290, 0, 41292, 0, 41294, 41295, 41296, 41297, 41298, 41299, 41300, 41301, 0, 41303, 41304, 0, 41306, 41307, 41308, 0, 41310, 0, 41312, 41313, 41314, 41315, 41316, 41317, 41318, 41319, 41320, 41321, 41322, 41323, 41324, 41325, 0, 41327, 0, 41329, 0, 41331, 0, 0, 41334, 41335, 0, 0, 0, 0, 0, 41341, 0, 41343, 0, 0, 0, 41347, 41348, 41349, 41350, 41351, 41352, 41353, 41354, 0, 41356, 41357, 41358, 41359, 41360, 41361, 41362, 41363, 41364, 41365, 41366, 0, 41368, 41369, 41370, 0, 41372, 41373, 41374, 41375, 0, 41377, 41378, 41379, 41380, 41381, 41382, 41383, 41384, 41385, 41386, 41387, 41388, 41389, 41390, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41400, 0, 41402, 0, 41404, 41405, 41406, 0, 41408, 0, 0, 41411, 0, 41413, 0, 0, 0, 41417, 0, 41419, 41420, 41421, 41422, 41423, 41424, 0, 0, 0, 41428, 0, 0, 0, 0, 41433, 41434, 0, 0, 0, 0, 41439, 41440, 41441, 41442, 41443, 41444, 41445, 41446, 41447, 41448, 41449, 41450, 41451, 41452, 0, 41454, 0, 0, 0, 0, 0, 0, 0, 41462, 0, 41464, 0, 41466, 41467, 41468, 41469, 41470, 41471, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p2A2: 1, 2, 2, 1, 2, 2, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 1, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 34480, 48579, 48579, 17020, 48579, 48579, 27245, 31065, 23575, 48579, 17705, 37151, 48579, 48579, 48579, 48579, 48579, 18909, 48579, 48579, 48579, 48579, 48579, 48579, 17862, 48579, 48579, 48579, 26172, 48579, 48579, 20048, 48579, 48579, 48579, 48579, 48579, 16812, 48579, 48579, 42633, 18560, 48579, 48579, 48579, 48579, 48579, 48579, 26410, 48579, 48579, 48579, 22265, 48579, 48579, 48579, 16698, 48579, 48579, 32267, 28737, 48579, 48579, 26675, 48579, 48579, 45171, 38187, 10840, 10846, 46670, 48579, 11633, 47743, 18425, 20916, 32052, 37012, 27663, 26985, 44320, 7550, 7829, 48579, 29732, 46386, 25921, 10876, 36956, 48579, 20844, 48579, 45876, 48579, 48579, 48579, 48579, 48579, 21133, 25938, 48579, 48579, 20441, 36029, 10130, 48579, 11717, 48579, 48579, 37522, 11856, 22500, 48579, 8757, 48579, 48579, 48579, 48579, 48579, 48579, 38177, 48579, 48579, 30990, 48579, 48579, 48579, 15730, 48579, 48579, 19114, 48579, 15700, 48579, 19929, 15732, 48579, 18521, 48579, 48579, 48579, 35032, 48579, 48579, 15135, 48579, 48579, 48579, 48579, 29802, 48579, 9400, 48579, 48579, 48579, 48579, 8234, 48579, 48579, 48579, 48579, 48579, 34268, 48579, 48579, 18606, 48579, 16797, 48579, 48579, 29226, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 29464, 48579, 43769, 36820, 40045, 48579, 47611, 48579, 44361, 48579, 48579, 48579, 48579, 48579, 20433, 48579, 48579, 32143, 37655, 23330, 47768, 48579, 44690, 17089, 30157, 48436, 48350, 48579, 47442, 29100, 47443, 48579, 48579, 48579, 48579, 29977, 27310, 48579, 48579, 48579, 48579, 8630, 35361, 48579, 48579, 48579, 30364, 27322, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 42552, 44476, 48579, 44719, 48579, 47529, 48579, 48579, 25402, 48579, 48579, 48579, 48579, 48579, 48579, 29048, 48579, 48579, 48579, 25328, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 41473, 41474, 0, 41476, 41477, 0, 0, 0, 41481, 0, 0, 41484, 41485, 41486, 41487, 41488, 0, 41490, 41491, 41492, 41493, 41494, 41495, 0, 41497, 41498, 41499, 0, 41501, 41502, 0, 41504, 41505, 41506, 41507, 41508, 0, 41510, 41511, 0, 0, 41514, 41515, 41516, 41517, 41518, 41519, 0, 41521, 41522, 41523, 0, 41525, 41526, 41527, 0, 41529, 41530, 0, 0, 41533, 41534, 0, 41536, 41537, 0, 0, 0, 0, 0, 41543, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41555, 0, 0, 0, 0, 0, 41561, 0, 41563, 0, 41565, 41566, 41567, 41568, 41569, 0, 0, 41572, 41573, 0, 0, 0, 41577, 0, 41579, 41580, 0, 0, 0, 41584, 0, 41586, 41587, 41588, 41589, 41590, 41591, 0, 41593, 41594, 0, 41596, 41597, 41598, 0, 41600, 41601, 0, 41603, 0, 41605, 0, 0, 41608, 0, 41610, 41611, 41612, 0, 41614, 41615, 0, 41617, 41618, 41619, 41620, 0, 41622, 0, 41624, 41625, 41626, 41627, 0, 41629, 41630, 41631, 41632, 41633, 0, 41635, 41636, 0, 41638, 0, 41640, 41641, 0, 41643, 41644, 41645, 41646, 41647, 41648, 41649, 41650, 0, 41652, 0, 0, 0, 41656, 0, 41658, 0, 41660, 41661, 41662, 41663, 41664, 0, 41666, 41667, 0, 0, 0, 0, 41672, 0, 0, 0, 0, 0, 41678, 0, 0, 0, 41682, 41683, 41684, 41685, 0, 0, 41688, 41689, 41690, 41691, 0, 0, 41694, 41695, 41696, 0, 0, 41699, 41700, 41701, 41702, 41703, 41704, 41705, 41706, 0, 0, 41709, 0, 41711, 0, 41713, 41714, 0, 41716, 41717, 41718, 41719, 41720, 41721, 0, 41723, 41724, 41725, 0, 41727, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p2A3: 1, 2, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 2, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 2, 2, 1, 24975, 48579, 37322, 48579, 8384, 28178, 32067, 48579, 29803, 13522, 28819, 37271, 48579, 19434, 48579, 25346, 48579, 48579, 48579, 22953, 35328, 48579, 48579, 48579, 36974, 48579, 48579, 48579, 48579, 48579, 28192, 45544, 48579, 48579, 36931, 15994, 13792, 48579, 48579, 20991, 48579, 36551, 36690, 10754, 32011, 48579, 33400, 48579, 9243, 24221, 48579, 26485, 48579, 24952, 34688, 12735, 48579, 10692, 27611, 48579, 36234, 19164, 48579, 28748, 48579, 22358, 18376, 48579, 26098, 42537, 48579, 27937, 10289, 48579, 48579, 48579, 35663, 48579, 22648, 15525, 48579, 10274, 48579, 48579, 35651, 48579, 48579, 31830, 48579, 48579, 48579, 35359, 48579, 45213, 48579, 35654, 22924, 9262, 48579, 25814, 27951, 48579, 24776, 41162, 35655, 26671, 8631, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 36487, 48579, 24745, 35975, 33635, 48579, 32121, 13658, 18624, 33260, 48579, 48579, 48579, 23148, 48579, 48579, 48579, 28875, 48579, 28876, 26411, 48528, 43025, 39622, 10265, 36714, 48579, 48579, 48579, 48579, 48579, 48579, 34866, 48579, 27353, 48579, 48579, 27281, 48579, 48579, 48579, 37647, 48579, 8235, 31190, 48579, 27831, 48579, 48579, 25532, 38396, 48579, 27026, 48579, 36960, 48579, 48579, 28041, 48579, 27003, 48579, 48579, 48579, 48579, 48573, 48579, 37269, 22557, 37272, 48579, 48579, 48579, 10355, 46614, 48579, 10951, 36508, 48579, 47090, 9958, 9963, 48579, 48579, 31634, 37245, 18962, 32368, 45887, 20199, 9970, 48579, 18791, 48579, 18904, 10759, 48579, 18792, 17812, 45156, 48579, 37121, 8663, 48579, 18798, 45157, 48579, 48579, 48579, 48579, 27952, 16182, 48579, 16183, 48579, 16940, 48579, 9993, 48579, 32374, 32986, 23149, 30014, 48579, 48579, 32869, 48579, 48579, 48579, 28975, 18366, 21173, 28614, 8069, 48579, 28552, 48579, 8591, 18242, 24207, 48579, 48579, 47436, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 41729, 0, 41731, 0, 0, 0, 41735, 0, 0, 0, 0, 41740, 0, 41742, 0, 41744, 41745, 41746, 0, 0, 41749, 41750, 41751, 0, 41753, 41754, 41755, 41756, 41757, 0, 0, 41760, 41761, 0, 0, 0, 41765, 41766, 0, 41768, 0, 0, 0, 0, 41773, 0, 41775, 0, 0, 41778, 0, 41780, 0, 0, 0, 41784, 0, 0, 41787, 0, 0, 41790, 0, 41792, 0, 0, 41795, 0, 0, 41798, 0, 0, 41801, 41802, 41803, 0, 41805, 0, 0, 41808, 0, 41810, 41811, 0, 41813, 41814, 0, 41816, 41817, 41818, 0, 41820, 0, 41822, 0, 0, 0, 41826, 0, 0, 41829, 0, 0, 0, 0, 0, 41835, 41836, 41837, 41838, 41839, 41840, 41841, 0, 41843, 0, 0, 0, 41847, 0, 0, 0, 0, 41852, 41853, 41854, 0, 41856, 41857, 41858, 0, 41860, 0, 0, 0, 0, 0, 0, 0, 41868, 41869, 41870, 41871, 41872, 41873, 0, 41875, 0, 41877, 41878, 0, 41880, 41881, 41882, 0, 41884, 0, 0, 41887, 0, 41889, 41890, 0, 0, 41893, 0, 41895, 0, 41897, 41898, 0, 41900, 0, 41902, 41903, 41904, 41905, 0, 41907, 0, 0, 0, 41911, 41912, 41913, 0, 0, 41916, 0, 0, 41919, 0, 0, 0, 41923, 41924, 0, 0, 0, 0, 0, 0, 0, 41932, 0, 41934, 0, 0, 41937, 0, 0, 0, 41941, 0, 0, 41944, 0, 0, 41947, 41948, 41949, 41950, 0, 0, 41953, 0, 41955, 0, 41957, 0, 41959, 0, 0, 0, 0, 41964, 41965, 0, 41967, 41968, 41969, 0, 0, 0, 0, 0, 41975, 0, 41977, 0, 0, 0, 41981, 41982, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p2A4: 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 1, 2, 2, 1, 1, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 1, 2, 2, 1, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 2, 1, 28121, 48579, 32283, 15037, 8392, 24235, 8908, 28645, 13438, 48579, 48579, 24742, 28623, 24746, 26525, 46277, 48579, 48579, 48579, 19998, 42815, 48579, 25726, 48579, 43127, 48579, 48579, 48579, 48579, 12315, 13714, 48579, 48579, 48579, 48579, 42865, 48579, 35876, 17402, 34680, 48579, 48579, 48579, 48579, 37594, 48579, 35329, 42316, 14399, 48579, 46489, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 13559, 20185, 48579, 48579, 48579, 29393, 18900, 48579, 9845, 33524, 25868, 48579, 44682, 48579, 41949, 37656, 31390, 26355, 44691, 48579, 48579, 37093, 38125, 48579, 37290, 48579, 48579, 19169, 8207, 31466, 48579, 21139, 23536, 48579, 46865, 44375, 48579, 11718, 48579, 48579, 48579, 48579, 48579, 48579, 42543, 13281, 9847, 13091, 26667, 48579, 12756, 37838, 28678, 24073, 8997, 38448, 48579, 46436, 48579, 48579, 32798, 37538, 27438, 21088, 48579, 18039, 48579, 45838, 32873, 48067, 29352, 48579, 27953, 48579, 27441, 48579, 30478, 27954, 48579, 48579, 46709, 7840, 48579, 27622, 48579, 26106, 48579, 30481, 10963, 48579, 24259, 43300, 48579, 48579, 12761, 12088, 48579, 13854, 26574, 41846, 48579, 45631, 41847, 13855, 30320, 48579, 48579, 45050, 48579, 48579, 48579, 19331, 26627, 20341, 29008, 31557, 48579, 31558, 48579, 48579, 42554, 48579, 35852, 48579, 48579, 48579, 48579, 20223, 48579, 48579, 9814, 48579, 12494, 36308, 24644, 48579, 48579, 28698, 9999, 45403, 48579, 48579, 48579, 48579, 44736, 48579, 48467, 8665, 48579, 48579, 11216, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 32425, 48579, 32431, 42006, 9280, 48579, 48579, 48579, 48579, 11914, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 27311, 48579, 22672, 48579, 11920, 48579, 48579, 48579, 48579, 48579, 48579, 38996, 48579, 26526, 48579, 34168, 13014, 48579, 48579, 34169, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 41985, 0, 0, 0, 0, 0, 0, 0, 41993, 41994, 0, 0, 0, 0, 0, 42000, 42001, 42002, 0, 0, 42005, 0, 42007, 0, 42009, 42010, 42011, 42012, 0, 0, 42015, 42016, 42017, 42018, 0, 42020, 0, 0, 0, 42024, 42025, 42026, 42027, 0, 42029, 0, 0, 0, 42033, 0, 42035, 42036, 42037, 42038, 42039, 42040, 42041, 0, 0, 42044, 42045, 42046, 0, 0, 42049, 0, 0, 0, 42053, 0, 42055, 0, 0, 0, 0, 0, 42061, 42062, 0, 0, 42065, 0, 42067, 42068, 0, 0, 0, 42072, 0, 0, 42075, 0, 0, 42078, 0, 42080, 42081, 42082, 42083, 42084, 42085, 0, 0, 0, 0, 0, 42091, 0, 0, 0, 0, 0, 0, 42098, 0, 42100, 42101, 0, 0, 0, 0, 42106, 0, 42108, 0, 0, 0, 0, 42113, 0, 42115, 0, 42117, 0, 0, 42120, 42121, 0, 0, 42124, 0, 42126, 0, 42128, 0, 0, 42131, 0, 0, 42134, 42135, 0, 0, 42138, 0, 0, 0, 42142, 0, 0, 0, 0, 42147, 42148, 0, 42150, 42151, 42152, 0, 0, 0, 0, 0, 42158, 0, 42160, 42161, 0, 42163, 0, 42165, 42166, 42167, 42168, 0, 42170, 42171, 0, 42173, 0, 0, 0, 42177, 42178, 0, 0, 0, 42182, 42183, 42184, 42185, 0, 42187, 0, 0, 42190, 42191, 0, 42193, 42194, 42195, 42196, 42197, 42198, 42199, 0, 42201, 0, 0, 0, 42205, 42206, 42207, 42208, 0, 42210, 42211, 42212, 42213, 42214, 42215, 42216, 42217, 42218, 42219, 0, 42221, 0, 42223, 0, 42225, 42226, 42227, 42228, 42229, 42230, 0, 42232, 0, 42234, 0, 0, 42237, 42238, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p2A5: 2, 2, 1, 1, 2, 1, 1, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 1, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, 1, 2, 48579, 48579, 13331, 21447, 48579, 44855, 15658, 48579, 48579, 48579, 19115, 19454, 48579, 29640, 48579, 12718, 48579, 8310, 48579, 48579, 29395, 35789, 48579, 44786, 15819, 44787, 48579, 48579, 48579, 48579, 48579, 19997, 48579, 48579, 48579, 22814, 48579, 48579, 13478, 48579, 48579, 39506, 30826, 48579, 33187, 48579, 48579, 48579, 43567, 48579, 48579, 25701, 48579, 48579, 36271, 25706, 48579, 48579, 32617, 48579, 48579, 43563, 30154, 30315, 44866, 32761, 48579, 14626, 48579, 48579, 48579, 17404, 27292, 18251, 48059, 48579, 25368, 21450, 32763, 48579, 48579, 48579, 30158, 16722, 14374, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 11917, 22359, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 40694, 48579, 14348, 36485, 48579, 42074, 48579, 7371, 18266, 38994, 48579, 18267, 48579, 34963, 24323, 48579, 43301, 16467, 48579, 36120, 48579, 48579, 48579, 48579, 48579, 48579, 32375, 48211, 24265, 48579, 20807, 48579, 48579, 14544, 30366, 34973, 48579, 21023, 25906, 24645, 10000, 48579, 42352, 48579, 48579, 48579, 48579, 18901, 48579, 48579, 48579, 17990, 13001, 31941, 22225, 48579, 29897, 48579, 48579, 48579, 23167, 48579, 48579, 39042, 36328, 48579, 48579, 40982, 48579, 48579, 48579, 48579, 48579, 8698, 48579, 48579, 17576, 24748, 48579, 48579, 35365, 25008, 48579, 48579, 48579, 48579, 21141, 48579, 48579, 48579, 48579, 24646, 10001, 48579, 48579, 30609, 30618, 48579, 48579, 48064, 48579, 48066, 48579, 30656, 48579, 30659, 48072, 48579, 45803, 45805, 29268, 48579, 21696, 48579, 48579, 41818, 48579, 48579, 17431, 28181, 48579, 48579, 48579, 48579, 48579, 48579, 41825, 48579, 45999, 34270, 46777, 48579, 48579, 48579, 48579, 45670, 48579, 48579, 48579, 48579, 48579, 48579, 32766, 45671, 48579, 43289, 27759, 41471, 48579, 47125, 48579, 23406, 39282, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 42240, 42241, 0, 0, 42244, 0, 0, 42247, 42248, 42249, 0, 0, 42252, 0, 42254, 0, 42256, 0, 42258, 42259, 0, 0, 42262, 0, 0, 0, 42266, 42267, 42268, 42269, 42270, 0, 42272, 42273, 42274, 0, 42276, 42277, 0, 42279, 42280, 0, 0, 42283, 0, 42285, 42286, 42287, 0, 42289, 42290, 0, 42292, 42293, 0, 0, 42296, 42297, 0, 42299, 42300, 0, 0, 0, 0, 0, 42306, 0, 42308, 42309, 42310, 0, 0, 0, 0, 42315, 0, 0, 0, 42319, 42320, 42321, 0, 0, 0, 42325, 42326, 42327, 42328, 42329, 42330, 42331, 42332, 0, 0, 42335, 42336, 42337, 42338, 42339, 42340, 42341, 0, 42343, 0, 0, 42346, 0, 42348, 0, 0, 0, 42352, 0, 42354, 0, 0, 42357, 0, 0, 42360, 0, 42362, 42363, 42364, 42365, 42366, 42367, 0, 0, 0, 42371, 0, 42373, 42374, 0, 0, 0, 42378, 0, 0, 0, 0, 42383, 0, 42385, 42386, 42387, 42388, 0, 42390, 42391, 42392, 0, 0, 0, 0, 42397, 0, 42399, 42400, 42401, 0, 42403, 42404, 0, 0, 42407, 42408, 0, 42410, 42411, 42412, 42413, 42414, 0, 42416, 42417, 0, 0, 42420, 42421, 0, 0, 42424, 42425, 42426, 42427, 0, 42429, 42430, 42431, 42432, 0, 0, 42435, 42436, 0, 0, 42439, 42440, 0, 42442, 0, 42444, 0, 42446, 0, 0, 42449, 0, 0, 0, 42453, 0, 42455, 42456, 0, 42458, 42459, 0, 0, 42462, 42463, 42464, 42465, 42466, 42467, 0, 42469, 0, 0, 0, 42473, 42474, 42475, 42476, 0, 42478, 42479, 42480, 42481, 42482, 42483, 0, 0, 42486, 0, 0, 0, 42490, 0, 42492, 0, 0, 42495, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p2A6: 1, 1, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 2, 2, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 29947, 35801, 48579, 42880, 48579, 48579, 40683, 45801, 48579, 14007, 14275, 48579, 48579, 48579, 43453, 48579, 14280, 35374, 7416, 12113, 48579, 37399, 48579, 37400, 39283, 48579, 48579, 11589, 48579, 35375, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 19923, 31104, 48355, 45802, 45160, 46004, 48579, 42809, 48579, 48579, 48579, 48579, 48579, 41472, 44946, 48579, 48579, 48579, 48579, 48579, 17702, 30887, 48579, 48579, 48579, 9772, 48579, 48579, 48579, 48579, 29207, 48579, 48579, 48579, 48579, 18268, 48579, 41971, 48579, 31471, 9272, 31205, 21089, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 28625, 48579, 48579, 10079, 31584, 48579, 45433, 48579, 48579, 43516, 40368, 48579, 30660, 20462, 48579, 48579, 40810, 48579, 45632, 48579, 14291, 48579, 48579, 48579, 48305, 42884, 48579, 48579, 48579, 48579, 46784, 24647, 48579, 48579, 24648, 43456, 48579, 48579, 24751, 48579, 10002, 48579, 22266, 48579, 45269, 48579, 48579, 48579, 48579, 48579, 48579, 45806, 29936, 48579, 25664, 48579, 25665, 48579, 48579, 48579, 48579, 25672, 48579, 48579, 48579, 48579, 25687, 48579, 48579, 25693, 48579, 26803, 48579, 48579, 46280, 48579, 48579, 48579, 48579, 48579, 48579, 15726, 16264, 32432, 11918, 20645, 48579, 48579, 48579, 48579, 48579, 48579, 9282, 48579, 47622, 31833, 42007, 48579, 48579, 48579, 48579, 40057, 48579, 18937, 32026, 48579, 48579, 48579, 48579, 25434, 48579, 43452, 48579, 48579, 48579, 29907, 48579, 48579, 48579, 24750, 48579, 48579, 48579, 48579, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 42498, 0, 42500, 42501, 0, 0, 42504, 0, 0, 42507, 42508, 42509, 0, 42511, 0, 0, 0, 0, 42516, 0, 42518, 0, 0, 42521, 42522, 0, 42524, 0, 42526, 42527, 42528, 42529, 42530, 42531, 42532, 0, 0, 0, 0, 0, 0, 42539, 0, 42541, 42542, 42543, 42544, 42545, 0, 0, 42548, 42549, 42550, 42551, 42552, 0, 0, 42555, 42556, 42557, 0, 42559, 42560, 42561, 42562, 0, 42564, 42565, 42566, 42567, 0, 42569, 0, 42571, 0, 0, 0, 0, 42576, 42577, 42578, 42579, 42580, 42581, 42582, 42583, 42584, 42585, 42586, 0, 42588, 42589, 0, 0, 42592, 0, 42594, 42595, 0, 0, 42598, 0, 0, 42601, 42602, 0, 42604, 0, 42606, 0, 42608, 42609, 42610, 0, 0, 42613, 42614, 42615, 42616, 0, 0, 42619, 42620, 0, 0, 42623, 42624, 0, 42626, 0, 42628, 0, 42630, 0, 42632, 42633, 42634, 42635, 42636, 42637, 0, 0, 42640, 0, 42642, 0, 42644, 42645, 42646, 42647, 0, 42649, 42650, 42651, 42652, 0, 42654, 42655, 0, 42657, 0, 42659, 42660, 0, 42662, 42663, 42664, 42665, 42666, 42667, 0, 0, 0, 0, 0, 42673, 42674, 42675, 42676, 42677, 42678, 0, 42680, 0, 0, 0, 42684, 42685, 42686, 42687, 0, 42689, 0, 0, 42692, 42693, 42694, 42695, 0, 42697, 0, 42699, 42700, 42701, 0, 42703, 42704, 42705, 0, 42707, 42708, 42709, 42710, 42711, 42712, 42713, 42714, 42715, 42716, 42717, 42718, 42719, 42720, 42721, 42722, 42723, 42724, 42725, 42726, 42727, 42728, 42729, 42730, 42731, 42732, 42733, 42734, 42735, 42736, 42737, 42738, 42739, 42740, 42741, 42742, 42743, 42744, 42745, 42746, 42747, 42748, 42749, 42750, 42751, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p2A7: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 13941, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 42752, 42753, 42754, 42755, 42756, 42757, 42758, 42759, 42760, 42761, 42762, 42763, 42764, 42765, 42766, 42767, 42768, 42769, 42770, 42771, 42772, 42773, 42774, 42775, 42776, 42777, 42778, 42779, 42780, 42781, 42782, 42783, 42784, 42785, 42786, 42787, 42788, 42789, 42790, 42791, 42792, 42793, 42794, 42795, 42796, 42797, 42798, 42799, 42800, 42801, 42802, 42803, 42804, 42805, 42806, 42807, 42808, 42809, 42810, 42811, 42812, 42813, 42814, 42815, 42816, 42817, 42818, 42819, 42820, 42821, 42822, 42823, 42824, 42825, 42826, 42827, 42828, 42829, 42830, 42831, 42832, 42833, 42834, 42835, 42836, 42837, 42838, 42839, 42840, 42841, 42842, 42843, 42844, 42845, 42846, 42847, 42848, 42849, 42850, 42851, 42852, 42853, 42854, 42855, 42856, 42857, 42858, 42859, 42860, 42861, 42862, 42863, 42864, 42865, 42866, 42867, 42868, 42869, 42870, 42871, 42872, 42873, 42874, 42875, 42876, 42877, 42878, 42879, 42880, 42881, 42882, 42883, 42884, 42885, 42886, 42887, 42888, 42889, 42890, 42891, 42892, 42893, 42894, 42895, 42896, 42897, 42898, 42899, 42900, 42901, 42902, 42903, 42904, 42905, 42906, 42907, 42908, 0, 42910, 42911, 42912, 42913, 42914, 42915, 42916, 42917, 42918, 42919, 42920, 42921, 42922, 42923, 42924, 42925, 42926, 42927, 42928, 42929, 42930, 42931, 42932, 42933, 42934, 42935, 42936, 42937, 42938, 42939, 42940, 42941, 42942, 42943, 42944, 42945, 42946, 42947, 42948, 42949, 42950, 42951, 42952, 42953, 42954, 42955, 42956, 42957, 42958, 42959, 42960, 42961, 42962, 42963, 42964, 42965, 42966, 42967, 42968, 42969, 42970, 42971, 42972, 42973, 42974, 42975, 42976, 42977, 42978, 42979, 42980, 42981, 42982, 42983, 42984, 42985, 42986, 42987, 42988, 42989, 42990, 42991, 42992, 42993, 42994, 42995, 42996, 42997, 42998, 42999, 43000, 43001, 43002, 43003, 43004, 43005, 43006, 43007, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p2A8: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 7759, 48579, 48579, 48579, 48579, 48579, 48579, 45867, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 26229, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 43008, 43009, 43010, 43011, 43012, 43013, 43014, 43015, 43016, 43017, 43018, 43019, 43020, 43021, 43022, 43023, 43024, 43025, 43026, 43027, 43028, 43029, 43030, 43031, 43032, 43033, 43034, 43035, 43036, 43037, 43038, 43039, 43040, 43041, 43042, 43043, 43044, 43045, 43046, 43047, 43048, 43049, 43050, 43051, 43052, 43053, 43054, 43055, 43056, 43057, 43058, 43059, 43060, 43061, 43062, 43063, 43064, 43065, 43066, 43067, 43068, 43069, 43070, 43071, 43072, 43073, 43074, 43075, 43076, 43077, 43078, 43079, 0, 43081, 43082, 43083, 43084, 43085, 43086, 0, 43088, 43089, 43090, 43091, 43092, 43093, 43094, 43095, 43096, 43097, 43098, 43099, 43100, 43101, 43102, 43103, 43104, 43105, 43106, 43107, 43108, 43109, 43110, 43111, 43112, 43113, 43114, 43115, 43116, 43117, 43118, 43119, 43120, 43121, 43122, 43123, 43124, 43125, 43126, 43127, 43128, 43129, 43130, 43131, 43132, 43133, 43134, 43135, 43136, 43137, 43138, 43139, 43140, 43141, 43142, 43143, 43144, 43145, 43146, 43147, 43148, 43149, 43150, 43151, 43152, 43153, 43154, 43155, 43156, 43157, 43158, 43159, 43160, 43161, 43162, 43163, 43164, 43165, 43166, 43167, 43168, 43169, 43170, 43171, 43172, 43173, 43174, 43175, 43176, 43177, 43178, 43179, 43180, 43181, 0, 43183, 43184, 43185, 43186, 43187, 43188, 43189, 43190, 43191, 43192, 43193, 43194, 43195, 43196, 43197, 43198, 43199, 43200, 43201, 43202, 43203, 43204, 43205, 43206, 43207, 43208, 43209, 43210, 43211, 43212, 43213, 43214, 43215, 43216, 43217, 43218, 43219, 43220, 43221, 43222, 43223, 43224, 43225, 43226, 43227, 43228, 43229, 43230, 43231, 43232, 43233, 43234, 43235, 43236, 43237, 43238, 43239, 43240, 43241, 43242, 43243, 43244, 43245, 43246, 43247, 43248, 43249, 43250, 43251, 43252, 43253, 43254, 43255, 43256, 43257, 43258, 43259, 43260, 43261, 43262, 43263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p2AA: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 35085, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 22059, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 43815, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 43520, 43521, 43522, 43523, 43524, 43525, 43526, 43527, 43528, 43529, 0, 43531, 43532, 43533, 43534, 43535, 43536, 43537, 43538, 43539, 43540, 43541, 43542, 0, 43544, 43545, 43546, 43547, 43548, 43549, 43550, 43551, 43552, 43553, 43554, 43555, 43556, 43557, 43558, 43559, 43560, 43561, 43562, 43563, 43564, 43565, 43566, 43567, 43568, 43569, 43570, 43571, 43572, 43573, 43574, 43575, 43576, 43577, 43578, 43579, 43580, 43581, 43582, 43583, 43584, 43585, 43586, 43587, 43588, 43589, 43590, 43591, 43592, 43593, 43594, 43595, 43596, 43597, 43598, 43599, 43600, 43601, 43602, 43603, 43604, 43605, 43606, 43607, 43608, 43609, 43610, 43611, 43612, 43613, 43614, 43615, 43616, 43617, 43618, 43619, 43620, 43621, 43622, 43623, 43624, 43625, 43626, 43627, 43628, 43629, 43630, 43631, 43632, 43633, 43634, 43635, 43636, 43637, 43638, 43639, 43640, 43641, 43642, 43643, 43644, 43645, 43646, 43647, 43648, 43649, 43650, 43651, 43652, 43653, 43654, 43655, 43656, 43657, 43658, 43659, 43660, 43661, 43662, 43663, 43664, 43665, 43666, 43667, 43668, 43669, 43670, 43671, 43672, 43673, 43674, 43675, 43676, 0, 43678, 43679, 43680, 43681, 43682, 43683, 43684, 43685, 43686, 43687, 43688, 43689, 43690, 43691, 43692, 43693, 43694, 43695, 43696, 43697, 43698, 43699, 43700, 43701, 43702, 43703, 43704, 43705, 43706, 43707, 43708, 43709, 43710, 43711, 43712, 43713, 43714, 43715, 43716, 43717, 43718, 43719, 43720, 43721, 43722, 43723, 43724, 43725, 43726, 43727, 43728, 43729, 43730, 43731, 43732, 43733, 43734, 43735, 43736, 43737, 43738, 43739, 43740, 43741, 43742, 43743, 43744, 43745, 43746, 43747, 43748, 43749, 43750, 43751, 43752, 43753, 43754, 43755, 43756, 43757, 43758, 43759, 43760, 43761, 43762, 43763, 43764, 43765, 43766, 43767, 43768, 43769, 43770, 43771, 43772, 43773, 43774, 43775, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p2AE: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 29067, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 11729, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 44544, 44545, 44546, 44547, 44548, 44549, 44550, 44551, 44552, 44553, 44554, 44555, 44556, 44557, 44558, 44559, 44560, 44561, 44562, 44563, 44564, 44565, 44566, 44567, 44568, 44569, 44570, 44571, 44572, 44573, 44574, 44575, 44576, 44577, 44578, 44579, 44580, 44581, 44582, 44583, 44584, 44585, 44586, 44587, 44588, 44589, 44590, 44591, 44592, 44593, 44594, 44595, 44596, 44597, 44598, 44599, 44600, 44601, 44602, 44603, 44604, 44605, 44606, 44607, 44608, 44609, 44610, 44611, 44612, 44613, 44614, 44615, 44616, 44617, 44618, 44619, 44620, 44621, 44622, 44623, 44624, 44625, 44626, 44627, 44628, 44629, 44630, 44631, 44632, 44633, 44634, 44635, 44636, 44637, 44638, 44639, 44640, 44641, 44642, 44643, 44644, 44645, 44646, 44647, 44648, 44649, 44650, 44651, 44652, 44653, 44654, 44655, 44656, 44657, 44658, 44659, 44660, 44661, 44662, 44663, 44664, 44665, 44666, 44667, 44668, 44669, 44670, 44671, 44672, 44673, 44674, 44675, 44676, 44677, 44678, 44679, 44680, 44681, 44682, 44683, 44684, 44685, 44686, 44687, 44688, 44689, 44690, 44691, 44692, 44693, 44694, 44695, 44696, 44697, 44698, 44699, 44700, 44701, 44702, 44703, 44704, 44705, 44706, 44707, 44708, 44709, 44710, 44711, 44712, 44713, 44714, 44715, 44716, 44717, 44718, 44719, 44720, 44721, 44722, 44723, 44724, 44725, 44726, 44727, 44728, 0, 44730, 44731, 44732, 44733, 44734, 44735, 44736, 44737, 44738, 44739, 44740, 44741, 44742, 44743, 44744, 44745, 44746, 44747, 44748, 44749, 44750, 44751, 0, 44753, 44754, 44755, 44756, 44757, 44758, 44759, 44760, 44761, 44762, 44763, 44764, 44765, 44766, 44767, 44768, 44769, 44770, 44771, 44772, 44773, 44774, 44775, 44776, 44777, 44778, 44779, 44780, 44781, 44782, 44783, 44784, 44785, 44786, 44787, 44788, 44789, 44790, 44791, 44792, 44793, 44794, 44795, 44796, 44797, 44798, 44799, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p2AF: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 39599, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 44800, 44801, 44802, 44803, 44804, 44805, 44806, 44807, 44808, 44809, 44810, 44811, 44812, 44813, 44814, 44815, 44816, 44817, 44818, 44819, 44820, 44821, 44822, 44823, 44824, 44825, 44826, 44827, 44828, 44829, 44830, 44831, 44832, 44833, 44834, 44835, 44836, 44837, 44838, 44839, 44840, 44841, 44842, 44843, 44844, 44845, 44846, 44847, 44848, 44849, 44850, 44851, 44852, 44853, 44854, 44855, 44856, 44857, 44858, 44859, 44860, 44861, 44862, 44863, 44864, 44865, 44866, 44867, 44868, 44869, 44870, 44871, 44872, 44873, 44874, 44875, 44876, 44877, 44878, 44879, 44880, 44881, 44882, 44883, 44884, 44885, 44886, 44887, 44888, 44889, 44890, 44891, 44892, 44893, 44894, 44895, 44896, 44897, 44898, 44899, 44900, 44901, 44902, 44903, 44904, 44905, 44906, 44907, 44908, 44909, 44910, 44911, 44912, 44913, 44914, 44915, 44916, 44917, 44918, 44919, 44920, 44921, 44922, 44923, 44924, 44925, 44926, 44927, 44928, 44929, 44930, 44931, 44932, 44933, 44934, 44935, 44936, 44937, 44938, 44939, 44940, 44941, 44942, 44943, 44944, 44945, 44946, 44947, 44948, 44949, 44950, 44951, 44952, 44953, 44954, 44955, 44956, 44957, 44958, 44959, 44960, 44961, 0, 44963, 44964, 44965, 44966, 44967, 44968, 44969, 44970, 44971, 44972, 44973, 44974, 44975, 44976, 44977, 44978, 44979, 44980, 44981, 44982, 44983, 44984, 44985, 44986, 44987, 44988, 44989, 44990, 44991, 44992, 44993, 44994, 44995, 44996, 44997, 44998, 44999, 45000, 45001, 45002, 45003, 45004, 45005, 45006, 45007, 45008, 45009, 45010, 45011, 45012, 45013, 45014, 45015, 45016, 45017, 45018, 45019, 45020, 45021, 45022, 45023, 45024, 45025, 45026, 45027, 45028, 45029, 45030, 45031, 45032, 45033, 45034, 45035, 45036, 45037, 45038, 45039, 45040, 45041, 45042, 45043, 45044, 45045, 45046, 45047, 45048, 45049, 45050, 45051, 45052, 45053, 45054, 45055, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p2B0: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 24396, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 14770, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 35335, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 22851, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 45056, 45057, 45058, 45059, 45060, 45061, 45062, 45063, 45064, 45065, 45066, 45067, 45068, 45069, 45070, 45071, 45072, 45073, 45074, 45075, 45076, 45077, 45078, 45079, 45080, 45081, 45082, 45083, 45084, 45085, 45086, 45087, 45088, 45089, 45090, 45091, 45092, 45093, 45094, 45095, 45096, 45097, 45098, 45099, 45100, 45101, 45102, 45103, 45104, 45105, 45106, 45107, 45108, 45109, 45110, 45111, 45112, 45113, 45114, 45115, 45116, 45117, 45118, 45119, 45120, 45121, 45122, 45123, 45124, 45125, 45126, 45127, 45128, 45129, 45130, 45131, 45132, 45133, 45134, 45135, 45136, 45137, 45138, 45139, 45140, 45141, 45142, 45143, 45144, 45145, 45146, 45147, 45148, 45149, 45150, 45151, 45152, 0, 45154, 45155, 45156, 45157, 45158, 45159, 45160, 45161, 45162, 45163, 45164, 45165, 45166, 45167, 45168, 45169, 45170, 45171, 45172, 45173, 45174, 45175, 45176, 45177, 45178, 45179, 45180, 45181, 45182, 45183, 45184, 45185, 45186, 45187, 45188, 45189, 45190, 45191, 0, 45193, 45194, 45195, 45196, 45197, 45198, 45199, 45200, 45201, 45202, 45203, 45204, 45205, 45206, 45207, 45208, 0, 45210, 45211, 45212, 45213, 45214, 45215, 45216, 45217, 45218, 45219, 45220, 45221, 45222, 45223, 45224, 45225, 45226, 45227, 45228, 45229, 45230, 45231, 45232, 45233, 45234, 45235, 45236, 45237, 45238, 45239, 45240, 45241, 45242, 45243, 45244, 45245, 45246, 45247, 45248, 45249, 45250, 45251, 45252, 45253, 45254, 45255, 45256, 45257, 45258, 45259, 45260, 45261, 45262, 45263, 45264, 45265, 45266, 45267, 45268, 45269, 45270, 45271, 45272, 45273, 45274, 45275, 0, 45277, 45278, 45279, 45280, 45281, 45282, 45283, 45284, 45285, 45286, 45287, 45288, 45289, 45290, 45291, 45292, 45293, 45294, 45295, 45296, 45297, 45298, 45299, 45300, 45301, 45302, 45303, 45304, 45305, 45306, 45307, 45308, 45309, 45310, 45311, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p2B1: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 10654, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 41274, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 45312, 45313, 45314, 45315, 45316, 45317, 45318, 45319, 45320, 45321, 45322, 45323, 45324, 45325, 45326, 45327, 45328, 45329, 45330, 45331, 45332, 45333, 45334, 45335, 45336, 45337, 45338, 45339, 45340, 45341, 45342, 45343, 45344, 45345, 45346, 45347, 45348, 45349, 45350, 45351, 0, 45353, 45354, 45355, 45356, 45357, 45358, 45359, 45360, 45361, 45362, 45363, 45364, 45365, 45366, 45367, 0, 45369, 45370, 45371, 45372, 45373, 45374, 45375, 45376, 45377, 45378, 45379, 45380, 45381, 45382, 45383, 45384, 45385, 45386, 45387, 45388, 45389, 45390, 45391, 45392, 45393, 45394, 45395, 45396, 45397, 45398, 45399, 45400, 45401, 45402, 45403, 45404, 45405, 45406, 45407, 45408, 45409, 45410, 45411, 45412, 45413, 45414, 45415, 45416, 45417, 45418, 45419, 45420, 45421, 45422, 45423, 45424, 45425, 45426, 45427, 45428, 45429, 45430, 45431, 45432, 45433, 45434, 45435, 45436, 45437, 45438, 45439, 45440, 45441, 45442, 45443, 45444, 45445, 45446, 45447, 45448, 45449, 45450, 45451, 45452, 45453, 45454, 45455, 45456, 45457, 45458, 45459, 45460, 45461, 45462, 45463, 45464, 45465, 45466, 45467, 45468, 45469, 45470, 45471, 45472, 45473, 45474, 45475, 45476, 45477, 45478, 45479, 45480, 45481, 45482, 45483, 45484, 45485, 45486, 45487, 45488, 45489, 45490, 45491, 45492, 45493, 45494, 45495, 45496, 45497, 45498, 45499, 45500, 45501, 45502, 45503, 45504, 45505, 45506, 45507, 45508, 45509, 45510, 45511, 45512, 45513, 45514, 45515, 45516, 45517, 45518, 45519, 45520, 45521, 45522, 45523, 45524, 45525, 45526, 45527, 45528, 45529, 45530, 45531, 45532, 45533, 45534, 45535, 45536, 45537, 45538, 45539, 45540, 45541, 45542, 45543, 45544, 45545, 45546, 45547, 45548, 45549, 45550, 45551, 45552, 45553, 45554, 45555, 45556, 45557, 45558, 45559, 45560, 45561, 45562, 45563, 45564, 45565, 45566, 45567, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p2B2: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 30872, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 16210, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 45568, 45569, 45570, 45571, 45572, 45573, 45574, 45575, 45576, 45577, 45578, 45579, 45580, 45581, 45582, 45583, 45584, 45585, 45586, 45587, 45588, 45589, 45590, 45591, 45592, 45593, 45594, 45595, 45596, 45597, 45598, 45599, 45600, 45601, 45602, 45603, 45604, 45605, 45606, 45607, 45608, 45609, 45610, 45611, 45612, 45613, 45614, 45615, 0, 45617, 45618, 45619, 45620, 45621, 45622, 45623, 45624, 45625, 45626, 45627, 45628, 45629, 45630, 45631, 45632, 45633, 45634, 45635, 45636, 45637, 45638, 45639, 45640, 45641, 45642, 45643, 45644, 45645, 45646, 45647, 45648, 45649, 45650, 45651, 45652, 45653, 45654, 45655, 45656, 45657, 45658, 45659, 45660, 45661, 45662, 45663, 45664, 45665, 45666, 45667, 45668, 45669, 45670, 45671, 45672, 45673, 45674, 45675, 45676, 45677, 45678, 45679, 45680, 45681, 45682, 45683, 45684, 45685, 45686, 45687, 45688, 45689, 45690, 45691, 45692, 45693, 45694, 45695, 45696, 45697, 45698, 45699, 45700, 45701, 45702, 45703, 45704, 45705, 45706, 45707, 45708, 45709, 45710, 45711, 45712, 45713, 45714, 45715, 45716, 45717, 45718, 45719, 45720, 45721, 45722, 45723, 45724, 45725, 45726, 45727, 45728, 45729, 45730, 45731, 45732, 45733, 45734, 45735, 45736, 45737, 45738, 45739, 45740, 45741, 45742, 45743, 45744, 45745, 45746, 45747, 45748, 45749, 45750, 45751, 45752, 45753, 45754, 45755, 45756, 45757, 45758, 45759, 45760, 45761, 45762, 45763, 45764, 45765, 45766, 45767, 45768, 45769, 45770, 45771, 45772, 45773, 45774, 45775, 0, 45777, 45778, 45779, 45780, 45781, 45782, 45783, 45784, 45785, 45786, 45787, 45788, 45789, 45790, 45791, 45792, 45793, 45794, 45795, 45796, 45797, 45798, 45799, 45800, 45801, 45802, 45803, 45804, 45805, 45806, 45807, 45808, 45809, 45810, 45811, 45812, 45813, 45814, 45815, 45816, 45817, 45818, 45819, 45820, 45821, 45822, 45823, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p2B3: 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 19406, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 26358, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 42900, 48579, 48579, 48579, 48579, 48579, 42652, 48579, 48579, 28331, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 39004, 48579, 39990, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 22061, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 45825, 45826, 45827, 45828, 45829, 45830, 45831, 45832, 45833, 45834, 45835, 45836, 45837, 45838, 45839, 45840, 45841, 45842, 45843, 45844, 45845, 45846, 45847, 45848, 45849, 45850, 45851, 45852, 45853, 45854, 45855, 45856, 45857, 45858, 45859, 45860, 45861, 45862, 45863, 0, 45865, 45866, 45867, 45868, 45869, 45870, 45871, 45872, 45873, 45874, 45875, 45876, 45877, 45878, 45879, 45880, 45881, 45882, 45883, 45884, 45885, 45886, 45887, 45888, 45889, 45890, 45891, 45892, 45893, 45894, 45895, 45896, 45897, 45898, 45899, 45900, 45901, 45902, 45903, 45904, 45905, 45906, 45907, 45908, 45909, 45910, 45911, 45912, 0, 45914, 45915, 45916, 45917, 45918, 0, 45920, 45921, 0, 45923, 45924, 45925, 45926, 45927, 45928, 45929, 45930, 45931, 45932, 45933, 45934, 45935, 0, 45937, 0, 45939, 45940, 45941, 45942, 45943, 45944, 45945, 45946, 45947, 45948, 45949, 45950, 45951, 45952, 45953, 45954, 45955, 45956, 45957, 45958, 45959, 45960, 45961, 45962, 45963, 45964, 45965, 45966, 45967, 45968, 45969, 45970, 45971, 45972, 45973, 45974, 45975, 45976, 45977, 45978, 45979, 45980, 45981, 45982, 45983, 45984, 45985, 45986, 45987, 45988, 45989, 45990, 45991, 45992, 45993, 45994, 45995, 45996, 45997, 45998, 45999, 46000, 46001, 46002, 46003, 46004, 46005, 46006, 46007, 46008, 46009, 46010, 46011, 46012, 46013, 46014, 46015, 46016, 46017, 46018, 46019, 46020, 46021, 46022, 46023, 46024, 46025, 46026, 0, 46028, 46029, 46030, 46031, 46032, 46033, 46034, 46035, 46036, 46037, 46038, 46039, 46040, 46041, 46042, 46043, 46044, 46045, 46046, 46047, 46048, 46049, 46050, 46051, 46052, 46053, 46054, 46055, 46056, 46057, 46058, 46059, 46060, 46061, 46062, 46063, 46064, 46065, 46066, 46067, 46068, 46069, 46070, 46071, 46072, 46073, 46074, 46075, 46076, 46077, 46078, 46079, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p2B4: 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48579, 48579, 48579, 48579, 44963, 48579, 23005, 48579, 48579, 25272, 48579, 48579, 48579, 48579, 48579, 48579, 28501, 48579, 48579, 9362, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 17264, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 15102, 48579, 11732, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 46080, 46081, 46082, 46083, 0, 46085, 0, 46087, 46088, 0, 46090, 46091, 46092, 46093, 46094, 46095, 0, 46097, 46098, 0, 46100, 46101, 46102, 46103, 46104, 46105, 46106, 46107, 46108, 46109, 46110, 46111, 46112, 46113, 46114, 46115, 46116, 46117, 46118, 46119, 46120, 46121, 46122, 46123, 46124, 46125, 46126, 46127, 46128, 46129, 46130, 46131, 46132, 46133, 46134, 46135, 46136, 46137, 46138, 46139, 46140, 46141, 46142, 46143, 46144, 46145, 46146, 46147, 46148, 46149, 46150, 46151, 46152, 46153, 46154, 46155, 46156, 46157, 46158, 46159, 46160, 46161, 46162, 46163, 46164, 46165, 46166, 46167, 46168, 46169, 46170, 46171, 46172, 46173, 46174, 46175, 46176, 46177, 46178, 46179, 46180, 46181, 46182, 46183, 46184, 46185, 46186, 46187, 46188, 46189, 46190, 46191, 46192, 46193, 46194, 46195, 46196, 46197, 46198, 46199, 46200, 46201, 46202, 46203, 46204, 46205, 46206, 46207, 46208, 46209, 46210, 46211, 46212, 46213, 46214, 46215, 46216, 46217, 46218, 46219, 46220, 46221, 46222, 46223, 46224, 46225, 46226, 46227, 46228, 46229, 46230, 46231, 46232, 46233, 46234, 46235, 46236, 46237, 46238, 46239, 46240, 46241, 46242, 46243, 46244, 46245, 46246, 46247, 46248, 46249, 46250, 46251, 46252, 46253, 46254, 46255, 46256, 46257, 46258, 46259, 46260, 46261, 0, 46263, 46264, 46265, 46266, 46267, 46268, 46269, 46270, 46271, 46272, 46273, 46274, 46275, 46276, 46277, 46278, 46279, 46280, 46281, 46282, 46283, 46284, 46285, 46286, 46287, 46288, 46289, 46290, 46291, 46292, 46293, 46294, 46295, 46296, 46297, 46298, 46299, 46300, 46301, 46302, 46303, 46304, 46305, 46306, 46307, 46308, 46309, 46310, 0, 46312, 0, 46314, 46315, 46316, 46317, 46318, 46319, 46320, 46321, 46322, 46323, 46324, 46325, 46326, 46327, 46328, 46329, 46330, 46331, 46332, 46333, 46334, 46335, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p2B5: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 22206, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 44924, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 46010, 48579, 48579, 48579, 48579, 48579, 9364, 35254, 48579, 48579, 48579, 48579, 48579, 48579, 18746, 48579, 48579, 48579, 48579, 48579, 45875, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 46336, 46337, 46338, 46339, 46340, 46341, 46342, 46343, 46344, 46345, 46346, 46347, 46348, 46349, 0, 46351, 46352, 46353, 46354, 46355, 46356, 46357, 46358, 46359, 46360, 46361, 46362, 46363, 46364, 46365, 46366, 46367, 46368, 46369, 46370, 46371, 46372, 46373, 46374, 46375, 46376, 46377, 46378, 46379, 46380, 46381, 46382, 46383, 46384, 46385, 46386, 46387, 46388, 46389, 46390, 46391, 46392, 46393, 46394, 46395, 46396, 46397, 46398, 46399, 46400, 46401, 46402, 46403, 46404, 46405, 46406, 46407, 46408, 46409, 46410, 46411, 46412, 46413, 46414, 46415, 46416, 46417, 46418, 46419, 46420, 46421, 46422, 46423, 46424, 46425, 46426, 46427, 46428, 46429, 46430, 46431, 46432, 46433, 46434, 46435, 46436, 46437, 46438, 46439, 46440, 46441, 46442, 46443, 46444, 46445, 46446, 46447, 46448, 46449, 46450, 46451, 46452, 46453, 46454, 46455, 46456, 46457, 46458, 46459, 46460, 46461, 46462, 46463, 46464, 46465, 46466, 46467, 46468, 46469, 46470, 46471, 46472, 46473, 46474, 46475, 46476, 46477, 46478, 46479, 46480, 46481, 46482, 46483, 46484, 46485, 46486, 46487, 46488, 46489, 46490, 46491, 46492, 46493, 46494, 46495, 46496, 46497, 46498, 46499, 46500, 46501, 46502, 46503, 46504, 46505, 46506, 46507, 46508, 46509, 46510, 46511, 46512, 46513, 46514, 46515, 46516, 46517, 46518, 46519, 0, 46521, 46522, 46523, 46524, 46525, 46526, 46527, 46528, 46529, 46530, 46531, 46532, 46533, 46534, 46535, 46536, 46537, 46538, 46539, 46540, 46541, 46542, 46543, 46544, 46545, 46546, 46547, 46548, 46549, 46550, 46551, 46552, 46553, 46554, 46555, 46556, 46557, 46558, 46559, 0, 46561, 46562, 46563, 46564, 46565, 0, 0, 46568, 46569, 46570, 46571, 46572, 46573, 0, 46575, 46576, 46577, 46578, 46579, 0, 46581, 46582, 46583, 46584, 46585, 46586, 46587, 46588, 46589, 46590, 46591, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p2B6: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 22090, 48579, 48579, 48579, 48579, 48579, 17316, 7266, 48579, 48579, 48579, 36350, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 40901, 17910, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 15221, 48579, 18933, 34139, 48579, 48579, 48579, 30310, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 25114, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 46654, 48579, 48579, 22107, 48579, 48579, 48579, 28892, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 10875, 48579, 36370, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 46592, 46593, 46594, 46595, 46596, 46597, 46598, 46599, 46600, 46601, 46602, 46603, 46604, 46605, 46606, 46607, 46608, 46609, 46610, 46611, 46612, 46613, 46614, 46615, 46616, 46617, 46618, 46619, 46620, 0, 46622, 46623, 46624, 46625, 46626, 0, 0, 46629, 46630, 46631, 0, 46633, 46634, 46635, 46636, 46637, 46638, 46639, 46640, 46641, 46642, 46643, 46644, 46645, 46646, 46647, 46648, 46649, 46650, 46651, 46652, 46653, 46654, 46655, 46656, 46657, 46658, 46659, 46660, 46661, 46662, 46663, 46664, 46665, 46666, 46667, 46668, 46669, 46670, 46671, 46672, 46673, 46674, 46675, 46676, 46677, 46678, 46679, 46680, 46681, 46682, 46683, 46684, 46685, 46686, 46687, 46688, 46689, 46690, 46691, 46692, 46693, 46694, 46695, 46696, 46697, 46698, 46699, 46700, 46701, 46702, 46703, 46704, 46705, 46706, 46707, 46708, 46709, 46710, 46711, 46712, 46713, 46714, 46715, 46716, 46717, 46718, 46719, 46720, 46721, 46722, 46723, 46724, 46725, 46726, 46727, 0, 0, 46730, 46731, 46732, 46733, 46734, 46735, 46736, 46737, 0, 46739, 0, 0, 46742, 46743, 46744, 0, 46746, 46747, 46748, 46749, 46750, 46751, 46752, 46753, 46754, 46755, 46756, 46757, 46758, 46759, 46760, 46761, 46762, 46763, 46764, 0, 46766, 46767, 46768, 46769, 46770, 46771, 46772, 46773, 46774, 46775, 46776, 46777, 46778, 46779, 46780, 46781, 46782, 46783, 46784, 46785, 46786, 46787, 46788, 46789, 46790, 46791, 46792, 46793, 46794, 46795, 46796, 46797, 46798, 46799, 46800, 46801, 46802, 46803, 46804, 46805, 46806, 46807, 46808, 46809, 46810, 0, 46812, 46813, 0, 46815, 46816, 46817, 0, 46819, 46820, 46821, 46822, 46823, 46824, 46825, 46826, 46827, 46828, 46829, 46830, 46831, 46832, 46833, 46834, 46835, 46836, 46837, 0, 46839, 0, 46841, 46842, 46843, 46844, 46845, 46846, 46847, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p2B8: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 63015, 63015, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 43314, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 47104, 47105, 47106, 47107, 47108, 47109, 47110, 47111, 47112, 47113, 47114, 47115, 47116, 47117, 47118, 47119, 47120, 47121, 47122, 47123, 47124, 47125, 47126, 47127, 47128, 47129, 47130, 47131, 47132, 47133, 47134, 47135, 47136, 47137, 47138, 47139, 47140, 47141, 47142, 47143, 47144, 47145, 47146, 47147, 47148, 47149, 47150, 47151, 47152, 47153, 47154, 47155, 47156, 47157, 47158, 47159, 47160, 47161, 47162, 47163, 47164, 47165, 47166, 47167, 47168, 47169, 47170, 47171, 47172, 47173, 47174, 47175, 47176, 47177, 47178, 47179, 47180, 47181, 47182, 47183, 47184, 0, 47186, 47187, 47188, 47189, 47190, 47191, 47192, 47193, 47194, 47195, 47196, 47197, 47198, 47199, 47200, 47201, 47202, 47203, 47204, 47205, 47206, 47207, 47208, 47209, 47210, 47211, 47212, 47213, 47214, 47215, 47216, 47217, 47218, 47219, 47220, 47221, 47222, 47223, 47224, 47225, 47226, 47227, 47228, 47229, 47230, 47231, 47232, 47233, 47234, 47235, 47236, 47237, 47238, 47239, 47240, 47241, 47242, 47243, 47244, 47245, 47246, 47247, 47248, 47249, 47250, 47251, 47252, 47253, 47254, 47255, 47256, 47257, 47258, 47259, 47260, 47261, 47262, 47263, 47264, 47265, 47266, 47267, 47268, 47269, 47270, 47271, 47272, 47273, 47274, 47275, 47276, 47277, 47278, 47279, 47280, 47281, 47282, 47283, 47284, 47285, 47286, 47287, 47288, 47289, 47290, 47291, 47292, 47293, 47294, 47295, 47296, 47297, 47298, 47299, 47300, 47301, 47302, 47303, 47304, 47305, 47306, 47307, 47308, 47309, 47310, 47311, 47312, 47313, 47314, 47315, 47316, 47317, 47318, 47319, 47320, 47321, 47322, 47323, 47324, 47325, 47326, 47327, 47328, 47329, 47330, 47331, 47332, 47333, 47334, 47335, 47336, 47337, 47338, 47339, 47340, 47341, 47342, 47343, 47344, 47345, 47346, 47347, 47348, 47349, 47350, 47351, 47352, 47353, 47354, 47355, 47356, 47357, 47358, 47359, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p2C4: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 37184, 48579, 48579, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 50176, 50177, 50178, 50179, 50180, 50181, 50182, 50183, 50184, 50185, 50186, 50187, 50188, 50189, 50190, 50191, 50192, 50193, 50194, 50195, 50196, 50197, 50198, 50199, 50200, 50201, 50202, 50203, 50204, 50205, 50206, 50207, 50208, 50209, 50210, 50211, 50212, 50213, 50214, 50215, 50216, 50217, 50218, 50219, 50220, 50221, 50222, 50223, 50224, 50225, 50226, 50227, 50228, 50229, 50230, 50231, 50232, 50233, 50234, 50235, 50236, 50237, 50238, 50239, 50240, 50241, 50242, 50243, 50244, 50245, 50246, 50247, 50248, 50249, 50250, 50251, 50252, 50253, 50254, 50255, 50256, 50257, 50258, 50259, 50260, 50261, 50262, 50263, 50264, 50265, 50266, 50267, 50268, 50269, 50270, 50271, 50272, 50273, 50274, 50275, 50276, 50277, 50278, 50279, 50280, 50281, 50282, 50283, 50284, 50285, 50286, 50287, 50288, 50289, 50290, 50291, 50292, 50293, 50294, 50295, 50296, 50297, 50298, 50299, 50300, 50301, 50302, 50303, 50304, 50305, 50306, 50307, 50308, 50309, 50310, 50311, 50312, 50313, 50314, 50315, 50316, 50317, 50318, 50319, 50320, 50321, 50322, 50323, 50324, 50325, 50326, 50327, 50328, 50329, 50330, 50331, 50332, 50333, 50334, 50335, 50336, 50337, 50338, 50339, 50340, 50341, 50342, 50343, 50344, 50345, 50346, 50347, 50348, 50349, 50350, 50351, 50352, 50353, 50354, 50355, 50356, 50357, 50358, 50359, 50360, 50361, 50362, 50363, 50364, 50365, 50366, 50367, 50368, 50369, 50370, 50371, 50372, 50373, 50374, 50375, 50376, 50377, 50378, 50379, 50380, 50381, 50382, 50383, 50384, 50385, 50386, 50387, 50388, 50389, 50390, 50391, 50392, 50393, 50394, 50395, 50396, 50397, 50398, 50399, 50400, 50401, 50402, 50403, 50404, 50405, 50406, 50407, 50408, 50409, 50410, 50411, 50412, 50413, 50414, 50415, 50416, 50417, 50418, 50419, 50420, 50421, 50422, 50423, 50424, 50425, 50426, 50427, 0, 50429, 50430, 50431, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p2C6: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 10368, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 50688, 50689, 50690, 50691, 50692, 50693, 50694, 50695, 50696, 50697, 50698, 50699, 50700, 50701, 50702, 50703, 50704, 50705, 50706, 50707, 50708, 50709, 50710, 50711, 50712, 50713, 50714, 50715, 50716, 50717, 50718, 50719, 50720, 50721, 50722, 50723, 50724, 50725, 50726, 50727, 50728, 50729, 50730, 50731, 50732, 0, 50734, 50735, 50736, 50737, 50738, 50739, 50740, 50741, 50742, 50743, 50744, 50745, 50746, 50747, 50748, 50749, 50750, 50751, 50752, 50753, 50754, 50755, 50756, 50757, 50758, 50759, 50760, 50761, 50762, 50763, 50764, 50765, 50766, 50767, 50768, 50769, 50770, 50771, 50772, 50773, 50774, 50775, 50776, 50777, 50778, 50779, 50780, 50781, 50782, 50783, 50784, 50785, 50786, 50787, 50788, 50789, 50790, 50791, 50792, 50793, 50794, 50795, 50796, 50797, 50798, 50799, 50800, 50801, 50802, 50803, 50804, 50805, 50806, 50807, 50808, 50809, 50810, 50811, 50812, 50813, 50814, 50815, 50816, 50817, 50818, 50819, 50820, 50821, 50822, 50823, 50824, 50825, 50826, 50827, 50828, 50829, 50830, 50831, 50832, 50833, 50834, 50835, 50836, 50837, 50838, 50839, 50840, 50841, 50842, 50843, 50844, 50845, 50846, 50847, 50848, 50849, 50850, 50851, 50852, 50853, 50854, 50855, 50856, 50857, 50858, 50859, 50860, 50861, 50862, 50863, 50864, 50865, 50866, 50867, 50868, 50869, 50870, 50871, 50872, 50873, 50874, 50875, 50876, 50877, 50878, 50879, 50880, 50881, 50882, 50883, 50884, 50885, 50886, 50887, 50888, 50889, 50890, 50891, 50892, 50893, 50894, 50895, 50896, 50897, 50898, 50899, 50900, 50901, 50902, 50903, 50904, 50905, 50906, 50907, 50908, 50909, 50910, 50911, 50912, 50913, 50914, 50915, 50916, 50917, 50918, 50919, 50920, 50921, 50922, 50923, 50924, 50925, 50926, 50927, 50928, 50929, 50930, 50931, 50932, 50933, 50934, 50935, 50936, 50937, 50938, 50939, 50940, 50941, 50942, 50943, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p2C9: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 47689, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 51456, 51457, 51458, 51459, 51460, 51461, 51462, 51463, 51464, 51465, 51466, 51467, 51468, 51469, 51470, 51471, 51472, 51473, 51474, 51475, 51476, 51477, 51478, 51479, 51480, 51481, 51482, 51483, 51484, 51485, 51486, 51487, 51488, 51489, 51490, 51491, 51492, 0, 51494, 51495, 51496, 51497, 51498, 51499, 51500, 51501, 51502, 51503, 51504, 51505, 51506, 51507, 51508, 51509, 51510, 51511, 51512, 51513, 51514, 51515, 51516, 51517, 51518, 51519, 51520, 51521, 51522, 51523, 51524, 51525, 51526, 51527, 51528, 51529, 51530, 51531, 51532, 51533, 51534, 51535, 51536, 51537, 51538, 51539, 51540, 51541, 51542, 51543, 51544, 51545, 51546, 51547, 51548, 51549, 51550, 51551, 51552, 51553, 51554, 51555, 51556, 51557, 51558, 51559, 51560, 51561, 51562, 51563, 51564, 51565, 51566, 51567, 51568, 51569, 51570, 51571, 51572, 51573, 51574, 51575, 51576, 51577, 51578, 51579, 51580, 51581, 51582, 51583, 51584, 51585, 51586, 51587, 51588, 51589, 51590, 51591, 51592, 51593, 51594, 51595, 51596, 51597, 51598, 51599, 51600, 51601, 51602, 51603, 51604, 51605, 51606, 51607, 51608, 51609, 51610, 51611, 51612, 51613, 51614, 51615, 51616, 51617, 51618, 51619, 51620, 51621, 51622, 51623, 51624, 51625, 51626, 51627, 51628, 51629, 51630, 51631, 51632, 51633, 51634, 51635, 51636, 51637, 51638, 51639, 51640, 51641, 51642, 51643, 51644, 51645, 51646, 51647, 51648, 51649, 51650, 51651, 51652, 51653, 51654, 51655, 51656, 51657, 51658, 51659, 51660, 51661, 51662, 51663, 51664, 51665, 51666, 51667, 51668, 51669, 51670, 51671, 51672, 51673, 51674, 51675, 51676, 51677, 51678, 51679, 51680, 51681, 51682, 51683, 51684, 51685, 51686, 51687, 51688, 51689, 51690, 51691, 51692, 51693, 51694, 51695, 51696, 51697, 51698, 51699, 51700, 51701, 51702, 51703, 51704, 51705, 51706, 51707, 51708, 51709, 51710, 51711, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p2CB: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 37172, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 51968, 51969, 51970, 51971, 51972, 51973, 51974, 51975, 51976, 51977, 51978, 51979, 51980, 51981, 51982, 51983, 51984, 51985, 51986, 51987, 51988, 51989, 51990, 51991, 51992, 51993, 51994, 51995, 51996, 51997, 51998, 51999, 52000, 52001, 52002, 52003, 52004, 52005, 52006, 52007, 52008, 52009, 52010, 52011, 52012, 52013, 52014, 52015, 52016, 52017, 52018, 52019, 52020, 52021, 52022, 52023, 52024, 52025, 52026, 52027, 52028, 52029, 52030, 52031, 52032, 52033, 52034, 52035, 52036, 52037, 52038, 52039, 52040, 52041, 52042, 52043, 52044, 52045, 52046, 52047, 52048, 52049, 52050, 52051, 52052, 52053, 52054, 52055, 52056, 52057, 52058, 52059, 52060, 52061, 52062, 52063, 52064, 52065, 52066, 52067, 52068, 52069, 52070, 52071, 52072, 52073, 52074, 52075, 52076, 52077, 52078, 52079, 52080, 52081, 52082, 52083, 52084, 52085, 52086, 52087, 52088, 52089, 52090, 52091, 52092, 52093, 52094, 52095, 52096, 52097, 52098, 52099, 52100, 52101, 52102, 52103, 52104, 52105, 52106, 52107, 52108, 52109, 52110, 52111, 52112, 52113, 52114, 52115, 52116, 52117, 52118, 52119, 52120, 52121, 52122, 52123, 52124, 52125, 52126, 52127, 52128, 52129, 52130, 52131, 52132, 52133, 52134, 52135, 52136, 52137, 52138, 52139, 52140, 52141, 52142, 52143, 52144, 52145, 52146, 52147, 52148, 52149, 52150, 52151, 52152, 52153, 52154, 52155, 52156, 52157, 52158, 52159, 52160, 52161, 52162, 52163, 52164, 52165, 52166, 52167, 52168, 52169, 52170, 52171, 52172, 52173, 0, 52175, 52176, 52177, 52178, 52179, 52180, 52181, 52182, 52183, 52184, 52185, 52186, 52187, 52188, 52189, 52190, 52191, 52192, 52193, 52194, 52195, 52196, 52197, 52198, 52199, 52200, 52201, 52202, 52203, 52204, 52205, 52206, 52207, 52208, 52209, 52210, 52211, 52212, 52213, 52214, 52215, 52216, 52217, 52218, 52219, 52220, 52221, 52222, 52223, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_p2CE: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 39374, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 52736, 52737, 52738, 52739, 52740, 52741, 52742, 52743, 52744, 52745, 52746, 52747, 52748, 52749, 52750, 52751, 52752, 52753, 52754, 52755, 52756, 52757, 52758, 52759, 52760, 52761, 52762, 52763, 52764, 52765, 52766, 52767, 52768, 52769, 52770, 0, 52772, 52773, 52774, 52775, 52776, 52777, 52778, 52779, 52780, 52781, 52782, 52783, 52784, 52785, 52786, 52787, 52788, 52789, 52790, 52791, 52792, 52793, 52794, 52795, 52796, 52797, 52798, 52799, 52800, 52801, 52802, 52803, 52804, 52805, 52806, 52807, 52808, 52809, 52810, 52811, 52812, 52813, 52814, 52815, 52816, 52817, 52818, 52819, 52820, 52821, 52822, 52823, 52824, 52825, 52826, 52827, 52828, 52829, 52830, 52831, 52832, 52833, 52834, 52835, 52836, 52837, 52838, 52839, 52840, 52841, 52842, 52843, 52844, 52845, 52846, 52847, 52848, 52849, 52850, 52851, 52852, 52853, 52854, 52855, 52856, 52857, 52858, 52859, 52860, 52861, 52862, 52863, 52864, 52865, 52866, 52867, 52868, 52869, 52870, 52871, 52872, 52873, 52874, 52875, 52876, 52877, 52878, 52879, 52880, 52881, 52882, 52883, 52884, 52885, 52886, 52887, 52888, 52889, 52890, 52891, 52892, 52893, 52894, 52895, 52896, 52897, 52898, 52899, 52900, 52901, 52902, 52903, 52904, 52905, 52906, 52907, 52908, 52909, 52910, 52911, 52912, 52913, 52914, 52915, 52916, 52917, 52918, 52919, 52920, 52921, 52922, 52923, 52924, 52925, 52926, 52927, 52928, 52929, 52930, 52931, 52932, 52933, 52934, 52935, 52936, 52937, 52938, 52939, 52940, 52941, 52942, 52943, 52944, 52945, 52946, 52947, 52948, 52949, 52950, 52951, 52952, 52953, 52954, 52955, 52956, 52957, 52958, 52959, 52960, 52961, 52962, 52963, 52964, 52965, 52966, 52967, 52968, 52969, 52970, 52971, 52972, 52973, 52974, 52975, 52976, 52977, 52978, 52979, 52980, 52981, 52982, 52983, 52984, 52985, 52986, 52987, 52988, 52989, 52990, 52991, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +zh_han_to_single_weight: 11904, 44131, 11905, 10190, 11906, 41548, 11907, 43517, 11908, 41545, 11909, 32548, 11910, 21436, 11912, 12588, 11913, 12601, 11914, 9293, 11915, 21024, 11916, 39984, 11917, 39985, 11918, 38670, 11919, 37709, 11920, 37710, 11921, 38671, 11922, 35047, 11923, 42175, 11924, 19933, 11925, 19724, 11926, 40466, 11927, 40467, 11928, 34482, 11929, 30321, 11931, 32649, 11932, 32637, 11933, 44949, 11934, 12257, 11936, 27678, 11937, 34825, 11938, 34800, 11939, 8831, 11940, 46124, 11941, 46113, 11942, 31233, 11943, 28943, 11944, 32286, 11947, 28093, 11948, 34280, 11949, 34421, 11950, 34287, 11951, 34974, 11952, 34975, 11953, 15772, 11954, 37767, 11956, 37766, 11958, 32579, 11959, 32618, 11961, 23874, 11962, 44737, 11963, 44738, 11964, 32803, 11965, 21795, 11966, 9641, 11967, 9643, 11968, 9644, 11969, 18288, 11970, 42634, 11971, 38943, 11972, 38942, 11973, 20463, 11976, 41721, 11977, 8194, 11979, 10302, 11980, 11553, 11981, 11555, 11982, 11592, 11983, 15396, 11984, 21143, 11985, 10172, 11986, 10173, 11987, 46060, 11988, 27086, 11990, 15397, 11991, 44401, 11992, 31641, 11993, 37925, 11994, 42556, 11995, 15008, 11996, 14699, 11997, 34235, 11999, 34236, 12000, 34237, 12002, 26545, 12003, 16396, 12004, 16869, 12005, 44392, 12006, 28738, 12007, 25951, 12008, 26628, 12009, 18803, 12010, 27516, 12011, 30661, 12012, 30662, 12013, 10810, 12014, 10811, 12015, 25708, 12016, 25709, 12017, 16814, 12018, 16813, 12295, 25249, 13312, 31790, 13313, 36601, 13316, 22981, 13317, 38509, 13318, 43462, 13324, 42636, 13334, 40086, 13340, 11033, 13345, 29138, 13348, 12353, 13352, 40860, 13353, 40513, 13355, 40581, 13356, 25462, 13357, 25186, 13358, 39714, 13359, 43840, 13360, 40424, 13361, 46390, 13362, 12259, 13363, 38575, 13364, 29307, 13365, 32807, 13367, 26528, 13368, 31107, 13369, 42903, 13370, 43379, 13371, 28446, 13372, 10638, 13373, 14939, 13377, 47828, 13378, 14640, 13379, 7571, 13380, 38515, 13381, 48539, 13383, 47325, 13384, 13441, 13385, 35240, 13386, 42941, 13387, 31714, 13388, 23061, 13389, 24041, 13390, 28364, 13391, 47539, 13392, 34490, 13396, 40820, 13399, 33857, 13400, 21052, 13401, 13195, 13402, 29113, 13403, 35243, 13404, 42969, 13405, 25728, 13406, 43779, 13407, 8272, 13411, 23582, 13412, 27538, 13413, 42999, 13414, 24380, 13415, 19768, 13416, 44412, 13417, 26359, 13418, 9862, 13422, 19144, 13423, 40829, 13424, 18992, 13425, 32512, 13427, 47348, 13429, 17328, 13430, 39088, 13431, 35869, 13432, 42198, 13433, 18996, 13434, 22322, 13435, 26554, 13436, 26287, 13437, 36064, 13438, 42206, 13439, 46144, 13440, 45789, 13441, 44437, 13442, 47898, 13443, 14394, 13444, 32458, 13445, 30699, 13446, 10865, 13447, 38544, 13448, 17342, 13449, 36127, 13450, 33278, 13452, 31753, 13453, 23927, 13454, 33059, 13457, 23235, 13458, 30338, 13459, 35752, 13460, 34563, 13461, 42002, 13462, 29220, 13463, 35837, 13465, 27458, 13466, 43551, 13467, 13173, 13468, 44454, 13469, 27600, 13470, 22349, 13471, 28727, 13472, 40318, 13473, 44068, 13476, 10359, 13477, 14991, 13478, 24021, 13479, 24575, 13481, 26435, 13483, 19730, 13488, 32189, 13490, 9423, 13491, 24855, 13492, 16385, 13493, 26873, 13495, 16539, 13496, 35449, 13499, 26894, 13500, 26634, 13501, 32177, 13502, 34361, 13503, 24245, 13505, 37724, 13506, 22849, 13507, 13696, 13508, 46478, 13509, 36721, 13512, 9038, 13513, 19236, 13514, 13444, 13515, 16218, 13516, 10485, 13518, 31476, 13519, 21461, 13520, 25965, 13521, 40559, 13523, 28250, 13524, 40243, 13526, 8490, 13527, 20950, 13528, 35255, 13530, 16124, 13532, 44133, 13533, 40507, 13534, 30849, 13535, 29750, 13536, 13040, 13537, 15348, 13538, 26440, 13539, 30852, 13540, 30853, 13541, 36032, 13542, 7750, 13543, 15635, 13544, 11617, 13545, 40991, 13546, 23761, 13549, 33770, 13551, 24110, 13552, 18463, 13553, 36950, 13554, 29910, 13555, 12775, 13556, 32914, 13557, 14166, 13558, 31423, 13559, 43057, 13560, 47838, 13561, 32969, 13562, 20122, 13564, 10857, 13565, 10973, 13566, 38809, 13568, 26291, 13569, 12709, 13570, 25141, 13571, 22158, 13572, 35290, 13573, 40030, 13574, 45352, 13577, 47514, 13578, 45928, 13579, 20168, 13580, 48296, 13581, 11297, 13582, 40311, 13583, 24490, 13585, 10905, 13586, 38985, 13587, 20225, 13589, 19513, 13591, 14738, 13592, 11223, 13593, 8241, 13594, 20879, 13596, 7683, 13597, 24858, 13598, 23012, 13600, 39188, 13601, 8858, 13602, 22160, 13603, 23941, 13604, 40456, 13605, 7798, 13606, 42103, 13607, 26205, 13608, 8139, 13609, 14178, 13610, 25914, 13613, 10326, 13614, 29126, 13615, 41056, 13616, 17787, 13617, 44421, 13619, 16854, 13620, 43097, 13621, 41097, 13622, 16233, 13623, 25815, 13624, 36314, 13625, 23897, 13626, 34283, 13628, 35547, 13629, 42325, 13630, 39319, 13631, 48292, 13633, 32310, 13634, 43380, 13635, 38679, 13636, 46791, 13637, 19999, 13638, 18304, 13639, 23408, 13640, 42829, 13641, 22678, 13642, 15093, 13643, 31508, 13644, 7312, 13646, 22700, 13647, 11157, 13648, 40196, 13649, 11166, 13650, 37818, 13653, 18635, 13654, 35246, 13655, 44160, 13657, 22342, 13658, 46111, 13659, 40851, 13660, 34243, 13662, 34697, 13663, 23243, 13664, 34745, 13665, 17658, 13666, 15608, 13667, 41722, 13668, 31836, 13669, 33841, 13670, 18456, 13671, 38681, 13672, 14558, 13673, 29424, 13674, 12388, 13675, 14641, 13676, 16129, 13677, 7514, 13678, 15342, 13679, 28417, 13680, 41218, 13681, 43986, 13682, 18414, 13684, 10393, 13685, 17021, 13686, 28095, 13687, 18458, 13688, 24352, 13689, 14410, 13690, 39843, 13691, 30290, 13693, 34990, 13696, 23909, 13697, 25210, 13698, 42970, 13699, 18042, 13701, 40870, 13702, 32031, 13703, 14316, 13706, 41299, 13711, 28763, 13712, 37939, 13713, 40222, 13714, 36332, 13715, 17895, 13716, 37279, 13717, 28764, 13718, 28765, 13719, 43395, 13720, 46330, 13726, 37516, 13727, 34454, 13728, 29139, 13729, 42455, 13730, 30524, 13731, 36980, 13732, 17231, 13733, 22316, 13734, 13424, 13735, 19123, 13736, 25971, 13737, 21649, 13738, 19249, 13739, 25285, 13741, 36566, 13742, 26317, 13749, 15942, 13750, 41568, 13751, 34204, 13752, 41190, 13753, 29558, 13754, 11534, 13755, 28948, 13756, 13979, 13757, 45509, 13758, 14180, 13759, 40117, 13760, 43952, 13761, 14181, 13762, 34053, 13763, 38228, 13764, 22899, 13765, 18174, 13766, 15944, 13767, 39236, 13768, 26696, 13769, 26285, 13770, 19566, 13771, 18000, 13772, 46955, 13775, 37518, 13777, 7805, 13778, 7320, 13779, 47760, 13780, 30937, 13781, 16297, 13782, 12447, 13783, 8091, 13784, 9170, 13785, 11137, 13786, 24434, 13787, 40028, 13788, 40706, 13794, 17931, 13795, 36454, 13796, 11887, 13797, 23386, 13798, 23814, 13799, 47004, 13800, 40071, 13801, 38811, 13803, 31438, 13804, 45653, 13805, 38812, 13808, 11807, 13809, 19606, 13810, 19275, 13811, 35694, 13812, 41664, 13813, 40948, 13814, 30186, 13815, 33107, 13819, 17008, 13820, 42496, 13821, 39781, 13822, 41171, 13823, 17670, 13824, 48567, 13825, 43179, 13826, 11650, 13828, 24080, 13829, 39481, 13830, 35853, 13831, 32706, 13832, 43210, 13833, 47091, 13834, 38889, 13835, 39488, 13836, 21932, 13837, 19651, 13838, 17287, 13840, 29487, 13841, 24531, 13843, 23621, 13844, 33109, 13845, 17291, 13846, 41696, 13847, 32020, 13849, 41708, 13850, 17293, 13851, 22452, 13852, 10809, 13853, 28751, 13854, 19232, 13856, 8412, 13857, 39209, 13858, 38280, 13859, 41059, 13860, 37550, 13861, 44069, 13862, 31498, 13863, 40854, 13864, 28756, 13865, 8404, 13866, 17497, 13867, 21341, 13868, 7590, 13869, 7591, 13872, 46319, 13873, 35880, 13874, 21709, 13876, 48542, 13877, 9342, 13878, 20887, 13879, 7311, 13880, 45406, 13881, 11619, 13882, 14412, 13887, 28766, 13888, 25581, 13889, 26954, 13890, 13814, 13891, 7896, 13892, 8438, 13893, 8000, 13895, 11243, 13896, 39296, 13897, 36567, 13898, 10143, 13901, 13928, 13902, 37795, 13903, 15438, 13904, 13980, 13905, 44428, 13906, 42424, 13907, 23185, 13908, 37954, 13909, 23014, 13911, 37796, 13912, 42159, 13913, 25714, 13914, 40476, 13915, 9323, 13916, 10730, 13917, 40123, 13918, 28792, 13919, 23767, 13920, 42598, 13921, 48175, 13922, 26638, 13923, 46079, 13924, 39303, 13925, 16977, 13926, 40133, 13928, 19846, 13929, 24918, 13930, 43151, 13931, 19607, 13932, 43434, 13934, 12157, 13935, 43152, 13936, 40295, 13937, 17537, 13938, 43919, 13939, 22476, 13940, 10086, 13941, 35841, 13942, 36091, 13943, 46765, 13944, 8066, 13945, 27139, 13946, 23207, 13947, 9959, 13948, 24009, 13950, 39158, 13952, 38911, 13953, 31392, 13954, 28318, 13955, 45065, 13957, 25615, 13958, 15416, 13959, 48153, 13961, 16389, 13962, 22379, 13963, 13120, 13964, 18480, 13965, 23238, 13967, 15826, 13968, 36243, 13970, 33531, 13971, 23538, 13972, 28757, 13973, 15171, 13974, 15827, 13975, 31400, 13976, 7867, 13977, 19942, 13978, 22794, 13979, 39066, 13980, 44518, 13981, 47756, 13982, 33942, 13983, 11565, 13984, 39884, 13985, 19713, 13986, 29050, 13987, 39959, 13988, 42905, 13989, 44212, 13990, 42642, 13991, 41725, 13992, 33930, 13993, 32440, 13994, 17498, 13995, 33046, 13996, 22274, 13997, 43988, 13999, 40415, 14000, 29493, 14001, 31796, 14002, 9896, 14004, 9343, 14005, 13382, 14006, 34991, 14007, 14354, 14009, 26861, 14010, 45165, 14011, 19354, 14013, 31349, 14014, 40587, 14015, 29444, 14016, 11147, 14017, 29574, 14018, 29129, 14019, 20888, 14020, 42575, 14021, 14384, 14022, 14015, 14026, 13972, 14029, 31417, 14030, 26136, 14031, 31864, 14032, 35184, 14033, 9540, 14034, 13528, 14035, 38722, 14036, 14953, 14037, 43004, 14038, 35564, 14039, 31395, 14040, 30232, 14041, 40384, 14042, 36921, 14043, 40437, 14044, 44009, 14045, 8133, 14046, 25732, 14051, 45102, 14052, 24111, 14053, 35718, 14054, 23657, 14055, 26678, 14056, 31235, 14057, 47305, 14058, 41869, 14059, 38742, 14060, 25973, 14061, 38743, 14062, 33238, 14063, 14587, 14065, 37955, 14066, 14445, 14067, 43059, 14068, 28378, 14069, 10498, 14070, 36015, 14071, 19384, 14072, 34645, 14073, 29926, 14074, 7390, 14075, 22966, 14076, 9751, 14078, 39443, 14079, 46958, 14082, 14967, 14083, 24786, 14084, 41319, 14085, 40920, 14086, 27392, 14087, 19010, 14088, 28070, 14089, 43814, 14090, 45915, 14091, 43098, 14092, 29036, 14093, 36067, 14094, 38791, 14095, 45112, 14096, 34654, 14097, 15261, 14098, 43099, 14099, 12200, 14101, 24676, 14102, 9607, 14103, 9475, 14104, 21894, 14105, 26007, 14106, 35291, 14107, 28460, 14108, 7606, 14109, 7436, 14110, 31127, 14112, 11960, 14113, 11745, 14115, 32420, 14116, 28663, 14117, 26583, 14118, 40418, 14119, 45010, 14120, 28190, 14121, 7615, 14122, 33906, 14123, 26568, 14126, 23700, 14127, 38875, 14128, 45022, 14129, 47093, 14130, 38294, 14131, 18512, 14132, 27237, 14133, 28729, 14134, 37657, 14135, 27302, 14136, 28843, 14137, 32097, 14138, 45372, 14139, 24821, 14140, 46783, 14141, 48077, 14142, 17119, 14143, 40855, 14144, 17501, 14145, 40992, 14146, 46903, 14147, 27490, 14148, 11508, 14149, 16299, 14151, 11521, 14152, 26252, 14153, 47531, 14154, 34436, 14155, 24966, 14156, 21566, 14157, 40193, 14158, 13345, 14159, 21039, 14160, 32652, 14161, 26737, 14163, 22684, 14164, 42283, 14165, 28890, 14166, 42672, 14167, 23720, 14168, 43865, 14169, 43397, 14170, 41631, 14171, 35257, 14173, 25131, 14174, 41428, 14175, 26822, 14176, 27733, 14177, 48439, 14178, 44429, 14179, 43060, 14180, 16300, 14181, 27350, 14182, 22330, 14183, 38232, 14185, 22516, 14186, 13069, 14187, 25634, 14189, 40546, 14190, 12024, 14191, 31323, 14192, 27464, 14193, 27239, 14194, 31583, 14196, 37573, 14197, 12675, 14198, 7313, 14200, 8719, 14201, 29020, 14202, 24677, 14203, 21166, 14204, 44185, 14205, 11439, 14206, 48532, 14207, 9276, 14208, 18845, 14209, 42327, 14210, 37203, 14211, 19785, 14212, 7384, 14213, 26454, 14214, 19698, 14215, 37956, 14216, 9091, 14217, 45226, 14218, 40921, 14219, 28647, 14220, 45163, 14222, 7705, 14223, 46189, 14224, 21631, 14225, 37934, 14226, 40216, 14227, 30737, 14228, 42673, 14229, 40217, 14230, 11620, 14231, 31865, 14232, 13579, 14233, 28741, 14234, 30764, 14235, 19703, 14236, 37163, 14238, 35086, 14239, 13071, 14240, 23818, 14241, 45943, 14244, 43377, 14245, 9694, 14246, 19682, 14247, 18970, 14248, 48079, 14249, 23577, 14250, 28327, 14251, 21838, 14252, 31587, 14253, 12261, 14255, 20866, 14256, 40819, 14257, 11723, 14258, 43928, 14259, 13509, 14260, 10705, 14262, 27682, 14263, 18728, 14264, 35445, 14265, 22659, 14266, 48310, 14267, 17502, 14268, 10539, 14269, 41221, 14270, 28475, 14271, 10824, 14272, 24653, 14273, 7447, 14274, 28016, 14275, 34892, 14276, 39742, 14277, 42022, 14278, 18417, 14279, 12122, 14280, 31866, 14281, 23805, 14282, 15209, 14283, 13815, 14284, 26752, 14285, 23721, 14286, 37406, 14287, 17228, 14288, 26782, 14289, 9139, 14290, 32381, 14291, 30512, 14292, 17229, 14294, 25734, 14296, 36640, 14297, 45501, 14298, 30527, 14299, 45349, 14300, 27259, 14301, 29511, 14302, 45964, 14303, 39803, 14304, 15776, 14306, 30528, 14308, 25974, 14310, 45177, 14311, 14184, 14312, 13730, 14313, 27650, 14314, 37798, 14315, 32219, 14316, 35190, 14317, 27651, 14318, 37008, 14320, 27766, 14321, 42298, 14322, 22150, 14323, 24436, 14324, 23016, 14325, 15779, 14326, 44834, 14327, 12240, 14329, 23815, 14330, 25765, 14331, 31128, 14332, 7541, 14333, 8836, 14334, 43821, 14335, 26790, 14336, 12615, 14338, 7542, 14340, 38965, 14341, 15293, 14342, 12369, 14343, 21601, 14344, 32996, 14345, 36894, 14346, 31997, 14347, 14225, 14348, 30447, 14349, 19608, 14350, 19609, 14351, 18433, 14352, 20782, 14353, 48456, 14354, 8838, 14355, 27133, 14356, 7796, 14357, 38001, 14358, 42866, 14359, 7616, 14360, 44465, 14361, 17481, 14362, 13831, 14363, 38386, 14364, 28616, 14365, 11933, 14367, 24209, 14368, 25871, 14369, 28730, 14370, 18513, 14371, 24535, 14373, 26214, 14374, 14995, 14375, 27359, 14376, 44723, 14378, 21833, 14381, 45912, 14382, 29598, 14383, 42820, 14385, 19786, 14386, 8351, 14388, 32576, 14389, 18701, 14390, 14480, 14391, 15926, 14392, 22932, 14393, 21042, 14394, 33349, 14396, 34888, 14397, 36844, 14398, 44741, 14399, 47968, 14400, 8414, 14401, 22977, 14402, 24363, 14403, 18709, 14404, 41301, 14405, 29130, 14407, 46204, 14408, 38247, 14409, 39432, 14410, 30864, 14411, 42398, 14412, 26895, 14415, 34647, 14417, 31265, 14418, 47815, 14419, 23303, 14420, 38620, 14421, 43585, 14422, 11401, 14423, 36353, 14424, 24668, 14425, 8322, 14426, 16249, 14427, 26766, 14428, 40266, 14429, 15051, 14430, 25766, 14431, 45420, 14432, 46608, 14433, 11170, 14434, 26714, 14435, 25644, 14437, 43558, 14438, 30037, 14439, 46617, 14440, 20201, 14441, 26241, 14442, 28749, 14443, 43064, 14445, 19825, 14446, 19626, 14447, 45808, 14448, 44398, 14449, 21545, 14450, 18561, 14451, 46798, 14452, 23411, 14453, 25259, 14454, 46805, 14455, 8209, 14456, 45752, 14457, 21632, 14458, 12424, 14459, 24991, 14460, 42976, 14461, 46131, 14462, 39597, 14463, 10830, 14464, 11691, 14465, 10773, 14466, 41740, 14467, 23722, 14468, 13529, 14469, 25735, 14470, 9922, 14472, 37169, 14473, 9784, 14474, 7289, 14475, 10784, 14477, 43744, 14478, 46221, 14479, 36952, 14481, 37173, 14482, 9797, 14483, 42303, 14484, 48223, 14486, 29311, 14487, 31377, 14488, 24686, 14489, 31539, 14490, 25926, 14491, 41917, 14492, 22558, 14493, 35223, 14494, 43265, 14495, 9894, 14496, 21456, 14497, 20520, 14499, 21420, 14501, 13448, 14503, 22000, 14504, 17301, 14505, 12894, 14508, 17870, 14510, 10710, 14511, 13101, 14512, 8416, 14514, 41369, 14515, 25846, 14517, 40095, 14518, 8427, 14520, 8439, 14522, 39433, 14523, 32967, 14524, 8914, 14525, 14362, 14526, 22022, 14528, 46468, 14529, 8157, 14530, 14203, 14531, 44447, 14532, 32062, 14533, 45354, 14534, 27308, 14535, 42949, 14536, 35037, 14540, 33567, 14541, 35821, 14542, 28062, 14543, 21401, 14544, 8724, 14545, 32683, 14546, 9730, 14547, 9550, 14548, 13308, 14553, 12801, 14554, 36919, 14555, 35709, 14556, 40518, 14557, 35053, 14558, 13942, 14559, 39070, 14560, 36156, 14562, 36333, 14563, 33572, 14564, 20366, 14565, 46925, 14566, 37789, 14567, 43526, 14570, 18625, 14571, 47192, 14572, 30765, 14573, 48164, 14575, 40259, 14576, 40267, 14577, 45519, 14578, 37877, 14581, 35759, 14582, 45870, 14583, 28938, 14587, 42911, 14588, 32550, 14589, 34617, 14590, 9824, 14591, 47854, 14593, 27484, 14594, 19527, 14595, 14629, 14596, 29533, 14597, 7310, 14598, 14562, 14599, 7573, 14600, 31590, 14601, 30834, 14602, 40009, 14603, 14810, 14604, 15627, 14605, 31255, 14606, 15888, 14607, 36847, 14608, 9897, 14609, 44142, 14610, 15789, 14611, 8219, 14612, 15410, 14613, 11227, 14614, 47541, 14616, 47329, 14618, 17410, 14619, 28878, 14620, 22097, 14621, 10921, 14622, 9831, 14623, 22821, 14624, 25037, 14625, 24364, 14626, 44498, 14628, 44235, 14629, 17151, 14630, 24365, 14631, 17995, 14632, 16192, 14633, 22690, 14634, 44905, 14635, 12678, 14636, 18980, 14638, 16741, 14639, 21464, 14640, 48558, 14641, 15423, 14642, 31424, 14643, 8106, 14644, 10322, 14645, 11630, 14646, 26754, 14647, 17183, 14648, 39076, 14649, 31868, 14650, 18807, 14653, 11036, 14654, 33165, 14655, 41559, 14656, 46730, 14657, 12685, 14658, 36253, 14659, 27088, 14660, 25288, 14661, 34455, 14662, 37216, 14663, 9495, 14664, 13226, 14665, 10327, 14666, 29611, 14667, 42591, 14668, 21725, 14669, 19789, 14670, 23512, 14671, 36569, 14672, 44912, 14674, 9440, 14675, 30417, 14676, 44522, 14677, 24662, 14678, 11737, 14682, 44273, 14683, 19570, 14684, 38064, 14685, 27345, 14686, 35460, 14687, 40118, 14688, 40747, 14689, 10848, 14690, 31894, 14691, 19014, 14693, 44274, 14694, 31434, 14695, 34830, 14696, 34812, 14697, 13982, 14698, 25754, 14700, 29409, 14701, 35871, 14702, 47353, 14703, 43485, 14704, 33214, 14705, 14721, 14706, 10377, 14707, 44835, 14708, 42740, 14709, 19178, 14710, 33279, 14711, 42476, 14712, 27706, 14713, 14899, 14714, 17643, 14716, 43541, 14717, 9676, 14718, 28600, 14719, 7612, 14720, 15023, 14721, 24687, 14722, 10157, 14723, 10033, 14724, 26512, 14725, 13189, 14726, 18120, 14727, 26010, 14729, 43153, 14730, 18434, 14731, 45658, 14732, 18133, 14733, 14226, 14734, 19276, 14735, 35552, 14736, 28603, 14737, 39649, 14738, 24173, 14739, 39650, 14740, 41918, 14741, 25641, 14742, 27093, 14743, 21127, 14744, 19455, 14746, 8694, 14747, 44468, 14748, 19288, 14749, 27564, 14750, 11083, 14751, 26587, 14753, 23917, 14754, 20994, 14755, 38126, 14756, 43266, 14757, 41040, 14758, 39159, 14759, 9533, 14760, 23623, 14761, 43508, 14762, 40347, 14763, 45237, 14764, 26434, 14765, 25410, 14766, 31003, 14767, 19234, 14768, 20103, 14769, 38329, 14772, 15935, 14773, 47398, 14774, 13209, 14775, 43895, 14776, 19707, 14777, 42046, 14778, 32888, 14779, 38970, 14780, 34785, 14781, 44648, 14782, 42648, 14783, 31069, 14784, 19528, 14785, 32151, 14786, 36517, 14787, 34428, 14788, 31067, 14789, 28044, 14790, 21096, 14791, 26859, 14792, 43463, 14793, 15591, 14794, 30163, 14795, 41089, 14796, 26874, 14797, 14643, 14798, 41447, 14799, 15739, 14800, 35088, 14801, 18842, 14802, 44493, 14803, 16502, 14804, 16582, 14805, 25556, 14806, 14145, 14807, 48086, 14808, 48122, 14809, 8420, 14810, 37487, 14812, 25023, 14815, 22991, 14817, 17152, 14818, 43324, 14819, 47394, 14820, 10997, 14821, 39515, 14822, 41115, 14824, 31855, 14825, 29540, 14826, 16830, 14827, 14318, 14828, 16195, 14829, 31720, 14830, 18091, 14831, 23850, 14832, 24366, 14833, 10464, 14834, 33137, 14835, 47961, 14836, 38332, 14837, 30279, 14838, 22766, 14839, 37287, 14840, 29579, 14841, 36254, 14842, 35721, 14843, 47877, 14844, 8848, 14845, 16479, 14846, 18100, 14848, 9017, 14849, 46927, 14850, 13425, 14851, 13797, 14852, 47257, 14853, 28450, 14854, 25188, 14855, 30194, 14856, 19700, 14857, 27652, 14858, 37960, 14859, 10306, 14860, 16302, 14861, 7905, 14862, 32825, 14863, 35894, 14864, 9320, 14865, 48166, 14866, 23156, 14867, 23810, 14868, 17330, 14869, 43678, 14870, 46963, 14871, 20919, 14872, 40544, 14873, 40126, 14874, 41325, 14875, 33546, 14876, 31031, 14877, 40067, 14878, 35280, 14879, 17118, 14880, 27396, 14881, 19149, 14882, 29719, 14884, 19015, 14885, 28163, 14886, 35097, 14887, 8229, 14888, 11019, 14889, 20933, 14890, 18829, 14891, 23660, 14893, 18357, 14894, 13491, 14895, 19271, 14896, 16956, 14897, 42221, 14898, 9677, 14899, 16860, 14900, 20389, 14901, 20274, 14902, 12616, 14903, 21228, 14904, 26560, 14905, 19027, 14906, 27507, 14907, 9505, 14908, 26294, 14909, 29876, 14910, 42124, 14911, 21897, 14912, 21898, 14913, 32339, 14915, 30956, 14916, 33451, 14918, 21603, 14919, 19277, 14920, 45149, 14921, 12205, 14922, 41021, 14923, 39907, 14924, 14775, 14925, 9683, 14926, 42487, 14928, 12705, 14930, 31541, 14931, 18954, 14932, 37273, 14934, 31224, 14935, 38973, 14936, 28546, 14937, 33100, 14938, 27141, 14939, 37136, 14940, 23671, 14941, 17482, 14942, 11713, 14943, 45834, 14944, 7520, 14945, 26427, 14946, 27607, 14948, 15143, 14950, 40168, 14951, 9234, 14952, 19085, 14953, 31680, 14954, 40169, 14957, 9245, 14958, 31058, 14959, 30205, 14960, 20740, 14961, 22234, 14962, 23356, 14963, 35109, 14964, 21787, 14965, 14281, 14966, 28861, 14967, 30992, 14968, 13288, 14969, 13289, 14971, 30411, 14972, 46657, 14973, 30532, 14974, 47779, 14975, 22883, 14976, 44218, 14977, 31504, 14978, 22888, 14979, 17593, 14980, 15191, 14982, 12871, 14983, 39609, 14984, 16881, 14985, 17607, 14986, 32390, 14987, 17319, 14988, 36923, 14989, 9149, 14990, 33542, 14991, 8375, 14992, 25985, 14993, 42460, 14994, 28494, 14995, 11310, 14996, 33167, 14997, 13163, 14998, 25986, 14999, 36971, 15000, 24756, 15001, 22667, 15002, 33168, 15003, 46419, 15004, 11313, 15005, 24792, 15006, 26911, 15008, 30950, 15009, 22432, 15010, 33728, 15011, 39894, 15012, 8540, 15013, 45659, 15014, 43548, 15015, 38854, 15016, 33599, 15017, 35315, 15018, 33068, 15019, 32983, 15020, 11550, 15021, 25879, 15022, 25381, 15023, 9774, 15025, 18670, 15028, 20005, 15029, 7872, 15030, 18158, 15031, 13518, 15033, 25807, 15034, 21693, 15035, 22056, 15036, 22661, 15037, 35597, 15038, 26449, 15039, 46206, 15040, 13329, 15041, 13758, 15042, 47598, 15043, 41727, 15044, 29400, 15045, 9783, 15050, 42845, 15053, 44026, 15054, 18888, 15055, 42308, 15056, 42272, 15057, 46793, 15058, 16189, 15059, 30673, 15060, 16042, 15063, 18050, 15064, 27371, 15065, 15178, 15066, 18086, 15067, 16737, 15068, 35981, 15069, 12770, 15071, 41625, 15074, 32152, 15076, 10177, 15077, 27762, 15078, 36161, 15079, 8041, 15080, 7381, 15083, 39521, 15087, 26896, 15088, 23780, 15089, 28272, 15090, 8140, 15091, 10414, 15093, 14677, 15094, 47317, 15095, 19388, 15096, 20827, 15097, 34648, 15099, 23361, 15100, 13229, 15101, 25987, 15106, 44296, 15107, 35829, 15108, 10084, 15109, 26697, 15110, 27705, 15111, 18671, 15112, 38157, 15113, 29096, 15114, 18672, 15115, 18009, 15116, 21407, 15117, 9182, 15118, 39542, 15119, 24451, 15120, 21229, 15122, 26792, 15123, 30010, 15124, 17472, 15125, 42057, 15127, 39659, 15128, 35316, 15129, 38002, 15130, 10347, 15131, 38855, 15132, 21247, 15133, 9720, 15134, 17731, 15135, 14836, 15136, 33463, 15137, 25358, 15139, 13837, 15140, 30467, 15141, 30396, 15142, 45023, 15143, 9235, 15145, 19093, 15146, 13277, 15147, 41951, 15148, 21951, 15149, 20801, 15150, 28294, 15151, 25119, 15152, 44213, 15153, 36465, 15154, 36507, 15155, 38522, 15156, 17956, 15157, 39963, 15158, 17515, 15160, 36623, 15161, 46534, 15163, 18724, 15164, 15476, 15167, 37241, 15169, 32624, 15170, 20652, 15172, 40431, 15175, 44899, 15176, 22092, 15177, 18415, 15179, 7928, 15180, 27965, 15182, 15744, 15183, 37935, 15185, 27034, 15186, 35001, 15187, 8717, 15188, 25849, 15189, 31959, 15192, 15939, 15193, 46207, 15194, 26141, 15195, 29294, 15196, 32661, 15197, 31869, 15198, 25039, 15199, 16197, 15200, 39522, 15201, 39078, 15202, 40387, 15204, 28710, 15208, 40114, 15209, 25049, 15210, 15108, 15211, 12090, 15212, 47879, 15213, 7664, 15214, 48559, 15215, 46216, 15216, 48409, 15217, 17618, 15218, 19558, 15220, 20115, 15224, 37050, 15225, 39444, 15226, 41766, 15227, 36062, 15228, 35727, 15229, 12880, 15230, 22139, 15231, 7493, 15232, 17243, 15233, 39973, 15234, 21733, 15235, 37802, 15236, 7918, 15237, 47758, 15238, 28786, 15239, 36607, 15240, 28222, 15243, 44107, 15244, 27452, 15247, 28226, 15248, 34057, 15249, 9756, 15250, 41572, 15251, 16048, 15252, 11003, 15253, 32917, 15254, 20025, 15255, 31526, 15256, 26829, 15257, 14206, 15258, 24439, 15259, 10732, 15260, 45389, 15261, 17645, 15262, 20936, 15263, 28660, 15265, 16666, 15266, 18010, 15267, 15604, 15269, 8230, 15270, 35621, 15271, 38431, 15272, 19827, 15273, 38814, 15274, 31754, 15275, 17660, 15276, 38268, 15277, 39456, 15278, 20953, 15279, 19154, 15280, 29793, 15281, 33898, 15282, 11020, 15283, 46472, 15285, 45863, 15286, 34861, 15287, 19415, 15288, 35122, 15289, 46847, 15290, 8216, 15294, 23773, 15295, 8541, 15296, 41144, 15297, 29522, 15298, 12313, 15300, 46695, 15301, 29798, 15302, 10039, 15303, 8542, 15304, 35305, 15305, 19278, 15306, 17771, 15307, 21482, 15308, 11347, 15309, 20523, 15310, 28461, 15311, 16439, 15312, 14658, 15315, 35760, 15316, 12030, 15317, 38858, 15318, 12696, 15319, 39471, 15320, 23054, 15321, 46245, 15322, 35682, 15323, 18221, 15324, 12031, 15325, 26046, 15326, 22043, 15327, 26047, 15328, 31135, 15329, 29483, 15330, 46488, 15332, 24475, 15333, 9617, 15334, 30600, 15337, 36466, 15338, 25359, 15339, 32079, 15340, 24764, 15341, 25930, 15342, 34571, 15343, 16230, 15344, 46253, 15345, 29437, 15346, 21255, 15347, 31660, 15350, 48194, 15351, 30354, 15352, 21175, 15353, 8844, 15354, 20427, 15355, 16971, 15358, 45432, 15359, 25096, 15360, 24224, 15361, 26428, 15362, 33964, 15363, 27467, 15364, 20434, 15365, 12847, 15366, 8189, 15368, 24768, 15370, 39497, 15371, 30061, 15372, 32369, 15373, 25669, 15374, 48466, 15376, 22228, 15377, 33526, 15378, 41203, 15380, 40350, 15382, 23677, 15383, 30652, 15384, 42807, 15385, 29128, 15386, 24255, 15387, 45041, 15389, 42826, 15390, 10648, 15391, 19747, 15392, 17397, 15393, 40208, 15394, 22762, 15395, 47974, 15396, 17561, 15397, 39072, 15398, 32153, 15399, 17114, 15400, 39182, 15401, 17115, 15402, 16759, 15403, 9901, 15404, 41311, 15405, 40737, 15406, 33975, 15407, 22857, 15408, 39189, 15409, 33417, 15410, 44198, 15411, 41525, 15412, 30293, 15413, 48319, 15414, 44101, 15415, 48129, 15416, 24757, 15417, 39352, 15418, 39301, 15419, 42854, 15420, 33425, 15421, 41890, 15422, 20770, 15423, 38815, 15424, 10797, 15425, 34377, 15426, 22522, 15427, 43489, 15428, 17763, 15429, 43190, 15430, 38876, 15431, 33307, 15432, 21256, 15433, 42516, 15434, 43970, 15435, 32370, 15436, 42415, 15437, 26246, 15438, 23335, 15439, 46589, 15444, 40061, 15446, 12011, 15447, 40657, 15448, 7475, 15449, 40687, 15450, 9489, 15451, 11356, 15452, 45680, 15454, 42982, 15455, 29696, 15456, 22893, 15457, 34022, 15458, 23731, 15459, 37205, 15460, 38767, 15461, 25306, 15462, 30428, 15463, 38365, 15464, 24788, 15465, 13605, 15466, 27092, 15467, 23696, 15468, 37973, 15469, 13754, 15470, 23018, 15471, 7276, 15472, 45296, 15473, 19028, 15474, 43134, 15475, 27909, 15476, 48145, 15477, 14920, 15478, 29631, 15480, 8579, 15481, 24557, 15482, 25882, 15483, 26491, 15484, 17111, 15485, 46398, 15486, 15560, 15487, 32315, 15488, 46345, 15489, 22802, 15490, 10576, 15491, 21590, 15492, 22151, 15493, 19828, 15494, 25347, 15496, 33722, 15497, 32357, 15498, 32984, 15499, 11558, 15500, 28470, 15501, 46636, 15502, 25746, 15503, 29433, 15506, 8039, 15507, 32663, 15508, 39345, 15509, 24048, 15510, 39868, 15511, 15109, 15512, 32040, 15514, 33369, 15515, 46836, 15516, 35922, 15517, 32747, 15518, 35212, 15519, 43749, 15520, 26830, 15521, 28227, 15522, 8734, 15524, 34708, 15525, 36075, 15526, 17346, 15527, 33248, 15528, 32686, 15530, 12713, 15531, 30342, 15532, 20620, 15533, 35998, 15535, 32426, 15536, 28914, 15537, 25097, 15538, 13292, 15539, 13211, 15540, 47210, 15542, 26194, 15543, 12461, 15544, 38676, 15545, 16817, 15546, 19512, 15547, 28569, 15548, 42897, 15549, 28682, 15550, 44400, 15551, 37726, 15552, 17095, 15553, 45568, 15554, 41611, 15555, 11995, 15556, 39417, 15557, 20654, 15558, 36964, 15559, 15405, 15560, 29535, 15562, 43945, 15563, 31797, 15564, 41417, 15565, 9350, 15566, 8711, 15567, 34301, 15568, 45682, 15569, 42957, 15570, 8712, 15572, 13808, 15573, 23580, 15574, 42578, 15575, 9877, 15576, 10922, 15577, 41117, 15578, 40874, 15579, 44236, 15580, 40639, 15584, 35711, 15585, 16989, 15589, 25737, 15590, 40227, 15591, 10323, 15592, 20240, 15593, 35886, 15594, 29862, 15595, 45333, 15596, 41060, 15597, 39428, 15598, 28740, 15604, 27382, 15605, 19793, 15606, 29035, 15607, 18102, 15608, 18399, 15609, 37742, 15610, 44021, 15611, 45504, 15612, 8474, 15613, 27344, 15614, 31164, 15615, 40235, 15616, 14580, 15617, 43034, 15618, 35890, 15619, 24050, 15620, 43896, 15622, 21210, 15623, 33802, 15624, 43527, 15625, 19701, 15627, 35260, 15630, 28219, 15631, 37748, 15632, 27524, 15633, 35267, 15634, 43071, 15635, 33448, 15636, 38769, 15637, 19577, 15638, 26457, 15639, 43955, 15640, 26906, 15641, 45727, 15642, 35461, 15643, 46966, 15644, 8727, 15645, 24133, 15653, 31370, 15654, 16665, 15655, 38798, 15656, 46469, 15657, 43816, 15658, 28795, 15659, 22331, 15660, 40261, 15661, 42300, 15662, 40262, 15663, 46680, 15664, 28465, 15666, 34915, 15667, 25715, 15668, 10424, 15669, 27398, 15670, 32330, 15671, 12359, 15672, 33547, 15676, 35294, 15677, 40271, 15678, 9183, 15679, 13333, 15680, 48326, 15682, 34664, 15683, 33781, 15684, 17348, 15685, 35899, 15686, 15839, 15690, 28175, 15691, 27413, 15692, 41337, 15693, 27095, 15694, 20398, 15695, 11981, 15696, 22174, 15697, 17728, 15698, 14776, 15699, 34220, 15700, 10310, 15701, 33994, 15702, 29091, 15703, 30144, 15704, 26715, 15709, 43193, 15710, 11071, 15712, 22917, 15713, 7987, 15714, 23940, 15715, 22671, 15716, 33440, 15717, 8564, 15718, 35427, 15719, 15983, 15720, 29887, 15721, 43194, 15722, 39472, 15723, 28609, 15724, 43699, 15725, 47519, 15726, 11522, 15727, 15027, 15728, 40965, 15729, 29995, 15730, 38565, 15731, 24935, 15732, 9586, 15733, 48298, 15734, 48503, 15735, 8748, 15736, 42357, 15737, 18600, 15738, 29304, 15739, 40668, 15741, 24013, 15742, 31703, 15743, 40043, 15744, 20635, 15745, 17053, 15748, 41689, 15749, 41202, 15750, 47439, 15751, 17810, 15752, 43717, 15753, 38902, 15756, 24735, 15757, 39562, 15758, 18612, 15759, 43374, 15761, 24813, 15762, 33559, 15763, 9590, 15764, 8192, 15765, 20323, 15766, 34693, 15767, 14607, 15768, 13090, 15770, 7739, 15771, 44384, 15774, 28313, 15775, 24036, 15776, 43310, 15777, 12262, 15779, 9921, 15780, 10260, 15781, 15622, 15782, 21191, 15783, 28454, 15787, 24972, 15788, 27858, 15789, 44090, 15791, 25580, 15792, 17222, 15794, 43931, 15795, 21202, 15796, 10777, 15797, 32596, 15798, 28983, 15801, 17968, 15802, 36606, 15804, 7255, 15805, 16509, 15806, 8772, 15807, 9152, 15808, 31726, 15810, 34649, 15811, 11464, 15812, 18943, 15813, 10267, 15814, 15442, 15815, 18864, 15816, 14189, 15817, 38067, 15818, 14864, 15819, 35923, 15821, 26326, 15822, 17720, 15823, 43910, 15824, 18946, 15826, 44300, 15827, 48220, 15828, 41893, 15829, 31905, 15830, 46146, 15831, 21474, 15832, 35830, 15839, 37223, 15840, 25143, 15841, 21480, 15842, 45730, 15843, 40482, 15844, 18359, 15846, 40938, 15850, 12020, 15851, 31676, 15852, 27911, 15854, 45425, 15855, 8301, 15856, 10679, 15859, 41921, 15860, 15984, 15861, 27920, 15862, 8182, 15863, 21993, 15864, 13261, 15865, 46163, 15867, 38488, 15868, 41922, 15870, 22200, 15871, 39380, 15872, 35847, 15873, 17286, 15875, 13035, 15876, 19886, 15877, 20999, 15879, 48392, 15881, 40335, 15882, 23568, 15883, 14530, 15884, 19317, 15885, 39169, 15886, 28856, 15887, 27317, 15888, 32433, 15889, 11951, 15890, 43388, 15891, 27373, 15893, 22164, 15894, 31961, 15895, 36861, 15896, 37668, 15897, 46174, 15898, 24282, 15899, 33716, 15900, 22825, 15901, 39331, 15902, 46191, 15903, 46658, 15904, 36672, 15905, 34503, 15906, 8167, 15907, 42518, 15908, 29957, 15909, 10095, 15910, 18296, 15911, 22752, 15912, 21500, 15913, 7377, 15914, 11496, 15915, 31006, 15916, 8124, 15917, 7646, 15918, 14851, 15919, 22592, 15920, 37346, 15921, 37347, 15922, 48506, 15923, 25269, 15925, 16840, 15926, 41553, 15927, 34329, 15928, 18045, 15929, 25050, 15930, 33371, 15931, 35011, 15933, 8142, 15934, 32602, 15935, 13602, 15936, 9153, 15937, 24832, 15938, 31082, 15939, 14762, 15940, 19832, 15941, 48221, 15942, 18873, 15943, 17648, 15944, 24139, 15945, 44846, 15946, 45001, 15947, 40658, 15948, 10040, 15949, 12829, 15950, 23935, 15951, 21168, 15952, 10975, 15953, 35040, 15954, 30381, 15955, 42314, 15956, 20499, 15957, 18544, 15958, 18689, 15959, 36190, 15960, 32893, 15961, 38296, 15962, 43727, 15963, 32510, 15964, 43389, 15965, 34293, 15966, 43383, 15967, 22086, 15968, 37251, 15969, 41057, 15970, 19946, 15971, 47150, 15972, 31411, 15973, 47544, 15974, 13102, 15976, 44144, 15979, 42683, 15980, 34254, 15981, 42984, 15982, 27859, 15985, 32316, 15986, 39860, 15987, 38465, 15988, 16053, 15989, 43741, 15990, 36757, 15991, 34256, 15992, 28483, 15993, 16056, 15994, 35724, 15995, 38314, 15996, 21728, 15997, 10017, 15998, 29992, 15999, 47881, 16000, 18103, 16001, 28381, 16002, 41645, 16003, 16278, 16004, 44432, 16005, 18007, 16007, 34916, 16008, 10669, 16009, 18348, 16010, 42120, 16011, 38267, 16012, 39630, 16013, 30053, 16014, 32690, 16015, 25771, 16016, 23860, 16017, 33509, 16018, 39897, 16019, 45521, 16020, 17167, 16021, 14507, 16022, 17284, 16023, 9910, 16024, 45980, 16026, 35697, 16027, 47605, 16028, 28992, 16029, 17372, 16030, 44347, 16031, 47929, 16032, 44177, 16033, 24541, 16034, 19306, 16035, 38922, 16036, 39398, 16037, 9977, 16038, 24736, 16040, 34886, 16041, 21567, 16042, 30323, 16043, 31843, 16044, 16191, 16045, 48084, 16046, 44224, 16049, 32631, 16050, 28960, 16051, 26950, 16052, 7647, 16053, 21538, 16055, 40875, 16056, 30117, 16057, 8718, 16058, 26883, 16063, 42704, 16064, 44251, 16066, 30118, 16067, 31965, 16068, 8004, 16069, 18990, 16073, 9366, 16074, 26758, 16075, 23438, 16076, 37046, 16077, 38470, 16078, 24404, 16079, 25293, 16081, 19801, 16082, 22324, 16083, 48268, 16084, 13983, 16085, 22141, 16086, 12300, 16087, 8159, 16093, 23447, 16094, 8935, 16095, 35425, 16096, 37059, 16097, 41169, 16103, 14043, 16106, 35471, 16107, 8547, 16108, 37019, 16109, 33290, 16110, 9549, 16111, 37076, 16112, 27508, 16113, 21122, 16114, 26160, 16117, 45985, 16118, 8387, 16119, 19630, 16120, 45595, 16121, 41035, 16122, 24495, 16125, 35493, 16126, 43842, 16127, 34598, 16130, 14100, 16135, 31784, 16136, 26393, 16137, 46449, 16138, 37254, 16139, 16339, 16140, 44416, 16141, 23990, 16142, 9154, 16143, 28436, 16144, 29935, 16145, 24798, 16146, 36128, 16147, 24689, 16148, 38165, 16149, 12509, 16150, 24636, 16151, 36752, 16152, 37488, 16153, 47330, 16154, 15748, 16155, 40520, 16156, 7505, 16157, 14574, 16158, 29670, 16159, 9143, 16160, 37351, 16161, 34513, 16162, 42715, 16163, 9155, 16164, 31427, 16165, 36968, 16166, 16200, 16167, 36869, 16168, 17244, 16169, 10578, 16170, 20923, 16171, 18675, 16172, 40565, 16173, 13062, 16174, 9856, 16175, 13466, 16176, 29789, 16177, 32920, 16178, 25068, 16179, 34059, 16180, 29217, 16181, 12950, 16182, 44312, 16183, 11345, 16184, 32693, 16185, 22523, 16186, 36085, 16187, 11817, 16188, 29983, 16189, 11420, 16190, 26049, 16191, 36905, 16192, 46612, 16193, 24497, 16194, 33077, 16195, 29313, 16196, 34945, 16198, 12510, 16199, 18245, 16200, 43250, 16201, 39679, 16202, 40354, 16203, 26397, 16204, 25606, 16206, 35927, 16207, 15720, 16209, 35952, 16213, 43992, 16214, 28239, 16216, 15774, 16217, 22306, 16218, 10833, 16219, 16242, 16220, 37603, 16221, 24405, 16222, 25472, 16223, 25056, 16224, 39238, 16225, 8093, 16226, 7435, 16227, 44572, 16228, 21741, 16229, 32784, 16230, 41338, 16231, 48029, 16232, 12102, 16233, 9552, 16234, 45623, 16235, 43843, 16236, 15508, 16237, 32936, 16239, 38995, 16240, 34656, 16241, 20655, 16242, 20656, 16243, 40729, 16244, 46068, 16247, 34802, 16248, 10402, 16249, 14550, 16250, 19541, 16251, 46644, 16253, 16474, 16254, 38610, 16256, 31422, 16257, 34635, 16258, 17116, 16259, 37352, 16260, 13598, 16261, 48097, 16262, 32410, 16263, 28057, 16264, 15424, 16265, 25276, 16266, 19560, 16267, 40646, 16268, 41095, 16269, 28185, 16270, 41429, 16271, 21064, 16272, 24406, 16273, 12190, 16274, 32820, 16275, 44760, 16276, 26150, 16277, 33947, 16278, 24295, 16279, 24883, 16280, 16092, 16281, 40444, 16282, 40066, 16283, 31569, 16284, 31432, 16285, 10333, 16286, 44030, 16287, 9369, 16288, 23096, 16289, 32323, 16290, 7324, 16291, 31486, 16292, 31174, 16293, 11261, 16294, 29548, 16295, 23384, 16296, 42596, 16297, 16569, 16298, 34060, 16299, 29915, 16301, 47357, 16302, 18755, 16303, 18880, 16304, 18196, 16305, 8169, 16308, 45655, 16309, 19834, 16310, 16441, 16311, 38843, 16312, 15840, 16313, 9871, 16314, 26565, 16315, 47600, 16316, 37208, 16317, 47793, 16318, 39371, 16319, 23749, 16323, 47060, 16324, 7341, 16325, 39549, 16326, 17009, 16327, 38974, 16329, 37211, 16330, 9531, 16331, 33255, 16332, 39387, 16333, 21087, 16334, 14929, 16335, 32400, 16337, 42365, 16338, 12627, 16339, 20045, 16340, 24023, 16341, 41698, 16342, 25888, 16343, 37198, 16344, 43730, 16345, 29902, 16346, 26493, 16347, 24623, 16348, 8913, 16350, 26884, 16351, 7760, 16352, 18827, 16354, 42344, 16355, 17570, 16356, 11540, 16357, 17666, 16358, 28937, 16359, 11091, 16360, 24577, 16361, 36141, 16362, 18563, 16363, 8435, 16364, 7653, 16365, 10325, 16366, 42114, 16367, 12191, 16368, 7529, 16369, 41192, 16371, 48009, 16372, 12154, 16373, 32459, 16374, 7908, 16375, 12103, 16376, 37645, 16377, 35778, 16378, 7991, 16379, 15630, 16380, 41627, 16381, 38713, 16382, 47561, 16383, 41478, 16384, 14575, 16385, 44161, 16386, 7386, 16387, 37171, 16388, 27115, 16389, 33811, 16390, 21232, 16391, 16447, 16392, 19860, 16393, 31334, 16394, 20732, 16395, 41699, 16396, 39172, 16397, 22503, 16398, 27482, 16399, 41110, 16400, 33479, 16401, 38353, 16402, 30908, 16403, 18641, 16404, 32590, 16405, 46450, 16406, 36494, 16407, 22101, 16408, 40099, 16409, 30739, 16410, 7491, 16411, 27035, 16412, 16394, 16414, 36159, 16415, 14490, 16416, 21869, 16417, 10081, 16418, 34829, 16419, 8445, 16420, 26890, 16421, 34851, 16422, 16399, 16423, 17957, 16424, 18470, 16425, 26456, 16426, 17419, 16427, 20016, 16428, 32214, 16429, 15563, 16430, 18716, 16431, 9321, 16432, 16415, 16433, 14970, 16434, 28065, 16435, 7317, 16436, 43745, 16437, 34831, 16438, 24884, 16439, 20924, 16440, 10851, 16441, 20925, 16442, 11017, 16443, 30162, 16444, 10371, 16445, 41646, 16446, 13668, 16447, 12932, 16449, 24886, 16450, 39631, 16451, 8778, 16452, 40566, 16453, 27207, 16454, 42469, 16455, 27399, 16456, 30775, 16457, 30776, 16458, 38377, 16459, 40272, 16460, 44591, 16461, 30875, 16462, 10594, 16463, 42305, 16464, 43599, 16465, 42056, 16466, 19598, 16467, 48177, 16468, 41018, 16469, 27665, 16470, 25744, 16471, 22414, 16472, 42309, 16473, 41799, 16474, 35553, 16475, 16906, 16476, 18835, 16477, 43694, 16478, 34061, 16479, 9804, 16480, 24691, 16482, 41075, 16483, 11351, 16484, 10350, 16485, 28610, 16486, 32161, 16487, 27545, 16488, 19284, 16489, 44338, 16490, 45932, 16491, 18234, 16492, 9723, 16493, 8798, 16494, 31052, 16495, 38881, 16496, 20529, 16497, 22840, 16498, 26585, 16499, 26795, 16500, 45938, 16501, 8695, 16502, 19469, 16503, 22209, 16504, 28299, 16505, 8597, 16506, 34410, 16507, 34877, 16508, 27938, 16509, 25101, 16510, 27614, 16511, 27944, 16512, 38927, 16513, 9985, 16514, 32112, 16515, 20804, 16516, 19330, 16517, 39411, 16518, 40868, 16519, 28962, 16520, 36865, 16521, 18021, 16522, 44651, 16524, 10946, 16525, 9258, 16526, 48398, 16527, 13107, 16528, 47835, 16529, 19368, 16530, 30868, 16532, 40567, 16533, 19031, 16534, 34178, 16535, 22884, 16537, 13773, 16538, 42186, 16539, 44237, 16540, 7930, 16541, 20891, 16542, 46292, 16543, 19958, 16544, 34257, 16545, 12876, 16546, 13423, 16547, 11628, 16548, 15425, 16549, 27642, 16550, 46337, 16551, 46408, 16553, 41873, 16554, 31350, 16555, 17399, 16556, 16201, 16557, 31260, 16558, 26282, 16559, 16589, 16560, 23442, 16561, 32970, 16562, 14441, 16563, 12116, 16564, 41647, 16565, 16152, 16566, 20926, 16567, 16570, 16568, 17035, 16569, 35619, 16570, 38338, 16571, 46602, 16572, 28796, 16573, 13166, 16574, 23539, 16575, 35734, 16576, 12017, 16577, 41433, 16578, 16954, 16581, 12785, 16583, 27453, 16584, 20838, 16585, 27666, 16586, 21818, 16587, 44314, 16588, 46369, 16589, 46151, 16590, 45770, 16591, 40483, 16593, 7826, 16594, 17667, 16595, 16316, 16596, 17940, 16597, 23821, 16598, 38642, 16599, 9104, 16600, 22783, 16601, 26052, 16602, 11904, 16603, 24702, 16604, 42611, 16605, 31382, 16606, 34567, 16608, 41146, 16609, 21130, 16610, 31493, 16611, 18957, 16612, 35333, 16613, 11406, 16614, 13873, 16615, 25649, 16617, 28355, 16618, 35955, 16619, 12414, 16620, 38022, 16621, 15690, 16622, 12213, 16623, 24521, 16624, 9404, 16625, 39685, 16626, 29348, 16627, 23474, 16628, 47444, 16629, 28733, 16630, 18518, 16631, 43728, 16632, 39689, 16633, 23711, 16634, 27823, 16635, 7744, 16637, 16833, 16638, 8363, 16639, 15098, 16640, 19241, 16641, 43016, 16642, 25582, 16644, 43338, 16645, 22019, 16646, 19215, 16647, 10579, 16648, 13542, 16649, 14087, 16651, 41781, 16652, 47786, 16653, 45768, 16654, 30697, 16655, 44305, 16656, 32292, 16657, 19218, 16658, 28797, 16659, 18757, 16660, 21819, 16661, 33817, 16664, 29628, 16665, 27751, 16666, 9619, 16667, 25780, 16668, 24185, 16669, 11391, 16671, 11974, 16672, 33614, 16673, 12378, 16674, 30630, 16676, 23570, 16677, 25420, 16678, 24968, 16679, 32628, 16680, 44228, 16681, 42962, 16682, 13139, 16683, 30677, 16684, 42661, 16685, 28631, 16686, 15099, 16687, 20235, 16688, 41453, 16689, 14616, 16690, 32965, 16691, 39338, 16694, 8446, 16695, 34201, 16696, 30237, 16697, 28636, 16698, 46940, 16699, 36211, 16700, 36571, 16701, 36572, 16702, 32881, 16703, 43039, 16704, 25053, 16705, 7460, 16706, 17624, 16707, 31727, 16708, 24408, 16709, 16769, 16710, 48135, 16711, 35262, 16712, 44907, 16713, 41520, 16714, 9785, 16715, 37625, 16716, 21967, 16717, 36807, 16718, 44105, 16719, 19002, 16720, 20255, 16721, 32946, 16722, 26764, 16723, 21809, 16724, 48011, 16725, 21672, 16726, 7395, 16727, 35469, 16728, 23520, 16729, 19181, 16730, 32279, 16731, 10118, 16732, 14033, 16733, 22805, 16734, 28423, 16735, 9525, 16736, 36365, 16737, 40839, 16738, 21599, 16739, 18758, 16740, 30787, 16741, 20955, 16742, 26834, 16743, 41580, 16745, 46850, 16746, 37178, 16748, 7336, 16749, 29411, 16750, 9594, 16751, 36087, 16752, 14304, 16753, 19187, 16754, 30594, 16755, 11172, 16756, 35629, 16757, 47907, 16758, 29040, 16759, 37083, 16760, 33908, 16761, 25811, 16762, 8792, 16763, 24186, 16764, 26647, 16765, 40409, 16766, 9705, 16767, 18777, 16768, 27024, 16769, 15814, 16770, 24721, 16771, 12663, 16772, 45939, 16773, 48053, 16776, 47117, 16777, 7735, 16778, 12051, 16779, 31831, 16781, 25676, 16782, 39403, 16783, 14801, 16784, 17065, 16785, 10538, 16786, 21573, 16787, 14157, 16788, 10923, 16789, 44971, 16790, 17887, 16791, 42289, 16792, 41423, 16793, 42192, 16794, 36867, 16795, 45761, 16796, 44163, 16797, 41231, 16798, 42293, 16799, 22698, 16800, 18657, 16801, 23739, 16802, 44991, 16803, 10420, 16806, 33986, 16808, 28899, 16809, 27744, 16810, 17840, 16811, 11388, 16812, 45151, 16813, 41023, 16814, 21243, 16815, 47917, 16816, 44206, 16817, 35904, 16818, 22529, 16819, 31767, 16821, 10612, 16822, 21530, 16823, 41247, 16824, 46558, 16825, 10947, 16826, 29316, 16827, 31385, 16829, 32088, 16830, 23616, 16831, 43251, 16832, 32723, 16833, 34961, 16834, 30896, 16835, 34995, 16837, 14415, 16839, 27106, 16840, 18466, 16843, 17158, 16844, 31368, 16845, 11255, 16846, 32334, 16847, 13819, 16848, 24442, 16849, 7722, 16850, 21082, 16851, 40791, 16852, 26483, 16854, 45135, 16855, 47158, 16856, 18331, 16857, 43468, 16859, 46822, 16860, 31073, 16862, 15643, 16863, 20368, 16864, 47568, 16865, 47569, 16866, 22928, 16867, 28776, 16868, 32968, 16869, 45506, 16870, 7499, 16871, 46972, 16872, 16224, 16873, 43076, 16874, 10664, 16875, 19393, 16876, 47409, 16877, 23858, 16878, 32604, 16879, 32671, 16880, 46533, 16881, 28158, 16882, 9666, 16885, 42744, 16886, 22153, 16887, 8895, 16888, 10589, 16889, 22333, 16890, 13547, 16891, 37977, 16892, 43112, 16893, 46224, 16894, 41656, 16896, 33127, 16897, 26330, 16898, 30141, 16899, 46122, 16900, 17251, 16901, 44592, 16902, 12309, 16903, 46152, 16904, 14706, 16905, 33432, 16906, 25332, 16907, 35744, 16908, 31989, 16909, 26769, 16910, 42491, 16911, 7986, 16912, 16907, 16913, 16546, 16914, 28283, 16915, 15975, 16917, 34221, 16918, 22635, 16919, 35630, 16920, 11645, 16921, 47364, 16922, 35838, 16923, 23023, 16924, 31607, 16925, 40780, 16926, 13674, 16927, 9684, 16928, 18627, 16929, 11761, 16930, 33108, 16931, 46609, 16932, 31043, 16933, 21123, 16934, 48186, 16935, 37991, 16938, 39132, 16939, 28179, 16940, 30345, 16941, 35160, 16942, 21921, 16943, 46379, 16944, 33705, 16945, 36183, 16946, 7830, 16947, 35763, 16948, 31140, 16949, 38273, 16950, 32699, 16951, 26476, 16952, 18235, 16953, 35199, 16954, 47173, 16955, 30351, 16956, 27606, 16957, 21131, 16958, 33707, 16959, 27423, 16960, 34683, 16961, 25361, 16962, 24007, 16963, 20530, 16964, 24093, 16965, 47081, 16966, 13143, 16968, 33149, 16969, 16373, 16970, 14603, 16971, 27059, 16972, 35507, 16973, 20302, 16974, 36107, 16975, 40337, 16976, 22921, 16977, 38498, 16978, 14522, 16979, 26484, 16980, 9480, 16981, 9726, 16982, 25366, 16983, 42618, 16984, 11821, 16985, 45127, 16986, 27156, 16987, 44684, 16988, 47107, 16989, 42875, 16990, 12416, 16991, 19307, 16992, 37907, 16993, 35963, 16994, 33317, 16995, 40324, 16996, 35203, 16997, 35107, 16998, 30985, 16999, 25541, 17000, 43280, 17002, 24071, 17003, 24239, 17004, 14798, 17005, 25104, 17006, 25242, 17007, 39690, 17008, 40055, 17009, 29201, 17010, 27318, 17011, 39407, 17012, 32480, 17013, 47712, 17014, 34759, 17015, 41713, 17016, 8761, 17017, 25425, 17018, 17889, 17019, 30516, 17020, 24994, 17021, 7853, 17022, 8456, 17023, 18169, 17024, 18170, 17026, 9668, 17027, 29547, 17028, 31738, 17029, 27738, 17030, 21592, 17031, 9374, 17032, 26979, 17033, 33141, 17034, 38075, 17037, 24169, 17038, 32281, 17040, 19155, 17041, 39775, 17043, 34387, 17044, 43695, 17046, 28284, 17047, 18765, 17048, 21604, 17049, 41585, 17051, 33069, 17052, 37138, 17053, 40313, 17054, 46254, 17055, 27079, 17056, 39143, 17057, 26654, 17059, 18784, 17060, 35956, 17061, 40044, 17062, 42526, 17063, 8599, 17064, 26374, 17065, 14523, 17066, 24545, 17067, 11991, 17068, 11300, 17069, 12667, 17070, 12850, 17071, 23143, 17072, 11192, 17073, 39408, 17074, 10102, 17075, 27327, 17076, 31149, 17077, 31849, 17078, 46451, 17082, 18333, 17083, 15639, 17084, 10779, 17085, 16587, 17086, 28058, 17087, 9145, 17088, 18467, 17089, 16083, 17090, 42193, 17091, 26891, 17092, 37738, 17096, 32822, 17097, 41188, 17098, 46525, 17099, 27647, 17100, 20514, 17102, 45966, 17103, 48510, 17104, 44981, 17105, 25054, 17107, 47347, 17108, 8457, 17109, 32606, 17110, 44554, 17112, 11568, 17113, 14363, 17114, 43077, 17115, 27348, 17116, 31689, 17118, 37749, 17119, 19816, 17120, 9324, 17122, 8863, 17123, 14501, 17124, 44998, 17125, 24144, 17126, 14502, 17127, 32057, 17128, 15378, 17129, 14336, 17130, 14068, 17131, 46547, 17132, 36504, 17133, 44594, 17134, 21233, 17135, 30703, 17136, 21749, 17137, 23524, 17138, 10309, 17139, 8110, 17140, 28977, 17141, 43163, 17142, 40842, 17143, 27979, 17144, 41339, 17145, 15296, 17147, 28882, 17148, 36741, 17149, 8285, 17150, 45734, 17151, 37820, 17152, 22636, 17153, 42165, 17154, 29233, 17155, 39909, 17156, 16098, 17157, 36095, 17158, 16911, 17159, 19061, 17160, 35683, 17162, 42243, 17163, 12161, 17164, 30812, 17165, 21174, 17166, 26298, 17167, 27424, 17168, 27425, 17169, 20175, 17170, 26064, 17171, 14518, 17172, 29193, 17173, 27288, 17174, 21001, 17175, 15392, 17176, 8917, 17177, 18836, 17178, 35221, 17179, 42255, 17180, 28839, 17181, 21135, 17182, 24769, 17183, 9249, 17184, 20195, 17185, 36423, 17186, 25370, 17187, 48396, 17188, 34159, 17189, 43510, 17190, 12668, 17191, 11093, 17192, 9406, 17193, 27619, 17194, 41835, 17195, 23681, 17196, 10987, 17197, 20647, 17198, 34758, 17199, 32187, 17200, 28865, 17201, 26494, 17203, 34167, 17204, 26497, 17205, 47492, 17207, 11016, 17208, 22012, 17209, 21467, 17210, 14364, 17211, 43079, 17212, 32974, 17213, 9450, 17214, 32545, 17215, 15297, 17216, 23601, 17217, 35513, 17218, 44241, 17219, 44014, 17220, 13024, 17221, 25297, 17222, 47573, 17223, 35725, 17224, 30124, 17225, 45816, 17226, 20598, 17227, 11456, 17228, 9379, 17229, 22872, 17230, 12074, 17232, 17276, 17233, 17277, 17234, 27995, 17235, 18323, 17236, 16139, 17237, 12773, 17238, 15216, 17239, 41121, 17240, 27262, 17241, 26971, 17242, 23781, 17243, 16487, 17244, 46148, 17245, 35735, 17246, 44596, 17247, 48245, 17248, 24191, 17249, 26054, 17250, 38494, 17251, 23949, 17252, 19719, 17253, 24583, 17254, 24262, 17256, 30175, 17257, 42086, 17258, 37500, 17259, 37361, 17260, 29588, 17262, 46141, 17263, 16852, 17265, 40815, 17266, 28189, 17267, 32343, 17268, 37986, 17269, 46548, 17270, 13407, 17271, 37995, 17272, 9212, 17274, 18690, 17275, 41153, 17276, 45325, 17277, 24598, 17278, 41746, 17279, 18731, 17280, 41232, 17281, 18171, 17282, 8005, 17283, 32452, 17284, 39871, 17285, 30240, 17286, 24995, 17287, 47268, 17288, 43080, 17289, 40913, 17290, 26461, 17291, 22579, 17292, 11263, 17294, 28168, 17295, 17252, 17296, 10270, 17297, 26019, 17298, 45924, 17299, 35745, 17300, 15139, 17301, 17847, 17302, 45617, 17303, 31337, 17304, 35346, 17305, 30042, 17306, 16688, 17308, 19134, 17309, 11153, 17311, 14321, 17312, 14322, 17313, 32912, 17314, 30680, 17315, 35016, 17316, 21743, 17318, 41793, 17319, 7945, 17320, 42484, 17321, 48022, 17322, 28424, 17323, 11433, 17324, 7728, 17325, 9600, 17326, 36473, 17327, 17374, 17328, 48523, 17329, 7737, 17330, 46186, 17331, 37497, 17332, 16055, 17333, 8458, 17334, 14388, 17335, 47579, 17336, 38632, 17337, 38194, 17338, 47020, 17339, 47359, 17340, 26020, 17341, 38198, 17342, 16960, 17343, 31917, 17344, 23457, 17345, 45299, 17346, 35196, 17347, 27459, 17348, 12888, 17349, 30813, 17350, 9623, 17351, 30011, 17352, 24722, 17353, 34160, 17354, 25683, 17355, 35286, 17356, 30720, 17357, 44896, 17358, 15011, 17359, 40724, 17360, 22096, 17361, 12911, 17362, 29954, 17363, 16631, 17364, 28961, 17365, 32591, 17366, 46446, 17367, 15593, 17368, 29861, 17369, 35980, 17370, 10262, 17371, 11531, 17372, 17559, 17373, 47640, 17374, 27861, 17375, 8888, 17376, 30742, 17377, 34322, 17378, 8365, 17379, 22104, 17380, 35004, 17382, 16507, 17383, 28146, 17384, 18940, 17385, 38732, 17386, 14387, 17387, 40644, 17388, 27968, 17390, 38949, 17391, 46944, 17392, 32993, 17393, 21729, 17394, 13219, 17395, 46298, 17396, 33745, 17397, 27203, 17398, 8459, 17399, 17323, 17400, 44258, 17401, 39618, 17402, 29384, 17403, 28464, 17404, 9497, 17405, 9370, 17407, 30695, 17408, 19804, 17409, 47889, 17410, 25993, 17411, 22327, 17412, 39628, 17413, 38779, 17414, 9445, 17415, 38231, 17416, 46739, 17417, 48142, 17418, 23307, 17419, 11740, 17420, 36576, 17421, 11264, 17422, 12786, 17423, 11539, 17424, 31807, 17425, 46225, 17426, 45650, 17427, 32782, 17428, 8967, 17429, 19591, 17430, 38802, 17431, 47415, 17432, 22154, 17433, 15962, 17434, 19404, 17435, 12152, 17436, 10380, 17437, 35660, 17438, 33016, 17439, 39776, 17440, 18818, 17441, 30603, 17442, 47596, 17443, 35551, 17444, 9857, 17445, 38289, 17446, 22628, 17447, 22582, 17448, 16436, 17449, 15571, 17450, 14597, 17451, 11765, 17452, 9616, 17453, 47039, 17454, 10041, 17455, 23937, 17456, 40662, 17457, 45831, 17458, 46241, 17459, 44325, 17460, 16908, 17461, 16171, 17462, 45322, 17463, 12372, 17464, 19285, 17465, 35161, 17466, 36025, 17467, 16366, 17468, 39136, 17469, 26649, 17470, 13960, 17471, 7619, 17472, 29889, 17473, 38651, 17474, 7300, 17475, 27157, 17476, 29896, 17477, 27158, 17478, 42108, 17479, 47108, 17480, 9250, 17481, 43724, 17482, 37910, 17483, 32491, 17484, 23634, 17485, 41601, 17486, 10070, 17487, 32258, 17488, 46412, 17489, 30356, 17491, 35831, 17492, 14755, 17493, 34582, 17495, 12570, 17496, 12104, 17497, 35888, 17498, 36525, 17499, 10786, 17500, 35755, 17501, 20071, 17502, 34838, 17503, 18796, 17504, 24971, 17507, 10364, 17508, 21205, 17509, 14162, 17510, 16245, 17511, 15236, 17512, 14029, 17514, 14191, 17515, 8256, 17516, 36168, 17517, 12934, 17519, 12942, 17520, 9376, 17521, 37635, 17522, 46155, 17523, 26332, 17524, 30582, 17525, 28079, 17526, 31131, 17528, 48183, 17529, 35155, 17531, 44049, 17532, 47285, 17533, 35766, 17535, 35336, 17536, 9390, 17537, 38978, 17538, 20531, 17539, 9639, 17540, 15501, 17541, 36286, 17542, 10358, 17543, 15510, 17544, 14788, 17545, 38571, 17546, 38716, 17547, 42089, 17548, 27775, 17549, 29422, 17550, 26797, 17551, 33345, 17552, 27188, 17553, 9631, 17554, 36634, 17555, 22395, 17556, 7781, 17557, 39988, 17558, 40436, 17559, 30744, 17562, 33725, 17563, 18651, 17564, 28947, 17565, 39965, 17566, 10407, 17567, 12347, 17568, 14958, 17569, 43469, 17570, 7492, 17571, 32450, 17572, 32645, 17573, 26633, 17574, 14584, 17575, 31973, 17576, 34260, 17577, 17627, 17578, 8722, 17579, 12292, 17580, 27881, 17581, 12731, 17584, 23076, 17586, 9836, 17587, 13985, 17588, 44106, 17589, 17520, 17591, 16514, 17592, 41234, 17593, 24053, 17594, 21154, 17595, 30696, 17596, 31980, 17597, 37751, 17598, 42594, 17599, 24904, 17602, 41657, 17603, 43116, 17604, 43422, 17605, 30562, 17606, 46226, 17607, 39104, 17608, 43117, 17609, 42405, 17610, 38480, 17611, 46685, 17612, 46997, 17613, 17280, 17614, 11572, 17615, 15124, 17616, 11513, 17617, 30137, 17618, 22993, 17619, 11058, 17621, 37418, 17622, 31750, 17623, 11751, 17624, 15804, 17625, 22971, 17626, 31991, 17627, 31992, 17628, 46688, 17629, 27230, 17630, 24455, 17631, 47277, 17632, 35749, 17633, 46689, 17634, 16490, 17635, 24867, 17636, 18124, 17637, 23451, 17638, 13032, 17639, 11706, 17640, 43604, 17643, 30584, 17645, 9838, 17646, 26929, 17647, 13614, 17648, 43362, 17649, 9872, 17650, 32977, 17651, 17777, 17652, 32927, 17653, 15132, 17654, 23548, 17655, 40569, 17656, 20160, 17657, 43164, 17658, 27021, 17660, 26773, 17661, 19863, 17662, 35585, 17663, 17366, 17665, 24480, 17666, 48114, 17667, 48374, 17668, 42244, 17669, 15913, 17670, 24192, 17671, 30709, 17672, 16229, 17673, 24481, 17674, 8994, 17675, 35586, 17678, 35337, 17679, 11128, 17680, 20177, 17681, 40161, 17682, 8186, 17683, 40848, 17684, 21426, 17685, 30352, 17686, 25362, 17687, 39760, 17688, 48568, 17689, 13178, 17690, 11526, 17691, 31679, 17692, 28263, 17693, 45794, 17694, 26204, 17695, 42788, 17696, 33730, 17697, 44349, 17698, 18441, 17699, 24201, 17700, 29253, 17703, 24202, 17706, 34779, 17708, 43222, 17709, 28940, 17710, 34950, 17711, 22956, 17712, 15511, 17713, 42619, 17714, 12722, 17715, 32430, 17716, 9690, 17718, 36398, 17719, 31551, 17720, 8845, 17721, 35510, 17722, 37900, 17723, 13876, 17724, 33315, 17725, 7362, 17726, 30817, 17727, 48490, 17728, 23057, 17729, 14734, 17731, 43566, 17733, 33242, 17734, 13564, 17735, 19098, 17736, 40339, 17737, 45552, 17738, 35964, 17739, 36112, 17740, 47109, 17741, 43255, 17742, 15330, 17743, 14107, 17745, 22357, 17746, 19995, 17747, 9812, 17748, 39499, 17749, 26724, 17751, 8618, 17752, 25378, 17753, 21010, 17754, 23281, 17755, 20046, 17757, 10527, 17758, 23792, 17759, 40505, 17760, 14799, 17761, 26126, 17762, 45744, 17763, 17698, 17764, 19490, 17765, 28558, 17766, 43732, 17767, 40056, 17768, 36302, 17769, 23871, 17770, 45558, 17771, 23219, 17773, 31063, 17774, 21788, 17775, 29987, 17776, 14538, 17777, 36961, 17778, 25206, 17779, 27320, 17780, 47955, 17781, 40185, 17782, 18385, 17783, 27321, 17784, 20854, 17785, 45267, 17786, 11833, 17787, 24630, 17788, 32435, 17789, 47491, 17790, 43455, 17791, 17392, 17793, 43312, 17794, 26263, 17795, 45060, 17796, 32437, 17797, 25428, 17798, 28703, 17799, 44735, 17800, 29102, 17802, 43018, 17803, 29104, 17804, 43019, 17805, 31012, 17806, 39231, 17807, 11200, 17808, 43415, 17809, 27388, 17810, 38804, 17811, 28170, 17812, 22470, 17813, 48370, 17814, 39249, 17815, 41668, 17816, 37084, 17817, 36322, 17818, 38442, 17819, 35641, 17820, 43448, 17821, 10966, 17822, 47312, 17823, 26781, 17824, 44805, 17825, 29086, 17826, 27537, 17827, 45445, 17828, 37617, 17829, 24126, 17830, 31975, 17831, 28154, 17832, 34203, 17833, 8464, 17834, 47988, 17835, 7934, 17837, 22027, 17838, 39769, 17839, 23188, 17840, 29301, 17841, 23077, 17842, 41323, 17843, 45764, 17844, 42203, 17845, 23308, 17846, 18875, 17847, 38805, 17848, 14093, 17849, 42052, 17850, 36649, 17851, 44039, 17852, 22155, 17853, 24149, 17855, 24170, 17856, 10508, 17857, 19839, 17858, 18284, 17859, 45977, 17860, 15380, 17861, 10155, 17862, 16640, 17863, 21750, 17864, 27123, 17865, 10121, 17866, 36022, 17867, 27980, 17868, 40494, 17869, 24303, 17870, 41587, 17871, 35157, 17872, 34144, 17873, 43165, 17874, 9056, 17875, 11766, 17876, 18026, 17877, 37636, 17878, 12961, 17879, 19449, 17880, 15985, 17881, 17261, 17882, 9213, 17883, 40665, 17884, 25511, 17885, 9508, 17886, 9509, 17887, 43223, 17888, 41079, 17889, 41681, 17890, 45455, 17891, 17375, 17892, 43872, 17893, 48196, 17895, 22531, 17896, 44351, 17897, 30462, 17898, 46309, 17899, 26520, 17902, 34780, 17903, 21263, 17904, 16682, 17905, 30357, 17906, 25231, 17908, 36783, 17909, 20506, 17910, 23469, 17911, 43256, 17912, 43848, 17913, 11716, 17914, 41823, 17915, 21007, 17916, 41286, 17917, 38129, 17918, 39564, 17919, 28919, 17920, 15520, 17921, 16004, 17923, 27948, 17924, 47619, 17925, 28194, 17926, 39569, 17927, 38216, 17928, 24601, 17929, 9517, 17930, 27624, 17931, 20218, 17932, 28622, 17933, 9892, 17934, 37564, 17935, 40878, 17936, 29088, 17937, 26608, 17938, 48410, 17939, 22493, 17940, 22370, 17941, 17417, 17944, 44637, 17945, 38130, 17946, 47451, 17949, 42992, 17951, 13108, 17952, 15220, 17953, 8371, 17954, 47507, 17955, 48102, 17956, 34643, 17957, 39233, 17958, 28493, 17960, 20687, 17961, 41324, 17962, 10932, 17963, 29038, 17964, 32675, 17965, 46977, 17966, 33179, 17968, 33502, 17969, 44578, 17971, 21120, 17973, 26024, 17974, 17195, 17975, 8865, 17976, 43144, 17977, 48450, 17978, 45978, 17979, 44601, 17980, 37637, 17981, 28508, 17982, 16641, 17983, 22167, 17984, 8283, 17985, 9502, 17987, 14046, 17988, 30794, 17989, 42167, 17990, 23266, 17991, 32903, 17992, 18027, 17993, 41340, 17994, 40290, 17996, 23267, 17998, 40153, 17999, 9214, 18000, 22722, 18001, 11972, 18002, 40962, 18003, 7774, 18004, 29194, 18005, 48231, 18007, 36474, 18008, 11213, 18009, 10750, 18010, 28725, 18011, 16680, 18012, 15028, 18013, 40315, 18014, 12723, 18015, 37901, 18016, 22214, 18017, 23277, 18018, 45628, 18019, 33083, 18020, 14003, 18021, 25371, 18022, 27175, 18024, 17091, 18025, 27176, 18026, 25677, 18028, 43800, 18030, 16694, 18031, 11922, 18032, 24269, 18033, 13660, 18035, 8769, 18037, 38782, 18039, 12679, 18040, 12680, 18041, 39619, 18042, 24661, 18044, 33747, 18045, 40121, 18046, 34123, 18047, 38070, 18050, 17725, 18051, 44045, 18052, 26035, 18053, 23549, 18054, 43760, 18055, 34065, 18056, 22046, 18057, 30809, 18058, 20295, 18059, 45200, 18061, 30818, 18063, 25236, 18064, 19661, 18065, 26589, 18066, 11409, 18067, 28673, 18068, 8960, 18069, 24637, 18070, 25430, 18071, 15758, 18072, 10590, 18073, 41016, 18074, 39539, 18075, 18200, 18076, 8330, 18077, 48329, 18078, 12255, 18079, 12256, 18080, 19188, 18081, 33101, 18082, 10351, 18083, 36384, 18085, 29163, 18086, 47084, 18087, 25525, 18088, 14793, 18089, 20735, 18090, 16621, 18091, 38986, 18092, 25170, 18093, 41053, 18094, 32632, 18095, 36240, 18096, 29836, 18097, 40438, 18098, 33575, 18099, 46950, 18100, 37502, 18101, 36969, 18102, 36499, 18103, 42587, 18104, 40240, 18105, 29838, 18106, 42195, 18107, 42196, 18108, 29089, 18109, 17517, 18110, 28880, 18111, 43528, 18112, 14551, 18113, 28251, 18114, 42156, 18115, 37670, 18116, 44887, 18117, 39240, 18118, 47352, 18119, 44888, 18120, 34356, 18121, 27525, 18122, 38783, 18123, 19809, 18124, 36216, 18125, 14764, 18126, 41236, 18127, 28497, 18128, 11635, 18129, 27389, 18130, 8730, 18132, 28110, 18133, 44580, 18134, 14210, 18135, 46843, 18136, 32542, 18137, 40930, 18138, 26289, 18139, 19020, 18140, 41390, 18141, 28347, 18142, 17352, 18143, 20031, 18144, 13551, 18145, 18485, 18146, 37015, 18147, 30093, 18148, 11893, 18149, 38825, 18150, 35125, 18151, 27278, 18152, 40450, 18153, 38644, 18154, 31759, 18155, 46030, 18156, 36222, 18157, 40570, 18158, 21606, 18159, 21912, 18160, 19189, 18161, 36377, 18162, 26643, 18163, 41907, 18164, 19431, 18165, 34470, 18166, 24003, 18167, 37641, 18168, 10345, 18169, 9554, 18170, 21083, 18171, 44175, 18172, 18952, 18173, 45739, 18174, 35343, 18175, 15990, 18176, 28397, 18177, 39145, 18179, 13793, 18180, 10756, 18181, 37902, 18182, 46265, 18183, 16972, 18184, 10232, 18185, 10689, 18186, 45428, 18187, 19100, 18188, 26235, 18189, 24954, 18190, 23836, 18191, 37327, 18192, 18903, 18193, 38665, 18194, 7622, 18195, 33832, 18196, 35430, 18197, 26623, 18198, 36030, 18199, 40461, 18200, 21368, 18201, 7425, 18202, 35797, 18203, 9983, 18204, 38134, 18205, 37155, 18206, 19911, 18207, 10444, 18208, 10361, 18209, 44706, 18210, 39574, 18211, 40392, 18215, 28398, 18217, 41963, 18218, 31860, 18219, 20476, 18220, 35094, 18221, 22328, 18222, 24915, 18223, 21754, 18225, 26691, 18226, 25108, 18228, 11248, 18229, 10793, 18230, 39755, 18231, 31489, 18232, 27018, 18233, 34666, 18234, 9876, 18235, 10804, 18236, 16377, 18237, 44340, 18238, 43365, 18240, 25516, 18241, 23831, 18242, 34684, 18243, 46271, 18244, 34762, 18245, 18860, 18248, 14196, 18250, 33436, 18251, 48248, 18252, 22184, 18253, 22348, 18254, 37117, 18255, 25788, 18256, 37908, 18257, 10955, 18258, 47620, 18259, 25109, 18261, 46278, 18262, 46120, 18264, 43051, 18265, 11135, 18266, 28498, 18267, 9094, 18268, 35370, 18269, 42862, 18270, 17536, 18271, 41538, 18272, 18604, 18273, 26719, 18274, 26720, 18275, 32094, 18276, 23869, 18277, 17488, 18278, 47178, 18279, 27649, 18280, 39441, 18281, 46466, 18282, 34586, 18283, 48513, 18284, 47582, 18285, 16296, 18286, 41133, 18287, 43086, 18288, 46999, 18289, 40132, 18290, 21225, 18291, 9503, 18293, 9380, 18294, 24842, 18295, 46696, 18296, 19854, 18297, 37642, 18298, 16676, 18299, 21683, 18300, 21417, 18301, 7337, 18302, 15484, 18303, 16909, 18304, 18069, 18305, 41924, 18306, 32930, 18307, 47063, 18308, 8851, 18309, 42789, 18310, 35636, 18311, 13272, 18312, 16927, 18313, 34092, 18314, 41405, 18315, 10481, 18316, 33780, 18317, 31657, 18320, 11543, 18321, 17903, 18322, 13467, 18323, 10509, 18324, 37987, 18325, 32857, 18326, 34581, 18327, 9415, 18328, 19552, 18329, 45246, 18330, 30539, 18331, 41566, 18332, 15436, 18333, 44559, 18334, 15259, 18335, 30246, 18336, 46675, 18337, 35987, 18338, 48514, 18339, 10307, 18340, 32050, 18341, 44170, 18342, 17653, 18343, 18063, 18344, 16858, 18345, 14211, 18346, 20550, 18347, 45147, 18348, 36985, 18349, 12058, 18350, 37017, 18351, 15471, 18352, 48520, 18353, 18201, 18355, 9201, 18356, 46103, 18357, 22267, 18358, 36042, 18359, 22186, 18360, 15485, 18361, 18773, 18362, 11485, 18363, 43920, 18364, 11465, 18365, 35637, 18366, 10752, 18367, 30968, 18368, 9420, 18369, 39983, 18370, 26659, 18371, 9482, 18372, 30819, 18373, 20431, 18374, 8602, 18375, 19481, 18376, 46776, 18377, 47481, 18378, 32095, 18379, 45947, 18380, 19669, 18381, 8667, 18383, 24605, 18384, 24615, 18385, 45047, 18386, 32263, 18387, 10489, 18388, 15422, 18389, 9835, 18390, 36145, 18391, 34345, 18392, 17436, 18393, 31430, 18394, 30541, 18395, 9161, 18396, 28156, 18397, 36982, 18398, 11150, 18399, 11884, 18400, 44994, 18401, 46676, 18402, 10421, 18403, 11257, 18404, 8485, 18405, 27111, 18406, 7694, 18407, 36530, 18408, 27656, 18409, 25014, 18410, 15034, 18411, 10502, 18412, 31938, 18413, 36645, 18414, 15273, 18415, 23385, 18416, 20269, 18420, 46476, 18421, 31915, 18422, 48566, 18423, 10872, 18424, 23200, 18425, 25069, 18426, 8173, 18427, 13709, 18428, 38555, 18430, 47912, 18431, 26040, 18432, 36043, 18434, 11174, 18435, 24869, 18436, 36591, 18437, 23352, 18438, 10160, 18439, 22187, 18440, 37080, 18441, 18685, 18442, 14777, 18443, 8555, 18445, 39202, 18446, 38385, 18447, 19869, 18448, 32162, 18449, 23236, 18450, 18231, 18451, 31817, 18452, 35491, 18453, 9419, 18455, 31940, 18456, 29891, 18457, 29414, 18458, 37509, 18459, 42251, 18460, 32709, 18461, 41276, 18462, 11909, 18463, 13273, 18464, 10903, 18465, 12106, 18466, 27234, 18467, 41107, 18468, 14004, 18469, 8906, 18470, 46310, 18471, 11190, 18472, 10094, 18473, 16931, 18474, 13768, 18475, 48300, 18476, 12757, 18477, 23537, 18478, 36304, 18479, 45048, 18480, 32264, 18481, 47494, 18482, 25311, 18483, 10372, 18484, 46417, 18485, 15451, 18486, 33804, 18487, 36676, 18488, 22969, 18489, 7272, 18491, 31760, 18492, 34678, 18493, 17132, 18494, 33558, 18495, 37535, 18496, 45948, 18497, 25725, 18498, 21511, 18499, 24377, 18501, 11473, 18502, 32666, 18503, 44984, 18504, 22130, 18505, 22541, 18506, 14552, 18507, 30543, 18508, 17908, 18509, 15244, 18510, 25857, 18511, 17919, 18512, 37369, 18513, 27657, 18514, 36531, 18515, 22035, 18516, 30698, 18517, 46580, 18518, 31691, 18519, 16206, 18520, 36541, 18521, 23748, 18522, 26924, 18523, 43544, 18524, 26042, 18525, 44776, 18526, 21757, 18527, 29883, 18529, 40155, 18530, 8744, 18531, 19138, 18532, 47428, 18533, 32712, 18534, 33196, 18535, 38440, 18536, 9842, 18537, 22785, 18538, 33612, 18539, 29645, 18540, 26721, 18541, 40675, 18543, 11782, 18544, 22789, 18545, 47672, 18546, 9967, 18547, 34955, 18548, 10956, 18549, 35515, 18550, 8191, 18551, 22438, 18553, 47122, 18554, 38140, 18555, 27676, 18556, 25394, 18557, 48387, 18558, 28871, 18559, 25431, 18560, 30753, 18561, 44986, 18563, 43167, 18564, 39039, 18565, 10427, 18567, 32755, 18568, 10443, 18569, 29001, 18570, 43993, 18571, 19742, 18572, 9129, 18573, 14648, 18576, 11870, 18577, 12874, 18578, 20592, 18579, 44254, 18580, 17614, 18581, 40889, 18582, 44510, 18583, 31967, 18585, 7788, 18586, 16059, 18587, 21468, 18589, 41530, 18590, 34652, 18591, 44031, 18592, 35119, 18593, 42472, 18594, 9593, 18595, 42228, 18596, 34667, 18597, 41662, 18598, 34721, 18599, 25000, 18600, 11767, 18601, 44621, 18602, 9215, 18603, 35428, 18605, 41926, 18606, 24062, 18607, 25168, 18608, 36323, 18609, 13637, 18610, 45049, 18611, 19684, 18613, 45093, 18616, 21637, 18617, 21800, 18618, 11133, 18619, 10404, 18620, 16142, 18621, 39814, 18622, 39517, 18623, 7380, 18624, 16835, 18625, 44411, 18626, 23989, 18628, 37040, 18629, 10410, 18630, 40527, 18631, 31876, 18632, 17438, 18634, 12524, 18635, 9443, 18636, 12879, 18637, 41754, 18638, 47992, 18640, 43589, 18641, 9929, 18643, 24153, 18644, 35620, 18645, 26536, 18646, 26541, 18648, 36082, 18649, 29521, 18650, 25774, 18651, 30446, 18652, 12101, 18653, 37081, 18654, 14238, 18655, 9506, 18656, 20970, 18657, 42779, 18658, 19648, 18659, 12535, 18660, 22247, 18661, 8366, 18662, 24045, 18663, 43023, 18664, 11504, 18665, 11507, 18666, 30241, 18667, 24127, 18668, 45293, 18669, 35868, 18670, 30247, 18671, 11872, 18672, 21887, 18673, 40933, 18674, 14590, 18676, 40934, 18677, 14393, 18678, 19220, 18679, 47418, 18680, 32456, 18681, 14429, 18682, 21971, 18683, 17198, 18684, 24844, 18685, 46697, 18686, 27417, 18687, 44205, 18689, 9704, 18690, 26991, 18691, 43366, 18692, 27513, 18693, 37085, 18694, 23205, 18697, 27429, 18698, 32713, 18699, 44658, 18700, 31193, 18701, 27294, 18702, 21779, 18703, 29855, 18704, 21180, 18705, 37781, 18706, 19897, 18707, 27183, 18708, 20452, 18709, 41252, 18710, 8076, 18711, 15698, 18712, 10076, 18713, 24643, 18714, 24294, 18715, 31878, 18716, 13901, 18717, 43785, 18718, 45142, 18719, 10423, 18720, 46839, 18721, 32457, 18723, 26290, 18724, 22388, 18725, 16861, 18726, 45005, 18727, 19035, 18728, 29880, 18729, 9799, 18730, 13993, 18731, 9949, 18732, 33388, 18733, 34389, 18734, 33824, 18735, 40541, 18736, 43697, 18737, 34390, 18738, 10884, 18739, 42505, 18740, 17262, 18741, 14782, 18742, 42506, 18743, 41810, 18744, 48403, 18745, 35167, 18746, 21132, 18747, 14050, 18748, 39671, 18749, 16617, 18750, 36191, 18751, 31460, 18752, 10055, 18753, 17269, 18754, 27235, 18755, 45024, 18756, 11910, 18757, 31144, 18758, 21179, 18759, 33618, 18760, 28040, 18761, 44784, 18763, 29602, 18764, 46616, 18765, 47111, 18766, 11527, 18767, 44471, 18768, 27991, 18769, 37695, 18770, 20570, 18771, 30473, 18772, 35353, 18773, 30030, 18774, 36555, 18775, 23058, 18776, 11915, 18777, 35520, 18779, 20851, 18780, 20446, 18781, 7564, 18782, 20744, 18783, 42540, 18785, 42541, 18786, 25679, 18787, 45435, 18788, 7992, 18789, 24740, 18791, 18617, 18792, 26219, 18793, 37922, 18794, 39570, 18795, 36710, 18796, 9264, 18797, 46620, 18798, 47485, 18799, 8104, 18800, 27191, 18801, 40202, 18802, 29203, 18803, 43980, 18805, 40005, 18806, 24626, 18807, 45720, 18808, 27328, 18810, 42404, 18813, 30183, 18814, 40194, 18818, 33619, 18819, 47849, 18821, 33624, 18822, 22262, 18823, 19798, 18824, 20836, 18826, 28717, 18827, 7562, 18828, 11249, 18829, 38617, 18830, 16636, 18831, 40254, 18832, 36809, 18833, 41237, 18834, 12559, 18835, 45862, 18836, 35989, 18837, 29595, 18838, 40139, 18839, 40946, 18840, 39647, 18841, 35030, 18842, 22988, 18843, 46606, 18844, 38486, 18845, 19203, 18846, 32998, 18847, 38237, 18848, 13587, 18849, 18598, 18850, 23391, 18851, 15495, 18852, 11321, 18853, 39480, 18854, 31548, 18855, 31402, 18856, 23602, 18858, 41539, 18859, 43622, 18860, 32362, 18861, 17403, 18862, 11544, 18863, 47089, 18865, 38033, 18866, 41700, 18867, 39833, 18868, 43283, 18869, 28562, 18870, 46607, 18871, 11318, 18873, 34176, 18874, 13309, 18875, 48080, 18876, 22089, 18877, 40859, 18878, 44814, 18881, 40824, 18882, 12631, 18883, 36515, 18884, 16023, 18885, 42691, 18886, 17894, 18887, 42579, 18889, 24292, 18890, 22896, 18891, 39530, 18892, 35397, 18893, 39082, 18894, 41124, 18897, 12780, 18898, 23511, 18899, 47262, 18900, 28688, 18901, 10570, 18902, 20373, 18903, 8488, 18904, 47682, 18905, 25314, 18906, 17527, 18907, 7944, 18908, 36072, 18909, 10673, 18910, 26558, 18911, 39640, 18912, 34738, 18913, 43824, 18914, 31994, 18916, 30341, 18917, 19047, 18918, 37889, 18919, 42870, 18920, 42507, 18922, 10353, 18923, 17485, 18924, 8950, 18926, 39681, 18927, 9980, 18928, 19196, 18930, 17327, 18931, 11632, 18932, 46678, 18933, 30555, 18934, 23189, 18935, 32783, 18937, 43594, 18938, 40606, 18940, 18214, 18941, 11985, 18943, 32355, 18944, 12832, 18945, 38654, 18946, 31820, 18948, 41946, 18949, 24959, 18950, 8347, 18952, 8962, 18954, 44791, 18955, 29105, 18956, 7980, 18957, 43747, 18958, 17929, 18959, 11643, 18960, 30876, 18961, 36367, 18962, 44604, 18963, 23933, 18964, 7985, 18966, 19844, 18967, 15303, 18968, 39656, 18969, 9703, 18970, 18136, 18971, 33305, 18972, 8269, 18973, 31631, 18974, 44466, 18975, 37471, 18976, 7299, 18977, 17265, 18978, 12477, 18979, 15992, 18980, 12837, 18981, 19301, 18982, 29392, 18984, 47764, 18985, 25367, 18986, 26588, 18987, 26621, 18988, 24732, 18989, 39938, 18990, 41213, 18991, 46494, 18992, 30266, 18993, 15521, 18994, 29028, 18995, 39175, 18996, 13853, 18997, 12493, 18998, 45159, 18999, 39695, 19000, 43515, 19001, 34556, 19002, 13856, 19003, 8314, 19004, 18381, 19005, 14718, 19006, 14760, 19007, 45250, 19008, 8179, 19009, 14695, 19010, 39359, 19011, 34375, 19012, 27505, 19013, 45925, 19014, 45926, 19015, 45864, 19016, 19068, 19017, 15387, 19018, 37651, 19019, 27833, 19020, 31342, 19021, 24988, 19023, 27625, 19024, 18113, 19025, 17922, 19026, 44286, 19027, 30567, 19028, 14038, 19029, 7495, 19031, 7723, 19032, 12946, 19033, 41142, 19034, 12955, 19035, 8530, 19036, 47360, 19037, 29456, 19038, 36700, 19039, 42769, 19041, 20040, 19042, 47066, 19043, 37086, 19044, 40157, 19045, 12466, 19046, 36660, 19047, 40309, 19048, 10210, 19049, 44892, 19050, 16647, 19051, 24871, 19052, 8289, 19054, 26074, 19055, 19658, 19056, 41154, 19057, 34687, 19058, 13591, 19059, 35170, 19060, 18247, 19061, 45204, 19062, 10065, 19063, 7915, 19064, 32721, 19065, 14111, 19066, 38276, 19067, 7732, 19068, 15030, 19069, 44207, 19070, 46311, 19071, 14891, 19072, 16648, 19073, 9330, 19074, 16007, 19075, 13880, 19076, 18797, 19077, 13650, 19078, 36425, 19079, 9266, 19080, 31147, 19081, 25117, 19082, 25699, 19083, 38147, 19084, 46007, 19085, 23650, 19086, 35419, 19087, 28173, 19088, 8531, 19089, 37379, 19090, 47597, 19091, 13190, 19092, 9327, 19093, 21767, 19094, 30262, 19095, 39274, 19096, 38026, 19097, 30264, 19098, 12167, 19099, 14473, 19100, 9918, 19101, 18386, 19102, 45251, 19108, 14537, 19109, 40359, 19110, 17923, 19111, 10729, 19112, 7981, 19113, 43424, 19115, 21313, 19116, 9216, 19117, 32935, 19118, 11119, 19119, 43630, 19120, 42628, 19121, 15582, 19122, 23309, 19123, 45144, 19124, 46422, 19125, 41484, 19126, 21680, 19127, 18066, 19128, 27669, 19129, 7754, 19130, 15971, 19131, 8738, 19132, 47843, 19133, 17530, 19134, 46423, 19135, 34064, 19136, 16036, 19137, 8556, 19138, 13998, 19139, 11525, 19140, 11306, 19141, 33171, 19142, 10609, 19143, 32424, 19144, 10456, 19145, 26933, 19146, 29527, 19147, 37831, 19148, 29850, 19149, 15389, 19150, 47846, 19151, 30464, 19152, 25164, 19153, 42615, 19154, 27080, 19155, 38495, 19156, 30820, 19157, 13275, 19158, 10460, 19159, 39275, 19160, 17687, 19161, 33198, 19162, 16530, 19163, 18035, 19164, 7521, 19165, 15393, 19166, 31303, 19167, 19195, 19168, 29744, 19169, 41693, 19170, 34956, 19171, 38983, 19172, 27757, 19173, 23240, 19174, 16001, 19176, 7623, 19177, 33159, 19178, 34784, 19179, 25795, 19180, 46435, 19181, 19110, 19182, 9984, 19184, 25240, 19185, 28114, 19186, 17390, 19187, 13652, 19188, 21270, 19189, 27475, 19190, 14542, 19191, 14289, 19192, 10222, 19193, 17924, 19194, 17930, 19195, 44583, 19196, 41241, 19197, 29436, 19198, 8328, 19199, 10230, 19200, 44114, 19201, 42758, 19202, 41243, 19203, 33061, 19204, 40956, 19205, 24466, 19206, 24483, 19207, 44925, 19208, 13829, 19209, 19287, 19210, 33443, 19211, 24094, 19212, 30275, 19213, 18140, 19214, 17050, 19215, 9391, 19216, 32950, 19217, 38118, 19218, 35171, 19219, 7477, 19220, 44358, 19221, 39723, 19222, 17809, 19223, 42068, 19224, 39939, 19225, 42261, 19227, 8621, 19229, 17813, 19230, 36238, 19231, 25551, 19233, 47610, 19235, 39098, 19236, 45351, 19237, 43093, 19238, 13549, 19239, 44843, 19240, 21595, 19242, 9179, 19243, 36368, 19244, 43755, 19246, 42761, 19247, 28639, 19248, 33750, 19249, 8231, 19250, 16253, 19251, 7858, 19252, 27907, 19253, 15572, 19254, 14306, 19255, 33787, 19257, 47051, 19258, 42133, 19259, 20408, 19260, 44926, 19261, 34817, 19262, 36388, 19263, 38007, 19264, 41400, 19265, 47068, 19266, 43209, 19267, 32564, 19268, 34407, 19269, 18240, 19270, 28426, 19271, 42389, 19272, 20432, 19273, 35438, 19274, 43768, 19275, 8024, 19276, 18248, 19277, 18249, 19278, 42530, 19280, 42137, 19281, 24733, 19282, 38910, 19283, 14307, 19284, 13794, 19285, 45344, 19286, 47618, 19287, 43774, 19288, 43776, 19289, 21182, 19290, 11412, 19291, 12491, 19293, 23034, 19294, 43293, 19295, 42546, 19296, 20329, 19297, 14308, 19298, 28923, 19299, 11667, 19300, 31103, 19301, 41253, 19302, 9116, 19303, 27363, 19304, 34822, 19305, 27826, 19306, 24851, 19307, 30707, 19308, 30708, 19309, 34446, 19310, 15333, 19311, 9194, 19312, 8307, 19313, 8904, 19314, 42873, 19315, 38150, 19316, 18581, 19317, 14503, 19318, 30570, 19319, 26836, 19320, 8015, 19321, 7497, 19322, 7500, 19323, 15474, 19324, 30587, 19325, 32395, 19326, 37381, 19327, 43173, 19328, 9206, 19329, 29939, 19330, 7702, 19332, 41074, 19335, 44642, 19336, 10749, 19337, 25864, 19338, 42782, 19339, 24484, 19341, 28723, 19342, 39150, 19343, 38496, 19345, 24063, 19346, 30314, 19347, 47848, 19348, 48417, 19349, 47938, 19350, 10126, 19351, 7478, 19352, 14344, 19353, 44679, 19354, 24102, 19355, 15515, 19356, 45715, 19357, 19163, 19358, 11545, 19359, 35175, 19360, 8340, 19361, 8615, 19362, 45716, 19364, 17695, 19365, 24571, 19367, 17385, 19368, 45300, 19369, 16379, 19370, 10622, 19371, 25797, 19372, 27949, 19373, 27437, 19374, 26625, 19375, 7627, 19376, 46272, 19377, 47483, 19378, 18799, 19379, 14540, 19380, 12759, 19381, 36915, 19383, 13655, 19384, 38400, 19385, 38145, 19386, 19924, 19387, 10914, 19388, 25183, 19389, 8827, 19390, 25704, 19391, 20343, 19392, 28874, 19393, 26408, 19394, 33922, 19396, 16528, 19397, 28848, 19398, 43056, 19399, 22904, 19400, 37591, 19401, 37467, 19402, 30878, 19403, 9207, 19404, 22560, 19405, 25344, 19406, 15721, 19407, 16527, 19408, 17128, 19409, 23085, 19410, 17804, 19411, 23161, 19412, 45543, 19413, 36744, 19414, 23757, 19415, 8589, 19416, 18691, 19417, 30259, 19418, 42318, 19419, 37693, 19420, 36481, 19421, 35440, 19422, 22973, 19423, 13843, 19424, 7587, 19425, 20447, 19426, 27821, 19427, 23287, 19428, 23035, 19429, 7482, 19430, 26575, 19431, 31673, 19432, 31272, 19434, 22576, 19435, 17553, 19436, 14009, 19437, 39351, 19438, 28187, 19439, 35582, 19440, 21076, 19441, 29727, 19442, 29252, 19443, 35072, 19444, 10156, 19445, 28818, 19446, 26644, 19447, 35079, 19448, 11712, 19449, 39384, 19450, 23400, 19452, 12838, 19453, 30286, 19454, 36663, 19455, 48347, 19456, 38345, 19457, 14790, 19458, 9460, 19459, 29648, 19460, 33104, 19462, 32795, 19463, 30632, 19464, 12109, 19465, 29349, 19466, 9260, 19467, 26664, 19468, 48235, 19469, 11719, 19470, 23288, 19471, 19925, 19472, 23647, 19474, 27195, 19475, 27477, 19476, 29353, 19477, 25902, 19478, 48402, 19480, 25545, 19481, 42859, 19482, 38202, 19483, 24468, 19484, 24485, 19485, 45630, 19486, 47528, 19487, 19156, 19488, 33927, 19489, 10885, 19490, 40573, 19491, 37763, 19492, 13417, 19493, 19302, 19494, 29853, 19495, 18143, 19496, 27060, 19497, 10311, 19498, 27062, 19499, 10233, 19500, 21791, 19501, 29047, 19503, 43304, 19504, 32860, 19505, 25435, 19506, 41531, 19508, 30789, 19509, 48027, 19511, 7950, 19512, 16169, 19513, 45533, 19514, 21080, 19515, 44333, 19516, 31537, 19517, 8180, 19518, 7673, 19519, 37390, 19520, 42004, 19521, 31332, 19522, 44123, 19523, 47070, 19524, 21085, 19525, 27924, 19526, 34045, 19527, 33606, 19528, 30607, 19529, 33607, 19530, 27355, 19531, 16212, 19532, 42792, 19533, 16116, 19534, 16117, 19535, 36977, 19536, 15144, 19537, 41201, 19538, 42532, 19539, 36782, 19540, 36664, 19541, 27990, 19542, 25530, 19543, 9483, 19544, 24219, 19545, 34551, 19546, 26094, 19547, 19314, 19548, 12140, 19549, 29287, 19550, 25537, 19551, 21939, 19552, 45994, 19553, 21780, 19554, 46567, 19555, 48349, 19556, 39682, 19557, 47115, 19560, 23471, 19563, 23478, 19564, 40805, 19565, 16118, 19566, 14114, 19567, 28010, 19568, 47236, 19569, 36408, 19570, 44874, 19571, 45890, 19572, 16119, 19573, 38278, 19574, 23760, 19575, 44380, 19576, 35180, 19577, 45745, 19578, 17133, 19579, 18450, 19580, 45952, 19582, 25798, 19583, 10101, 19584, 47128, 19585, 38141, 19586, 41087, 19587, 45459, 19588, 27677, 19589, 16809, 19590, 35232, 19593, 34964, 19594, 14057, 19595, 9708, 19596, 23059, 19597, 36305, 19598, 28443, 19599, 23842, 19600, 25950, 19601, 42810, 19602, 40363, 19603, 41845, 19604, 31664, 19605, 30319, 19606, 11099, 19607, 39510, 19608, 16650, 19609, 21020, 19610, 23574, 19611, 27199, 19612, 42555, 19614, 24488, 19615, 43557, 19616, 11491, 19617, 31828, 19618, 36299, 19619, 44381, 19622, 12310, 19623, 13712, 19624, 17938, 19626, 39118, 19628, 30599, 19630, 44854, 19631, 19623, 19632, 45193, 19633, 14657, 19634, 16170, 19635, 17429, 19636, 46486, 19637, 32352, 19640, 21081, 19641, 29807, 19642, 15722, 19643, 41077, 19644, 34035, 19645, 34226, 19646, 31355, 19647, 11655, 19648, 13266, 19649, 9221, 19650, 13129, 19651, 37646, 19652, 11656, 19653, 46856, 19654, 7762, 19655, 38564, 19656, 8022, 19657, 12469, 19658, 7703, 19659, 36908, 19661, 16178, 19662, 21614, 19663, 16919, 19664, 11714, 19665, 44124, 19666, 44864, 19667, 23866, 19668, 21770, 19669, 15328, 19670, 28835, 19671, 14105, 19672, 14106, 19673, 40550, 19674, 22498, 19675, 41939, 19676, 37092, 19677, 30295, 19678, 8291, 19679, 27758, 19680, 34820, 19681, 41948, 19682, 30637, 19683, 44872, 19684, 8877, 19686, 41050, 19687, 18037, 19688, 18795, 19689, 42174, 19690, 22054, 19691, 23215, 19692, 14273, 19693, 19667, 19694, 27943, 19695, 10984, 19696, 8028, 19697, 38669, 19698, 46495, 19699, 40981, 19700, 35799, 19701, 10909, 19702, 38928, 19703, 11831, 19704, 26524, 19705, 22877, 19706, 41959, 19707, 9518, 19709, 17753, 19710, 12729, 19711, 32434, 19712, 36917, 19713, 44715, 19714, 39836, 19715, 28363, 19716, 34841, 19717, 14893, 19718, 30363, 19719, 25398, 19720, 7589, 19721, 18622, 19722, 42812, 19723, 18623, 19724, 27197, 19725, 43662, 19726, 24039, 19727, 41978, 19728, 8031, 19729, 13297, 19730, 25436, 19731, 34148, 19732, 20632, 19733, 25085, 19734, 21327, 19735, 21785, 19736, 36327, 19737, 29906, 19738, 15780, 19739, 39931, 19740, 37523, 19741, 11323, 19742, 12857, 19743, 18589, 19744, 42313, 19745, 24469, 19746, 27280, 19747, 18138, 19748, 34036, 19749, 19993, 19750, 43446, 19751, 37833, 19753, 29988, 19754, 26109, 19755, 25399, 19756, 43149, 19757, 9431, 19758, 33589, 19759, 18132, 19760, 34566, 19761, 37325, 19762, 27926, 19763, 18439, 19764, 36718, 19765, 9034, 19766, 29649, 19767, 19162, 19768, 15146, 19769, 17090, 19770, 9397, 19771, 24231, 19772, 10092, 19773, 29817, 19774, 12111, 19775, 27187, 19776, 35653, 19777, 31254, 19778, 46782, 19779, 23147, 19780, 8348, 19781, 7569, 19782, 27198, 19783, 39657, 19784, 22958, 19785, 36959, 19786, 37119, 19787, 38028, 19788, 39394, 19790, 37122, 19791, 23873, 19792, 10078, 19793, 28607, 19794, 28613, 19795, 24195, 19796, 13437, 19797, 21946, 19798, 31145, 19799, 9263, 19800, 33466, 19801, 45672, 19802, 36242, 19803, 31148, 19804, 29011, 19805, 43126, 19806, 21415, 19807, 15685, 19808, 12839, 19809, 20289, 19810, 27058, 19811, 12212, 19812, 20309, 19813, 44681, 19814, 40328, 19815, 45318, 19816, 26778, 19817, 24232, 19818, 16983, 19819, 41287, 19820, 35793, 19821, 46312, 19822, 42138, 19823, 37156, 19824, 33661, 19825, 39180, 19826, 31306, 19827, 38148, 19828, 43802, 19829, 11301, 19830, 32091, 19831, 37474, 19833, 46712, 19834, 36819, 19835, 16468, 19836, 33662, 19837, 9412, 19838, 15329, 19839, 36720, 19840, 35788, 19841, 35800, 19842, 47922, 19843, 17267, 19844, 30155, 19845, 17693, 19846, 47769, 19847, 47384, 19848, 9269, 19849, 25550, 19850, 29092, 19851, 38900, 19852, 29489, 19853, 12976, 19854, 17574, 19855, 36486, 19856, 37540, 19857, 36488, 19858, 30617, 19859, 19884, 19860, 10757, 19861, 7733, 19862, 21266, 19863, 22730, 19864, 24573, 19865, 21947, 19866, 32144, 19867, 23483, 19868, 16464, 19869, 30886, 19870, 30657, 19871, 39694, 19872, 20339, 19873, 34234, 19874, 20219, 19875, 7285, 19876, 18452, 19877, 45675, 19878, 45561, 19879, 42323, 19880, 45902, 19881, 19931, 19882, 9849, 19883, 41981, 19884, 20215, 19886, 41832, 19888, 20644, 19889, 36914, 19890, 28267, 19891, 45039, 19893, 10761, 19968, 42558, 19969, 13304, 19970, 22563, 19971, 30401, 19972, 33673, 19973, 39286, 19974, 17273, 19975, 37658, 19976, 46061, 19977, 33117, 19978, 33674, 19979, 39287, 19980, 19334, 19981, 9336, 19982, 44393, 19983, 27478, 19984, 15585, 19985, 11102, 19986, 11103, 19987, 47637, 19988, 31405, 19989, 29679, 19990, 34275, 19991, 34274, 19992, 31789, 19993, 8998, 19994, 42430, 19995, 11789, 19996, 13379, 19997, 34883, 19998, 10534, 19999, 13373, 20000, 31791, 20001, 24853, 20002, 13374, 20003, 44078, 20004, 24854, 20005, 41609, 20006, 9039, 20007, 33203, 20008, 16942, 20009, 21489, 20010, 16020, 20011, 41408, 20012, 31207, 20013, 47136, 20014, 19681, 20015, 21033, 20016, 14936, 20017, 16652, 20018, 11366, 20019, 10008, 20020, 25128, 20021, 47866, 20022, 47496, 20023, 7629, 20024, 37566, 20025, 12333, 20026, 38043, 20027, 47497, 20028, 21336, 20029, 24342, 20030, 21801, 20031, 30027, 20032, 15155, 20033, 42635, 20034, 42885, 20035, 28195, 20036, 38508, 20037, 21540, 20038, 21541, 20039, 37291, 20040, 26939, 20041, 42887, 20042, 42559, 20043, 46622, 20044, 38403, 20045, 45748, 20046, 18076, 20047, 14407, 20048, 23899, 20049, 43378, 20050, 30079, 20051, 29380, 20052, 31307, 20053, 18269, 20054, 16563, 20055, 10544, 20056, 10552, 20057, 42816, 20058, 43457, 20059, 41546, 20060, 27576, 20061, 21539, 20062, 30663, 20063, 42416, 20064, 38944, 20065, 39698, 20066, 15586, 20067, 21542, 20068, 39288, 20069, 18289, 20070, 34484, 20071, 13506, 20072, 34242, 20073, 19341, 20074, 28297, 20075, 19936, 20076, 21836, 20077, 34177, 20078, 26858, 20079, 18077, 20080, 26592, 20081, 26271, 20082, 47965, 20083, 32864, 20084, 41179, 20085, 41731, 20086, 15347, 20087, 33354, 20088, 28115, 20089, 15634, 20090, 35596, 20091, 44232, 20092, 12052, 20093, 46282, 20094, 15641, 20095, 46920, 20096, 16763, 20097, 15645, 20098, 26276, 20099, 25191, 20100, 43095, 20101, 22068, 20102, 23922, 20103, 26576, 20104, 44394, 20105, 46497, 20106, 34289, 20107, 34295, 20108, 14377, 20109, 11220, 20110, 44209, 20111, 23150, 20112, 44208, 20113, 45083, 20114, 18290, 20115, 30482, 20116, 38510, 20117, 21335, 20118, 34979, 20119, 35443, 20120, 16039, 20121, 16040, 20122, 41493, 20123, 40059, 20124, 41497, 20125, 30494, 20126, 41501, 20127, 19525, 20128, 36946, 20129, 37711, 20130, 22545, 20131, 12229, 20132, 20577, 20133, 17146, 20134, 42901, 20135, 10003, 20136, 17779, 20137, 28012, 20138, 42557, 20139, 39761, 20140, 21277, 20141, 36754, 20142, 24874, 20143, 39762, 20144, 21281, 20145, 42444, 20146, 31474, 20147, 9137, 20148, 44165, 20149, 40242, 20150, 12401, 20151, 24665, 20152, 13999, 20153, 27082, 20154, 32529, 20155, 32530, 20156, 19507, 20157, 19508, 20158, 37712, 20159, 42888, 20160, 33923, 20161, 32531, 20162, 23896, 20163, 13305, 20164, 45563, 20165, 21144, 20166, 30296, 20167, 11031, 20168, 7631, 20169, 46043, 20170, 21091, 20171, 21034, 20172, 8984, 20173, 32620, 20174, 11788, 20175, 15061, 20176, 33135, 20177, 26307, 20178, 8985, 20179, 9561, 20180, 48075, 20181, 34277, 20182, 35665, 20183, 46062, 20184, 15401, 20185, 39320, 20186, 39321, 20187, 37292, 20188, 17863, 20189, 36838, 20190, 32569, 20191, 30889, 20192, 15666, 20193, 15876, 20194, 9117, 20195, 12258, 20196, 25445, 20197, 42818, 20198, 10277, 20199, 10133, 20200, 33026, 20201, 10134, 20202, 42637, 20203, 28043, 20204, 27099, 20205, 32570, 20206, 14547, 20207, 10278, 20208, 42076, 20209, 30999, 20210, 47206, 20211, 29827, 20212, 38347, 20213, 38512, 20214, 20346, 20215, 20077, 20216, 42271, 20217, 14938, 20218, 9562, 20219, 32572, 20220, 37715, 20221, 14902, 20222, 12763, 20223, 14638, 20224, 47137, 20225, 30667, 20226, 29530, 20227, 44211, 20228, 13146, 20229, 13887, 20230, 38580, 20231, 42902, 20232, 40422, 20233, 22546, 20234, 42563, 20235, 19511, 20236, 7306, 20237, 38513, 20238, 19729, 20239, 15159, 20240, 14408, 20241, 40632, 20242, 21183, 20243, 29680, 20244, 12385, 20245, 15084, 20246, 36121, 20247, 47207, 20248, 43940, 20249, 19224, 20250, 18972, 20251, 44395, 20252, 11993, 20253, 45087, 20254, 33136, 20255, 37927, 20256, 11336, 20257, 10291, 20258, 41444, 20259, 39582, 20260, 33637, 20261, 10107, 20262, 26308, 20263, 9563, 20264, 41364, 20265, 40426, 20266, 37928, 20267, 47532, 20268, 45582, 20269, 39415, 20270, 29057, 20271, 9119, 20272, 16326, 20273, 28524, 20274, 28570, 20275, 40203, 20276, 7863, 20277, 40853, 20278, 25251, 20279, 47324, 20280, 33845, 20281, 31945, 20282, 11684, 20283, 8238, 20284, 34281, 20285, 19938, 20286, 29681, 20287, 42917, 20288, 34984, 20289, 42822, 20290, 46498, 20291, 13039, 20292, 17179, 20293, 26601, 20294, 12422, 20295, 47533, 20296, 9338, 20297, 31946, 20298, 8354, 20299, 46088, 20300, 11669, 20301, 38045, 20302, 12764, 20303, 47534, 20304, 48531, 20305, 44137, 20306, 42077, 20307, 36415, 20308, 45957, 20309, 17580, 20310, 8400, 20311, 37333, 20312, 33768, 20313, 44214, 20314, 42918, 20315, 15162, 20316, 48538, 20317, 16236, 20318, 28932, 20319, 36840, 20320, 28525, 20321, 39327, 20322, 32029, 20323, 43806, 20324, 37483, 20325, 30899, 20326, 34422, 20327, 22372, 20328, 7961, 20329, 29536, 20330, 18914, 20331, 17707, 20332, 23845, 20333, 39739, 20334, 15927, 20335, 42016, 20336, 7765, 20337, 14437, 20338, 27760, 20339, 19941, 20340, 14381, 20341, 9040, 20342, 19526, 20343, 17773, 20344, 19211, 20345, 16821, 20346, 32192, 20347, 36613, 20348, 20659, 20349, 11686, 20350, 42940, 20351, 34246, 20352, 40514, 20353, 33848, 20354, 37302, 20355, 22455, 20356, 46716, 20357, 15551, 20358, 23494, 20359, 42654, 20360, 10768, 20361, 22974, 20362, 16701, 20363, 24351, 20364, 43320, 20365, 34296, 20366, 27333, 20367, 47391, 20368, 40861, 20369, 44140, 20370, 7378, 20371, 25957, 20372, 27963, 20373, 14313, 20374, 26312, 20375, 13443, 20376, 9827, 20377, 10649, 20378, 41367, 20379, 16132, 20380, 47241, 20381, 42570, 20382, 32810, 20383, 12064, 20384, 39208, 20385, 34989, 20386, 12264, 20387, 26131, 20388, 35809, 20389, 20660, 20390, 46321, 20391, 9647, 20392, 31308, 20393, 23006, 20394, 9860, 20395, 28933, 20396, 28980, 20397, 21147, 20398, 38526, 20399, 17994, 20400, 21460, 20401, 10625, 20402, 46447, 20403, 48546, 20404, 11109, 20405, 31475, 20406, 26132, 20407, 21712, 20408, 34624, 20409, 36795, 20410, 33970, 20411, 37213, 20412, 9130, 20413, 28242, 20414, 39846, 20415, 8714, 20416, 37202, 20417, 44403, 20418, 39064, 20419, 11876, 20420, 14073, 20421, 31853, 20422, 40811, 20423, 16736, 20424, 22934, 20425, 38527, 20426, 22305, 20427, 42968, 20428, 15353, 20429, 24825, 20430, 48360, 20431, 31358, 20432, 24361, 20433, 43884, 20434, 19171, 20435, 21377, 20436, 31110, 20437, 33162, 20438, 29528, 20439, 35233, 20440, 15189, 20441, 38706, 20442, 24283, 20443, 15354, 20444, 30081, 20445, 7998, 20446, 44233, 20447, 30505, 20448, 39212, 20449, 40434, 20450, 40634, 20451, 44404, 20452, 12905, 20453, 10293, 20454, 11034, 20455, 46889, 20456, 41737, 20457, 24649, 20458, 24362, 20459, 23495, 20460, 34897, 20461, 20230, 20462, 40635, 20463, 15359, 20464, 19242, 20465, 21861, 20466, 40013, 20467, 29273, 20468, 20356, 20469, 8847, 20470, 11236, 20471, 14750, 20472, 15044, 20473, 41508, 20474, 7427, 20475, 8130, 20476, 44503, 20477, 40382, 20478, 8367, 20479, 18273, 20480, 10109, 20481, 46655, 20482, 9044, 20483, 21578, 20484, 42188, 20485, 11998, 20486, 24650, 20487, 37600, 20488, 23496, 20489, 9567, 20490, 48239, 20491, 16024, 20492, 16599, 20493, 8131, 20494, 36561, 20495, 34499, 20496, 34500, 20497, 27100, 20498, 12633, 20499, 35916, 20500, 22108, 20501, 11442, 20502, 40558, 20503, 29607, 20504, 36123, 20505, 18057, 20506, 42839, 20507, 30409, 20508, 36433, 20509, 15707, 20510, 21383, 20511, 21059, 20512, 35391, 20513, 10196, 20514, 20897, 20515, 14650, 20516, 46721, 20517, 22795, 20518, 22006, 20519, 48154, 20520, 21862, 20521, 31112, 20522, 28481, 20523, 26315, 20524, 47832, 20525, 38308, 20526, 26413, 20527, 35056, 20528, 24097, 20529, 19172, 20530, 13389, 20531, 48125, 20532, 8220, 20533, 38529, 20534, 21863, 20535, 28204, 20536, 9436, 20537, 20237, 20538, 45823, 20539, 42381, 20540, 46722, 20541, 33412, 20542, 31616, 20543, 28935, 20544, 43573, 20545, 10495, 20546, 31015, 20547, 41747, 20548, 32913, 20549, 47217, 20550, 11533, 20551, 20059, 20552, 19781, 20553, 37947, 20554, 44419, 20555, 9048, 20556, 33006, 20557, 36335, 20558, 37788, 20559, 29909, 20560, 41868, 20561, 14959, 20562, 36124, 20563, 38357, 20564, 14165, 20565, 40110, 20566, 10305, 20567, 34051, 20568, 22460, 20569, 12915, 20570, 48556, 20571, 9746, 20572, 36759, 20573, 8137, 20574, 40230, 20575, 18732, 20576, 42292, 20577, 45963, 20578, 11111, 20579, 41556, 20580, 44020, 20581, 20358, 20582, 40828, 20583, 45642, 20584, 11600, 20585, 15430, 20586, 8318, 20587, 46921, 20588, 48213, 20589, 27492, 20590, 19553, 20591, 42844, 20592, 40231, 20593, 41316, 20594, 9416, 20595, 13727, 20596, 9656, 20597, 46342, 20598, 29213, 20599, 36939, 20600, 36940, 20601, 8138, 20602, 45244, 20603, 25751, 20604, 20905, 20605, 37948, 20606, 14911, 20607, 10142, 20608, 16764, 20609, 35186, 20610, 46954, 20611, 35265, 20612, 39192, 20613, 15437, 20614, 44909, 20615, 32742, 20616, 24416, 20617, 29071, 20618, 45175, 20619, 20515, 20620, 26552, 20621, 7935, 20622, 12984, 20623, 36058, 20624, 17518, 20625, 20917, 20626, 38763, 20627, 33580, 20628, 31117, 20629, 22133, 20630, 9569, 20631, 11250, 20632, 33138, 20633, 8148, 20634, 40021, 20635, 43899, 20636, 42197, 20637, 36014, 20638, 35566, 20639, 42092, 20640, 14424, 20641, 9050, 20642, 19968, 20643, 12254, 20644, 45309, 20645, 36126, 20646, 16404, 20647, 8930, 20648, 11201, 20649, 29116, 20650, 9474, 20651, 23996, 20652, 11955, 20653, 43812, 20654, 45418, 20655, 48219, 20656, 8258, 20657, 35095, 20658, 7599, 20659, 11343, 20660, 44436, 20661, 45828, 20662, 48322, 20663, 33641, 20664, 11415, 20665, 21406, 20666, 10856, 20667, 33405, 20668, 17335, 20669, 46013, 20670, 31626, 20671, 41888, 20672, 12937, 20673, 40256, 20674, 25759, 20675, 8150, 20676, 30005, 20677, 21155, 20678, 24783, 20679, 25994, 20680, 26636, 20681, 30936, 20682, 39360, 20683, 36017, 20684, 43683, 20685, 13465, 20686, 47687, 20687, 39811, 20688, 33586, 20689, 31317, 20690, 21478, 20691, 37207, 20692, 48486, 20693, 30336, 20694, 38808, 20695, 23813, 20696, 10183, 20697, 16714, 20698, 24907, 20699, 30436, 20700, 10504, 20701, 9936, 20702, 37982, 20703, 19412, 20704, 9099, 20705, 19023, 20706, 11362, 20707, 36703, 20708, 12451, 20709, 20697, 20710, 21596, 20711, 33344, 20712, 14916, 20713, 39641, 20714, 21746, 20715, 14214, 20716, 20604, 20717, 20388, 20718, 36883, 20719, 25217, 20720, 9181, 20721, 16489, 20722, 39361, 20723, 35289, 20724, 39642, 20725, 20487, 20726, 27708, 20727, 42475, 20728, 21234, 20729, 20089, 20730, 31375, 20731, 29881, 20732, 14979, 20733, 47362, 20734, 7335, 20735, 33113, 20736, 42762, 20737, 22335, 20738, 28987, 20739, 9943, 20740, 43150, 20741, 12564, 20742, 21354, 20743, 41019, 20744, 23021, 20745, 20278, 20746, 11272, 20747, 12367, 20748, 20704, 20749, 33406, 20750, 45314, 20751, 9548, 20752, 8944, 20753, 7423, 20754, 32838, 20755, 35840, 20756, 11070, 20757, 9873, 20758, 23598, 20759, 28544, 20760, 21171, 20761, 31133, 20762, 27124, 20763, 38560, 20764, 28904, 20765, 31762, 20766, 28545, 20767, 10162, 20768, 25074, 20769, 24006, 20770, 26164, 20771, 23103, 20772, 8065, 20773, 44646, 20774, 8797, 20775, 45341, 20776, 47072, 20777, 35043, 20778, 43962, 20779, 17477, 20780, 31699, 20781, 10473, 20782, 24509, 20783, 36289, 20784, 38009, 20785, 25717, 20786, 11210, 20787, 9964, 20788, 32468, 20789, 34547, 20790, 19101, 20791, 24574, 20792, 26381, 20793, 45345, 20794, 29125, 20795, 36135, 20796, 41833, 20797, 23968, 20798, 28317, 20799, 14310, 20800, 38573, 20801, 45129, 20802, 45319, 20803, 44792, 20804, 40580, 20805, 10917, 20806, 46126, 20807, 40582, 20808, 39323, 20809, 16699, 20810, 13803, 20811, 22674, 20812, 13804, 20813, 27480, 20814, 37104, 20815, 10136, 20816, 14312, 20817, 13805, 20818, 14314, 20819, 21099, 20820, 37106, 20821, 34985, 20822, 41732, 20823, 41738, 20824, 34251, 20826, 12523, 20827, 30916, 20828, 13484, 20829, 14823, 20830, 26821, 20831, 33880, 20832, 13485, 20834, 21306, 20835, 24307, 20836, 18825, 20837, 32875, 20838, 37713, 20839, 28444, 20840, 32190, 20841, 24857, 20842, 44234, 20843, 7630, 20844, 16122, 20845, 25578, 20846, 38674, 20847, 17393, 20848, 23576, 20849, 16216, 20850, 36491, 20851, 16594, 20852, 40551, 20853, 8989, 20854, 30495, 20855, 21849, 20856, 13015, 20857, 47970, 20858, 14819, 20859, 42081, 20860, 20110, 20861, 34452, 20862, 19810, 20863, 43096, 20864, 19856, 20865, 10051, 20866, 21437, 20867, 26872, 20868, 32438, 20869, 28445, 20870, 44793, 20871, 26855, 20872, 15735, 20873, 32439, 20874, 9645, 20875, 21438, 20876, 9646, 20877, 45302, 20878, 16535, 20879, 21453, 20880, 26877, 20881, 47333, 20882, 26880, 20883, 16291, 20884, 40825, 20885, 27493, 20886, 27364, 20887, 32730, 20888, 43376, 20889, 40192, 20890, 22453, 20891, 22270, 20892, 28979, 20893, 42645, 20894, 27250, 20895, 34307, 20896, 16597, 20897, 27105, 20898, 47189, 20899, 21865, 20900, 44745, 20901, 27732, 20902, 22852, 20903, 25129, 20904, 15432, 20905, 40195, 20906, 27411, 20907, 8983, 20908, 13380, 20909, 35856, 20910, 15737, 20911, 15009, 20912, 8987, 20913, 18300, 20914, 10918, 20915, 22075, 20916, 18301, 20917, 23109, 20918, 42419, 20919, 24096, 20920, 29355, 20921, 15163, 20922, 27680, 20923, 13442, 20924, 39513, 20925, 25020, 20926, 30851, 20927, 20101, 20928, 21373, 20929, 35129, 20930, 27007, 20931, 37030, 20932, 30410, 20933, 16473, 20934, 47819, 20935, 35057, 20936, 21384, 20937, 24826, 20938, 31686, 20939, 13106, 20940, 25273, 20941, 13456, 20942, 15708, 20943, 20242, 20944, 43335, 20945, 11842, 20946, 7270, 20947, 24417, 20948, 11428, 20949, 27765, 20950, 47821, 20951, 11956, 20952, 34920, 20953, 13955, 20954, 21235, 20955, 25193, 20956, 25194, 20957, 28905, 20958, 38851, 20959, 13621, 20960, 19679, 20961, 14476, 20962, 14477, 20963, 14478, 20964, 15039, 20965, 21626, 20966, 11195, 20967, 46496, 20968, 14940, 20969, 28047, 20970, 46789, 20971, 15160, 20972, 14941, 20973, 30101, 20974, 14946, 20975, 22393, 20976, 18733, 20977, 22400, 20978, 15646, 20979, 12738, 20980, 30140, 20981, 31066, 20982, 40578, 20983, 23001, 20984, 36988, 20985, 7513, 20986, 11129, 20987, 19337, 20988, 12542, 20989, 17212, 20990, 17216, 20991, 45434, 20992, 12587, 20993, 13094, 20994, 12589, 20995, 32566, 20996, 32567, 20997, 11381, 20998, 14806, 20999, 31406, 21000, 42890, 21001, 19338, 21002, 22439, 21003, 31106, 21004, 12069, 21005, 11146, 21006, 38217, 21007, 19342, 21008, 12387, 21009, 40506, 21010, 18455, 21011, 37567, 21012, 22076, 21013, 24104, 21014, 44954, 21015, 25015, 21016, 25461, 21017, 45490, 21018, 15738, 21019, 11423, 21020, 15164, 21021, 11131, 21022, 32149, 21023, 13100, 21024, 33473, 21025, 27681, 21026, 25252, 21027, 47140, 21028, 29356, 21029, 8884, 21030, 20868, 21031, 20869, 21032, 29441, 21033, 24343, 21034, 33474, 21035, 8885, 21036, 10004, 21037, 21339, 21038, 16500, 21039, 16049, 21040, 12630, 21041, 11425, 21042, 23151, 21043, 22885, 21044, 14010, 21045, 14382, 21046, 46878, 21047, 34696, 21048, 32288, 21049, 33355, 21050, 11687, 21051, 22675, 21052, 20877, 21053, 16872, 21054, 11688, 21055, 16873, 21056, 22394, 21057, 14011, 21058, 19744, 21059, 36430, 21060, 21346, 21061, 25747, 21062, 26412, 21063, 45498, 21064, 44743, 21065, 12117, 21066, 41165, 21067, 22679, 21068, 23426, 21069, 31007, 21070, 33356, 21071, 11426, 21072, 16541, 21073, 20350, 21074, 12119, 21075, 24109, 21076, 36310, 21077, 14751, 21078, 30271, 21079, 10013, 21080, 30511, 21081, 11427, 21082, 48126, 21083, 15751, 21084, 37542, 21085, 9077, 21086, 19364, 21087, 13927, 21088, 31645, 21089, 33570, 21090, 13577, 21091, 20359, 21092, 19769, 21093, 9078, 21094, 41551, 21095, 21866, 21096, 19199, 21097, 34076, 21098, 20243, 21099, 13945, 21100, 13728, 21101, 38422, 21102, 16543, 21103, 15433, 21104, 34072, 21105, 20364, 21106, 15897, 21107, 12186, 21108, 22401, 21109, 11429, 21110, 11330, 21111, 10027, 21112, 37128, 21113, 25995, 21114, 24136, 21115, 29668, 21116, 33498, 21117, 29961, 21118, 22835, 21119, 20689, 21120, 16518, 21121, 31273, 21122, 22157, 21123, 18479, 21124, 45652, 21125, 47906, 21126, 24682, 21127, 21905, 21128, 29728, 21129, 25494, 21130, 16899, 21131, 20705, 21132, 16900, 21133, 20394, 21134, 20395, 21135, 36038, 21136, 19202, 21137, 19857, 21138, 20409, 21139, 43178, 21140, 20410, 21141, 47074, 21142, 9965, 21143, 20322, 21144, 27819, 21145, 24254, 21146, 47525, 21147, 24330, 21148, 41488, 21149, 32287, 21150, 7861, 21151, 16125, 21152, 19934, 21153, 38576, 21154, 26599, 21155, 25016, 21156, 21184, 21157, 22757, 21158, 40082, 21159, 46790, 21160, 13440, 21161, 47535, 21162, 29058, 21163, 20870, 21164, 32030, 21165, 33733, 21166, 42919, 21167, 47390, 21168, 27839, 21169, 24345, 21170, 21185, 21171, 23797, 21172, 23798, 21173, 22004, 21174, 22844, 21175, 42017, 21176, 37447, 21177, 40011, 21178, 27964, 21179, 23062, 21180, 20878, 21181, 25022, 21182, 17581, 21183, 34297, 21184, 22680, 21185, 21193, 21186, 15856, 21187, 9131, 21188, 27686, 21189, 10828, 21190, 23717, 21191, 43885, 21192, 43886, 21193, 27487, 21194, 22681, 21195, 41257, 21196, 22007, 21197, 31646, 21198, 25966, 21199, 9355, 21200, 27200, 21201, 10836, 21202, 23925, 21203, 22426, 21204, 27494, 21205, 13459, 21206, 40890, 21207, 40893, 21208, 22442, 21209, 38606, 21210, 43026, 21211, 41260, 21212, 38281, 21213, 34077, 21214, 23809, 21215, 28063, 21216, 25996, 21217, 30006, 21218, 34362, 21219, 19398, 21220, 31523, 21221, 20552, 21222, 10227, 21223, 32291, 21224, 39812, 21225, 43129, 21226, 22159, 21227, 14457, 21228, 21970, 21229, 36884, 21230, 21906, 21231, 12368, 21232, 40140, 21233, 26613, 21234, 41266, 21235, 41268, 21236, 26201, 21237, 24470, 21238, 10356, 21239, 32469, 21240, 32295, 21241, 7958, 21242, 33712, 21243, 45084, 21244, 21495, 21245, 8033, 21246, 16235, 21247, 38574, 21248, 45085, 21249, 38178, 21250, 40579, 21251, 15587, 21252, 15588, 21253, 7959, 21254, 11720, 21255, 42894, 21256, 40583, 21257, 29573, 21258, 21628, 21259, 36197, 21260, 15928, 21261, 30325, 21262, 14158, 21263, 29452, 21264, 15222, 21265, 16151, 21266, 12187, 21267, 21583, 21268, 16166, 21269, 8349, 21270, 18454, 21271, 8105, 21272, 28372, 21273, 34424, 21274, 14608, 21275, 21563, 21276, 42638, 21277, 45218, 21278, 20536, 21279, 22547, 21280, 20537, 21281, 23060, 21282, 18078, 21283, 39206, 21284, 31947, 21285, 14481, 21286, 16822, 21287, 31413, 21288, 45384, 21289, 23065, 21290, 14714, 21291, 18095, 21292, 44420, 21293, 16842, 21294, 23246, 21295, 19008, 21296, 12362, 21297, 16898, 21298, 24674, 21299, 24683, 21300, 35377, 21301, 13623, 21302, 21617, 21303, 22226, 21304, 39048, 21305, 29824, 21306, 31942, 21307, 42565, 21308, 22591, 21309, 41739, 21310, 8674, 21311, 28579, 21312, 31968, 21313, 34170, 21314, 41361, 21315, 30888, 21316, 28680, 21317, 33044, 21318, 48306, 21319, 33998, 21320, 38511, 21321, 18967, 21322, 7862, 21323, 34282, 21324, 39049, 21325, 37659, 21326, 18413, 21327, 40083, 21328, 37660, 21329, 8079, 21330, 48309, 21331, 47829, 21332, 40088, 21333, 12337, 21334, 26604, 21335, 28243, 21336, 12340, 21337, 19554, 21338, 9162, 21339, 34726, 21340, 9294, 21341, 23105, 21342, 8699, 21343, 9312, 21344, 45956, 21345, 22371, 21346, 25838, 21347, 44079, 21348, 25907, 21349, 38696, 21350, 16550, 21351, 38351, 21352, 40221, 21353, 20857, 21354, 20858, 21355, 38042, 21356, 7487, 21357, 31710, 21358, 46624, 21359, 26856, 21360, 43518, 21361, 37783, 21362, 33735, 21363, 19522, 21364, 32309, 21365, 26269, 21366, 10769, 21367, 21981, 21368, 40214, 21369, 40863, 21370, 21148, 21371, 32312, 21372, 38597, 21373, 19534, 21374, 14167, 21375, 31617, 21376, 38788, 21377, 33126, 21378, 10174, 21379, 37926, 21380, 14130, 21381, 36722, 21382, 24332, 21383, 46182, 21384, 17274, 21385, 24334, 21386, 41474, 21387, 41410, 21388, 41851, 21389, 33788, 21390, 12860, 21391, 45721, 21392, 29398, 21393, 41445, 21394, 31408, 21395, 41450, 21396, 46879, 21397, 9648, 21398, 29401, 21399, 36330, 21400, 24107, 21401, 33793, 21402, 18052, 21403, 36731, 21404, 48406, 21405, 12120, 21406, 14752, 21407, 44807, 21408, 9657, 21409, 44816, 21410, 39704, 21411, 41748, 21412, 24420, 21413, 22134, 21414, 33420, 21415, 12985, 21416, 11151, 21417, 21584, 21418, 21156, 21419, 7530, 21420, 16859, 21421, 41896, 21422, 34921, 21423, 24433, 21424, 10184, 21425, 23594, 21426, 24449, 21427, 41673, 21428, 41819, 21429, 44881, 21430, 34881, 21431, 16123, 21432, 25125, 21433, 32770, 21434, 32146, 21435, 32147, 21436, 14349, 21437, 23983, 21438, 13573, 21439, 39584, 21440, 47638, 21441, 33121, 21442, 9465, 21443, 9467, 21444, 9468, 21445, 9471, 21446, 7329, 21447, 12311, 21448, 44132, 21449, 9732, 21450, 19509, 21451, 44076, 21452, 34744, 21453, 14545, 21454, 34427, 21455, 16580, 21456, 7675, 21457, 14400, 21458, 33003, 21459, 34290, 21460, 34492, 21461, 47860, 21462, 32131, 21463, 34449, 21464, 8709, 21465, 40869, 21466, 20052, 21467, 29363, 21468, 35182, 21469, 19536, 21470, 38054, 21471, 35183, 21472, 13240, 21473, 32980, 21474, 11820, 21475, 22841, 21476, 16382, 21477, 21835, 21478, 25446, 21479, 16536, 21480, 12590, 21481, 22847, 21482, 46787, 21483, 20750, 21484, 46125, 21485, 7633, 21486, 13306, 21487, 22656, 21488, 35817, 21489, 10813, 21490, 34239, 21491, 44134, 21492, 31835, 21493, 30208, 21494, 42431, 21495, 17496, 21496, 34885, 21497, 36008, 21498, 10763, 21499, 23900, 21500, 13098, 21501, 19339, 21502, 24965, 21503, 17817, 21504, 27577, 21505, 40720, 21506, 26732, 21507, 10646, 21508, 16021, 21509, 40988, 21510, 42144, 21511, 48076, 21512, 17579, 21513, 19514, 21514, 13147, 21515, 12072, 21516, 36839, 21517, 27726, 21518, 18049, 21519, 24339, 21520, 37101, 21521, 39793, 21522, 45634, 21523, 39289, 21524, 42418, 21525, 26129, 21526, 41411, 21527, 26577, 21528, 29209, 21529, 19198, 21530, 42566, 21531, 22272, 21532, 11104, 21533, 25208, 21534, 37230, 21535, 43381, 21536, 14739, 21537, 8356, 21538, 31588, 21539, 31589, 21540, 21036, 21541, 9339, 21542, 15071, 21543, 7746, 21544, 13857, 21545, 14808, 21546, 14070, 21547, 17210, 21548, 36727, 21549, 22759, 21550, 34826, 21551, 30671, 21552, 17867, 21553, 46627, 21554, 43464, 21555, 38452, 21556, 38453, 21557, 10259, 21558, 28126, 21559, 41217, 21560, 38682, 21561, 11434, 21562, 13479, 21563, 38218, 21564, 18040, 21565, 17818, 21566, 38454, 21567, 15854, 21568, 41547, 21569, 22304, 21570, 26130, 21571, 14138, 21572, 15925, 21573, 26944, 21574, 12244, 21575, 30672, 21576, 10537, 21577, 38455, 21578, 15855, 21579, 15086, 21580, 20753, 21581, 17819, 21582, 10766, 21583, 34003, 21584, 28127, 21585, 37231, 21586, 15341, 21587, 42920, 21588, 12245, 21589, 29210, 21590, 24346, 21591, 8195, 21592, 44797, 21593, 16985, 21594, 38259, 21595, 31154, 21596, 38413, 21597, 14143, 21598, 34101, 21599, 21982, 21600, 29568, 21601, 38221, 21602, 28427, 21603, 26501, 21604, 25447, 21605, 32403, 21606, 43946, 21607, 12865, 21608, 47243, 21609, 34298, 21610, 47326, 21611, 36712, 21612, 39057, 21613, 42944, 21614, 30728, 21615, 30102, 21616, 48090, 21617, 16328, 21618, 11594, 21619, 38047, 21620, 40821, 21621, 17557, 21622, 28328, 21623, 15536, 21624, 29492, 21625, 42945, 21626, 39842, 21627, 33849, 21628, 18081, 21629, 27771, 21630, 12172, 21631, 32150, 21632, 21797, 21633, 17213, 21634, 45222, 21635, 37303, 21636, 13923, 21637, 30289, 21638, 29442, 21639, 8886, 21640, 15170, 21641, 41984, 21642, 17582, 21643, 45270, 21644, 17583, 21645, 17112, 21646, 21570, 21647, 43881, 21648, 15407, 21649, 12142, 21650, 47327, 21651, 37485, 21652, 22365, 21653, 16329, 21654, 22366, 21655, 48574, 21656, 9341, 21657, 25611, 21658, 13381, 21659, 28886, 21660, 35810, 21661, 34891, 21662, 39586, 21663, 19239, 21664, 30735, 21665, 14383, 21666, 14148, 21667, 16705, 21668, 45754, 21669, 39065, 21670, 42670, 21671, 25011, 21672, 47971, 21673, 27578, 21674, 27247, 21675, 46811, 21676, 42282, 21677, 19358, 21678, 47334, 21679, 15887, 21680, 34625, 21681, 45329, 21682, 40012, 21683, 17113, 21684, 18844, 21685, 22975, 21686, 18523, 21687, 36199, 21688, 39422, 21689, 14149, 21690, 41090, 21691, 40636, 21692, 16986, 21693, 41856, 21694, 23847, 21695, 42572, 21696, 7248, 21697, 30072, 21698, 33935, 21699, 36849, 21700, 17822, 21701, 40589, 21702, 13924, 21703, 37514, 21704, 17103, 21705, 45278, 21706, 44146, 21707, 13299, 21708, 29292, 21709, 39763, 21710, 7247, 21711, 16034, 21712, 23066, 21713, 41476, 21714, 12177, 21715, 39847, 21716, 8426, 21717, 18978, 21718, 28633, 21719, 18393, 21720, 40576, 21721, 23009, 21722, 13969, 21723, 14816, 21724, 19750, 21725, 28981, 21726, 27960, 21727, 43803, 21728, 17507, 21729, 44808, 21730, 25731, 21731, 30291, 21732, 26750, 21733, 15891, 21734, 29170, 21735, 10652, 21736, 33740, 21737, 24103, 21738, 28117, 21739, 48312, 21740, 17604, 21741, 22894, 21742, 39851, 21743, 39603, 21744, 23802, 21745, 9079, 21746, 46198, 21747, 45641, 21748, 24875, 21749, 7654, 21750, 27579, 21751, 25034, 21752, 35392, 21753, 15207, 21754, 9317, 21755, 17182, 21756, 17780, 21757, 16078, 21758, 34843, 21759, 16016, 21760, 44158, 21761, 41861, 21762, 16338, 21763, 16398, 21764, 8196, 21765, 17225, 21766, 35562, 21767, 11500, 21768, 43001, 21769, 7249, 21770, 20011, 21771, 36996, 21772, 39423, 21773, 37601, 21774, 24383, 21775, 38719, 21776, 36055, 21777, 48550, 21778, 31863, 21779, 10295, 21780, 38458, 21781, 45464, 21782, 41477, 21783, 13482, 21784, 30681, 21785, 12806, 21786, 31595, 21787, 26551, 21788, 27862, 21789, 16220, 21790, 13515, 21791, 32155, 21792, 23803, 21793, 24859, 21794, 35598, 21795, 45465, 21796, 18645, 21797, 23793, 21798, 33359, 21799, 19365, 21800, 48364, 21801, 38311, 21802, 15033, 21803, 21207, 21804, 18276, 21805, 30754, 21806, 34453, 21807, 37859, 21808, 34698, 21809, 10199, 21810, 14326, 21811, 24401, 21812, 31249, 21813, 7429, 21814, 45499, 21815, 43804, 21816, 28685, 21817, 44195, 21818, 36565, 21819, 23543, 21820, 33413, 21821, 38739, 21822, 37429, 21823, 18097, 21824, 7267, 21825, 46098, 21826, 29031, 21827, 22742, 21828, 47873, 21829, 47874, 21830, 33639, 21831, 12916, 21832, 17783, 21833, 25130, 21834, 7245, 21835, 9437, 21836, 39705, 21837, 37234, 21838, 38532, 21839, 38249, 21840, 12006, 21841, 33414, 21842, 16405, 21843, 30685, 21844, 30686, 21845, 36206, 21846, 12432, 21847, 12433, 21848, 42454, 21849, 48104, 21850, 8372, 21851, 12007, 21852, 11314, 21853, 17616, 21854, 41479, 21855, 30689, 21856, 46212, 21857, 14668, 21858, 24860, 21859, 39442, 21860, 29771, 21861, 33415, 21862, 23489, 21863, 45500, 21864, 43577, 21865, 16554, 21866, 29247, 21867, 46283, 21868, 33268, 21869, 47679, 21870, 28771, 21871, 16992, 21872, 26353, 21873, 41633, 21874, 12776, 21875, 32206, 21876, 10015, 21877, 9086, 21878, 13352, 21879, 23716, 21880, 40019, 21881, 21722, 21882, 36060, 21883, 10847, 21884, 36337, 21885, 7420, 21886, 21518, 21887, 12441, 21888, 22367, 21889, 43867, 21890, 38059, 21891, 28252, 21892, 33581, 21893, 44536, 21894, 46220, 21895, 23431, 21896, 20820, 21897, 17999, 21898, 17279, 21899, 13221, 21900, 47264, 21901, 9867, 21902, 37517, 21903, 29140, 21904, 44514, 21905, 43344, 21906, 45247, 21907, 42158, 21908, 29168, 21909, 27497, 21910, 18173, 21911, 45140, 21912, 11359, 21913, 18997, 21914, 18659, 21915, 18660, 21916, 39008, 21917, 17566, 21918, 19382, 21919, 23248, 21920, 47190, 21921, 37865, 21922, 33421, 21923, 40902, 21924, 18737, 21925, 13948, 21926, 28782, 21927, 41000, 21928, 24879, 21929, 44537, 21930, 33204, 21931, 10663, 21932, 31316, 21933, 41876, 21934, 12354, 21935, 29570, 21936, 9472, 21937, 24129, 21938, 43805, 21939, 45644, 21940, 37794, 21941, 27535, 21942, 43671, 21943, 29557, 21944, 9319, 21945, 23184, 21946, 38956, 21947, 44538, 21948, 20821, 21949, 25753, 21950, 22943, 21951, 45474, 21952, 18347, 21953, 36352, 21954, 42207, 21955, 17718, 21956, 7244, 21957, 40705, 21958, 31173, 21959, 33276, 21960, 43813, 21961, 35273, 21962, 17958, 21963, 40122, 21964, 7319, 21965, 35574, 21966, 26578, 21967, 9750, 21968, 17161, 21969, 22617, 21970, 12147, 21971, 33188, 21972, 10375, 21973, 32882, 21974, 35133, 21975, 37458, 21976, 19399, 21977, 29420, 21978, 38428, 21979, 31084, 21980, 34363, 21981, 15957, 21982, 47993, 21983, 20822, 21984, 23878, 21985, 38264, 21986, 37503, 21987, 35022, 21988, 10666, 21989, 17462, 21990, 35664, 21992, 17117, 21993, 35613, 21994, 31524, 21995, 28791, 21996, 17568, 21997, 46741, 21998, 33110, 21999, 28094, 22000, 16018, 22001, 28109, 22002, 13188, 22003, 7259, 22004, 31167, 22005, 36828, 22006, 8492, 22007, 7532, 22008, 7533, 22009, 24667, 22010, 48412, 22011, 46176, 22012, 27889, 22013, 35207, 22014, 35192, 22015, 35990, 22016, 12818, 22017, 30438, 22018, 20774, 22019, 10937, 22020, 20605, 22021, 22402, 22022, 36019, 22023, 33506, 22024, 9606, 22025, 19982, 22026, 7273, 22027, 40031, 22028, 30007, 22029, 25764, 22030, 15537, 22031, 16429, 22032, 39893, 22033, 18118, 22034, 19024, 22035, 17001, 22036, 29216, 22037, 39362, 22038, 45516, 22039, 10152, 22040, 40764, 22041, 30196, 22042, 12674, 22043, 26579, 22044, 26559, 22045, 18193, 22046, 24079, 22047, 13583, 22048, 15538, 22049, 36036, 22050, 42425, 22051, 8263, 22052, 43595, 22053, 33098, 22054, 20775, 22055, 27402, 22056, 40032, 22057, 18401, 22058, 26595, 22059, 32419, 22060, 11315, 22061, 29596, 22062, 23816, 22063, 40036, 22064, 19421, 22065, 47517, 22066, 10245, 22067, 23258, 22068, 48430, 22069, 39904, 22070, 34928, 22071, 17471, 22072, 15382, 22073, 24917, 22074, 31321, 22075, 38831, 22076, 11273, 22077, 10037, 22078, 12456, 22079, 17760, 22080, 41395, 22081, 14124, 22082, 48488, 22083, 14458, 22084, 10678, 22085, 18886, 22086, 45338, 22087, 11402, 22088, 11895, 22089, 12452, 22090, 44608, 22091, 37237, 22092, 9712, 22093, 20780, 22094, 42385, 22095, 38832, 22096, 30790, 22097, 17465, 22098, 24684, 22099, 40773, 22100, 12711, 22101, 18889, 22102, 43433, 22103, 30307, 22104, 22062, 22105, 31534, 22106, 41335, 22107, 28808, 22108, 25835, 22109, 34929, 22110, 41803, 22111, 43790, 22112, 12156, 22113, 45868, 22114, 29169, 22115, 47368, 22116, 21245, 22117, 28990, 22118, 19050, 22119, 40284, 22120, 30798, 22121, 14244, 22122, 45481, 22123, 42606, 22124, 34395, 22125, 20786, 22126, 44923, 22127, 7263, 22128, 43831, 22129, 22191, 22130, 23025, 22131, 44455, 22132, 29559, 22133, 12651, 22134, 15541, 22135, 17816, 22136, 13867, 22137, 12502, 22138, 40406, 22139, 33099, 22140, 29733, 22141, 29849, 22142, 43370, 22143, 48434, 22144, 28908, 22145, 12834, 22146, 23699, 22147, 35681, 22148, 19204, 22149, 32842, 22150, 17446, 22151, 39306, 22152, 42510, 22153, 13939, 22154, 29886, 22155, 11074, 22156, 19872, 22157, 21252, 22158, 17479, 22159, 36471, 22160, 10163, 22161, 41271, 22162, 26938, 22163, 9401, 22164, 36479, 22165, 25932, 22166, 19083, 22167, 9232, 22168, 43965, 22169, 28831, 22170, 43442, 22171, 18373, 22172, 26942, 22173, 17852, 22174, 46260, 22175, 24208, 22176, 25519, 22177, 17178, 22178, 28298, 22179, 39928, 22180, 27808, 22181, 41941, 22182, 24530, 22183, 25869, 22184, 25653, 22185, 27813, 22186, 12483, 22187, 10475, 22188, 30059, 22189, 29854, 22190, 39827, 22191, 19303, 22192, 27814, 22193, 39164, 22194, 14006, 22195, 22957, 22196, 41685, 22197, 9971, 22198, 43633, 22199, 32486, 22200, 13037, 22201, 23430, 22202, 35790, 22203, 39943, 22204, 22227, 22205, 11586, 22206, 18547, 22207, 19315, 22208, 47710, 22209, 28849, 22210, 39944, 22211, 9413, 22212, 24237, 22213, 10072, 22214, 9888, 22215, 24589, 22216, 43277, 22217, 26356, 22218, 28302, 22219, 45264, 22220, 35231, 22221, 39040, 22222, 45600, 22223, 20216, 22224, 45265, 22225, 47526, 22226, 23640, 22227, 28862, 22228, 28296, 22229, 23687, 22230, 25608, 22231, 37841, 22232, 18910, 22233, 43313, 22234, 31837, 22235, 34980, 22236, 28877, 22237, 20226, 22238, 18911, 22239, 40427, 22240, 43315, 22241, 28236, 22242, 37123, 22243, 37124, 22244, 13889, 22245, 22549, 22246, 44740, 22247, 21455, 22248, 29908, 22249, 45088, 22250, 11721, 22251, 18147, 22252, 18913, 22253, 44798, 22254, 14071, 22255, 17022, 22256, 23357, 22257, 11722, 22258, 36824, 22259, 37027, 22260, 37844, 22261, 26309, 22262, 17024, 22263, 32379, 22264, 32643, 22265, 25254, 22266, 16471, 22267, 17025, 22268, 35811, 22269, 17026, 22270, 37029, 22271, 44147, 22272, 17028, 22273, 43396, 22274, 19173, 22275, 30369, 22276, 44414, 22277, 17226, 22278, 44809, 22279, 26318, 22280, 32176, 22281, 44422, 22282, 31619, 22283, 17030, 22284, 11341, 22285, 37866, 22286, 44818, 22287, 32178, 22288, 22900, 22289, 30373, 22290, 44829, 22291, 44830, 22292, 41532, 22293, 37053, 22294, 37068, 22295, 37069, 22296, 37129, 22297, 26293, 22298, 19037, 22299, 43180, 22300, 18591, 22301, 26236, 22302, 26254, 22303, 37098, 22304, 41490, 22305, 37099, 22306, 36790, 22307, 34068, 22308, 30322, 22309, 25952, 22310, 23002, 22311, 41409, 22312, 45303, 22313, 37843, 22314, 15878, 22315, 44481, 22316, 38405, 22317, 16749, 22318, 29828, 22319, 42640, 22320, 12699, 22321, 30891, 22322, 30892, 22323, 46439, 22324, 47852, 22325, 12543, 22326, 30850, 22327, 39290, 22328, 33471, 22329, 23107, 22330, 10175, 22331, 30489, 22332, 28755, 22333, 27840, 22334, 19344, 22335, 20000, 22336, 46795, 22337, 46796, 22338, 7842, 22339, 41255, 22340, 42921, 22341, 31560, 22342, 26945, 22343, 22273, 22344, 32733, 22345, 37249, 22346, 14611, 22347, 8217, 22348, 8218, 22349, 35879, 22350, 22454, 22351, 18522, 22352, 48540, 22353, 22760, 22354, 8403, 22355, 21340, 22356, 12895, 22357, 21273, 22358, 19734, 22359, 23003, 22360, 12861, 22361, 21274, 22362, 20098, 22363, 35911, 22364, 24347, 22365, 7712, 22366, 38584, 22367, 14843, 22368, 47772, 22369, 30167, 22370, 7866, 22371, 36053, 22372, 23291, 22373, 31953, 22374, 35979, 22375, 46634, 22376, 37336, 22377, 15625, 22378, 30103, 22379, 13042, 22380, 16551, 22381, 28474, 22382, 35820, 22383, 29686, 22384, 21440, 22385, 42078, 22386, 15062, 22387, 7594, 22388, 25958, 22389, 31794, 22390, 28014, 22391, 22657, 22392, 16284, 22393, 41220, 22394, 7678, 22395, 10708, 22396, 10317, 22397, 25255, 22398, 47540, 22399, 15408, 22400, 18082, 22401, 46880, 22402, 11440, 22403, 23410, 22404, 25711, 22405, 25712, 22406, 25842, 22407, 7595, 22408, 12266, 22409, 29443, 22410, 27725, 22411, 40516, 22412, 13445, 22413, 19751, 22414, 17709, 22415, 26175, 22416, 11618, 22417, 10772, 22418, 23988, 22419, 15555, 22420, 43321, 22421, 18053, 22422, 13774, 22423, 46129, 22424, 15190, 22425, 16706, 22426, 42183, 22427, 13970, 22428, 13971, 22429, 16827, 22430, 9776, 22431, 42021, 22432, 43391, 22433, 14411, 22434, 16288, 22435, 44803, 22436, 13197, 22437, 40091, 22438, 22738, 22439, 33663, 22440, 34439, 22441, 14152, 22442, 9042, 22443, 13045, 22444, 17882, 22445, 41418, 22446, 22976, 22447, 12239, 22448, 22373, 22449, 12547, 22450, 22396, 22451, 17409, 22452, 28365, 22453, 7426, 22454, 40469, 22455, 39604, 22456, 44903, 22457, 7893, 22458, 15103, 22459, 7716, 22460, 43003, 22461, 43524, 22462, 17307, 22463, 40880, 22464, 11443, 22465, 31509, 22466, 16079, 22467, 7251, 22468, 8275, 22469, 14632, 22470, 32313, 22471, 43889, 22472, 22310, 22473, 19954, 22474, 12908, 22475, 26581, 22476, 23776, 22477, 21985, 22478, 10545, 22479, 33483, 22480, 21109, 22481, 46200, 22482, 25035, 22483, 25036, 22484, 9356, 22485, 10554, 22486, 18395, 22487, 9357, 22488, 34199, 22489, 41258, 22490, 16990, 22491, 21442, 22492, 42422, 22493, 28686, 22494, 12777, 22495, 44516, 22496, 9365, 22497, 41426, 22498, 32207, 22499, 35455, 22500, 29773, 22501, 31620, 22502, 37605, 22503, 21875, 22504, 26340, 22505, 46506, 22506, 22796, 22507, 10989, 22508, 13391, 22509, 12288, 22510, 36012, 22511, 7430, 22512, 9453, 22513, 11242, 22514, 8276, 22515, 22462, 22516, 46725, 22517, 13976, 22518, 43027, 22519, 46726, 22520, 43028, 22521, 29510, 22522, 19375, 22523, 47820, 22524, 30525, 22525, 33244, 22526, 21876, 22527, 28487, 22528, 22897, 22529, 22694, 22530, 36057, 22531, 23294, 22532, 28584, 22533, 20113, 22534, 13777, 22535, 21152, 22536, 15756, 22537, 44517, 22538, 14168, 22539, 29609, 22540, 16476, 22541, 37108, 22542, 24098, 22543, 14663, 22544, 41457, 22545, 31115, 22546, 23295, 22547, 7457, 22548, 33875, 22549, 14023, 22550, 28377, 22551, 37007, 22552, 10571, 22553, 43345, 22554, 19147, 22555, 8468, 22556, 24784, 22557, 16993, 22558, 13222, 22559, 47680, 22560, 18061, 22561, 8006, 22562, 8007, 22563, 44266, 22564, 12782, 22565, 26827, 22566, 20823, 22567, 32897, 22568, 42458, 22569, 16108, 22570, 22444, 22571, 48160, 22572, 44267, 22573, 18738, 22574, 14182, 22575, 42200, 22576, 41877, 22577, 8049, 22578, 11626, 22579, 26964, 22580, 10180, 22581, 13664, 22582, 37362, 22583, 43531, 22584, 15015, 22585, 47219, 22586, 21068, 22587, 21114, 22588, 17815, 22589, 15764, 22590, 11475, 22591, 20248, 22592, 30127, 22593, 23992, 22594, 39806, 22595, 18717, 22596, 24083, 22597, 13749, 22598, 37547, 22599, 41001, 22600, 19799, 22601, 19582, 22602, 23015, 22603, 43684, 22604, 35675, 22605, 10585, 22606, 43906, 22607, 22405, 22608, 35274, 22609, 35275, 22610, 34209, 22611, 27391, 22612, 35689, 22613, 38283, 22614, 10586, 22615, 37054, 22616, 36066, 22617, 32328, 22618, 47193, 22619, 24435, 22620, 47194, 22621, 7939, 22622, 33095, 22623, 45411, 22624, 13780, 22625, 36533, 22626, 38627, 22627, 46601, 22628, 41262, 22629, 15959, 22630, 46464, 22631, 7321, 22632, 16155, 22633, 41652, 22634, 22468, 22635, 36534, 22636, 44831, 22637, 38154, 22638, 40257, 22639, 25585, 22640, 17139, 22641, 23766, 22642, 10153, 22643, 29617, 22644, 8299, 22645, 10428, 22646, 26006, 22647, 25916, 22648, 29180, 22649, 31126, 22650, 26980, 22651, 27890, 22652, 47647, 22653, 34770, 22654, 34562, 22655, 25803, 22656, 10741, 22657, 26699, 22658, 8779, 22659, 21410, 22660, 9675, 22661, 34660, 22662, 47005, 22663, 46078, 22664, 22492, 22665, 43819, 22666, 13068, 22667, 10451, 22668, 46747, 22669, 39107, 22670, 16997, 22671, 31241, 22672, 21227, 22673, 12947, 22674, 33643, 22675, 28069, 22676, 11959, 22677, 41897, 22678, 35693, 22679, 45602, 22680, 31034, 22681, 31214, 22682, 24836, 22683, 38078, 22684, 47789, 22685, 31280, 22686, 45604, 22687, 40765, 22688, 33590, 22689, 33591, 22690, 7700, 22691, 30339, 22692, 23022, 22693, 13427, 22694, 14505, 22695, 32345, 22696, 27919, 22697, 13862, 22698, 13863, 22699, 48471, 22700, 12948, 22701, 34084, 22702, 14040, 22703, 14044, 22704, 35936, 22705, 12742, 22706, 28007, 22707, 14869, 22708, 18752, 22709, 35937, 22710, 12242, 22711, 42465, 22712, 47592, 22713, 20396, 22714, 7610, 22715, 31221, 22716, 19437, 22717, 31285, 22718, 22746, 22719, 43181, 22720, 29804, 22721, 8559, 22722, 13075, 22723, 20492, 22724, 42428, 22725, 43832, 22726, 41195, 22727, 35944, 22728, 23666, 22729, 21915, 22730, 18526, 22731, 12573, 22732, 32485, 22733, 31141, 22734, 41272, 22735, 39666, 22736, 39033, 22737, 17736, 22738, 7338, 22739, 41439, 22740, 12621, 22741, 17480, 22742, 32904, 22743, 21253, 22744, 24008, 22745, 23133, 22746, 25870, 22747, 41686, 22748, 35962, 22749, 38019, 22750, 18528, 22751, 25719, 22752, 25720, 22753, 32985, 22754, 24532, 22755, 25173, 22756, 32487, 22757, 9972, 22758, 41283, 22759, 41703, 22760, 23969, 22761, 7740, 22762, 37559, 22763, 34271, 22764, 32532, 22765, 33175, 22766, 47734, 22767, 47735, 22768, 34004, 22769, 42568, 22770, 26602, 22771, 22652, 22772, 47548, 22773, 47739, 22774, 18157, 22775, 18165, 22776, 23340, 22777, 42590, 22778, 18175, 22779, 40904, 22780, 23346, 22781, 34464, 22782, 26788, 22783, 48472, 22784, 34465, 22785, 42608, 22786, 46785, 22787, 16381, 22788, 11221, 22789, 20538, 22790, 15010, 22791, 8118, 22792, 45781, 22793, 8715, 22794, 35386, 22795, 32378, 22796, 25256, 22797, 15415, 22798, 12121, 22799, 39294, 22800, 40620, 22801, 40320, 22802, 28357, 22803, 39315, 22804, 23216, 22805, 38673, 22806, 37528, 22807, 44895, 22808, 26857, 22809, 35238, 22810, 13921, 22811, 13922, 22812, 42439, 22813, 31642, 22814, 37531, 22815, 16292, 22816, 16293, 22817, 30763, 22818, 27228, 22819, 27229, 22820, 43427, 22821, 19231, 22822, 10453, 22823, 12228, 22824, 45562, 22825, 36490, 22826, 35855, 22827, 15083, 22828, 16579, 22829, 42141, 22830, 41982, 22831, 17395, 22832, 15825, 22833, 34096, 22834, 36152, 22835, 35857, 22836, 36947, 22837, 41724, 22838, 8352, 22839, 42641, 22840, 22960, 22841, 19937, 22842, 13940, 22843, 18457, 22844, 23102, 22845, 45131, 22846, 19939, 22847, 7639, 22848, 14294, 22849, 24651, 22850, 18637, 22851, 12766, 22852, 41733, 22853, 29471, 22854, 22003, 22855, 30496, 22856, 28211, 22857, 15041, 22858, 40092, 22859, 14906, 22860, 13016, 22861, 32170, 22862, 23173, 22863, 48293, 22864, 18642, 22865, 30736, 22866, 22378, 22867, 45637, 22868, 8197, 22869, 42972, 22870, 20511, 22871, 36244, 22872, 45407, 22873, 8211, 22874, 38720, 22875, 18812, 22876, 14716, 22877, 13110, 22878, 41382, 22879, 8247, 22880, 13056, 22881, 7600, 22882, 33753, 22883, 38282, 22884, 17108, 22885, 7601, 22886, 38628, 22887, 7602, 22888, 20518, 22889, 24675, 22890, 13954, 22891, 45073, 22892, 20519, 22893, 34386, 22894, 14919, 22895, 19280, 22896, 8592, 22897, 26237, 22898, 14008, 22899, 29076, 22900, 29049, 22901, 13324, 22902, 28196, 22903, 30893, 22904, 20095, 22905, 35667, 22906, 21543, 22907, 29093, 22908, 9823, 22909, 17492, 22910, 39324, 22911, 14559, 22912, 19686, 22913, 34846, 22914, 32809, 22915, 14665, 22916, 37768, 22917, 17865, 22918, 47714, 22919, 15402, 22920, 26502, 22921, 12334, 22922, 32581, 22923, 15087, 22924, 21372, 22925, 41610, 22926, 17149, 22927, 38244, 22928, 47142, 22929, 29238, 22930, 13679, 22931, 19735, 22932, 22761, 22933, 47208, 22934, 42146, 22935, 21187, 22936, 45089, 22937, 27567, 22938, 15072, 22939, 10647, 22940, 44959, 22941, 47716, 22942, 28942, 22943, 41852, 22944, 28128, 22945, 40372, 22946, 14844, 22947, 8357, 22948, 44215, 22949, 37404, 22950, 14942, 22951, 37663, 22952, 14628, 22953, 38516, 22954, 44488, 22955, 16750, 22956, 13683, 22957, 7679, 22958, 28471, 22959, 47302, 22960, 47861, 22961, 46091, 22962, 12173, 22963, 28201, 22964, 44898, 22965, 36965, 22966, 39419, 22967, 46717, 22968, 14059, 22969, 27028, 22970, 27842, 22971, 30406, 22972, 8413, 22973, 33850, 22974, 31409, 22975, 14060, 22976, 17585, 22977, 40822, 22978, 14409, 22979, 46499, 22980, 27630, 22981, 7868, 22982, 28015, 22983, 15089, 22984, 25257, 22985, 48081, 22986, 48082, 22987, 34247, 22988, 32441, 22989, 33477, 22990, 41985, 22991, 26631, 22992, 21025, 22993, 16331, 22994, 34986, 22995, 40553, 22996, 37933, 22997, 47972, 22998, 21841, 22999, 33478, 23000, 30033, 23001, 32592, 23002, 42184, 23003, 13446, 23004, 20470, 23005, 34497, 23006, 19537, 23007, 15556, 23008, 39796, 23009, 18416, 23010, 21954, 23011, 20582, 23012, 16289, 23013, 23848, 23014, 20107, 23015, 20108, 23016, 42671, 23017, 28684, 23018, 46720, 23019, 19361, 23020, 19366, 23021, 39595, 23022, 17789, 23023, 16707, 23024, 22278, 23025, 22964, 23026, 41857, 23027, 27761, 23028, 25025, 23029, 29539, 23030, 14153, 23031, 44148, 23032, 41623, 23033, 9829, 23034, 33858, 23035, 43323, 23036, 34192, 23037, 16828, 23038, 32196, 23039, 47973, 23040, 35052, 23041, 37784, 23042, 17883, 23043, 37478, 23044, 25748, 23045, 41505, 23046, 32500, 23047, 20583, 23048, 26222, 23049, 30083, 23050, 39605, 23051, 33741, 23052, 24287, 23053, 10546, 23054, 40223, 23055, 26751, 23056, 15104, 23057, 35563, 23058, 26955, 23059, 37940, 23060, 22688, 23061, 11559, 23062, 11560, 23063, 36797, 23064, 28695, 23065, 40524, 23066, 28245, 23067, 44246, 23068, 28138, 23069, 30272, 23070, 28433, 23071, 21958, 23072, 33865, 23073, 46902, 23074, 17227, 23075, 12909, 23076, 47720, 23077, 14075, 23078, 30049, 23079, 37215, 23080, 39606, 23081, 27489, 23082, 38459, 23083, 41624, 23084, 38534, 23085, 7252, 23086, 41630, 23087, 44247, 23088, 34999, 23089, 44248, 23090, 37452, 23091, 24384, 23092, 39427, 23093, 21650, 23094, 32134, 23095, 47775, 23096, 30415, 23097, 39430, 23098, 47875, 23099, 13392, 23100, 10110, 23101, 25972, 23102, 7288, 23103, 14062, 23104, 14063, 23105, 25752, 23106, 27448, 23107, 11798, 23108, 30292, 23109, 21723, 23110, 30193, 23111, 9417, 23112, 25286, 23113, 37606, 23114, 8834, 23115, 39866, 23116, 34558, 23117, 30687, 23118, 18861, 23119, 14578, 23120, 38334, 23121, 32943, 23122, 35919, 23123, 14669, 23124, 14670, 23125, 20906, 23126, 36496, 23127, 28488, 23128, 32209, 23129, 21380, 23130, 19124, 23131, 21288, 23132, 30924, 23133, 13051, 23134, 40562, 23135, 18335, 23136, 37544, 23137, 23502, 23138, 8451, 23139, 43346, 23140, 11013, 23141, 28407, 23142, 15434, 23143, 21391, 23144, 26319, 23145, 7458, 23146, 23583, 23147, 23296, 23148, 43404, 23149, 41512, 23150, 21651, 23151, 24402, 23152, 13021, 23153, 39431, 23154, 18396, 23155, 18468, 23156, 43578, 23157, 9923, 23158, 33943, 23159, 36760, 23160, 12552, 23161, 42294, 23162, 38618, 23163, 28292, 23164, 11561, 23165, 20060, 23166, 36941, 23167, 40905, 23168, 44539, 23169, 37867, 23170, 12928, 23171, 32776, 23172, 27012, 23173, 12355, 23174, 32916, 23175, 31482, 23176, 18862, 23177, 38362, 23178, 31022, 23179, 11476, 23180, 27539, 23181, 15439, 23182, 21027, 23183, 13729, 23184, 42739, 23185, 47220, 23186, 26965, 23187, 18739, 23188, 27450, 23189, 7389, 23190, 43579, 23191, 41002, 23192, 20824, 23193, 37797, 23194, 27041, 23195, 44910, 23196, 46530, 23197, 31803, 23198, 34348, 23199, 40246, 23200, 37411, 23201, 24785, 23202, 26901, 23203, 32453, 23204, 34908, 23205, 29911, 23206, 38061, 23207, 37456, 23208, 11882, 23209, 18176, 23210, 7579, 23211, 20918, 23212, 8008, 23213, 40745, 23214, 36942, 23215, 16773, 23216, 11158, 23217, 42208, 23218, 29870, 23219, 38959, 23220, 44832, 23221, 43786, 23222, 32668, 23223, 32883, 23224, 10667, 23225, 25481, 23226, 27016, 23227, 29325, 23228, 7580, 23229, 26504, 23230, 16298, 23231, 23249, 23232, 31525, 23233, 20086, 23234, 33239, 23235, 46351, 23236, 44833, 23237, 20825, 23238, 32676, 23239, 27741, 23240, 43590, 23241, 19583, 23242, 35278, 23243, 28713, 23244, 39453, 23245, 36170, 23246, 29406, 23247, 23726, 23248, 28382, 23249, 7982, 23250, 7322, 23251, 29871, 23252, 30052, 23253, 43131, 23254, 29981, 23255, 44584, 23256, 23928, 23257, 41069, 23258, 26629, 23259, 42599, 23260, 46017, 23261, 22515, 23262, 43820, 23263, 28593, 23264, 24160, 23265, 12819, 23266, 16783, 23267, 41577, 23268, 21159, 23269, 47648, 23270, 10154, 23271, 45517, 23272, 17193, 23273, 28458, 23274, 23881, 23275, 27787, 23276, 46177, 23277, 18353, 23278, 18354, 23279, 7603, 23280, 28459, 23281, 31215, 23282, 26580, 23283, 30031, 23284, 16362, 23285, 38549, 23286, 31322, 23287, 37417, 23288, 45929, 23289, 27543, 23290, 39459, 23291, 39460, 23292, 27908, 23293, 24919, 23294, 24685, 23295, 18487, 23296, 16789, 23297, 12712, 23298, 46755, 23299, 40775, 23300, 42604, 23301, 18473, 23302, 38833, 23303, 23259, 23304, 32504, 23305, 38834, 23306, 41905, 23307, 9944, 23308, 20610, 23309, 27020, 23310, 14598, 23311, 14459, 23312, 39375, 23313, 43182, 23314, 19052, 23315, 20787, 23316, 15491, 23317, 34396, 23318, 8560, 23319, 33595, 23320, 35474, 23321, 31222, 23322, 24762, 23323, 18592, 23324, 40407, 23325, 28720, 23326, 13428, 23327, 43183, 23328, 9476, 23329, 7339, 23330, 28696, 23331, 28909, 23332, 26506, 23333, 36680, 23334, 11075, 23335, 21254, 23336, 11651, 23337, 44335, 23338, 30056, 23339, 32707, 23340, 32843, 23341, 28209, 23342, 41591, 23343, 35845, 23344, 43619, 23345, 31142, 23346, 28724, 23347, 45015, 23348, 43698, 23349, 27460, 23350, 8346, 23351, 26507, 23352, 33961, 23353, 40574, 23354, 28615, 23355, 13626, 23356, 25576, 23357, 44783, 23358, 23674, 23359, 41942, 23360, 34748, 23361, 25375, 23362, 20739, 23363, 28697, 23364, 23676, 23365, 30981, 23366, 43634, 23367, 34751, 23368, 19105, 23369, 32250, 23370, 27358, 23371, 24246, 23372, 26238, 23373, 41704, 23374, 47486, 23375, 23682, 23376, 48150, 23377, 20859, 23378, 22071, 23379, 22072, 23380, 22815, 23381, 45162, 23382, 26503, 23383, 48117, 23384, 12063, 23385, 35529, 23386, 15165, 23387, 8113, 23388, 47966, 23389, 40007, 23390, 40430, 23391, 27225, 23392, 34992, 23393, 35812, 23394, 7963, 23395, 19745, 23396, 16332, 23397, 29051, 23398, 41180, 23399, 44141, 23400, 47663, 23401, 17121, 23402, 26223, 23403, 35532, 23404, 28326, 23405, 27580, 23406, 11799, 23407, 30925, 23408, 34559, 23409, 9543, 23410, 41427, 23411, 47994, 23412, 28540, 23413, 15126, 23414, 48007, 23415, 24161, 23416, 41196, 23417, 9287, 23418, 32844, 23419, 28193, 23420, 28836, 23421, 28837, 23422, 43635, 23423, 26239, 23424, 27443, 23425, 28885, 23426, 32731, 23427, 35666, 23428, 16815, 23429, 45807, 23430, 31712, 23431, 44396, 23432, 34437, 23433, 7375, 23434, 36989, 23435, 35111, 23436, 37572, 23437, 32805, 23438, 42273, 23439, 17868, 23440, 42647, 23441, 21342, 23442, 47810, 23443, 27370, 23444, 47499, 23445, 12545, 23446, 17875, 23447, 48152, 23448, 16596, 23449, 47328, 23450, 13347, 23451, 37597, 23452, 42656, 23453, 7994, 23454, 34186, 23455, 34187, 23456, 10988, 23457, 33933, 23458, 22683, 23459, 40993, 23460, 34309, 23461, 44149, 23462, 18643, 23463, 42693, 23464, 36669, 23465, 34252, 23466, 39596, 23467, 16137, 23468, 10547, 23469, 32388, 23470, 16143, 23471, 39852, 23472, 45292, 23473, 45758, 23474, 8001, 23475, 17154, 23476, 41862, 23477, 39853, 23478, 19955, 23479, 33938, 23480, 10405, 23481, 32659, 23482, 18809, 23483, 27377, 23484, 22853, 23485, 23037, 23486, 8927, 23487, 35256, 23488, 9438, 23489, 45332, 23490, 19783, 23491, 44750, 23492, 19784, 23493, 43405, 23494, 27380, 23495, 22856, 23496, 31621, 23497, 17714, 23498, 46347, 23499, 20374, 23500, 15440, 23501, 28894, 23502, 9051, 23503, 18576, 23504, 27042, 23505, 31568, 23506, 17241, 23507, 44540, 23508, 34205, 23509, 28895, 23510, 21218, 23511, 28897, 23512, 46984, 23513, 44438, 23514, 8010, 23515, 23039, 23516, 28898, 23517, 31571, 23518, 27891, 23519, 9796, 23520, 21895, 23521, 16545, 23522, 31574, 23523, 18119, 23524, 38636, 23525, 24909, 23526, 34216, 23527, 28900, 23528, 45830, 23529, 33950, 23530, 37989, 23531, 40197, 23532, 23040, 23533, 19038, 23534, 24920, 23535, 22343, 23536, 18593, 23537, 43211, 23538, 42783, 23539, 8025, 23540, 31497, 23541, 10996, 23542, 8027, 23543, 14994, 23544, 12071, 23545, 13802, 23546, 34982, 23547, 41292, 23548, 12603, 23549, 26173, 23550, 13807, 23551, 34448, 23552, 30210, 23553, 14948, 23554, 47641, 23555, 15105, 23556, 33794, 23557, 22689, 23558, 20471, 23559, 20478, 23560, 47644, 23561, 38056, 23562, 48470, 23563, 41320, 23564, 34646, 23565, 13822, 23566, 12618, 23567, 39986, 23568, 20860, 23569, 33723, 23570, 14350, 23571, 14351, 23572, 14352, 23573, 15545, 23574, 20096, 23575, 34486, 23576, 10391, 23577, 33675, 23578, 33676, 23579, 27784, 23580, 15540, 23581, 10141, 23582, 24996, 23583, 39534, 23584, 39535, 23585, 23366, 23586, 43982, 23587, 37699, 23588, 43983, 23589, 24989, 23590, 24990, 23591, 42178, 23592, 26738, 23593, 37704, 23594, 37701, 23595, 37702, 23596, 15547, 23597, 42179, 23598, 14016, 23599, 23244, 23600, 47191, 23601, 21586, 23602, 15647, 23603, 16412, 23604, 15648, 23605, 37180, 23606, 15660, 23607, 15661, 23608, 34094, 23609, 43460, 23610, 10762, 23611, 22559, 23612, 28472, 23613, 21145, 23614, 37929, 23615, 28739, 23616, 21708, 23617, 29859, 23618, 9714, 23619, 39053, 23620, 8316, 23621, 21630, 23622, 21047, 23623, 36512, 23624, 31954, 23625, 36429, 23626, 21048, 23627, 38416, 23628, 13140, 23629, 34106, 23630, 34253, 23631, 30109, 23632, 19367, 23633, 40224, 23634, 46403, 23635, 40225, 23636, 28482, 23637, 45906, 23638, 38723, 23639, 37941, 23640, 26676, 23641, 14064, 23642, 25818, 23643, 30121, 23644, 36438, 23645, 14758, 23646, 34583, 23647, 40247, 23648, 37042, 23649, 26149, 23650, 26155, 23651, 39017, 23652, 9717, 23653, 26159, 23654, 21907, 23655, 40285, 23656, 21929, 23657, 22066, 23658, 24942, 23659, 22216, 23660, 34608, 23661, 39178, 23662, 10314, 23663, 37246, 23664, 28567, 23665, 33468, 23666, 37445, 23667, 39322, 23668, 24336, 23669, 14133, 23670, 18968, 23671, 18969, 23672, 25610, 23673, 42906, 23674, 30668, 23675, 32574, 23676, 38581, 23677, 17299, 23678, 33843, 23679, 44397, 23680, 11130, 23681, 35444, 23682, 30669, 23683, 32575, 23684, 44960, 23685, 7844, 23686, 42274, 23687, 7488, 23688, 41446, 23689, 38585, 23690, 20873, 23691, 14136, 23692, 19516, 23693, 30900, 23694, 14845, 23695, 37574, 23696, 30490, 23697, 9695, 23698, 31000, 23699, 30491, 23700, 9826, 23701, 21040, 23702, 31948, 23703, 15773, 23704, 39587, 23705, 7592, 23706, 23578, 23707, 12604, 23708, 7640, 23709, 48543, 23710, 48544, 23711, 42079, 23712, 21842, 23713, 15743, 23714, 22658, 23715, 16266, 23716, 41181, 23717, 30169, 23718, 24353, 23719, 36632, 23720, 31956, 23721, 41617, 23722, 15172, 23723, 40696, 23724, 20050, 23725, 25438, 23726, 37337, 23727, 29752, 23728, 7596, 23729, 12267, 23730, 23111, 23731, 44965, 23732, 31957, 23733, 18314, 23734, 30225, 23735, 27631, 23736, 7446, 23737, 36633, 23738, 25258, 23739, 10709, 23740, 30105, 23741, 13383, 23742, 17305, 23743, 23152, 23744, 40697, 23745, 26862, 23746, 36843, 23747, 41182, 23748, 42947, 23749, 8710, 23750, 17592, 23751, 7649, 23752, 26444, 23753, 14154, 23754, 15417, 23755, 41300, 23756, 13198, 23757, 25961, 23758, 14302, 23759, 14317, 23760, 15557, 23761, 32171, 23762, 13447, 23763, 42675, 23764, 28019, 23765, 34193, 23766, 7379, 23767, 37850, 23768, 18567, 23769, 46890, 23770, 27375, 23771, 24284, 23772, 19754, 23773, 36850, 23774, 37851, 23775, 44150, 23776, 30845, 23777, 39214, 23778, 24285, 23779, 42185, 23780, 20756, 23781, 46507, 23782, 26224, 23783, 20584, 23784, 14076, 23785, 14077, 23786, 44505, 23787, 40093, 23788, 9297, 23789, 31361, 23790, 32380, 23791, 14955, 23792, 14956, 23793, 28336, 23794, 24288, 23795, 44010, 23796, 39607, 23797, 32660, 23798, 12606, 23799, 33866, 23800, 10548, 23801, 37032, 23802, 16080, 23803, 22311, 23804, 15861, 23805, 39220, 23806, 43398, 23807, 44415, 23808, 23777, 23809, 22491, 23810, 23804, 23811, 23497, 23812, 39519, 23813, 32314, 23814, 22797, 23815, 10969, 23816, 10970, 23817, 35719, 23818, 25132, 23819, 18464, 23820, 21654, 23821, 23503, 23822, 30526, 23823, 27644, 23824, 23297, 23825, 23298, 23826, 48315, 23827, 16477, 23828, 11954, 23829, 41458, 23830, 41459, 23831, 15775, 23832, 26320, 23833, 26321, 23834, 24082, 23835, 22117, 23836, 13930, 23837, 46519, 23838, 16994, 23839, 43406, 23840, 13393, 23841, 17232, 23842, 46520, 23843, 37949, 23844, 39968, 23845, 29774, 23846, 41558, 23847, 35058, 23848, 20908, 23849, 8248, 23850, 48316, 23851, 22898, 23852, 13394, 23853, 45908, 23854, 16478, 23855, 43407, 23856, 47983, 23857, 45577, 23858, 18740, 23859, 44268, 23860, 37525, 23861, 42039, 23862, 14968, 23863, 31892, 23864, 42040, 23865, 36338, 23866, 42848, 23867, 46959, 23868, 34349, 23869, 45294, 23870, 42295, 23871, 14183, 23872, 47576, 23873, 22445, 23874, 26182, 23875, 41759, 23876, 27013, 23877, 17242, 23878, 19385, 23879, 19386, 23880, 18661, 23881, 36761, 23882, 34080, 23883, 26966, 23884, 31118, 23885, 38619, 23886, 44269, 23887, 48162, 23888, 23586, 23889, 22665, 23890, 41643, 23891, 41644, 23892, 37957, 23893, 48163, 23894, 9787, 23895, 35459, 23896, 32669, 23897, 22610, 23898, 31483, 23899, 44270, 23900, 30548, 23901, 25800, 23902, 37055, 23903, 13782, 23904, 38793, 23905, 38285, 23906, 9571, 23907, 12556, 23908, 32677, 23909, 20932, 23910, 22406, 23911, 25482, 23912, 38629, 23913, 35066, 23914, 31266, 23915, 47995, 23916, 37868, 23917, 8259, 23918, 12986, 23919, 12092, 23920, 31085, 23921, 43907, 23922, 28794, 23923, 12093, 23924, 19708, 23925, 34210, 23926, 33012, 23927, 35100, 23928, 48176, 23929, 20555, 23930, 24910, 23931, 22517, 23932, 10032, 23933, 13246, 23934, 9693, 23935, 13332, 23936, 37013, 23937, 25805, 23938, 46080, 23939, 45920, 23940, 45921, 23941, 7534, 23942, 9608, 23943, 31987, 23944, 31178, 23945, 11961, 23946, 48425, 23947, 12613, 23948, 12614, 23949, 38964, 23950, 44585, 23951, 29553, 23952, 25635, 23953, 39815, 23954, 9718, 23955, 9101, 23956, 31490, 23957, 20611, 23958, 41581, 23959, 23819, 23960, 45979, 23961, 25148, 23962, 24921, 23963, 24922, 23964, 21121, 23965, 12743, 23966, 14041, 23967, 48473, 23968, 20781, 23969, 16901, 23970, 42233, 23971, 20612, 23972, 42234, 23973, 22172, 23974, 45869, 23975, 43184, 23976, 41197, 23977, 28350, 23978, 42497, 23979, 42498, 23980, 42774, 23981, 28820, 23982, 39547, 23983, 19610, 23984, 40296, 23985, 22670, 23986, 38836, 23987, 12963, 23988, 7611, 23989, 48432, 23990, 37826, 23991, 42784, 23992, 32708, 23993, 12622, 23994, 25443, 23995, 20982, 23996, 44456, 23997, 45019, 23998, 43497, 23999, 32895, 24000, 20993, 24001, 24492, 24002, 16799, 24003, 25655, 24004, 25656, 24005, 12998, 24006, 32719, 24007, 38912, 24008, 21782, 24009, 9973, 24010, 43770, 24011, 23168, 24012, 41688, 24013, 37834, 24014, 28361, 24015, 32251, 24016, 10275, 24017, 11936, 24018, 26240, 24019, 13006, 24020, 13007, 24021, 28852, 24022, 41706, 24023, 41705, 24024, 41840, 24025, 23220, 24026, 41841, 24027, 11324, 24028, 23000, 24029, 11325, 24030, 47238, 24031, 18700, 24032, 21275, 24033, 41294, 24034, 10236, 24035, 10237, 24036, 25070, 24037, 16120, 24038, 48530, 24039, 31347, 24040, 21834, 24041, 16187, 24042, 21839, 24043, 38414, 24044, 30399, 24045, 30400, 24046, 9830, 24047, 31893, 24048, 31911, 24049, 19680, 24050, 42817, 24051, 34978, 24052, 7632, 24053, 46629, 24054, 46092, 24055, 39797, 24056, 42695, 24057, 21149, 24058, 41368, 24059, 22005, 24060, 7655, 24061, 41385, 24062, 21090, 24063, 15157, 24064, 45217, 24065, 8393, 24066, 34278, 24067, 9337, 24068, 13307, 24069, 34713, 24070, 14452, 24071, 28753, 24072, 34097, 24073, 14809, 24074, 29264, 24075, 46797, 24076, 38691, 24077, 18307, 24078, 12423, 24079, 37845, 24080, 46065, 24081, 36122, 24082, 12268, 24083, 27843, 24084, 29537, 24085, 29265, 24086, 36693, 24087, 9070, 24088, 24654, 24089, 46881, 24090, 47309, 24091, 9124, 24092, 46882, 24093, 12906, 24094, 27854, 24095, 42973, 24096, 42974, 24097, 30110, 24098, 30855, 24099, 21983, 24100, 32813, 24101, 34714, 24102, 12275, 24103, 46593, 24104, 34803, 24105, 31362, 24106, 46331, 24107, 34113, 24108, 32389, 24109, 38948, 24110, 7894, 24111, 12283, 24112, 16757, 24113, 11035, 24114, 30122, 24115, 46072, 24116, 33163, 24117, 37545, 24118, 12289, 24119, 37860, 24120, 10144, 24121, 33416, 24122, 30530, 24123, 45503, 24124, 17031, 24125, 26902, 24126, 13665, 24127, 18004, 24128, 46599, 24129, 40746, 24130, 27386, 24131, 37869, 24132, 38363, 24133, 15246, 24134, 43062, 24135, 7903, 24136, 30128, 24137, 13225, 24138, 16156, 24139, 29326, 24140, 18814, 24141, 36172, 24142, 27394, 24143, 20087, 24144, 36274, 24145, 18877, 24146, 47167, 24147, 33507, 24148, 26701, 24149, 28071, 24150, 8780, 24151, 17036, 24152, 45518, 24153, 28072, 24154, 7906, 24155, 46081, 24156, 21356, 24157, 10038, 24158, 15294, 24159, 47027, 24160, 18127, 24161, 14460, 24162, 11403, 24163, 8516, 24164, 8538, 24165, 46053, 24166, 27418, 24167, 31286, 24168, 9912, 24169, 14870, 24170, 27134, 24171, 7911, 24172, 11076, 24173, 27601, 24174, 11181, 24175, 20973, 24176, 39557, 24177, 23622, 24178, 15702, 24179, 30099, 24180, 28629, 24181, 20097, 24182, 9037, 24183, 9041, 24184, 40554, 24185, 15716, 24186, 42140, 24187, 18636, 24188, 44136, 24189, 43949, 24190, 19704, 24191, 16725, 24192, 29825, 24193, 36723, 24194, 45564, 24195, 16726, 24196, 47715, 24197, 27783, 24198, 31685, 24199, 8406, 24200, 31501, 24201, 13890, 24202, 11398, 24203, 16820, 24204, 41475, 24205, 7778, 24206, 21043, 24207, 40856, 24208, 25840, 24209, 38517, 24210, 47717, 24211, 22933, 24212, 43570, 24213, 12866, 24214, 29445, 24215, 13043, 24216, 41414, 24217, 27568, 24218, 16050, 24219, 11690, 24220, 15349, 24221, 36845, 24222, 29399, 24223, 14741, 24224, 39743, 24225, 42833, 24226, 46891, 24227, 36616, 24228, 46892, 24229, 40638, 24230, 13688, 24231, 48552, 24232, 39856, 24233, 37033, 24234, 16838, 24235, 22936, 24236, 26753, 24237, 36755, 24238, 44092, 24239, 9298, 24240, 9043, 24241, 10630, 24242, 23504, 24243, 8452, 24244, 19556, 24245, 7385, 24246, 34638, 24247, 22509, 24248, 43810, 24249, 37409, 24250, 35059, 24251, 34639, 24252, 31671, 24253, 44542, 24254, 44423, 24255, 27572, 24256, 35134, 24257, 9662, 24258, 39708, 24259, 14761, 24260, 21587, 24261, 14202, 24262, 16774, 24263, 25586, 24264, 33423, 24265, 24669, 24266, 23727, 24267, 35135, 24268, 46985, 24269, 9373, 24270, 31674, 24271, 21598, 24272, 21588, 24273, 21160, 24274, 7535, 24275, 23383, 24276, 25767, 24277, 43538, 24278, 24998, 24279, 12307, 24280, 26008, 24281, 43132, 24282, 11171, 24283, 9945, 24284, 37070, 24285, 34931, 24286, 40402, 24287, 27574, 24288, 10185, 24289, 38550, 24290, 14774, 24291, 16728, 24292, 22951, 24293, 23027, 24294, 8561, 24295, 31223, 24296, 40298, 24297, 25196, 24298, 25197, 24299, 24943, 24300, 25872, 24301, 19892, 24302, 43771, 24303, 39395, 24304, 36747, 24305, 43853, 24306, 24248, 24307, 36749, 24308, 43459, 24309, 41291, 24310, 41607, 24311, 36751, 24312, 12799, 24313, 29288, 24314, 20348, 24315, 18915, 24316, 28202, 24317, 18918, 24318, 16186, 24319, 28681, 24320, 22377, 24321, 8700, 24322, 42909, 24323, 30722, 24324, 29012, 24325, 14903, 24326, 21798, 24327, 41741, 24328, 42977, 24329, 45408, 24330, 8517, 24331, 42889, 24332, 42560, 24333, 14379, 24334, 33120, 24335, 34284, 24336, 14380, 24337, 34351, 24338, 34364, 24339, 16121, 24340, 13145, 24341, 43461, 24342, 18292, 24343, 15158, 24344, 17864, 24345, 38407, 24346, 37167, 24347, 10700, 24348, 20539, 24349, 7713, 24350, 33932, 24351, 12896, 24352, 46009, 24353, 22083, 24354, 36155, 24355, 15350, 24356, 12867, 24357, 27252, 24358, 39420, 24359, 18150, 24360, 10217, 24361, 29060, 24362, 21374, 24363, 46399, 24364, 42696, 24365, 27336, 24366, 32172, 24367, 37541, 24368, 33684, 24369, 33007, 24370, 40995, 24371, 21386, 24372, 13111, 24373, 46011, 24374, 20544, 24375, 31210, 24376, 29610, 24377, 12434, 24378, 31213, 24379, 8469, 24380, 8470, 24381, 33801, 24382, 12442, 24383, 20262, 24384, 16301, 24385, 15904, 24386, 14405, 24387, 8493, 24388, 22837, 24389, 20271, 24390, 8916, 24391, 39915, 24392, 12457, 24393, 17002, 24394, 20557, 24395, 17942, 24396, 27284, 24397, 17013, 24398, 37558, 24399, 22241, 24400, 19723, 24401, 19725, 24402, 16748, 24403, 12496, 24404, 25959, 24405, 25960, 24406, 37157, 24407, 18993, 24408, 46961, 24409, 19012, 24410, 19013, 24411, 42775, 24412, 42776, 24413, 42794, 24414, 42795, 24415, 44945, 24416, 44947, 24417, 33469, 24418, 40511, 24419, 38180, 24420, 36841, 24421, 41858, 24422, 41859, 24423, 44506, 24424, 10653, 24425, 9439, 24426, 8773, 24427, 13112, 24428, 8928, 24429, 29612, 24430, 43908, 24431, 29993, 24432, 46018, 24433, 43756, 24434, 10698, 24435, 10812, 24436, 47853, 24437, 37403, 24438, 19517, 24439, 14642, 24440, 47144, 24441, 42926, 24442, 37716, 24443, 10316, 24444, 8360, 24445, 12768, 24446, 25260, 24447, 15175, 24448, 37730, 24449, 46501, 24450, 11868, 24451, 37731, 24452, 21375, 24453, 12276, 24454, 38709, 24455, 41370, 24456, 17774, 24457, 42024, 24458, 18505, 24459, 26176, 24460, 18054, 24461, 37735, 24462, 10626, 24463, 46904, 24464, 40812, 24465, 21387, 24466, 37034, 24467, 11797, 24468, 47135, 24469, 23498, 24470, 11801, 24471, 12681, 24472, 29274, 24473, 39003, 24474, 13400, 24475, 19787, 24476, 10145, 24477, 46924, 24478, 11802, 24479, 47255, 24480, 23505, 24481, 44543, 24482, 40233, 24483, 21062, 24484, 20365, 24485, 34352, 24486, 20061, 24487, 8725, 24488, 18741, 24489, 15441, 24490, 41321, 24491, 37958, 24492, 29408, 24493, 42211, 24494, 37808, 24495, 38796, 24496, 46537, 24497, 30008, 24498, 36371, 24499, 12692, 24500, 46544, 24501, 46553, 24502, 8898, 24503, 12693, 24504, 10939, 24505, 10341, 24506, 20707, 24507, 19053, 24508, 20718, 24509, 18894, 24510, 26992, 24511, 25741, 24512, 39725, 24513, 8072, 24514, 32100, 24515, 40369, 24516, 40465, 24517, 8394, 24518, 42891, 24519, 23901, 24520, 32534, 24521, 12591, 24522, 13343, 24523, 15574, 24524, 19736, 24525, 32551, 24526, 32537, 24527, 10080, 24528, 35978, 24529, 36247, 24530, 36248, 24531, 15617, 24532, 30716, 24533, 34285, 24534, 12070, 24535, 46872, 24536, 37769, 24537, 26734, 24538, 38684, 24539, 14453, 24540, 43571, 24541, 36559, 24542, 27632, 24543, 38219, 24544, 47146, 24545, 10919, 24546, 38593, 24547, 19518, 24548, 38518, 24549, 39058, 24550, 20001, 24551, 43943, 24552, 37664, 24553, 11727, 24554, 35048, 24555, 23004, 24556, 44490, 24557, 8702, 24558, 46873, 24559, 30492, 24560, 11994, 24561, 10395, 24562, 35858, 24563, 37250, 24564, 31002, 24565, 28683, 24566, 19141, 24567, 40585, 24568, 28953, 24569, 23088, 24570, 39328, 24571, 40373, 24572, 22505, 24573, 18084, 24574, 22421, 24575, 14907, 24576, 18504, 24577, 35860, 24578, 35089, 24579, 38519, 24580, 29228, 24581, 10192, 24582, 11424, 24583, 21843, 24584, 42950, 24585, 7996, 24586, 10218, 24587, 27633, 24588, 29494, 24589, 48545, 24590, 45596, 24591, 42111, 24592, 21851, 24593, 7869, 24594, 29068, 24595, 28329, 24596, 46502, 24597, 29266, 24598, 9346, 24599, 36694, 24600, 18321, 24601, 18315, 24602, 21852, 24603, 12174, 24604, 24655, 24605, 34898, 24606, 11032, 24607, 12902, 24608, 12277, 24609, 42657, 24610, 36993, 24611, 44003, 24612, 15094, 24613, 19539, 24614, 29575, 24615, 40555, 24616, 44901, 24617, 28476, 24618, 16581, 24619, 15176, 24620, 39059, 24621, 8417, 24622, 43947, 24623, 31410, 24624, 41112, 24625, 11731, 24626, 9002, 24627, 18804, 24628, 40864, 24629, 11226, 24630, 8418, 24631, 34627, 24632, 38710, 24633, 35885, 24634, 43882, 24635, 48212, 24636, 13813, 24637, 27958, 24638, 46806, 24639, 42951, 24640, 34312, 24641, 28455, 24642, 41302, 24643, 34313, 24644, 39071, 24645, 23849, 24646, 17790, 24647, 23067, 24648, 27966, 24649, 46813, 24650, 40096, 24651, 24779, 24652, 36618, 24653, 18806, 24654, 13200, 24655, 17508, 24656, 22820, 24657, 16829, 24658, 17791, 24659, 38711, 24660, 20662, 24661, 34633, 24662, 34902, 24663, 18090, 24664, 31798, 24665, 42112, 24666, 18987, 24667, 18919, 24668, 10831, 24669, 20012, 24670, 42678, 24671, 40590, 24672, 16584, 24673, 25212, 24674, 18846, 24675, 48127, 24676, 40871, 24677, 10776, 24678, 33677, 24679, 29084, 24680, 17778, 24681, 14295, 24682, 22685, 24683, 13449, 24684, 36516, 24685, 16144, 24686, 32173, 24687, 38724, 24688, 30856, 24689, 44968, 24690, 29577, 24691, 22741, 24692, 12677, 24693, 18988, 24694, 14159, 24695, 40058, 24696, 36932, 24697, 41550, 24698, 22397, 24699, 9649, 24700, 28367, 24701, 45169, 24702, 26746, 24703, 43894, 24704, 43890, 24705, 44747, 24706, 29703, 24707, 23337, 24708, 31257, 24709, 44972, 24710, 44520, 24711, 37035, 24712, 21060, 24713, 38744, 24714, 46213, 24715, 25213, 24716, 36434, 24717, 17309, 24718, 17509, 24719, 31419, 24720, 36440, 24721, 9358, 24722, 43006, 24723, 31114, 24724, 18939, 24725, 38725, 24726, 8134, 24727, 26632, 24728, 42583, 24729, 17781, 24730, 35091, 24731, 32175, 24732, 10627, 24733, 23154, 24734, 38607, 24735, 38608, 24736, 43951, 24737, 24117, 24738, 24876, 24739, 18653, 24740, 11733, 24741, 43031, 24742, 44973, 24743, 24386, 24744, 28879, 24745, 28370, 24746, 14169, 24747, 32319, 24748, 41064, 24749, 30917, 24750, 38609, 24751, 27692, 24752, 11803, 24753, 14717, 24754, 8086, 24755, 12683, 24756, 12008, 24757, 10200, 24758, 27091, 24759, 33164, 24760, 19788, 24761, 16662, 24762, 16657, 24763, 40563, 24764, 12637, 24765, 30416, 24766, 22799, 24767, 36568, 24768, 26322, 24769, 38764, 24770, 22464, 24771, 16947, 24772, 28589, 24773, 31647, 24774, 11041, 24775, 13858, 24776, 17070, 24777, 45852, 24778, 21290, 24779, 37608, 24780, 44758, 24781, 21113, 24782, 19800, 24783, 23584, 24784, 44521, 24785, 19258, 24786, 17634, 24787, 32210, 24788, 35920, 24789, 36441, 24790, 36445, 24791, 28774, 24792, 37741, 24793, 11562, 24794, 18099, 24795, 19126, 24796, 38745, 24797, 10179, 24798, 40389, 24799, 37861, 24800, 18999, 24801, 14186, 24802, 35608, 24803, 48215, 24804, 20114, 24805, 43900, 24806, 13052, 24807, 21877, 24808, 9523, 24809, 10572, 24810, 12684, 24811, 8151, 24812, 31425, 24813, 9494, 24814, 12435, 24815, 16658, 24816, 14030, 24817, 28380, 24818, 45178, 24819, 39771, 24820, 47778, 24821, 13227, 24822, 18742, 24823, 11537, 24824, 31733, 24825, 32522, 24826, 40472, 24827, 9663, 24828, 8680, 24829, 27697, 24830, 48165, 24831, 36339, 24832, 31353, 24833, 11053, 24834, 8158, 24835, 41004, 24836, 37799, 24837, 15946, 24838, 30938, 24839, 37959, 24840, 44568, 24841, 44272, 24842, 8471, 24843, 41005, 24844, 18662, 24845, 27702, 24846, 8472, 24847, 43100, 24848, 27499, 24849, 43901, 24850, 22427, 24851, 12553, 24852, 43348, 24853, 14187, 24854, 10418, 24855, 26910, 24856, 30871, 24857, 22706, 24858, 44292, 24859, 7323, 24860, 31431, 24861, 41761, 24862, 29145, 24863, 15679, 24864, 45179, 24865, 48216, 24866, 33093, 24867, 24099, 24868, 14912, 24869, 43580, 24870, 23250, 24871, 23251, 24872, 32337, 24873, 16157, 24874, 45113, 24875, 35279, 24876, 35292, 24877, 30558, 24878, 42212, 24879, 35096, 24880, 18828, 24881, 19584, 24882, 16414, 24883, 21896, 24884, 11431, 24885, 28594, 24886, 40124, 24887, 22407, 24888, 46582, 24889, 43909, 24890, 9633, 24891, 41392, 24892, 33982, 24893, 9171, 24894, 22430, 24895, 44919, 24896, 39100, 24897, 19183, 24898, 43913, 24899, 42096, 24900, 24437, 24901, 33209, 24902, 36173, 24903, 43357, 24904, 11638, 24905, 40922, 24906, 31121, 24907, 35873, 24908, 18718, 24909, 45182, 24910, 33983, 24911, 27767, 24912, 16234, 24913, 33805, 24914, 11808, 24915, 29962, 24916, 28073, 24917, 28077, 24918, 17038, 24919, 10877, 24920, 9526, 24921, 9504, 24922, 9499, 24923, 11963, 24924, 27709, 24925, 36257, 24926, 46020, 24927, 36936, 24928, 7604, 24929, 34771, 24930, 26702, 24931, 16669, 24932, 32346, 24933, 45475, 24934, 21602, 24935, 19039, 24936, 22403, 24937, 24670, 24938, 29230, 24939, 35102, 24940, 31532, 24941, 43547, 24942, 26193, 24943, 33644, 24944, 38084, 24945, 37130, 24946, 26639, 24947, 30946, 24948, 33814, 24949, 43822, 24950, 31695, 24951, 22518, 24952, 12957, 24953, 46756, 24954, 25768, 24955, 22038, 24956, 30448, 24957, 30440, 24958, 44611, 24959, 30143, 24960, 24912, 24961, 11835, 24962, 43959, 24963, 10940, 24964, 47029, 24965, 36937, 24966, 10505, 24967, 30791, 24968, 31988, 24969, 29627, 24970, 8181, 24971, 8868, 24972, 31763, 24973, 20613, 24974, 45606, 24975, 10867, 24976, 24688, 24977, 30148, 24978, 23260, 24979, 19040, 24980, 31325, 24981, 10601, 24982, 43552, 24983, 43553, 24984, 39024, 24985, 38853, 24986, 12458, 24987, 35939, 24988, 14042, 24989, 13827, 24990, 13825, 24991, 35302, 24992, 22192, 24993, 9682, 24994, 39906, 24995, 14461, 24996, 14918, 24997, 23823, 24998, 23882, 24999, 10941, 25000, 17199, 25001, 30800, 25002, 39461, 25003, 27710, 25004, 21357, 25005, 24977, 25006, 38551, 25007, 9529, 25008, 22173, 25009, 11896, 25010, 39658, 25011, 35993, 25012, 34044, 25013, 29739, 25014, 43186, 25015, 11278, 25016, 39376, 25017, 28351, 25018, 12460, 25019, 35996, 25020, 21359, 25021, 35073, 25022, 17361, 25023, 20719, 25024, 38095, 25025, 41030, 25026, 13429, 25027, 31549, 25028, 31540, 25029, 21916, 25030, 9635, 25031, 22749, 25032, 40300, 25033, 43620, 25034, 7613, 25035, 26934, 25036, 43187, 25037, 25198, 25038, 33295, 25039, 22344, 25040, 18510, 25041, 27097, 25042, 23668, 25043, 7340, 25044, 25199, 25045, 41596, 25046, 23401, 25047, 39307, 25048, 10900, 25049, 44457, 25050, 43559, 25051, 12249, 25052, 27212, 25053, 7347, 25054, 27135, 25055, 13836, 25056, 30610, 25057, 27829, 25058, 23604, 25059, 27098, 25060, 11077, 25061, 47075, 25062, 29161, 25063, 29162, 25064, 41592, 25065, 42104, 25066, 9233, 25067, 47094, 25068, 23136, 25069, 23104, 25070, 44126, 25071, 15147, 25072, 25520, 25073, 27602, 25074, 10617, 25075, 19118, 25076, 10089, 25077, 27215, 25078, 23675, 25079, 18514, 25080, 41084, 25081, 32497, 25082, 10093, 25083, 19893, 25084, 21948, 25085, 18548, 25086, 33833, 25087, 43290, 25088, 24818, 25089, 28288, 25090, 27312, 25091, 36137, 25092, 22243, 25093, 15787, 25094, 15788, 25095, 47753, 25096, 15875, 25097, 44953, 25098, 38578, 25099, 20094, 25100, 40722, 25101, 34616, 25102, 32651, 25103, 39051, 25104, 10535, 25105, 38328, 25106, 21044, 25107, 15882, 25108, 20102, 25109, 31156, 25110, 19237, 25111, 31157, 25112, 45958, 25113, 13457, 25114, 30418, 25115, 20015, 25116, 13218, 25117, 45584, 25118, 20019, 25119, 19706, 25120, 46671, 25121, 22447, 25122, 19571, 25123, 23193, 25124, 15602, 25125, 12733, 25126, 45973, 25127, 31179, 25128, 15907, 25129, 20272, 25130, 20951, 25131, 44586, 25132, 20273, 25133, 41797, 25134, 26026, 25135, 18128, 25136, 45984, 25137, 39130, 25138, 39139, 25139, 11549, 25140, 12318, 25141, 32103, 25142, 18293, 25143, 18294, 25144, 18295, 25145, 14134, 25146, 34292, 25147, 36427, 25148, 26860, 25149, 18316, 25150, 24354, 25151, 14630, 25152, 35595, 25153, 8672, 25154, 13046, 25155, 21441, 25156, 33664, 25157, 42697, 25158, 42840, 25159, 33573, 25160, 18336, 25161, 14675, 25162, 41762, 25163, 34435, 25164, 34481, 25165, 9421, 25166, 45633, 25167, 31838, 25168, 23902, 25169, 30299, 25170, 7635, 25171, 12226, 25172, 32619, 25173, 14546, 25174, 32876, 25175, 45304, 25176, 37294, 25177, 46064, 25178, 13138, 25179, 22538, 25180, 44186, 25181, 22881, 25182, 15667, 25183, 33844, 25184, 9735, 25185, 37295, 25186, 16384, 25187, 22848, 25188, 38583, 25189, 12703, 25190, 30894, 25191, 46714, 25192, 32577, 25193, 23368, 25194, 27066, 25195, 33236, 25196, 42008, 25197, 28954, 25198, 7865, 25199, 10304, 25200, 32511, 25201, 38685, 25202, 31004, 25203, 7808, 25204, 20002, 25205, 44217, 25206, 15167, 25207, 7593, 25208, 38693, 25209, 29683, 25210, 46800, 25211, 46874, 25212, 14139, 25213, 12704, 25214, 46116, 25215, 10540, 25216, 19738, 25217, 41728, 25218, 23089, 25219, 8703, 25220, 10214, 25221, 21627, 25222, 38220, 25223, 18148, 25224, 44961, 25225, 22084, 25226, 7706, 25227, 31591, 25228, 12389, 25229, 46573, 25230, 45132, 25231, 37576, 25232, 28419, 25233, 42928, 25234, 34488, 25235, 47625, 25236, 30276, 25237, 36948, 25238, 13510, 25239, 22550, 25240, 46185, 25241, 30277, 25242, 15344, 25243, 29431, 25244, 7677, 25245, 7574, 25246, 45491, 25247, 37125, 25248, 22830, 25249, 26305, 25250, 31234, 25251, 45215, 25252, 18308, 25253, 8035, 25254, 9003, 25255, 46807, 25256, 29576, 25257, 28240, 25258, 9347, 25259, 29689, 25260, 35822, 25261, 42278, 25262, 46396, 25263, 45636, 25264, 41986, 25265, 8036, 25266, 17558, 25267, 28528, 25268, 42441, 25269, 12868, 25270, 10825, 25271, 29690, 25272, 19940, 25273, 27827, 25274, 27029, 25275, 10362, 25276, 41415, 25277, 11011, 25278, 31958, 25279, 27684, 25280, 11228, 25281, 19944, 25282, 15177, 25283, 45722, 25284, 47501, 25285, 12338, 25286, 9851, 25287, 28017, 25288, 28626, 25289, 23412, 25290, 15351, 25291, 29432, 25292, 7870, 25293, 29269, 25294, 25124, 25295, 28099, 25296, 16574, 25297, 31005, 25298, 21844, 25299, 35707, 25300, 7681, 25301, 37305, 25302, 37306, 25303, 7576, 25304, 21633, 25305, 47830, 25306, 29358, 25307, 46093, 25308, 7784, 25309, 7779, 25310, 12869, 25311, 28526, 25312, 21853, 25313, 23369, 25314, 25713, 25315, 20227, 25316, 30843, 25317, 43807, 25318, 23579, 25319, 28887, 25320, 9072, 25321, 45493, 25322, 30913, 25323, 17768, 25324, 23370, 25325, 34314, 25326, 20889, 25327, 46576, 25328, 28883, 25329, 16193, 25330, 16194, 25331, 32202, 25332, 34728, 25333, 12066, 25334, 45223, 25335, 22567, 25336, 42679, 25337, 40097, 25338, 9650, 25339, 18847, 25340, 30034, 25341, 47634, 25342, 34194, 25343, 28102, 25344, 7751, 25345, 10712, 25346, 16553, 25347, 46893, 25348, 23371, 25349, 13974, 25350, 13975, 25351, 46814, 25352, 31420, 25353, 7448, 25354, 29013, 25355, 46448, 25356, 15930, 25357, 20757, 25358, 22984, 25359, 13450, 25360, 28103, 25361, 36619, 25362, 25026, 25363, 45638, 25364, 26133, 25365, 13201, 25366, 37449, 25367, 22098, 25368, 25012, 25369, 21805, 25370, 46907, 25371, 26225, 25372, 41506, 25373, 38307, 25374, 35710, 25375, 40098, 25376, 28333, 25377, 12522, 25378, 20663, 25379, 46509, 25380, 19694, 25381, 18848, 25382, 39424, 25383, 44407, 25384, 7253, 25385, 37309, 25386, 29114, 25387, 12125, 25388, 9140, 25389, 16082, 25390, 36417, 25391, 46454, 25392, 10556, 25393, 33028, 25394, 33029, 25395, 22765, 25396, 27009, 25397, 29014, 25398, 21640, 25399, 29605, 25400, 20238, 25401, 43007, 25402, 36798, 25403, 33484, 25404, 32896, 25405, 37602, 25406, 40101, 25407, 9743, 25408, 15012, 25409, 20668, 25410, 38531, 25411, 22312, 25412, 21580, 25413, 36922, 25414, 23338, 25415, 19243, 25416, 37036, 25417, 47833, 25418, 30278, 25419, 26139, 25420, 7656, 25421, 17310, 25422, 33685, 25423, 28744, 25424, 21959, 25425, 45573, 25426, 34634, 25427, 42396, 25428, 22110, 25429, 9318, 25430, 37581, 25431, 9359, 25432, 48494, 25433, 42450, 25434, 45783, 25435, 26134, 25436, 35130, 25437, 37310, 25438, 23794, 25439, 35543, 25440, 7897, 25441, 20239, 25442, 18647, 25443, 12607, 25444, 37943, 25445, 37667, 25446, 31515, 25447, 29664, 25448, 33786, 25449, 25046, 25450, 27645, 25451, 27071, 25452, 15363, 25453, 7768, 25454, 21878, 25455, 12602, 25456, 38335, 25457, 7268, 25458, 21987, 25459, 44980, 25460, 48214, 25461, 10367, 25462, 11445, 25463, 20910, 25464, 37003, 25465, 8222, 25466, 28150, 25467, 28654, 25468, 33002, 25469, 48509, 25470, 38358, 25471, 30419, 25472, 39344, 25473, 10561, 25474, 12982, 25475, 33237, 25476, 26306, 25477, 31687, 25478, 15757, 25479, 13931, 25480, 34456, 25481, 13155, 25482, 30280, 25483, 12877, 25484, 46050, 25485, 19175, 25486, 19699, 25487, 36164, 25488, 30837, 25489, 30531, 25490, 29275, 25491, 34509, 25492, 30932, 25493, 25289, 25494, 42382, 25495, 41517, 25496, 22119, 25497, 46521, 25498, 24861, 25499, 16555, 25500, 43032, 25501, 19254, 25502, 33577, 25503, 46577, 25504, 26279, 25505, 9441, 25506, 36013, 25507, 10332, 25508, 8992, 25509, 20813, 25510, 36442, 25511, 22824, 25512, 37161, 25513, 41749, 25514, 12128, 25515, 47256, 25516, 21657, 25517, 36605, 25518, 31016, 25519, 22753, 25520, 7753, 25521, 29256, 25522, 20814, 25523, 25910, 25524, 16568, 25525, 27778, 25526, 20911, 25527, 46926, 25528, 12399, 25529, 27246, 25530, 9541, 25531, 33207, 25532, 16659, 25533, 29671, 25534, 44913, 25535, 29141, 25536, 20249, 25537, 46531, 25538, 21519, 25539, 20250, 25540, 44275, 25541, 41653, 25542, 23186, 25543, 28274, 25544, 17828, 25545, 32777, 25546, 29866, 25547, 37800, 25548, 33094, 25549, 48294, 25550, 41006, 25551, 27540, 25552, 36340, 25553, 28745, 25554, 9753, 25555, 34354, 25556, 48217, 25557, 46465, 25558, 42592, 25559, 41322, 25560, 43868, 25561, 8641, 25562, 42041, 25563, 18663, 25564, 41763, 25565, 45334, 25566, 7433, 25567, 40749, 25568, 41524, 25569, 38364, 25570, 22653, 25571, 11307, 25572, 19545, 25573, 36448, 25574, 23428, 25575, 23444, 25576, 10419, 25577, 22382, 25578, 21520, 25579, 21524, 25580, 37049, 25581, 20826, 25582, 18863, 25583, 16046, 25584, 11001, 25585, 39885, 25586, 13228, 25587, 40064, 25588, 44819, 25589, 31017, 25590, 42399, 25591, 9754, 25592, 45646, 25593, 8087, 25594, 42201, 25595, 37801, 25596, 8315, 25597, 23658, 25598, 38252, 25599, 31599, 25600, 9905, 25601, 15900, 25602, 25801, 25603, 48218, 25604, 16047, 25605, 20681, 25606, 16303, 25607, 31602, 25608, 32678, 25609, 32329, 25610, 11018, 25611, 11308, 25612, 45916, 25613, 35548, 25614, 35534, 25615, 9172, 25616, 11259, 25617, 32670, 25618, 7941, 25619, 12076, 25620, 33210, 25621, 22618, 25622, 42213, 25623, 12611, 25624, 46679, 25625, 29072, 25626, 23417, 25627, 20136, 25628, 35136, 25629, 31933, 25630, 15833, 25631, 39536, 25632, 34858, 25633, 33189, 25634, 21220, 25635, 27592, 25636, 14204, 25637, 11448, 25638, 29148, 25639, 33499, 25640, 35730, 25641, 45728, 25642, 36068, 25643, 29329, 25644, 7819, 25645, 12149, 25646, 24438, 25647, 36174, 25648, 18179, 25649, 46987, 25650, 37461, 25651, 18428, 25652, 30948, 25653, 38253, 25654, 31237, 25655, 36535, 25656, 46353, 25657, 14205, 25658, 40125, 25659, 29151, 25660, 32227, 25661, 9788, 25662, 45767, 25663, 15965, 25664, 38540, 25665, 14305, 25666, 33806, 25667, 22539, 25668, 33807, 25669, 34525, 25670, 7773, 25671, 42214, 25672, 8969, 25673, 35143, 25674, 35897, 25675, 33056, 25676, 10034, 25677, 35577, 25678, 21526, 25679, 10938, 25680, 11387, 25681, 16571, 25682, 9020, 25683, 15019, 25684, 34707, 25685, 12949, 25686, 30782, 25687, 35150, 25688, 45791, 25689, 24759, 25690, 10506, 25691, 10668, 25692, 16670, 25693, 26011, 25694, 26466, 25695, 25806, 25696, 48224, 25697, 15596, 25698, 18356, 25699, 45654, 25700, 11418, 25701, 36146, 25702, 18481, 25703, 11964, 25704, 28191, 25705, 27798, 25706, 20484, 25707, 16784, 25708, 43752, 25709, 46749, 25710, 7543, 25711, 47031, 25712, 28809, 25713, 26703, 25714, 10085, 25715, 22838, 25716, 11138, 25717, 33815, 25718, 37131, 25719, 20698, 25720, 27782, 25721, 27793, 25722, 46230, 25723, 9546, 25724, 22777, 25725, 8781, 25726, 20556, 25727, 42220, 25728, 16314, 25729, 30949, 25730, 24999, 25731, 19423, 25732, 43596, 25733, 22063, 25734, 30021, 25735, 30018, 25736, 23796, 25737, 13868, 25738, 39651, 25739, 32901, 25740, 16903, 25741, 45339, 25742, 43155, 25743, 39462, 25744, 10512, 25745, 10513, 25746, 33030, 25747, 28348, 25748, 17976, 25749, 34933, 25750, 17345, 25751, 16743, 25752, 12159, 25753, 48489, 25754, 28664, 25755, 25195, 25756, 46583, 25757, 18887, 25758, 47748, 25759, 20708, 25760, 19712, 25761, 9597, 25762, 12403, 25763, 12404, 25764, 10342, 25765, 9102, 25766, 10308, 25767, 22064, 25768, 15383, 25769, 24894, 25770, 8232, 25771, 15384, 25772, 31378, 25773, 9103, 25774, 12082, 25775, 47900, 25776, 47692, 25777, 37983, 25778, 30308, 25779, 31606, 25780, 13865, 25781, 28665, 25782, 18429, 25783, 40141, 25784, 25836, 25785, 20709, 25786, 11926, 25787, 35753, 25788, 17362, 25789, 31380, 25790, 38322, 25791, 20285, 25792, 15686, 25793, 43834, 25794, 23938, 25795, 28310, 25796, 25927, 25797, 33597, 25798, 47901, 25799, 45535, 25800, 30311, 25801, 11579, 25802, 19456, 25803, 12528, 25804, 33296, 25805, 9598, 25806, 31658, 25807, 31654, 25808, 18687, 25809, 20842, 25810, 31535, 25811, 22997, 25812, 12370, 25813, 40143, 25814, 22369, 25815, 29847, 25816, 7756, 25817, 7617, 25818, 21917, 25819, 42488, 25820, 14245, 25821, 27101, 25822, 35195, 25823, 27285, 25824, 19714, 25825, 35846, 25826, 47923, 25827, 12623, 25828, 40548, 25829, 23672, 25830, 9402, 25831, 21825, 25832, 42411, 25833, 32871, 25834, 42521, 25835, 42514, 25836, 28550, 25837, 38383, 25838, 20984, 25839, 8973, 25840, 28910, 25841, 15919, 25842, 47076, 25843, 47055, 25844, 23394, 25845, 27810, 25846, 20426, 25847, 40167, 25848, 25089, 25849, 35906, 25850, 7775, 25851, 35200, 25852, 25934, 25853, 26302, 25854, 32517, 25855, 36321, 25856, 29317, 25857, 42105, 25858, 24064, 25859, 9403, 25860, 34548, 25861, 45342, 25862, 28671, 25863, 39558, 25864, 22356, 25865, 19208, 25866, 24537, 25867, 23465, 25868, 18632, 25869, 43714, 25870, 25873, 25871, 25722, 25872, 30976, 25873, 30977, 25874, 45343, 25875, 30982, 25876, 23624, 25877, 39396, 25878, 43636, 25879, 26998, 25880, 32488, 25881, 9916, 25882, 38295, 25883, 11930, 25884, 40179, 25885, 33834, 25886, 26387, 25887, 22363, 25888, 27313, 25889, 10696, 25890, 45346, 25891, 26243, 25892, 35908, 25893, 48404, 25894, 24592, 25895, 13008, 25896, 37476, 25897, 12532, 25898, 20747, 25899, 22244, 25900, 23684, 25901, 24620, 25902, 28314, 25903, 46623, 25904, 16871, 25905, 16831, 25906, 30424, 25907, 41341, 25908, 30297, 25909, 30298, 25910, 34429, 25911, 22564, 25912, 43944, 25913, 15576, 25914, 42825, 25915, 16130, 25916, 15620, 25917, 7809, 25918, 14660, 25919, 46594, 25920, 30227, 25921, 12980, 25922, 22850, 25923, 27687, 25924, 38600, 25925, 16472, 25926, 17606, 25927, 9654, 25928, 40015, 25929, 27339, 25930, 11238, 25931, 15936, 25932, 12807, 25933, 40891, 25934, 20766, 25935, 27694, 25936, 10412, 25937, 21585, 25938, 33876, 25939, 13946, 25940, 44425, 25941, 10841, 25942, 7527, 25943, 7786, 25944, 40892, 25945, 20767, 25946, 13947, 25947, 24752, 25948, 28785, 25949, 8453, 25950, 10181, 25951, 13025, 25952, 13933, 25953, 43065, 25954, 15675, 25955, 33166, 25956, 22666, 25957, 41879, 25958, 13859, 25959, 19387, 25960, 36970, 25961, 40022, 25962, 13934, 25963, 20691, 25964, 21402, 25965, 42047, 25966, 39243, 25967, 27703, 25968, 34655, 25969, 7274, 25970, 31274, 25971, 7275, 25972, 46586, 25973, 12826, 25974, 46471, 25975, 15129, 25976, 34669, 25977, 24925, 25978, 31999, 25979, 40622, 25980, 42867, 25981, 20720, 25982, 33598, 25983, 20721, 25984, 47924, 25985, 43212, 25986, 24763, 25987, 8577, 25988, 24223, 25989, 40050, 25990, 40051, 25991, 38179, 25992, 41178, 25993, 30499, 25994, 30514, 25995, 45784, 25996, 8931, 25997, 22120, 25998, 45787, 25999, 23729, 26000, 14719, 26001, 7816, 26002, 7820, 26003, 23599, 26004, 44469, 26005, 23632, 26006, 38040, 26007, 13524, 26008, 34005, 26009, 24993, 26010, 20055, 26011, 18167, 26012, 40113, 26013, 20062, 26014, 44430, 26015, 46354, 26016, 20776, 26017, 38374, 26018, 36678, 26019, 13557, 26020, 21092, 26021, 10816, 26022, 43386, 26023, 15352, 26024, 31158, 26025, 45904, 26026, 32032, 26027, 47864, 26028, 45909, 26029, 13746, 26030, 12131, 26031, 34909, 26032, 40398, 26033, 47885, 26034, 47902, 26035, 31536, 26036, 25155, 26037, 47925, 26038, 11282, 26039, 13765, 26040, 47527, 26041, 14609, 26042, 10009, 26043, 17407, 26044, 44225, 26045, 34110, 26046, 29541, 26047, 44004, 26048, 27032, 26049, 29403, 26050, 30515, 26051, 45846, 26052, 26818, 26053, 26140, 26054, 29543, 26055, 29710, 26056, 25469, 26057, 15107, 26058, 14651, 26059, 41065, 26060, 21291, 26061, 21292, 26062, 28536, 26063, 48317, 26064, 46139, 26065, 42849, 26066, 25483, 26067, 33695, 26068, 20375, 26069, 44294, 26070, 42858, 26071, 30576, 26072, 47056, 26073, 14463, 26074, 29969, 26075, 14464, 26076, 45883, 26077, 23031, 26078, 35505, 26079, 44362, 26080, 38449, 26081, 19726, 26082, 19756, 26083, 19790, 26084, 19260, 26085, 32638, 26086, 12420, 26087, 21565, 26088, 46792, 26089, 45437, 26090, 40084, 26091, 36612, 26092, 41293, 26093, 40852, 26094, 15535, 26095, 23425, 26096, 15703, 26097, 17304, 26098, 35818, 26099, 12897, 26100, 40723, 26101, 10007, 26102, 34181, 26103, 23110, 26104, 42012, 26105, 34188, 26106, 37772, 26107, 27634, 26108, 27635, 26109, 37286, 26110, 11470, 26111, 38521, 26112, 45094, 26113, 8121, 26114, 7489, 26115, 45569, 26116, 7845, 26117, 20876, 26118, 23292, 26119, 34006, 26120, 18317, 26121, 14645, 26122, 17503, 26123, 16874, 26124, 10108, 26125, 40990, 26126, 27727, 26127, 19119, 26128, 14813, 26129, 31561, 26130, 18085, 26131, 42953, 26132, 38697, 26133, 40377, 26134, 41618, 26135, 45570, 26136, 14646, 26137, 35915, 26138, 33971, 26139, 21854, 26140, 42025, 26141, 45330, 26142, 9007, 26143, 40468, 26144, 43780, 26145, 41116, 26146, 30228, 26147, 46400, 26148, 25265, 26149, 11472, 26150, 17505, 26151, 27033, 26152, 48505, 26153, 27855, 26154, 8716, 26155, 40872, 26156, 19120, 26157, 46094, 26158, 48237, 26159, 34315, 26160, 34316, 26161, 44499, 26162, 14747, 26163, 13202, 26164, 26866, 26165, 28576, 26166, 10176, 26167, 38152, 26168, 13386, 26169, 7287, 26170, 9008, 26171, 7490, 26172, 47336, 26173, 25616, 26174, 39516, 26175, 23115, 26176, 36670, 26177, 10235, 26178, 34200, 26179, 18810, 26180, 18811, 26181, 41093, 26182, 23175, 26183, 40736, 26184, 20669, 26185, 21198, 26186, 46908, 26187, 21199, 26188, 33665, 26189, 36856, 26190, 17955, 26191, 41863, 26192, 15559, 26193, 39766, 26194, 33458, 26195, 39989, 26196, 42451, 26197, 45064, 26198, 18854, 26199, 17234, 26200, 17320, 26201, 22317, 26202, 37610, 26203, 39614, 26204, 23299, 26205, 47345, 26206, 38747, 26207, 10557, 26208, 34071, 26209, 9301, 26210, 46214, 26211, 46215, 26212, 38613, 26213, 37611, 26214, 18994, 26215, 17514, 26216, 10413, 26217, 37619, 26218, 36573, 26219, 47886, 26220, 48443, 26221, 47316, 26222, 30372, 26223, 21352, 26224, 38765, 26225, 33543, 26226, 28537, 26227, 38766, 26228, 31649, 26229, 30693, 26230, 21296, 26231, 16849, 26232, 46578, 26233, 43066, 26234, 46964, 26235, 7463, 26236, 37620, 26237, 25135, 26238, 24881, 26239, 10115, 26240, 37746, 26241, 39991, 26242, 45350, 26243, 14676, 26244, 41011, 26245, 16111, 26246, 42741, 26247, 39244, 26248, 45068, 26249, 18870, 26250, 40833, 26251, 27704, 26252, 23194, 26253, 42384, 26254, 43783, 26255, 34585, 26256, 37971, 26257, 34584, 26258, 31653, 26259, 26912, 26260, 28255, 26261, 20263, 26262, 29095, 26263, 7465, 26264, 42048, 26265, 11477, 26266, 42222, 26267, 35617, 26268, 30375, 26269, 27746, 26270, 20699, 26271, 22410, 26272, 15836, 26273, 38287, 26274, 10205, 26275, 30783, 26276, 17529, 26277, 41898, 26278, 24450, 26279, 7332, 26280, 19826, 26281, 19848, 26282, 27094, 26283, 45355, 26284, 40286, 26285, 17532, 26286, 28078, 26287, 27903, 26288, 11755, 26289, 28601, 26290, 46026, 26291, 19041, 26292, 8060, 26293, 17356, 26294, 41072, 26295, 11346, 26296, 24929, 26297, 39370, 26298, 35997, 26299, 21360, 26300, 30022, 26301, 25156, 26302, 37239, 26303, 39028, 26304, 43188, 26305, 19859, 26306, 18833, 26307, 12312, 26308, 42477, 26309, 42478, 26310, 24474, 26311, 35945, 26312, 36898, 26313, 39998, 26314, 14779, 26315, 33956, 26316, 46162, 26317, 17539, 26318, 43213, 26319, 39780, 26320, 40497, 26321, 33914, 26322, 20725, 26323, 8067, 26324, 21421, 26325, 41929, 26326, 7350, 26327, 42515, 26328, 32850, 26329, 34597, 26330, 27142, 26331, 41277, 26332, 42359, 26333, 30398, 26334, 24516, 26335, 10442, 26336, 23137, 26337, 13276, 26338, 24982, 26339, 41950, 26340, 19316, 26341, 25880, 26342, 38916, 26343, 32722, 26344, 25666, 26345, 28312, 26346, 26436, 26347, 26244, 26348, 33467, 26349, 36138, 26350, 41842, 26351, 47488, 26352, 44931, 26353, 44932, 26354, 31943, 26355, 42432, 26356, 16104, 26357, 42436, 26358, 18087, 26359, 17594, 26360, 34501, 26361, 9604, 26362, 9602, 26363, 34021, 26364, 26695, 26365, 9711, 26366, 9715, 26367, 36449, 26368, 48442, 26369, 9524, 26370, 40907, 26371, 19016, 26372, 43486, 26373, 31440, 26374, 14837, 26375, 29819, 26376, 44950, 26377, 44077, 26378, 32907, 26379, 29604, 26380, 14848, 26381, 15179, 26382, 25266, 26383, 14711, 26384, 32033, 26385, 36431, 26386, 29085, 26387, 36671, 26388, 34850, 26389, 46455, 26390, 23763, 26391, 23762, 26392, 48408, 26393, 27734, 26394, 18714, 26395, 37775, 26396, 37235, 26397, 10238, 26398, 19390, 26399, 30425, 26400, 43586, 26401, 48172, 26402, 37778, 26403, 36899, 26404, 23775, 26405, 23824, 26406, 27143, 26407, 25667, 26408, 28042, 26409, 12730, 26410, 38044, 26411, 27837, 26412, 8208, 26413, 45676, 26414, 34614, 26415, 34615, 26416, 28045, 26417, 47389, 26418, 32535, 26419, 7637, 26420, 30367, 26421, 13965, 26422, 13966, 26423, 12593, 26424, 24341, 26425, 16818, 26426, 19345, 26427, 21498, 26428, 8353, 26429, 40686, 26430, 10536, 26431, 11682, 26432, 33348, 26433, 32878, 26434, 45240, 26435, 32191, 26436, 30901, 26437, 44219, 26438, 15621, 26439, 38415, 26440, 9737, 26441, 33475, 26442, 41296, 26443, 14482, 26444, 38587, 26445, 48083, 26446, 24280, 26447, 40552, 26448, 9425, 26449, 12055, 26450, 32583, 26451, 8765, 26452, 37300, 26453, 12898, 26454, 46066, 26455, 26739, 26456, 10819, 26457, 42929, 26458, 15592, 26459, 16131, 26460, 13680, 26461, 24106, 26462, 30674, 26463, 34618, 26464, 15740, 26465, 36630, 26466, 20574, 26467, 27445, 26468, 37665, 26469, 23493, 26470, 21548, 26471, 26740, 26472, 42013, 26473, 26547, 26474, 27550, 26475, 34993, 26476, 44801, 26477, 17408, 26478, 14743, 26479, 8080, 26480, 20881, 26481, 13384, 26482, 15828, 26483, 42279, 26484, 39330, 26485, 11197, 26486, 11471, 26487, 29254, 26488, 34493, 26489, 18460, 26490, 40378, 26491, 11106, 26492, 47542, 26493, 11107, 26494, 35049, 26495, 7846, 26496, 35050, 26497, 19523, 26498, 38352, 26499, 21190, 26500, 16285, 26501, 19356, 26502, 26813, 26503, 29755, 26504, 8421, 26505, 37732, 26506, 7504, 26507, 14614, 26508, 14849, 26509, 42954, 26510, 15180, 26511, 28241, 26512, 38698, 26513, 18318, 26514, 41416, 26515, 13511, 26516, 40416, 26517, 46397, 26518, 42149, 26519, 25127, 26520, 32964, 26521, 14119, 26522, 26948, 26523, 46128, 26524, 17066, 26525, 46635, 26526, 11728, 26527, 45167, 26528, 48468, 26529, 34007, 26530, 34494, 26531, 45438, 26532, 12903, 26533, 24355, 26534, 25843, 26535, 20228, 26536, 10541, 26537, 35051, 26538, 31159, 26539, 14947, 26540, 45841, 26541, 39845, 26542, 39337, 26543, 22892, 26544, 30111, 26545, 35824, 26546, 38999, 26547, 46815, 26548, 16575, 26549, 39848, 26550, 20079, 26551, 19949, 26552, 16270, 26553, 7966, 26554, 27856, 26555, 42981, 26556, 42446, 26557, 42452, 26558, 34317, 26559, 28760, 26560, 8361, 26561, 14017, 26562, 42680, 26563, 25267, 26564, 9009, 26565, 28532, 26566, 23413, 26567, 17595, 26568, 7873, 26569, 14483, 26570, 47153, 26571, 12278, 26572, 11621, 26573, 42083, 26574, 15095, 26575, 7766, 26576, 27994, 26577, 15636, 26578, 30408, 26579, 32448, 26580, 32772, 26581, 26882, 26582, 33715, 26583, 35055, 26584, 46291, 26585, 39215, 26586, 44152, 26587, 33859, 26588, 16875, 26589, 37426, 26590, 45755, 26591, 28244, 26592, 28891, 26593, 43891, 26594, 12872, 26595, 46894, 26596, 45639, 26597, 9777, 26598, 12430, 26599, 16336, 26600, 9352, 26601, 21574, 26602, 7515, 26603, 15192, 26604, 20233, 26605, 7650, 26606, 14018, 26607, 22596, 26608, 28213, 26609, 47550, 26610, 8429, 26611, 25557, 26612, 9863, 26613, 33485, 26614, 35000, 26615, 11232, 26616, 29497, 26617, 34300, 26618, 16576, 26619, 45640, 26620, 42284, 26621, 10487, 26622, 21575, 26623, 34318, 26624, 46643, 26625, 25558, 26626, 26952, 26627, 24367, 26628, 32654, 26629, 45756, 26630, 45441, 26631, 8766, 26632, 45959, 26633, 46895, 26634, 25617, 26635, 13451, 26636, 25848, 26637, 34012, 26638, 24368, 26639, 23581, 26640, 43887, 26641, 34628, 26642, 41309, 26643, 34730, 26644, 30747, 26645, 46332, 26646, 30412, 26647, 24387, 26648, 42698, 26649, 39746, 26650, 46456, 26651, 24388, 26652, 33265, 26653, 16505, 26654, 22441, 26655, 8201, 26656, 32555, 26657, 40016, 26658, 7767, 26659, 32556, 26660, 9045, 26661, 47977, 26662, 11037, 26663, 43008, 26664, 11693, 26665, 40826, 26666, 47399, 26667, 20360, 26668, 48438, 26669, 14324, 26670, 14358, 26671, 44093, 26672, 14419, 26673, 16196, 26674, 22570, 26675, 23853, 26676, 45847, 26677, 25038, 26678, 43331, 26679, 42113, 26680, 17608, 26681, 16032, 26682, 43009, 26683, 34326, 26684, 15938, 26685, 45280, 26686, 26226, 26687, 15212, 26688, 20901, 26689, 17792, 26690, 16882, 26691, 36203, 26692, 16710, 26693, 37856, 26694, 23072, 26695, 32815, 26696, 7452, 26697, 7382, 26698, 22010, 26699, 42699, 26700, 47834, 26701, 22895, 26702, 46909, 26703, 31718, 26704, 36857, 26705, 33178, 26706, 33177, 26707, 18571, 26708, 21718, 26709, 21581, 26710, 41226, 26711, 14020, 26712, 47773, 26713, 44249, 26714, 45331, 26716, 43574, 26717, 20902, 26718, 25559, 26719, 45961, 26720, 41421, 26721, 32503, 26722, 46333, 26723, 12549, 26724, 30413, 26725, 31312, 26726, 18465, 26727, 16883, 26728, 20513, 26729, 47721, 26730, 41310, 26731, 35567, 26732, 33367, 26733, 46343, 26734, 8085, 26735, 36737, 26736, 23374, 26737, 21392, 26738, 30270, 26739, 8223, 26740, 15225, 26741, 32944, 26742, 36924, 26743, 22121, 26744, 38748, 26745, 23730, 26746, 25563, 26747, 14960, 26748, 30420, 26749, 38224, 26750, 22284, 26751, 15676, 26752, 35258, 26753, 24827, 26754, 31880, 26755, 36800, 26756, 44097, 26757, 26959, 26758, 7898, 26759, 25738, 26760, 29585, 26761, 47723, 26762, 12918, 26763, 40998, 26764, 37043, 26765, 45472, 26766, 7516, 26767, 16480, 26768, 8454, 26769, 12810, 26770, 17235, 26771, 48100, 26772, 46666, 26773, 32601, 26774, 8141, 26775, 16089, 26776, 20244, 26777, 18654, 26778, 37612, 26779, 29115, 26780, 19960, 26781, 36639, 26782, 19791, 26783, 39867, 26784, 26142, 26785, 19145, 26786, 33689, 26787, 9699, 26788, 14857, 26789, 35061, 26790, 27227, 26791, 38468, 26792, 24120, 26793, 24121, 26794, 13536, 26795, 31565, 26796, 43743, 26797, 35568, 26798, 21658, 26799, 36311, 26800, 40234, 26801, 23341, 26802, 47878, 26803, 34510, 26804, 9900, 26805, 14579, 26806, 37950, 26807, 21393, 26808, 24122, 26809, 8929, 26810, 39297, 26811, 15063, 26812, 36209, 26813, 46928, 26814, 23506, 26815, 24659, 26816, 20245, 26817, 47836, 26818, 25290, 26819, 24131, 26820, 30768, 26821, 9021, 26822, 26325, 26823, 11738, 26824, 31119, 26825, 27451, 26826, 30549, 26827, 30550, 26828, 9455, 26829, 16974, 26830, 9926, 26831, 12686, 26832, 14720, 26833, 29277, 26834, 7936, 26835, 7937, 26836, 19131, 26837, 48167, 26838, 10574, 26839, 45447, 26840, 19573, 26841, 24422, 26842, 29613, 26843, 44546, 26844, 44547, 26845, 16482, 26846, 22323, 26847, 13461, 26848, 36061, 26849, 15761, 26850, 37747, 26851, 12929, 26852, 12132, 26853, 14495, 26854, 10490, 26855, 45970, 26856, 30694, 26857, 44764, 26858, 41765, 26859, 44548, 26860, 32180, 26861, 43067, 26862, 33337, 26863, 32560, 26864, 11450, 26865, 24084, 26866, 30426, 26867, 47839, 26868, 15248, 26869, 22611, 26870, 23513, 26871, 48266, 26872, 48267, 26873, 46140, 26874, 16605, 26875, 14824, 26876, 14861, 26877, 33882, 26878, 31650, 26879, 28495, 26880, 37621, 26881, 17075, 26882, 25988, 26883, 17460, 26884, 20828, 26885, 42850, 26886, 11048, 26887, 21808, 26888, 21732, 26889, 10575, 26890, 48511, 26891, 24831, 26892, 31169, 26893, 46734, 26894, 11451, 26895, 41431, 26896, 21661, 26897, 8088, 26898, 20595, 26899, 47887, 26900, 47997, 26901, 8932, 26902, 29614, 26903, 13356, 26904, 11199, 26905, 10116, 26906, 27064, 26907, 18398, 26908, 20251, 26909, 16775, 26910, 39090, 26911, 13604, 26912, 31120, 26913, 12641, 26914, 16886, 26915, 13026, 26916, 26364, 26917, 46672, 26918, 32297, 26919, 27773, 26920, 15367, 26921, 16060, 26922, 29672, 26923, 33582, 26924, 42724, 26925, 37412, 26926, 33338, 26927, 13987, 26928, 42383, 26929, 15455, 26930, 37972, 26931, 37809, 26932, 13753, 26933, 20063, 26934, 48173, 26935, 20137, 26936, 42742, 26937, 33984, 26938, 38960, 26939, 41889, 26940, 41779, 26941, 11344, 26942, 20138, 26943, 11478, 26944, 44439, 26945, 17644, 26946, 45649, 26947, 38370, 26948, 29929, 26949, 8323, 26950, 42163, 26951, 19261, 26952, 40761, 26953, 33011, 26954, 42049, 26955, 23445, 26956, 41654, 26957, 8214, 26958, 18871, 26959, 23195, 26960, 21069, 26961, 23196, 26962, 34914, 26963, 14973, 26964, 40068, 26965, 37414, 26966, 46929, 26967, 20376, 26968, 28074, 26969, 26913, 26970, 11203, 26971, 18345, 26972, 18187, 26973, 24793, 26974, 24085, 26975, 36768, 26976, 28256, 26977, 44297, 26978, 44035, 26979, 26973, 26980, 35099, 26981, 41134, 26982, 41135, 26983, 42093, 26984, 46355, 26985, 29930, 26986, 42467, 26987, 19586, 26988, 20934, 26989, 42468, 26990, 11202, 26991, 13907, 26992, 44276, 26993, 48295, 26994, 37810, 26995, 26974, 26996, 36452, 26997, 19574, 26998, 20935, 26999, 22408, 27000, 31806, 27001, 43685, 27002, 32800, 27003, 18748, 27004, 25761, 27005, 23912, 27006, 32228, 27007, 39715, 27008, 30074, 27009, 34262, 27010, 15603, 27011, 35926, 27012, 23661, 27013, 38158, 27014, 44298, 27015, 10469, 27016, 26114, 27017, 21812, 27018, 33926, 27019, 11294, 27020, 8324, 27021, 40268, 27022, 20068, 27023, 43133, 27024, 45922, 27025, 15283, 27026, 29153, 27027, 27403, 27028, 23734, 27029, 32684, 27030, 16431, 27031, 20390, 27032, 21813, 27033, 35677, 27034, 42304, 27035, 46365, 27036, 7921, 27037, 33384, 27038, 44844, 27039, 48112, 27040, 27747, 27041, 35293, 27042, 20088, 27043, 42223, 27044, 20952, 27045, 18832, 27046, 15718, 27047, 14725, 27048, 45769, 27049, 31035, 27050, 26561, 27051, 35550, 27052, 44845, 27053, 40269, 27054, 32685, 27055, 34217, 27056, 46687, 27057, 11965, 27058, 38163, 27059, 36769, 27060, 25491, 27061, 32679, 27062, 36074, 27063, 32340, 27064, 45792, 27065, 34922, 27066, 34085, 27067, 35739, 27068, 22625, 27069, 38813, 27070, 16422, 27071, 30442, 27072, 15837, 27073, 15838, 27074, 35538, 27075, 29330, 27076, 36176, 27077, 15966, 27078, 11479, 27079, 12990, 27080, 29039, 27081, 19596, 27082, 34860, 27083, 16308, 27084, 11453, 27085, 31180, 27086, 9793, 27087, 31087, 27088, 18507, 27089, 26981, 27090, 40935, 27091, 15785, 27092, 15801, 27093, 47842, 27094, 37375, 27095, 31318, 27096, 42125, 27097, 12991, 27098, 20069, 27099, 22472, 27100, 48449, 27101, 12617, 27102, 25636, 27103, 8938, 27104, 47419, 27105, 33181, 27106, 38971, 27107, 19424, 27108, 24678, 27109, 19042, 27110, 43826, 27111, 31134, 27112, 17077, 27113, 15605, 27114, 15609, 27115, 37133, 27116, 18489, 27117, 30450, 27118, 33339, 27119, 11967, 27120, 29622, 27121, 44115, 27122, 18205, 27123, 20522, 27124, 18361, 27125, 18683, 27126, 16904, 27127, 28810, 27128, 43156, 27129, 15807, 27130, 22521, 27131, 16790, 27132, 16791, 27133, 9615, 27134, 26711, 27135, 21167, 27136, 12828, 27137, 47729, 27138, 23914, 27139, 23771, 27140, 10429, 27141, 11756, 27142, 24165, 27143, 40656, 27144, 31655, 27145, 34773, 27146, 14506, 27147, 36930, 27148, 16673, 27149, 45525, 27150, 35303, 27151, 24000, 27152, 25922, 27153, 24840, 27154, 27412, 27155, 25775, 27156, 10247, 27157, 35304, 27158, 22632, 27159, 11140, 27160, 36083, 27161, 8787, 27162, 26027, 27163, 21528, 27164, 46303, 27165, 45660, 27166, 34538, 27167, 46027, 27168, 26641, 27169, 27794, 27170, 28719, 27171, 42132, 27172, 36653, 27173, 29623, 27174, 47599, 27175, 33387, 27176, 38856, 27177, 32238, 27178, 17800, 27179, 20151, 27180, 11757, 27181, 19425, 27182, 41582, 27183, 31218, 27184, 41210, 27185, 43607, 27186, 14398, 27187, 41342, 27188, 46761, 27189, 31328, 27190, 48416, 27191, 11816, 27192, 30379, 27193, 34674, 27194, 18482, 27195, 23269, 27196, 46376, 27197, 48475, 27198, 45016, 27199, 33600, 27200, 38857, 27201, 11483, 27202, 13077, 27203, 14434, 27204, 15684, 27205, 27801, 27206, 38562, 27207, 31289, 27208, 32506, 27209, 25222, 27210, 25505, 27211, 31329, 27212, 39660, 27213, 32999, 27214, 14510, 27215, 45931, 27216, 37385, 27217, 23864, 27218, 45124, 27219, 34836, 27220, 13869, 27221, 10517, 27222, 36092, 27223, 27126, 27224, 21760, 27225, 10607, 27226, 35330, 27227, 22194, 27228, 22195, 27229, 13078, 27230, 19055, 27231, 19439, 27232, 29134, 27233, 39820, 27234, 37420, 27235, 28927, 27236, 32955, 27237, 47424, 27238, 36900, 27239, 45608, 27240, 14877, 27241, 31765, 27242, 32461, 27243, 17801, 27244, 31048, 27245, 16365, 27246, 25573, 27247, 23885, 27248, 15809, 27249, 11176, 27250, 39029, 27251, 34087, 27252, 48113, 27253, 33176, 27254, 19627, 27255, 13499, 27256, 21312, 27257, 25928, 27258, 20464, 27259, 11295, 27260, 44856, 27261, 35761, 27262, 34544, 27263, 20497, 27264, 35950, 27265, 25202, 27266, 28994, 27267, 43494, 27268, 38977, 27269, 19073, 27270, 33518, 27271, 48458, 27272, 41078, 27273, 10521, 27274, 15723, 27275, 21764, 27276, 48462, 27277, 43214, 27278, 31542, 27279, 30382, 27280, 41676, 27281, 23943, 27282, 14984, 27283, 18955, 27284, 12575, 27285, 19875, 27286, 35485, 27287, 9288, 27288, 30152, 27289, 10608, 27290, 11211, 27291, 47628, 27292, 16914, 27293, 19629, 27294, 21032, 27295, 20074, 27296, 31659, 27297, 45811, 27298, 20290, 27299, 31226, 27300, 12658, 27301, 42872, 27302, 8842, 27303, 35077, 27304, 33763, 27305, 25203, 27306, 24493, 27307, 9810, 27308, 27144, 27309, 43443, 27310, 36231, 27311, 35849, 27312, 27465, 27313, 30620, 27314, 37141, 27315, 8951, 27316, 19289, 27317, 19885, 27318, 30973, 27319, 28553, 27320, 28913, 27321, 42616, 27322, 15850, 27323, 22482, 27324, 43564, 27325, 29043, 27326, 31681, 27327, 41812, 27328, 30621, 27329, 27431, 27330, 46167, 27331, 16920, 27332, 11489, 27333, 19468, 27334, 23208, 27335, 30203, 27336, 12750, 27337, 11182, 27338, 15995, 27339, 27466, 27340, 43969, 27341, 47105, 27342, 18824, 27343, 30978, 27344, 24018, 27345, 23951, 27346, 33081, 27347, 25939, 27348, 24517, 27349, 11935, 27350, 26209, 27351, 27608, 27352, 19094, 27353, 29196, 27354, 25866, 27355, 47077, 27356, 15816, 27357, 13630, 27358, 44870, 27359, 24538, 27360, 14792, 27361, 47932, 27362, 35202, 27363, 24710, 27364, 20568, 27365, 11188, 27366, 31705, 27367, 47438, 27368, 25881, 27369, 41695, 27370, 24555, 27371, 47437, 27372, 10477, 27373, 20996, 27374, 14269, 27375, 35228, 27376, 18517, 27377, 28845, 27378, 44683, 27379, 25668, 27380, 23567, 27381, 20809, 27382, 39561, 27383, 16807, 27384, 21828, 27385, 39941, 27386, 25382, 27387, 43642, 27388, 20207, 27389, 43509, 27390, 44075, 27391, 43722, 27392, 39729, 27393, 29004, 27394, 9255, 27395, 9981, 27396, 23633, 27397, 21830, 27398, 34753, 27399, 33837, 27400, 37920, 27401, 11828, 27402, 32255, 27403, 32104, 27404, 9589, 27405, 21622, 27406, 44705, 27407, 26392, 27408, 24610, 27409, 11938, 27410, 26245, 27411, 12536, 27412, 22250, 27413, 41709, 27414, 23688, 27415, 23644, 27416, 47489, 27417, 23976, 27418, 24326, 27419, 7743, 27420, 28306, 27421, 44717, 27422, 25413, 27423, 16747, 27424, 31105, 27425, 11683, 27426, 18535, 27427, 40379, 27428, 44220, 27429, 42955, 27430, 30907, 27431, 29174, 27432, 40732, 27433, 10219, 27434, 11233, 27435, 30759, 27436, 22424, 27437, 43010, 27438, 22111, 27439, 39079, 27440, 40882, 27441, 17564, 27442, 44524, 27443, 23247, 27444, 23723, 27445, 23046, 27446, 34853, 27447, 38749, 27448, 7254, 27449, 42593, 27450, 30427, 27451, 11296, 27452, 10789, 27453, 31484, 27454, 23048, 27455, 22465, 27456, 23049, 27457, 22469, 27458, 11361, 27459, 33424, 27460, 16511, 27461, 43353, 27462, 40399, 27463, 40069, 27464, 44299, 27465, 31129, 27466, 39895, 27467, 42479, 27468, 15908, 27469, 38432, 27470, 36023, 27471, 21240, 27472, 29186, 27473, 18129, 27474, 36458, 27475, 18539, 27476, 40778, 27477, 29561, 27478, 39030, 27479, 40038, 27480, 11298, 27481, 33825, 27482, 33601, 27483, 17202, 27484, 11283, 27485, 43215, 27486, 14259, 27487, 44346, 27488, 11585, 27489, 18552, 27490, 46786, 27491, 46588, 27492, 11668, 27493, 9340, 27494, 38523, 27495, 30500, 27496, 9348, 27497, 9349, 27498, 37515, 27499, 21855, 27500, 31010, 27501, 10717, 27502, 33274, 27503, 10790, 27504, 33280, 27505, 47196, 27506, 35464, 27507, 35465, 27508, 24452, 27509, 45527, 27510, 44321, 27511, 24476, 27512, 16800, 27513, 12251, 27514, 14135, 27515, 34976, 27516, 20099, 27517, 46190, 27518, 27845, 27519, 27846, 27520, 42150, 27521, 27847, 27522, 11869, 27523, 41990, 27524, 36560, 27525, 34014, 27526, 12279, 27527, 33638, 27528, 40883, 27529, 41376, 27530, 34502, 27531, 9491, 27532, 22122, 27533, 29991, 27534, 30865, 27535, 31881, 27536, 35259, 27537, 31648, 27538, 45139, 27539, 24782, 27540, 43068, 27541, 15078, 27542, 46735, 27543, 42461, 27544, 9496, 27545, 19133, 27546, 12356, 27547, 19575, 27548, 13241, 27549, 46366, 27550, 45145, 27551, 38159, 27552, 11126, 27553, 8970, 27554, 36460, 27555, 21241, 27556, 33649, 27557, 43436, 27558, 13123, 27559, 21608, 27560, 19056, 27561, 11942, 27562, 43191, 27563, 12371, 27564, 13717, 27565, 20498, 27566, 24807, 27567, 8975, 27568, 13631, 27569, 20192, 27570, 20208, 27571, 34485, 27572, 29175, 27573, 13744, 27574, 47551, 27575, 43332, 27576, 31688, 27577, 43033, 27578, 33361, 27579, 31366, 27580, 22654, 27581, 39974, 27582, 41386, 27583, 13060, 27584, 18944, 27585, 18945, 27586, 16424, 27587, 31276, 27588, 19416, 27589, 43157, 27590, 29187, 27591, 18950, 27592, 13762, 27593, 42617, 27594, 39952, 27595, 38450, 27596, 16651, 27597, 28011, 27598, 27005, 27599, 27006, 27600, 7286, 27601, 21026, 27602, 13594, 27603, 44587, 27604, 8350, 27605, 8397, 27606, 8432, 27607, 29760, 27608, 29761, 27609, 8440, 27610, 9954, 27611, 26810, 27612, 17454, 27613, 9433, 27614, 29756, 27615, 25010, 27616, 19951, 27617, 45844, 27618, 33092, 27619, 28056, 27620, 37428, 27621, 41312, 27622, 14359, 27623, 32662, 27624, 39523, 27625, 21719, 27626, 28003, 27627, 17459, 27628, 31882, 27629, 13537, 27630, 33368, 27631, 35986, 27632, 29513, 27633, 21734, 27634, 13935, 27635, 12012, 27636, 8319, 27637, 33124, 27638, 33125, 27639, 26915, 27640, 33096, 27641, 34526, 27642, 34527, 27643, 37435, 27644, 17646, 27645, 20377, 27646, 35741, 27647, 33129, 27648, 26118, 27649, 28006, 27650, 26838, 27651, 36901, 27652, 32757, 27653, 10187, 27654, 30380, 27655, 26110, 27656, 45878, 27657, 33251, 27658, 45879, 27659, 27145, 27660, 25940, 27661, 32105, 27662, 13291, 27663, 34272, 27664, 12762, 27665, 27629, 27666, 22078, 27667, 26741, 27668, 30714, 27669, 30015, 27670, 28198, 27671, 30718, 27672, 12594, 27673, 39329, 27674, 11328, 27675, 14815, 27676, 42018, 27677, 28448, 27678, 8982, 27679, 15194, 27680, 33860, 27681, 13387, 27682, 31614, 27683, 30748, 27684, 43333, 27685, 38727, 27686, 17155, 27687, 42085, 27688, 7383, 27689, 41510, 27690, 22697, 27691, 31622, 27692, 41526, 27693, 13401, 27694, 12443, 27695, 26184, 27696, 31651, 27697, 42097, 27698, 45069, 27699, 45072, 27700, 34792, 27701, 34823, 27702, 46572, 27703, 8986, 27704, 43878, 27705, 12541, 27706, 34793, 27707, 23903, 27708, 28568, 27709, 37278, 27710, 14556, 27711, 16816, 27712, 36724, 27713, 46625, 27714, 31845, 27715, 8919, 27716, 45565, 27717, 27479, 27718, 11924, 27719, 18971, 27720, 13099, 27721, 17297, 27722, 9825, 27723, 47855, 27724, 11365, 27725, 37569, 27726, 14560, 27727, 12231, 27728, 38686, 27729, 37297, 27730, 26735, 27731, 31842, 27732, 30719, 27733, 33565, 27734, 30077, 27735, 17302, 27736, 30895, 27737, 38408, 27738, 38409, 27739, 41365, 27740, 34983, 27741, 32862, 27742, 16190, 27743, 20465, 27744, 10701, 27745, 38410, 27746, 37113, 27747, 21546, 27748, 36031, 27749, 46630, 27750, 46801, 27751, 30902, 27752, 27367, 27753, 16386, 27754, 37703, 27755, 21343, 27756, 21344, 27757, 32962, 27758, 22275, 27759, 17871, 27760, 35859, 27761, 32271, 27762, 19519, 27763, 8704, 27764, 8705, 27765, 15704, 27766, 38245, 27767, 47139, 27768, 14612, 27769, 40586, 27770, 22085, 27771, 18270, 27772, 28946, 27773, 30723, 27774, 14846, 27775, 40857, 27776, 40866, 27777, 31592, 27778, 42649, 27779, 38348, 27780, 45090, 27781, 44800, 27782, 17433, 27783, 41729, 27784, 10396, 27785, 10397, 27786, 12425, 27787, 43990, 27788, 13891, 27789, 18309, 27790, 19235, 27791, 30404, 27792, 28049, 27793, 29080, 27794, 26946, 27795, 12176, 27796, 27481, 27797, 27368, 27798, 10920, 27799, 29381, 27800, 8358, 27801, 33350, 27802, 46802, 27803, 29534, 27804, 29357, 27805, 47770, 27806, 45220, 27807, 16238, 27808, 25463, 27809, 26947, 27810, 45492, 27811, 14944, 27812, 29173, 27813, 24348, 27814, 26310, 27815, 9564, 27816, 14945, 27817, 37846, 27818, 18310, 27819, 27848, 27820, 27030, 27821, 34621, 27822, 21799, 27823, 45241, 27824, 37307, 27825, 37338, 27826, 37339, 27827, 17587, 27828, 24356, 27829, 27334, 27830, 42658, 27831, 14401, 27832, 14744, 27833, 43999, 27834, 36514, 27835, 46883, 27836, 46118, 27837, 16333, 27838, 45842, 27839, 41620, 27840, 34894, 27841, 23113, 27842, 21457, 27843, 21634, 27844, 40209, 27845, 31848, 27846, 42956, 27847, 19945, 27848, 47148, 27849, 32198, 27850, 30170, 27851, 18975, 27852, 27372, 27853, 8198, 27854, 45494, 27855, 47448, 27856, 23907, 27857, 43948, 27858, 16334, 27859, 17877, 27860, 15628, 27861, 14438, 27862, 26864, 27863, 34994, 27864, 18088, 27865, 30106, 27866, 11672, 27867, 14563, 27868, 46637, 27869, 35241, 27870, 28934, 27871, 10486, 27872, 25261, 27873, 29473, 27874, 9073, 27875, 30730, 27876, 34987, 27877, 28477, 27878, 21711, 27879, 33048, 27880, 47543, 27881, 34008, 27882, 24042, 27883, 41113, 27884, 22093, 27885, 15181, 27886, 29359, 27887, 27685, 27888, 35863, 27889, 41987, 27890, 19689, 27891, 43883, 27892, 16656, 27893, 8292, 27894, 41184, 27895, 25612, 27896, 25844, 27897, 12426, 27898, 26441, 27899, 40210, 27900, 30171, 27901, 45495, 27902, 21278, 27903, 43393, 27904, 29321, 27905, 20890, 27906, 42447, 27907, 18849, 27908, 18920, 27909, 45306, 27910, 10549, 27911, 43326, 27912, 37852, 27913, 18055, 27914, 20351, 27915, 42026, 27916, 25027, 27917, 35006, 27918, 19757, 27919, 14319, 27920, 40519, 27921, 15195, 27922, 33033, 27923, 33264, 27924, 46816, 27925, 43522, 27926, 38463, 27927, 39000, 27928, 22569, 27929, 47395, 27930, 20542, 27931, 26445, 27932, 26451, 27933, 7449, 27934, 13452, 27935, 36432, 27936, 27967, 27937, 24043, 27938, 42577, 27939, 27338, 27940, 32199, 27941, 21102, 27942, 30229, 27943, 37938, 27944, 39962, 27945, 40218, 27946, 17886, 27947, 40873, 27948, 35244, 27949, 23069, 27950, 36200, 27951, 31421, 27952, 21845, 27953, 14356, 27954, 47246, 27955, 32879, 27956, 30112, 27957, 41304, 27958, 40591, 27959, 46896, 27960, 16708, 27961, 18568, 27962, 27729, 27963, 19213, 27964, 37450, 27965, 30857, 27966, 29293, 27967, 38417, 27968, 31960, 27969, 25467, 27970, 42983, 27971, 19952, 27972, 21381, 27973, 31070, 27974, 20474, 27975, 20585, 27976, 46325, 27977, 34111, 27978, 47865, 27979, 9652, 27980, 14413, 27981, 18981, 27982, 19758, 27983, 25465, 27984, 10011, 27985, 19142, 27986, 18272, 27987, 28982, 27988, 41305, 27989, 21194, 27990, 25040, 27991, 31870, 27992, 37944, 27993, 46293, 27994, 22313, 27995, 17230, 27996, 7899, 27997, 26755, 27998, 47868, 27999, 44012, 28000, 38728, 28001, 9141, 28002, 13530, 28003, 18648, 28004, 17896, 28005, 43011, 28006, 30370, 28007, 43740, 28008, 23656, 28009, 17511, 28010, 23778, 28011, 17278, 28012, 24289, 28013, 16052, 28014, 15213, 28015, 38464, 28016, 24780, 28017, 11501, 28018, 15013, 28019, 43012, 28020, 44507, 28021, 36859, 28022, 23808, 28023, 17135, 28024, 21200, 28025, 19956, 28026, 10925, 28027, 21465, 28028, 27010, 28029, 35394, 28030, 10491, 28031, 29544, 28032, 39611, 28033, 33973, 28034, 37037, 28035, 23360, 28036, 30084, 28037, 28767, 28038, 17312, 28039, 21286, 28040, 39859, 28041, 33795, 28042, 28653, 28043, 37000, 28044, 43892, 28045, 40017, 28046, 39425, 28047, 36799, 28048, 14078, 28049, 35248, 28050, 37233, 28051, 21960, 28052, 9697, 28053, 36435, 28054, 24390, 28055, 34804, 28056, 35007, 28057, 24046, 28058, 34805, 28059, 36162, 28060, 13597, 28061, 23875, 28062, 23499, 28063, 24656, 28064, 37857, 28065, 38309, 28066, 45103, 28067, 18649, 28068, 12808, 28069, 17782, 28070, 32992, 28071, 20361, 28072, 46049, 28073, 33266, 28074, 15227, 28075, 16660, 28076, 40564, 28077, 34458, 28078, 34736, 28079, 41460, 28080, 11563, 28081, 46073, 28082, 42456, 28083, 22800, 28084, 38359, 28085, 17236, 28086, 37315, 28087, 13397, 28088, 17619, 28089, 38312, 28090, 21659, 28091, 33797, 28092, 24828, 28093, 19127, 28094, 35723, 28095, 47837, 28096, 13054, 28097, 31426, 28098, 12682, 28099, 22016, 28100, 47985, 28101, 38750, 28102, 39970, 28103, 30534, 28104, 16407, 28105, 17071, 28106, 41560, 28107, 25134, 28108, 36125, 28109, 47258, 28110, 29665, 28111, 17516, 28112, 10111, 28113, 34511, 28114, 30421, 28115, 14618, 28116, 46731, 28117, 25976, 28118, 28408, 28119, 21726, 28120, 36210, 28121, 11804, 28122, 24049, 28123, 46296, 28124, 30123, 28125, 14701, 28126, 35062, 28127, 36570, 28128, 29864, 28129, 12438, 28130, 44525, 28131, 28489, 28132, 44196, 28133, 25977, 28134, 15710, 28135, 27381, 28136, 21394, 28137, 25291, 28138, 26323, 28139, 43409, 28140, 12009, 28141, 32041, 28142, 18506, 28143, 44526, 28144, 28655, 28145, 33878, 28146, 8771, 28147, 11505, 28148, 18101, 28149, 44759, 28150, 23507, 28151, 19176, 28152, 31623, 28153, 41561, 28154, 31077, 28155, 36497, 28156, 27554, 28157, 46820, 28158, 43477, 28159, 9151, 28160, 8224, 28161, 44752, 28162, 38250, 28163, 33009, 28164, 14671, 28165, 31624, 28166, 44753, 28167, 22664, 28168, 19792, 28169, 33798, 28170, 44754, 28171, 33271, 28172, 25978, 28173, 48132, 28174, 13601, 28175, 42584, 28176, 20367, 28177, 27495, 28178, 29296, 28179, 38751, 28180, 44257, 28181, 44755, 28182, 33944, 28183, 33976, 28184, 32778, 28185, 18664, 28186, 47505, 28187, 20252, 28188, 29094, 28189, 44277, 28190, 31895, 28191, 36762, 28192, 32042, 28193, 13700, 28194, 14496, 28195, 45647, 28196, 9165, 28197, 38366, 28198, 38313, 28199, 12930, 28200, 37803, 28201, 38155, 28202, 32826, 28203, 40249, 28204, 9664, 28205, 38066, 28206, 17620, 28207, 15778, 28208, 41767, 28209, 17912, 28210, 41131, 28211, 27346, 28212, 22668, 28213, 26823, 28214, 43581, 28215, 41768, 28216, 44028, 28217, 17829, 28218, 27555, 28219, 34056, 28220, 27014, 28221, 45284, 28222, 19148, 28223, 28224, 28224, 16850, 28225, 10850, 28226, 14188, 28227, 29298, 28228, 26967, 28229, 24789, 28230, 30770, 28231, 30771, 28232, 26968, 28233, 36529, 28234, 11843, 28235, 37870, 28236, 9473, 28237, 37114, 28238, 27500, 28239, 19001, 28240, 27884, 28241, 40750, 28242, 19576, 28243, 29565, 28244, 20127, 28245, 20246, 28246, 18180, 28247, 15045, 28248, 39709, 28249, 43070, 28250, 43533, 28251, 45971, 28252, 34207, 28253, 20829, 28254, 10500, 28255, 18743, 28256, 36016, 28257, 44278, 28258, 8475, 28259, 27699, 28260, 34120, 28261, 37009, 28262, 34026, 28263, 43902, 28264, 21735, 28265, 13462, 28266, 37158, 28267, 20683, 28268, 20692, 28269, 31896, 28270, 41569, 28271, 36034, 28272, 25632, 28273, 19262, 28274, 44820, 28275, 28275, 28276, 7876, 28277, 44103, 28278, 32221, 28279, 47724, 28280, 24882, 28281, 9927, 28282, 39445, 28283, 11510, 28284, 28787, 28285, 47999, 28286, 37548, 28287, 34121, 28288, 26679, 28289, 43679, 28290, 23441, 28291, 23252, 28292, 15016, 28293, 20378, 28294, 40909, 28295, 25755, 28296, 37871, 28297, 15597, 28298, 9092, 28299, 43680, 28300, 30180, 28301, 21222, 28302, 41891, 28303, 36069, 28304, 44836, 28305, 35618, 28306, 44837, 28307, 24671, 28308, 42299, 28309, 27113, 28310, 47822, 28311, 10588, 28312, 22707, 28313, 35872, 28314, 35690, 28315, 37462, 28316, 25457, 28317, 16251, 28318, 33211, 28319, 27742, 28320, 45763, 28321, 34212, 28322, 43103, 28323, 26347, 28324, 26534, 28325, 30374, 28326, 37811, 28327, 24440, 28328, 45285, 28329, 38631, 28330, 38797, 28331, 38160, 28332, 31170, 28333, 45511, 28334, 34127, 28335, 35281, 28336, 7271, 28337, 31527, 28338, 35137, 28339, 45115, 28340, 40707, 28341, 43354, 28342, 32681, 28343, 19180, 28344, 35282, 28345, 35659, 28346, 28595, 28347, 35678, 28348, 34128, 28349, 32884, 28350, 7258, 28351, 29371, 28352, 11260, 28353, 11152, 28354, 29388, 28355, 38266, 28356, 9572, 28357, 27593, 28358, 15960, 28359, 12987, 28360, 17522, 28361, 18830, 28362, 39101, 28363, 48000, 28364, 12815, 28365, 46989, 28366, 40536, 28367, 15373, 28368, 20937, 28369, 18426, 28370, 15905, 28371, 48109, 28372, 36175, 28373, 36279, 28374, 35402, 28375, 8495, 28376, 20771, 28377, 19018, 28378, 16953, 28379, 43419, 28380, 15800, 28381, 25633, 28382, 46965, 28383, 41892, 28384, 33809, 28385, 26681, 28386, 43686, 28387, 11512, 28388, 26187, 28389, 23697, 28390, 26230, 28391, 42215, 28392, 8934, 28393, 35898, 28394, 44570, 28395, 40690, 28396, 18358, 28397, 8496, 28398, 8782, 28399, 47015, 28400, 20554, 28401, 22864, 28402, 33992, 28403, 33645, 28404, 12788, 28405, 27404, 28406, 7536, 28407, 25919, 28408, 18283, 28409, 18121, 28410, 43958, 28411, 10035, 28412, 14596, 28413, 43823, 28414, 16957, 28415, 26684, 28416, 31675, 28417, 44311, 28418, 30009, 28419, 19830, 28420, 41465, 28421, 10244, 28422, 30443, 28423, 39020, 28424, 19831, 28425, 26013, 28426, 25770, 28427, 25637, 28428, 21161, 28429, 17040, 28430, 11809, 28431, 25822, 28432, 46757, 28433, 15607, 28434, 31219, 28435, 24138, 28436, 41788, 28437, 9609, 28438, 20777, 28439, 11748, 28440, 11516, 28441, 37132, 28442, 29182, 28443, 36278, 28444, 42426, 28445, 38966, 28446, 27405, 28447, 36076, 28448, 27893, 28449, 33646, 28450, 17347, 28451, 24672, 28452, 23663, 28453, 37464, 28454, 10742, 28455, 15654, 28456, 15020, 28457, 41070, 28458, 42601, 28459, 26704, 28460, 48144, 28461, 26789, 28462, 22519, 28463, 26467, 28464, 29594, 28465, 34662, 28466, 46051, 28467, 46021, 28468, 47747, 28469, 40936, 28470, 18678, 28471, 19229, 28472, 20391, 28473, 41578, 28474, 34772, 28475, 24913, 28476, 11979, 28477, 36372, 28478, 42127, 28479, 20489, 28480, 11810, 28481, 43757, 28482, 17932, 28483, 40691, 28484, 34663, 28485, 16671, 28486, 43689, 28487, 39896, 28488, 48258, 28489, 23316, 28490, 40937, 28491, 24797, 28492, 47016, 28493, 37878, 28494, 29877, 28495, 44613, 28496, 20784, 28497, 30187, 28498, 12562, 28499, 19043, 28500, 20962, 28501, 38553, 28502, 29260, 28503, 19611, 28504, 29312, 28505, 37884, 28506, 35318, 28507, 31040, 28508, 31041, 28509, 38838, 28510, 26048, 28511, 39120, 28512, 41396, 28513, 13914, 28514, 18753, 28515, 27711, 28516, 32997, 28517, 35306, 28518, 23862, 28519, 46373, 28520, 11811, 28521, 43135, 28522, 46304, 28523, 37552, 28524, 33592, 28525, 35940, 28526, 10248, 28527, 41336, 28528, 23261, 28529, 42386, 28530, 33751, 28531, 37071, 28532, 47420, 28533, 33039, 28534, 17762, 28535, 8545, 28536, 33514, 28537, 9946, 28538, 9947, 28539, 34591, 28540, 36895, 28541, 30309, 28542, 25149, 28543, 37885, 28544, 33308, 28545, 33288, 28546, 10602, 28547, 21485, 28548, 10603, 28549, 18490, 28550, 20614, 28551, 23883, 28552, 10343, 28553, 15681, 28554, 12060, 28555, 17977, 28556, 34934, 28557, 34670, 28558, 29599, 28559, 17256, 28560, 45121, 28561, 25590, 28562, 17978, 28563, 15295, 28564, 17533, 28565, 17647, 28566, 39463, 28567, 20397, 28568, 33515, 28569, 39121, 28570, 44739, 28571, 25923, 28572, 23595, 28573, 28936, 28574, 44337, 28575, 25200, 28576, 27512, 28577, 45449, 28578, 12503, 28579, 18688, 28580, 45536, 28581, 40301, 28582, 44632, 28583, 24308, 28584, 34397, 28585, 41198, 28586, 25348, 28587, 37680, 28588, 48037, 28589, 43835, 28590, 19057, 28591, 9551, 28592, 24802, 28593, 13079, 28594, 42501, 28595, 7614, 28596, 18594, 28597, 46377, 28598, 9950, 28599, 26716, 28600, 12407, 28601, 12462, 28602, 43192, 28603, 35475, 28604, 29884, 28605, 21918, 28606, 35754, 28607, 31543, 28608, 19441, 28609, 47916, 28610, 24700, 28611, 28991, 28612, 17003, 28613, 21248, 28614, 14873, 28615, 33298, 28616, 19612, 28617, 35411, 28618, 19058, 28619, 11208, 28620, 35769, 28621, 35075, 28622, 13335, 28623, 33299, 28624, 47518, 28625, 23552, 28626, 8945, 28627, 24701, 28628, 27354, 28629, 34153, 28630, 34675, 28631, 27419, 28632, 28939, 28633, 43704, 28634, 43705, 28635, 27136, 28636, 21257, 28637, 30611, 28638, 8581, 28639, 19876, 28640, 17483, 28641, 32845, 28642, 12035, 28643, 38387, 28644, 36187, 28645, 43498, 28646, 43499, 28647, 13832, 28648, 11653, 28649, 19281, 28650, 31700, 28651, 23701, 28652, 22350, 28653, 7298, 28654, 30347, 28655, 47927, 28656, 37894, 28657, 8946, 28658, 16451, 28659, 31055, 28660, 43706, 28661, 8947, 28662, 23395, 28663, 14787, 28664, 9576, 28665, 26941, 28666, 20428, 28667, 38010, 28668, 26482, 28669, 45362, 28670, 26207, 28671, 24494, 28672, 43967, 28673, 42134, 28674, 25935, 28675, 35044, 28676, 47057, 28677, 43712, 28678, 13628, 28679, 37764, 28680, 18899, 28681, 40322, 28682, 29342, 28683, 33963, 28684, 8804, 28685, 9960, 28686, 27928, 28687, 25523, 28688, 20187, 28689, 30397, 28690, 33312, 28691, 10614, 28692, 16457, 28693, 8957, 28694, 19305, 28695, 39678, 28696, 25874, 28697, 31608, 28698, 17382, 28699, 43715, 28700, 32720, 28701, 24539, 28702, 21425, 28703, 39934, 28704, 43716, 28705, 35436, 28706, 38021, 28707, 40333, 28708, 18515, 28709, 41248, 28710, 47432, 28711, 25659, 28712, 23562, 28713, 13840, 28714, 14528, 28715, 18253, 28716, 23563, 28717, 34550, 28718, 25455, 28719, 43718, 28720, 27304, 28721, 19901, 28722, 24812, 28723, 20435, 28724, 43723, 28725, 14933, 28726, 25174, 28727, 43267, 28728, 20202, 28729, 45031, 28730, 9976, 28731, 12327, 28732, 32471, 28733, 20318, 28734, 23625, 28735, 14529, 28736, 34787, 28737, 44788, 28738, 47945, 28739, 14996, 28740, 33835, 28741, 24026, 28742, 23626, 28743, 11825, 28744, 32101, 28745, 43854, 28746, 31060, 28747, 14443, 28748, 16685, 28749, 22235, 28750, 41972, 28751, 17550, 28752, 43726, 28753, 33041, 28754, 45373, 28755, 26247, 28756, 41957, 28757, 24238, 28758, 27360, 28759, 33630, 28760, 35909, 28761, 12533, 28762, 20748, 28763, 10073, 28764, 43733, 28765, 17554, 28766, 7741, 28767, 47487, 28768, 23685, 28769, 23641, 28770, 28315, 28771, 37562, 28772, 26255, 28773, 41360, 28774, 39579, 28775, 41975, 28776, 15733, 28777, 41980, 28778, 44730, 28779, 19223, 28780, 8764, 28781, 27583, 28782, 16700, 28783, 12706, 28784, 18839, 28785, 39839, 28786, 39840, 28787, 18840, 28788, 17820, 28789, 25253, 28790, 45460, 28791, 47677, 28792, 21549, 28793, 45749, 28794, 40205, 28795, 10820, 28796, 47857, 28797, 45275, 28798, 45276, 28799, 9538, 28800, 42014, 28801, 30731, 28802, 47149, 28803, 14850, 28804, 28959, 28805, 21458, 28806, 38183, 28807, 30300, 28808, 42958, 28809, 25845, 28810, 11435, 28811, 29694, 28812, 22422, 28813, 29360, 28814, 41621, 28815, 22423, 28816, 29425, 28817, 28052, 28818, 10261, 28819, 24992, 28820, 16877, 28821, 22552, 28822, 13892, 28823, 16702, 28824, 40380, 28825, 46884, 28826, 16703, 28827, 16704, 28828, 37936, 28829, 31248, 28830, 8762, 28831, 12178, 28832, 39216, 28833, 46510, 28834, 47452, 28835, 22662, 28836, 46132, 28837, 15196, 28838, 7684, 28839, 40219, 28840, 40220, 28841, 25448, 28842, 47831, 28843, 41118, 28844, 21856, 28845, 36010, 28846, 29474, 28847, 21462, 28848, 29447, 28849, 35825, 28850, 35826, 28851, 9010, 28852, 42084, 28853, 36825, 28854, 33536, 28855, 47552, 28856, 45757, 28857, 13017, 28858, 38051, 28859, 34195, 28860, 24778, 28861, 10832, 28862, 18808, 28863, 47247, 28864, 18092, 28865, 34847, 28866, 23694, 28867, 36732, 28868, 20670, 28869, 40884, 28870, 17793, 28871, 32274, 28872, 25041, 28873, 18650, 28874, 42030, 28875, 40641, 28876, 40642, 28877, 39525, 28878, 43387, 28879, 38421, 28880, 47250, 28881, 42190, 28882, 34327, 28883, 37787, 28884, 36860, 28885, 27585, 28886, 45281, 28887, 22425, 28888, 17824, 28889, 23876, 28890, 39224, 28891, 47456, 28892, 41094, 28893, 46513, 28894, 30233, 28895, 41552, 28896, 18924, 28897, 16711, 28898, 10324, 28899, 18855, 28900, 22571, 28901, 21868, 28902, 14489, 28903, 33686, 28904, 42453, 28905, 18989, 28907, 36144, 28908, 21201, 28909, 32524, 28910, 25042, 28911, 38752, 28912, 15228, 28913, 21466, 28914, 40236, 28915, 30371, 28916, 36738, 28917, 47869, 28918, 36801, 28919, 37583, 28920, 17138, 28921, 29586, 28922, 23764, 28923, 41864, 28924, 40894, 28925, 14961, 28926, 10842, 28927, 32664, 28928, 18168, 28929, 38753, 28930, 34512, 28931, 17715, 28932, 41259, 28933, 22941, 28934, 21961, 28935, 39869, 28936, 38754, 28937, 41562, 28938, 17322, 28939, 47742, 28940, 22318, 28941, 12919, 28942, 40237, 28943, 19559, 28944, 38615, 28945, 41563, 28946, 26143, 28947, 17238, 28948, 41872, 28949, 18655, 28950, 27089, 28951, 21727, 28952, 12638, 28953, 8152, 28954, 14863, 28955, 25215, 28956, 23304, 28957, 19177, 28958, 37236, 28959, 38770, 28960, 12013, 28961, 38472, 28962, 17830, 28963, 10266, 28964, 15368, 28965, 38367, 28966, 20596, 28967, 11739, 28968, 15046, 28969, 30129, 28970, 31735, 28971, 33010, 28972, 38771, 28973, 31736, 28974, 40443, 28975, 10223, 28976, 41881, 28977, 41882, 28978, 43072, 28979, 22140, 28980, 44550, 28981, 15782, 28982, 32415, 28983, 29783, 28984, 40617, 28985, 15783, 28986, 34027, 28987, 10201, 28988, 33692, 28989, 40609, 28990, 28656, 28991, 16061, 28992, 38151, 28993, 10425, 28994, 17719, 28995, 23231, 28996, 47198, 28997, 13755, 28998, 39194, 28999, 18872, 29000, 15047, 29001, 24794, 29002, 41012, 29003, 40478, 29004, 18749, 29005, 20693, 29006, 20139, 29007, 8497, 29008, 43587, 29009, 47511, 29010, 37974, 29011, 37116, 29012, 33548, 29013, 38816, 29014, 29097, 29015, 29098, 29016, 9933, 29017, 41573, 29018, 21469, 29019, 21479, 29020, 44571, 29021, 27048, 29022, 33378, 29023, 38074, 29024, 45693, 29025, 21215, 29026, 31747, 29027, 32780, 29028, 26975, 29029, 18673, 29030, 40923, 29031, 46145, 29032, 37812, 29033, 14500, 29034, 31904, 29035, 35466, 29036, 42050, 29037, 25062, 29038, 47510, 29039, 20834, 29040, 45476, 29041, 16512, 29042, 7971, 29043, 18189, 29044, 45070, 29045, 28278, 29046, 34365, 29047, 24892, 29048, 8645, 29049, 16309, 29050, 37219, 29051, 36077, 29052, 10269, 29053, 33508, 29054, 14300, 29055, 9184, 29056, 18817, 29057, 40136, 29058, 39108, 29059, 38638, 29060, 38817, 29061, 45186, 29062, 17661, 29063, 17722, 29064, 38818, 29065, 45119, 29066, 40607, 29067, 28188, 29068, 33551, 29069, 31748, 29070, 42346, 29071, 41263, 29072, 27406, 29073, 24679, 29074, 43690, 29075, 38546, 29076, 32689, 29077, 16162, 29078, 41899, 29079, 31250, 29080, 25458, 29081, 38819, 29082, 8519, 29083, 8788, 29084, 11758, 29085, 26029, 29086, 20155, 29087, 34565, 29088, 43158, 29089, 25776, 29090, 29624, 29091, 35408, 29092, 43159, 29093, 36265, 29094, 22175, 29095, 48185, 29096, 45188, 29097, 18362, 29098, 42765, 29099, 47034, 29100, 7544, 29101, 38086, 29102, 25570, 29103, 17357, 29104, 29188, 29105, 32526, 29106, 21483, 29107, 26712, 29108, 23320, 29109, 33650, 29110, 11943, 29111, 45609, 29112, 20171, 29113, 38859, 29114, 38860, 29115, 38861, 29116, 43160, 29117, 40040, 29118, 10889, 29119, 18761, 29120, 10047, 29121, 42480, 29122, 35946, 29123, 32423, 29124, 41919, 29125, 41343, 29126, 31291, 29127, 22346, 29128, 12714, 29129, 13916, 29130, 33907, 29131, 20621, 29132, 14878, 29133, 34943, 29134, 24930, 29135, 44634, 29136, 25157, 29137, 36902, 29138, 33704, 29139, 14879, 29140, 14511, 29141, 41920, 29142, 41344, 29143, 23698, 29144, 27022, 29145, 36148, 29146, 43196, 29147, 21486, 29148, 27096, 29149, 21435, 29150, 20722, 29151, 43700, 29152, 44635, 29153, 43216, 29154, 41199, 29155, 23605, 29156, 35875, 29157, 45483, 29158, 9555, 29159, 35487, 29160, 38877, 29161, 32358, 29162, 48228, 29163, 24711, 29164, 18956, 29165, 47476, 29166, 40312, 29167, 25360, 29168, 37830, 29169, 43217, 29170, 40159, 29171, 46164, 29172, 19074, 29173, 12211, 29174, 28995, 29175, 23606, 29176, 32851, 29177, 39555, 29178, 17743, 29179, 41278, 29180, 21261, 29181, 11086, 29182, 12661, 29183, 42360, 29184, 17744, 29185, 23702, 29186, 8809, 29187, 32715, 29188, 24519, 29189, 27935, 29190, 8071, 29191, 33021, 29192, 26210, 29193, 23466, 29194, 7522, 29195, 41284, 29196, 23138, 29197, 34876, 29198, 24953, 29199, 24558, 29200, 25883, 29201, 22218, 29202, 24986, 29203, 41952, 29204, 38920, 29205, 40334, 29206, 25670, 29207, 42524, 29208, 9485, 29209, 32490, 29210, 45036, 29211, 23707, 29212, 11829, 29213, 22236, 29214, 10986, 29215, 16686, 29216, 21953, 29217, 10360, 29218, 27316, 29219, 36140, 29220, 23712, 29221, 47490, 29222, 23689, 29223, 25414, 29224, 11952, 29225, 44733, 29226, 46112, 29227, 46114, 29228, 29255, 29229, 46503, 29230, 29448, 29231, 10488, 29232, 44804, 29233, 7314, 29234, 38068, 29235, 17394, 29236, 22176, 29237, 22201, 29238, 15399, 29239, 42394, 29240, 7714, 29241, 13186, 29242, 42401, 29243, 42176, 29244, 48361, 29245, 34768, 29246, 14366, 29247, 29319, 29248, 11399, 29249, 22598, 29250, 45386, 29251, 13242, 29252, 31181, 29253, 43827, 29254, 31227, 29255, 29952, 29256, 7847, 29257, 29364, 29258, 10234, 29259, 20128, 29260, 29278, 29261, 13606, 29262, 11386, 29263, 44301, 29264, 45694, 29265, 8646, 29266, 13243, 29267, 7922, 29268, 9185, 29269, 11389, 29270, 44118, 29271, 44119, 29272, 13633, 29273, 41443, 29274, 10501, 29275, 28944, 29276, 28945, 29277, 30076, 29278, 21499, 29279, 27962, 29280, 35668, 29281, 28013, 29282, 23799, 29283, 32584, 29284, 26727, 29285, 14615, 29286, 26815, 29287, 28053, 29288, 15745, 29289, 38594, 29290, 41855, 29291, 15885, 29292, 8123, 29293, 35002, 29294, 20353, 29295, 16393, 29296, 44153, 29297, 15890, 29298, 34016, 29299, 28020, 29300, 12873, 29301, 30914, 29302, 32289, 29303, 32203, 29304, 48130, 29305, 36251, 29306, 38729, 29307, 26757, 29308, 22769, 29309, 30927, 29310, 38536, 29311, 16481, 29312, 38772, 29313, 24123, 29314, 24134, 29315, 30294, 29316, 19391, 29317, 15762, 29318, 46736, 29319, 8203, 29320, 32222, 29321, 11511, 29322, 13607, 29323, 21884, 29324, 19978, 29325, 20129, 29326, 14974, 29327, 29914, 29328, 22619, 29329, 21740, 29330, 22581, 29331, 11167, 29332, 39110, 29333, 8168, 29334, 26468, 29335, 21073, 29336, 26513, 29337, 33130, 29338, 38087, 29339, 26839, 29340, 13870, 29341, 36903, 29342, 31331, 29343, 20559, 29344, 38878, 29345, 24520, 29346, 13634, 29347, 25098, 29348, 29286, 29349, 29973, 29350, 9247, 29351, 38921, 29352, 11028, 29353, 37914, 29354, 23223, 29355, 11030, 29356, 32270, 29357, 32269, 29358, 7676, 29359, 14557, 29360, 31839, 29361, 19687, 29362, 9859, 29363, 47856, 29364, 7444, 29365, 15879, 29366, 47736, 29367, 16727, 29368, 26546, 29369, 43991, 29370, 22551, 29371, 9121, 29372, 18041, 29373, 41498, 29374, 43382, 29375, 18536, 29376, 47738, 29377, 45133, 29378, 23090, 29379, 28955, 29380, 12800, 29381, 23091, 29382, 47209, 29383, 28050, 29384, 8114, 29385, 29695, 29386, 21714, 29387, 42659, 29388, 34009, 29389, 29446, 29390, 39211, 29391, 37340, 29392, 18152, 29393, 25262, 29394, 14745, 29395, 29758, 29396, 28529, 29397, 42280, 29398, 44143, 29399, 16267, 29400, 41223, 29401, 21635, 29402, 12427, 29403, 9126, 29404, 22926, 29405, 39514, 29406, 28888, 29407, 18569, 29408, 17775, 29409, 20665, 29410, 17597, 29411, 46133, 29412, 19540, 29413, 41371, 29414, 33486, 29415, 35712, 29416, 32655, 29417, 34451, 29418, 36853, 29419, 23851, 29420, 13595, 29421, 39218, 29422, 34112, 29423, 23010, 29424, 46511, 29425, 44500, 29426, 35530, 29427, 44250, 29428, 8442, 29429, 26756, 29430, 38730, 29431, 22011, 29432, 24112, 29433, 39225, 29434, 43399, 29435, 35366, 29436, 23724, 29437, 8135, 29438, 46911, 29439, 41626, 29440, 33362, 29441, 24391, 29442, 17313, 29443, 39526, 29444, 21293, 29445, 29276, 29446, 14678, 29447, 39870, 29448, 7787, 29449, 30535, 29450, 28490, 29451, 8774, 29452, 43534, 29453, 23508, 29454, 25051, 29455, 20116, 29456, 31162, 29457, 23300, 29458, 41883, 29459, 17072, 29460, 48241, 29461, 27260, 29462, 10112, 29463, 42585, 29464, 46931, 29465, 46523, 29466, 41461, 29467, 27201, 29468, 9418, 29469, 11880, 29470, 33754, 29471, 25052, 29472, 13023, 29473, 26360, 29474, 18181, 29475, 48168, 29476, 16887, 29477, 37963, 29478, 14969, 29479, 38315, 29480, 44821, 29481, 40473, 29482, 47402, 29483, 26807, 29484, 38069, 29485, 11331, 29486, 39629, 29487, 37115, 29488, 41527, 29489, 28341, 29490, 40065, 29491, 19971, 29492, 18006, 29493, 8642, 29494, 44029, 29495, 44036, 29496, 26969, 29497, 9789, 29498, 42216, 29499, 35535, 29500, 9173, 29501, 27743, 29502, 18427, 29503, 44838, 29504, 35138, 29505, 26556, 29506, 44839, 29507, 12248, 29508, 44588, 29509, 34129, 29510, 17463, 29511, 31171, 29512, 43104, 29513, 46357, 29514, 9573, 29515, 17474, 29516, 26705, 29517, 21411, 29518, 20524, 29519, 27894, 29520, 46022, 29521, 9937, 29522, 7545, 29523, 7537, 29524, 17467, 29525, 11966, 29526, 8233, 29527, 22177, 29528, 8546, 29529, 8522, 29530, 18754, 29531, 30340, 29532, 25150, 29533, 40949, 29534, 36896, 29535, 42350, 29536, 24926, 29537, 34863, 29538, 39908, 29539, 34471, 29540, 13866, 29541, 20788, 29542, 15973, 29543, 22045, 29544, 13616, 29545, 19059, 29546, 23028, 29547, 39548, 29548, 40302, 29549, 35696, 29550, 39551, 29551, 41273, 29552, 28911, 29553, 8654, 29554, 19283, 29555, 29042, 29556, 27213, 29557, 25093, 29558, 28399, 29559, 16730, 29560, 34476, 29561, 25875, 29562, 35701, 29563, 39684, 29564, 27305, 29565, 32472, 29566, 18549, 29567, 28404, 29568, 26389, 29569, 39568, 29570, 30653, 29571, 22245, 29572, 41054, 29573, 27569, 29574, 47979, 29575, 26179, 29576, 25854, 29577, 44478, 29578, 35237, 29579, 37714, 29580, 31840, 29581, 15546, 29582, 13310, 29583, 23906, 29584, 7638, 29585, 19347, 29586, 17872, 29587, 12899, 29588, 11367, 29589, 15623, 29590, 21550, 29591, 44222, 29592, 30675, 29593, 44223, 29594, 10194, 29595, 26529, 29596, 17878, 29597, 38525, 29598, 15091, 29599, 38184, 29600, 21051, 29601, 41452, 29602, 8923, 29603, 8713, 29604, 7929, 29605, 44966, 29606, 22094, 29607, 27067, 29608, 22095, 29609, 37577, 29610, 20104, 29611, 26949, 29612, 12391, 29613, 30047, 29614, 37937, 29615, 18562, 29616, 39590, 29617, 31160, 29618, 25270, 29619, 12280, 29620, 42985, 29621, 7418, 29622, 30113, 29623, 13048, 29624, 15197, 29625, 41058, 29626, 39002, 29627, 9076, 29628, 11673, 29629, 16271, 29630, 20053, 29631, 33717, 29632, 30230, 29633, 11616, 29634, 22599, 29635, 32449, 29636, 34017, 29637, 33861, 29638, 42685, 29639, 48362, 29640, 19953, 29641, 27639, 29642, 33487, 29643, 25560, 29644, 8433, 29645, 46326, 29646, 46327, 29647, 22099, 29648, 14444, 29649, 25618, 29650, 21110, 29651, 20760, 29652, 20362, 29653, 24392, 29654, 16739, 29655, 39341, 29656, 47251, 29657, 16198, 29658, 41554, 29659, 40699, 29660, 42032, 29661, 40827, 29662, 26452, 29663, 35249, 29664, 47400, 29665, 31510, 29666, 43400, 29667, 41313, 29668, 8003, 29669, 14360, 29670, 39802, 29671, 42191, 29672, 39226, 29673, 17412, 29674, 16760, 29675, 10926, 29676, 40886, 29677, 7812, 29678, 29545, 29679, 23854, 29680, 12497, 29681, 43575, 29682, 18856, 29683, 38191, 29684, 14080, 29685, 10562, 29686, 12920, 29687, 38539, 29688, 38469, 29689, 10558, 29690, 22319, 29691, 26960, 29692, 8143, 29693, 36802, 29694, 39616, 29695, 11245, 29696, 17239, 29697, 41066, 29698, 41637, 29699, 31885, 29700, 41126, 29701, 23732, 29702, 24293, 29703, 40703, 29704, 15229, 29705, 25470, 29706, 41454, 29707, 38755, 29708, 25292, 29709, 24124, 29710, 21211, 29711, 24753, 29712, 35604, 29713, 35605, 29714, 14963, 29715, 37584, 29716, 13058, 29717, 30051, 29718, 45913, 29719, 33275, 29720, 27653, 29721, 44551, 29722, 21662, 29723, 10370, 29724, 23514, 29725, 27654, 29726, 34081, 29727, 37872, 29728, 36574, 29729, 11252, 29730, 48512, 29731, 8278, 29732, 10492, 29733, 18280, 29734, 30551, 29735, 14207, 29736, 23305, 29737, 10117, 29738, 30552, 29739, 8279, 29740, 37623, 29741, 25989, 29742, 11805, 29743, 16635, 29744, 41770, 29745, 13115, 29746, 8153, 29747, 25137, 29748, 31517, 29749, 29784, 29750, 29257, 29751, 32320, 29752, 47888, 29753, 31518, 29754, 14446, 29755, 21115, 29756, 31737, 29757, 13667, 29758, 21070, 29759, 19151, 29760, 44440, 29761, 26917, 29762, 26977, 29763, 11480, 29764, 41013, 29765, 36359, 29766, 40479, 29767, 12305, 29768, 32781, 29769, 27658, 29770, 20140, 29771, 37975, 29772, 32918, 29773, 18674, 29774, 40128, 29775, 11333, 29776, 20264, 29777, 47685, 29778, 10202, 29779, 24796, 29780, 32229, 29781, 39246, 29782, 13756, 29783, 44916, 29784, 41462, 29785, 28385, 29786, 18190, 29787, 43588, 29788, 44303, 29789, 18751, 29790, 32973, 29791, 33277, 29792, 25492, 29793, 34135, 29794, 32691, 29795, 35622, 29796, 42226, 29797, 38161, 29798, 38547, 29799, 46367, 29800, 21230, 29801, 43692, 29802, 26537, 29803, 36177, 29804, 25495, 29805, 36079, 29806, 24453, 29807, 23735, 29808, 16779, 29809, 46473, 29810, 31182, 29811, 12078, 29812, 22165, 29813, 46121, 29814, 42227, 29815, 7333, 29816, 8939, 29817, 34533, 29818, 10158, 29819, 23321, 29820, 47650, 29821, 11759, 29822, 21169, 29823, 42610, 29824, 11982, 29825, 11760, 29826, 30591, 29827, 24166, 29828, 21358, 29829, 35626, 29830, 31916, 29831, 41073, 29832, 7546, 29833, 24760, 29834, 27076, 29835, 46029, 29836, 43438, 29837, 42481, 29838, 43608, 29839, 38096, 29840, 26061, 29841, 38489, 29842, 12715, 29843, 40709, 29844, 45611, 29845, 41346, 29846, 32063, 29847, 12576, 29848, 25158, 29849, 24931, 29850, 31766, 29851, 35332, 29852, 18762, 29853, 16793, 29854, 30344, 29855, 21361, 29856, 14512, 29857, 21242, 29858, 25506, 29859, 19442, 29860, 19060, 29861, 21362, 29862, 7352, 29863, 8596, 29864, 9556, 29865, 32081, 29866, 45453, 29867, 12507, 29868, 20726, 29869, 16980, 29870, 36002, 29871, 19075, 29872, 18601, 29873, 33310, 29874, 35488, 29875, 36550, 29876, 11212, 29877, 44348, 29878, 21262, 29879, 25876, 29880, 8953, 29881, 34572, 29882, 38258, 29883, 48435, 29884, 23613, 29885, 39038, 29886, 48052, 29887, 41081, 29888, 32933, 29889, 38388, 29890, 15613, 29891, 23952, 29892, 13635, 29893, 24542, 29894, 47106, 29895, 32793, 29896, 24226, 29897, 45366, 29898, 31776, 29899, 36480, 29900, 16805, 29901, 35429, 29902, 23472, 29903, 25671, 29904, 25884, 29905, 24561, 29906, 45369, 29907, 23708, 29908, 43644, 29909, 27314, 29910, 39730, 29911, 31785, 29912, 16687, 29913, 12672, 29914, 45376, 29915, 18621, 29916, 16497, 29917, 9127, 29918, 13212, 29919, 9142, 29920, 18337, 29921, 46744, 29922, 29982, 29923, 7887, 29924, 32476, 29925, 24622, 29926, 37482, 29928, 39738, 29929, 30903, 29930, 7848, 29931, 29562, 29932, 14647, 29933, 12392, 29934, 38299, 29935, 29176, 29938, 37513, 29939, 18154, 29940, 25271, 29941, 42686, 29942, 30119, 29943, 11627, 29944, 7769, 29945, 21962, 29946, 10146, 29947, 10659, 29949, 12554, 29950, 27205, 29951, 9368, 29952, 47780, 29953, 30131, 29954, 8647, 29955, 47354, 29956, 46358, 29958, 11639, 29959, 43598, 29960, 30784, 29961, 39457, 29962, 25808, 29963, 12959, 29964, 29190, 29965, 27121, 29966, 47651, 29967, 8302, 29968, 25224, 29969, 45626, 29970, 38563, 29971, 29888, 29972, 12374, 29973, 38303, 29974, 43625, 29975, 41826, 29976, 15615, 29977, 12269, 29978, 33924, 29979, 36526, 29980, 36527, 29981, 17249, 29982, 10150, 29983, 33999, 29984, 31643, 29985, 33868, 29986, 10018, 29987, 10019, 29988, 32945, 29989, 34028, 29990, 35213, 29991, 33899, 29992, 43927, 29993, 34712, 29994, 25953, 29995, 15346, 29996, 43880, 29997, 8271, 29998, 15043, 29999, 28896, 30000, 36511, 30001, 43984, 30002, 20049, 30003, 33842, 30004, 45677, 30005, 13038, 30006, 15161, 30007, 28238, 30008, 12978, 30009, 30080, 30010, 36728, 30011, 18461, 30012, 36794, 30013, 46445, 30014, 45277, 30015, 27102, 30016, 8422, 30017, 8423, 30018, 25579, 30019, 41297, 30020, 25464, 30021, 10195, 30022, 28021, 30023, 45095, 30024, 14573, 30025, 15198, 30026, 16051, 30027, 36519, 30028, 21053, 30029, 21054, 30030, 32273, 30031, 38052, 30032, 15199, 30033, 36520, 30034, 28022, 30035, 13925, 30036, 29366, 30037, 20475, 30038, 37453, 30039, 12184, 30040, 28246, 30041, 25468, 30042, 8212, 30043, 46404, 30044, 11240, 30045, 28024, 30046, 28025, 30047, 9655, 30048, 36523, 30049, 15562, 30050, 8443, 30051, 12189, 30052, 46932, 30053, 26280, 30054, 30536, 30055, 26281, 30056, 29309, 30057, 42586, 30058, 14455, 30059, 18471, 30060, 33757, 30061, 44279, 30062, 28029, 30063, 22325, 30064, 43037, 30065, 25474, 30066, 33758, 30067, 13232, 30068, 11049, 30069, 18474, 30070, 12501, 30071, 47784, 30072, 19402, 30073, 37628, 30074, 20483, 30075, 10593, 30076, 10206, 30077, 37283, 30078, 23936, 30079, 19426, 30080, 9763, 30081, 25507, 30082, 13262, 30083, 37154, 30084, 25228, 30085, 20502, 30086, 20504, 30087, 11090, 30088, 29898, 30089, 13278, 30090, 13283, 30091, 29826, 30092, 20883, 30093, 12431, 30094, 34518, 30095, 34519, 30096, 47017, 30097, 42755, 30098, 28415, 30099, 28199, 30100, 13311, 30101, 8359, 30102, 20811, 30103, 24898, 30104, 15746, 30105, 15886, 30106, 21571, 30107, 47310, 30108, 39293, 30109, 33569, 30110, 40728, 30111, 29101, 30112, 24357, 30113, 42019, 30114, 10463, 30115, 44006, 30116, 7652, 30117, 21055, 30118, 22100, 30119, 30508, 30120, 39184, 30121, 11997, 30122, 8434, 30123, 42986, 30124, 24370, 30125, 48238, 30126, 11383, 30127, 14949, 30128, 47560, 30129, 29475, 30130, 29767, 30131, 15638, 30132, 22604, 30133, 11597, 30134, 41167, 30135, 46659, 30136, 12397, 30137, 46405, 30138, 14414, 30139, 46821, 30140, 36272, 30141, 21641, 30142, 19546, 30143, 14753, 30144, 21642, 30145, 33490, 30146, 19957, 30147, 41061, 30148, 45759, 30149, 9046, 30150, 28768, 30151, 46596, 30152, 43808, 30153, 21388, 30154, 32213, 30155, 36273, 30156, 36827, 30157, 42716, 30158, 20816, 30159, 37951, 30160, 18928, 30161, 35891, 30162, 42087, 30163, 10843, 30164, 46933, 30165, 17770, 30166, 41480, 30167, 27043, 30168, 13541, 30169, 21403, 30170, 39874, 30171, 36933, 30172, 37010, 30173, 26762, 30174, 29839, 30175, 39875, 30176, 35367, 30177, 15114, 30178, 24423, 30179, 46970, 30180, 12094, 30181, 13950, 30182, 38622, 30183, 33374, 30184, 23811, 30185, 34461, 30186, 18665, 30187, 39446, 30188, 43106, 30189, 8260, 30190, 46076, 30191, 16637, 30192, 35928, 30193, 14768, 30194, 26509, 30195, 25139, 30196, 10670, 30197, 19813, 30198, 36580, 30199, 7394, 30200, 10859, 30201, 8499, 30202, 8500, 30203, 27659, 30204, 16485, 30205, 13784, 30206, 14067, 30207, 37976, 30208, 44201, 30209, 12016, 30210, 41482, 30211, 47465, 30212, 11886, 30213, 12360, 30214, 33985, 30215, 47200, 30216, 10869, 30217, 44589, 30218, 18018, 30219, 14977, 30220, 23449, 30221, 42055, 30222, 10430, 30223, 37060, 30224, 44441, 30225, 16999, 30226, 38196, 30227, 18680, 30228, 22949, 30229, 20070, 30230, 43358, 30231, 43137, 30232, 25823, 30233, 33249, 30234, 22178, 30235, 10879, 30236, 38842, 30237, 16611, 30238, 43161, 30239, 38164, 30240, 19614, 30241, 11390, 30242, 7825, 30243, 19030, 30244, 25496, 30245, 9882, 30246, 34466, 30247, 29107, 30248, 12992, 30249, 12241, 30250, 8911, 30251, 35902, 30252, 46083, 30253, 8790, 30254, 33996, 30255, 11903, 30256, 26425, 30257, 43197, 30258, 48250, 30259, 11023, 30260, 46084, 30261, 45832, 30262, 35209, 30263, 33301, 30264, 32307, 30265, 13174, 30266, 25828, 30267, 25829, 30268, 27912, 30269, 31544, 30270, 43495, 30271, 43758, 30272, 18769, 30273, 15319, 30274, 24936, 30275, 25645, 30276, 31333, 30277, 25514, 30278, 23828, 30279, 39482, 30280, 14783, 30281, 12375, 30282, 43549, 30283, 17737, 30284, 7280, 30285, 7835, 30286, 39483, 30287, 16615, 30288, 16922, 30289, 29016, 30290, 44667, 30291, 37899, 30292, 43232, 30293, 43844, 30294, 29852, 30295, 24015, 30296, 24499, 30297, 34599, 30298, 12481, 30299, 25204, 30300, 13084, 30301, 25205, 30302, 23559, 30303, 8912, 30304, 19894, 30305, 10693, 30306, 42106, 30307, 41106, 30308, 20846, 30309, 46568, 30310, 26943, 30311, 24576, 30312, 19321, 30313, 23569, 30314, 19488, 30315, 13005, 30316, 41108, 30317, 43777, 30318, 43511, 30319, 32111, 30320, 43862, 30321, 35910, 30322, 13011, 30323, 26438, 30324, 26261, 30325, 26265, 30326, 9067, 30327, 9074, 30328, 16832, 30329, 7685, 30330, 14402, 30331, 12707, 30332, 14404, 30333, 7757, 30334, 7764, 30335, 31398, 30336, 19524, 30337, 45461, 30338, 45462, 30339, 26875, 30340, 12700, 30341, 29242, 30342, 20812, 30343, 18730, 30344, 16754, 30345, 11674, 30346, 25277, 30347, 15790, 30348, 27863, 30349, 19542, 30350, 20674, 30351, 29666, 30352, 15794, 30353, 7269, 30354, 14085, 30355, 17519, 30356, 17331, 30357, 8476, 30358, 37624, 30359, 11055, 30360, 31123, 30361, 38801, 30362, 7278, 30363, 39997, 30364, 17534, 30365, 18834, 30366, 17535, 30367, 45539, 30368, 11990, 30369, 17542, 30370, 40002, 30371, 42489, 30372, 30201, 30373, 17545, 30374, 20729, 30375, 7360, 30376, 40502, 30377, 18838, 30378, 24562, 30379, 30000, 30380, 17697, 30381, 20802, 30382, 29747, 30383, 15670, 30384, 29476, 30385, 47343, 30386, 22285, 30387, 31897, 30388, 12056, 30389, 32331, 30390, 45656, 30391, 16434, 30392, 22289, 30393, 22290, 30394, 47363, 30395, 45664, 30396, 16452, 30397, 46110, 30398, 13638, 30399, 27679, 30400, 30676, 30401, 43665, 30402, 44227, 30403, 8081, 30404, 46095, 30405, 47155, 30406, 29563, 30407, 17598, 30408, 43668, 30409, 17609, 30410, 43014, 30411, 9080, 30412, 37604, 30413, 17610, 30414, 7506, 30415, 45907, 30416, 41632, 30417, 20112, 30418, 17622, 30419, 44197, 30420, 23155, 30421, 14581, 30422, 15595, 30423, 12639, 30424, 29322, 30425, 15370, 30426, 31898, 30427, 34074, 30428, 12642, 30429, 25999, 30430, 45917, 30431, 27114, 30432, 24167, 30433, 21162, 30434, 40939, 30435, 20149, 30436, 29332, 30437, 16677, 30438, 7405, 30439, 25863, 30440, 40847, 30441, 47290, 30442, 12577, 30443, 7409, 30444, 16458, 30445, 24563, 30446, 28046, 30447, 13312, 30448, 15705, 30449, 40730, 30450, 26743, 30451, 37773, 30452, 46719, 30453, 30732, 30454, 44883, 30455, 36521, 30456, 39701, 30457, 13883, 30458, 40381, 30459, 39074, 30460, 29365, 30461, 14950, 30462, 13893, 30463, 27640, 30464, 27730, 30465, 34049, 30466, 34321, 30467, 45096, 30468, 27488, 30469, 29308, 30470, 14649, 30471, 27551, 30472, 12341, 30473, 26953, 30474, 26885, 30475, 22489, 30476, 39598, 30477, 22834, 30478, 34330, 30479, 41992, 30480, 46514, 30481, 42286, 30482, 33869, 30483, 19244, 30484, 12233, 30485, 46406, 30486, 23118, 30487, 21643, 30488, 33974, 30489, 42705, 30490, 34050, 30491, 27039, 30492, 27865, 30493, 47562, 30494, 46334, 30495, 46335, 30496, 27447, 30497, 34331, 30498, 44748, 30499, 13213, 30500, 28581, 30501, 48133, 30502, 48134, 30503, 10264, 30504, 45724, 30505, 41120, 30506, 9014, 30507, 27341, 30508, 25621, 30509, 35399, 30510, 36864, 30511, 27248, 30512, 13301, 30513, 12921, 30514, 28421, 30515, 27735, 30516, 41127, 30517, 10660, 30518, 23122, 30519, 22018, 30520, 27970, 30521, 46461, 30522, 36682, 30523, 42036, 30524, 41752, 30525, 27874, 30526, 47218, 30527, 27866, 30528, 46314, 30529, 46524, 30530, 26970, 30531, 35571, 30532, 33746, 30533, 17333, 30534, 18666, 30535, 12931, 30536, 10634, 30537, 12095, 30538, 22023, 30539, 14086, 30540, 26680, 30541, 39624, 30542, 38774, 30543, 23362, 30544, 23545, 30545, 20253, 30546, 33550, 30547, 36581, 30548, 16976, 30549, 37629, 30550, 24100, 30551, 34366, 30552, 31749, 30553, 25063, 30554, 41463, 30555, 21303, 30556, 46539, 30557, 24142, 30558, 23546, 30559, 35467, 30560, 22031, 30561, 34813, 30562, 35403, 30563, 13584, 30564, 8501, 30565, 29874, 30566, 28075, 30567, 19136, 30568, 28596, 30569, 26000, 30570, 43108, 30571, 20938, 30572, 9447, 30573, 47318, 30574, 44313, 30575, 19137, 30576, 26557, 30577, 39304, 30578, 40545, 30579, 18882, 30580, 16979, 30581, 45288, 30582, 11541, 30583, 20141, 30584, 27049, 30585, 13673, 30586, 18019, 30587, 41017, 30588, 36609, 30589, 23199, 30590, 15802, 30591, 32976, 30592, 26921, 30593, 40940, 30594, 14430, 30595, 38376, 30596, 27541, 30597, 11113, 30598, 23257, 30599, 27249, 30600, 38291, 30601, 22869, 30602, 12568, 30603, 10383, 30604, 22633, 30605, 35194, 30606, 39199, 30607, 31757, 30608, 27913, 30609, 27750, 30610, 26642, 30611, 34815, 30612, 45540, 30613, 46085, 30614, 43198, 30615, 13125, 30616, 22839, 30617, 27914, 30618, 34837, 30619, 11769, 30620, 25745, 30621, 10680, 30622, 26645, 30623, 29994, 30624, 10518, 30625, 16864, 30626, 27127, 30627, 37684, 30628, 32988, 30629, 30023, 30630, 38880, 30631, 31335, 30632, 30348, 30633, 47521, 30634, 12747, 30635, 33960, 30636, 34839, 30637, 24981, 30638, 10357, 30639, 39484, 30640, 22496, 30641, 42490, 30642, 40966, 30643, 36906, 30644, 27984, 30645, 25161, 30646, 16915, 30647, 20419, 30648, 42519, 30649, 7361, 30650, 19086, 30651, 45880, 30652, 20299, 30653, 16459, 30654, 46168, 30655, 32087, 30656, 26995, 30657, 11117, 30658, 33256, 30659, 28930, 30660, 41281, 30661, 42367, 30662, 19297, 30663, 27154, 30664, 27468, 30665, 30060, 30666, 27469, 30667, 24019, 30668, 23139, 30669, 22229, 30670, 41041, 30671, 27472, 30672, 19322, 30673, 25890, 30674, 27169, 30675, 25673, 30676, 16689, 30677, 26693, 30678, 39045, 30679, 11292, 30680, 36142, 30681, 22501, 30682, 47530, 30683, 26811, 30684, 21103, 30685, 21111, 30686, 44552, 30687, 34857, 30688, 45513, 30689, 22252, 30690, 34241, 30691, 42827, 30692, 33934, 30693, 46638, 30694, 17996, 30695, 33937, 30696, 43738, 30697, 21803, 30698, 47259, 30699, 20676, 30700, 12096, 30701, 13740, 30702, 7290, 30703, 20728, 30704, 45613, 30705, 44944, 30706, 7734, 30707, 34174, 30708, 13346, 30709, 30724, 30710, 19352, 30711, 48087, 30712, 15631, 30713, 38595, 30714, 46192, 30715, 22890, 30716, 15747, 30717, 39061, 30718, 14484, 30719, 23114, 30720, 12546, 30721, 26530, 30722, 33357, 30723, 12342, 30724, 22102, 30725, 24371, 30726, 15097, 30727, 27641, 30728, 14121, 30729, 19240, 30730, 22507, 30731, 46817, 30732, 30741, 30733, 22457, 30734, 21056, 30735, 8925, 30736, 14146, 30737, 41507, 30738, 29701, 30739, 46194, 30740, 41628, 30741, 35450, 30742, 47643, 30743, 10294, 30744, 13894, 30745, 37490, 30746, 41860, 30747, 21104, 30748, 14951, 30749, 14421, 30750, 27867, 30751, 45725, 30752, 21644, 30753, 44509, 30754, 22605, 30755, 37353, 30756, 37354, 30757, 12875, 30758, 45825, 30759, 46336, 30760, 14160, 30761, 15214, 30762, 28027, 30763, 47563, 30764, 23427, 30765, 8639, 30766, 29064, 30767, 30085, 30768, 29581, 30769, 25278, 30770, 29477, 30771, 23910, 30772, 30235, 30773, 9081, 30774, 30236, 30775, 33870, 30776, 45243, 30777, 7315, 30778, 24393, 30779, 25622, 30780, 36862, 30781, 43933, 30782, 24394, 30783, 23119, 30784, 11198, 30785, 22768, 30786, 32215, 30787, 47404, 30788, 23074, 30789, 16768, 30790, 14170, 30791, 28338, 30792, 30869, 30793, 25980, 30794, 37952, 30795, 7316, 30796, 16025, 30797, 39617, 30798, 40528, 30799, 41638, 30800, 13460, 30801, 29587, 30802, 38757, 30803, 23856, 30804, 17905, 30805, 34855, 30806, 39228, 30807, 31259, 30808, 31707, 30809, 37863, 30810, 31314, 30811, 43038, 30812, 22772, 30813, 39877, 30814, 32325, 30815, 10082, 30816, 23737, 30817, 17832, 30818, 44280, 30819, 39878, 30820, 39239, 30821, 26785, 30822, 26458, 30823, 43903, 30824, 10299, 30825, 10334, 30826, 38368, 30827, 25476, 30828, 43784, 30829, 26759, 30830, 32326, 30831, 41884, 30832, 33375, 30833, 23343, 30834, 44553, 30835, 10852, 30836, 18400, 30837, 25912, 30838, 10449, 30839, 20254, 30840, 29106, 30841, 35067, 30842, 47894, 30843, 22776, 30844, 29618, 30845, 41574, 30846, 47785, 30847, 22804, 30848, 10564, 30849, 30560, 30850, 48242, 30851, 31690, 30852, 25140, 30853, 22288, 30854, 9097, 30855, 13359, 30856, 27660, 30857, 13117, 30858, 20142, 30859, 17721, 30860, 26001, 30861, 7325, 30862, 35468, 30863, 32333, 30864, 24086, 30865, 8095, 30866, 43421, 30867, 13818, 30868, 38542, 30869, 30561, 30870, 26342, 30871, 37630, 30872, 13029, 30873, 28344, 30874, 8160, 30875, 30777, 30876, 10450, 30877, 32923, 30878, 41660, 30879, 13251, 30880, 13361, 30881, 13610, 30882, 37371, 30883, 20954, 30884, 43592, 30885, 8683, 30886, 22713, 30887, 8524, 30888, 38080, 30889, 34864, 30890, 46368, 30891, 13759, 30892, 39251, 30893, 12563, 30894, 36364, 30895, 28390, 30896, 29673, 30897, 20276, 30898, 12951, 30899, 36020, 30900, 9798, 30901, 36539, 30902, 30785, 30903, 13911, 30904, 14978, 30905, 41139, 30906, 32349, 30907, 32350, 30908, 26538, 30909, 16167, 30910, 28666, 30911, 35310, 30912, 14094, 30913, 11641, 30914, 25498, 30915, 34935, 30916, 36086, 30917, 7948, 30918, 18430, 30919, 29729, 30920, 37985, 30921, 33193, 30922, 24001, 30923, 12081, 30924, 36543, 30925, 39255, 30926, 38845, 30927, 24692, 30928, 29335, 30929, 37886, 30930, 45150, 30931, 13787, 30932, 46239, 30933, 22634, 30934, 23429, 30935, 47652, 30936, 42236, 30937, 16964, 30938, 47655, 30939, 9951, 30940, 30804, 30941, 7549, 30942, 29600, 30943, 25592, 30944, 25929, 30945, 22497, 30946, 11421, 30947, 10454, 30948, 43490, 30949, 24004, 30950, 8791, 30951, 30805, 30952, 27804, 30953, 30806, 30954, 11970, 30955, 48193, 30956, 31696, 30957, 11581, 30958, 26337, 30959, 19457, 30960, 33609, 30961, 23829, 30962, 32069, 30963, 45614, 30964, 12748, 30965, 20420, 30966, 39142, 30967, 25162, 30968, 13369, 30969, 35953, 30970, 18770, 30971, 29338, 30972, 45257, 30973, 31296, 30974, 12794, 30975, 24500, 30976, 20421, 30977, 20625, 30978, 38882, 30979, 46056, 30980, 31336, 30981, 13872, 30982, 20300, 30983, 44653, 30984, 47803, 30985, 17682, 30986, 22726, 30987, 45548, 30988, 23948, 30989, 20985, 30990, 11215, 30991, 42525, 30992, 32363, 30993, 12579, 30994, 42874, 30995, 20503, 30996, 29742, 30997, 29743, 30998, 44668, 30999, 30039, 31000, 14265, 31001, 7366, 31002, 22646, 31003, 20194, 31004, 44669, 31005, 32938, 31006, 27155, 31007, 29488, 31008, 11659, 31009, 9236, 31010, 42107, 31011, 26572, 31012, 9408, 31013, 39498, 31014, 23140, 31015, 23959, 31016, 24024, 31017, 47116, 31018, 24544, 31019, 24565, 31020, 14531, 31021, 32371, 31022, 29491, 31023, 43645, 31024, 24579, 31025, 25674, 31026, 25675, 31027, 27945, 31028, 9261, 31029, 34754, 31030, 16690, 31031, 23637, 31032, 9409, 31033, 41710, 31034, 34279, 31035, 34273, 31036, 24276, 31037, 32625, 31038, 33791, 31039, 44962, 31040, 34988, 31041, 30486, 31042, 35669, 31043, 26548, 31044, 40211, 31045, 42151, 31046, 39332, 31047, 30501, 31048, 30502, 31049, 46809, 31050, 8243, 31051, 13809, 31052, 47211, 31053, 32593, 31054, 42571, 31055, 34196, 31056, 44155, 31057, 46899, 31058, 36638, 31059, 15201, 31060, 15418, 31061, 27376, 31062, 48363, 31063, 46646, 31064, 35378, 31065, 27036, 31066, 48548, 31067, 31962, 31068, 18322, 31069, 47554, 31070, 33925, 31071, 35453, 31072, 11623, 31073, 9865, 31074, 27254, 31075, 26144, 31076, 44417, 31077, 39747, 31078, 38471, 31079, 36620, 31080, 30004, 31081, 47564, 31082, 16841, 31083, 39227, 31084, 46660, 31085, 19794, 31086, 15864, 31087, 46338, 31088, 15865, 31089, 34808, 31090, 21212, 31091, 33977, 31092, 15564, 31093, 23342, 31094, 12922, 31095, 12609, 31096, 19256, 31097, 36215, 31098, 30553, 31099, 16483, 31100, 16663, 31101, 48444, 31102, 25307, 31103, 25991, 31104, 9022, 31105, 21223, 31106, 12610, 31107, 46737, 31108, 25990, 31109, 9928, 31110, 8478, 31111, 46284, 31112, 18874, 31113, 44108, 31114, 39102, 31115, 43355, 31116, 48010, 31117, 19263, 31118, 46359, 31119, 15265, 31120, 44917, 31121, 38476, 31122, 39538, 31123, 42051, 31124, 46682, 31125, 42597, 31126, 26978, 31127, 34917, 31128, 12940, 31129, 8161, 31130, 47903, 31131, 46370, 31132, 43916, 31133, 19835, 31134, 15869, 31135, 36080, 31136, 34923, 31137, 26562, 31138, 35743, 31139, 15465, 31140, 41022, 31141, 30593, 31142, 44654, 31143, 39031, 31144, 19444, 31145, 35034, 31146, 9952, 31147, 12463, 31148, 16916, 31149, 35489, 31150, 24312, 31151, 28996, 31152, 27293, 31153, 12626, 31154, 24522, 31155, 32475, 31156, 45037, 31157, 36412, 31158, 45377, 31159, 24076, 31160, 32771, 31161, 44409, 31162, 44238, 31163, 24113, 31164, 40238, 31165, 31519, 31166, 17577, 31167, 36991, 31168, 40695, 31169, 34890, 31170, 32538, 31171, 36992, 31172, 48088, 31173, 9775, 31174, 15671, 31175, 42961, 31176, 39333, 31177, 9004, 31178, 28630, 31179, 31799, 31180, 31800, 31181, 47187, 31182, 14910, 31183, 17506, 31184, 45098, 31185, 22600, 31186, 27552, 31187, 46647, 31188, 21282, 31189, 8364, 31190, 46648, 31191, 44501, 31192, 27379, 31193, 22937, 31194, 7875, 31195, 29705, 31196, 28484, 31197, 24395, 31198, 44013, 31199, 48302, 31200, 29706, 31201, 9144, 31202, 25279, 31203, 27869, 31204, 10639, 31205, 28635, 31206, 31511, 31207, 41993, 31208, 48507, 31209, 46913, 31210, 46661, 31211, 34557, 31212, 21859, 31213, 48091, 31214, 19214, 31215, 19369, 31216, 10493, 31217, 36866, 31218, 46938, 31219, 19216, 31220, 17623, 31221, 43339, 31222, 47986, 31223, 46939, 31224, 20817, 31225, 32558, 31226, 13694, 31227, 42717, 31228, 47405, 31229, 18995, 31230, 28985, 31231, 15443, 31232, 38775, 31233, 15831, 31234, 23738, 31235, 15116, 31236, 41387, 31237, 34809, 31238, 26146, 31239, 23344, 31240, 15678, 31241, 21298, 31242, 36345, 31243, 10580, 31244, 37052, 31245, 33693, 31246, 34810, 31247, 41534, 31248, 26343, 31249, 26002, 31250, 16486, 31251, 48516, 31252, 32561, 31253, 47826, 31254, 7942, 31255, 7791, 31256, 19403, 31257, 46683, 31258, 46992, 31259, 23347, 31260, 24087, 31261, 29619, 31262, 22620, 31263, 9023, 31264, 11056, 31265, 48445, 31266, 44573, 31267, 35216, 31268, 26288, 31269, 39716, 31270, 42602, 31271, 39112, 31272, 8684, 31273, 19836, 31274, 15285, 31275, 29879, 31276, 29154, 31277, 20839, 31278, 47201, 31279, 48180, 31280, 40838, 31281, 10507, 31282, 12648, 31283, 38234, 31284, 39464, 31285, 48020, 31286, 44615, 31287, 19850, 31288, 40953, 31289, 46426, 31290, 47036, 31291, 12652, 31292, 20090, 31293, 19427, 31294, 15841, 31295, 15842, 31296, 16442, 31297, 32692, 31298, 35477, 31299, 32769, 31300, 19861, 31301, 22528, 31302, 28083, 31303, 9530, 31304, 26988, 31305, 47080, 31306, 19837, 31307, 26053, 31308, 35220, 31309, 19445, 31310, 43759, 31311, 38238, 31312, 31814, 31313, 33302, 31314, 17732, 31315, 43200, 31316, 18771, 31317, 31450, 31318, 19715, 31319, 35496, 31320, 39921, 31321, 30350, 31322, 20626, 31323, 47845, 31324, 47205, 31325, 48469, 31326, 26165, 31327, 35498, 31328, 28998, 31329, 33314, 31330, 19087, 31331, 32467, 31332, 29165, 31333, 44670, 31334, 30041, 31335, 19895, 31336, 37194, 31337, 38240, 31338, 10524, 31339, 19298, 31340, 23141, 31341, 26168, 31342, 8814, 31343, 33324, 31344, 32478, 31345, 47850, 31346, 24260, 31347, 11939, 31348, 41177, 31349, 37446, 31350, 21505, 31351, 31713, 31352, 38702, 31353, 31715, 31354, 22793, 31355, 44190, 31356, 33862, 31357, 21349, 31358, 42328, 31359, 11329, 31360, 47813, 31361, 36995, 31362, 23801, 31363, 31415, 31364, 45815, 31365, 42287, 31366, 8673, 31367, 7979, 31368, 42288, 31369, 9015, 31370, 37454, 31371, 47458, 31372, 20761, 31373, 31363, 31374, 13151, 31375, 38424, 31376, 16770, 31377, 42194, 31378, 46941, 31379, 11384, 31380, 42336, 31381, 36674, 31382, 20769, 31383, 11385, 31384, 21470, 31385, 39879, 31386, 10566, 31387, 22859, 31388, 11940, 31389, 38319, 31390, 12448, 31391, 22905, 31392, 22621, 31393, 47895, 31394, 40762, 31395, 35217, 31396, 16608, 31397, 23157, 31398, 13546, 31399, 47963, 31400, 41264, 31401, 38320, 31402, 37465, 31403, 41537, 31404, 44316, 31405, 21900, 31406, 31758, 31407, 42237, 31408, 42238, 31409, 36679, 31410, 10249, 31411, 44450, 31412, 36544, 31413, 13175, 31414, 21920, 31415, 25003, 31416, 38863, 31417, 38647, 31418, 23160, 31419, 11393, 31420, 46105, 31421, 23055, 31422, 23056, 31423, 25646, 31424, 10522, 31425, 12036, 31426, 24937, 31427, 45484, 31428, 11947, 31429, 31386, 31430, 31777, 31431, 13566, 31432, 45489, 31433, 25723, 31434, 31468, 31435, 24338, 31436, 11225, 31437, 34183, 31438, 15412, 31439, 30909, 31440, 11234, 31441, 17888, 31442, 30509, 31443, 17457, 31444, 34018, 31445, 14817, 31446, 34630, 31447, 27570, 31448, 32133, 31449, 45962, 31450, 47565, 31451, 25281, 31452, 25623, 31453, 9047, 31454, 21389, 31455, 21399, 31456, 46012, 31457, 7770, 31458, 35019, 31459, 22326, 31460, 17914, 31461, 36870, 31462, 35093, 31463, 21404, 31464, 13167, 31465, 43111, 31466, 34657, 31467, 21396, 31468, 32139, 31469, 20956, 31470, 30092, 31471, 13732, 31472, 24168, 31473, 47668, 31474, 9724, 31475, 12717, 31476, 12061, 31477, 37521, 31478, 21431, 31479, 22484, 31480, 21433, 31481, 47446, 31482, 47449, 31483, 23908, 31484, 29606, 31485, 44240, 31486, 10713, 31487, 15637, 31488, 26747, 31489, 47453, 31490, 37579, 31491, 13663, 31492, 19371, 31493, 20671, 31494, 7657, 31495, 35379, 31496, 19543, 31497, 31564, 31498, 46136, 31499, 35544, 31500, 41455, 31501, 47774, 31502, 44810, 31503, 18330, 31504, 17413, 31505, 40018, 31506, 9698, 31507, 8447, 31508, 8368, 31509, 20241, 31510, 42841, 31511, 13398, 31512, 33494, 31513, 34024, 31514, 12145, 31515, 12812, 31516, 47461, 31517, 28151, 31518, 10661, 31519, 16343, 31520, 24409, 31521, 31428, 31522, 27695, 31523, 7968, 31524, 36642, 31525, 35013, 31526, 15230, 31527, 9658, 31528, 8225, 31529, 14423, 31530, 12192, 31531, 48099, 31532, 12923, 31533, 25294, 31534, 45505, 31535, 29054, 31536, 15231, 31537, 16274, 31538, 14492, 31539, 19962, 31540, 15677, 31541, 14582, 31542, 34259, 31543, 26869, 31544, 30216, 31545, 36489, 31546, 20117, 31547, 31728, 31548, 25627, 31549, 27696, 31550, 8640, 31551, 26459, 31552, 16890, 31553, 31978, 31554, 10725, 31555, 43349, 31556, 42339, 31557, 39533, 31558, 8377, 31559, 31729, 31560, 23378, 31561, 12732, 31562, 39975, 31563, 21116, 31564, 32223, 31565, 35546, 31566, 32827, 31567, 14425, 31568, 23075, 31569, 47578, 31570, 36925, 31571, 19392, 31572, 12196, 31573, 17422, 31574, 9665, 31575, 47223, 31576, 22860, 31577, 23516, 31578, 8479, 31579, 33449, 31580, 12500, 31581, 46532, 31582, 9672, 31583, 15121, 31584, 45116, 31585, 37061, 31586, 29258, 31587, 24143, 31588, 23741, 31589, 21810, 31590, 16638, 31591, 20265, 31592, 17250, 31593, 36876, 31594, 39247, 31595, 46993, 31596, 10581, 31597, 35380, 31598, 34367, 31599, 47589, 31600, 48517, 31601, 39993, 31602, 33696, 31603, 36764, 31604, 9673, 31605, 41648, 31606, 15868, 31607, 23019, 31608, 15649, 31609, 11057, 31610, 23078, 31611, 15784, 31612, 45117, 31613, 29171, 31614, 30941, 31615, 39994, 31616, 20266, 31617, 30283, 31618, 23523, 31619, 48271, 31620, 8382, 31621, 8525, 31622, 8526, 31623, 16028, 31624, 35834, 31625, 16578, 31626, 44202, 31627, 20150, 31628, 12649, 31629, 16359, 31630, 10740, 31631, 46546, 31632, 31693, 31633, 33431, 31634, 47319, 31635, 26017, 31636, 9187, 31637, 19418, 31638, 25144, 31639, 35382, 31640, 22336, 31641, 15287, 31642, 45698, 31643, 16360, 31644, 22808, 31645, 31037, 31646, 30952, 31647, 22337, 31648, 11455, 31649, 16639, 31650, 44771, 31651, 9679, 31652, 48327, 31653, 9279, 31654, 45522, 31655, 31442, 31656, 37437, 31657, 26368, 31658, 12363, 31659, 39899, 31660, 33015, 31661, 20400, 31662, 41024, 31663, 8648, 31664, 35554, 31665, 39719, 31666, 39544, 31667, 30145, 31668, 46374, 31669, 40489, 31670, 18207, 31671, 42766, 31672, 47594, 31673, 44942, 31674, 11481, 31675, 26195, 31676, 38437, 31677, 13430, 31678, 34868, 31679, 19616, 31680, 20941, 31681, 18763, 31682, 40490, 31683, 27054, 31684, 14599, 31685, 11349, 31686, 47694, 31687, 29916, 31688, 14980, 31689, 47474, 31690, 18764, 31691, 31447, 31692, 18022, 31693, 31811, 31694, 27559, 31695, 31136, 31696, 16364, 31697, 23262, 31698, 34425, 31699, 25809, 31700, 45125, 31701, 17672, 31702, 36093, 31703, 45017, 31704, 11024, 31705, 15810, 31706, 14732, 31707, 33019, 31708, 46555, 31709, 16257, 31710, 28821, 31711, 31139, 31712, 39999, 31713, 11944, 31714, 25716, 31715, 29632, 31716, 13677, 31717, 24477, 31718, 8567, 31719, 47918, 31720, 11173, 31721, 33452, 31722, 10747, 31723, 47606, 31724, 31187, 31725, 25647, 31726, 23600, 31727, 20173, 31728, 9386, 31729, 24187, 31730, 19077, 31731, 8568, 31732, 12831, 31733, 11776, 31734, 41593, 31735, 29633, 31736, 9532, 31737, 47698, 31738, 29808, 31739, 29996, 31740, 13500, 31741, 44671, 31742, 27605, 31743, 37137, 31744, 45546, 31745, 33453, 31746, 16918, 31747, 42785, 31748, 18368, 31749, 10048, 31750, 22873, 31751, 11906, 31752, 30153, 31753, 45482, 31754, 19458, 31755, 16865, 31756, 35334, 31757, 25813, 31758, 9688, 31759, 26062, 31760, 28669, 31761, 35584, 31762, 11945, 31763, 13130, 31764, 35588, 31765, 23916, 31766, 13763, 31767, 24893, 31768, 39922, 31769, 9238, 31770, 27432, 31771, 33454, 31772, 12580, 31773, 24945, 31774, 12379, 31775, 13085, 31776, 15391, 31777, 20301, 31778, 27716, 31779, 23274, 31780, 12324, 31781, 20636, 31782, 12720, 31783, 18778, 31784, 35556, 31785, 23832, 31786, 45323, 31787, 39935, 31788, 26089, 31789, 34411, 31790, 45324, 31791, 30833, 31792, 29283, 31793, 30623, 31794, 29284, 31795, 15692, 31796, 21936, 31797, 26090, 31798, 26077, 31799, 41690, 31800, 9281, 31801, 12513, 31802, 33115, 31803, 47630, 31804, 16260, 31805, 30979, 31806, 24728, 31807, 9395, 31808, 47378, 31809, 23564, 31810, 34426, 31811, 23627, 31812, 23280, 31813, 44363, 31814, 45028, 31815, 17489, 31816, 46385, 31817, 35850, 31818, 36482, 31819, 28846, 31820, 11092, 31821, 19662, 31822, 42803, 31823, 30640, 31824, 36295, 31825, 47711, 31826, 47381, 31827, 14472, 31828, 35206, 31829, 47380, 31830, 31153, 31831, 47951, 31832, 36300, 31833, 26104, 31834, 25891, 31835, 20327, 31836, 37444, 31837, 43731, 31838, 44711, 31839, 23572, 31840, 25681, 31841, 31469, 31842, 24743, 31843, 23642, 31844, 30993, 31845, 45042, 31846, 47185, 31847, 32108, 31848, 24744, 31849, 8669, 31850, 13770, 31851, 48399, 31852, 24261, 31853, 34971, 31854, 26400, 31855, 43737, 31856, 45054, 31857, 47960, 31858, 44731, 31859, 27331, 31860, 12802, 31861, 14485, 31862, 33853, 31863, 46196, 31864, 33863, 31865, 29078, 31866, 17600, 31867, 24044, 31868, 39339, 31869, 48093, 31870, 28480, 31871, 12073, 31872, 46071, 31873, 30915, 31874, 45782, 31875, 8369, 31876, 7851, 31877, 38611, 31878, 33363, 31879, 22508, 31880, 32773, 31881, 14897, 31882, 8448, 31883, 12001, 31884, 43568, 31885, 46208, 31886, 27342, 31887, 35878, 31888, 18332, 31889, 7658, 31890, 24410, 31891, 15644, 31892, 21870, 31893, 30239, 31894, 27877, 31895, 11861, 31896, 45849, 31897, 47346, 31898, 10662, 31899, 35263, 31900, 36684, 31901, 24411, 31902, 38776, 31903, 35268, 31904, 17915, 31905, 36871, 31906, 48002, 31907, 9659, 31908, 44992, 31909, 47266, 31910, 25138, 31911, 47725, 31912, 7771, 31913, 23795, 31914, 14913, 31915, 14331, 31916, 31979, 31917, 17636, 31918, 24834, 31919, 39634, 31920, 15267, 31921, 24835, 31922, 9545, 31923, 21304, 31924, 24298, 31925, 44997, 31926, 26018, 31927, 21748, 31928, 30578, 31929, 12021, 31930, 7794, 31931, 46023, 31932, 25145, 31933, 48244, 31934, 21309, 31935, 17078, 31936, 18402, 31937, 33143, 31938, 33145, 31939, 36088, 31940, 8687, 31941, 32786, 31942, 27526, 31943, 18023, 31944, 40841, 31945, 48246, 31946, 18208, 31947, 20402, 31948, 45321, 31949, 11646, 31950, 24178, 31951, 40303, 31952, 15138, 31953, 29159, 31954, 8184, 31955, 16448, 31956, 40693, 31957, 15811, 31958, 36094, 31959, 31935, 31960, 19989, 31961, 9599, 31962, 47730, 31963, 36099, 31964, 27286, 31965, 33148, 31966, 14926, 31967, 45427, 31968, 22530, 31969, 20560, 31970, 27805, 31971, 33150, 31972, 33151, 31973, 29164, 31974, 38894, 31975, 24847, 31976, 20565, 31977, 23032, 31978, 9289, 31979, 18609, 31980, 34605, 31981, 48256, 31982, 39686, 31983, 29166, 31984, 37145, 31985, 28857, 31986, 24566, 31987, 48571, 31988, 12851, 31989, 28858, 31990, 36691, 31991, 23715, 31992, 27366, 31993, 34887, 31994, 21506, 31995, 39054, 31996, 16133, 31997, 46575, 31998, 21509, 31999, 44145, 32000, 19760, 32001, 9832, 32002, 47337, 32003, 41306, 32004, 44935, 32005, 17890, 32006, 44192, 32007, 17601, 32008, 37580, 32009, 32594, 32010, 38223, 32011, 38188, 32012, 31872, 32013, 28145, 32014, 47980, 32015, 36967, 32016, 28966, 32017, 15067, 32018, 19776, 32019, 34505, 32020, 11502, 32021, 29707, 32022, 46457, 32023, 33364, 32024, 17898, 32025, 46823, 32026, 19544, 32027, 14820, 32028, 45105, 32029, 32597, 32030, 12398, 32031, 21112, 32032, 35251, 32033, 14652, 32034, 35601, 32035, 12002, 32036, 21556, 32037, 45224, 32038, 7749, 32039, 21151, 32040, 15111, 32041, 46942, 32042, 30430, 32043, 48107, 32044, 11044, 32045, 17906, 32046, 45225, 32047, 24052, 32048, 39084, 32049, 15232, 32050, 40239, 32051, 33879, 32052, 9087, 32053, 47571, 32054, 31970, 32055, 25295, 32056, 47572, 32057, 33744, 32058, 15712, 32059, 42088, 32060, 15233, 32061, 37360, 32062, 46410, 32063, 12290, 32064, 11246, 32065, 34115, 32066, 47162, 32067, 39437, 32068, 48367, 32069, 21444, 32070, 7877, 32071, 32043, 32072, 27878, 32073, 34640, 32074, 48440, 32075, 23123, 32076, 21294, 32077, 32605, 32078, 17423, 32079, 40251, 32080, 20927, 32081, 47410, 32082, 11051, 32083, 16558, 32084, 7772, 32085, 22143, 32086, 23124, 32087, 18182, 32088, 11697, 32089, 18578, 32090, 16062, 32091, 36167, 32092, 20928, 32093, 22945, 32094, 20686, 32095, 32224, 32096, 15581, 32097, 26460, 32098, 41132, 32099, 8255, 32100, 39625, 32101, 15254, 32102, 16030, 32103, 13463, 32104, 32673, 32105, 36685, 32106, 43350, 32107, 23993, 32108, 40252, 32109, 22025, 32110, 40912, 32111, 15565, 32112, 13233, 32113, 36926, 32114, 34910, 32115, 20549, 32116, 39751, 32117, 19003, 32118, 22144, 32119, 46738, 32120, 20267, 32121, 22032, 32122, 10672, 32123, 27503, 32124, 46470, 32125, 26151, 32126, 10582, 32127, 31907, 32128, 34528, 32129, 7920, 32130, 36927, 32131, 39888, 32132, 18582, 32133, 31487, 32134, 16094, 32135, 40692, 32136, 36360, 32137, 36984, 32138, 40129, 32139, 17925, 32140, 39103, 32141, 15268, 32142, 36740, 32143, 35404, 32144, 13821, 32145, 23348, 32146, 15122, 32147, 21305, 32148, 18349, 32149, 46684, 32150, 41649, 32151, 21475, 32152, 15021, 32153, 19815, 32154, 40927, 32155, 32562, 32156, 48181, 32157, 10378, 32158, 13991, 32159, 24454, 32160, 26190, 32161, 24837, 32162, 11064, 32163, 32282, 32164, 33748, 32165, 30579, 32166, 30580, 32167, 47823, 32168, 30581, 32169, 37633, 32170, 31130, 32171, 39644, 32172, 34467, 32173, 37879, 32174, 30701, 32175, 36219, 32176, 37634, 32177, 15767, 32178, 37758, 32179, 8266, 32180, 47790, 32181, 9449, 32182, 17079, 32183, 12022, 32184, 26331, 32185, 25568, 32186, 30702, 32187, 45976, 32188, 8527, 32189, 11574, 32190, 25334, 32191, 27454, 32192, 30444, 32193, 31443, 32194, 36540, 32195, 48182, 32196, 16958, 32197, 48272, 32198, 38822, 32199, 48021, 32200, 40568, 32201, 24866, 32202, 21163, 32203, 14684, 32204, 32947, 32205, 27667, 32206, 44593, 32207, 48226, 32208, 14504, 32209, 26191, 32210, 40941, 32211, 43601, 32212, 33681, 32213, 30832, 32214, 40954, 32215, 39720, 32216, 20158, 32217, 22717, 32218, 39653, 32219, 32926, 32220, 27455, 32221, 19429, 32222, 13761, 32223, 10976, 32224, 12960, 32225, 27670, 32226, 27544, 32227, 44849, 32228, 40289, 32229, 8017, 32230, 34938, 32231, 31812, 32232, 8649, 32233, 18628, 32234, 16065, 32235, 11762, 32236, 27509, 32237, 38090, 32238, 15477, 32239, 37994, 32240, 36955, 32241, 16255, 32242, 27560, 32243, 40144, 32244, 24800, 32245, 48187, 32246, 8740, 32247, 45190, 32248, 43361, 32249, 36374, 32250, 16521, 32251, 47061, 32252, 45191, 32253, 10514, 32254, 9948, 32255, 12314, 32256, 39257, 32257, 44850, 32258, 48227, 32259, 40781, 32260, 34042, 32261, 37819, 32262, 16066, 32263, 41025, 32264, 43701, 32265, 21250, 32266, 43202, 32267, 47794, 32268, 28605, 32269, 7910, 32270, 16444, 32271, 29336, 32272, 47371, 32273, 20174, 32274, 11604, 32275, 32241, 32276, 34776, 32277, 45196, 32278, 39261, 32279, 11971, 32280, 38865, 32281, 32695, 32282, 36184, 32283, 15492, 32284, 45126, 32285, 10386, 32286, 15845, 32287, 32891, 32288, 18226, 32289, 45317, 32290, 36284, 32291, 39662, 32292, 35321, 32293, 46430, 32294, 48251, 32295, 36185, 32296, 18822, 32297, 9457, 32298, 8569, 32299, 15056, 32300, 11907, 32301, 24189, 32302, 35589, 32303, 41807, 32304, 39034, 32305, 48253, 32306, 23945, 32307, 22049, 32308, 31143, 32309, 26718, 32310, 46766, 32311, 26166, 32312, 28086, 32313, 29997, 32314, 24703, 32315, 27287, 32316, 41151, 32317, 48230, 32318, 19459, 32319, 33519, 32320, 35499, 32321, 14517, 32322, 26203, 32323, 8287, 32324, 42614, 32325, 33222, 32326, 27985, 32327, 42246, 32328, 31243, 32329, 19159, 32330, 39381, 32331, 19877, 32332, 33447, 32333, 40714, 32334, 32429, 32335, 41152, 32336, 35508, 32337, 31300, 32338, 45616, 32339, 48537, 32340, 46702, 32341, 33615, 32342, 33152, 32343, 25166, 32344, 44672, 32345, 14465, 32346, 24946, 32347, 11584, 32348, 48478, 32349, 20429, 32350, 32521, 32351, 10053, 32352, 32958, 32353, 40716, 32354, 19088, 32355, 18497, 32356, 48391, 32357, 38895, 32358, 31245, 32359, 45216, 32360, 12243, 32361, 34046, 32362, 19096, 32363, 39160, 32364, 33318, 32365, 20306, 32366, 20505, 32367, 18610, 32368, 45456, 32369, 11781, 32370, 40338, 32371, 20733, 32372, 8609, 32373, 12484, 32374, 43252, 32375, 29010, 32376, 35509, 32377, 43253, 32378, 33457, 32379, 40802, 32380, 19903, 32381, 8959, 32382, 31100, 32383, 23628, 32384, 30359, 32385, 41285, 32386, 48395, 32387, 30641, 32388, 29650, 32389, 42371, 32390, 27947, 32391, 24072, 32392, 40181, 32393, 48397, 32394, 23142, 32395, 43977, 32396, 40979, 32397, 23961, 32398, 39400, 32399, 9982, 32400, 20743, 32401, 25892, 32402, 9986, 32403, 43653, 32404, 9432, 32405, 32495, 32406, 39409, 32407, 48421, 32408, 48400, 32409, 26496, 32410, 24266, 32411, 12673, 32412, 23692, 32413, 23981, 32414, 24822, 32415, 34882, 32416, 21497, 32417, 44187, 32418, 17866, 32419, 47323, 32420, 39326, 32421, 15880, 32422, 44934, 32423, 19520, 32424, 37570, 32425, 23108, 32426, 19733, 32427, 32578, 32428, 37930, 32429, 45091, 32430, 17873, 32431, 11498, 32432, 29684, 32433, 33353, 32434, 15741, 32435, 28129, 32436, 32585, 32437, 48236, 32438, 26311, 32439, 14811, 32440, 46803, 32441, 38181, 32442, 14644, 32443, 47537, 32444, 46442, 32445, 28956, 32446, 34489, 32447, 39591, 32448, 15706, 32449, 40212, 32450, 15183, 32451, 24777, 32452, 48359, 32453, 33854, 32454, 39062, 32455, 46640, 32456, 47151, 32457, 47331, 32458, 7871, 32459, 15184, 32460, 11230, 32461, 33737, 32462, 42963, 32463, 21279, 32464, 12271, 32465, 7917, 32466, 32656, 32467, 20894, 32468, 22935, 32469, 32519, 32470, 13203, 32471, 17411, 32472, 18982, 32473, 16029, 32474, 41119, 32475, 20543, 32476, 26446, 32477, 22103, 32478, 20666, 32479, 36920, 32480, 16085, 32481, 39862, 32482, 22013, 32483, 40700, 32484, 39080, 32485, 35421, 32486, 36163, 32487, 19777, 32488, 36334, 32489, 19377, 32490, 40895, 32491, 25296, 32492, 43582, 32493, 40896, 32494, 30690, 32495, 14672, 32496, 11564, 32497, 33679, 32498, 16948, 32499, 34041, 32500, 37864, 32501, 27449, 32502, 34460, 32503, 8251, 32504, 11045, 32505, 36212, 32506, 25564, 32507, 32277, 32508, 48156, 32509, 45967, 32510, 37613, 32511, 26180, 32512, 47776, 32513, 47987, 32514, 22704, 32515, 39711, 32516, 20130, 32517, 27501, 32518, 23659, 32519, 36346, 32520, 27556, 32521, 19394, 32522, 45066, 32523, 19004, 32524, 34911, 32525, 13977, 32526, 13751, 32527, 8729, 32528, 39626, 32529, 16247, 32530, 47781, 32531, 18626, 32532, 12933, 32533, 26152, 32534, 8643, 32535, 27655, 32536, 44822, 32537, 21224, 32538, 15457, 32539, 32885, 32540, 46421, 32541, 15048, 32542, 11957, 32543, 15835, 32544, 9934, 32545, 24145, 32546, 43113, 32547, 20143, 32548, 8936, 32549, 29963, 32550, 26706, 32551, 23931, 32552, 43602, 32553, 35579, 32554, 27975, 32555, 33217, 32556, 40145, 32557, 24927, 32558, 33594, 32559, 45607, 32560, 20493, 32561, 31094, 32562, 31293, 32563, 18595, 32564, 20723, 32565, 48394, 32566, 15070, 32567, 40213, 32568, 15749, 32569, 15075, 32570, 32298, 32571, 15076, 32572, 30831, 32573, 9088, 32574, 30132, 32575, 39807, 32576, 46172, 32577, 15768, 32578, 43603, 32579, 43610, 32580, 31701, 32581, 39308, 32582, 16679, 32583, 48479, 32584, 35959, 32585, 10523, 32586, 30822, 32587, 38304, 32588, 43638, 32589, 23962, 32590, 35974, 32591, 25893, 32592, 16693, 32593, 37727, 32594, 37725, 32595, 15736, 32596, 37733, 32597, 17275, 32598, 26357, 32599, 26351, 32600, 15203, 32601, 33855, 32602, 14416, 32603, 16340, 32604, 47503, 32605, 21645, 32606, 26820, 32607, 16400, 32608, 27643, 32609, 15754, 32610, 7717, 32611, 16556, 32612, 36347, 32613, 22026, 32614, 15255, 32615, 33987, 32616, 41782, 32617, 46147, 32618, 48446, 32619, 16559, 32620, 47896, 32621, 44574, 32622, 46995, 32623, 7437, 32624, 14431, 32625, 23664, 32626, 34588, 32627, 34924, 32628, 29795, 32629, 26567, 32630, 25571, 32631, 7727, 32632, 14433, 32633, 24190, 32634, 10252, 32635, 38097, 32636, 8550, 32637, 19878, 32638, 45615, 32639, 10948, 32640, 25577, 32641, 19460, 32642, 22052, 32643, 27433, 32644, 46169, 32645, 26378, 32646, 29816, 32647, 19495, 32648, 19504, 32649, 26251, 32650, 42009, 32651, 27335, 32652, 31155, 32653, 12180, 32654, 27008, 32655, 42027, 32656, 44095, 32657, 44091, 32658, 14854, 32659, 7659, 32660, 15791, 32661, 42116, 32662, 16401, 32663, 31161, 32664, 45387, 32665, 15792, 32666, 25298, 32667, 43041, 32668, 47574, 32669, 12779, 32670, 40643, 32671, 31236, 32672, 42726, 32673, 39627, 32674, 32674, 32675, 32392, 32676, 32393, 32677, 31240, 32678, 18583, 32679, 35575, 32680, 39636, 32681, 43114, 32682, 42139, 32683, 31183, 32684, 31045, 32685, 44324, 32686, 16067, 32687, 20965, 32688, 36040, 32689, 44857, 32690, 38866, 32691, 14525, 32692, 33523, 32693, 14885, 32694, 33525, 32695, 24770, 32696, 23953, 32697, 16071, 32698, 29025, 32699, 31253, 32700, 10096, 32701, 44399, 32702, 16219, 32703, 42989, 32704, 10928, 32705, 38261, 32706, 14821, 32707, 17899, 32708, 10838, 32709, 10839, 32710, 12003, 32711, 15234, 32712, 39229, 32713, 8213, 32714, 43042, 32715, 23414, 32716, 43043, 32717, 29711, 32718, 25299, 32719, 25583, 32720, 46943, 32721, 32044, 32722, 38953, 32723, 40120, 32724, 39752, 32725, 38777, 32726, 38778, 32727, 22655, 32728, 31369, 32729, 19005, 32730, 18866, 32731, 39880, 32732, 33427, 32733, 17926, 32734, 20486, 32735, 12821, 32736, 12023, 32737, 14726, 32738, 12650, 32739, 33433, 32740, 10871, 32741, 47595, 32742, 20283, 32743, 41026, 32744, 10883, 32745, 29917, 32746, 48188, 32747, 37593, 32748, 18890, 32749, 18024, 32750, 17674, 32751, 17733, 32752, 17365, 32753, 7552, 32754, 29970, 32755, 43219, 32756, 24704, 32757, 18030, 32758, 7555, 32759, 25167, 32760, 29569, 32761, 31387, 32762, 7559, 32763, 14466, 32764, 43220, 32765, 19097, 32766, 41042, 32767, 12669, 32768, 42370, 32769, 23844, 32770, 23843, 32771, 22565, 32772, 26892, 32773, 46281, 32774, 30517, 32775, 16272, 32776, 16275, 32777, 16273, 32778, 13215, 32779, 13234, 32780, 14311, 32781, 34699, 32782, 32910, 32783, 28214, 32784, 28215, 32785, 13726, 32786, 23984, 32787, 36730, 32788, 48094, 32789, 16054, 32790, 10280, 32791, 17513, 32792, 45106, 32793, 7718, 32794, 29712, 32795, 42719, 32796, 35015, 32797, 32156, 32798, 19964, 32799, 21872, 32800, 19200, 32801, 11160, 32802, 23879, 32803, 26344, 32804, 19601, 32805, 36037, 32806, 29222, 32807, 25777, 32808, 29041, 32809, 20527, 32810, 29421, 32811, 45708, 32812, 25782, 32813, 19471, 32814, 23887, 32815, 19308, 32816, 43978, 32817, 27950, 32818, 18519, 32819, 14353, 32820, 42935, 32821, 13314, 32822, 42395, 32823, 12143, 32824, 35092, 32825, 31512, 32826, 45107, 32827, 10780, 32828, 12345, 32829, 12346, 32830, 17901, 32831, 16086, 32832, 46723, 32833, 29367, 32834, 28769, 32835, 12350, 32836, 46411, 32837, 10330, 32838, 25300, 32839, 46526, 32840, 44098, 32841, 37501, 32842, 24903, 32843, 25628, 32844, 46733, 32845, 28893, 32846, 36624, 32847, 14333, 32848, 41528, 32849, 36697, 32850, 16513, 32851, 40914, 32852, 24663, 32853, 17523, 32854, 34082, 32855, 25064, 32856, 30078, 32857, 21310, 32858, 21901, 32859, 8383, 32860, 12884, 32861, 17041, 32862, 38197, 32863, 40943, 32864, 30088, 32865, 11750, 32866, 13362, 32867, 28505, 32868, 36775, 32869, 21821, 32870, 11763, 32871, 23159, 32872, 24693, 32873, 23263, 32874, 11764, 32875, 24694, 32876, 38292, 32877, 23264, 32878, 24706, 32879, 24714, 32880, 11777, 32881, 7553, 32882, 34037, 32883, 35103, 32884, 36743, 32885, 23275, 32886, 28832, 32887, 46769, 32888, 12381, 32889, 28918, 32890, 31403, 32891, 28556, 32892, 36746, 32893, 36748, 32894, 25682, 32895, 44485, 32896, 44477, 32897, 46137, 32898, 35008, 32899, 35242, 32900, 43115, 32901, 35285, 32902, 35023, 32903, 46153, 32904, 46154, 32905, 32804, 32906, 42898, 32907, 23894, 32908, 19349, 32909, 31844, 32910, 22734, 32911, 9637, 32912, 15883, 32913, 9122, 32914, 18638, 32915, 18705, 32916, 10767, 32917, 32586, 32918, 40010, 32919, 32863, 32920, 47308, 32921, 44897, 32922, 13682, 32923, 15742, 32924, 32653, 32925, 15624, 32926, 9739, 32927, 38350, 32928, 10138, 32929, 16390, 32930, 46641, 32931, 17214, 32932, 15092, 32933, 14700, 32934, 14853, 32935, 29495, 32936, 29426, 32937, 20105, 32938, 14631, 32939, 47812, 32940, 44001, 32941, 28135, 32942, 7483, 32943, 22736, 32944, 32405, 32945, 16134, 32946, 44495, 32947, 38222, 32948, 42181, 32949, 30503, 32950, 29759, 32951, 31071, 32952, 38703, 32953, 38704, 32954, 14746, 32955, 22737, 32956, 21345, 32957, 35861, 32958, 33969, 32959, 47186, 32960, 46069, 32961, 40089, 32962, 33972, 32963, 38053, 32964, 47338, 32965, 13204, 32966, 12395, 32967, 14748, 32968, 7686, 32969, 9134, 32970, 32034, 32971, 36522, 32972, 8127, 32973, 16503, 32974, 35813, 32975, 48089, 32976, 14713, 32977, 46650, 32978, 28577, 32979, 30114, 32980, 48140, 32981, 15356, 32982, 29427, 32983, 46328, 32984, 39426, 32985, 48549, 32986, 29498, 32987, 20054, 32988, 34070, 32989, 46651, 32990, 7967, 32991, 28023, 32992, 31963, 32993, 18156, 32994, 22602, 32995, 10774, 32996, 43523, 32997, 40733, 32998, 41991, 32999, 25619, 33000, 13453, 33001, 22374, 33002, 25850, 33003, 21382, 33004, 29065, 33005, 41555, 33006, 29382, 33007, 22985, 33008, 42708, 33009, 16712, 33010, 17137, 33011, 15892, 33012, 13458, 33013, 10656, 33014, 20591, 33015, 40593, 33016, 40594, 33017, 14325, 33018, 7454, 33019, 17794, 33020, 29923, 33021, 28463, 33022, 48141, 33023, 16761, 33024, 10559, 33025, 36673, 33026, 46663, 33027, 12004, 33028, 26956, 33029, 40105, 33030, 12005, 33031, 40106, 33032, 26607, 33033, 26605, 33034, 19547, 33035, 40107, 33036, 28884, 33037, 23013, 33038, 33053, 33039, 45410, 33040, 30518, 33041, 28371, 33042, 27343, 33043, 28984, 33044, 26228, 33045, 37669, 33046, 9157, 33047, 38226, 33048, 37614, 33049, 40647, 33050, 20677, 33051, 21397, 33052, 44099, 33053, 17785, 33054, 12115, 33055, 25055, 33056, 33491, 33057, 36803, 33058, 26961, 33059, 11506, 33060, 33978, 33061, 31078, 33062, 12702, 33063, 21964, 33064, 11881, 33065, 40645, 33066, 40440, 33067, 37316, 33068, 29434, 33069, 10567, 33070, 28435, 33071, 30330, 33072, 13538, 33073, 37317, 33074, 28742, 33075, 28376, 33076, 29837, 33077, 16409, 33078, 26361, 33079, 24412, 33080, 24754, 33081, 46074, 33082, 12014, 33083, 20831, 33084, 24863, 33085, 34789, 33086, 29785, 33087, 8775, 33088, 26327, 33089, 29927, 33090, 23994, 33091, 23253, 33092, 11452, 33093, 12444, 33094, 36575, 33095, 28437, 33096, 21300, 33097, 28186, 33098, 23443, 33099, 42462, 33100, 41571, 33101, 32607, 33102, 33979, 33103, 11569, 33104, 15379, 33105, 15372, 33106, 21663, 33107, 14702, 33108, 31172, 33109, 37674, 33110, 13464, 33111, 29786, 33112, 17034, 33113, 48169, 33114, 13357, 33115, 38372, 33116, 27017, 33117, 28503, 33118, 47686, 33119, 10860, 33120, 11845, 33121, 26365, 33122, 29215, 33123, 12941, 33124, 7396, 33125, 40480, 33126, 28386, 33127, 34658, 33128, 34737, 33129, 28279, 33130, 45183, 33131, 47199, 33132, 32806, 33133, 14208, 33134, 33097, 33135, 37062, 33136, 42164, 33137, 20379, 33138, 37978, 33139, 20695, 33140, 44281, 33141, 19980, 33142, 13757, 33143, 8503, 33144, 10151, 33145, 15458, 33146, 39637, 33147, 28597, 33148, 27504, 33149, 37505, 33150, 36275, 33151, 37206, 33152, 7923, 33153, 31088, 33154, 26156, 33155, 37506, 33156, 34462, 33157, 36081, 33158, 35297, 33159, 47788, 33160, 15967, 33161, 43140, 33162, 9188, 33163, 24914, 33164, 19602, 33165, 29796, 33166, 40137, 33167, 15803, 33168, 26162, 33169, 8971, 33170, 29205, 33171, 10159, 33172, 26033, 33173, 17044, 33174, 29390, 33175, 11311, 33176, 8789, 33177, 20528, 33178, 15131, 33179, 36089, 33180, 27796, 33181, 38846, 33182, 47653, 33183, 26196, 33184, 20615, 33185, 43788, 33186, 26120, 33187, 47038, 33188, 41209, 33189, 12062, 33190, 25225, 33191, 36904, 33192, 29634, 33193, 28611, 33194, 11319, 33195, 24932, 33196, 12033, 33197, 16794, 33198, 39916, 33199, 36266, 33200, 14514, 33201, 46762, 33202, 20624, 33203, 33604, 33204, 18135, 33205, 12028, 33206, 33000, 33207, 39721, 33208, 35437, 33209, 14924, 33210, 43621, 33211, 33521, 33212, 47629, 33213, 12411, 33214, 23029, 33215, 28997, 33216, 37275, 33217, 24715, 33218, 8584, 33219, 43841, 33220, 22203, 33221, 11284, 33222, 43221, 33223, 21995, 33224, 23459, 33225, 24765, 33226, 33223, 33227, 37277, 33228, 16453, 33229, 30625, 33230, 12044, 33231, 8976, 33232, 41279, 33233, 28413, 33234, 38389, 33235, 45415, 33236, 39680, 33237, 8810, 33238, 40575, 33239, 23042, 33240, 23468, 33241, 41599, 33242, 25885, 33243, 19318, 33244, 45234, 33245, 26431, 33246, 32109, 33247, 45416, 33248, 26253, 33249, 28523, 33250, 45239, 33251, 10392, 33252, 30910, 33253, 38354, 33254, 16742, 33255, 45393, 33256, 25163, 33257, 16731, 33258, 48118, 33259, 20657, 33260, 28770, 33261, 11122, 33262, 19806, 33263, 15799, 33264, 11124, 33265, 27456, 33266, 28822, 33267, 46870, 33268, 46914, 33269, 15950, 33270, 20380, 33271, 13235, 33272, 46674, 33273, 40651, 33274, 35835, 33275, 46380, 33276, 21568, 33277, 39592, 33278, 44229, 33279, 9742, 33280, 42290, 33281, 44244, 33282, 10930, 33283, 39093, 33284, 39094, 33285, 21594, 33286, 44317, 33287, 44443, 33288, 40571, 33289, 21823, 33290, 21612, 33291, 40460, 33292, 33767, 33293, 33784, 33294, 33792, 33295, 21553, 33296, 34335, 33297, 35892, 33298, 34522, 33299, 34379, 33300, 36583, 33301, 36021, 33302, 30392, 33303, 30393, 33304, 16644, 33305, 18498, 33306, 36611, 33307, 11355, 33308, 34832, 33309, 39248, 33310, 38548, 33311, 47239, 33312, 12595, 33313, 11338, 33314, 33488, 33315, 42836, 33316, 14488, 33317, 29246, 33318, 35864, 33319, 14491, 33320, 7852, 33321, 11339, 33322, 17415, 33323, 14653, 33324, 7813, 33325, 8370, 33326, 25852, 33327, 47159, 33328, 20363, 33329, 9568, 33330, 25301, 33331, 47462, 33332, 45507, 33333, 14028, 33334, 9158, 33335, 39438, 33336, 16017, 33337, 11340, 33338, 39230, 33339, 25855, 33340, 31739, 33341, 29404, 33342, 38781, 33343, 22967, 33344, 15269, 33345, 45477, 33346, 15022, 33347, 24146, 33348, 33697, 33349, 44306, 33350, 23742, 33351, 36808, 33352, 44575, 33353, 37979, 33354, 9189, 33355, 27210, 33356, 28692, 33357, 21678, 33358, 18766, 33359, 34445, 33360, 22718, 33361, 8741, 33362, 28080, 33363, 13257, 33364, 12653, 33365, 7952, 33366, 9762, 33367, 43204, 33368, 35156, 33369, 9577, 33370, 9624, 33371, 25783, 33372, 12320, 33373, 41211, 33374, 42362, 33375, 10952, 33376, 12721, 33377, 12515, 33378, 31228, 33379, 25941, 33380, 42876, 33381, 19656, 33382, 20443, 33383, 19309, 33384, 27165, 33385, 30642, 33386, 25945, 33387, 25894, 33388, 9990, 33389, 34760, 33390, 16035, 33391, 24824, 33392, 20106, 33393, 20176, 33394, 33262, 33395, 41865, 33396, 15238, 33397, 30089, 33398, 41943, 33399, 41969, 33400, 9630, 33401, 9642, 33402, 42892, 33403, 23904, 33404, 36725, 33405, 20575, 33406, 7305, 33407, 28197, 33408, 36629, 33409, 20576, 33410, 20863, 33411, 29603, 33412, 37571, 33413, 42916, 33414, 9850, 33415, 27444, 33416, 27332, 33417, 15618, 33418, 30897, 33419, 44486, 33420, 44487, 33421, 33713, 33422, 31708, 33423, 13678, 33424, 18303, 33425, 30670, 33426, 26736, 33427, 48120, 33428, 18983, 33429, 35387, 33430, 46871, 33431, 39699, 33432, 29751, 33433, 15168, 33434, 37252, 33435, 37931, 33436, 38456, 33437, 46626, 33438, 30726, 33439, 33476, 33440, 38182, 33441, 31108, 33442, 32539, 33443, 15169, 33444, 22832, 33445, 21045, 33446, 25841, 33447, 40858, 33448, 19350, 33449, 31502, 33450, 30493, 33451, 41612, 33452, 14812, 33453, 7643, 33454, 32963, 33455, 40374, 33456, 19741, 33457, 18391, 33458, 18392, 33459, 14613, 33460, 38589, 33461, 22087, 33462, 16265, 33463, 46804, 33464, 45092, 33465, 31503, 33466, 7575, 33467, 11149, 33468, 26876, 33469, 41449, 33470, 14740, 33471, 32636, 33472, 17405, 33473, 11724, 33474, 43384, 33475, 44082, 33476, 8706, 33477, 42937, 33478, 31393, 33479, 37932, 33480, 24350, 33481, 29834, 33482, 14140, 33483, 39588, 33484, 10139, 33485, 9565, 33486, 47538, 33487, 35211, 33488, 36329, 33489, 44900, 33490, 32442, 33491, 25263, 33492, 35823, 33493, 33714, 33494, 12804, 33495, 27536, 33496, 31666, 33497, 24359, 33498, 43930, 33499, 22593, 33500, 28054, 33501, 8125, 33502, 7965, 33503, 16268, 33504, 27636, 33505, 42828, 33506, 42831, 33507, 21846, 33508, 30028, 33509, 33005, 33510, 22927, 33511, 28889, 33512, 28530, 33513, 9128, 33514, 9005, 33515, 33480, 33516, 40685, 33517, 42281, 33518, 39334, 33519, 8210, 33520, 17879, 33521, 43572, 33522, 45723, 33523, 13385, 33524, 21636, 33525, 13193, 33526, 28746, 33527, 15632, 33528, 18089, 33529, 30107, 33530, 26951, 33531, 15187, 33532, 34011, 33533, 16335, 33534, 8424, 33535, 38049, 33536, 15188, 33537, 47862, 33538, 26879, 33539, 14571, 33540, 19947, 33541, 26816, 33542, 26817, 33543, 7682, 33544, 11624, 33545, 27850, 33546, 47969, 33547, 46810, 33548, 10711, 33549, 19761, 33550, 21280, 33551, 25613, 33552, 11730, 33553, 28706, 33554, 44824, 33555, 41183, 33556, 43667, 33557, 31716, 33558, 15931, 33559, 27731, 33560, 24372, 33561, 32657, 33562, 43521, 33563, 16044, 33564, 31111, 33565, 9875, 33566, 10403, 33567, 44502, 33568, 17441, 33569, 48123, 33570, 25031, 33571, 38466, 33572, 19762, 33573, 16755, 33574, 11692, 33575, 20236, 33576, 11625, 33577, 16290, 33578, 16709, 33579, 26748, 33580, 9778, 33581, 20587, 33582, 20588, 33583, 15204, 33584, 44245, 33585, 47397, 33586, 47976, 33587, 20473, 33588, 18921, 33589, 43327, 33590, 9779, 33591, 14417, 33592, 32650, 33593, 32814, 33594, 10924, 33595, 26787, 33596, 36855, 33597, 47213, 33598, 30904, 33599, 47455, 33600, 41307, 33601, 18570, 33602, 15100, 33603, 32200, 33604, 15558, 33605, 12144, 33606, 21283, 33607, 40557, 33608, 11358, 33609, 9632, 33610, 21284, 33611, 14323, 33612, 7450, 33613, 31310, 33614, 10715, 33615, 32554, 33616, 20354, 33617, 36331, 33618, 18710, 33619, 30116, 33620, 24373, 33621, 21106, 33622, 23852, 33623, 34632, 33624, 47719, 33625, 12182, 33626, 20008, 33627, 32501, 33628, 8436, 33629, 9653, 33630, 31311, 33631, 18984, 33632, 19763, 33633, 12548, 33634, 48124, 33635, 32658, 33636, 19121, 33637, 40521, 33638, 26447, 33639, 43669, 33640, 41308, 33641, 21195, 33642, 35531, 33643, 43328, 33644, 26593, 33645, 17892, 33646, 47339, 33647, 42330, 33648, 13692, 33649, 37945, 33650, 24114, 33651, 13532, 33652, 15106, 33653, 32557, 33654, 43401, 33655, 17613, 33656, 8343, 33657, 9361, 33658, 45137, 33659, 12809, 33660, 37038, 33661, 35395, 33662, 35396, 33663, 10550, 33664, 10408, 33665, 38467, 33666, 8890, 33667, 38735, 33668, 16087, 33669, 24397, 33670, 30329, 33671, 47567, 33672, 27871, 33673, 24398, 33674, 47722, 33675, 48508, 33676, 37311, 33677, 31873, 33678, 33366, 33679, 35565, 33680, 10409, 33681, 29608, 33682, 21804, 33683, 26957, 33684, 27107, 33685, 40561, 33686, 21287, 33687, 10297, 33688, 33872, 33689, 22282, 33690, 41629, 33691, 36756, 33692, 44016, 33693, 12126, 33694, 16632, 33695, 17314, 33696, 44096, 33697, 12127, 33698, 20014, 33699, 37718, 33700, 35252, 33701, 28967, 33702, 33687, 33703, 39612, 33704, 23779, 33705, 15218, 33706, 14079, 33707, 27872, 33708, 38248, 33709, 20903, 33710, 28248, 33711, 28059, 33712, 22459, 33713, 23500, 33714, 24657, 33715, 34202, 33716, 38310, 33717, 37107, 33718, 39343, 33719, 19246, 33720, 44017, 33721, 43670, 33722, 43576, 33723, 16226, 33724, 11503, 33725, 26783, 33726, 26784, 33727, 11695, 33728, 37615, 33729, 21295, 33730, 12925, 33731, 32036, 33732, 13399, 33733, 20118, 33734, 48265, 33735, 16346, 33736, 23415, 33737, 25982, 33738, 21730, 33739, 38057, 33740, 22286, 33741, 28780, 33742, 23301, 33743, 17628, 33744, 30332, 33745, 45282, 33746, 15830, 33747, 17073, 33748, 15240, 33749, 26324, 33750, 10113, 33751, 11046, 33752, 35063, 33753, 11446, 33754, 45968, 33755, 27072, 33756, 9454, 33757, 7689, 33758, 24125, 33759, 37047, 33760, 9089, 33761, 17324, 33762, 8046, 33763, 31598, 33764, 21988, 33765, 38759, 33766, 31513, 33767, 12878, 33768, 20818, 33769, 30331, 33770, 12551, 33771, 21153, 33772, 31315, 33773, 35827, 33774, 16057, 33775, 18421, 33776, 16347, 33777, 25302, 33778, 14673, 33779, 31516, 33780, 7387, 33781, 37745, 33782, 8277, 33783, 47314, 33784, 41565, 33785, 21660, 33786, 20119, 33787, 25189, 33788, 35984, 33789, 34515, 33790, 36528, 33791, 12640, 33792, 18277, 33793, 30537, 33794, 17629, 33795, 12010, 33796, 36213, 33797, 11474, 33798, 8462, 33799, 10147, 33800, 18573, 33801, 14759, 33802, 23509, 33803, 30423, 33804, 27108, 33805, 30125, 33806, 37790, 33807, 12439, 33808, 33419, 33809, 18574, 33810, 41753, 33811, 42720, 33812, 36643, 33813, 30538, 33814, 37616, 33815, 9660, 33816, 28220, 33817, 46413, 33818, 37431, 33819, 21516, 33820, 36696, 33821, 26362, 33822, 8463, 33823, 43044, 33824, 29310, 33825, 9295, 33826, 29435, 33827, 13353, 33828, 43672, 33829, 43673, 33830, 43674, 33831, 39872, 33832, 33054, 33833, 31804, 33834, 22613, 33835, 39808, 33836, 37673, 33837, 44434, 33838, 44283, 33839, 15446, 33840, 24790, 33841, 41009, 33842, 41010, 33843, 28276, 33844, 9670, 33845, 38316, 33846, 11535, 33847, 39881, 33848, 44259, 33849, 8681, 33850, 26907, 33851, 7392, 33852, 14192, 33853, 26462, 33854, 43682, 33855, 23379, 33856, 23380, 33857, 20482, 33858, 27502, 33859, 48561, 33860, 48562, 33861, 48303, 33862, 8009, 33863, 32779, 33864, 39011, 33865, 42463, 33866, 7393, 33867, 32047, 33868, 20132, 33869, 15258, 33870, 26186, 33871, 21301, 33872, 29566, 33873, 14971, 33874, 17916, 33875, 17917, 33876, 18008, 33877, 41885, 33878, 37011, 33879, 46315, 33880, 48003, 33881, 39712, 33882, 32608, 33883, 15951, 33884, 30839, 33885, 31652, 33886, 27349, 33887, 18744, 33888, 33888, 33889, 30333, 33890, 15598, 33891, 13426, 33892, 47350, 33893, 20381, 33894, 37965, 33895, 9167, 33896, 37805, 33897, 29249, 33898, 19807, 33899, 18184, 33900, 45412, 33901, 19972, 33902, 13752, 33903, 42340, 33904, 35400, 33905, 11741, 33906, 32226, 33907, 37806, 33908, 46348, 33909, 23187, 33910, 36765, 33911, 19135, 33912, 39012, 33913, 34122, 33914, 30772, 33915, 23588, 33916, 48170, 33917, 42161, 33918, 44761, 33919, 26972, 33920, 45067, 33921, 34641, 33922, 12935, 33923, 47681, 33924, 16606, 33925, 32454, 33926, 41168, 33927, 10025, 33928, 22404, 33929, 23254, 33930, 18405, 33931, 20516, 33932, 25757, 33933, 37966, 33934, 29300, 33935, 44183, 33936, 35139, 33937, 43540, 33938, 34130, 33939, 11514, 33940, 34214, 33941, 45071, 33942, 46361, 33943, 23783, 33944, 32830, 33945, 27119, 33946, 24443, 33947, 32300, 33948, 35381, 33949, 44840, 33950, 24444, 33951, 21815, 33952, 38803, 33953, 7943, 33954, 11154, 33955, 40816, 33956, 37064, 33957, 25486, 33958, 19269, 33959, 13030, 33960, 31124, 33961, 48304, 33962, 30250, 33963, 12097, 33964, 44766, 33965, 11161, 33966, 44576, 33967, 22995, 33968, 29328, 33969, 30334, 33970, 30335, 33971, 28169, 33972, 34859, 33973, 38961, 33974, 14865, 33975, 45118, 33976, 46538, 33977, 20144, 33978, 19592, 33979, 33013, 33980, 9574, 33981, 14299, 33982, 27268, 33983, 17444, 33984, 35536, 33985, 46362, 33986, 27745, 33987, 35140, 33988, 40929, 33989, 25487, 33990, 38962, 33991, 16417, 33992, 23733, 33993, 32682, 33994, 38286, 33995, 15606, 33996, 12135, 33997, 34131, 33998, 36071, 33999, 26420, 34000, 32886, 34001, 35576, 34002, 41015, 34003, 8162, 34004, 42301, 34005, 16895, 34006, 8504, 34007, 48222, 34008, 16955, 34009, 48563, 34010, 36644, 34011, 9674, 34012, 29549, 34013, 23591, 34014, 12464, 34015, 19818, 34016, 24147, 34017, 33892, 34018, 23769, 34019, 44577, 34020, 25319, 34021, 43688, 34022, 27895, 34023, 13168, 34024, 36648, 34025, 26871, 34026, 36830, 34027, 11265, 34028, 29620, 34029, 7398, 34030, 24673, 34031, 11752, 34032, 39022, 34033, 30133, 34034, 31808, 34035, 21164, 34036, 11517, 34037, 20958, 34038, 37880, 34039, 37164, 34040, 9611, 34041, 44616, 34042, 43142, 34043, 48073, 34044, 24976, 34045, 8505, 34046, 25920, 34047, 40987, 34048, 9377, 34049, 46024, 34050, 23932, 34051, 31220, 34052, 26707, 34053, 41661, 34054, 25335, 34055, 19808, 34056, 8783, 34057, 16961, 34058, 17281, 34059, 12823, 34060, 35298, 34061, 26021, 34062, 33819, 34063, 33648, 34064, 12824, 34065, 27596, 34066, 41265, 34067, 26708, 34068, 9190, 34069, 12952, 34070, 12100, 34071, 46302, 34072, 33900, 34073, 41140, 34074, 38081, 34075, 18198, 34076, 7538, 34077, 27351, 34078, 25772, 34079, 11891, 34080, 47168, 34081, 9456, 34082, 30198, 34083, 20521, 34084, 27407, 34085, 11753, 34086, 28716, 34087, 19032, 34088, 22040, 34089, 43429, 34090, 20392, 34091, 28628, 34092, 34539, 34093, 43356, 34094, 17042, 34095, 10426, 34096, 18360, 34097, 33380, 34098, 22867, 34099, 31132, 34100, 26511, 34101, 45394, 34102, 45523, 34103, 31217, 34104, 13493, 34105, 24761, 34106, 25219, 34107, 22868, 34108, 7294, 34109, 8528, 34110, 24179, 34111, 37996, 34112, 19619, 34113, 31046, 34114, 34086, 34115, 14462, 34116, 27128, 34117, 29223, 34118, 10043, 34119, 13033, 34120, 41397, 34121, 20616, 34122, 32953, 34123, 32954, 34124, 24002, 34125, 44327, 34126, 31326, 34127, 11169, 34128, 18436, 34129, 20161, 34130, 26597, 34131, 45122, 34132, 7973, 34133, 44052, 34134, 32058, 34135, 26055, 34136, 32505, 34137, 19046, 34138, 14232, 34139, 36375, 34140, 14729, 34141, 22180, 34142, 48454, 34143, 14448, 34144, 32836, 34145, 14874, 34146, 23265, 34147, 34835, 34148, 32948, 34149, 41486, 34150, 40782, 34151, 15480, 34152, 22181, 34153, 12571, 34154, 38485, 34155, 13431, 34156, 34940, 34157, 39917, 34158, 39125, 34159, 25639, 34160, 38166, 34161, 33703, 34162, 30596, 34163, 20162, 34164, 45192, 34165, 35539, 34166, 25349, 34167, 44636, 34168, 39258, 34169, 38302, 34170, 19620, 34171, 17943, 34172, 35041, 34173, 28993, 34174, 24005, 34175, 41031, 34176, 45197, 34177, 44617, 34178, 38975, 34179, 17543, 34180, 7988, 34181, 17447, 34182, 7344, 34183, 37827, 34184, 19062, 34185, 19063, 34186, 19865, 34187, 11654, 34188, 39718, 34189, 37685, 34190, 27598, 34191, 43205, 34192, 24092, 34193, 20495, 34194, 9553, 34195, 33910, 34196, 31225, 34197, 24707, 34198, 22629, 34199, 44858, 34200, 12209, 34201, 36468, 34202, 36044, 34203, 41172, 34204, 8571, 34205, 45871, 34206, 35540, 34207, 39377, 34208, 14515, 34209, 13337, 34210, 40304, 34211, 16449, 34212, 40305, 34213, 34594, 34214, 20413, 34215, 17448, 34216, 17848, 34217, 33073, 34218, 40410, 34219, 41269, 34220, 42353, 34221, 7797, 34222, 35198, 34223, 34595, 34224, 41275, 34225, 13833, 34226, 30057, 34227, 38003, 34228, 28912, 34229, 11082, 34230, 26586, 34231, 32846, 34232, 29984, 34233, 35848, 34234, 19880, 34235, 45454, 34236, 10439, 34237, 46381, 34238, 14371, 34239, 28551, 34240, 43707, 34241, 15848, 34242, 11818, 34243, 39923, 34244, 30612, 34245, 14435, 34246, 20292, 34247, 40961, 34248, 23209, 34249, 19643, 34250, 8693, 34251, 13179, 34252, 27426, 34253, 23607, 34254, 21260, 34255, 9587, 34256, 27562, 34257, 31772, 34258, 31453, 34259, 39552, 34260, 24961, 34261, 29227, 34262, 39489, 34263, 35338, 34264, 26124, 34265, 43236, 34266, 40971, 34267, 40199, 34268, 24211, 34269, 43237, 34270, 23433, 34271, 24016, 34272, 20790, 34273, 12836, 34274, 46859, 34275, 8100, 34276, 36291, 34277, 42363, 34278, 27932, 34279, 18693, 34280, 8807, 34281, 14468, 34282, 35201, 34283, 35961, 34284, 37166, 34285, 31781, 34286, 31338, 34287, 38116, 34288, 25524, 34289, 19079, 34290, 29197, 34291, 15851, 34292, 45203, 34293, 8023, 34294, 24547, 34295, 34602, 34296, 11184, 34297, 7301, 34298, 25235, 34299, 45457, 34300, 41043, 34301, 31609, 34302, 23566, 34303, 19310, 34304, 37440, 34305, 38664, 34306, 32959, 34307, 32960, 34308, 30631, 34309, 17811, 34310, 25877, 34311, 35226, 34312, 37195, 34313, 27167, 34314, 45210, 34315, 30156, 34316, 44474, 34317, 41282, 34318, 19896, 34319, 21451, 34320, 41044, 34321, 27815, 34322, 31825, 34323, 35227, 34324, 21452, 34325, 29652, 34326, 28847, 34327, 9291, 34328, 32473, 34329, 43269, 34330, 39563, 34331, 44371, 34332, 21783, 34333, 24772, 34334, 24773, 34335, 43506, 34336, 31229, 34337, 43639, 34338, 25661, 34339, 36978, 34340, 18410, 34341, 45032, 34342, 25379, 34343, 32093, 34344, 42264, 34345, 14532, 34346, 26999, 34347, 17384, 34348, 23169, 34349, 23629, 34350, 19906, 34351, 12583, 34352, 26725, 34353, 24075, 34354, 23963, 34355, 18906, 34356, 14997, 34357, 46707, 34358, 38128, 34359, 23217, 34360, 46002, 34361, 18520, 34362, 24240, 34363, 19914, 34364, 27315, 34365, 24031, 34366, 18533, 34367, 26390, 34368, 19496, 34369, 23221, 34370, 26107, 34371, 20217, 34372, 33090, 34373, 36303, 34374, 23973, 34375, 32284, 34376, 39954, 34377, 43303, 34378, 26256, 34379, 27085, 34380, 8882, 34381, 18079, 34382, 18271, 34383, 25909, 34384, 29103, 34385, 26178, 34386, 34901, 34387, 39863, 34388, 31011, 34389, 11247, 34390, 18104, 34391, 40741, 34392, 12091, 34393, 15241, 34394, 40742, 34395, 40756, 34396, 25915, 34397, 18281, 34398, 44307, 34399, 17525, 34400, 20608, 34401, 21891, 34402, 17046, 34403, 8063, 34404, 41674, 34405, 45986, 34406, 45987, 34407, 23162, 34408, 8948, 34409, 39152, 34410, 34694, 34411, 10965, 34412, 31846, 34413, 13103, 34414, 19692, 34415, 31851, 34416, 13316, 34417, 34102, 34418, 39181, 34419, 22105, 34420, 46197, 34421, 33769, 34422, 44193, 34423, 17224, 34424, 48095, 34425, 17893, 34426, 18850, 34427, 27104, 34428, 16022, 34429, 35390, 34430, 39186, 34431, 9878, 34432, 34197, 34433, 42837, 34434, 26532, 34435, 39764, 34436, 14620, 34437, 14163, 34438, 7660, 34439, 10781, 34440, 30920, 34441, 38189, 34442, 38190, 34443, 32966, 34444, 7931, 34445, 29768, 34446, 44975, 34447, 44976, 34448, 22283, 34449, 30520, 34450, 36863, 34451, 43470, 34452, 30521, 34453, 9493, 34454, 44811, 34455, 22114, 34456, 18925, 34457, 31514, 34458, 30522, 34459, 47216, 34460, 41456, 34461, 17458, 34462, 28060, 34463, 37719, 34464, 14855, 34465, 14856, 34466, 17416, 34467, 16145, 34468, 45444, 34469, 15426, 34470, 32411, 34471, 21061, 34472, 15219, 34473, 10657, 34474, 13517, 34475, 8047, 34476, 39529, 34477, 28492, 34478, 12293, 34479, 31802, 34480, 44022, 34481, 45762, 34482, 30126, 34483, 10721, 34484, 44164, 34485, 17630, 34486, 17187, 34487, 21873, 34488, 24413, 34489, 15435, 34490, 32414, 34491, 45686, 34492, 16276, 34493, 29776, 34494, 29777, 34495, 39439, 34496, 47575, 34497, 13114, 34498, 8892, 34499, 9018, 34500, 16348, 34501, 45850, 34502, 31974, 34503, 33773, 34504, 36702, 34505, 25303, 34506, 16410, 34507, 12440, 34508, 16411, 34509, 43675, 34510, 24414, 34511, 10497, 34512, 31981, 34513, 27974, 34514, 15952, 34515, 11699, 34516, 18929, 34517, 18930, 34518, 26767, 34519, 15447, 34520, 42044, 34521, 37459, 34522, 25058, 34523, 47412, 34524, 42595, 34525, 39448, 34526, 23381, 34527, 20599, 34528, 24427, 34529, 43082, 34530, 30134, 34531, 30431, 34532, 17106, 34533, 33777, 34534, 42727, 34535, 37752, 34536, 27885, 34537, 31741, 34538, 31433, 34539, 16853, 34540, 31742, 34541, 46976, 34542, 26635, 34543, 23859, 34544, 46222, 34545, 20021, 34546, 28342, 34547, 34912, 34548, 30554, 34549, 40481, 34550, 21071, 34551, 31908, 34552, 33698, 34553, 43911, 34554, 20027, 34555, 37220, 34556, 10300, 34557, 8163, 34558, 14092, 34559, 17339, 34560, 34589, 34561, 41068, 34562, 14975, 34563, 33989, 34564, 33990, 34565, 15375, 34566, 39638, 34567, 46175, 34568, 38481, 34569, 15271, 34570, 24148, 34571, 23743, 34572, 8506, 34573, 11162, 34574, 44767, 34575, 44109, 34576, 20944, 34577, 12445, 34578, 41650, 34579, 36766, 34580, 13065, 34581, 37221, 34582, 18931, 34583, 38321, 34584, 46690, 34585, 35070, 34586, 14685, 34587, 21679, 34588, 27408, 34589, 30585, 34590, 30586, 34591, 44599, 34592, 22339, 34593, 23452, 34594, 27211, 34595, 31176, 34596, 34925, 34597, 38824, 34598, 26333, 34599, 24456, 34600, 13253, 34601, 36654, 34602, 36220, 34603, 23317, 34604, 17254, 34605, 17351, 34606, 44600, 34607, 7946, 34608, 14707, 34609, 29797, 34610, 37816, 34611, 13861, 34612, 43143, 34613, 44775, 34614, 35661, 34615, 32236, 34616, 31089, 34617, 32975, 34618, 28507, 34619, 31629, 34620, 38082, 34621, 24868, 34622, 17080, 34623, 37551, 34624, 13408, 34625, 14217, 34626, 7856, 34627, 12953, 34628, 37760, 34629, 9501, 34630, 42098, 34631, 43691, 34632, 17004, 34633, 9939, 34634, 13364, 34635, 23453, 34636, 22637, 34637, 20945, 34638, 40072, 34639, 36776, 34640, 26930, 34641, 40783, 34642, 27457, 34643, 44328, 34644, 20843, 34645, 34219, 34646, 41028, 34647, 18767, 34648, 41800, 34649, 8650, 34650, 32787, 34651, 37822, 34652, 15481, 34653, 44851, 34654, 27055, 34655, 38092, 34656, 15300, 34657, 32837, 34658, 40146, 34659, 44053, 34660, 31918, 34661, 26841, 34662, 39200, 34663, 43605, 34664, 34143, 34665, 10977, 34666, 36041, 34667, 47421, 34668, 48189, 34669, 36376, 34670, 15482, 34671, 44852, 34672, 23202, 34673, 27129, 34674, 23458, 34675, 13615, 34676, 18209, 34677, 31813, 34678, 13258, 34679, 24464, 34680, 38323, 34681, 45075, 34682, 32140, 34683, 28285, 34684, 25778, 34685, 11482, 34686, 32696, 34687, 43696, 34688, 20491, 34689, 7890, 34690, 23746, 34691, 29413, 34692, 34944, 34693, 38869, 34694, 11709, 34695, 38870, 34696, 44859, 34697, 38274, 34698, 24708, 34699, 35158, 34700, 7832, 34701, 32701, 34702, 32702, 34703, 19633, 34704, 38439, 34705, 40713, 34706, 17367, 34707, 31547, 34708, 42777, 34709, 8335, 34710, 18437, 34711, 36097, 34712, 42869, 34713, 13716, 34714, 28233, 34715, 17676, 34716, 18230, 34717, 16792, 34718, 26540, 34719, 27752, 34720, 43206, 34721, 38206, 34722, 43703, 34723, 36260, 34724, 47172, 34725, 9578, 34726, 33221, 34727, 30604, 34728, 26686, 34729, 36692, 34730, 33654, 34731, 34403, 34732, 9625, 34733, 10683, 34734, 12969, 34735, 7554, 34736, 26071, 34737, 38109, 34738, 47083, 34739, 36100, 34740, 10436, 34741, 29971, 34742, 32071, 34743, 29809, 34744, 44350, 34745, 20422, 34746, 26373, 34747, 25784, 34748, 31578, 34749, 47174, 34750, 43501, 34751, 20500, 34752, 34723, 34753, 38210, 34754, 39924, 34755, 37688, 34756, 46257, 34757, 46308, 34758, 26517, 34759, 26518, 34760, 17015, 34761, 25515, 34762, 26846, 34763, 38883, 34764, 11779, 34765, 24203, 34766, 26690, 34767, 39925, 34768, 10213, 34769, 46033, 34770, 26794, 34771, 39828, 34772, 27933, 34773, 48419, 34774, 34952, 34775, 31822, 34776, 36262, 34777, 46770, 34778, 29642, 34779, 29643, 34780, 20731, 34781, 32083, 34782, 8873, 34783, 24948, 34784, 29343, 34785, 16868, 34786, 39036, 34787, 19717, 34788, 47657, 34789, 18779, 34790, 14708, 34791, 23833, 34792, 22212, 34793, 22213, 34794, 19090, 34795, 43444, 34796, 9961, 34797, 20638, 34798, 33616, 34799, 28356, 34800, 39936, 34801, 38499, 34802, 10980, 34803, 41353, 34804, 34953, 34805, 11185, 34806, 10525, 34807, 12516, 34808, 24318, 34809, 40341, 34810, 33620, 34811, 42877, 34812, 21365, 34813, 12214, 34814, 9966, 34815, 30823, 34816, 11611, 34817, 39783, 34818, 33828, 34819, 26429, 34820, 31552, 34821, 43719, 34822, 9885, 34823, 24524, 34824, 45590, 34825, 41045, 34826, 24730, 34827, 47479, 34828, 45553, 34829, 40077, 34830, 26796, 34831, 40342, 34832, 30643, 34833, 32725, 34834, 20319, 34835, 27219, 34836, 17490, 34837, 32854, 34838, 19311, 34839, 47948, 34840, 21011, 34841, 30062, 34842, 17573, 34843, 27617, 34844, 14536, 34845, 24028, 34846, 21008, 34847, 23481, 34848, 27721, 34849, 24241, 34850, 11546, 34851, 24567, 34852, 31832, 34853, 28859, 34854, 25895, 34855, 13723, 34856, 39949, 34857, 47445, 34858, 25685, 34859, 24242, 34860, 25686, 34861, 14999, 34862, 42393, 34863, 29821, 34864, 28303, 34865, 16465, 34866, 21980, 34867, 43654, 34868, 34610, 34869, 38935, 34870, 9520, 34871, 32119, 34872, 32261, 34873, 13725, 34874, 9521, 34875, 26673, 34876, 32124, 34877, 21022, 34878, 47493, 34879, 47851, 34880, 41216, 34881, 18711, 34882, 29083, 34883, 29499, 34884, 29087, 34885, 40441, 34886, 47224, 34887, 26610, 34888, 14390, 34889, 22368, 34890, 27618, 34891, 39179, 34892, 40508, 34893, 41744, 34894, 22490, 34895, 44906, 34896, 32037, 34897, 25304, 34898, 41129, 34899, 34642, 34900, 39440, 34901, 36935, 34902, 39809, 34903, 20832, 34904, 39455, 34905, 41464, 34906, 18211, 34907, 38094, 34908, 12654, 34909, 10943, 34910, 38099, 34911, 12659, 34912, 47818, 34913, 17802, 34914, 32120, 34915, 42564, 34916, 42562, 34917, 9316, 34918, 15672, 34919, 44230, 34920, 8833, 34921, 9815, 34922, 42662, 34923, 33481, 34924, 10462, 34925, 15101, 34926, 16945, 34927, 14818, 34928, 34705, 34929, 20886, 34930, 28141, 34931, 47156, 34932, 12396, 34933, 42993, 34934, 47214, 34935, 47160, 34936, 21057, 34937, 46818, 34938, 40109, 34939, 32407, 34940, 46653, 34941, 32595, 34942, 31479, 34943, 21107, 34944, 22279, 34945, 44813, 34946, 27037, 34947, 9879, 34948, 7577, 34949, 28711, 34950, 18852, 34951, 32408, 34952, 19966, 34953, 37356, 34954, 25440, 34955, 12295, 34956, 8048, 34957, 29450, 34958, 42335, 34959, 48555, 34960, 8449, 34961, 33742, 34962, 35982, 34963, 21874, 34964, 17713, 34965, 41185, 34966, 40701, 34967, 46409, 34968, 42710, 34969, 29267, 34970, 9082, 34971, 12774, 34972, 37498, 34973, 15427, 34974, 16949, 34975, 46916, 34976, 46948, 34977, 32412, 34978, 29368, 34979, 43021, 34980, 26899, 34981, 37312, 34982, 28148, 34983, 16244, 34984, 41122, 34985, 46209, 34986, 31966, 34987, 8136, 34988, 44532, 34989, 38954, 34990, 27257, 34991, 9146, 34992, 9090, 34993, 15242, 34994, 10792, 34995, 10787, 34996, 22942, 34997, 32603, 34998, 20546, 34999, 20017, 35000, 20369, 35001, 9160, 35002, 20913, 35003, 14329, 35004, 15894, 35005, 32823, 35006, 47406, 35007, 16771, 35008, 43340, 35009, 9429, 35010, 25059, 35011, 22375, 35012, 40577, 35013, 47726, 35014, 12498, 35015, 40757, 35016, 23302, 35017, 22754, 35018, 28714, 35019, 34651, 35020, 20022, 35021, 23345, 35022, 10583, 35023, 24301, 35024, 21968, 35025, 33889, 35026, 30281, 35027, 15954, 35028, 43119, 35029, 44558, 35030, 46414, 35031, 25478, 35032, 31909, 35033, 32391, 35034, 19819, 35035, 43120, 35036, 9322, 35037, 47727, 35038, 34811, 35039, 33382, 35040, 32394, 35041, 24296, 35042, 24664, 35043, 24758, 35044, 22947, 35045, 20256, 35046, 15069, 35047, 9908, 35048, 8507, 35049, 23311, 35050, 36218, 35051, 44920, 35052, 25321, 35053, 10796, 35054, 10119, 35055, 11059, 35056, 13936, 35057, 8835, 35058, 24864, 35059, 33683, 35060, 29518, 35061, 29519, 35062, 14682, 35063, 44768, 35064, 26421, 35065, 17081, 35066, 41783, 35067, 13611, 35068, 36453, 35069, 47021, 35070, 21675, 35071, 42856, 35072, 30564, 35073, 17076, 35074, 16560, 35075, 22755, 35076, 30434, 35077, 36456, 35078, 36366, 35079, 15468, 35080, 10974, 35081, 40282, 35082, 8685, 35083, 13254, 35084, 23318, 35085, 13733, 35086, 40710, 35087, 40711, 35088, 17724, 35089, 44921, 35090, 7974, 35091, 8013, 35092, 15469, 35093, 44318, 35094, 37159, 35095, 41796, 35096, 18883, 35097, 8170, 35098, 11204, 35099, 26157, 35100, 29459, 35101, 12364, 35102, 45146, 35103, 35680, 35104, 16256, 35105, 12155, 35106, 18508, 35107, 32697, 35108, 44922, 35109, 32890, 35110, 28232, 35111, 21487, 35112, 35624, 35113, 7833, 35114, 37224, 35115, 10801, 35116, 33194, 35117, 28722, 35118, 43611, 35119, 21077, 35120, 30962, 35121, 18511, 35122, 22952, 35123, 24695, 35124, 23596, 35125, 24180, 35126, 46287, 35127, 34150, 35128, 26163, 35129, 43207, 35130, 13191, 35131, 40314, 35132, 39382, 35133, 38110, 35134, 8840, 35135, 9621, 35136, 19450, 35137, 31244, 35138, 33340, 35139, 7975, 35140, 39722, 35141, 8553, 35142, 15321, 35143, 20293, 35144, 47700, 35145, 20294, 35146, 12038, 35147, 19644, 35148, 12376, 35149, 45258, 35150, 14519, 35151, 9227, 35152, 39826, 35153, 40419, 35154, 8900, 35155, 32507, 35156, 26687, 35157, 23608, 35158, 7585, 35159, 45549, 35160, 16923, 35161, 9640, 35162, 35501, 35163, 28999, 35164, 9914, 35165, 24767, 35166, 8611, 35167, 21134, 35168, 12512, 35169, 34604, 35170, 36003, 35171, 8612, 35172, 23617, 35173, 15331, 35174, 32852, 35175, 46861, 35176, 13844, 35177, 34607, 35178, 37510, 35179, 34416, 35180, 7776, 35181, 40177, 35182, 9259, 35183, 10479, 35184, 23571, 35185, 25678, 35186, 38991, 35187, 39404, 35188, 23638, 35189, 46289, 35190, 12329, 35191, 21832, 35192, 45379, 35193, 34166, 35194, 20334, 35195, 29378, 35196, 43297, 35197, 23648, 35198, 41495, 35199, 38687, 35200, 38688, 35201, 42331, 35202, 15032, 35203, 35925, 35204, 15448, 35205, 15060, 35206, 15513, 35207, 7731, 35208, 17691, 35209, 19498, 35210, 19506, 35211, 20347, 35212, 16598, 35213, 8721, 35214, 41866, 35215, 16772, 35216, 22125, 35217, 29948, 35218, 26900, 35219, 27384, 35220, 27385, 35221, 27589, 35222, 34341, 35223, 35020, 35224, 9906, 35225, 26366, 35226, 22146, 35227, 27400, 35228, 36686, 35229, 24680, 35230, 42347, 35231, 47022, 35232, 22291, 35233, 38968, 35234, 33556, 35235, 37824, 35236, 39126, 35237, 36588, 35238, 44339, 35239, 23669, 35240, 14247, 35241, 13675, 35242, 31491, 35243, 29423, 35244, 19881, 35245, 27754, 35246, 43708, 35247, 16321, 35248, 32012, 35249, 45991, 35250, 21264, 35251, 16616, 35252, 12724, 35253, 20438, 35254, 26379, 35255, 32166, 35256, 20196, 35257, 37911, 35258, 22230, 35259, 32018, 35260, 26382, 35261, 23680, 35262, 33966, 35263, 12852, 35264, 16628, 35265, 20345, 35266, 16595, 35267, 41854, 35268, 16752, 35269, 27374, 35270, 34303, 35271, 9899, 35272, 23654, 35273, 22106, 35274, 19779, 35275, 38955, 35276, 12813, 35277, 36577, 35278, 44308, 35279, 16313, 35280, 21244, 35281, 32158, 35282, 20658, 35283, 31857, 35284, 21108, 35285, 11862, 35286, 22126, 35287, 46949, 35288, 10283, 35289, 19550, 35290, 16350, 35291, 12446, 35292, 48012, 35293, 12881, 35294, 33640, 35295, 18475, 35296, 32231, 35297, 15963, 35298, 34368, 35299, 21028, 35300, 16856, 35301, 16159, 35302, 11266, 35303, 21029, 35304, 19186, 35305, 31912, 35306, 40487, 35307, 35299, 35308, 28510, 35309, 19430, 35310, 26036, 35311, 47040, 35312, 45662, 35313, 8572, 35314, 40499, 35315, 18236, 35316, 33655, 35317, 16179, 35318, 47110, 35319, 41204, 35320, 11289, 35321, 38904, 35322, 42805, 35323, 24604, 35324, 22237, 35325, 38931, 35326, 41961, 35327, 38938, 35328, 41613, 35329, 41614, 35330, 13349, 35331, 15419, 35332, 31858, 35333, 31859, 35334, 20758, 35335, 17823, 35336, 19764, 35337, 14454, 35338, 41377, 35339, 13153, 35340, 17967, 35341, 9880, 35342, 36241, 35343, 40739, 35344, 20904, 35345, 42711, 35346, 32598, 35347, 41378, 35348, 43402, 35349, 33574, 35350, 30751, 35351, 37313, 35352, 19780, 35353, 41379, 35354, 43403, 35355, 14082, 35356, 14825, 35357, 41521, 35358, 42155, 35359, 35118, 35360, 33946, 35361, 43410, 35362, 40391, 35363, 22127, 35364, 39972, 35365, 28422, 35366, 10415, 35367, 44023, 35368, 46831, 35369, 40595, 35370, 14654, 35371, 40442, 35372, 10221, 35373, 33799, 35374, 41640, 35375, 33034, 35376, 47824, 35377, 40830, 35378, 43047, 35379, 43048, 35380, 35269, 35381, 10665, 35382, 17567, 35383, 33890, 35384, 17638, 35385, 40916, 35386, 46416, 35387, 47580, 35388, 46600, 35389, 16295, 35390, 48014, 35391, 48110, 35392, 45854, 35393, 16418, 35394, 15449, 35395, 20257, 35396, 13236, 35397, 25308, 35398, 12882, 35399, 42118, 35400, 24428, 35401, 28343, 35402, 29370, 35403, 47351, 35404, 15714, 35405, 43085, 35406, 21881, 35407, 42341, 35408, 45765, 35409, 42729, 35410, 42730, 35411, 32138, 35412, 46142, 35413, 30135, 35414, 8481, 35415, 40618, 35416, 31983, 35417, 7691, 35418, 12197, 35419, 48369, 35420, 36169, 35421, 47512, 35422, 11634, 35423, 46223, 35424, 43904, 35425, 40835, 35426, 41328, 35427, 43121, 35428, 18815, 35429, 17650, 35430, 34369, 35431, 9795, 35432, 40029, 35433, 34132, 35434, 17776, 35435, 9837, 35436, 16304, 35437, 16857, 35438, 32232, 35439, 19019, 35440, 20946, 35441, 18476, 35442, 15567, 35443, 39754, 35444, 37814, 35445, 33893, 35446, 47355, 35447, 36879, 35448, 27273, 35449, 45860, 35450, 27774, 35451, 14209, 35452, 18876, 35453, 41658, 35454, 40598, 35455, 16561, 35456, 14392, 35457, 9053, 35458, 36675, 35459, 42745, 35460, 23997, 35461, 47416, 35462, 23079, 35463, 22968, 35464, 38430, 35465, 44579, 35466, 36276, 35467, 19841, 35468, 47024, 35469, 32614, 35470, 11892, 35471, 23772, 35472, 14095, 35473, 23098, 35474, 14293, 35475, 34380, 35476, 36813, 35477, 12449, 35478, 8171, 35479, 9940, 35480, 44174, 35481, 22778, 35482, 31373, 35483, 31488, 35484, 34704, 35485, 7399, 35486, 44448, 35487, 40033, 35488, 10591, 35489, 21074, 35490, 39645, 35491, 38435, 35492, 38639, 35493, 15871, 35494, 35124, 35495, 9304, 35496, 19033, 35497, 21412, 35498, 34844, 35499, 46474, 35500, 34845, 35501, 13613, 35502, 18404, 35503, 10209, 35504, 34790, 35505, 20968, 35506, 22720, 35507, 32001, 35508, 11812, 35509, 39981, 35510, 35479, 35511, 37761, 35512, 39466, 35513, 14730, 35514, 10681, 35515, 35756, 35516, 43166, 35517, 28606, 35518, 43440, 35519, 13172, 35520, 29844, 35521, 47909, 35522, 10044, 35523, 10384, 35524, 47817, 35525, 19853, 35526, 30454, 35527, 35942, 35528, 47795, 35529, 37997, 35530, 21682, 35531, 31677, 35532, 13432, 35533, 46603, 35534, 45531, 35535, 48273, 35536, 30958, 35537, 47910, 35538, 24889, 35539, 20403, 35540, 11275, 35541, 17475, 35542, 26349, 35543, 33953, 35544, 8837, 35545, 18491, 35546, 29938, 35547, 44330, 35548, 13264, 35549, 40788, 35550, 29951, 35551, 34399, 35552, 41033, 35553, 34400, 35554, 19190, 35555, 18492, 35556, 14248, 35557, 47231, 35558, 12964, 35559, 40154, 35560, 15310, 35561, 30378, 35562, 36777, 35563, 20414, 35564, 30710, 35565, 44638, 35566, 48040, 35567, 47656, 35568, 39032, 35569, 19065, 35570, 43364, 35571, 7406, 35572, 39477, 35573, 28262, 35574, 10437, 35575, 15035, 35576, 47425, 35577, 42058, 35578, 41923, 35579, 18772, 35580, 41034, 35581, 15986, 35582, 29157, 35583, 30459, 35584, 27983, 35585, 42504, 35586, 38100, 35587, 40495, 35588, 36287, 35589, 47291, 35590, 33610, 35591, 20296, 35592, 30202, 35593, 23271, 35594, 18823, 35595, 19291, 35596, 15920, 35597, 43709, 35598, 27282, 35599, 40001, 35600, 27428, 35601, 39035, 35602, 31191, 35603, 10388, 35604, 41245, 35605, 36390, 35606, 35342, 35607, 7954, 35608, 10751, 35609, 30967, 35610, 34405, 35611, 20532, 35612, 44862, 35613, 40317, 35614, 17740, 35615, 36188, 35616, 42248, 35617, 42249, 35618, 25837, 35619, 44356, 35620, 8808, 35621, 11838, 35622, 31704, 35623, 24204, 35624, 27806, 35625, 27807, 35626, 33656, 35627, 46263, 35628, 27781, 35629, 20308, 35630, 45550, 35631, 20847, 35632, 24717, 35633, 25786, 35634, 9557, 35635, 29198, 35636, 16981, 35637, 38980, 35638, 47935, 35639, 7557, 35640, 7558, 35641, 21178, 35642, 46264, 35643, 42797, 35644, 18142, 35645, 20569, 35646, 26657, 35647, 10258, 35648, 17379, 35649, 18443, 35650, 10061, 35651, 40800, 35652, 45619, 35653, 33328, 35654, 38905, 35655, 45667, 35656, 13841, 35657, 46615, 35658, 28358, 35659, 23618, 35660, 14109, 35661, 43640, 35662, 22220, 35663, 19480, 35664, 48492, 35665, 20736, 35666, 9290, 35667, 19099, 35668, 47705, 35669, 38503, 35670, 45598, 35671, 45714, 35672, 34230, 35673, 31389, 35674, 35965, 35675, 45599, 35676, 30384, 35677, 34047, 35678, 41047, 35679, 45486, 35680, 35970, 35681, 12529, 35682, 35514, 35683, 39565, 35684, 19485, 35685, 20797, 35686, 21366, 35687, 45997, 35688, 28301, 35689, 42624, 35690, 7302, 35691, 45888, 35692, 29899, 35693, 18964, 35694, 18502, 35695, 43270, 35696, 43271, 35697, 33621, 35698, 32498, 35699, 29046, 35700, 31101, 35701, 13851, 35702, 35796, 35703, 18378, 35704, 47298, 35705, 17491, 35706, 7369, 35707, 43647, 35708, 20449, 35709, 44695, 35710, 20328, 35711, 19111, 35712, 13646, 35713, 46270, 35714, 41161, 35715, 45374, 35716, 24032, 35717, 33967, 35718, 38138, 35719, 10074, 35720, 24613, 35721, 42808, 35722, 8759, 35723, 46276, 35724, 41962, 35725, 14282, 35726, 11097, 35727, 38142, 35728, 11098, 35729, 42379, 35730, 9995, 35731, 32499, 35732, 43513, 35733, 23645, 35734, 10482, 35735, 40189, 35736, 28867, 35737, 18556, 35738, 45381, 35739, 43307, 35740, 12539, 35741, 45903, 35742, 41976, 35743, 13662, 35744, 41606, 35745, 19727, 35746, 13342, 35747, 15400, 35748, 32568, 35749, 19336, 35750, 20864, 35751, 17965, 35752, 36239, 35753, 32496, 35754, 33563, 35755, 30715, 35756, 37293, 35757, 41362, 35758, 42899, 35759, 41363, 35760, 19728, 35761, 32571, 35762, 20510, 35763, 18973, 35764, 29172, 35765, 21840, 35766, 41496, 35767, 28416, 35768, 40818, 35769, 14069, 35770, 26346, 35771, 40584, 35772, 35110, 35773, 15040, 35774, 33789, 35775, 14639, 35776, 22080, 35777, 46590, 35778, 16387, 35779, 17556, 35780, 30100, 35781, 48357, 35782, 34294, 35783, 40610, 35784, 45750, 35785, 35239, 35786, 46394, 35787, 12862, 35788, 47240, 35789, 11614, 35790, 31950, 35791, 46127, 35792, 8408, 35793, 42938, 35794, 42651, 35795, 23063, 35796, 23986, 35797, 34304, 35798, 16552, 35799, 34103, 35800, 19531, 35801, 18843, 35802, 10542, 35803, 47392, 35804, 33856, 35805, 18462, 35806, 12428, 35807, 16286, 35808, 32194, 35809, 16824, 35810, 41298, 35811, 42965, 35812, 46504, 35813, 15552, 35814, 39741, 35815, 9828, 35816, 19170, 35817, 40823, 35818, 47248, 35819, 21058, 35820, 38419, 35821, 44410, 35822, 31359, 35823, 38605, 35824, 15858, 35825, 44156, 35826, 18985, 35827, 23092, 35828, 34842, 35829, 35113, 35830, 14292, 35831, 31669, 35832, 47401, 35833, 48262, 35834, 29137, 35835, 13600, 35836, 47870, 35837, 14715, 35838, 22692, 35839, 37946, 35840, 44252, 35841, 33840, 35842, 33940, 35843, 13154, 35844, 10014, 35845, 24877, 35846, 47814, 35847, 35454, 35848, 35917, 35849, 33941, 35850, 43022, 35851, 27971, 35852, 10416, 35853, 13220, 35854, 18813, 35855, 20371, 35856, 40116, 35857, 41233, 35858, 42457, 35859, 38058, 35860, 14173, 35861, 44533, 35862, 40999, 35863, 9924, 35864, 47989, 35865, 7388, 35866, 41874, 35867, 12926, 35868, 27263, 35869, 29924, 35870, 40744, 35871, 27785, 35872, 12525, 35873, 35270, 35874, 40253, 35875, 42204, 35876, 7938, 35877, 34357, 35878, 30933, 35879, 27390, 35880, 21157, 35881, 26637, 35882, 46227, 35883, 20268, 35884, 27780, 35885, 35932, 35886, 45597, 35887, 31319, 35888, 23593, 35889, 30376, 35890, 22168, 35891, 41909, 35892, 31091, 35893, 45866, 35894, 10476, 35895, 16388, 35896, 30921, 35897, 17907, 35898, 39191, 35899, 19563, 35900, 17927, 35901, 17196, 35902, 17843, 35903, 38884, 35904, 38885, 35905, 19206, 35906, 24949, 35907, 17288, 35908, 13647, 35909, 25689, 35910, 13525, 35911, 20477, 35912, 30683, 35913, 34344, 35914, 24302, 35915, 12708, 35916, 37553, 35917, 8332, 35918, 34673, 35919, 39668, 35920, 14987, 35921, 47119, 35922, 47133, 35923, 41977, 35924, 41979, 35925, 34245, 35926, 11231, 35927, 18859, 35928, 37258, 35929, 43049, 35930, 37259, 35931, 43050, 35932, 20120, 35933, 7665, 35934, 18062, 35935, 14195, 35936, 11155, 35937, 39805, 35938, 18677, 35939, 20145, 35940, 22743, 35941, 15568, 35942, 21892, 35943, 15127, 35944, 38826, 35945, 8940, 35946, 17468, 35947, 44618, 35948, 47426, 35949, 19990, 35950, 14881, 35951, 38886, 35952, 9228, 35953, 38167, 35954, 18603, 35955, 8949, 35956, 12842, 35957, 48199, 35958, 14887, 35959, 43258, 35960, 46876, 35961, 8043, 35962, 9864, 35963, 7456, 35964, 29778, 35965, 28155, 35966, 29713, 35967, 16280, 35968, 28160, 35969, 44167, 35970, 13116, 35971, 27886, 35972, 35025, 35973, 40653, 35974, 18584, 35975, 23312, 35976, 17652, 35977, 17464, 35978, 27896, 35979, 7468, 35980, 26923, 35981, 24171, 35982, 28511, 35983, 8386, 35984, 44461, 35985, 19991, 35986, 37118, 35987, 26809, 35988, 29810, 35989, 38887, 35990, 43224, 35991, 21934, 35992, 27930, 35993, 11142, 35994, 35966, 35995, 18557, 35996, 22257, 35997, 8116, 35998, 46329, 35999, 44806, 36000, 15420, 36001, 9428, 36002, 16221, 36003, 36252, 36004, 42712, 36005, 17421, 36006, 37587, 36007, 30050, 36008, 19257, 36009, 14586, 36010, 35893, 36011, 16661, 36012, 45508, 36013, 46951, 36014, 14389, 36015, 47581, 36016, 34358, 36017, 8482, 36018, 48015, 36019, 14391, 36020, 16891, 36021, 29950, 36022, 8678, 36023, 26594, 36024, 12301, 36025, 34079, 36026, 23125, 36027, 14765, 36028, 36699, 36029, 42732, 36030, 10727, 36031, 26908, 36032, 17717, 36033, 8483, 36034, 26004, 36035, 25216, 36036, 19021, 36037, 15569, 36038, 29932, 36039, 48016, 36040, 20066, 36041, 40932, 36042, 45585, 36043, 20696, 36044, 15570, 36045, 45390, 36046, 20385, 36047, 43606, 36048, 41393, 36049, 46475, 36050, 33760, 36051, 8941, 36052, 8942, 36053, 31913, 36054, 33761, 36055, 11374, 36056, 45395, 36057, 47280, 36058, 23550, 36059, 45356, 36060, 11710, 36061, 10385, 36062, 33667, 36063, 36590, 36064, 29525, 36065, 16068, 36066, 39467, 36067, 26617, 36068, 20404, 36069, 35481, 36070, 15483, 36071, 36024, 36072, 11813, 36073, 11814, 36074, 47043, 36075, 19432, 36076, 46082, 36077, 13676, 36078, 21251, 36079, 40601, 36080, 11542, 36081, 45154, 36082, 8020, 36083, 45289, 36084, 23553, 36085, 15057, 36086, 9595, 36087, 19463, 36088, 34091, 36089, 43225, 36090, 47701, 36091, 15502, 36092, 16322, 36093, 33114, 36094, 45551, 36095, 24950, 36096, 43240, 36097, 7801, 36098, 10458, 36099, 37691, 36100, 47099, 36101, 47804, 36102, 8811, 36103, 45080, 36104, 45629, 36105, 12485, 36106, 45367, 36107, 41944, 36108, 30358, 36109, 33622, 36110, 37694, 36111, 43725, 36112, 21267, 36113, 15727, 36114, 39504, 36115, 45400, 36116, 8624, 36117, 13648, 36118, 34575, 36119, 41958, 36120, 33671, 36121, 41163, 36122, 25743, 36123, 15731, 36124, 45402, 36125, 8111, 36126, 46318, 36127, 15403, 36128, 44795, 36129, 16217, 36130, 9427, 36131, 45496, 36132, 39421, 36133, 7782, 36134, 46070, 36135, 19238, 36136, 46885, 36137, 14572, 36138, 35883, 36139, 30048, 36140, 8670, 36141, 16287, 36142, 47545, 36143, 16655, 36144, 14385, 36145, 20355, 36146, 8200, 36147, 34323, 36148, 36695, 36149, 16880, 36150, 23117, 36151, 12282, 36152, 26886, 36153, 14749, 36154, 17711, 36155, 42689, 36156, 45583, 36157, 46918, 36158, 20057, 36159, 18991, 36160, 47981, 36161, 25214, 36162, 25968, 36163, 45388, 36164, 47982, 36165, 15561, 36166, 21206, 36167, 31886, 36168, 46462, 36169, 23544, 36170, 33756, 36171, 15450, 36172, 13670, 36173, 19395, 36174, 34561, 36175, 33666, 36176, 11701, 36177, 8484, 36178, 47269, 36179, 16063, 36180, 29515, 36181, 12400, 36182, 23547, 36183, 15049, 36184, 47792, 36185, 15470, 36186, 47690, 36187, 33112, 36188, 45532, 36189, 41925, 36190, 45357, 36191, 45077, 36192, 45627, 36193, 33611, 36194, 43710, 36195, 15728, 36196, 10822, 36197, 38760, 36198, 33800, 36199, 28273, 36200, 36880, 36201, 39105, 36202, 10503, 36203, 17727, 36204, 10519, 36205, 46286, 36206, 39263, 36207, 36102, 36208, 48288, 36209, 48287, 36210, 24376, 36211, 21510, 36212, 15421, 36213, 46134, 36214, 15674, 36215, 30684, 36216, 33576, 36217, 31730, 36218, 43473, 36219, 39532, 36220, 47990, 36221, 22128, 36222, 31567, 36223, 10722, 36224, 11599, 36225, 10467, 36226, 10468, 36227, 13237, 36228, 21668, 36229, 10225, 36230, 12783, 36231, 39096, 36232, 45855, 36233, 22147, 36234, 44993, 36235, 31984, 36236, 19594, 36237, 10737, 36238, 11163, 36239, 16517, 36240, 41240, 36241, 48017, 36242, 36651, 36243, 13988, 36244, 25065, 36245, 15682, 36246, 35581, 36247, 11894, 36248, 38969, 36249, 46156, 36250, 35300, 36251, 43491, 36252, 21755, 36253, 20405, 36254, 32351, 36255, 36147, 36256, 11576, 36257, 11984, 36258, 26038, 36259, 32159, 36260, 12572, 36261, 31816, 36262, 48041, 36263, 36385, 36264, 32009, 36265, 10902, 36266, 18787, 36267, 31339, 36268, 31301, 36269, 20792, 36270, 45487, 36271, 36484, 36272, 14375, 36273, 45347, 36274, 45348, 36275, 48308, 36276, 29244, 36277, 8044, 36278, 22938, 36279, 22606, 36280, 13884, 36281, 22129, 36282, 15112, 36283, 10447, 36284, 20247, 36285, 14661, 36286, 46832, 36287, 35671, 36288, 44982, 36289, 7721, 36290, 30540, 36291, 44983, 36292, 31166, 36293, 37433, 36294, 35828, 36295, 43087, 36296, 28657, 36297, 25310, 36298, 27044, 36299, 7693, 36300, 13187, 36301, 22902, 36302, 37366, 36303, 19974, 36304, 11602, 36305, 29468, 36306, 30846, 36307, 47583, 36308, 21669, 36309, 13027, 36310, 46740, 36311, 15117, 36312, 29324, 36313, 21886, 36314, 33497, 36315, 9278, 36316, 28499, 36317, 21882, 36318, 24429, 36319, 16033, 36320, 42747, 36321, 19407, 36322, 14035, 36323, 39540, 36324, 20602, 36325, 14036, 36326, 47417, 36327, 32233, 36328, 22987, 36329, 47635, 36330, 16897, 36331, 31751, 36332, 23233, 36333, 39756, 36334, 10861, 36335, 26005, 36336, 29933, 36337, 47000, 36338, 20028, 36339, 36687, 36340, 9448, 36341, 20382, 36342, 12201, 36343, 31268, 36344, 8508, 36345, 39356, 36346, 14037, 36347, 19408, 36348, 21751, 36349, 19842, 36350, 34535, 36351, 37074, 36352, 11270, 36353, 21413, 36354, 28806, 36355, 39901, 36356, 9381, 36357, 41194, 36358, 12059, 36359, 28036, 36360, 34536, 36361, 24838, 36362, 43915, 36363, 20700, 36364, 11065, 36365, 31277, 36366, 27976, 36367, 35757, 36368, 20406, 36369, 30598, 36370, 38324, 36371, 37998, 36372, 11548, 36373, 20969, 36374, 19621, 36375, 28813, 36376, 21684, 36377, 28814, 36378, 26335, 36379, 26039, 36380, 24101, 36381, 18509, 36382, 21913, 36383, 10745, 36384, 37643, 36385, 32240, 36386, 36319, 36387, 9202, 36388, 48330, 36389, 31448, 36390, 42863, 36391, 11901, 36392, 48190, 36393, 9451, 36394, 48191, 36395, 29674, 36396, 47044, 36397, 46541, 36398, 13034, 36399, 46759, 36400, 44341, 36401, 13958, 36402, 13917, 36403, 11364, 36404, 43921, 36405, 47203, 36406, 12965, 36407, 45738, 36408, 10455, 36409, 11320, 36410, 20407, 36411, 16522, 36412, 36098, 36413, 21824, 36414, 15312, 36415, 48333, 36416, 13265, 36417, 29942, 36418, 32788, 36419, 29158, 36420, 36386, 36421, 9819, 36422, 37209, 36423, 20297, 36424, 12624, 36425, 12084, 36426, 30463, 36427, 35771, 36428, 31192, 36429, 28670, 36430, 12996, 36431, 36391, 36432, 19647, 36433, 28827, 36434, 26656, 36435, 25459, 36436, 45365, 36437, 8586, 36438, 10954, 36439, 26082, 36440, 24951, 36441, 11908, 36442, 36047, 36443, 12326, 36444, 35348, 36445, 39037, 36446, 23239, 36447, 19475, 36448, 46771, 36449, 31197, 36450, 12843, 36451, 29344, 36452, 48200, 36453, 24718, 36454, 8309, 36455, 45429, 36456, 28674, 36457, 8905, 36458, 37196, 36459, 21778, 36460, 12726, 36461, 9731, 36462, 39392, 36463, 14527, 36464, 11189, 36465, 47179, 36466, 13877, 36467, 9111, 36468, 11912, 36469, 11913, 36470, 22222, 36471, 22223, 36472, 25237, 36473, 35687, 36474, 31302, 36475, 22067, 36476, 30385, 36477, 24895, 36478, 13878, 36479, 11929, 36480, 16683, 36481, 45488, 36482, 12219, 36483, 8619, 36484, 8620, 36485, 47482, 36486, 21942, 36487, 11186, 36488, 31391, 36489, 13886, 36490, 11094, 36491, 19491, 36492, 38572, 36493, 45038, 36494, 28676, 36495, 25239, 36496, 25110, 36497, 46780, 36498, 24606, 36499, 47127, 36500, 9988, 36501, 11193, 36502, 13769, 36503, 38139, 36504, 25690, 36505, 25244, 36506, 39405, 36507, 38144, 36508, 48386, 36509, 23646, 36510, 40361, 36511, 32481, 36512, 33042, 36513, 28868, 36514, 35806, 36515, 32123, 36516, 19676, 36517, 11931, 36518, 12114, 36519, 39046, 36520, 23225, 36521, 22259, 36522, 25246, 36523, 33847, 36524, 16146, 36525, 12352, 36526, 14827, 36527, 31976, 36528, 36419, 36529, 13989, 36530, 13990, 36531, 16160, 36532, 23747, 36533, 32563, 36534, 26424, 36535, 7297, 36536, 19433, 36537, 21756, 36538, 36131, 36539, 22810, 36540, 23884, 36541, 41805, 36542, 27023, 36543, 22533, 36544, 32014, 36545, 25790, 36546, 23890, 36547, 14005, 36548, 46774, 36549, 41945, 36550, 36424, 36551, 12671, 36552, 43658, 36553, 44721, 36554, 10292, 36555, 41504, 36556, 16834, 36557, 22280, 36558, 38055, 36559, 44977, 36560, 40439, 36561, 12285, 36562, 40997, 36563, 14577, 36564, 32600, 36565, 33492, 36566, 23094, 36567, 34516, 36568, 37260, 36569, 10417, 36570, 12296, 36571, 14174, 36572, 28157, 36573, 30542, 36574, 26825, 36575, 32915, 36576, 23095, 36577, 31018, 36578, 47665, 36579, 17825, 36580, 18110, 36581, 32051, 36582, 23126, 36583, 12883, 36584, 25312, 36585, 12302, 36586, 7517, 36587, 46418, 36588, 14589, 36589, 23082, 36590, 42095, 36591, 29591, 36592, 8154, 36593, 16351, 36594, 16352, 36595, 29454, 36596, 47585, 36597, 32748, 36598, 14197, 36599, 7695, 36600, 47306, 36601, 46838, 36602, 42205, 36603, 22615, 36604, 43088, 36605, 46978, 36606, 34372, 36607, 30138, 36608, 14334, 36609, 16205, 36610, 21745, 36611, 20773, 36612, 16715, 36613, 17654, 36614, 22409, 36615, 32234, 36616, 47273, 36617, 45312, 36618, 47001, 36619, 33759, 36620, 24887, 36621, 44602, 36622, 33699, 36623, 44046, 36624, 37678, 36625, 43487, 36626, 46234, 36627, 37638, 36628, 15381, 36629, 31630, 36630, 47282, 36631, 28512, 36632, 24090, 36633, 46242, 36634, 45982, 36635, 24890, 36636, 48033, 36637, 18892, 36638, 37762, 36639, 11577, 36640, 17082, 36641, 22475, 36642, 42864, 36643, 29630, 36644, 31138, 36645, 16965, 36646, 28667, 36647, 30146, 36648, 16642, 36649, 8177, 36650, 26336, 36651, 29280, 36652, 24843, 36653, 32931, 36654, 32789, 36655, 19637, 36656, 42059, 36657, 39478, 36658, 11352, 36659, 11852, 36660, 11487, 36661, 15987, 36662, 44057, 36663, 17849, 36664, 34542, 36665, 15494, 36666, 48042, 36667, 15313, 36668, 38168, 36669, 8237, 36670, 45937, 36671, 44352, 36672, 38169, 36673, 36189, 36674, 16454, 36675, 46383, 36676, 39269, 36677, 44863, 36678, 26083, 36679, 20639, 36680, 10256, 36681, 47671, 36682, 38117, 36683, 19160, 36684, 41212, 36685, 46268, 36686, 20793, 36687, 45993, 36688, 9310, 36689, 23870, 36690, 14888, 36691, 14469, 36692, 25172, 36693, 15999, 36694, 33326, 36695, 22485, 36696, 18613, 36697, 42879, 36698, 19664, 36699, 47808, 36700, 14347, 36701, 44696, 36702, 20450, 36703, 17859, 36704, 23967, 36705, 29556, 36706, 24607, 36707, 24618, 36708, 25897, 36709, 25247, 36710, 10290, 36711, 41492, 36712, 16819, 36713, 40989, 36714, 12263, 36715, 32587, 36716, 47662, 36717, 14147, 36718, 26313, 36719, 32909, 36720, 17821, 36721, 16337, 36722, 22603, 36723, 25851, 36724, 47304, 36725, 46819, 36726, 42995, 36727, 18094, 36728, 46402, 36729, 24378, 36730, 42187, 36731, 31615, 36732, 34336, 36733, 45308, 36734, 46919, 36735, 20764, 36736, 47253, 36737, 32205, 36738, 25969, 36739, 20765, 36740, 46218, 36741, 15366, 36742, 24878, 36743, 28659, 36744, 8155, 36745, 18867, 36746, 16952, 36747, 37753, 36748, 24833, 36749, 11570, 36750, 48004, 36751, 11847, 36752, 15274, 36753, 19595, 36754, 38162, 36755, 34530, 36756, 29550, 36757, 44848, 36758, 39253, 36759, 28661, 36760, 26044, 36761, 46250, 36762, 25159, 36763, 40375, 36764, 16353, 36765, 11636, 36766, 11640, 36767, 29875, 36768, 48447, 36769, 8737, 36770, 23454, 36771, 23455, 36772, 11647, 36773, 41173, 36774, 7884, 36775, 8745, 36776, 8746, 36777, 8747, 36778, 41174, 36779, 8751, 36780, 7836, 36781, 11662, 36782, 8756, 36783, 8758, 36784, 10398, 36785, 32866, 36786, 28986, 36787, 28989, 36788, 10063, 36789, 11556, 36790, 11554, 36791, 42561, 36792, 32623, 36793, 8636, 36794, 8637, 36795, 34175, 36796, 44184, 36797, 24896, 36798, 12168, 36799, 9895, 36800, 15619, 36801, 30898, 36802, 44188, 36803, 44189, 36804, 30721, 36805, 41366, 36806, 42644, 36807, 17094, 36808, 26600, 36809, 30403, 36810, 45221, 36811, 37771, 36812, 37105, 36813, 47811, 36814, 43666, 36815, 12169, 36816, 45164, 36817, 21188, 36818, 17406, 36819, 41500, 36820, 14549, 36821, 38590, 36822, 12170, 36823, 14072, 36824, 17120, 36825, 46290, 36826, 12171, 36827, 21189, 36828, 44882, 36829, 37848, 36830, 24652, 36831, 10707, 36832, 10319, 36833, 28573, 36834, 36635, 36835, 46886, 36836, 42663, 36837, 21459, 36838, 19948, 36839, 10401, 36840, 12272, 36841, 14355, 36842, 12805, 36843, 30226, 36844, 47546, 36845, 13194, 36846, 45497, 36847, 36198, 36848, 34623, 36849, 37342, 36850, 32168, 36851, 21376, 36852, 18922, 36853, 13454, 36854, 44157, 36855, 27255, 36856, 8293, 36857, 19363, 36858, 28203, 36859, 42690, 36860, 20895, 36861, 47755, 36862, 25032, 36863, 41372, 36864, 37214, 36865, 35114, 36866, 34324, 36867, 36202, 36868, 29402, 36869, 18056, 36870, 28578, 36871, 13896, 36872, 21463, 36873, 41092, 36874, 41373, 36875, 9299, 36876, 43950, 36877, 39864, 36878, 31874, 36879, 36979, 36880, 47459, 36881, 31875, 36882, 12913, 36883, 12914, 36884, 37039, 36885, 21390, 36886, 36437, 36887, 13533, 36888, 42842, 36889, 46295, 36890, 36826, 36891, 16740, 36892, 38612, 36893, 34337, 36894, 10628, 36895, 35253, 36896, 45470, 36897, 32382, 36898, 15014, 36899, 24658, 36900, 35657, 36901, 18926, 36902, 24290, 36903, 16402, 36904, 23510, 36905, 8227, 36906, 12129, 36907, 22132, 36908, 8294, 36909, 18658, 36910, 12253, 36911, 25983, 36912, 44025, 36913, 47261, 36914, 21213, 36915, 44534, 36916, 11547, 36917, 23178, 36918, 37791, 36919, 36443, 36920, 43053, 36921, 12193, 36922, 44886, 36923, 26363, 36924, 8320, 36925, 29143, 36926, 44285, 36927, 12555, 36928, 35424, 36929, 13904, 36930, 35462, 36931, 41774, 36932, 11342, 36933, 10728, 36934, 36348, 36935, 44561, 36936, 34208, 36937, 46349, 36938, 44032, 36939, 45181, 36940, 14198, 36941, 8731, 36942, 17098, 36943, 14199, 36944, 39241, 36945, 18745, 36946, 31902, 36947, 12643, 36948, 12198, 36949, 37873, 36950, 28254, 36951, 42733, 36952, 16306, 36953, 42217, 36954, 11125, 36955, 25488, 36956, 41391, 36957, 35737, 36958, 12944, 36959, 10738, 36960, 44889, 36961, 35287, 36962, 35738, 36963, 31086, 36964, 26535, 36965, 42218, 36966, 16672, 36967, 46025, 36968, 7539, 36969, 34382, 36970, 9411, 36971, 10873, 36972, 35301, 36973, 45422, 36974, 46178, 36975, 13912, 36976, 12954, 36977, 25773, 36978, 10746, 36979, 12080, 36980, 25153, 36981, 48474, 36982, 32520, 36983, 30959, 36984, 41101, 36985, 44622, 36986, 42768, 36987, 14237, 36988, 24928, 36989, 21923, 36990, 34401, 36991, 8573, 36992, 42171, 36993, 26618, 36994, 40307, 36995, 35502, 36996, 17127, 36997, 45873, 36998, 36282, 36999, 14372, 37000, 27563, 37001, 8655, 37002, 8659, 37003, 23422, 37004, 24215, 37005, 44871, 37006, 42267, 37007, 26391, 37008, 24322, 37009, 42939, 37010, 36750, 37011, 12736, 37012, 30665, 37013, 43809, 37014, 33470, 37015, 17207, 37016, 44210, 37017, 26731, 37018, 32808, 37019, 31711, 37020, 38678, 37021, 23106, 37022, 15085, 37023, 22548, 37024, 8920, 37025, 14610, 37026, 40509, 37027, 28124, 37028, 40371, 37029, 33931, 37030, 7891, 37031, 44796, 37032, 12054, 37033, 19226, 37034, 40085, 37035, 7902, 37036, 38412, 37037, 21847, 37038, 43995, 37039, 17211, 37040, 35819, 37041, 31792, 37042, 8409, 37043, 29685, 37044, 9000, 37045, 33736, 37046, 8117, 37047, 37484, 37048, 12863, 37049, 48260, 37050, 42438, 37051, 25126, 37052, 23064, 37053, 16753, 37054, 47393, 37055, 34104, 37056, 22891, 37057, 44496, 37058, 15553, 37059, 17590, 37060, 31412, 37061, 46888, 37062, 19532, 37063, 18564, 37064, 18051, 37065, 40515, 37066, 20581, 37067, 38945, 37068, 16782, 37069, 29112, 37070, 23718, 37071, 20007, 37072, 23007, 37073, 46592, 37074, 23744, 37075, 45168, 37076, 41622, 37077, 10543, 37078, 13526, 37079, 38717, 37080, 26112, 37081, 15357, 37082, 38457, 37083, 15205, 37084, 15859, 37085, 17494, 37086, 23719, 37087, 20009, 37088, 16077, 37089, 22307, 37090, 43739, 37091, 9135, 37092, 39075, 37093, 8128, 37094, 24379, 37095, 45099, 37096, 9363, 37097, 39966, 37098, 30414, 37099, 29769, 37100, 31618, 37101, 16991, 37102, 47254, 37103, 35918, 37104, 48263, 37105, 30108, 37106, 23501, 37107, 28485, 37108, 10366, 37109, 44018, 37110, 9383, 37111, 39703, 37112, 12348, 37113, 21731, 37114, 43838, 37115, 31262, 37116, 42588, 37117, 13483, 37118, 41755, 37119, 26962, 37120, 33008, 37121, 8146, 37122, 14175, 37123, 34517, 37124, 22020, 37125, 44427, 37126, 45173, 37127, 17998, 37128, 23179, 37129, 39706, 37130, 39707, 37131, 35132, 37132, 36063, 37133, 27740, 37134, 38785, 37135, 32867, 37136, 11258, 37137, 48005, 37138, 48269, 37139, 42464, 37140, 38427, 37141, 39713, 37142, 45110, 37143, 17521, 37144, 43817, 37145, 8379, 37146, 26909, 37147, 10239, 37148, 15125, 37149, 24974, 37150, 43423, 37151, 47646, 37152, 18350, 37153, 31269, 37154, 41576, 37155, 46015, 37156, 26698, 37157, 31270, 37158, 40840, 37159, 12740, 37160, 8603, 37161, 41332, 37162, 8529, 37163, 45603, 37164, 37881, 37165, 46605, 37166, 26925, 37167, 33588, 37168, 25146, 37169, 30199, 37170, 12365, 37171, 27130, 37172, 42494, 37173, 9638, 37174, 23024, 37175, 14981, 37176, 27131, 37177, 48275, 37178, 23131, 37179, 24766, 37180, 45361, 37181, 9956, 37182, 43964, 37183, 19465, 37184, 41933, 37185, 9968, 37186, 12107, 37187, 25373, 37188, 18546, 37189, 38923, 37190, 14992, 37191, 45371, 37192, 24585, 37193, 44083, 37194, 13317, 37195, 31861, 37196, 47871, 37197, 29546, 37198, 47344, 37199, 42843, 37200, 15640, 37201, 44255, 37202, 21557, 37203, 41756, 37204, 48441, 37205, 26826, 37206, 46463, 37207, 40900, 37208, 13540, 37209, 46346, 37210, 14828, 37211, 44817, 37212, 15533, 37213, 45174, 37214, 35867, 37215, 36501, 37216, 30847, 37217, 37370, 37218, 11885, 37219, 17191, 37220, 16354, 37221, 35215, 37222, 30248, 37223, 11060, 37224, 45313, 37225, 27768, 37226, 23880, 37227, 11573, 37228, 11061, 37229, 44171, 37230, 36881, 37231, 46844, 37232, 39357, 37233, 20551, 37234, 10598, 37235, 43545, 37236, 37075, 37237, 20778, 37238, 26982, 37239, 22950, 37240, 35371, 37241, 24056, 37242, 30337, 37243, 48451, 37244, 17141, 37245, 41903, 37246, 33450, 37247, 28699, 37248, 37888, 37249, 26045, 37250, 23665, 37251, 41588, 37252, 36223, 37253, 29503, 37254, 45930, 37255, 11520, 37256, 35943, 37257, 48455, 37258, 47796, 37259, 11902, 37260, 23322, 37261, 36387, 37262, 39479, 37263, 13585, 37264, 18232, 37265, 40846, 37266, 40547, 37267, 36001, 37268, 31923, 37269, 11523, 37270, 45199, 37271, 30257, 37272, 22642, 37273, 35163, 37274, 27283, 37275, 32242, 37276, 11115, 37277, 12085, 37278, 45201, 37279, 43937, 37280, 7512, 37281, 45779, 37282, 17144, 37283, 36104, 37284, 20561, 37285, 29998, 37286, 10459, 37287, 44676, 37288, 24205, 37289, 45430, 37290, 23834, 37291, 42621, 37292, 20566, 37293, 9311, 37294, 20795, 37295, 38906, 37296, 35968, 37297, 14406, 37298, 29002, 37299, 43272, 37300, 24319, 37301, 21943, 37302, 41953, 37303, 43273, 37304, 28700, 37305, 32858, 37306, 41288, 37307, 11095, 37308, 41964, 37309, 25395, 37310, 27324, 37311, 27325, 37312, 28702, 37313, 40464, 37314, 20806, 37315, 33455, 37316, 27330, 37317, 41973, 37318, 8708, 37319, 9435, 37320, 34346, 37321, 44168, 37322, 34360, 37323, 34417, 37324, 24281, 37325, 47215, 37326, 42423, 37327, 24885, 37328, 24216, 37329, 21100, 37330, 21101, 37331, 31862, 37332, 42838, 37333, 24973, 37334, 12596, 37335, 46097, 37336, 13318, 37337, 30238, 37338, 31877, 37339, 7661, 37340, 15361, 37341, 46340, 37342, 46724, 37343, 7662, 37344, 26275, 37345, 15362, 37346, 28205, 37347, 13159, 37348, 33579, 37349, 31351, 37350, 22858, 37351, 11370, 37352, 48103, 37353, 14553, 37354, 18422, 37355, 18423, 37356, 17325, 37357, 15759, 37358, 30544, 37359, 26760, 37360, 32646, 37361, 12927, 37362, 35017, 37363, 39086, 37364, 43054, 37365, 9854, 37366, 34116, 37367, 37103, 37368, 38762, 37369, 29079, 37370, 30929, 37371, 31889, 37372, 20372, 37373, 29868, 37374, 42403, 37375, 21117, 37376, 7709, 37377, 14621, 37378, 10422, 37379, 40534, 37380, 13519, 37381, 44995, 37382, 30934, 37383, 15118, 37384, 29714, 37385, 28161, 37386, 40396, 37387, 14089, 37388, 22149, 37389, 13906, 37390, 16248, 37391, 43478, 37392, 31025, 37393, 7855, 37394, 33055, 37395, 32541, 37396, 10226, 37397, 28969, 37398, 14829, 37399, 45141, 37400, 42851, 37401, 31520, 37402, 29715, 37403, 16995, 37404, 17920, 37405, 43417, 37406, 22287, 37407, 13165, 37408, 43090, 37409, 47164, 37410, 39013, 37411, 15599, 37412, 32647, 37413, 19228, 37414, 35870, 37415, 22555, 37416, 44826, 37417, 25859, 37418, 14200, 37419, 31521, 37420, 13951, 37421, 48025, 37422, 28541, 37423, 37066, 37424, 34373, 37425, 27662, 37426, 16358, 37427, 22622, 37428, 25322, 37429, 9024, 37430, 35026, 37431, 16426, 37432, 9177, 37433, 29722, 37434, 44581, 37435, 35027, 37436, 48518, 37437, 9303, 37438, 44040, 37439, 36537, 37440, 20067, 37441, 46363, 37442, 34264, 37443, 34374, 37444, 46746, 37445, 21888, 37446, 9909, 37447, 34133, 37448, 34134, 37449, 41136, 37450, 46100, 37451, 8053, 37452, 17655, 37453, 8510, 37454, 34032, 37455, 11164, 37456, 34215, 37457, 9178, 37458, 47590, 37459, 10862, 37460, 45227, 37461, 30182, 37462, 36882, 37463, 31033, 37464, 15275, 37465, 45819, 37466, 25567, 37467, 30943, 37468, 15276, 37469, 24446, 37470, 44999, 37471, 29723, 37472, 41997, 37473, 7880, 37474, 9098, 37475, 20948, 37476, 16252, 37477, 34659, 37478, 46542, 37479, 28034, 37480, 39014, 37481, 39015, 37482, 12945, 37483, 19981, 37484, 28076, 37485, 35988, 37486, 18586, 37487, 42852, 37488, 34918, 37489, 23128, 37490, 22376, 37491, 8109, 37492, 20386, 37493, 36889, 37494, 40537, 37495, 17935, 37496, 20702, 37497, 10800, 37498, 14395, 37499, 26469, 37500, 9025, 37501, 34383, 37502, 27977, 37503, 19983, 37504, 43430, 37505, 22292, 37506, 47278, 37507, 11004, 37508, 39777, 37509, 36890, 37510, 27904, 37511, 24057, 37512, 19420, 37513, 44603, 37514, 40945, 37515, 32544, 37516, 48496, 37517, 47025, 37518, 31755, 37519, 33584, 37520, 10874, 37521, 39543, 37522, 40538, 37523, 32237, 37524, 29726, 37525, 36704, 37526, 47422, 37527, 39817, 37528, 27748, 37529, 22978, 37530, 42229, 37531, 39365, 37532, 39458, 37533, 40660, 37534, 22293, 37535, 9760, 37536, 23861, 37537, 19605, 37538, 29843, 37539, 32833, 37540, 27352, 37541, 42603, 37542, 43360, 37543, 16717, 37544, 7438, 37545, 13378, 37546, 44113, 37547, 33281, 37548, 22583, 37549, 31039, 37550, 26232, 37551, 34926, 37552, 7261, 37553, 13169, 37554, 17359, 37555, 32978, 37556, 34388, 37557, 22781, 37558, 31919, 37559, 39911, 37560, 46243, 37561, 40712, 37562, 45414, 37563, 36378, 37564, 12138, 37565, 16523, 37566, 17980, 37567, 47171, 37568, 36944, 37569, 26158, 37570, 26986, 37571, 23751, 37572, 37683, 37573, 40403, 37574, 45123, 37575, 8178, 37576, 38645, 37577, 35312, 37578, 44625, 37579, 9942, 37580, 13365, 37581, 9203, 37582, 17360, 37583, 20034, 37584, 17941, 37585, 11927, 37586, 14982, 37587, 9911, 37588, 37644, 37589, 47048, 37590, 34941, 37591, 41029, 37592, 18438, 37593, 44451, 37594, 36656, 37595, 23130, 37596, 47913, 37597, 26295, 37598, 40540, 37599, 31576, 37600, 33995, 37601, 17258, 37602, 26296, 37603, 42407, 37604, 11175, 37605, 45625, 37606, 21686, 37607, 39655, 37608, 36705, 37609, 26770, 37610, 30394, 37611, 24181, 37612, 29374, 37613, 32979, 37614, 10599, 37615, 15872, 37616, 24304, 37617, 36259, 37618, 8993, 37619, 47602, 37620, 46479, 37621, 37022, 37622, 25572, 37623, 48460, 37624, 21924, 37625, 10188, 37626, 44891, 37627, 20415, 37628, 15770, 37629, 13176, 37630, 36227, 37631, 10161, 37632, 26338, 37633, 17084, 37634, 25350, 37635, 29734, 37636, 26057, 37637, 24194, 37638, 31189, 37639, 30285, 37640, 21996, 37641, 27671, 37642, 48461, 37643, 29635, 37644, 7471, 37645, 29735, 37646, 39664, 37647, 41436, 37648, 47763, 37649, 24061, 37650, 22640, 37651, 22811, 37652, 35767, 37653, 23323, 37654, 13620, 37655, 28453, 37656, 11458, 37657, 48044, 37658, 46551, 37659, 8205, 37660, 28823, 37661, 48252, 37662, 11524, 37663, 35948, 37664, 13367, 37665, 30606, 37666, 31050, 37667, 47799, 37668, 19451, 37669, 44640, 37670, 21172, 37671, 16645, 37672, 26845, 37673, 10123, 37674, 36593, 37675, 38871, 37676, 24806, 37677, 36228, 37678, 16492, 37679, 12139, 37680, 34679, 37681, 46382, 37682, 26058, 37683, 27214, 37684, 26059, 37685, 18406, 37686, 8841, 37687, 15543, 37688, 23531, 37689, 22748, 37690, 14624, 37691, 38672, 37692, 28234, 37693, 37686, 37694, 45358, 37695, 18286, 37696, 12697, 37697, 39378, 37698, 29919, 37699, 19205, 37700, 24891, 37701, 14442, 37702, 27078, 37703, 22416, 37704, 43614, 37705, 12795, 37706, 24808, 37707, 17011, 37708, 39553, 37709, 13719, 37710, 37088, 37711, 37896, 37712, 48197, 37713, 15503, 37714, 32791, 37715, 19649, 37716, 14254, 37717, 22297, 37718, 10457, 37719, 36392, 37720, 45709, 37721, 18372, 37722, 42062, 37723, 13764, 37724, 39270, 37725, 44353, 37726, 22786, 37727, 34038, 37728, 18780, 37729, 38016, 37730, 15504, 37731, 46107, 37732, 9766, 37733, 31454, 37734, 34155, 37735, 17854, 37736, 23210, 37737, 36594, 37738, 27986, 37739, 31298, 37740, 31299, 37741, 18032, 37742, 36945, 37743, 11780, 37744, 18605, 37745, 42520, 37746, 27673, 37747, 20423, 37748, 13735, 37749, 20416, 37750, 35081, 37751, 23211, 37752, 18239, 37753, 41036, 37754, 14000, 37755, 20988, 37756, 46384, 37757, 8656, 37758, 47175, 37759, 48049, 37760, 40670, 37761, 42410, 37762, 27025, 37763, 29305, 37764, 7264, 37765, 21086, 37766, 31151, 37767, 26994, 37768, 35638, 37769, 12215, 37770, 7955, 37771, 39273, 37772, 24723, 37773, 35642, 37774, 22436, 37775, 25526, 37776, 42258, 37777, 42527, 37778, 29044, 37779, 38275, 37780, 32718, 37781, 36109, 37782, 35643, 37783, 31199, 37784, 24527, 37785, 34874, 37786, 11459, 37787, 9239, 37788, 29345, 37789, 12164, 37790, 8338, 37791, 33197, 37792, 15771, 37793, 48051, 37794, 38444, 37795, 43713, 37796, 18837, 37797, 36662, 37798, 25527, 37799, 22417, 37800, 35557, 37801, 33397, 37802, 35168, 37803, 37692, 37804, 17547, 37805, 46490, 37806, 46491, 37807, 23754, 37808, 43242, 37809, 44869, 37810, 36134, 37811, 28833, 37812, 38981, 37813, 19994, 37814, 15922, 37815, 26542, 37816, 21976, 37817, 35127, 37818, 48375, 37819, 35644, 37820, 39313, 37821, 14988, 37822, 38170, 37823, 28113, 37824, 25943, 37825, 35645, 37826, 29199, 37827, 48348, 37828, 37144, 37829, 40676, 37830, 16684, 37831, 41159, 37832, 24810, 37833, 34477, 37834, 7621, 37835, 26692, 37836, 27934, 37837, 26380, 37838, 8604, 37839, 38120, 37840, 25535, 37841, 12848, 37842, 33153, 37843, 48234, 37844, 42799, 37845, 26091, 37846, 7561, 37847, 22790, 37848, 31203, 37849, 11978, 37850, 30472, 37851, 10167, 37852, 36048, 37853, 26722, 37854, 43849, 37855, 10064, 37856, 14989, 37857, 21430, 37858, 8812, 37859, 34690, 37860, 25833, 37861, 40717, 37862, 11784, 37863, 25662, 37864, 45368, 37865, 20440, 37866, 9627, 37867, 24228, 37868, 39316, 37869, 38907, 37870, 22535, 37871, 34783, 37872, 8312, 37873, 46086, 37874, 31152, 37875, 10528, 37876, 26101, 37877, 18447, 37878, 19665, 37879, 30360, 37880, 19103, 37881, 31246, 37882, 30191, 37883, 25175, 37884, 33327, 37885, 40718, 37886, 33156, 37887, 10529, 37888, 23283, 37889, 34958, 37890, 25538, 37891, 28360, 37892, 18789, 37893, 30029, 37894, 35516, 37895, 14534, 37896, 31341, 37897, 32186, 37898, 42069, 37899, 36049, 37900, 39831, 37901, 22231, 37902, 20642, 37903, 48481, 37904, 24958, 37905, 31465, 37906, 23839, 37907, 13845, 37908, 40420, 37909, 45326, 37910, 19486, 37911, 20321, 37912, 47180, 37913, 12753, 37914, 41442, 37915, 43773, 37916, 13795, 37917, 22232, 37918, 29045, 37919, 45327, 37920, 30386, 37921, 36708, 37922, 14535, 37923, 10530, 37924, 13341, 37925, 33623, 37926, 22392, 37927, 20205, 37928, 14796, 37929, 35521, 37930, 25946, 37931, 21979, 37932, 19107, 37933, 44697, 37934, 24739, 37935, 47941, 37936, 31304, 37937, 20453, 37938, 47950, 37939, 23964, 37940, 8625, 37941, 36709, 37942, 18615, 37943, 42539, 37944, 13963, 37945, 17087, 37946, 12518, 37947, 21950, 37948, 14890, 37949, 12221, 37950, 8193, 37951, 43282, 37952, 7370, 37953, 48209, 37954, 41406, 37955, 13183, 37956, 47623, 37957, 17814, 37958, 47809, 37959, 19497, 37960, 28860, 37961, 17699, 37962, 19323, 37963, 31636, 37964, 8961, 37965, 43652, 37966, 23286, 37967, 28922, 37968, 40807, 37969, 20455, 37970, 20456, 37971, 31102, 37972, 9822, 37973, 47131, 37974, 27621, 37975, 24257, 37976, 23970, 37977, 19499, 37978, 48405, 37979, 23146, 37980, 33672, 37981, 29661, 37982, 23486, 37983, 13654, 37984, 34879, 37985, 11590, 37986, 26220, 37987, 8826, 37988, 8077, 37989, 25948, 37990, 39697, 37991, 23044, 37992, 25695, 37993, 14286, 37994, 25898, 37995, 40413, 37996, 20458, 37997, 23713, 37998, 9271, 37999, 20220, 38000, 42380, 38001, 9996, 38002, 39736, 38003, 20460, 38004, 38940, 38005, 16695, 38006, 9592, 38007, 28870, 38008, 24037, 38009, 11932, 38010, 32125, 38011, 29379, 38012, 26403, 38013, 48388, 38014, 26260, 38015, 45436, 38016, 28873, 38017, 22261, 38018, 36143, 38019, 47495, 38020, 23652, 38021, 21094, 38022, 15539, 38023, 42821, 38024, 46320, 38025, 13313, 38026, 46089, 38027, 30164, 38028, 24970, 38029, 37102, 38030, 30912, 38031, 11369, 38032, 33482, 38033, 33049, 38034, 14487, 38035, 13148, 38036, 27068, 38037, 29077, 38038, 42020, 38039, 9853, 38040, 40522, 38041, 15594, 38042, 9354, 38043, 35862, 38044, 21860, 38045, 13897, 38046, 10220, 38047, 47157, 38048, 28142, 38049, 8129, 38050, 15750, 38051, 7850, 38052, 31008, 38053, 42332, 38054, 31477, 38055, 22281, 38056, 38420, 38057, 16240, 38058, 22553, 38059, 14617, 38060, 19227, 38061, 36966, 38062, 28965, 38063, 7707, 38064, 44511, 38065, 31013, 38066, 46518, 38067, 31014, 38068, 16403, 38069, 9084, 38070, 22607, 38071, 30214, 38072, 9300, 38073, 9147, 38074, 44978, 38075, 48382, 38076, 28061, 38077, 35983, 38078, 20058, 38079, 13050, 38080, 44019, 38081, 36701, 38082, 9148, 38083, 25282, 38084, 34852, 38085, 30923, 38086, 26868, 38087, 8045, 38088, 34338, 38089, 41123, 38090, 35672, 38091, 8450, 38092, 28486, 38093, 29709, 38094, 13944, 38095, 40529, 38096, 22578, 38097, 23857, 38098, 14361, 38099, 26761, 38100, 41430, 38101, 44100, 38102, 10569, 38103, 20018, 38104, 42400, 38105, 28339, 38106, 46952, 38107, 12499, 38108, 36868, 38109, 26148, 38110, 13160, 38111, 43341, 38112, 22399, 38113, 45688, 38114, 47407, 38115, 39007, 38116, 13354, 38117, 13377, 38118, 39349, 38119, 18424, 38120, 32217, 38121, 33372, 38122, 17104, 38123, 13161, 38124, 16026, 38125, 27737, 38126, 46528, 38127, 33272, 38128, 20678, 38129, 42589, 38130, 10022, 38131, 11000, 38132, 36033, 38133, 7431, 38134, 43412, 38135, 32824, 38136, 47586, 38137, 23812, 38138, 30390, 38139, 38474, 38140, 23517, 38141, 36256, 38142, 24791, 38143, 22775, 38144, 39882, 38145, 35609, 38146, 24297, 38147, 45624, 38148, 11156, 38149, 16996, 38150, 15866, 38151, 14090, 38152, 40704, 38153, 12134, 38154, 26286, 38155, 14972, 38156, 40397, 38157, 25566, 38158, 22384, 38159, 20258, 38160, 32971, 38161, 36315, 38162, 23740, 38163, 31570, 38164, 21670, 38165, 7241, 38166, 31177, 38167, 46285, 38168, 29150, 38169, 12136, 38170, 26833, 38171, 8204, 38172, 30566, 38173, 12690, 38174, 22709, 38175, 23313, 38176, 10120, 38177, 38807, 38178, 16488, 38179, 26367, 38180, 11454, 38181, 47761, 38182, 21158, 38183, 47002, 38184, 39358, 38185, 21990, 38186, 19201, 38187, 29516, 38188, 35929, 38189, 13360, 38190, 20387, 38191, 21893, 38192, 27208, 38193, 48019, 38194, 31445, 38195, 43593, 38196, 22412, 38197, 31184, 38198, 34927, 38199, 14220, 38200, 9761, 38201, 31278, 38202, 47169, 38203, 13760, 38204, 35153, 38205, 18760, 38206, 18588, 38207, 7262, 38208, 13710, 38209, 27019, 38210, 25825, 38211, 48026, 38212, 14772, 38213, 26983, 38214, 27915, 38215, 46480, 38216, 9204, 38217, 15978, 38218, 28815, 38219, 36132, 38220, 21974, 38221, 28816, 38222, 28111, 38223, 25501, 38224, 15844, 38225, 7949, 38226, 43169, 38227, 19987, 38228, 8943, 38229, 32698, 38230, 8794, 38231, 36045, 38232, 26717, 38233, 26371, 38234, 8305, 38235, 43839, 38236, 21423, 38237, 12793, 38238, 48335, 38239, 41147, 38240, 25513, 38241, 9957, 38242, 22205, 38243, 25005, 38244, 30353, 38245, 25931, 38246, 13835, 38247, 23609, 38248, 30383, 38249, 11928, 38250, 31194, 38251, 12749, 38252, 19300, 38253, 23950, 38254, 18607, 38255, 47937, 38256, 24724, 38257, 43243, 38258, 9821, 38259, 8815, 38260, 23476, 38261, 9989, 38262, 39732, 38263, 46048, 38264, 10140, 38265, 21558, 38266, 7578, 38267, 13238, 38268, 32002, 38269, 24985, 38270, 27309, 38271, 46045, 38272, 27069, 38273, 26549, 38274, 34729, 38275, 33541, 38276, 19247, 38277, 27070, 38278, 41641, 38279, 8465, 38280, 17326, 38281, 8466, 38282, 33495, 38283, 22385, 38284, 22556, 38285, 8257, 38286, 17921, 38287, 32994, 38288, 33170, 38289, 39449, 38290, 39450, 38291, 20134, 38292, 27701, 38293, 39193, 38294, 34824, 38295, 13544, 38296, 45695, 38297, 28410, 38298, 45861, 38299, 29593, 38300, 39285, 38301, 25324, 38302, 8736, 38303, 8511, 38304, 32995, 38305, 7334, 38306, 16610, 38307, 15968, 38308, 15969, 38309, 14432, 38310, 11271, 38311, 17975, 38312, 16786, 38313, 27707, 38314, 33261, 38315, 23353, 38316, 23788, 38317, 26116, 38318, 36773, 38319, 33439, 38320, 21752, 38321, 45012, 38322, 45013, 38323, 10045, 38324, 32160, 38325, 25227, 38326, 10124, 38327, 33462, 38328, 23354, 38329, 41590, 38330, 38207, 38331, 41675, 38332, 14250, 38333, 19139, 38334, 44641, 38335, 38208, 38336, 17986, 38337, 7976, 38338, 17982, 38339, 32165, 38340, 42317, 38341, 38211, 38342, 7860, 38343, 7472, 38344, 37897, 38345, 43371, 38346, 23397, 38347, 32361, 38348, 23610, 38349, 13588, 38350, 32244, 38351, 14986, 38352, 36553, 38353, 28834, 38354, 35781, 38355, 22418, 38356, 17685, 38357, 32364, 38358, 11422, 38359, 16618, 38360, 13563, 38361, 30713, 38362, 23165, 38363, 36113, 38364, 16620, 38365, 29986, 38366, 22499, 38367, 39167, 38368, 19104, 38369, 10068, 38370, 29901, 38371, 12584, 38372, 18616, 38373, 35792, 38374, 38215, 38375, 35685, 38376, 27065, 38377, 34727, 38378, 33530, 38379, 41608, 38380, 17303, 38381, 8399, 38382, 38242, 38383, 11414, 38384, 32991, 38385, 37849, 38386, 39418, 38387, 17874, 38388, 20100, 38389, 27683, 38390, 22506, 38391, 27087, 38392, 45683, 38393, 28405, 38394, 16756, 38395, 38186, 38396, 35715, 38397, 27690, 38398, 26113, 38399, 22398, 38400, 14418, 38401, 15932, 38402, 17602, 38403, 23339, 38404, 21514, 38405, 44979, 38406, 23725, 38407, 13580, 38408, 44535, 38409, 41567, 38410, 10114, 38411, 39087, 38412, 38192, 38413, 19129, 38414, 41642, 38415, 14176, 38416, 10023, 38417, 23589, 38418, 32157, 38419, 19006, 38420, 23382, 38421, 32327, 38422, 17656, 38423, 36538, 38424, 12202, 38425, 32301, 38426, 17282, 38427, 18599, 38428, 15413, 38429, 15398, 38430, 23898, 38431, 13801, 38432, 40425, 38433, 30890, 38434, 38579, 38435, 15589, 38436, 46867, 38437, 43316, 38438, 42010, 38439, 13508, 38440, 14137, 38441, 34001, 38442, 7841, 38443, 29505, 38444, 22758, 38445, 45130, 38446, 32905, 38447, 46794, 38448, 29749, 38449, 21338, 38450, 14627, 38451, 42011, 38452, 43317, 38453, 46440, 38454, 20810, 38455, 10484, 38456, 14141, 38457, 31951, 38458, 12864, 38459, 48358, 38460, 48541, 38461, 13041, 38462, 25437, 38463, 7239, 38464, 37334, 38465, 37335, 38466, 8078, 38467, 9001, 38468, 15406, 38469, 19743, 38470, 25956, 38471, 25710, 38472, 10399, 38473, 40512, 38474, 14012, 38475, 25816, 38476, 27852, 38477, 20540, 38478, 34496, 38479, 14013, 38480, 39593, 38481, 14315, 38482, 16825, 38483, 44191, 38484, 15554, 38485, 33533, 38486, 22309, 38487, 31360, 38488, 40523, 38489, 11499, 38490, 15428, 38491, 8437, 38492, 39219, 38493, 33539, 38494, 34019, 38495, 46900, 38496, 30303, 38497, 13514, 38498, 44902, 38499, 46452, 38500, 11148, 38501, 39602, 38502, 12605, 38503, 28762, 38504, 45136, 38505, 39518, 38506, 29509, 38507, 14756, 38508, 48264, 38509, 43024, 38510, 13816, 38511, 26316, 38512, 43334, 38513, 21648, 38514, 11444, 38515, 10411, 38516, 29770, 38517, 25283, 38518, 36205, 38519, 39613, 38520, 25970, 38521, 34023, 38522, 39531, 38523, 43342, 38524, 47504, 38525, 42038, 38526, 32633, 38527, 39234, 38528, 10971, 38529, 41875, 38530, 43343, 38531, 34644, 38532, 12781, 38533, 44262, 38534, 25631, 38535, 37792, 38536, 37793, 38537, 28781, 38538, 13817, 38539, 35422, 38540, 7432, 38541, 18735, 38542, 20819, 38543, 35423, 38544, 43476, 38545, 15600, 38546, 41775, 38547, 18868, 38548, 15955, 38549, 45143, 38550, 38624, 38551, 23180, 38552, 7318, 38553, 39097, 38554, 36073, 38555, 19823, 38556, 46077, 38557, 12612, 38558, 7531, 38559, 39106, 38560, 43482, 38561, 33057, 38562, 32513, 38563, 25147, 38564, 37179, 38565, 12741, 38566, 20716, 38567, 35473, 38568, 35426, 38569, 7609, 38570, 39545, 38571, 14868, 38572, 28547, 38573, 14339, 38574, 19452, 38575, 12620, 38576, 38976, 38577, 43496, 38578, 47065, 38579, 18895, 38580, 25718, 38581, 38908, 38582, 24360, 38583, 24482, 38584, 24505, 38585, 47754, 38586, 18162, 38587, 46665, 38588, 35545, 38589, 22014, 38590, 28249, 38591, 43055, 38592, 32321, 38593, 41887, 38594, 31522, 38595, 30935, 38596, 40605, 38597, 41481, 38598, 19580, 38599, 16484, 38600, 18579, 38601, 47003, 38602, 16307, 38603, 22028, 38604, 11642, 38605, 43818, 38606, 21676, 38607, 11165, 38608, 18125, 38609, 45253, 38610, 26470, 38611, 44331, 38612, 11073, 38613, 13126, 38614, 35414, 38615, 17380, 38616, 38390, 38617, 34747, 38618, 16681, 38619, 11187, 38620, 45259, 38621, 43847, 38622, 19477, 38623, 38896, 38624, 11089, 38625, 25601, 38626, 24217, 38627, 28265, 38628, 41206, 38629, 45268, 38630, 19677, 38631, 19678, 38632, 44402, 38633, 44264, 38634, 41208, 38635, 28119, 38636, 15080, 38637, 33273, 38638, 28068, 38639, 38193, 38640, 14831, 38641, 29387, 38642, 45111, 38643, 24431, 38644, 10863, 38645, 41998, 38646, 25325, 38647, 23926, 38648, 7421, 38649, 7984, 38650, 38633, 38651, 13066, 38652, 12560, 38653, 18352, 38654, 38634, 38655, 13170, 38656, 40769, 38657, 19843, 38658, 28081, 38659, 10435, 38660, 39913, 38661, 45776, 38662, 36774, 38663, 46481, 38664, 29554, 38665, 26987, 38666, 25342, 38667, 30460, 38668, 47287, 38669, 19286, 38670, 33442, 38671, 14688, 38672, 17944, 38673, 45874, 38674, 43367, 38675, 28513, 38676, 47607, 38677, 37274, 38678, 25160, 38679, 25351, 38680, 13473, 38681, 43616, 38682, 38655, 38683, 25363, 38684, 34746, 38685, 25364, 38686, 39271, 38687, 17947, 38688, 43372, 38689, 26619, 38690, 26620, 38691, 45155, 38692, 25598, 38693, 27236, 38694, 8958, 38695, 38662, 38696, 38121, 38697, 23403, 38698, 43449, 38699, 38982, 38700, 43259, 38701, 7303, 38702, 12487, 38703, 36309, 38704, 33158, 38705, 44698, 38706, 26102, 38707, 25663, 38708, 12328, 38709, 19666, 38710, 29396, 38711, 42072, 38712, 7738, 38713, 29745, 38714, 37918, 38715, 14998, 38716, 39174, 38717, 19915, 38718, 26591, 38719, 27184, 38720, 27185, 38721, 23971, 38722, 24628, 38723, 19329, 38724, 7304, 38725, 14805, 38726, 12331, 38727, 25696, 38728, 25396, 38729, 7374, 38730, 15003, 38731, 24641, 38732, 8030, 38733, 17754, 38734, 17755, 38735, 17757, 38736, 9066, 38737, 31612, 38738, 31613, 38739, 21405, 38740, 36502, 38741, 46364, 38742, 21409, 38743, 10510, 38744, 31694, 38745, 21414, 38746, 21419, 38747, 13080, 38748, 21424, 38749, 36509, 38750, 14666, 38751, 14680, 38752, 22585, 38753, 27297, 38754, 27523, 38755, 27520, 38756, 8056, 38757, 42495, 38758, 36595, 38759, 19109, 38760, 42547, 38761, 15933, 38762, 13319, 38763, 9792, 38764, 31028, 38765, 32609, 38766, 12814, 38767, 13702, 38768, 38625, 38769, 32610, 38770, 31529, 38771, 21226, 38772, 41170, 38773, 28973, 38774, 7710, 38775, 43483, 38776, 33035, 38777, 28172, 38778, 27905, 38779, 48371, 38780, 12204, 38781, 7881, 38782, 43146, 38783, 42348, 38784, 36221, 38785, 8174, 38786, 20841, 38787, 17936, 38788, 29455, 38789, 42000, 38790, 9026, 38791, 43363, 38792, 15979, 38793, 36225, 38794, 20971, 38795, 40147, 38796, 7402, 38797, 7403, 38798, 17772, 38799, 16209, 38800, 30848, 38801, 12210, 38802, 31327, 38803, 36742, 38804, 26652, 38805, 43793, 38806, 35413, 38807, 36657, 38808, 31383, 38809, 41149, 38810, 22828, 38811, 8288, 38812, 35773, 38813, 33682, 38814, 9032, 38815, 23398, 38816, 21694, 38817, 23491, 38818, 40327, 38819, 32792, 38820, 7914, 38821, 14309, 38822, 31823, 38823, 31824, 38824, 17686, 38825, 31388, 38826, 28090, 38827, 21697, 38828, 20181, 38829, 8660, 38830, 12796, 38831, 20190, 38832, 38173, 38833, 36192, 38834, 16262, 38835, 35782, 38836, 8190, 38837, 40175, 38838, 29346, 38839, 16000, 38840, 8613, 38841, 23405, 38842, 36050, 38843, 25793, 38844, 16934, 38845, 31343, 38846, 41175, 38847, 19492, 38848, 20213, 38849, 20508, 38850, 10099, 38851, 12222, 38852, 18382, 38853, 39576, 38854, 30995, 38855, 13656, 38856, 37511, 38857, 20222, 38858, 23653, 38859, 37853, 38860, 32611, 38861, 15289, 38862, 27051, 38863, 32293, 38864, 15980, 38865, 37999, 38866, 31384, 38867, 17266, 38868, 10211, 38869, 23399, 38870, 32801, 38871, 45205, 38872, 33829, 38873, 38025, 38874, 15997, 38875, 7803, 38876, 36193, 38877, 16263, 38878, 45208, 38879, 15818, 38880, 8614, 38881, 38032, 38882, 35525, 38883, 13651, 38884, 37512, 38885, 13657, 38886, 37842, 38887, 32588, 38888, 15206, 38889, 17248, 38890, 37980, 38891, 45184, 38892, 36179, 38893, 21554, 38894, 21562, 38895, 39373, 38896, 40310, 38897, 39383, 38898, 19483, 38899, 43329, 38900, 45252, 38901, 45185, 38902, 33721, 38903, 23913, 38904, 29636, 38905, 18788, 38906, 43623, 38907, 45211, 38908, 29655, 38909, 7414, 38910, 43375, 38911, 39787, 38912, 18383, 38913, 42449, 38914, 13327, 38915, 31672, 38916, 23182, 38917, 39810, 38918, 34833, 38919, 17192, 38920, 40759, 38921, 42750, 38922, 40763, 38923, 14123, 38924, 35120, 38925, 23234, 38926, 30569, 38927, 17426, 38928, 44582, 38929, 37590, 38930, 7822, 38931, 13909, 38932, 12825, 38933, 12366, 38934, 29373, 38935, 30184, 38936, 25442, 38937, 10340, 38938, 21355, 38939, 24058, 38940, 17669, 38941, 31283, 38942, 14241, 38943, 14096, 38944, 38000, 38945, 40148, 38946, 23389, 38947, 33954, 38948, 42780, 38949, 42781, 38950, 17124, 38951, 13800, 38952, 44452, 38953, 30095, 38954, 24059, 38955, 15385, 38956, 20035, 38957, 36957, 38958, 19069, 38959, 23206, 38960, 20041, 38961, 26354, 38962, 36818, 38963, 10520, 38964, 43761, 38965, 45078, 38966, 18233, 38967, 17368, 38968, 21363, 38969, 37186, 38970, 37187, 38971, 30055, 38972, 23554, 38973, 37188, 38974, 48058, 38975, 48057, 38976, 11460, 38977, 13370, 38978, 23555, 38979, 35954, 38980, 17377, 38981, 30972, 38982, 22643, 38983, 12039, 38984, 41104, 38985, 31494, 38986, 42790, 38987, 33103, 38988, 36401, 38989, 14102, 38990, 14262, 38991, 41682, 38992, 38256, 38993, 22483, 38994, 43873, 38995, 47658, 38996, 41683, 38997, 39556, 38998, 40457, 38999, 42878, 39000, 44928, 39001, 33200, 39002, 12999, 39003, 13000, 39004, 20533, 39005, 23163, 39006, 24068, 39007, 23840, 39008, 30001, 39009, 37536, 39010, 26663, 39011, 11916, 39012, 42268, 39013, 17551, 39014, 31344, 39015, 16495, 39016, 41404, 39017, 41837, 39018, 19112, 39019, 10100, 39020, 32859, 39021, 27189, 39022, 8963, 39023, 39577, 39024, 30069, 39025, 25900, 39026, 23690, 39027, 28872, 39028, 32266, 39029, 42433, 39030, 13325, 39031, 31667, 39032, 17181, 39033, 39799, 39034, 34828, 39035, 40735, 39036, 40740, 39037, 37582, 39038, 16475, 39039, 13900, 39040, 30523, 39041, 7814, 39042, 35116, 39043, 17418, 39044, 44512, 39045, 25858, 39046, 25441, 39047, 30218, 39048, 21351, 39049, 20929, 39050, 20024, 39051, 36811, 39052, 17641, 39053, 43748, 39054, 21471, 39055, 22616, 39056, 42751, 39057, 30054, 39058, 19022, 39059, 37174, 39060, 17340, 39061, 43750, 39062, 43751, 39063, 22630, 39064, 36380, 39065, 43871, 39066, 14242, 39067, 47654, 39068, 41671, 39069, 14097, 39070, 28824, 39071, 26630, 39072, 12994, 39073, 33195, 39074, 17548, 39075, 24066, 39076, 10091, 39077, 32855, 39078, 30063, 39079, 32262, 39080, 14952, 39081, 8776, 39082, 16516, 39083, 15279, 39084, 39195, 39085, 45927, 39086, 8784, 39087, 33060, 39088, 7697, 39089, 35836, 39090, 25072, 39091, 16525, 39092, 41150, 39093, 33706, 39094, 21931, 39095, 8802, 39096, 34954, 39097, 38027, 39098, 42067, 39099, 42260, 39100, 35172, 39101, 22419, 39102, 35173, 39103, 14470, 39104, 25536, 39105, 38987, 39106, 25602, 39107, 29974, 39108, 29975, 39109, 25543, 39110, 8819, 39111, 8820, 39112, 8821, 39113, 24962, 39114, 8822, 39115, 33333, 39116, 15004, 39117, 40684, 39118, 14937, 39119, 42015, 39120, 45905, 39121, 8767, 39122, 33052, 39123, 21889, 39124, 34919, 39125, 35147, 39126, 42230, 39127, 25493, 39128, 29966, 39129, 8795, 39130, 8796, 39131, 14667, 39132, 14474, 39133, 14698, 39134, 14664, 39135, 34198, 39136, 34191, 39137, 9469, 39138, 19373, 39139, 13351, 39140, 35009, 39141, 37318, 39142, 45851, 39143, 35533, 39144, 39770, 39145, 37264, 39146, 32612, 39147, 44562, 39148, 22036, 39149, 10855, 39150, 43484, 39151, 14592, 39152, 14593, 39153, 35537, 39154, 43479, 39155, 36972, 39156, 42752, 39157, 48565, 39158, 8513, 39159, 21030, 39160, 36180, 39161, 8011, 39162, 11648, 39163, 36715, 39164, 35028, 39165, 8012, 39166, 34376, 39167, 14039, 39168, 17164, 39169, 32615, 39170, 36587, 39171, 20703, 39172, 20032, 39173, 9027, 39174, 42231, 39175, 36891, 39176, 11649, 39177, 39778, 39178, 42099, 39179, 22042, 39180, 14368, 39181, 41914, 39182, 23924, 39183, 38830, 39184, 9477, 39185, 9105, 39186, 28438, 39187, 14243, 39188, 9384, 39189, 22345, 39190, 13555, 39191, 35313, 39192, 44332, 39193, 34392, 39194, 42245, 39195, 19158, 39196, 17085, 39197, 34393, 39198, 20417, 39199, 47800, 39200, 9029, 39201, 39665, 39202, 9389, 39203, 42509, 39204, 35949, 39205, 14690, 39206, 46031, 39207, 38104, 39208, 16646, 39209, 14251, 39210, 29099, 39211, 45202, 39212, 18241, 39213, 18782, 39214, 36719, 39215, 19082, 39216, 20182, 39217, 18034, 39218, 7355, 39219, 36105, 39220, 14839, 39221, 38112, 39222, 16455, 39223, 9767, 39224, 35128, 39225, 36111, 39226, 9240, 39227, 15815, 39228, 39155, 39229, 23273, 39230, 25599, 39231, 35169, 39232, 36232, 39233, 42531, 39234, 38171, 39235, 27812, 39236, 36115, 39237, 26660, 39238, 8605, 39239, 44687, 39240, 40677, 39241, 21181, 39242, 33160, 39243, 23284, 39244, 47709, 39245, 33625, 39246, 10906, 39247, 12488, 39248, 43275, 39249, 19487, 39250, 32509, 39251, 10532, 39252, 43859, 39253, 36196, 39254, 38135, 39255, 39789, 39256, 45893, 39257, 14840, 39258, 17177, 39259, 27186, 39260, 41965, 39261, 27824, 39262, 9997, 39263, 39790, 39264, 26405, 39265, 45382, 39266, 28309, 39267, 34171, 39268, 13344, 39269, 19340, 39270, 37298, 39271, 36052, 39272, 37253, 39273, 39055, 39274, 32589, 39275, 44491, 39276, 10823, 39277, 14564, 39278, 43465, 39279, 20349, 39280, 34306, 39281, 7997, 39282, 34996, 39283, 14014, 39284, 42664, 39285, 14357, 39286, 32502, 39287, 39765, 39288, 17603, 39289, 23923, 39290, 20667, 39291, 38718, 39292, 9011, 39293, 9085, 39294, 13534, 39295, 14164, 39296, 44256, 39297, 28434, 39298, 22314, 39299, 17074, 39300, 19146, 39301, 39621, 39302, 16634, 39303, 9755, 39304, 23255, 39305, 16420, 39306, 35141, 39307, 9930, 39308, 42473, 39309, 27789, 39310, 9180, 39311, 25489, 39312, 40654, 39313, 21165, 39314, 26640, 39315, 33146, 39316, 47695, 39317, 28305, 39318, 34441, 39319, 23183, 39320, 17051, 39321, 39702, 39322, 14867, 39323, 9193, 39324, 28543, 39325, 8533, 39326, 9219, 39327, 37087, 39328, 17201, 39329, 14691, 39330, 20183, 39331, 7408, 39332, 7364, 39333, 15514, 39334, 39393, 39335, 45079, 39336, 40411, 39337, 14892, 39338, 30044, 39339, 40414, 39340, 26533, 39341, 44563, 39342, 15018, 39343, 17341, 39344, 12816, 39345, 37373, 39346, 46228, 39347, 10739, 39348, 41330, 39349, 47591, 39350, 46694, 39351, 29552, 39352, 40451, 39353, 32648, 39354, 33058, 39355, 45148, 39356, 38199, 39357, 46754, 39358, 12454, 39359, 26117, 39360, 44047, 39361, 9195, 39362, 8014, 39363, 22170, 39364, 37380, 39365, 43147, 39366, 31996, 39367, 38200, 39368, 32003, 39369, 21448, 39370, 30220, 39371, 46104, 39372, 44778, 39373, 29526, 39374, 47367, 39375, 21904, 39376, 47603, 39377, 29055, 39378, 21688, 39379, 29730, 39380, 45405, 39381, 20091, 39382, 25343, 39383, 46427, 39384, 35839, 39385, 15486, 39386, 42102, 39387, 34266, 39388, 8557, 39389, 37383, 39390, 37384, 39391, 35036, 39392, 25502, 39393, 26569, 39394, 29944, 39395, 36230, 39396, 47069, 39397, 32704, 39398, 36285, 39399, 13471, 39400, 41270, 39401, 32183, 39402, 33912, 39403, 21449, 39404, 14370, 39405, 17168, 39406, 9220, 39407, 47429, 39408, 43369, 39409, 26477, 39410, 47288, 39411, 12467, 39412, 17169, 39413, 25518, 39414, 21768, 39415, 35104, 39416, 31495, 39417, 26775, 39418, 23756, 39419, 17378, 39420, 37090, 39421, 41037, 39422, 37229, 39423, 22351, 39424, 14128, 39425, 10636, 39426, 40501, 39427, 7282, 39428, 26084, 39429, 47765, 39430, 47295, 39431, 33830, 39432, 29946, 39433, 23327, 39434, 36233, 39435, 23532, 39436, 48201, 39437, 22727, 39438, 30627, 39439, 30628, 39440, 41936, 39441, 14692, 39442, 33227, 39443, 41937, 39444, 16002, 39445, 42320, 39446, 38666, 39447, 29958, 39448, 11785, 39449, 29959, 39450, 31057, 39451, 14693, 39452, 18790, 39453, 31054, 39454, 19209, 39455, 44367, 39456, 36406, 39457, 32249, 39458, 39279, 39459, 48203, 39460, 23213, 39461, 32794, 39462, 34957, 39463, 16531, 39464, 37395, 39465, 16804, 39466, 35176, 39467, 30984, 39468, 10620, 39469, 47113, 39470, 25539, 39471, 29659, 39472, 36294, 39473, 38988, 39474, 9636, 39475, 13643, 39476, 41954, 39477, 44873, 39478, 48282, 39479, 33229, 39480, 33626, 39481, 30647, 39482, 47123, 39483, 34752, 39484, 26103, 39485, 38989, 39486, 26383, 39487, 46038, 39488, 27942, 39489, 7625, 39490, 9487, 39491, 8823, 39492, 11787, 39493, 32021, 39494, 8622, 39495, 47124, 39496, 44708, 39497, 40806, 39498, 18449, 39499, 9113, 39500, 35362, 39501, 39950, 39502, 25179, 39503, 46003, 39504, 13881, 39505, 25549, 39506, 37398, 39507, 9728, 39508, 13093, 39509, 20648, 39510, 36711, 39511, 41966, 39512, 26396, 39513, 45895, 39514, 21332, 39515, 43298, 39516, 42548, 39517, 37329, 39518, 30045, 39519, 47386, 39520, 41974, 39521, 25703, 39522, 26128, 39523, 36307, 39524, 39737, 39525, 19930, 39526, 34765, 39527, 21794, 39528, 38997, 39529, 18558, 39530, 24273, 39531, 8829, 39532, 26527, 39533, 44479, 39534, 37332, 39535, 41295, 39536, 10703, 39537, 31952, 39538, 32642, 39539, 9123, 39540, 26111, 39541, 45404, 39542, 34250, 39543, 34997, 39544, 15414, 39545, 21638, 39546, 48261, 39547, 47547, 39548, 37344, 39549, 29053, 39550, 20078, 39551, 42966, 39552, 12273, 39553, 39850, 39554, 26550, 39555, 43330, 39556, 20589, 39557, 18418, 39558, 26448, 39559, 17153, 39560, 29922, 39561, 8768, 39562, 24116, 39563, 10629, 39564, 41867, 39565, 40470, 39566, 31480, 39567, 22315, 39568, 30546, 39569, 30547, 39570, 22699, 39571, 47757, 39572, 48159, 39573, 35264, 39574, 9470, 39575, 29955, 39576, 46980, 39577, 23191, 39578, 33212, 39579, 38626, 39580, 7605, 39581, 25490, 39582, 30944, 39583, 33585, 39584, 8785, 39585, 26369, 39586, 11754, 39587, 10046, 39588, 47375, 39589, 19899, 39590, 34750, 39591, 39726, 39592, 16397, 39593, 37953, 39594, 37968, 39595, 37969, 39596, 44288, 39597, 15715, 39598, 43094, 39599, 7485, 39600, 36954, 39601, 21072, 39602, 8058, 39603, 8175, 39604, 11605, 39605, 36421, 39606, 12885, 39607, 22911, 39608, 17126, 39609, 31284, 39610, 18028, 39611, 22989, 39612, 15982, 39613, 37210, 39614, 16101, 39615, 29940, 39616, 8590, 39617, 22645, 39618, 30880, 39619, 44359, 39620, 35439, 39621, 25791, 39622, 9253, 39623, 39940, 39624, 7925, 39625, 9254, 39626, 11609, 39627, 23043, 39628, 8978, 39629, 27817, 39630, 24960, 39631, 25796, 39632, 39946, 39633, 13653, 39634, 45401, 39635, 35442, 39636, 36426, 39637, 8980, 39638, 23045, 39639, 25901, 39640, 15793, 39641, 15797, 39642, 31374, 39643, 22561, 39644, 31356, 39645, 23841, 39646, 33259, 39647, 8770, 39648, 23310, 39649, 23314, 39650, 12817, 39651, 14656, 39652, 40661, 39653, 32418, 39654, 26837, 39655, 12455, 39656, 23319, 39657, 8972, 39658, 14447, 39659, 36658, 39660, 29731, 39661, 48046, 39662, 14449, 39663, 32422, 39664, 36464, 39665, 8061, 39666, 8558, 39667, 26843, 39668, 15304, 39669, 14340, 39670, 32705, 39671, 32006, 39672, 16175, 39673, 40667, 39674, 23392, 39675, 19871, 39676, 29639, 39677, 47631, 39678, 33709, 39679, 35590, 39680, 36478, 39681, 24508, 39682, 8974, 39683, 48202, 39684, 12844, 39685, 29647, 39686, 35084, 39687, 46557, 39688, 32248, 39689, 48204, 39690, 34840, 39691, 20313, 39692, 37424, 39693, 18256, 39694, 23470, 39695, 21533, 39696, 30646, 39697, 24738, 39698, 46434, 39699, 8979, 39700, 29660, 39701, 26573, 39702, 33133, 39703, 26665, 39704, 26666, 39705, 33346, 39706, 40808, 39707, 25112, 39708, 30989, 39709, 30988, 39710, 28304, 39711, 18620, 39712, 23407, 39713, 28925, 39714, 8981, 39715, 25121, 39716, 32483, 39717, 13535, 39718, 13554, 39719, 28411, 39720, 17985, 39721, 39156, 39722, 13567, 39723, 17292, 39724, 13570, 39725, 13569, 39726, 21537, 39727, 10198, 39728, 44722, 39729, 44726, 39730, 15941, 39731, 41927, 39732, 15390, 39733, 31553, 39734, 16802, 39735, 48206, 39736, 25603, 39737, 16806, 39738, 33659, 39739, 44709, 39740, 16836, 39741, 27045, 39742, 19824, 39743, 30572, 39744, 15550, 39745, 23198, 39746, 19153, 39747, 7699, 39748, 30252, 39749, 27053, 39750, 40772, 39751, 41802, 39752, 39918, 39753, 24870, 39754, 44663, 39755, 37192, 39756, 30465, 39757, 37765, 39758, 24873, 39759, 38113, 39760, 15663, 39761, 10694, 39762, 29976, 39763, 8616, 39764, 27818, 39765, 19721, 39766, 40804, 39767, 11121, 39768, 41843, 39769, 45896, 39770, 44265, 39771, 12598, 39772, 32543, 39773, 20949, 39774, 7671, 39775, 17937, 39776, 37321, 39777, 13171, 39778, 19711, 39779, 40957, 39780, 14098, 39781, 14222, 39782, 33389, 39783, 17428, 39784, 37270, 39785, 27918, 39786, 21079, 39787, 33955, 39788, 7859, 39789, 44853, 39790, 29801, 39791, 25924, 39792, 38203, 39793, 18217, 39794, 25862, 39795, 45231, 39796, 14634, 39797, 14875, 39798, 28177, 39799, 44054, 39800, 29956, 39801, 27800, 39802, 17679, 39803, 39265, 39804, 32007, 39805, 17263, 39806, 29737, 39807, 25354, 39808, 37389, 39809, 9110, 39810, 31926, 39811, 30151, 39812, 15318, 39813, 8575, 39814, 11680, 39815, 38105, 39816, 21691, 39817, 13127, 39818, 7730, 39819, 44061, 39820, 16970, 39821, 29738, 39822, 28640, 39823, 40496, 39824, 35842, 39825, 8064, 39826, 15498, 39827, 45741, 39828, 21914, 39829, 16369, 39830, 34225, 39831, 13412, 39832, 12332, 39833, 35776, 39834, 20989, 39835, 34545, 39836, 18070, 39837, 39784, 39838, 14342, 39839, 7474, 39840, 37898, 39841, 46166, 39842, 47430, 39843, 43556, 39844, 25083, 39845, 26479, 39846, 36907, 39847, 36422, 39848, 43229, 39849, 9059, 39850, 38017, 39851, 20629, 39852, 22920, 39853, 16796, 39854, 39385, 39855, 15993, 39856, 18935, 39857, 23865, 39858, 15323, 39859, 22586, 39860, 40672, 39861, 13961, 39862, 22298, 39863, 36402, 39864, 27515, 39865, 33711, 39866, 45742, 39867, 35591, 39868, 31496, 39869, 44360, 39870, 28441, 39871, 46266, 39872, 16973, 39873, 16103, 39874, 35222, 39875, 38500, 39876, 31929, 39877, 33522, 39878, 30317, 39879, 18695, 39880, 36661, 39881, 24316, 39882, 33398, 39883, 33399, 39884, 22589, 39885, 27161, 39886, 10613, 39887, 24218, 39888, 48291, 39889, 38898, 39890, 43923, 39891, 33916, 39892, 48061, 39893, 30633, 39894, 46566, 39895, 39785, 39896, 28442, 39897, 11528, 39898, 19900, 39899, 13133, 39900, 31463, 39901, 16494, 39902, 47322, 39903, 13419, 39904, 23533, 39905, 14794, 39906, 28518, 39907, 43261, 39908, 23328, 39909, 26093, 39910, 21619, 39911, 10128, 39912, 21323, 39913, 26339, 39914, 25374, 39915, 48280, 39916, 24229, 39917, 27220, 39918, 48207, 39919, 47114, 39920, 28644, 39921, 18287, 39922, 44369, 39923, 12890, 39924, 34158, 39925, 33918, 39926, 18696, 39927, 36407, 39928, 18036, 39929, 40504, 39930, 47440, 39931, 23477, 39932, 48208, 39933, 45589, 39934, 8661, 39935, 8662, 39936, 18697, 39937, 32252, 39938, 45593, 39939, 37835, 39940, 37836, 39941, 44372, 39942, 11490, 39943, 32796, 39944, 13280, 39945, 18794, 39946, 24815, 39947, 41827, 39948, 31826, 39949, 31827, 39950, 20314, 39951, 8341, 39952, 14271, 39953, 42071, 39954, 15522, 39955, 33105, 39956, 15694, 39957, 39205, 39958, 37425, 39959, 18259, 39960, 34418, 39961, 33022, 39962, 41049, 39963, 38175, 39964, 31146, 39965, 17552, 39966, 38446, 39967, 14637, 39968, 33232, 39969, 25546, 39970, 26543, 39971, 34232, 39972, 34162, 39973, 16623, 39974, 48065, 39975, 36298, 39976, 35704, 39977, 42269, 39978, 14117, 39979, 43876, 39980, 31062, 39981, 30649, 39982, 38176, 39983, 33024, 39984, 33928, 39985, 24741, 39986, 7567, 39987, 23921, 39988, 18907, 39989, 27722, 39990, 19916, 39991, 36668, 39992, 32024, 39993, 20214, 39994, 33920, 39995, 26670, 39996, 38992, 39997, 31931, 39998, 8855, 39999, 19917, 40000, 19909, 40001, 47484, 40002, 20509, 40003, 40682, 40004, 47660, 40005, 43860, 40006, 46039, 40007, 22537, 40008, 41215, 40009, 8879, 40010, 44713, 40011, 32025, 40012, 39835, 40013, 9115, 40014, 20749, 40015, 41358, 40016, 35363, 40017, 18800, 40018, 48483, 40019, 33633, 40020, 33634, 40021, 14475, 40022, 16939, 40023, 25180, 40024, 41359, 40025, 27549, 40026, 39044, 40027, 45622, 40028, 39733, 40029, 14935, 40030, 16629, 40031, 18074, 40032, 23036, 40033, 45594, 40034, 33234, 40035, 45898, 40036, 15699, 40037, 16941, 40038, 43801, 40039, 24325, 40040, 10171, 40041, 23975, 40042, 34611, 40043, 7372, 40044, 32861, 40045, 19928, 40046, 40985, 40047, 18387, 40048, 34612, 40049, 24635, 40050, 25123, 40051, 24640, 40052, 27626, 40053, 46387, 40054, 39791, 40055, 14290, 40056, 25903, 40057, 16696, 40058, 24274, 40059, 39412, 40060, 44231, 40061, 12597, 40062, 19702, 40063, 44033, 40064, 37265, 40065, 25913, 40066, 14633, 40067, 7670, 40068, 17657, 40069, 7725, 40070, 30139, 40071, 28637, 40072, 25860, 40073, 44041, 40074, 45729, 40075, 15459, 40076, 7726, 40077, 8054, 40078, 18064, 40079, 29792, 40080, 35832, 40081, 16788, 40082, 20959, 40083, 22584, 40084, 37988, 40085, 14337, 40086, 36892, 40087, 45586, 40088, 18067, 40089, 23020, 40090, 19845, 40091, 20609, 40092, 39367, 40093, 45733, 40094, 39779, 40095, 41334, 40096, 16100, 40097, 24182, 40098, 24697, 40099, 20165, 40100, 24306, 40101, 34223, 40102, 36659, 40103, 16966, 40104, 33391, 40105, 18686, 40106, 22294, 40107, 19855, 40108, 43918, 40109, 31632, 40110, 25355, 40111, 30608, 40112, 48277, 40113, 14689, 40114, 23324, 40115, 10125, 40116, 16493, 40117, 28514, 40118, 28641, 40119, 13128, 40120, 21314, 40121, 33913, 40122, 34152, 40123, 48047, 40124, 14928, 40125, 13270, 40126, 8337, 40127, 10165, 40128, 36394, 40129, 38172, 40130, 37832, 40131, 33102, 40132, 14257, 40133, 31821, 40134, 15506, 40135, 18783, 40136, 32246, 40137, 20501, 40138, 8658, 40139, 33225, 40140, 7560, 40141, 30629, 40142, 35700, 40143, 16619, 40144, 42259, 40145, 29415, 40146, 20191, 40147, 23919, 40148, 8854, 40149, 41214, 40150, 8876, 40151, 26662, 40152, 27720, 40153, 43850, 40154, 38123, 40155, 38984, 40156, 16932, 40157, 33627, 40158, 25177, 40159, 48482, 40160, 18380, 40161, 15696, 40162, 24321, 40163, 45894, 40164, 16649, 40165, 28712, 40166, 42853, 40167, 15281, 40168, 24447, 40169, 21525, 40170, 9308, 40171, 41895, 40172, 15358, 40173, 13118, 40174, 19411, 40175, 15050, 40176, 32887, 40177, 15655, 40178, 34140, 40179, 15052, 40180, 27749, 40181, 8016, 40182, 44773, 40183, 46698, 40184, 18364, 40185, 31538, 40186, 15134, 40187, 7827, 40188, 38204, 40189, 20166, 40190, 34147, 40191, 44629, 40192, 15082, 40193, 42168, 40194, 22189, 40195, 22190, 40196, 29846, 40197, 18541, 40198, 46485, 40199, 8019, 40200, 41915, 40201, 41434, 40202, 46611, 40203, 14625, 40204, 15053, 40205, 38205, 40206, 29191, 40207, 12317, 40208, 15915, 40209, 32841, 40210, 25356, 40211, 27599, 40212, 15305, 40213, 37391, 40214, 27672, 40215, 24489, 40216, 8689, 40217, 47071, 40218, 15916, 40219, 44779, 40220, 11658, 40221, 32075, 40222, 39919, 40223, 10686, 40224, 12468, 40225, 21692, 40226, 42315, 40227, 16370, 40228, 13413, 40229, 44643, 40230, 42005, 40231, 44644, 40232, 41438, 40233, 36707, 40234, 44645, 40235, 36549, 40236, 43617, 40237, 13791, 40238, 38441, 40239, 14343, 40240, 16529, 40241, 7345, 40242, 46701, 40243, 41932, 40244, 17807, 40245, 39927, 40246, 20043, 40247, 25084, 40248, 47431, 40249, 42063, 40250, 36395, 40251, 17948, 40252, 26480, 40253, 32849, 40254, 27988, 40255, 15921, 40256, 32547, 40257, 20630, 40258, 40673, 40259, 47293, 40260, 10688, 40261, 26481, 40262, 17808, 40263, 28642, 40264, 14129, 40265, 26234, 40266, 20044, 40267, 19890, 40268, 37091, 40269, 18545, 40270, 37422, 40271, 9329, 40272, 38501, 40273, 21977, 40274, 44680, 40275, 9242, 40276, 22353, 40277, 22354, 40278, 8336, 40279, 38899, 40280, 22355, 40281, 21774, 40282, 37024, 40283, 21322, 40284, 36403, 40285, 14103, 40286, 14104, 40287, 23101, 40288, 18250, 40289, 38570, 40290, 33917, 40291, 23560, 40292, 20808, 40293, 29375, 40294, 26095, 40295, 29813, 40296, 34552, 40297, 15334, 40298, 7413, 40299, 47943, 40300, 29657, 40301, 31554, 40302, 30980, 40303, 8101, 40304, 13134, 40305, 26096, 40306, 32367, 40307, 20198, 40308, 21781, 40309, 37112, 40310, 41441, 40311, 44785, 40312, 30635, 40313, 24230, 40314, 42536, 40315, 47767, 40316, 22813, 40317, 14053, 40318, 23329, 40319, 34040, 40320, 30636, 40321, 21324, 40322, 43262, 40323, 43263, 40324, 21325, 40325, 48062, 40326, 23534, 40327, 13420, 40328, 30474, 40329, 11529, 40330, 16072, 40331, 21700, 40332, 22224, 40333, 43264, 40334, 48480, 40335, 19484, 40336, 34691, 40337, 43631, 40338, 10907, 40339, 27547, 40340, 32797, 40341, 7415, 40342, 31829, 40343, 36409, 40344, 18260, 40345, 36410, 40346, 14272, 40347, 20852, 40348, 26850, 40349, 15336, 40350, 11492, 40351, 37094, 40352, 41828, 40353, 17696, 40354, 44875, 40355, 29921, 40356, 23332, 40357, 27000, 40358, 18261, 40359, 43632, 40360, 11380, 40361, 38668, 40362, 21784, 40363, 13422, 40364, 9582, 40365, 14659, 40366, 17751, 40367, 43648, 40368, 44876, 40369, 39401, 40370, 38279, 40371, 34163, 40372, 17752, 40373, 11191, 40374, 36119, 40375, 39281, 40376, 33025, 40377, 25547, 40378, 19671, 40379, 16380, 40380, 20212, 40381, 35558, 40382, 17389, 40383, 11663, 40384, 11664, 40385, 43287, 40386, 42372, 40387, 41956, 40388, 19493, 40389, 24587, 40390, 36556, 40391, 22876, 40392, 36325, 40393, 36326, 40394, 43288, 40395, 37096, 40396, 26544, 40397, 39947, 40398, 15822, 40399, 36557, 40400, 10446, 40401, 19672, 40402, 37148, 40403, 46313, 40404, 7568, 40405, 42322, 40406, 42629, 40407, 29202, 40408, 10910, 40409, 47129, 40410, 25605, 40411, 43861, 40412, 26127, 40413, 8626, 40414, 34756, 40415, 47953, 40416, 44382, 40417, 38507, 40418, 22249, 40419, 43454, 40420, 36414, 40421, 34965, 40422, 20649, 40423, 43299, 40424, 18451, 40425, 8629, 40426, 43656, 40427, 35364, 40428, 18801, 40429, 14541, 40430, 20650, 40431, 24964, 40432, 41967, 40433, 15824, 40434, 21624, 40435, 39507, 40436, 39508, 40437, 37097, 40438, 26598, 40439, 48484, 40440, 44714, 40441, 43659, 40442, 26108, 40443, 37149, 40444, 39509, 40445, 41207, 40446, 43305, 40447, 29903, 40448, 11218, 40449, 26399, 40450, 38937, 40451, 42811, 40452, 19505, 40453, 45560, 40454, 44389, 40455, 45899, 40456, 42551, 40457, 42075, 40458, 29904, 40459, 28926, 40460, 18388, 40461, 27329, 40462, 43661, 40463, 27196, 40464, 12856, 40465, 45053, 40466, 44716, 40467, 24038, 40468, 9334, 40469, 25904, 40470, 17756, 40471, 25705, 40472, 34766, 40473, 45058, 40474, 43663, 40475, 16697, 40476, 32129, 40477, 24275, 40478, 26267, 40479, 28704, 40480, 21507, 40481, 19353, 40482, 44742, 40483, 27728, 40484, 34105, 40485, 29177, 40486, 41419, 40487, 9566, 40488, 7999, 40489, 46453, 40490, 16342, 40491, 13390, 40492, 25853, 40493, 41424, 40494, 39865, 40495, 41994, 40496, 25284, 40497, 10658, 40498, 32038, 40499, 44749, 40500, 41186, 40501, 37357, 40502, 34904, 40503, 46953, 40504, 14330, 40505, 16510, 40506, 40648, 40507, 17797, 40508, 47263, 40509, 15896, 40510, 26227, 40511, 17911, 40512, 38475, 40513, 9169, 40514, 24135, 40515, 21969, 40516, 16421, 40517, 14091, 40518, 44564, 40519, 39451, 40520, 36351, 40521, 38543, 40522, 32336, 40523, 27542, 40524, 7397, 40525, 23315, 40526, 8097, 40527, 29621, 40528, 30945, 40529, 11515, 40530, 16064, 40531, 44770, 40532, 35288, 40533, 18204, 40534, 17664, 40535, 14223, 40536, 16438, 40537, 31809, 40538, 11644, 40539, 26984, 40540, 38640, 40541, 43175, 40542, 42351, 40543, 38272, 40544, 25504, 40545, 19624, 40546, 43176, 40547, 20167, 40548, 17730, 40549, 42613, 40550, 43618, 40551, 46307, 40552, 25594, 40553, 24941, 40554, 20633, 40555, 21615, 40556, 44665, 40557, 26086, 40558, 18608, 40559, 45882, 40560, 43627, 40561, 18375, 40562, 27162, 40563, 16691, 40564, 34757, 40565, 25911, 40566, 21125, 40567, 25357, 40568, 20315, 40569, 39502, 40570, 12110, 40571, 20325, 40572, 20338, 40573, 41711, 40574, 12105, 40575, 25984, 40576, 43957, 40577, 11864, 40578, 19710, 40579, 29460, 40580, 11865, 40581, 29462, 40582, 47609, 40583, 22295, 40584, 47520, 40585, 20184, 40586, 27290, 40587, 27291, 40588, 44470, 40589, 25531, 40590, 10441, 40591, 22299, 40592, 25169, 40593, 28521, 40594, 30639, 40595, 26097, 40596, 21620, 40597, 22300, 40598, 21328, 40599, 24552, 40600, 39728, 40601, 39503, 40602, 19996, 40603, 27307, 40604, 24588, 40605, 33836, 40606, 46041, 40607, 25182, 40608, 21333, 40609, 30658, 40610, 25418, 40611, 41718, 40612, 11866, 40613, 26609, 40614, 26603, 40615, 17665, 40616, 10272, 40617, 15136, 40618, 27527, 40619, 27528, 40620, 15142, 40621, 29486, 40622, 32164, 40623, 32010, 40624, 27989, 40625, 15145, 40626, 39676, 40627, 23535, 40628, 32016, 40629, 27534, 40630, 10916, 40631, 15006, 40632, 15113, 40633, 32004, 40634, 27531, 40635, 26508, 40636, 26940, 40637, 27797, 40638, 18893, 40639, 27959, 40640, 48281, 40641, 29109, 40642, 14894, 40643, 18747, 40644, 18736, 40645, 21126, 40646, 16719, 40647, 36506, 40648, 36975, 40649, 17945, 40650, 18496, 40651, 23134, 40652, 17952, 40653, 34587, 40654, 24183, 40655, 28643, 40656, 10699, 40657, 17759, 40658, 17758, 40659, 43177, 40660, 31051, 40661, 12409, 40662, 39138, 40663, 37242, 40664, 27927, 40665, 27910, 40666, 31053, 40667, 12323, 40668, 11286, 40669, 44125, 40670, 13036, 40671, 42623, 40672, 39277, 40673, 41817, 40674, 32017, 40675, 27027, 40676, 41829, 40677, 31662, 40678, 45035, 40679, 24236, 40680, 12530, 40681, 13644, 40682, 9536, 40683, 41602, 40684, 41701, 40685, 41834, 40686, 12417, 40687, 7481, 40688, 46437, 40689, 12330, 40690, 9537, 40691, 42631, 40692, 27004, 40693, 45954, 40694, 41850, 40695, 13661, 40696, 25905, 40697, 46840, 40698, 14901, 40699, 15324, 40700, 15395, 40701, 27506, 40702, 27486, 40703, 44865, 40704, 11911, 40705, 32167, 40706, 10257, 40707, 37473, 40708, 47441, 40709, 46708, 40710, 27193, 40711, 7570, 40712, 8880, 40713, 37402, 40714, 8634, 40715, 44828, 40716, 10240, 40717, 37396, 40718, 13330, 40719, 27410, 40720, 28230, 40721, 13334, 40722, 48034, 40723, 16427, 40724, 16428, 40725, 13418, 40726, 14886, 40727, 36235, 40728, 44789, 40729, 29820, 40730, 10132, 40731, 15823, 40732, 30827, 40733, 44790, 40734, 36051, 40735, 36270, 40736, 34590, 40737, 34580, 40738, 14883, 40739, 14786, 40740, 38213, 40741, 7704, 40742, 13132, 40743, 37394, 40744, 47177, 40745, 32092, 40746, 34039, 40747, 34227, 40748, 44178, 40749, 34231, 40750, 36784, 40751, 38505, 40752, 21786, 40753, 21331, 40754, 19166, 40755, 21792, 40756, 41839, 40757, 37025, 40758, 34968, 40759, 38933, 40760, 39693, 40761, 41844, 40762, 23982, 40763, 8344, 40764, 42356, 40765, 31927, 40766, 17203, 40767, 38659, 40768, 38663, 40769, 17991, 40770, 40357, 40771, 14285, 40772, 45673, 40773, 40719, 40774, 38305, 40775, 45674, 40776, 29017, 40777, 28325, 40778, 30589, 40779, 45795, 40780, 19891, 40781, 48063, 40782, 19494, 40783, 19502, 40784, 30488, 40785, 19435, 40786, 10803, 40787, 10471, 40788, 10472, 40789, 17689, 40790, 41468, 40791, 43450, 40792, 40344, 40793, 7977, 40794, 45557, 40795, 40349, 40796, 9874, 40797, 10695, 40798, 41830, 40799, 21829, 40800, 36666, 40801, 25380, 40802, 25365, 40803, 11144, 40804, 32256, 40805, 40353, 40806, 22751, 40807, 28851, 40808, 21623, 40809, 42321, 40810, 11588, 40811, 45158, 40812, 44475, 40813, 11217, 40814, 42883, 40815, 28522, 40816, 45559, 40817, 48285, 40818, 32145, 40819, 45161, 40820, 41848, 40821, 29206, 40822, 14288, 40823, 38401, 40824, 43309, 40825, 11612, 40826, 48286, 40827, 13012, 40828, 11219, 40829, 21271, 40830, 41544, 40831, 10771, 40832, 10465, 40833, 17632, 40834, 43418, 40835, 21816, 40836, 25329, 40837, 7972, 40838, 36652, 40839, 48028, 40840, 22744, 40841, 44453, 40842, 11578, 40843, 32142, 40844, 38392, 40845, 25648, 40846, 29416, 40847, 16180, 40848, 29417, 40849, 41831, 40850, 25680, 40851, 25724, 40852, 16184, 40853, 22451, 40854, 12224, 40855, 25433, 40856, 12225, 40857, 25609, 40858, 16150, 40859, 22443, 40860, 16798, 40861, 31834, 40862, 8883, 40863, 16751, 40864, 45021, 40865, 11437, 40866, 17701, 40867, 22254, 40868, 40191, 40869, 44720, 40899, 33544, 40909, 15781, 40910, 35688, 40911, 26611, 40916, 15911, 40917, 12357, 40939, 7618, 40940, 36524, 40941, 28535, 131072, 17555, 131073, 30402, 131075, 31404, 131077, 17145, 131081, 31788, 131082, 9596, 131085, 34276, 131091, 34884, 131092, 22074, 131099, 44482, 131101, 22792, 131106, 47964, 131110, 40510, 131121, 27993, 131127, 19359, 131128, 42443, 131129, 22277, 131132, 31009, 131133, 25964, 131145, 11136, 131159, 34394, 131168, 31464, 131173, 15544, 131181, 30504, 131191, 10031, 131204, 18538, 131206, 42886, 131207, 48529, 131208, 20855, 131217, 48259, 131220, 48074, 131231, 21093, 131234, 29289, 131236, 13771, 131237, 11791, 131239, 33968, 131256, 18729, 131274, 43458, 131276, 16943, 131286, 21491, 131307, 33846, 131322, 21577, 131333, 42474, 131337, 13472, 131340, 22069, 131341, 20856, 131343, 13135, 131345, 22070, 131346, 11438, 131350, 25250, 131354, 36736, 131363, 16041, 131374, 41502, 131377, 42665, 131391, 37876, 131394, 20862, 131404, 42653, 131415, 13300, 131418, 30510, 131436, 7969, 131441, 40245, 131449, 46075, 131468, 43830, 131472, 40958, 131481, 13302, 131483, 12377, 131487, 38039, 131491, 16534, 131497, 14555, 131502, 27836, 131505, 38677, 131506, 41723, 131509, 28473, 131510, 12421, 131531, 12386, 131535, 36153, 131538, 16126, 131543, 22962, 131544, 11222, 131567, 32148, 131569, 27838, 131571, 34098, 131573, 15668, 131575, 34002, 131585, 37299, 131589, 34430, 131594, 28750, 131620, 45166, 131621, 16540, 131628, 39841, 131629, 23800, 131632, 12429, 131633, 35559, 131637, 26780, 131638, 42666, 131640, 36250, 131642, 8425, 131650, 35708, 131671, 26443, 131682, 38998, 131683, 19122, 131684, 12183, 131687, 21864, 131689, 13596, 131692, 7428, 131721, 27038, 131724, 32409, 131726, 7265, 131727, 44504, 131730, 20357, 131732, 30746, 131743, 27691, 131747, 47340, 131748, 46901, 131749, 47188, 131750, 28368, 131751, 9049, 131753, 47678, 131754, 34636, 131755, 41381, 131756, 22116, 131757, 31075, 131760, 16544, 131762, 37002, 131766, 43782, 131767, 46922, 131774, 23177, 131782, 10466, 131798, 24781, 131799, 41425, 131804, 17096, 131805, 27553, 131806, 33771, 131807, 44413, 131809, 35010, 131810, 35185, 131812, 46923, 131815, 31396, 131817, 15431, 131820, 21721, 131821, 8149, 131823, 8467, 131826, 35606, 131829, 31080, 131830, 27764, 131831, 10024, 131834, 33208, 131835, 19381, 131861, 16222, 131862, 31731, 131866, 32768, 131870, 35189, 131871, 35191, 131872, 42199, 131882, 11014, 131885, 34715, 131886, 46173, 131887, 24432, 131888, 15601, 131889, 35401, 131890, 45856, 131892, 47745, 131901, 15454, 131907, 19397, 131908, 13489, 131927, 19007, 131930, 20259, 131931, 41776, 131932, 46981, 131944, 27015, 131945, 42342, 131946, 12784, 131947, 42736, 131951, 8897, 131954, 32054, 131955, 43128, 131957, 42121, 131961, 45696, 131965, 33428, 131993, 23521, 132014, 22156, 132016, 30437, 132019, 44309, 132022, 45295, 132023, 33062, 132024, 33282, 132027, 13913, 132031, 21031, 132032, 22631, 132035, 44940, 132039, 20279, 132040, 42232, 132051, 39369, 132053, 40035, 132054, 31279, 132058, 44607, 132059, 32060, 132065, 39368, 132066, 26472, 132068, 16729, 132071, 10511, 132072, 11419, 132073, 42772, 132075, 46585, 132077, 48249, 132078, 13826, 132080, 45821, 132095, 14731, 132096, 42773, 132097, 27132, 132104, 8653, 132105, 20980, 132106, 34681, 132107, 24934, 132108, 8389, 132109, 35235, 132113, 12967, 132129, 8185, 132130, 38255, 132135, 27151, 132137, 10050, 132149, 12625, 132154, 30058, 132155, 20310, 132156, 25232, 132157, 16925, 132158, 30469, 132159, 17857, 132163, 19660, 132164, 40329, 132165, 46565, 132166, 10058, 132176, 42262, 132177, 10066, 132184, 13003, 132185, 11009, 132186, 28430, 132187, 28431, 132190, 45837, 132191, 8664, 132193, 10069, 132202, 39951, 132207, 11921, 132208, 40412, 132209, 21370, 132210, 30998, 132212, 31640, 132217, 16383, 132228, 38592, 132252, 44885, 132253, 9016, 132258, 37589, 132272, 28718, 132277, 24799, 132280, 32515, 132286, 14601, 132287, 12833, 132298, 18897, 132299, 43247, 132300, 39492, 132310, 23639, 132311, 15530, 132313, 40630, 132316, 24852, 132317, 36150, 132318, 19510, 132322, 21035, 132323, 45678, 132324, 34099, 132330, 30506, 132331, 8671, 132333, 23655, 132334, 25187, 132342, 46982, 132343, 8489, 132344, 34083, 132349, 34089, 132351, 31555, 132354, 8763, 132355, 38675, 132361, 22002, 132363, 19351, 132365, 38689, 132366, 31559, 132369, 17150, 132373, 26314, 132384, 44988, 132392, 24666, 132399, 7823, 132402, 17798, 132406, 30466, 132410, 30975, 132411, 46621, 132412, 26854, 132417, 11790, 132420, 28123, 132426, 36789, 132428, 48151, 132437, 21439, 132438, 46117, 132447, 28652, 132448, 10560, 132451, 30870, 132454, 44565, 132455, 20688, 132461, 46160, 132467, 12798, 132468, 21492, 132472, 35434, 132475, 42142, 132479, 37700, 132482, 24897, 132484, 36842, 132486, 27224, 132491, 44086, 132499, 34905, 132507, 25819, 132511, 43359, 132517, 10995, 132523, 15697, 132524, 21490, 132534, 31585, 132535, 21454, 132537, 40087, 132546, 17708, 132550, 36154, 132552, 31854, 132553, 40090, 132554, 21378, 132555, 28649, 132556, 21379, 132559, 19533, 132568, 36562, 132570, 11999, 132571, 13206, 132573, 31668, 132581, 30161, 132582, 30120, 132584, 13217, 132585, 25817, 132595, 24755, 132596, 17240, 132597, 29385, 132598, 36059, 132602, 42737, 132603, 41067, 132604, 35658, 132605, 25480, 132606, 34769, 132607, 33981, 132609, 9372, 132610, 35142, 132613, 31531, 132614, 33949, 132618, 29015, 132619, 36816, 132620, 20488, 132629, 38852, 132630, 47073, 132637, 23556, 132638, 24510, 132639, 24511, 132642, 17690, 132643, 20791, 132645, 41702, 132647, 34483, 132650, 34238, 132657, 46391, 132659, 43939, 132666, 35656, 132667, 38451, 132673, 10137, 132674, 11794, 132678, 21850, 132686, 34491, 132692, 21579, 132693, 37854, 132702, 19248, 132708, 20833, 132716, 45448, 132726, 29208, 132732, 16537, 132739, 17453, 132740, 24277, 132741, 46868, 132742, 39583, 132745, 9296, 132746, 10191, 132755, 45063, 132756, 17615, 132764, 36181, 132768, 8813, 132773, 13095, 132775, 14378, 132776, 21493, 132781, 12891, 132782, 42893, 132783, 23289, 132785, 46181, 132787, 23367, 132788, 47237, 132789, 21837, 132793, 33564, 132794, 33408, 132795, 13097, 132796, 7806, 132797, 19343, 132800, 47138, 132803, 42639, 132805, 22829, 132806, 38404, 132810, 15877, 132811, 7636, 132814, 16237, 132817, 39416, 132818, 16498, 132819, 25555, 132820, 10765, 132821, 16562, 132822, 11327, 132824, 24105, 132825, 11874, 132826, 34695, 132833, 8355, 132837, 8999, 132838, 24344, 132841, 21551, 132842, 36614, 132843, 13967, 132845, 41549, 132846, 32169, 132849, 25021, 132851, 22676, 132853, 16031, 132854, 46322, 132856, 14847, 132865, 42655, 132867, 21569, 132868, 40862, 132869, 20661, 132872, 26174, 132873, 21552, 132875, 11105, 132878, 39589, 132880, 23008, 132881, 13811, 132886, 26352, 132887, 38707, 132888, 31593, 132889, 9351, 132900, 30854, 132913, 29702, 132914, 41420, 132915, 8244, 132916, 17068, 132917, 16504, 132921, 21716, 132924, 30835, 132926, 22109, 132932, 24381, 132944, 18394, 132945, 20590, 132952, 30858, 132954, 45684, 132955, 30836, 132957, 46211, 132958, 9747, 132959, 43742, 132962, 41557, 132964, 10929, 132968, 10783, 132970, 37543, 132972, 35131, 132978, 22461, 132979, 44815, 132989, 11039, 132991, 35607, 132992, 37005, 132995, 46219, 132996, 36313, 132998, 38425, 133000, 12146, 133001, 24418, 133002, 9749, 133013, 32667, 133014, 16223, 133015, 32322, 133017, 24128, 133022, 36166, 133028, 24419, 133031, 27270, 133033, 10858, 133036, 16975, 133037, 25760, 133038, 11416, 133039, 35612, 133040, 20690, 133041, 21216, 133045, 14426, 133046, 45790, 133054, 21217, 133055, 12015, 133058, 9729, 133059, 48487, 133061, 46149, 133064, 30016, 133065, 45919, 133066, 38810, 133067, 42345, 133068, 15377, 133069, 10936, 133075, 12019, 133079, 16519, 133091, 19413, 133094, 33283, 133095, 45865, 133096, 25451, 133097, 33284, 133098, 42486, 133104, 21681, 133110, 37018, 133114, 32839, 133115, 45534, 133116, 18590, 133121, 39546, 133123, 30960, 133124, 46161, 133131, 9510, 133134, 23393, 133135, 24491, 133136, 32790, 133140, 13622, 133143, 25075, 133148, 43624, 133149, 24512, 133152, 13625, 133154, 25369, 133162, 37557, 133167, 13287, 133171, 21494, 133173, 24331, 133174, 22880, 133175, 22756, 133177, 46393, 133184, 17706, 133186, 8401, 133188, 29682, 133194, 17396, 133201, 47859, 133202, 13796, 133204, 42942, 133212, 22677, 133213, 42943, 133214, 27853, 133217, 9490, 133219, 16076, 133220, 22682, 133221, 34308, 133229, 25274, 133230, 8245, 133233, 13745, 133238, 21957, 133239, 28369, 133240, 48096, 133243, 48240, 133251, 36056, 133254, 39235, 133255, 17329, 133260, 26284, 133261, 31020, 133267, 27888, 133268, 29179, 133269, 17461, 133273, 45691, 133274, 22029, 133275, 11806, 133280, 24448, 133281, 45697, 133282, 44111, 133283, 13067, 133284, 22161, 133285, 8165, 133289, 42302, 133290, 30017, 133297, 21236, 133298, 22413, 133299, 33285, 133300, 42100, 133301, 21237, 133305, 22724, 133316, 9915, 133319, 28675, 133321, 37696, 133322, 26221, 133328, 45086, 133329, 42143, 133330, 7960, 133333, 22271, 133334, 41055, 133336, 47242, 133344, 23242, 133345, 15042, 133354, 32035, 133355, 33739, 133356, 35542, 133360, 13578, 133362, 22992, 133363, 29478, 133370, 8051, 133374, 15460, 133375, 21597, 133376, 32417, 133380, 21689, 133386, 31770, 133389, 47297, 133390, 18453, 133391, 7993, 133397, 42646, 133399, 42667, 133400, 42668, 133405, 26881, 133414, 32921, 133419, 11661, 133422, 17208, 133424, 11792, 133428, 39052, 133433, 32193, 133434, 36631, 133436, 13149, 133438, 17217, 133447, 42421, 133453, 14061, 133454, 37858, 133456, 9570, 133457, 13162, 133461, 14179, 133462, 12938, 133464, 35376, 133465, 32235, 133468, 14224, 133469, 29184, 133470, 41071, 133474, 38561, 133478, 43248, 133480, 27992, 133488, 18080, 133492, 17218, 133503, 34172, 133507, 33045, 133512, 8396, 133514, 17209, 133515, 21371, 133516, 39050, 133518, 31586, 133519, 12089, 133520, 11681, 133522, 7807, 133527, 13772, 133532, 39056, 133543, 46656, 133544, 26272, 133546, 18096, 133547, 19555, 133548, 16566, 133554, 29386, 133568, 47423, 133573, 8390, 133575, 44343, 133586, 30664, 133589, 17578, 133590, 11196, 133593, 33734, 133594, 10818, 133595, 9120, 133599, 32629, 133600, 43996, 133604, 28200, 133609, 18977, 133610, 36636, 133611, 7849, 133616, 40731, 133620, 44008, 133621, 10837, 133631, 17795, 133635, 37532, 133638, 40265, 133642, 22171, 133644, 35420, 133645, 31611, 133646, 47676, 133653, 19731, 133656, 8402, 133658, 38708, 133664, 19565, 133666, 22329, 133669, 24908, 133670, 43963, 133677, 21705, 133682, 44951, 133685, 7927, 133688, 29748, 133691, 45566, 133694, 42904, 133695, 12859, 133698, 31407, 133700, 35594, 133702, 11685, 133704, 47536, 133705, 44956, 133711, 20580, 133716, 34184, 133719, 42669, 133720, 39213, 133728, 44802, 133733, 17027, 133735, 22686, 133738, 12000, 133739, 43000, 133749, 24382, 133751, 13018, 133754, 38738, 133759, 8491, 133762, 8675, 133763, 26958, 133764, 24400, 133767, 35188, 133776, 25473, 133777, 16894, 133778, 22705, 133783, 42738, 133785, 39016, 133786, 43425, 133791, 22710, 133795, 33813, 133799, 38339, 133806, 29882, 133814, 45008, 133815, 17939, 133818, 24471, 133819, 15490, 133827, 22208, 133828, 39386, 133833, 13004, 133836, 24609, 133843, 36987, 133848, 20093, 133851, 7763, 133852, 12892, 133853, 46046, 133859, 44480, 133864, 13806, 133869, 9466, 133870, 37028, 133878, 35884, 133879, 19535, 133880, 30507, 133881, 33571, 133882, 28634, 133894, 16664, 133896, 8378, 133899, 40475, 133907, 46429, 133913, 33032, 133915, 27835, 133917, 15156, 133922, 36151, 133923, 7926, 133930, 8846, 133932, 38680, 133934, 20865, 133942, 21186, 133950, 30906, 133960, 34998, 133961, 21347, 133963, 10775, 133975, 21350, 133989, 35458, 133999, 45648, 134000, 24137, 134004, 47841, 134009, 8733, 134015, 37268, 134019, 8535, 134022, 14773, 134026, 12695, 134028, 47473, 134033, 21698, 134041, 42819, 134044, 41489, 134047, 10814, 134048, 16538, 134049, 46788, 134056, 32622, 134059, 43941, 134061, 9118, 134063, 19685, 134064, 30071, 134067, 43569, 134068, 41983, 134069, 26804, 134077, 25727, 134078, 28096, 134079, 33091, 134080, 11326, 134082, 11613, 134083, 38514, 134084, 32573, 134088, 12260, 134089, 19515, 134091, 42823, 134093, 32402, 134096, 19233, 134097, 16499, 134099, 46184, 134100, 29857, 134103, 45219, 134104, 7864, 134105, 20871, 134108, 17989, 134111, 39585, 134112, 18841, 134121, 45635, 134122, 12246, 134123, 15881, 134125, 29858, 134127, 29953, 134128, 34179, 134129, 24856, 134130, 44957, 134131, 18305, 134132, 8701, 134135, 32626, 134137, 32627, 134148, 42567, 134149, 46628, 134151, 21097, 134152, 38260, 134153, 10215, 134155, 31793, 134157, 47498, 134159, 45679, 134160, 30209, 134161, 7445, 134163, 17584, 134165, 11132, 134166, 41616, 134170, 34299, 134171, 18313, 134172, 14144, 134196, 34185, 134201, 37304, 134202, 12265, 134203, 37529, 134204, 30166, 134205, 32734, 134206, 21629, 134208, 9069, 134224, 44405, 134225, 13481, 134227, 16826, 134228, 34450, 134231, 35560, 134232, 28574, 134233, 47244, 134234, 25729, 134235, 9006, 134236, 48493, 134237, 42445, 134238, 32445, 134240, 25264, 134241, 33050, 134244, 23987, 134245, 14150, 134247, 47212, 134248, 19693, 134251, 14151, 134255, 48547, 134258, 28137, 134259, 45134, 134282, 40215, 134283, 48423, 134284, 34626, 134285, 13375, 134286, 14451, 134287, 32553, 134289, 7892, 134290, 17219, 134291, 17881, 134292, 42573, 134294, 42574, 134297, 22594, 134298, 42971, 134299, 18916, 134300, 46505, 134318, 21385, 134321, 15934, 134324, 29018, 134325, 31416, 134327, 13207, 134329, 19770, 134330, 43002, 134331, 42692, 134333, 15208, 134334, 34848, 134335, 34849, 134336, 43888, 134337, 22740, 134338, 18419, 134339, 17966, 134343, 17605, 134346, 17563, 134347, 31072, 134348, 30859, 134350, 35005, 134352, 7895, 134380, 21285, 134381, 22687, 134387, 7250, 134388, 25749, 134390, 36997, 134393, 11400, 134396, 35115, 134397, 10553, 134399, 37785, 134402, 29062, 134404, 21555, 134407, 8926, 134433, 40014, 134434, 34020, 134435, 18044, 134438, 47559, 134440, 16601, 134441, 19374, 134443, 19782, 134445, 38740, 134447, 33796, 134448, 29214, 134449, 18163, 134450, 35717, 134451, 39967, 134453, 45471, 134456, 9283, 134457, 30755, 134458, 37455, 134459, 37314, 134460, 12636, 134462, 28149, 134496, 45786, 134499, 41511, 134502, 38533, 134503, 46389, 134504, 12701, 134505, 17565, 134507, 7484, 134508, 29772, 134509, 33269, 134510, 14898, 134511, 16508, 134515, 30215, 134519, 41125, 134520, 17185, 134521, 15755, 134522, 7663, 134523, 48155, 134524, 27226, 134526, 19250, 134567, 12981, 134568, 38741, 134571, 12234, 134572, 28316, 134576, 13109, 134577, 26453, 134578, 22693, 134583, 43058, 134584, 22135, 134585, 17633, 134587, 19567, 134590, 17716, 134591, 28783, 134592, 32990, 134593, 31021, 134594, 12298, 134595, 33691, 134596, 22701, 134597, 47463, 134599, 34117, 134600, 26181, 134601, 19969, 134602, 29925, 134603, 18060, 134604, 19383, 134605, 35726, 134606, 11047, 134607, 38317, 134608, 21400, 134609, 30179, 134610, 45788, 134611, 40394, 134614, 8723, 134617, 40903, 134622, 16349, 134623, 21067, 134626, 39452, 134648, 14084, 134650, 9163, 134651, 29960, 134655, 45271, 134657, 29297, 134658, 37006, 134660, 43583, 134702, 39767, 134705, 29144, 134706, 15898, 134707, 9164, 134708, 40244, 134712, 46350, 134713, 44291, 134714, 28591, 134720, 41388, 134721, 37504, 134723, 7507, 134724, 17336, 134725, 17835, 134726, 12358, 134728, 29119, 134730, 9634, 134731, 19581, 134732, 28468, 134733, 43905, 134734, 39883, 134736, 11302, 134737, 42343, 134739, 15958, 134740, 36065, 134741, 8052, 134742, 10028, 134744, 40919, 134747, 17122, 134749, 11052, 134751, 20260, 134752, 48501, 134756, 38073, 134757, 12150, 134758, 29716, 134800, 18668, 134802, 38789, 134804, 29571, 134805, 25456, 134806, 28033, 134807, 27581, 134808, 23782, 134809, 37218, 134810, 7818, 134813, 15903, 134815, 22948, 134818, 19976, 134819, 9096, 134861, 18669, 134863, 48323, 134864, 26463, 134871, 24158, 134873, 17659, 134874, 27790, 134876, 34814, 134877, 33897, 134878, 22543, 134879, 10866, 134880, 25330, 134881, 26422, 134884, 41785, 134885, 46150, 134886, 11304, 134887, 16430, 134888, 31573, 134890, 35931, 134891, 14917, 134892, 37067, 134897, 25331, 134900, 23770, 134934, 23592, 134935, 45353, 134936, 38635, 134941, 24159, 134942, 7242, 134943, 26292, 134944, 46845, 134945, 11062, 134946, 20553, 134948, 20147, 134953, 26329, 134954, 42753, 134956, 33642, 134971, 19414, 135004, 43130, 135005, 28881, 135009, 19036, 135011, 45657, 135014, 17283, 135016, 43488, 135017, 8536, 135018, 7401, 135019, 39197, 135020, 28509, 135024, 12790, 135025, 20280, 135026, 29331, 135029, 44609, 135030, 11316, 135031, 45230, 135033, 9801, 135035, 46235, 135036, 33286, 135038, 29560, 135039, 16361, 135040, 46236, 135046, 24172, 135047, 13495, 135049, 11066, 135051, 48429, 135052, 30253, 135055, 33762, 135056, 25640, 135074, 34668, 135076, 21238, 135077, 25340, 135080, 22520, 135081, 23456, 135083, 40774, 135084, 21239, 135086, 11334, 135090, 45009, 135110, 26596, 135111, 40294, 135112, 21529, 135113, 19858, 135115, 45014, 135119, 20169, 135121, 17259, 135123, 33066, 135124, 19051, 135125, 31379, 135127, 33294, 135128, 48431, 135131, 25925, 135132, 18494, 135133, 11141, 135134, 33557, 135135, 38382, 135136, 19625, 135137, 47914, 135138, 39469, 135139, 42607, 135140, 17047, 135141, 23268, 135185, 47283, 135188, 26025, 135190, 9106, 135191, 34224, 135192, 43791, 135193, 22914, 135225, 47052, 135226, 40149, 135229, 42511, 135230, 14252, 135231, 26202, 135232, 17370, 135233, 42512, 135238, 26478, 135239, 11582, 135240, 14602, 135241, 46764, 135242, 43794, 135243, 38239, 135244, 37469, 135245, 7346, 135246, 44344, 135249, 18407, 135251, 25076, 135252, 21315, 135253, 45256, 135271, 45396, 135272, 13830, 135274, 19873, 135278, 38326, 135280, 19638, 135281, 38874, 135283, 45988, 135284, 37135, 135306, 44345, 135311, 25086, 135314, 47092, 135315, 34157, 135317, 23868, 135318, 23557, 135319, 38018, 135320, 29465, 135321, 10755, 135322, 43763, 135323, 13560, 135325, 13561, 135327, 8070, 135328, 31455, 135329, 34685, 135331, 46768, 135337, 25087, 135339, 29641, 135341, 46179, 135359, 29195, 135362, 40319, 135363, 19652, 135364, 23558, 135365, 43711, 135366, 9713, 135382, 23895, 135389, 26350, 135393, 25654, 135394, 39157, 135398, 25233, 135401, 16803, 135411, 40503, 135415, 24222, 135416, 11610, 135431, 31682, 135441, 20200, 135442, 12666, 135443, 20316, 135444, 31706, 135445, 40345, 135446, 43799, 135455, 17107, 135457, 46316, 135458, 33766, 135459, 27301, 135460, 18611, 135473, 11919, 135474, 32856, 135475, 33040, 135476, 19320, 135477, 42625, 135479, 12797, 135481, 26278, 135483, 43276, 135490, 9292, 135491, 29418, 135492, 35971, 135493, 14115, 135494, 45399, 135495, 11824, 135507, 45800, 135509, 39041, 135510, 26802, 135512, 23484, 135513, 45214, 135521, 14276, 135525, 13282, 135533, 16624, 135537, 18698, 135541, 34420, 135542, 20331, 135545, 45897, 135546, 19675, 135547, 18699, 135557, 37697, 135558, 26437, 135567, 13571, 135573, 24820, 135587, 28752, 135588, 28269, 135589, 21564, 135590, 44952, 135593, 42145, 135594, 11382, 135598, 9522, 135599, 24278, 135600, 13888, 135601, 28270, 135602, 28271, 135608, 32639, 135613, 44958, 135616, 43987, 135618, 43318, 135620, 17023, 135624, 12544, 135633, 46323, 135634, 27253, 135635, 13196, 135638, 46324, 135642, 22963, 135644, 17220, 135645, 35112, 135646, 17591, 135647, 19360, 135648, 46199, 135652, 9012, 135654, 37855, 135655, 36938, 135657, 37031, 135660, 15752, 135661, 25750, 135662, 32201, 135663, 19174, 135664, 47664, 135665, 32318, 135667, 17904, 135669, 12550, 135670, 17617, 135671, 35866, 135672, 16567, 135674, 44515, 135676, 41523, 135679, 37546, 135680, 32383, 135685, 22136, 135686, 29178, 135689, 32179, 135690, 46742, 135693, 25315, 135694, 38429, 135695, 40446, 135696, 12199, 135698, 44762, 135699, 44914, 135703, 27899, 135705, 44042, 135710, 38545, 135712, 46016, 135715, 41020, 135718, 32514, 135719, 16963, 135720, 44610, 135726, 39266, 135727, 8690, 135728, 44063, 135730, 43373, 135732, 41082, 135733, 44070, 135734, 23956, 135740, 36788, 135743, 46317, 135748, 45301, 135749, 15534, 135750, 23424, 135753, 32308, 135758, 21706, 135760, 11469, 135761, 12141, 135762, 37248, 135763, 7246, 135767, 48078, 135770, 18727, 135771, 42922, 135785, 8034, 135786, 10704, 135789, 32640, 135796, 25839, 135799, 20872, 135800, 34291, 135802, 48381, 135809, 42923, 135812, 14904, 135813, 14905, 135817, 27841, 135821, 34619, 135835, 7526, 135837, 29835, 135838, 30104, 135839, 30168, 135840, 20003, 135841, 47301, 135843, 31795, 135847, 44084, 135848, 35914, 135851, 32735, 135853, 27369, 135862, 42946, 135864, 32738, 135867, 25024, 135868, 31717, 135897, 18917, 135898, 19752, 135903, 15857, 135911, 44002, 135912, 9740, 135913, 12676, 135914, 43322, 135916, 44497, 135917, 8132, 135919, 9138, 135956, 31256, 135962, 9817, 135964, 40383, 135966, 10716, 135971, 45466, 135972, 23174, 135974, 14757, 135977, 35673, 135978, 16588, 135981, 13929, 135986, 16765, 135988, 46727, 136012, 10016, 136013, 28373, 136016, 18164, 136018, 36207, 136033, 43029, 136036, 28784, 136037, 45826, 136038, 18575, 136040, 13697, 136042, 30762, 136043, 9661, 136046, 11447, 136050, 12148, 136054, 46956, 136055, 16109, 136059, 38300, 136073, 13698, 136077, 10724, 136081, 7461, 136082, 23377, 136084, 38361, 136088, 43584, 136090, 29949, 136107, 45689, 136108, 47633, 136110, 35276, 136115, 28592, 136122, 47464, 136123, 9931, 136126, 8295, 136127, 28502, 136128, 46743, 136129, 19009, 136152, 39299, 136154, 46983, 136155, 38790, 136158, 20517, 136169, 13781, 136170, 15120, 136173, 20606, 136174, 10241, 136175, 7793, 136181, 25066, 136188, 7540, 136203, 45419, 136204, 11268, 136207, 37416, 136210, 17466, 136211, 22514, 136212, 43426, 136214, 39643, 136221, 15461, 136222, 8867, 136224, 23158, 136228, 31446, 136229, 33063, 136255, 12158, 136256, 42427, 136260, 46052, 136262, 24839, 136264, 13799, 136269, 23817, 136270, 41267, 136280, 47026, 136282, 22913, 136286, 35482, 136287, 38325, 136291, 22915, 136303, 20284, 136310, 20525, 136315, 47798, 136317, 34774, 136318, 44334, 136321, 33067, 136323, 44630, 136324, 23667, 136330, 44647, 136332, 31096, 136333, 21928, 136335, 25077, 136338, 34570, 136339, 39667, 136342, 15611, 136354, 35844, 136359, 36596, 136367, 27233, 136369, 12840, 136371, 27463, 136382, 18898, 136393, 14051, 136397, 25088, 136402, 23561, 136403, 43447, 136404, 23673, 136406, 20640, 136408, 19304, 136419, 17017, 136422, 45995, 136429, 27357, 136432, 23166, 136439, 14056, 136447, 43451, 136455, 24074, 136469, 16232, 136475, 36791, 136476, 42177, 136478, 37728, 136483, 20898, 136488, 40640, 136490, 34637, 136497, 38060, 136500, 44566, 136513, 45877, 136521, 7486, 136527, 33202, 136528, 11096, 136530, 22982, 136534, 21796, 136535, 17148, 136546, 27483, 136551, 17435, 136554, 11040, 136558, 25316, 136560, 48171, 136585, 23290, 136588, 47141, 136590, 46090, 136592, 13298, 136593, 16269, 136594, 45101, 136595, 12343, 136596, 29131, 136603, 9013, 136605, 32413, 136606, 9902, 136610, 32743, 136611, 43336, 136612, 9903, 136615, 46957, 136618, 16590, 136619, 29117, 136620, 33881, 136623, 35277, 136626, 38337, 136627, 10795, 136634, 27595, 136635, 46748, 136638, 30439, 136641, 16254, 136646, 25812, 136648, 48048, 136653, 12531, 136655, 39578, 136657, 32802, 136663, 29662, 136670, 38683, 136674, 22961, 136676, 16870, 136677, 11495, 136678, 21037, 136690, 21038, 136691, 38690, 136693, 22882, 136695, 16330, 136696, 45751, 136697, 14565, 136700, 40206, 136717, 18565, 136719, 28707, 136720, 39067, 136731, 11857, 136733, 16944, 136737, 38721, 136743, 30844, 136746, 26728, 136749, 46201, 136752, 22008, 136756, 8856, 136768, 8857, 136773, 32208, 136779, 39089, 136782, 20680, 136784, 32218, 136785, 46833, 136786, 36500, 136787, 22380, 136792, 33139, 136795, 48006, 136803, 20930, 136810, 8894, 136812, 13550, 136813, 48413, 136822, 41786, 136833, 8537, 136837, 22996, 136839, 41916, 136840, 37890, 136842, 18543, 136844, 17538, 136849, 16176, 136852, 27140, 136855, 24010, 136857, 12973, 136859, 9036, 136860, 18551, 136863, 37475, 136864, 22240, 136872, 10815, 136877, 7634, 136878, 21544, 136887, 12893, 136889, 46063, 136891, 12230, 136892, 34180, 136893, 17499, 136908, 42434, 136919, 8405, 136920, 29832, 136921, 42276, 136924, 12767, 136925, 9539, 136926, 30046, 136927, 44964, 136928, 31394, 136929, 29687, 136949, 37405, 136950, 40207, 136957, 42440, 136960, 14566, 136961, 16501, 136962, 18320, 136963, 32865, 136969, 32446, 136970, 15073, 136971, 18708, 136986, 32812, 136994, 26865, 136997, 13775, 136998, 18979, 136999, 39068, 137000, 40637, 137003, 32447, 137004, 42576, 137007, 46202, 137009, 19771, 137010, 15860, 137011, 44159, 137013, 30304, 137032, 11237, 137033, 11858, 137034, 46203, 137035, 28708, 137037, 31418, 137040, 9780, 137042, 28709, 137043, 35393, 137049, 9781, 137050, 10555, 137051, 42189, 137052, 13690, 137053, 37705, 137055, 28687, 137056, 27258, 137062, 29032, 137063, 39083, 137065, 42153, 137067, 9904, 137112, 40232, 137113, 27588, 137114, 22791, 137116, 11883, 137118, 34054, 137119, 29369, 137120, 18344, 137122, 22702, 137123, 39623, 137125, 18001, 137126, 31732, 137127, 48161, 137130, 15245, 137131, 28221, 137133, 28588, 137135, 22929, 137150, 28457, 137165, 15899, 137169, 18002, 137171, 7256, 137173, 34118, 137182, 40649, 137183, 11734, 137184, 20594, 137186, 45690, 137187, 39873, 137188, 24787, 137189, 32137, 137192, 33545, 137193, 40258, 137195, 16225, 137196, 27590, 137197, 9868, 137199, 14298, 137203, 13545, 137222, 22861, 137226, 36646, 137227, 34126, 137231, 33180, 137234, 16607, 137238, 17531, 137239, 47006, 137240, 42130, 137241, 36833, 137242, 8514, 137244, 27791, 137246, 15282, 137253, 31216, 137273, 47007, 137276, 35149, 137279, 28715, 137280, 22037, 137282, 42122, 137284, 18723, 137288, 8264, 137289, 27792, 137290, 10242, 137294, 26154, 137295, 33702, 137296, 9325, 137297, 45605, 137298, 34930, 137300, 48452, 137301, 44941, 137302, 45320, 137303, 26270, 137317, 32061, 137338, 27558, 137344, 47691, 137352, 12565, 137354, 44774, 137362, 21822, 137365, 18949, 137366, 30799, 137368, 45194, 137370, 26713, 137372, 27828, 137393, 29967, 137395, 21246, 137401, 42169, 137408, 10886, 137409, 28608, 137410, 35159, 137416, 34682, 137419, 29968, 137428, 17371, 137440, 42172, 137442, 28429, 137450, 34408, 137452, 44781, 137454, 9458, 137455, 20992, 137465, 40321, 137469, 41687, 137470, 39932, 137483, 40330, 137484, 24533, 137486, 14605, 137495, 47614, 137497, 28182, 137499, 47673, 137502, 23164, 137506, 26385, 137515, 30842, 137526, 37560, 137533, 34577, 137535, 10637, 137537, 42895, 137542, 17493, 137544, 20754, 137547, 18974, 137549, 40008, 137550, 11615, 137566, 19753, 137574, 28531, 137576, 28534, 137577, 36416, 137590, 21883, 137592, 27772, 137597, 24130, 137599, 47221, 137601, 40906, 137603, 31744, 137604, 15262, 137606, 8968, 137610, 19811, 137613, 30556, 137614, 39099, 137620, 12739, 137621, 14335, 137627, 34564, 137628, 36893, 137629, 39980, 137631, 29805, 137640, 12405, 137642, 19653, 137651, 40049, 137655, 11827, 137659, 8918, 137660, 32732, 137677, 27517, 137682, 27518, 137684, 34487, 137685, 39960, 137686, 7995, 137687, 37494, 137689, 29472, 137699, 15577, 137701, 18083, 137702, 17788, 137704, 47447, 137705, 16564, 137709, 16879, 137721, 12274, 137724, 8924, 137725, 18805, 137728, 9782, 137732, 39295, 137733, 21717, 137735, 42285, 137750, 14895, 137751, 45467, 137755, 14954, 137762, 21652, 137763, 44519, 137769, 19125, 137778, 20907, 137779, 40615, 137781, 28218, 137787, 29033, 137789, 34055, 137791, 44541, 137794, 18577, 137795, 16091, 137796, 37618, 137798, 37363, 137799, 31264, 137816, 43532, 137818, 19970, 137825, 35614, 137827, 20931, 137828, 38792, 137829, 38284, 137833, 26765, 137846, 42045, 137848, 42209, 137853, 26768, 137854, 29181, 137857, 7422, 137861, 25821, 137873, 14215, 137874, 48111, 137879, 14216, 137881, 7466, 137886, 19270, 137888, 9716, 137904, 40621, 137905, 19847, 137907, 48521, 137909, 30590, 137914, 46552, 137920, 19438, 137921, 30457, 137922, 21991, 137923, 28906, 137951, 33311, 137957, 17742, 137958, 32762, 137959, 31579, 137964, 21699, 137967, 24534, 137973, 34228, 137976, 28618, 137977, 39496, 137978, 15152, 137981, 32872, 137985, 40629, 137986, 16933, 137988, 19913, 137990, 27222, 137991, 15154, 137993, 33116, 137994, 44704, 137995, 20800, 137996, 27242, 137997, 25694, 137998, 31206, 138000, 27323, 138003, 42813, 138005, 25698, 138006, 17206, 138007, 28624, 138008, 23892, 138009, 33347, 138012, 25207, 138014, 44483, 138021, 29110, 138027, 38598, 138031, 8676, 138034, 8677, 138035, 41003, 138037, 20123, 138040, 8679, 138050, 12691, 138055, 47649, 138059, 32756, 138064, 34740, 138072, 19935, 138075, 18938, 138078, 45839, 138082, 7777, 138083, 25019, 138085, 40060, 138093, 20231, 138094, 34440, 138099, 22577, 138103, 16600, 138104, 26273, 138110, 29034, 138111, 10178, 138126, 24830, 138137, 28225, 138138, 32868, 138142, 47008, 138150, 9613, 138160, 24472, 138171, 23611, 138175, 9917, 138177, 37698, 138180, 24335, 138183, 38577, 138184, 29440, 138185, 44135, 138187, 15616, 138191, 7376, 138192, 40633, 138193, 34794, 138194, 32952, 138200, 7843, 138201, 43989, 138210, 19212, 138213, 18851, 138216, 48551, 138217, 39854, 138219, 27446, 138224, 15548, 138225, 44884, 138227, 9284, 138228, 10282, 138229, 37204, 138231, 9285, 138237, 15549, 138239, 36621, 138240, 28105, 138245, 18186, 138246, 28793, 138251, 18932, 138252, 25804, 138254, 36362, 138256, 31376, 138257, 31324, 138258, 47202, 138262, 12791, 138266, 25154, 138269, 32253, 138270, 47659, 138272, 23965, 138274, 40188, 138277, 32533, 138280, 12495, 138282, 13574, 138283, 28648, 138287, 34244, 138290, 39414, 138297, 46715, 138301, 7307, 138302, 11593, 138303, 30324, 138305, 34248, 138309, 31955, 138310, 34579, 138311, 12979, 138313, 39987, 138314, 34797, 138316, 18566, 138320, 42674, 138321, 21955, 138324, 46812, 138332, 46130, 138339, 40881, 138351, 25733, 138353, 47556, 138355, 35599, 138359, 13208, 138362, 32039, 138364, 22695, 138365, 18098, 138366, 21653, 138368, 31670, 138381, 8991, 138389, 36444, 138391, 22137, 138394, 31891, 138403, 20547, 138410, 45176, 138413, 27047, 138414, 29717, 138416, 32053, 138428, 27393, 138431, 36450, 138434, 22429, 138436, 8380, 138438, 31986, 138447, 36628, 138449, 11274, 138456, 21753, 138458, 38835, 138462, 25221, 138477, 10807, 138478, 19478, 138484, 25878, 138488, 24590, 138494, 22073, 138501, 47388, 138502, 25954, 138510, 28758, 138516, 32197, 138541, 41491, 138543, 14131, 138545, 18297, 138560, 26733, 138569, 38582, 138572, 9734, 138577, 31472, 138578, 20867, 138579, 17869, 138581, 12335, 138582, 14301, 138583, 45567, 138584, 18306, 138585, 7502, 138586, 21041, 138587, 15404, 138588, 43929, 138590, 14943, 138604, 28048, 138614, 33263, 138615, 11795, 138619, 22504, 138626, 42324, 138627, 7309, 138628, 7964, 138630, 30211, 138632, 34249, 138633, 14567, 138635, 21710, 138636, 29753, 138638, 38048, 138639, 22886, 138640, 31401, 138641, 15626, 138658, 23112, 138659, 35447, 138660, 8242, 138661, 19943, 138662, 41503, 138666, 22486, 138667, 28759, 138669, 40517, 138671, 39069, 138673, 25211, 138674, 13973, 138676, 10010, 138696, 34310, 138699, 13812, 138701, 20472, 138702, 44406, 138703, 25962, 138704, 14303, 138707, 16392, 138709, 37942, 138710, 10296, 138711, 18646, 138712, 8889, 138715, 17308, 138716, 37168, 138717, 28143, 138718, 30682, 138720, 36949, 138721, 44746, 138722, 37717, 138724, 38460, 138725, 15862, 138728, 22764, 138730, 42694, 138744, 39855, 138746, 16837, 138747, 41509, 138748, 35452, 138749, 35090, 138751, 47867, 138754, 36998, 138755, 39520, 138760, 45572, 138761, 24385, 138764, 47557, 138766, 20899, 138769, 36439, 138772, 40111, 138773, 31725, 138775, 41513, 138776, 21655, 138779, 43408, 138780, 46728, 138782, 22463, 138783, 47984, 138785, 22608, 138787, 28772, 138788, 31209, 138789, 37607, 138790, 45502, 138792, 21656, 138794, 48131, 138820, 41514, 138823, 25133, 138825, 30529, 138830, 18927, 138835, 30756, 138837, 42034, 138838, 35456, 138840, 30688, 138841, 16766, 138850, 31597, 138851, 14065, 138853, 48557, 138856, 45574, 138857, 30757, 138858, 19568, 138860, 37364, 138861, 13223, 138863, 18998, 138864, 26828, 138866, 40831, 138869, 18003, 138870, 41760, 138871, 39750, 138872, 11735, 138873, 18177, 138876, 7462, 138878, 9019, 138887, 13981, 138896, 47508, 138897, 13224, 138898, 43953, 138899, 30692, 138900, 34206, 138901, 41261, 138902, 43954, 138903, 22446, 138904, 31352, 138907, 31168, 138908, 29564, 138911, 32220, 138913, 43677, 138919, 33373, 138923, 36171, 138925, 17971, 138926, 29841, 138927, 42210, 138932, 37056, 138933, 9869, 138935, 39300, 138936, 30557, 138938, 31745, 138941, 21219, 138952, 46352, 138956, 47413, 138958, 38794, 138960, 38265, 138961, 47195, 138965, 35463, 138968, 22623, 138969, 23387, 138970, 22544, 138973, 10243, 138974, 8515, 138975, 27900, 138976, 47593, 138977, 17343, 138978, 44446, 138979, 42754, 138980, 26510, 138983, 30780, 138984, 16978, 138985, 26700, 138986, 24911, 138987, 25142, 138988, 48324, 138989, 23998, 138990, 18355, 138991, 11417, 138992, 30781, 138993, 23929, 139009, 10674, 139011, 30197, 139012, 13247, 139018, 23999, 139022, 42861, 139027, 13072, 139030, 13864, 139031, 15806, 139032, 18126, 139034, 39905, 139035, 15542, 139036, 29597, 139052, 33951, 139057, 37883, 139067, 13824, 139068, 10246, 139069, 43493, 139070, 23026, 139071, 22916, 139073, 48457, 139074, 16445, 139077, 45195, 139078, 47053, 139081, 19874, 139082, 10516, 139094, 40297, 139099, 48433, 139100, 7424, 139101, 17449, 139104, 30222, 139106, 12835, 139107, 42513, 139111, 28353, 139121, 20981, 139122, 7953, 139123, 23670, 139124, 9584, 139126, 8576, 139131, 45934, 139132, 30810, 139138, 28354, 139141, 26206, 139143, 23135, 139145, 27809, 139147, 24011, 139148, 29466, 139154, 24513, 139155, 9725, 139157, 12578, 139158, 24012, 139161, 14263, 139163, 8311, 139164, 22217, 139173, 41083, 139174, 28838, 139176, 17170, 139182, 39559, 139184, 20317, 139185, 27303, 139186, 28844, 139195, 9585, 139196, 35108, 139197, 45621, 139198, 43278, 139202, 10985, 139204, 9588, 139209, 24029, 139210, 29127, 139211, 24591, 139214, 24247, 139215, 26386, 139219, 36136, 139222, 28863, 139223, 28864, 139225, 19503, 139227, 24035, 139229, 28319, 139232, 25184, 139233, 25408, 139236, 39511, 139237, 44728, 139239, 45272, 139240, 32268, 139241, 25017, 139247, 44489, 139248, 18703, 139258, 28366, 139260, 41374, 139262, 21724, 139263, 19251, 139265, 43061, 139274, 38901, 139275, 33323, 139276, 20745, 139277, 43857, 139285, 34095, 139286, 21272, 139287, 37661, 139288, 42417, 139289, 21496, 139292, 16188, 139297, 18853, 139306, 14369, 139317, 17296, 139324, 15210, 139328, 15223, 139329, 47876, 139330, 19376, 139343, 7909, 139346, 30485, 139347, 34240, 139349, 13137, 139350, 29531, 139351, 39512, 139352, 33119, 139357, 10135, 139358, 44933, 139360, 16127, 139362, 38406, 139364, 14807, 139367, 10005, 139369, 28447, 139370, 22081, 139372, 46115, 139374, 31001, 139377, 7572, 139382, 37729, 139383, 47143, 139385, 18704, 139387, 9344, 139388, 47500, 139389, 8415, 139390, 10216, 139391, 46500, 139392, 15173, 139393, 22833, 139395, 48504, 139396, 41111, 139398, 15409, 139402, 42277, 139405, 9071, 139407, 8119, 139408, 40094, 139409, 34311, 139410, 42676, 139412, 17884, 139413, 11996, 139415, 42975, 139416, 47642, 139421, 10829, 139428, 30172, 139432, 43392, 139441, 44904, 139446, 21443, 139449, 26887, 139450, 31113, 139452, 43005, 139456, 38461, 139469, 8084, 139470, 19252, 139471, 11800, 139472, 22798, 139477, 35720, 139479, 17317, 139480, 31116, 139484, 46729, 139490, 33270, 139493, 30926, 139494, 17069, 139497, 16946, 139500, 20124, 139501, 47163, 139502, 27498, 139503, 16848, 139504, 34350, 139505, 27972, 139506, 14185, 139507, 7708, 139508, 23439, 139512, 47349, 139514, 19569, 139520, 45446, 139524, 45645, 139525, 43063, 139527, 16277, 139530, 16778, 139531, 43591, 139532, 33456, 139533, 17642, 139534, 7940, 139535, 27892, 139536, 27112, 139539, 38630, 139540, 12303, 139543, 21472, 139548, 17337, 139551, 36834, 139552, 22836, 139553, 24162, 139554, 47009, 139555, 19025, 139556, 45336, 139558, 13141, 139559, 11888, 139569, 47010, 139571, 22979, 139573, 39818, 139574, 18488, 139575, 24923, 139576, 12025, 139577, 31281, 139578, 20706, 139580, 40776, 139581, 14396, 139583, 37323, 139584, 35938, 139585, 47028, 139592, 28392, 139593, 26927, 139594, 12956, 139595, 9719, 139598, 20717, 139599, 24698, 139601, 33392, 139602, 12459, 139605, 35483, 139606, 24699, 139607, 17100, 139610, 8839, 139612, 11711, 139613, 13076, 139614, 26198, 139615, 28548, 139616, 41806, 139617, 23603, 139620, 15612, 139621, 11179, 139625, 8593, 139626, 48342, 139627, 19084, 139629, 23542, 139630, 39491, 139631, 14930, 139632, 17747, 139641, 42368, 139642, 45946, 139644, 28432, 139646, 26433, 139648, 44878, 139650, 28467, 139657, 32549, 139676, 15945, 139678, 20261, 139679, 30136, 139683, 8915, 139686, 20411, 139689, 9058, 139695, 27365, 139696, 18291, 139700, 13136, 139702, 43942, 139703, 42147, 139704, 8239, 139706, 10394, 139707, 19355, 139709, 42148, 139719, 16602, 139720, 41870, 139733, 10806, 139735, 33409, 139736, 41726, 139737, 42907, 139738, 42908, 139739, 10315, 139742, 17300, 139743, 18702, 139748, 34801, 139749, 35446, 139750, 32536, 139751, 35912, 139752, 46799, 139754, 14561, 139755, 15031, 139760, 35913, 139762, 27251, 139763, 29754, 139764, 9345, 139765, 28132, 139766, 36513, 139767, 7680, 139768, 42948, 139778, 41734, 139780, 36615, 139782, 42180, 139783, 33936, 139784, 22595, 139785, 36851, 139787, 41091, 139795, 44151, 139797, 7783, 139801, 39221, 139802, 26137, 139803, 23359, 139804, 45385, 139805, 31867, 139808, 11877, 139809, 48407, 139810, 25799, 139812, 39222, 139823, 33867, 139826, 30327, 139828, 21289, 139829, 31163, 139830, 43030, 139832, 28773, 139833, 13778, 139835, 20909, 139836, 35457, 139837, 45965, 139838, 11839, 139841, 8249, 139842, 16603, 139843, 33785, 139845, 21208, 139846, 12917, 139857, 12349, 139859, 28206, 139861, 29019, 139863, 19557, 139864, 41634, 139866, 29037, 139868, 13699, 139869, 38062, 139870, 29912, 139874, 18178, 139876, 20082, 139877, 42459, 139878, 22303, 139879, 23587, 139880, 23440, 139881, 43347, 139885, 37170, 139893, 28379, 139898, 48368, 139903, 26555, 139904, 34913, 139905, 46986, 139908, 18869, 139909, 47783, 139911, 19011, 139917, 11159, 139919, 10335, 139922, 40652, 139923, 23590, 139925, 11746, 139926, 33991, 139927, 27901, 139928, 42600, 139929, 42219, 139930, 39018, 139931, 48426, 139932, 9055, 139943, 44310, 139945, 26009, 139950, 37181, 139951, 37990, 139953, 14871, 139954, 33952, 139963, 24924, 139970, 34592, 139971, 12406, 139972, 21992, 139973, 44336, 139974, 40453, 139975, 42241, 139976, 35219, 139986, 19221, 139988, 30964, 139994, 26519, 139997, 22415, 140001, 25933, 140003, 43966, 140014, 39677, 140025, 38502, 140027, 43507, 140028, 38913, 140031, 45799, 140032, 40346, 140036, 32098, 140040, 24249, 140045, 30991, 140052, 25409, 140053, 26259, 140058, 9893, 140070, 46595, 140072, 41635, 140082, 43519, 140083, 23172, 140087, 31949, 140089, 15166, 140091, 44492, 140097, 30497, 140102, 30738, 140103, 19755, 140104, 44744, 140110, 15863, 140111, 22009, 140113, 30513, 140115, 15578, 140117, 32290, 140122, 38063, 140135, 47011, 140139, 20270, 140141, 35029, 140144, 43185, 140145, 30961, 140156, 24333, 140159, 45383, 140160, 42924, 140162, 9424, 140163, 42925, 140164, 15884, 140166, 13199, 140168, 46642, 140169, 42978, 140171, 45279, 140172, 12284, 140174, 35266, 140180, 20983, 140181, 10474, 140182, 32099, 140184, 17295, 140185, 39413, 140192, 32188, 140193, 20861, 140197, 22001, 140202, 12419, 140205, 21095, 140212, 8988, 140213, 18146, 140217, 22082, 140219, 44216, 140227, 24279, 140228, 31208, 140229, 34795, 140230, 22887, 140232, 46395, 140237, 15174, 140238, 33851, 140242, 11441, 140245, 36852, 140247, 42979, 140249, 42023, 140252, 37345, 140253, 47245, 140254, 19538, 140260, 41375, 140262, 33939, 140263, 40996, 140269, 25466, 140270, 44751, 140271, 18166, 140272, 46597, 140275, 29584, 140279, 22118, 140290, 46960, 140291, 29913, 140292, 44911, 140294, 20125, 140298, 29407, 140302, 47683, 140304, 39454, 140306, 8265, 140308, 11747, 140310, 27902, 140314, 17037, 140318, 10600, 140319, 31282, 140326, 8562, 140329, 31242, 140331, 47284, 140338, 14521, 140339, 8874, 140350, 9244, 140351, 32765, 140357, 13340, 140358, 32254, 140359, 21621, 140360, 42266, 140371, 39207, 140374, 45439, 140381, 12344, 140383, 38535, 140384, 37358, 140386, 18105, 140391, 38795, 140396, 23522, 140398, 14686, 140409, 18252, 140422, 39325, 140425, 33532, 140429, 14742, 140432, 12123, 140434, 15211, 140436, 11244, 140445, 13376, 140446, 23695, 140457, 39019, 140463, 8786, 140464, 44631, 140465, 35484, 140466, 39027, 140471, 30287, 140473, 33560, 140478, 20751, 140480, 42910, 140483, 37568, 140484, 19688, 140486, 37575, 140487, 37212, 140491, 7503, 140493, 36492, 140494, 10706, 140498, 32404, 140500, 33047, 140501, 43385, 140502, 29688, 140503, 11670, 140504, 36846, 140505, 43466, 140508, 15929, 140509, 36617, 140510, 46508, 140511, 47335, 140513, 42677, 140514, 22983, 140515, 35054, 140519, 12907, 140524, 40100, 140526, 39857, 140527, 16738, 140528, 37407, 140529, 14957, 140530, 38462, 140533, 40698, 140543, 44011, 140545, 25287, 140546, 41871, 140549, 13395, 140550, 30758, 140551, 36208, 140552, 17233, 140554, 10720, 140555, 35060, 140561, 32276, 140564, 17318, 140575, 32799, 140576, 30766, 140577, 22381, 140578, 44271, 140579, 9752, 140580, 10640, 140581, 44544, 140583, 9052, 140585, 11736, 140586, 47408, 140588, 44557, 140593, 22138, 140594, 25587, 140595, 33213, 140596, 44567, 140613, 34716, 140619, 44915, 140622, 46014, 140625, 34717, 140627, 11205, 140628, 46019, 140629, 33142, 140630, 39363, 140632, 11962, 140633, 27209, 140634, 12820, 140638, 47012, 140639, 7607, 140646, 40655, 140648, 29934, 140650, 20783, 140651, 23051, 140652, 33064, 140653, 39648, 140654, 45774, 140655, 13073, 140663, 42763, 140666, 19054, 140667, 33596, 140676, 10978, 140677, 42778, 140678, 40299, 140679, 47054, 140680, 36689, 140682, 30098, 140683, 39486, 140686, 39379, 140687, 35344, 140689, 11934, 140695, 35105, 140699, 17765, 140701, 39683, 140703, 44071, 140705, 44694, 140708, 35851, 140710, 22242, 140711, 28320, 140713, 12977, 140715, 42896, 140716, 8395, 140723, 40721, 140724, 42912, 140725, 32877, 140727, 16128, 140730, 42913, 140735, 46869, 140736, 40370, 140738, 19732, 140740, 39291, 140744, 46087, 140745, 28418, 140746, 40204, 140750, 42927, 140779, 15343, 140781, 33790, 140783, 44799, 140784, 14548, 140786, 15088, 140787, 38586, 140788, 38692, 140789, 17953, 140793, 19737, 140794, 10193, 140799, 27844, 140800, 29538, 140803, 28002, 140804, 31847, 140805, 26878, 140807, 12175, 140809, 39210, 140810, 33852, 140811, 36249, 140812, 17876, 140813, 8419, 140829, 28527, 140831, 31309, 140839, 32906, 140856, 20541, 140857, 9741, 140858, 27337, 140861, 42980, 140863, 35561, 140865, 38599, 140866, 40994, 140869, 38946, 140871, 42834, 140880, 28332, 140883, 38050, 140910, 22488, 140913, 25736, 140914, 26138, 140915, 47733, 140922, 46905, 140924, 40560, 140926, 16081, 140927, 21196, 140928, 39608, 140929, 19772, 140930, 12124, 140932, 23806, 140933, 14896, 140934, 21867, 140939, 27571, 140940, 39223, 140945, 35247, 140968, 46906, 140970, 18328, 140971, 22854, 140973, 35600, 140974, 28580, 140986, 36264, 140987, 47558, 140993, 12188, 140995, 31879, 140996, 41515, 140998, 39434, 141001, 28449, 141005, 46824, 141006, 8891, 141010, 10990, 141011, 23585, 141012, 13396, 141013, 32384, 141014, 39804, 141016, 39969, 141017, 37609, 141018, 32880, 141019, 37774, 141020, 28585, 141022, 7752, 141023, 41516, 141029, 34906, 141030, 43471, 141032, 44523, 141038, 24118, 141039, 19253, 141079, 7932, 141091, 38746, 141093, 21515, 141096, 40248, 141097, 30931, 141098, 29146, 141099, 40543, 141100, 13949, 141101, 19705, 141102, 38538, 141103, 28004, 141104, 41878, 141105, 30767, 141106, 28106, 141107, 10849, 141108, 18005, 141110, 33246, 141112, 28340, 141115, 10631, 141116, 10632, 141117, 23230, 141119, 20083, 141120, 37048, 141121, 17826, 141122, 13603, 141125, 39237, 141126, 47222, 141127, 19259, 141128, 10972, 141129, 12194, 141132, 26903, 141133, 42338, 141139, 21966, 141164, 34353, 141167, 43413, 141171, 16413, 141172, 38621, 141176, 17099, 141177, 36446, 141179, 17827, 141191, 32523, 141193, 42722, 141195, 37281, 141199, 31746, 141200, 17162, 141202, 30774, 141205, 19265, 141206, 36451, 141207, 29718, 141210, 16093, 141212, 40260, 141214, 27395, 141215, 15867, 141216, 35676, 141217, 39772, 141219, 34524, 141222, 15263, 141228, 47645, 141229, 25588, 141253, 44034, 141258, 10635, 141259, 13783, 141282, 24163, 141283, 42123, 141284, 24164, 141287, 25917, 141288, 28035, 141289, 35470, 141290, 7330, 141293, 22863, 141295, 46229, 141296, 7331, 141297, 36277, 141299, 26189, 141300, 37176, 141301, 8327, 141310, 19026, 141311, 18587, 141339, 23388, 141341, 40400, 141345, 33247, 141355, 34661, 141356, 32338, 141357, 7672, 141358, 37222, 141362, 15475, 141363, 8869, 141365, 36130, 141367, 39819, 141369, 34932, 141370, 9196, 141372, 26584, 141373, 12566, 141375, 16902, 141376, 17761, 141377, 38837, 141378, 12567, 141379, 43154, 141381, 8329, 141383, 16363, 141384, 12026, 141385, 33287, 141389, 15972, 141390, 44612, 141391, 28120, 141393, 24457, 141394, 47030, 141424, 46157, 141428, 19422, 141429, 32924, 141433, 11005, 141442, 20960, 141452, 10207, 141453, 46237, 141458, 35314, 141459, 43833, 141462, 30801, 141463, 47915, 141466, 22434, 141468, 42499, 141470, 30802, 141497, 40625, 141513, 42609, 141514, 11114, 141518, 37153, 141519, 7348, 141520, 30038, 141523, 25078, 141524, 27461, 141525, 7349, 141527, 27830, 141528, 38106, 141529, 43795, 141530, 28549, 141534, 9222, 141536, 25595, 141555, 32982, 141563, 26122, 141564, 9809, 141567, 11287, 141569, 33254, 141570, 24210, 141572, 35083, 141574, 24514, 141579, 39151, 141581, 41597, 141582, 12086, 141584, 25521, 141592, 27152, 141594, 45990, 141604, 47750, 141607, 27565, 141609, 24536, 141611, 21826, 141615, 40331, 141616, 40332, 141617, 25721, 141618, 25657, 141634, 36293, 141635, 47612, 141643, 9974, 141644, 39560, 141647, 43721, 141648, 29555, 141656, 40178, 141658, 20799, 141662, 10957, 141683, 17575, 141693, 37285, 141701, 17964, 141704, 26674, 141706, 21142, 141708, 32028, 141709, 13507, 141710, 31841, 141711, 45273, 141713, 34000, 141714, 45274, 141717, 42824, 141722, 18459, 141727, 22440, 141744, 44969, 141745, 28575, 141746, 34899, 141748, 38330, 141752, 9492, 141754, 20111, 141756, 27584, 141757, 33718, 141759, 32744, 141760, 15642, 141765, 31211, 141767, 34560, 141768, 47883, 141775, 34119, 141777, 36447, 141782, 45692, 141783, 45857, 141789, 14914, 141790, 27591, 141792, 45579, 141796, 47013, 141797, 30947, 141798, 17344, 141799, 15964, 141806, 9500, 141808, 17039, 141809, 20607, 141811, 43825, 141812, 7547, 141819, 45700, 141821, 39119, 141825, 40777, 141826, 38552, 141839, 22193, 141840, 19436, 141842, 10887, 141844, 37648, 141846, 27603, 141847, 45587, 141852, 21006, 141853, 34229, 141855, 38914, 141857, 14274, 141861, 18298, 141862, 18302, 141864, 24340, 141867, 11224, 141870, 42569, 141871, 26863, 141872, 40726, 141873, 47147, 141875, 42952, 141882, 24900, 141887, 20109, 141888, 20232, 141889, 21713, 141892, 47549, 141896, 38530, 141903, 22696, 141904, 22663, 141905, 24421, 141906, 8374, 141907, 15947, 141909, 40748, 141910, 33377, 141911, 25317, 141912, 22624, 141918, 9197, 141919, 8652, 141920, 34732, 141921, 30619, 141922, 33628, 141926, 19335, 141928, 31348, 141934, 42914, 141935, 22077, 141936, 46047, 141938, 40428, 141943, 37296, 141944, 17147, 141945, 39292, 141947, 37331, 141948, 42643, 141955, 11875, 141959, 20467, 141960, 28237, 141963, 29663, 141965, 20874, 141966, 41164, 141967, 18149, 141989, 44080, 141990, 29059, 141991, 42435, 141994, 43520, 141996, 22816, 142006, 39844, 142007, 39700, 142012, 28330, 142014, 46067, 142032, 20880, 142035, 29061, 142036, 33568, 142050, 20004, 142055, 47311, 142056, 32739, 142059, 25963, 142060, 33051, 142061, 29069, 142063, 9132, 142064, 46193, 142066, 31562, 142068, 11595, 142069, 48311, 142071, 38331, 142072, 38528, 142075, 28747, 142079, 39336, 142080, 17885, 142123, 36821, 142124, 21150, 142129, 20900, 142130, 17712, 142131, 36999, 142132, 46205, 142133, 30035, 142134, 21197, 142135, 28290, 142140, 13898, 142142, 38726, 142143, 40226, 142145, 39077, 142146, 23807, 142147, 13739, 142148, 19773, 142149, 9744, 142150, 11012, 142152, 15753, 142158, 39745, 142159, 12608, 142181, 8720, 142182, 39858, 142183, 40385, 142209, 44424, 142210, 39435, 142211, 24119, 142212, 31076, 142215, 27011, 142217, 31258, 142218, 41518, 142220, 30838, 142221, 31786, 142223, 7933, 142224, 46522, 142234, 45575, 142235, 34735, 142238, 33245, 142277, 25975, 142281, 40112, 142283, 15364, 142284, 45824, 142313, 45578, 142315, 13750, 142317, 12737, 142318, 44545, 142320, 26183, 142322, 37671, 142323, 41191, 142324, 20682, 142325, 44948, 142326, 46962, 142327, 37961, 142329, 15948, 142330, 21807, 142332, 41764, 142333, 12130, 142334, 26904, 142342, 15247, 142343, 7257, 142346, 41007, 142348, 15760, 142349, 7391, 142354, 19572, 142360, 29780, 142361, 46834, 142364, 29118, 142399, 29372, 142401, 42723, 142404, 20920, 142406, 47996, 142408, 20084, 142409, 37526, 142412, 20085, 142431, 10029, 142433, 35615, 142434, 35616, 142435, 19585, 142436, 35098, 142438, 36316, 142439, 29720, 142440, 30195, 142446, 27397, 142452, 42466, 142454, 31603, 142455, 21221, 142458, 22060, 142461, 44763, 142462, 32898, 142484, 7878, 142512, 8933, 142516, 38079, 142517, 45478, 142518, 31439, 142519, 35151, 142520, 25918, 142524, 13248, 142525, 11309, 142526, 8518, 142527, 47467, 142528, 26505, 142529, 14769, 142530, 30019, 142531, 43542, 142532, 41138, 142534, 7608, 142535, 47899, 142536, 48325, 142539, 8381, 142545, 23785, 142547, 36455, 142553, 36677, 142554, 20148, 142559, 36929, 142589, 13937, 142590, 13468, 142594, 8682, 142624, 47032, 142626, 14872, 142630, 22540, 142631, 47033, 142632, 45793, 142633, 8539, 142634, 23052, 142636, 7882, 142637, 22065, 142638, 31998, 142640, 30449, 142641, 23934, 142642, 40142, 142643, 36039, 142652, 35154, 142654, 8176, 142663, 42131, 142664, 20281, 142693, 45479, 142720, 47636, 142723, 14509, 142725, 33782, 142727, 31764, 142729, 30254, 142731, 36706, 142732, 33393, 142733, 45255, 142737, 28721, 142738, 16591, 142739, 11987, 142753, 31381, 142755, 13260, 142771, 30036, 142772, 11652, 142774, 7951, 142797, 43560, 142801, 39550, 142804, 42871, 142805, 27561, 142806, 13742, 142807, 47372, 142809, 22812, 142818, 46032, 142838, 25522, 142840, 46858, 142841, 10052, 142842, 13627, 142843, 44867, 142846, 35662, 142847, 20995, 142848, 24515, 142849, 16213, 142860, 7913, 142871, 17052, 142872, 24944, 142873, 33962, 142883, 28731, 142885, 11948, 142886, 38029, 142888, 37326, 142891, 35224, 142893, 25658, 142899, 39933, 142900, 41820, 142915, 31683, 142925, 38915, 142927, 44370, 142929, 46618, 142930, 40348, 142931, 9858, 142932, 14932, 142934, 17057, 142936, 21367, 142937, 23704, 142938, 39397, 142941, 25376, 142958, 24025, 142962, 22360, 142963, 40054, 142972, 45262, 142980, 16625, 142981, 31467, 142982, 26487, 142983, 42373, 142984, 26242, 142985, 35802, 142993, 26488, 143006, 7711, 143007, 10103, 143009, 47957, 143019, 36681, 143023, 37561, 143024, 25411, 143028, 44729, 143029, 30717, 143031, 30498, 143036, 19746, 143037, 9125, 143039, 34107, 143040, 15355, 143042, 16758, 143045, 13019, 143047, 17442, 143049, 15579, 143051, 30533, 143059, 10573, 143060, 19000, 143063, 39242, 143064, 34211, 143065, 46988, 143066, 30573, 143068, 17165, 143071, 20710, 143072, 24473, 143074, 24979, 143076, 31287, 143080, 33075, 143082, 30475, 143083, 34100, 143086, 20875, 143093, 8120, 143094, 8638, 143095, 7645, 143096, 22276, 143097, 29691, 143100, 12390, 143103, 36054, 143104, 23227, 143105, 22889, 143107, 22845, 143113, 34108, 143114, 34109, 143115, 19362, 143116, 8038, 143120, 22660, 143121, 23068, 143126, 27688, 143129, 24901, 143130, 14155, 143131, 15937, 143135, 37736, 143136, 13943, 143139, 30860, 143140, 18420, 143142, 17954, 143145, 29580, 143147, 20759, 143152, 31964, 143153, 48128, 143154, 47341, 143155, 23071, 143157, 33360, 143159, 19774, 143160, 37786, 143161, 30305, 143162, 41187, 143164, 33688, 143170, 23728, 143171, 46825, 143172, 36804, 143175, 12235, 143189, 42035, 143190, 21209, 143191, 46826, 143194, 47884, 143196, 45245, 143197, 9925, 143202, 26905, 143206, 22801, 143207, 47265, 143208, 18106, 143209, 29590, 143213, 21589, 143224, 11566, 143225, 27698, 143230, 40023, 143232, 13671, 143233, 37874, 143235, 9498, 143236, 44293, 143237, 13703, 143238, 22386, 143239, 29872, 143242, 10587, 143246, 11538, 143248, 33727, 143249, 41777, 143250, 23017, 143252, 44938, 143270, 30574, 143271, 46545, 143273, 22711, 143274, 30575, 143275, 46846, 143276, 26012, 143281, 29724, 143282, 29152, 143283, 29470, 143290, 14724, 143295, 38195, 143298, 27120, 143304, 33554, 143308, 40623, 143310, 14045, 143311, 8850, 143322, 43960, 143324, 26709, 143326, 24980, 143329, 40150, 143330, 26277, 143331, 31288, 143332, 12745, 143334, 10605, 143335, 10606, 143341, 11580, 143352, 9685, 143360, 23942, 143361, 45935, 143362, 24311, 143363, 24709, 143364, 32399, 143373, 10438, 143375, 10610, 143376, 16372, 143378, 48254, 143379, 11084, 143380, 11378, 143388, 24067, 143389, 34875, 143390, 26208, 143395, 15335, 143397, 24553, 143399, 33174, 143403, 33132, 143407, 33086, 143411, 28853, 143414, 48384, 143415, 24324, 143419, 34613, 143422, 15338, 143433, 8428, 143437, 12634, 143442, 34114, 143446, 15713, 143447, 36018, 143452, 26710, 143455, 24174, 143458, 8563, 143462, 29341, 143464, 43973, 143469, 21502, 143471, 16987, 143472, 24899, 143475, 38356, 143476, 30861, 143477, 13516, 143479, 25047, 143481, 20672, 143483, 25048, 143489, 36625, 143492, 16998, 143494, 29389, 143495, 31275, 143497, 12827, 143498, 45187, 143506, 23905, 143510, 34893, 143511, 40376, 143516, 40386, 143517, 39800, 143518, 26415, 143524, 8252, 143525, 36622, 143532, 40024, 143534, 13490, 143539, 12557, 143540, 36767, 143541, 47684, 143547, 29185, 143549, 38380, 143556, 40408, 143557, 32928, 143560, 47926, 143561, 12574, 143565, 12040, 143569, 47939, 143575, 11793, 143576, 10006, 143581, 42082, 143591, 41745, 143603, 41750, 143605, 46459, 143613, 29133, 143614, 41880, 143621, 14655, 143625, 41778, 143626, 44295, 143629, 36354, 143630, 15462, 143631, 8215, 143633, 41787, 143635, 18878, 143641, 18821, 143644, 16910, 143645, 41928, 143647, 18243, 143648, 8803, 143655, 35526, 143662, 48121, 143663, 19739, 143664, 14120, 143665, 19775, 143666, 23228, 143668, 24880, 143672, 19266, 143674, 37891, 143675, 47827, 143679, 36792, 143683, 45290, 143684, 44138, 143689, 32582, 143693, 27519, 143706, 28133, 143709, 36994, 143711, 12339, 143713, 22091, 143716, 40727, 143717, 12769, 143728, 39795, 143735, 40612, 143738, 44087, 143739, 16542, 143742, 38712, 143752, 17710, 143757, 13326, 143760, 25847, 143762, 40813, 143764, 47342, 143765, 39610, 143766, 18712, 143767, 9745, 143768, 34255, 143769, 15709, 143770, 29132, 143771, 7451, 143775, 40062, 143783, 17510, 143794, 31481, 143795, 16088, 143796, 33493, 143797, 15224, 143805, 45576, 143815, 12436, 143830, 13022, 143831, 33877, 143833, 48366, 143842, 8859, 143846, 11449, 143847, 46300, 143848, 12299, 143851, 38336, 143852, 31734, 143856, 25136, 143858, 19130, 143859, 19389, 143877, 9605, 143882, 28064, 143885, 13230, 143886, 38065, 143904, 8726, 143905, 36418, 143909, 37057, 143926, 16112, 143940, 10731, 143941, 11844, 143942, 36420, 143954, 19272, 143955, 30441, 143956, 33216, 143957, 33205, 143958, 41098, 143959, 7509, 143960, 28229, 143962, 42054, 143963, 34532, 143964, 33383, 143969, 36812, 143977, 41536, 143978, 18816, 143982, 8937, 143998, 29231, 143999, 9614, 144001, 7548, 144003, 26928, 144020, 27125, 144022, 36505, 144029, 33206, 144030, 40959, 144031, 22495, 144039, 23774, 144054, 8872, 144055, 11815, 144058, 39470, 144068, 37240, 144073, 44649, 144074, 12470, 144075, 43796, 144077, 46108, 144079, 30395, 144088, 19071, 144094, 7356, 144095, 27832, 144098, 21319, 144099, 23612, 144114, 25095, 144115, 29999, 144117, 9246, 144118, 31782, 144121, 8606, 144127, 43851, 144133, 24554, 144141, 28854, 144143, 12698, 144147, 18553, 144151, 45044, 144154, 11494, 144156, 24629, 144158, 46042, 144159, 25412, 144160, 11530, 144167, 9651, 144168, 41303, 144172, 21802, 144173, 19117, 144190, 36829, 144198, 28901, 144199, 21908, 144207, 9841, 144214, 45431, 144219, 44724, 144223, 22735, 144230, 23116, 144231, 14712, 144239, 45172, 144240, 31074, 144244, 32211, 144248, 30242, 144250, 29529, 144260, 16113, 144261, 43101, 144262, 26464, 144273, 23041, 144275, 41099, 144276, 28693, 144282, 18220, 144283, 21759, 144297, 42522, 144302, 38917, 144305, 45040, 144306, 36139, 144307, 30075, 144308, 13882, 144309, 8112, 144312, 24967, 144320, 43879, 144334, 41412, 144337, 20653, 144340, 23358, 144342, 46444, 144343, 34620, 144346, 34189, 144350, 43997, 144351, 29291, 144352, 39961, 144353, 19529, 144374, 30407, 144375, 17586, 144378, 22817, 144386, 42442, 144387, 10826, 144394, 22568, 144395, 44970, 144398, 37489, 144399, 28650, 144401, 11622, 144403, 42681, 144420, 21625, 144427, 41989, 144428, 24108, 144430, 12247, 144431, 10967, 144437, 42700, 144442, 17311, 144447, 42580, 144449, 10998, 144450, 18329, 144451, 47632, 144486, 31721, 144487, 14019, 144504, 36858, 144505, 39340, 144511, 15226, 144514, 13053, 144515, 38952, 144516, 40063, 144517, 46460, 144518, 31365, 144519, 37004, 144567, 17321, 144568, 23121, 144569, 35569, 144571, 34457, 144572, 36641, 144576, 46344, 144579, 28451, 144581, 31081, 144582, 43414, 144584, 24862, 144585, 33422, 144586, 48136, 144587, 29781, 144588, 15798, 144591, 21214, 144592, 44027, 144594, 33583, 144596, 27387, 144597, 29229, 144599, 18107, 144603, 44166, 144605, 27204, 144656, 46835, 144659, 8376, 144663, 33883, 144664, 30769, 144665, 39350, 144666, 29323, 144667, 22542, 144683, 34731, 144684, 29782, 144686, 45283, 144687, 47509, 144689, 35144, 144690, 21473, 144693, 9932, 144694, 14499, 144695, 39976, 144696, 43481, 144697, 18011, 144698, 26914, 144699, 37058, 144701, 19812, 144705, 42743, 144707, 44569, 144708, 21445, 144709, 29481, 144711, 39886, 144713, 16281, 144716, 16250, 144717, 35549, 144718, 39537, 144719, 47667, 144766, 11054, 144772, 31267, 144773, 36355, 144774, 45114, 144777, 33500, 144778, 25061, 144780, 46841, 144784, 29271, 144803, 21739, 144804, 23518, 144808, 48108, 144810, 32055, 144811, 16432, 144812, 22162, 144813, 46750, 144814, 7510, 144815, 31605, 144816, 29794, 144817, 48414, 144819, 31036, 144821, 12098, 144823, 19597, 144824, 36363, 144825, 32831, 144827, 17140, 144828, 41331, 144830, 8166, 144831, 46751, 144833, 13910, 144843, 12527, 144848, 32634, 144882, 15653, 144885, 15786, 144886, 35740, 144888, 37436, 144889, 42126, 144890, 22907, 144891, 47014, 144918, 20152, 144919, 28604, 144920, 33902, 144921, 7947, 144922, 34719, 144923, 13496, 144925, 30957, 144926, 17255, 144927, 30841, 144928, 15683, 144931, 11518, 144932, 9802, 144933, 8543, 144934, 42605, 144935, 15130, 144936, 14125, 144938, 23820, 144939, 17473, 144940, 24175, 144945, 36258, 144946, 33903, 144948, 43435, 144951, 20153, 144955, 9803, 144983, 28811, 144984, 11848, 144987, 42764, 144991, 36084, 144994, 22041, 145008, 10878, 145009, 16282, 145012, 20961, 145013, 46238, 145014, 18206, 145015, 26771, 145019, 48274, 145020, 35038, 145023, 14780, 145024, 48035, 145025, 48036, 145027, 20974, 145028, 34942, 145030, 11484, 145031, 29484, 145035, 42409, 145036, 12792, 145038, 23939, 145039, 40786, 145040, 32840, 145042, 29261, 145043, 22044, 145044, 39131, 145045, 42500, 145046, 7404, 145048, 43189, 145049, 20170, 145052, 35076, 145053, 38343, 145055, 33297, 145056, 46854, 145057, 8334, 145058, 47696, 145062, 20558, 145063, 17540, 145065, 10888, 145066, 13915, 145107, 9208, 145108, 19628, 145109, 11305, 145111, 26475, 145114, 32956, 145131, 18222, 145137, 12471, 145140, 17285, 145141, 32356, 145142, 33395, 145143, 45936, 145144, 45545, 145145, 11353, 145146, 30461, 145147, 13267, 145149, 45778, 145150, 36986, 145153, 11608, 145154, 33076, 145156, 26372, 145159, 19639, 145186, 26426, 145187, 31550, 145191, 31771, 145192, 22047, 145196, 7351, 145197, 20291, 145209, 36472, 145210, 38209, 145213, 31295, 145217, 29282, 145218, 19161, 145221, 7357, 145223, 34872, 145224, 24719, 145225, 13838, 145227, 35777, 145228, 21176, 145229, 8594, 145230, 41813, 145231, 15873, 145232, 29985, 145233, 44666, 145234, 33827, 145237, 20186, 145239, 18244, 145242, 25090, 145244, 8752, 145245, 35345, 145246, 20634, 145272, 47805, 145277, 17204, 145287, 13918, 145296, 40200, 145297, 27163, 145298, 15148, 145299, 26087, 145300, 36028, 145303, 25533, 145304, 39389, 145305, 33199, 145308, 11854, 145309, 47731, 145311, 10389, 145328, 24811, 145332, 24225, 145344, 29676, 145345, 37423, 145348, 37441, 145350, 24956, 145351, 40052, 145352, 11468, 145353, 18529, 145354, 28732, 145355, 30983, 145356, 24556, 145359, 29438, 145360, 36665, 145361, 25534, 145362, 38504, 145380, 43772, 145382, 45717, 145392, 44376, 145394, 39566, 145395, 41085, 145396, 34733, 145397, 38924, 145400, 27002, 145401, 33342, 145402, 24816, 145404, 21534, 145405, 23891, 145422, 39945, 145423, 48283, 145434, 25548, 145436, 46171, 145438, 46273, 145440, 24030, 145453, 13743, 145463, 20332, 145464, 34734, 145465, 48525, 145466, 31470, 145468, 23872, 145481, 44710, 145482, 43296, 145483, 28564, 145486, 9710, 145493, 41968, 145495, 32939, 145502, 41712, 145503, 13290, 145504, 27476, 145511, 23977, 145513, 37563, 145520, 28122, 145526, 41716, 145530, 24040, 145533, 33404, 145534, 18144, 145537, 38694, 145538, 38695, 145540, 44081, 145541, 17180, 145543, 17110, 145545, 37448, 145546, 40865, 145547, 29692, 145548, 35881, 145549, 38699, 145550, 38700, 145551, 8922, 145552, 31473, 145553, 38701, 145554, 44226, 145555, 39060, 145557, 11689, 145558, 31109, 145559, 39183, 145562, 37479, 145563, 14156, 145564, 44088, 145565, 40556, 145566, 28478, 145567, 17221, 145568, 8430, 145569, 34013, 145572, 45843, 145573, 13047, 145574, 44408, 145576, 29212, 145578, 16839, 145579, 37737, 145580, 30918, 145581, 42701, 145584, 48313, 145586, 30919, 145587, 13350, 145588, 22767, 145590, 11239, 145591, 42581, 145594, 17186, 145595, 23047, 145608, 13057, 145609, 39091, 145610, 47998, 145611, 25305, 145612, 48137, 145614, 44549, 145615, 19132, 145617, 34977, 145618, 22466, 145626, 7464, 145628, 44102, 145629, 19587, 145630, 19179, 145631, 30840, 145632, 18012, 145633, 18013, 145635, 13059, 145641, 40070, 145645, 33808, 145646, 33426, 145650, 40134, 145651, 42224, 145652, 12237, 145654, 40270, 145655, 10675, 145656, 44112, 145657, 17569, 145658, 33429, 145663, 35833, 145665, 47468, 145667, 7292, 145671, 32341, 145672, 45526, 145674, 23418, 145675, 25826, 145676, 11317, 145678, 44116, 145686, 36459, 145688, 34149, 145697, 40039, 145698, 39140, 145704, 19294, 145705, 10901, 145706, 43231, 145711, 34573, 145712, 45026, 145713, 9975, 145714, 14270, 145715, 38918, 145716, 38925, 145717, 43775, 145718, 48353, 145719, 45235, 145722, 45238, 145730, 35706, 145731, 37662, 145735, 40432, 145738, 37770, 145739, 15345, 145744, 25908, 145758, 20229, 145761, 41619, 145763, 8431, 145764, 22739, 145765, 16654, 145768, 47978, 145774, 23229, 145775, 47313, 145776, 46910, 145779, 37044, 145783, 35722, 145785, 11251, 145786, 10499, 145787, 10633, 145788, 47577, 145790, 12236, 145799, 8494, 145801, 20064, 145804, 43102, 145807, 44996, 145808, 15766, 145814, 15656, 145820, 31290, 145824, 11177, 145825, 11180, 145826, 8578, 145830, 16921, 145833, 16456, 145834, 9035, 145835, 43565, 145836, 47807, 145837, 16462, 145839, 24593, 145845, 14132, 145846, 12252, 145852, 9488, 145858, 36428, 145859, 13681, 145860, 42930, 145864, 13192, 145866, 28957, 145868, 41222, 145869, 28420, 145870, 16876, 145871, 22566, 145874, 11357, 145878, 45681, 145879, 43998, 145881, 7780, 145882, 34190, 145883, 13044, 145884, 29240, 145885, 31856, 145889, 41224, 145891, 27857, 145892, 22597, 145893, 44089, 145894, 20664, 145895, 9133, 145900, 40688, 145906, 27340, 145907, 26450, 145909, 41227, 145911, 14021, 145913, 14386, 145914, 33489, 145916, 23245, 145917, 28406, 145918, 27491, 145919, 24389, 145920, 26274, 145922, 13210, 145924, 30862, 145925, 24047, 145927, 26897, 145929, 17784, 145930, 10328, 145931, 46930, 145933, 16406, 145934, 12075, 145939, 38614, 145940, 36245, 145943, 38768, 145944, 42160, 145945, 37962, 145947, 48320, 145948, 26553, 145949, 44431, 145950, 29667, 145951, 43069, 145952, 31600, 145953, 44989, 145954, 22268, 145955, 20548, 145956, 40908, 145957, 8253, 145962, 26417, 145963, 47759, 145970, 13704, 145971, 39813, 145974, 19017, 145978, 16423, 145979, 22574, 145982, 40477, 145983, 19150, 145984, 8644, 145988, 22712, 145989, 22575, 145992, 12099, 145999, 26028, 146001, 48453, 146002, 45424, 146003, 20711, 146004, 16674, 146009, 41583, 146010, 14338, 146012, 31656, 146015, 12746, 146016, 35039, 146017, 35486, 146018, 25001, 146023, 33602, 146025, 8580, 146026, 38107, 146027, 42517, 146029, 45835, 146031, 42412, 146032, 13182, 146033, 7358, 146036, 20564, 146039, 35225, 146041, 18530, 146042, 44692, 146045, 32489, 146048, 13009, 146049, 48385, 146050, 7810, 146052, 31505, 146055, 19950, 146057, 29765, 146060, 36951, 146064, 11042, 146069, 16843, 146080, 19400, 146088, 41238, 146090, 13061, 146093, 8735, 146094, 45297, 146095, 36885, 146102, 33555, 146104, 16491, 146105, 32347, 146112, 16446, 146120, 18223, 146121, 22998, 146124, 16319, 146126, 35331, 146128, 11085, 146130, 22787, 146132, 13589, 146137, 43249, 146140, 12665, 146141, 31202, 146147, 25688, 146149, 24256, 146151, 24621, 146152, 31638, 146154, 37840, 146156, 27961, 146161, 30729, 146163, 20512, 146164, 40102, 146169, 12304, 146171, 25769, 146178, 16653, 146182, 29506, 146185, 29766, 146187, 22015, 146189, 8092, 146190, 22163, 146191, 22039, 146192, 34378, 146197, 40198, 146200, 32951, 146201, 21432, 146202, 30269, 146203, 33118, 146208, 19346, 146217, 14814, 146218, 8122, 146219, 21049, 146220, 33027, 146222, 29693, 146228, 12904, 146229, 26814, 146230, 7747, 146231, 7748, 146232, 36637, 146233, 25268, 146234, 34015, 146235, 46401, 146236, 29697, 146237, 38601, 146239, 45571, 146240, 8040, 146247, 26135, 146262, 17440, 146263, 13512, 146264, 15193, 146265, 28479, 146269, 15940, 146272, 32816, 146273, 39524, 146276, 8441, 146286, 26819, 146290, 32745, 146291, 31883, 146295, 9150, 146297, 17443, 146298, 28374, 146299, 41636, 146307, 29453, 146308, 35398, 146310, 37430, 146312, 31977, 146313, 24132, 146314, 12687, 146316, 20921, 146317, 20922, 146318, 16950, 146319, 20126, 146320, 8473, 146336, 33169, 146337, 7904, 146338, 11509, 146342, 28223, 146343, 7919, 146346, 32680, 146347, 19977, 146348, 35145, 146352, 12688, 146366, 39353, 146367, 45858, 146368, 26916, 146371, 48008, 146373, 19829, 146374, 30577, 146379, 32889, 146380, 35578, 146381, 32751, 146382, 38637, 146383, 32687, 146384, 32688, 146394, 35742, 146396, 35152, 146404, 24176, 146407, 11980, 146408, 48184, 146409, 27075, 146410, 39025, 146412, 26793, 146413, 28812, 146415, 35407, 146417, 29523, 146420, 8544, 146421, 12958, 146424, 32068, 146425, 31330, 146427, 14838, 146428, 35317, 146435, 40787, 146439, 32758, 146440, 19440, 146443, 32080, 146444, 25079, 146453, 33252, 146456, 23363, 146458, 12041, 146459, 42523, 146460, 9060, 146462, 20997, 146464, 32085, 146465, 32086, 146469, 27153, 146470, 32427, 146472, 8952, 146473, 10254, 146476, 13632, 146486, 32474, 146487, 39399, 146490, 36236, 146491, 32106, 146492, 28855, 146495, 34553, 146496, 25947, 146498, 23365, 146504, 27637, 146505, 27689, 146509, 12437, 146512, 43543, 146515, 40042, 146519, 19740, 146524, 43325, 146534, 14832, 146535, 47225, 146539, 16440, 146545, 9773, 146547, 25460, 146550, 9313, 146554, 29237, 146555, 34981, 146556, 12592, 146557, 46392, 146560, 33472, 146562, 11312, 146564, 21547, 146570, 22673, 146571, 10702, 146577, 18311, 146578, 24349, 146579, 33351, 146582, 29290, 146583, 37847, 146584, 38520, 146588, 43664, 146593, 33352, 146594, 12765, 146597, 12336, 146609, 36990, 146610, 17588, 146611, 30212, 146613, 46808, 146614, 28958, 146615, 28572, 146621, 32736, 146622, 16583, 146624, 46718, 146627, 19530, 146652, 14568, 146655, 20882, 146656, 17134, 146660, 45960, 146662, 39073, 146665, 47975, 146668, 38947, 146669, 30003, 146672, 8199, 146674, 20234, 146707, 20352, 146710, 45242, 146718, 8221, 146719, 26888, 146722, 45468, 146723, 47740, 146725, 23093, 146728, 8342, 146730, 29295, 146748, 26889, 146749, 36011, 146782, 37280, 146783, 26414, 146786, 35887, 146801, 7419, 146807, 17237, 146808, 47460, 146810, 14024, 146811, 14025, 146812, 15711, 146822, 31787, 146824, 37743, 146826, 27873, 146827, 46297, 146828, 38225, 146829, 47741, 146831, 20815, 146832, 29479, 146840, 35261, 146845, 21879, 146848, 30422, 146849, 9542, 146851, 37126, 146852, 33370, 146854, 37359, 146857, 18469, 146859, 43035, 146912, 27646, 146913, 47161, 146917, 34854, 146921, 43036, 146922, 37744, 146923, 7528, 146934, 35236, 146942, 16851, 146943, 37413, 146944, 18942, 146947, 40910, 146948, 45335, 146950, 48105, 146951, 8728, 146953, 12195, 146954, 43337, 146955, 32278, 146958, 18524, 146959, 28107, 146960, 45248, 146962, 36341, 146968, 42725, 146969, 35895, 146970, 33776, 146971, 34856, 146973, 40530, 146976, 44104, 146979, 14862, 147015, 22703, 147019, 15249, 147026, 27700, 147034, 29867, 147036, 19578, 147037, 31371, 147038, 47197, 147039, 15717, 147040, 44765, 147041, 10733, 147045, 31122, 147047, 48515, 147049, 40127, 147050, 26831, 147052, 18188, 147054, 29873, 147055, 41389, 147057, 39245, 147058, 36356, 147061, 28164, 147062, 11303, 147072, 38541, 147116, 18720, 147117, 41239, 147118, 36246, 147120, 31372, 147123, 20600, 147132, 12526, 147133, 7789, 147149, 12561, 147150, 22865, 147152, 21677, 147153, 33385, 147154, 21307, 147157, 27795, 147158, 29022, 147160, 34862, 147162, 34665, 147163, 47728, 147164, 15284, 147167, 45391, 147168, 40135, 147169, 23786, 147170, 36835, 147177, 46231, 147180, 9547, 147182, 45000, 147185, 47356, 147226, 35900, 147230, 41659, 147231, 26014, 147232, 41789, 147238, 45520, 147239, 34718, 147269, 17006, 147270, 47470, 147272, 32834, 147273, 32835, 147276, 22474, 147277, 19849, 147278, 15808, 147282, 40287, 147285, 29232, 147286, 20154, 147290, 46758, 147291, 45701, 147293, 17959, 147295, 23053, 147297, 9198, 147300, 33289, 147301, 7469, 147302, 20399, 147304, 36280, 147307, 35074, 147309, 27231, 147310, 43437, 147311, 35901, 147312, 17007, 147315, 32902, 147316, 38085, 147319, 35033, 147364, 30792, 147366, 46054, 147397, 13434, 147398, 15306, 147399, 33957, 147400, 35319, 147401, 43195, 147402, 24803, 147404, 17671, 147406, 46378, 147408, 45537, 147410, 11988, 147411, 11989, 147421, 15054, 147422, 24309, 147423, 22870, 147427, 40037, 147428, 44121, 147459, 17478, 147465, 17363, 147466, 22747, 147485, 44633, 147491, 18631, 147492, 35587, 147494, 23461, 147496, 13558, 147497, 20418, 147498, 30189, 147499, 8691, 147504, 41246, 147506, 8749, 147511, 38108, 147553, 12480, 147554, 20998, 147555, 7802, 147557, 28672, 147558, 39673, 147559, 33313, 147562, 18445, 147563, 11299, 147566, 29234, 147567, 25091, 147568, 12841, 147569, 9459, 147571, 45712, 147573, 26123, 147577, 19295, 147580, 24518, 147581, 43764, 147583, 38020, 147584, 8595, 147585, 17054, 147587, 29894, 147590, 8805, 147616, 41814, 147620, 47702, 147634, 17949, 147638, 25234, 147639, 14264, 147641, 43503, 147642, 23703, 147644, 42364, 147647, 41157, 147648, 24540, 147688, 23705, 147689, 25377, 147690, 38919, 147691, 17858, 147693, 20741, 147694, 47944, 147698, 46775, 147701, 9256, 147702, 36269, 147703, 7442, 147706, 41354, 147707, 24022, 147708, 45398, 147709, 18963, 147726, 39168, 147727, 17951, 147729, 14606, 147730, 20324, 147731, 11826, 147732, 45263, 147734, 9405, 147736, 43975, 147739, 13849, 147740, 29318, 147749, 35794, 147751, 29377, 147755, 14471, 147756, 38926, 147766, 42374, 147767, 26388, 147770, 8666, 147772, 21268, 147773, 24594, 147786, 41960, 147787, 13568, 147790, 26726, 147792, 16185, 147793, 32494, 147794, 9558, 147811, 27084, 147825, 16470, 147826, 34743, 147832, 41714, 147833, 8635, 147840, 8830, 147841, 10624, 147842, 23241, 147844, 19225, 147853, 10821, 147855, 38349, 147857, 11841, 147858, 46875, 147865, 34796, 147868, 16548, 147869, 30301, 147870, 40867, 147871, 34895, 147873, 38524, 147886, 15090, 147888, 34302, 147891, 18976, 147892, 18706, 147893, 29241, 147900, 47502, 147902, 42682, 147907, 24369, 147908, 33537, 147932, 27638, 147934, 15889, 147936, 18093, 147951, 14296, 147952, 14420, 147955, 40885, 147956, 42702, 147966, 43781, 147988, 10718, 147993, 42703, 148005, 12811, 148006, 18941, 148007, 17621, 148009, 45726, 148022, 45108, 148023, 39346, 148044, 39436, 148045, 23877, 148046, 33743, 148047, 34339, 148048, 47880, 148068, 8860, 148069, 21560, 148070, 38318, 148071, 20684, 148072, 15250, 148074, 39710, 148075, 22428, 148146, 28383, 148148, 19267, 148149, 19588, 148150, 23446, 148155, 15066, 148156, 33549, 148157, 24997, 148158, 27594, 148159, 10336, 148162, 27788, 148175, 25762, 148200, 14031, 148203, 28384, 148205, 19401, 148208, 47587, 148226, 35283, 148227, 14032, 148231, 21481, 148234, 45298, 148235, 18947, 148236, 43753, 148237, 18194, 148238, 25218, 148239, 38288, 148240, 17349, 148244, 28258, 148279, 39109, 148281, 15719, 148286, 17723, 148287, 19417, 148288, 39774, 148289, 33386, 148304, 37225, 148306, 46102, 148307, 34671, 148309, 44117, 148310, 20156, 148316, 45480, 148324, 46028, 148349, 33018, 148356, 41584, 148363, 12027, 148375, 19613, 148376, 33651, 148387, 14246, 148388, 23825, 148389, 35999, 148391, 47604, 148397, 25201, 148399, 45610, 148401, 21994, 148402, 18134, 148439, 33958, 148440, 19282, 148444, 23270, 148465, 11279, 148466, 47369, 148470, 7519, 148472, 47928, 148477, 40498, 148479, 27604, 148480, 18139, 148500, 35951, 148505, 8582, 148515, 13338, 148521, 22435, 148523, 8806, 148528, 19296, 148529, 25092, 148530, 11946, 148547, 39674, 148548, 32527, 148563, 45027, 148565, 41280, 148567, 24983, 148579, 33401, 148582, 34414, 148586, 40336, 148595, 39942, 148599, 42413, 148600, 23678, 148601, 43268, 148607, 24771, 148628, 9257, 148629, 9601, 148637, 42369, 148646, 24817, 148667, 35803, 148689, 19919, 148692, 38932, 148693, 47130, 148698, 38934, 148701, 45051, 148708, 39580, 148710, 47962, 148719, 46044, 148725, 48356, 148727, 28098, 148734, 12632, 148735, 25028, 148736, 28100, 148745, 29449, 148747, 21857, 148758, 26418, 148761, 34700, 148762, 33680, 148765, 26419, 148767, 14833, 148771, 8055, 148776, 24458, 148779, 40624, 148790, 12505, 148800, 10645, 148804, 46059, 148807, 35205, 148810, 33929, 148818, 16015, 148824, 44200, 148826, 18879, 148827, 10348, 148829, 20755, 148830, 47553, 148831, 34498, 148834, 39971, 148838, 28902, 148845, 20466, 148847, 20468, 148855, 13150, 148861, 31212, 148862, 31884, 148864, 14962, 148870, 45972, 148871, 22612, 148882, 13249, 148883, 45528, 148886, 16720, 148887, 33300, 148888, 14921, 148891, 20526, 148893, 41677, 148894, 47078, 148898, 24559, 148902, 25415, 148906, 42650, 148908, 32132, 148909, 29320, 148910, 16239, 148912, 20051, 148913, 17596, 148915, 29669, 148917, 21858, 148919, 10320, 148922, 25043, 148923, 34328, 148924, 30234, 148925, 39801, 148927, 29863, 148928, 26416, 148929, 11879, 148931, 44426, 148935, 22826, 148936, 40250, 148941, 37622, 148942, 41769, 148943, 29514, 148947, 10577, 148952, 36357, 148953, 10337, 148954, 8498, 148955, 24795, 148956, 20065, 148958, 36770, 148962, 36317, 148968, 13256, 148970, 34672, 148971, 24177, 148972, 26119, 148973, 39198, 148975, 11968, 148979, 9107, 148980, 37183, 148981, 30343, 148983, 25223, 148984, 14922, 148986, 9223, 148987, 10088, 148990, 12506, 148991, 35854, 148992, 12662, 148995, 24560, 148997, 41448, 148998, 41451, 148999, 45845, 149002, 42714, 149004, 30429, 149012, 18299, 149014, 36726, 149016, 22843, 149019, 11497, 149020, 44000, 149021, 14908, 149023, 29111, 149024, 36603, 149025, 21192, 149026, 29757, 149027, 10400, 149028, 29860, 149030, 21050, 149031, 16823, 149042, 47737, 149045, 18151, 149046, 11108, 149047, 34622, 149048, 36157, 149049, 29762, 149050, 32740, 149051, 32741, 149053, 18043, 149054, 29578, 149061, 7785, 149063, 39217, 149067, 31563, 149068, 28533, 149070, 36158, 149071, 32154, 149074, 40103, 149076, 46135, 149077, 18397, 149078, 40388, 149080, 34431, 149083, 37045, 149085, 24829, 149086, 8455, 149087, 11134, 149089, 40471, 149091, 40390, 149092, 15110, 149097, 21063, 149101, 15365, 149104, 36255, 149105, 33803, 149108, 10224, 149109, 11436, 149116, 32416, 149117, 18047, 149118, 8254, 149120, 9444, 149125, 28005, 149129, 40751, 149130, 13231, 149133, 10030, 149134, 44302, 149135, 47226, 149139, 24140, 149140, 34434, 149146, 13608, 149148, 26808, 149149, 18750, 149151, 36217, 149153, 13705, 149154, 36358, 149155, 34029, 149156, 26976, 149160, 46356, 149161, 31533, 149162, 29878, 149163, 36078, 149164, 9575, 149165, 42225, 149167, 40708, 149168, 7907, 149169, 16433, 149173, 9378, 149180, 16310, 149181, 9186, 149185, 38254, 149188, 19833, 149194, 23419, 149197, 11969, 149198, 27712, 149199, 11873, 149200, 29189, 149201, 43828, 149206, 26840, 149207, 22714, 149208, 26729, 149209, 13336, 149210, 18540, 149211, 13995, 149212, 20490, 149213, 35307, 149218, 9721, 149219, 35762, 149221, 18768, 149222, 22196, 149223, 41345, 149226, 40626, 149228, 27420, 149229, 32398, 149230, 23826, 149233, 47079, 149234, 38011, 149239, 33309, 149243, 45397, 149249, 7441, 149250, 38127, 149252, 18531, 149255, 46000, 149257, 43643, 149258, 15923, 149259, 19106, 149261, 32257, 149267, 25113, 149268, 21793, 149269, 7742, 149270, 23978, 149272, 26672, 149273, 25416, 149276, 24337, 149277, 19683, 149281, 18912, 149282, 40429, 149283, 34286, 149284, 46183, 149287, 9068, 149291, 9736, 149295, 9738, 149296, 21276, 149297, 7641, 149298, 8115, 149301, 41853, 149303, 18312, 149305, 44221, 149307, 8407, 149308, 11337, 149310, 19690, 149314, 28051, 149316, 26812, 149317, 47145, 149319, 42437, 149320, 13480, 149321, 42420, 149325, 32641, 149326, 43319, 149328, 17504, 149330, 28134, 149331, 36713, 149332, 15411, 149333, 28018, 149334, 45291, 149336, 18153, 149338, 10363, 149339, 37341, 149342, 11229, 149343, 15182, 149351, 8037, 149356, 12870, 149357, 9434, 149358, 25955, 149359, 30213, 149360, 12179, 149361, 42448, 149363, 42835, 149367, 39744, 149368, 8317, 149369, 47396, 149371, 42684, 149373, 26177, 149375, 23070, 149378, 46897, 149383, 37480, 149384, 12771, 149385, 34629, 149386, 25029, 149387, 45442, 149388, 46898, 149389, 28334, 149399, 9861, 149402, 39861, 149403, 45409, 149406, 44508, 149407, 13531, 149408, 9834, 149409, 40104, 149410, 42031, 149412, 39527, 149413, 8002, 149422, 45785, 149424, 31871, 149426, 18159, 149427, 45307, 149428, 22112, 149430, 17184, 149439, 7453, 149440, 45469, 149443, 33418, 149445, 39615, 149446, 10785, 149447, 41751, 149449, 7459, 149453, 46217, 149454, 22123, 149457, 24403, 149459, 23911, 149462, 9442, 149464, 25979, 149466, 19961, 149469, 39298, 149470, 40025, 149471, 41570, 149472, 40752, 149474, 13902, 149475, 43681, 149476, 18865, 149477, 36342, 149478, 29021, 149479, 39009, 149482, 37051, 149495, 37519, 149496, 10369, 149500, 17831, 149502, 36343, 149503, 41008, 149504, 45249, 149511, 15949, 149515, 25756, 149516, 9866, 149517, 29327, 149518, 19589, 149520, 35731, 149523, 38799, 149526, 39887, 149528, 33215, 149529, 19979, 149530, 35284, 149531, 18721, 149533, 12077, 149535, 35732, 149536, 34706, 149546, 15264, 149547, 24441, 149549, 33810, 149551, 36070, 149558, 12988, 149562, 8520, 149564, 16311, 149565, 11889, 149567, 30951, 149570, 23930, 149571, 35295, 149574, 48243, 149575, 17445, 149583, 10868, 149584, 9610, 149587, 38375, 149588, 39898, 149589, 25067, 149590, 41579, 149597, 8521, 149599, 18679, 149601, 38820, 149602, 10676, 149603, 40779, 149604, 28349, 149605, 41665, 149607, 40288, 149608, 45702, 149610, 35476, 149612, 39122, 149613, 8267, 149614, 32421, 149615, 34867, 149616, 7824, 149617, 16905, 149618, 22389, 149619, 10382, 149622, 40950, 149630, 14227, 149631, 24459, 149632, 38839, 149633, 18684, 149634, 35308, 149636, 10186, 149642, 26030, 149643, 41666, 149646, 12504, 149647, 12408, 149648, 42003, 149650, 45822, 149651, 21919, 149653, 13956, 149654, 33219, 149655, 23530, 149656, 35320, 149663, 45538, 149667, 8565, 149670, 43561, 149672, 17450, 149674, 25080, 149677, 17484, 149678, 42060, 149684, 34873, 149685, 7359, 149686, 31775, 149689, 24014, 149690, 40170, 149692, 34409, 149699, 25936, 149701, 32366, 149702, 24726, 149708, 40046, 149710, 43637, 149713, 40180, 149720, 25384, 149721, 43979, 149726, 12534, 149727, 23686, 149728, 39953, 149736, 43136, 149740, 38411, 149742, 42931, 149743, 37301, 149744, 9314, 149746, 40433, 149749, 34889, 149750, 21098, 149752, 7642, 149753, 14439, 149755, 27849, 149756, 33004, 149770, 12232, 149771, 19748, 149776, 35245, 149777, 31719, 149778, 7651, 149798, 36518, 149799, 44005, 149801, 37348, 149803, 37530, 149804, 44154, 149806, 13388, 149809, 39001, 149810, 22818, 149814, 31722, 149815, 13776, 149816, 14022, 149818, 43013, 149842, 38731, 149843, 31478, 149844, 35250, 149847, 25471, 149849, 37585, 149869, 10298, 149870, 47403, 149872, 26898, 149879, 32212, 149885, 44199, 149887, 43073, 149888, 27264, 149891, 23515, 149892, 46967, 149924, 28496, 149926, 7817, 149930, 13402, 149934, 46968, 149973, 43105, 149976, 25318, 149977, 44304, 149978, 11742, 149979, 12939, 149980, 46990, 149984, 32919, 149987, 20383, 149993, 37676, 149995, 21231, 149997, 29410, 150029, 26015, 150030, 32056, 150032, 39021, 150033, 12203, 150038, 18363, 150039, 26423, 150041, 23915, 150070, 16208, 150075, 25452, 150082, 23827, 150084, 47697, 150120, 45450, 150121, 17541, 150122, 39823, 150125, 17544, 150126, 24496, 150129, 13081, 150130, 15989, 150141, 18602, 150148, 14253, 150150, 39267, 150155, 20188, 150156, 30622, 150157, 39272, 150158, 44127, 150177, 46563, 150186, 47704, 150190, 10090, 150217, 40351, 150229, 28362, 150237, 19920, 150238, 36558, 150243, 41849, 150247, 17495, 150248, 40421, 150249, 25417, 150251, 7811, 150252, 8273, 150257, 16241, 150258, 25275, 150261, 23375, 150262, 30866, 150263, 20768, 150265, 14297, 150266, 42202, 150267, 13581, 150273, 19230, 150274, 13672, 150275, 29501, 150284, 44847, 150287, 25779, 150288, 40539, 150291, 24690, 150292, 42235, 150293, 38840, 150294, 42242, 150296, 38890, 150299, 25886, 150301, 41955, 150304, 32259, 150309, 32484, 150310, 37493, 150311, 48307, 150312, 14569, 150313, 42959, 150314, 13684, 150315, 35448, 150317, 29698, 150319, 17223, 150321, 40876, 150323, 16199, 150325, 12910, 150327, 28144, 150334, 14026, 150335, 37457, 150338, 28775, 150344, 13156, 150345, 18715, 150348, 36344, 150349, 14588, 150353, 38473, 150354, 7494, 150356, 30130, 150361, 17245, 150363, 15765, 150364, 24141, 150366, 13860, 150367, 15456, 150368, 28165, 150370, 9692, 150375, 20837, 150377, 31692, 150379, 43597, 150380, 39758, 150385, 18195, 150388, 35296, 150395, 15910, 150396, 14228, 150397, 40951, 150406, 38862, 150410, 22525, 150411, 17048, 150412, 20845, 150413, 11350, 150414, 23944, 150415, 17805, 150416, 48476, 150421, 30032, 150424, 12719, 150425, 38891, 150426, 23947, 150428, 33613, 150439, 25887, 150441, 13850, 150442, 22361, 150445, 10097, 150447, 40183, 150448, 37477, 150449, 46274, 150451, 47661, 150455, 25607, 150456, 23980, 150460, 12270, 150461, 15629, 150468, 34319, 150471, 41780, 150476, 15659, 150480, 41697, 150486, 35388, 150490, 47154, 150492, 34320, 150497, 34073, 150501, 10020, 150519, 18776, 150520, 43562, 150523, 27217, 150530, 32477, 150533, 39740, 150536, 8144, 150540, 11348, 150545, 30362, 150553, 22590, 150554, 23409, 150557, 32272, 150559, 17434, 150560, 10827, 150561, 26742, 150566, 45753, 150570, 14909, 150572, 10279, 150579, 21348, 150595, 25030, 150597, 28139, 150598, 28140, 150599, 36854, 150603, 32406, 150604, 48365, 150605, 29704, 150606, 44094, 150608, 34504, 150619, 25044, 150620, 34432, 150621, 37152, 150623, 15829, 150624, 33719, 150625, 37350, 150627, 28247, 150631, 37410, 150632, 16148, 150633, 13157, 150644, 27202, 150645, 7900, 150647, 40115, 150648, 35012, 150649, 36805, 150650, 16884, 150653, 15251, 150654, 16888, 150665, 16889, 150673, 47513, 150675, 23519, 150677, 26341, 150678, 36579, 150679, 32455, 150682, 13404, 150696, 22030, 150697, 41655, 150700, 32899, 150701, 12402, 150704, 26920, 150710, 26231, 150712, 40952, 150714, 38841, 150722, 26514, 150723, 30451, 150725, 9839, 150728, 33653, 150729, 17364, 150730, 30149, 150734, 19443, 150739, 24498, 150741, 44650, 150742, 7834, 150744, 36267, 150749, 11078, 150752, 11079, 150756, 30468, 150757, 38892, 150758, 8188, 150762, 42533, 150765, 16732, 150767, 47613, 150771, 23957, 150772, 23958, 150773, 9770, 150784, 16734, 150797, 13293, 150803, 41473, 150808, 28761, 150809, 34520, 150811, 46969, 150815, 47058, 150818, 47059, 150819, 29851, 150821, 21501, 150822, 21503, 150823, 42932, 150824, 44139, 150826, 21504, 150831, 18639, 150833, 13685, 150843, 36201, 150844, 31414, 150845, 31506, 150846, 40435, 150847, 9898, 150848, 19759, 150850, 31594, 150858, 13689, 150859, 46645, 150862, 29211, 150864, 38602, 150866, 38185, 150872, 8444, 150875, 8082, 150877, 28026, 150878, 21203, 150879, 36204, 150880, 24902, 150885, 9603, 150886, 45685, 150892, 10778, 150893, 41422, 150894, 23176, 150895, 43525, 150904, 25626, 150905, 30867, 150907, 17398, 150908, 33678, 150909, 17157, 150910, 9748, 150912, 20673, 150913, 23855, 150920, 38756, 150923, 9156, 150931, 46827, 150933, 37288, 150934, 15252, 150936, 18108, 150938, 28788, 150939, 43074, 150940, 47744, 150944, 9790, 150948, 35368, 150951, 45180, 150958, 13701, 150960, 38773, 150961, 11371, 150962, 40531, 150963, 20685, 150964, 33884, 150976, 37706, 150977, 8089, 150978, 14704, 150979, 20384, 150980, 32230, 150981, 43107, 150982, 13405, 150983, 40924, 150984, 28166, 150985, 19590, 150988, 46420, 150989, 30559, 150990, 13785, 150991, 43420, 150993, 21593, 150994, 29790, 150995, 40447, 150996, 26328, 150997, 9446, 150998, 25449, 150999, 8862, 151000, 12645, 151001, 12689, 151007, 23490, 151009, 38800, 151010, 21890, 151012, 39977, 151014, 21302, 151033, 37533, 151035, 28389, 151036, 39717, 151037, 32342, 151038, 31441, 151039, 37014, 151040, 40837, 151041, 19029, 151045, 27664, 151046, 37984, 151048, 44043, 151049, 37177, 151050, 12308, 151054, 22669, 151055, 28174, 151057, 15463, 151058, 44590, 151059, 46848, 151061, 17194, 151062, 7260, 151063, 15464, 151073, 41999, 151076, 34218, 151078, 9938, 151082, 10880, 151083, 45189, 151084, 34709, 151086, 35309, 151087, 33192, 151089, 14229, 151090, 46584, 151091, 7277, 151092, 35627, 151093, 9382, 151095, 32396, 151096, 43162, 151097, 41798, 151099, 28176, 151100, 38554, 151111, 24460, 151112, 24461, 151114, 38844, 151115, 22179, 151116, 34141, 151118, 41485, 151131, 10433, 151132, 43693, 151133, 8566, 151134, 10349, 151137, 45663, 151138, 37421, 151139, 18365, 151140, 36283, 151141, 43792, 151142, 8388, 151143, 28907, 151144, 24804, 151145, 40454, 151146, 44458, 151154, 8183, 151156, 27802, 151157, 13790, 151159, 12619, 151160, 30601, 151168, 34710, 151171, 39920, 151172, 47204, 151173, 47802, 151175, 8750, 151177, 38012, 151178, 38879, 151180, 12716, 151182, 40075, 151183, 29314, 151184, 28825, 151187, 8901, 151188, 33826, 151189, 14784, 151190, 27714, 151191, 30811, 151210, 33608, 151211, 35635, 151223, 19640, 151226, 12413, 151227, 22051, 151228, 26076, 151230, 7620, 151234, 43233, 151235, 34600, 151236, 35506, 151237, 38114, 151238, 37596, 151239, 11214, 151244, 38393, 151254, 8607, 151256, 43504, 151257, 19222, 151260, 22437, 151261, 28916, 151266, 7365, 151268, 24543, 151270, 45796, 151281, 26099, 151286, 8755, 151287, 29347, 151295, 16930, 151296, 35229, 151297, 27178, 151298, 39567, 151299, 25742, 151301, 30824, 151307, 10098, 151308, 43291, 151309, 17432, 151311, 24775, 151312, 16692, 151314, 38038, 151319, 22246, 151320, 23972, 151321, 26250, 151322, 24624, 151324, 29823, 151330, 18634, 151342, 16767, 151347, 21742, 151350, 12710, 151354, 14781, 151361, 46631, 151363, 27031, 151365, 18640, 151369, 29243, 151370, 8362, 151372, 30173, 151379, 14320, 151381, 18644, 151395, 10197, 151397, 26455, 151398, 15077, 151407, 11050, 151409, 48321, 151410, 28253, 151411, 39992, 151417, 7790, 151418, 25997, 151420, 26465, 151423, 28689, 151424, 45512, 151428, 47588, 151429, 18191, 151432, 18881, 151433, 36129, 151434, 11063, 151441, 18756, 151442, 13492, 151451, 27575, 151453, 9209, 151456, 12968, 151458, 12734, 151459, 30312, 151461, 35080, 151462, 11080, 151467, 42366, 151468, 27218, 151469, 25660, 151474, 24727, 151477, 8907, 151482, 26169, 151487, 33335, 151488, 48526, 151492, 12068, 151493, 25419, 151494, 46574, 151495, 29833, 151496, 7978, 151499, 32311, 151502, 29699, 151503, 28289, 151504, 29700, 151505, 9277, 151506, 8126, 151507, 14403, 151509, 27693, 151510, 27864, 151511, 37495, 151512, 46096, 151513, 46912, 151514, 11859, 151519, 41317, 151520, 19561, 151521, 16885, 151523, 10563, 151527, 17332, 151528, 40026, 151529, 32324, 151531, 11567, 151533, 15369, 151539, 31572, 151540, 25998, 151541, 32332, 151542, 13028, 151543, 30939, 151548, 10182, 151549, 35733, 151550, 8094, 151553, 13708, 151554, 8282, 151555, 18065, 151560, 45731, 151561, 45732, 151566, 32348, 151567, 26515, 151568, 17257, 151571, 25497, 151572, 26050, 151574, 48038, 151576, 29848, 151577, 47370, 151579, 45426, 151581, 28974, 151584, 19076, 151587, 41200, 151589, 23463, 151595, 29024, 151596, 41821, 151597, 32464, 151598, 28401, 151600, 23473, 151601, 16733, 151602, 13639, 151605, 25889, 151609, 20336, 151610, 40360, 151611, 30830, 151614, 39838, 151617, 17067, 151618, 20884, 151619, 26805, 151622, 39185, 151623, 23153, 151630, 43932, 151632, 17136, 151633, 27378, 151634, 42333, 151637, 38153, 151647, 24407, 151648, 22017, 151649, 38423, 151650, 31313, 151662, 13164, 151663, 11253, 151666, 35570, 151669, 10931, 151672, 32181, 151673, 33812, 151682, 27206, 151683, 21899, 151691, 37077, 151698, 28988, 151699, 27803, 151705, 14923, 151714, 7551, 151715, 17010, 151716, 18224, 151717, 9512, 151718, 13871, 151719, 17143, 151720, 20727, 151728, 16371, 151733, 21129, 151736, 42064, 151744, 9843, 151756, 18905, 151764, 32107, 151765, 22649, 151775, 31639, 151776, 43306, 151779, 22420, 151780, 20651, 151783, 11010, 151784, 9315, 151785, 16043, 151786, 20579, 151787, 46632, 151790, 38246, 151792, 8921, 151796, 40611, 151797, 14570, 151800, 42660, 151801, 11368, 151802, 42326, 151805, 41988, 151806, 13686, 151807, 41735, 151809, 27103, 151815, 10650, 151816, 28055, 151817, 20586, 151819, 29082, 151821, 17029, 151822, 41225, 151825, 15200, 151826, 41166, 151827, 15096, 151828, 29542, 151829, 27860, 151830, 38714, 151831, 38355, 151832, 33538, 151835, 38715, 151836, 30740, 151837, 27521, 151846, 12393, 151848, 11110, 151857, 14754, 151858, 27582, 151860, 41228, 151861, 40887, 151862, 34903, 151863, 21806, 151864, 26867, 151865, 8042, 151867, 42706, 151868, 16506, 151869, 28582, 151871, 42707, 151873, 48553, 151876, 29063, 151889, 13049, 151890, 14576, 151891, 43015, 151892, 34332, 151895, 11860, 151896, 46407, 151902, 34340, 151903, 20675, 151904, 18058, 151905, 14327, 151910, 24051, 151911, 41230, 151912, 16107, 151914, 34433, 151916, 21963, 151924, 20912, 151925, 37862, 151927, 34443, 151928, 21395, 151930, 40814, 151931, 10999, 151941, 20479, 151942, 28000, 151945, 44527, 151948, 22142, 151953, 36822, 151956, 39876, 151958, 13486, 151960, 17033, 151961, 26763, 151962, 37707, 151963, 40911, 151964, 37776, 151965, 35572, 151966, 22024, 151967, 44990, 151969, 17246, 151971, 33885, 151973, 40119, 151974, 25475, 151975, 32987, 151983, 8477, 151986, 28409, 151990, 37672, 151991, 21591, 151992, 32299, 152004, 28590, 152006, 27265, 152007, 35573, 152009, 31238, 152012, 17338, 152013, 47893, 152014, 27271, 152015, 40925, 152017, 23768, 152018, 20939, 152019, 13358, 152020, 10203, 152021, 46991, 152022, 14681, 152023, 20026, 152024, 22332, 152025, 19268, 152026, 30432, 152027, 21671, 152028, 47816, 152030, 13063, 152031, 20694, 152032, 41432, 152034, 45918, 152045, 46681, 152047, 26612, 152048, 18114, 152049, 40263, 152050, 34213, 152051, 16780, 152063, 40926, 152066, 19599, 152068, 11432, 152070, 26922, 152071, 32900, 152072, 40766, 152073, 18681, 152074, 33430, 152075, 21817, 152079, 23129, 152081, 18020, 152082, 16609, 152083, 16520, 152085, 27274, 152086, 13250, 152087, 8523, 152088, 24865, 152089, 23450, 152090, 33552, 152091, 26016, 152092, 39111, 152095, 35193, 152108, 29183, 152110, 24088, 152119, 22908, 152120, 16785, 152123, 38821, 152124, 29333, 152125, 33291, 152126, 22269, 152127, 17979, 152128, 16675, 152129, 21909, 152131, 28231, 152132, 18435, 152133, 15974, 152134, 24462, 152135, 16315, 152136, 36461, 152138, 26566, 152139, 36281, 152140, 12206, 152144, 30452, 152145, 44614, 152146, 20712, 152147, 27597, 152148, 16097, 152149, 27232, 152150, 38088, 152152, 36373, 152153, 30592, 152156, 10434, 152157, 13497, 152159, 29334, 152176, 17358, 152180, 27421, 152181, 26516, 152182, 26051, 152183, 30458, 152184, 22782, 152186, 13263, 152187, 30803, 152188, 20622, 152189, 22526, 152190, 31292, 152191, 27422, 152192, 33516, 152199, 20157, 152200, 24184, 152201, 22721, 152202, 40960, 152209, 26646, 152210, 15055, 152211, 10087, 152212, 18951, 152231, 22871, 152234, 38013, 152235, 16678, 152236, 19641, 152237, 48497, 152238, 19290, 152239, 40160, 152244, 35494, 152246, 32932, 152248, 36261, 152252, 46613, 152253, 23325, 152254, 39782, 152255, 27462, 152257, 39141, 152268, 33031, 152281, 14260, 152282, 27609, 152283, 47523, 152284, 48279, 152285, 27216, 152287, 38893, 152289, 36106, 152291, 20092, 152292, 10166, 152293, 19654, 152302, 47933, 152319, 17748, 152320, 9811, 152321, 30821, 152322, 27470, 152323, 46433, 152324, 22922, 152325, 42534, 152326, 47296, 152328, 20193, 152330, 29376, 152333, 18902, 152335, 27756, 152336, 25600, 152344, 34819, 152346, 26622, 152347, 24233, 152350, 34878, 152351, 42802, 152356, 24564, 152360, 40079, 152361, 36263, 152362, 40680, 152365, 41160, 152366, 24578, 152367, 27179, 152368, 37915, 152369, 27180, 152378, 42375, 152379, 23636, 152380, 25385, 152381, 43649, 152382, 43650, 152383, 24595, 152384, 20326, 152385, 16808, 152389, 16626, 152390, 40355, 152393, 33838, 152395, 48420, 152403, 22502, 152404, 23979, 152410, 8760, 152413, 34578, 152414, 29081, 152415, 40877, 152419, 17512, 152424, 16844, 152426, 45827, 152427, 23736, 152428, 11925, 152429, 46971, 152430, 15017, 152431, 31485, 152433, 45510, 152434, 28167, 152435, 28971, 152436, 43109, 152439, 11749, 152440, 34136, 152441, 20275, 152442, 48178, 152443, 41790, 152444, 43600, 152448, 32922, 152450, 32694, 152451, 39123, 152453, 16612, 152454, 22433, 152456, 38641, 152458, 31545, 152459, 11770, 152461, 45541, 152462, 40323, 152464, 44652, 152465, 45360, 152466, 11395, 152467, 24314, 152468, 24315, 152469, 40970, 152470, 27296, 152471, 40972, 152472, 32937, 152475, 16926, 152476, 32764, 152479, 26851, 152481, 31556, 152482, 11949, 152483, 11950, 152484, 11953, 152494, 38418, 152496, 14440, 152497, 7688, 152504, 30863, 152505, 46934, 152506, 36683, 152516, 46935, 152517, 46732, 152519, 18656, 152520, 11043, 152522, 46936, 152526, 43746, 152530, 38623, 152531, 8090, 152533, 17913, 152534, 33948, 152536, 22152, 152537, 23256, 152540, 42855, 152541, 41533, 152544, 8325, 152548, 22986, 152549, 30940, 152552, 46099, 152554, 22411, 152555, 33647, 152558, 7467, 152559, 46232, 152560, 47018, 152567, 47035, 152569, 20713, 152576, 34946, 152577, 30349, 152578, 29225, 152586, 47934, 152593, 43651, 152595, 18555, 152597, 41494, 152600, 34182, 152601, 29239, 152602, 30368, 152606, 26744, 152607, 9852, 152617, 45097, 152620, 16395, 152633, 12394, 152635, 28335, 152637, 46195, 152639, 18155, 152645, 22763, 152647, 13214, 152648, 36735, 152651, 16585, 152654, 31709, 152655, 34258, 152656, 20056, 152657, 7597, 152658, 28118, 152659, 30073, 152660, 20013, 152673, 46294, 152674, 9360, 152675, 38333, 152677, 9818, 152682, 28337, 152683, 22458, 152687, 13599, 152688, 16586, 152689, 31723, 152691, 32665, 152692, 42846, 152693, 13779, 152694, 23991, 152696, 47260, 152697, 22965, 152698, 14066, 152699, 39347, 152700, 13055, 152701, 29142, 152702, 14171, 152703, 43811, 152704, 38616, 152705, 22770, 152723, 46937, 152727, 46828, 152728, 41318, 152731, 46598, 152734, 42037, 152736, 19255, 152737, 19562, 152738, 28375, 152743, 41519, 152744, 25981, 152747, 15115, 152748, 33140, 152749, 11254, 152750, 37964, 152752, 15371, 152753, 22773, 152754, 35018, 152755, 22554, 152757, 43075, 152758, 18472, 152766, 44433, 152771, 24424, 152774, 25190, 152775, 13669, 152776, 14190, 152780, 31239, 152781, 13609, 152784, 20940, 152785, 11571, 152786, 39632, 152790, 15834, 152812, 12646, 152816, 17836, 152827, 48179, 152830, 30786, 152831, 37376, 152832, 17839, 152833, 29842, 152834, 16115, 152836, 28803, 152839, 22807, 152842, 46849, 152849, 39995, 152865, 33816, 152866, 44315, 152867, 20485, 152873, 30700, 152874, 10452, 152875, 33190, 152877, 35628, 152878, 31042, 152879, 19044, 152881, 33593, 152882, 14230, 152891, 31810, 152893, 22715, 152896, 38270, 152897, 48030, 152898, 19615, 152903, 12227, 152905, 12137, 152909, 25810, 152910, 22527, 152911, 23390, 152912, 12830, 152913, 31397, 152915, 27921, 152918, 17083, 152919, 17846, 152920, 10251, 152921, 17764, 152930, 9618, 152931, 46246, 152934, 16967, 152944, 40790, 152945, 29637, 152946, 22202, 152949, 15688, 152950, 34947, 152952, 35495, 152953, 32359, 152955, 38492, 152956, 41678, 152957, 29675, 152958, 40003, 152959, 29315, 152973, 23462, 152983, 8308, 152984, 46432, 152985, 19655, 152988, 21177, 152989, 24720, 152990, 22750, 152992, 47307, 153000, 45485, 153002, 23918, 153003, 30470, 153004, 9063, 153013, 43505, 153014, 30040, 153019, 35204, 153020, 26211, 153022, 12849, 153023, 13640, 153024, 24987, 153025, 47946, 153034, 10189, 153042, 10478, 153043, 35795, 153049, 32372, 153050, 12670, 153053, 32492, 153055, 30267, 153062, 47183, 153063, 40080, 153066, 20507, 153067, 32113, 153068, 24034, 153069, 9414, 153070, 32306, 153077, 39837, 153078, 24078, 153082, 23714, 153087, 23434, 153089, 23435, 153092, 44734, 153098, 20752, 153099, 31499, 153100, 19348, 153103, 15669, 153106, 42933, 153120, 42960, 153121, 46639, 153124, 8832, 153125, 34010, 153126, 21572, 153131, 17562, 153132, 15202, 153134, 21639, 153152, 48533, 153153, 42687, 153158, 39600, 153159, 42688, 153161, 35003, 153163, 11466, 153166, 27868, 153185, 45848, 153187, 41314, 153190, 32817, 153192, 19245, 153196, 33690, 153200, 34459, 153214, 44162, 153215, 44528, 153218, 22320, 153225, 48001, 153226, 25992, 153242, 10791, 153243, 23306, 153248, 47825, 153254, 18014, 153257, 40834, 153278, 48174, 153279, 43787, 153282, 47414, 153285, 25589, 153297, 29073, 153304, 8548, 153306, 10881, 153308, 48372, 153309, 15025, 153310, 26031, 153311, 30377, 153317, 47693, 153319, 46240, 153320, 34142, 153321, 44449, 153322, 26032, 153323, 24841, 153327, 22197, 153328, 25002, 153329, 8268, 153347, 43218, 153348, 16614, 153356, 7583, 153359, 16917, 153360, 27715, 153362, 41815, 153363, 23614, 153366, 9237, 153369, 45363, 153370, 44129, 153381, 43279, 153382, 28557, 153388, 28560, 153389, 17092, 153390, 22364, 153392, 34164, 153394, 39572, 153396, 30994, 153397, 32373, 153398, 23224, 153408, 33775, 153410, 19264, 153412, 37677, 153418, 14797, 153419, 14804, 153421, 44484, 153425, 46633, 153426, 16549, 153428, 20885, 153429, 26745, 153430, 17589, 153432, 44085, 153439, 13687, 153440, 34896, 153442, 24358, 153445, 20892, 153446, 28963, 153447, 7715, 153448, 44239, 153454, 46649, 153464, 17599, 153465, 22601, 153470, 13691, 153471, 19959, 153473, 10365, 153475, 11467, 153476, 17611, 153477, 45814, 153482, 27040, 153485, 17612, 153486, 48098, 153487, 47457, 153490, 37355, 153496, 48495, 153498, 32821, 153499, 14027, 153500, 20545, 153511, 17796, 153513, 8250, 153514, 27875, 153519, 48318, 153522, 8861, 153524, 22944, 153525, 20020, 153530, 47840, 153532, 40650, 153539, 17635, 153541, 31261, 153549, 14722, 153550, 34030, 153554, 47787, 153555, 23050, 153556, 45580, 153557, 39354, 153559, 8502, 153560, 43110, 153562, 10204, 153578, 26918, 153590, 37631, 153597, 38433, 153598, 22909, 153599, 38340, 153600, 40484, 153601, 22626, 153603, 21527, 153604, 13731, 153605, 18682, 153608, 47019, 153609, 9678, 153610, 32785, 153611, 19600, 153613, 42482, 153627, 21308, 153628, 42128, 153633, 48225, 153641, 9527, 153649, 34936, 153650, 24463, 153651, 16443, 153652, 10208, 153654, 14728, 153655, 25499, 153657, 20963, 153658, 45074, 153661, 47037, 153664, 11067, 153665, 8870, 153682, 19428, 153692, 26370, 153693, 20172, 153695, 11392, 153696, 34775, 153698, 26199, 153699, 22347, 153700, 20789, 153702, 36467, 153703, 45665, 153706, 43199, 153708, 11771, 153709, 28439, 153710, 19988, 153716, 19862, 153725, 7342, 153735, 20286, 153738, 8236, 153740, 14516, 153741, 35497, 153742, 48498, 153743, 13082, 153744, 15813, 153745, 15847, 153746, 23830, 153748, 47930, 153759, 18367, 153762, 37189, 153766, 8583, 153767, 21765, 153774, 18440, 153778, 10611, 153782, 23030, 153783, 12511, 153784, 15996, 153785, 40171, 153787, 21000, 153789, 9479, 153798, 48343, 153800, 30355, 153803, 34601, 153804, 9328, 153815, 28917, 153816, 41822, 153817, 47377, 153819, 27164, 153821, 8696, 153823, 39830, 153828, 26088, 153829, 24227, 153833, 19902, 153835, 27615, 153836, 24069, 153838, 47118, 153839, 43974, 153840, 8697, 153848, 28091, 153849, 32465, 153850, 32466, 153858, 28734, 153866, 32260, 153867, 46275, 153872, 24077, 153879, 12538, 153880, 22253, 153884, 25403, 153886, 25421, 153887, 41717, 153891, 42275, 153892, 46441, 153893, 30405, 153894, 7308, 153896, 29052, 153897, 26779, 153905, 22456, 153907, 21508, 153908, 41742, 153909, 27522, 153911, 43394, 153912, 37578, 153913, 42329, 153914, 37451, 153915, 29763, 153916, 35451, 153925, 22819, 153928, 17897, 153930, 27763, 153931, 25280, 153932, 43017, 153933, 33871, 153935, 48554, 153947, 37001, 153949, 43934, 153951, 37496, 153952, 16845, 153953, 17969, 153957, 34342, 153959, 40616, 153961, 7240, 153969, 10565, 153971, 22771, 153972, 43040, 153973, 42115, 153974, 36763, 153975, 13543, 153976, 9791, 153977, 25584, 153981, 31899, 153982, 41096, 153983, 33886, 153984, 23038, 153985, 36934, 153987, 31083, 153989, 11123, 153994, 38229, 153996, 25739, 153997, 7434, 154004, 22467, 154006, 42296, 154008, 15253, 154012, 8296, 154013, 23662, 154014, 30873, 154015, 13064, 154018, 20772, 154019, 16781, 154021, 40619, 154024, 22708, 154038, 39633, 154039, 38402, 154050, 16207, 154054, 29218, 154055, 22627, 154059, 22910, 154065, 36545, 154066, 16317, 154067, 26539, 154069, 25591, 154073, 38089, 154074, 38236, 154081, 16227, 154083, 37078, 154084, 28903, 154087, 27414, 154091, 23750, 154092, 31093, 154093, 26648, 154094, 46247, 154096, 18495, 154097, 43836, 154098, 21249, 154100, 27057, 154103, 15307, 154107, 32070, 154124, 25596, 154125, 15499, 154126, 12472, 154128, 16211, 154130, 12037, 154133, 40549, 154140, 37023, 154141, 34474, 154154, 31783, 154163, 32724, 154171, 24580, 154175, 19489, 154176, 37443, 154188, 36918, 154194, 35976, 154196, 25422, 154198, 42934, 154199, 32908, 154201, 29263, 154205, 9410, 154209, 44974, 154210, 32317, 154211, 47566, 154212, 17156, 154225, 14422, 154226, 17159, 154240, 9302, 154241, 30087, 154242, 25057, 154250, 23232, 154251, 15266, 154252, 36582, 154253, 38371, 154255, 21673, 154264, 46371, 154266, 15286, 154274, 25638, 154278, 39124, 154279, 36546, 154283, 19851, 154287, 42358, 154289, 11905, 154292, 29430, 154293, 31451, 154299, 25650, 154300, 19716, 154306, 36910, 154307, 42796, 154309, 10127, 154315, 16181, 154318, 13477, 154326, 39735, 154329, 36796, 154331, 47639, 154332, 42830, 154333, 42987, 154334, 48092, 154335, 30679, 154338, 9816, 154348, 13895, 154351, 10927, 154352, 25967, 154353, 13899, 154355, 14619, 154356, 34333, 154357, 36436, 154358, 19370, 154359, 31801, 154360, 34799, 154361, 10406, 154364, 18826, 154365, 34423, 154368, 45104, 154374, 25624, 154376, 26677, 154377, 16243, 154381, 39348, 154382, 27876, 154384, 33945, 154386, 30177, 154387, 42337, 154388, 31969, 154389, 32451, 154393, 21880, 154396, 43472, 154397, 7761, 154398, 28777, 154400, 11015, 154410, 32672, 154411, 11360, 154412, 28789, 154413, 24425, 154414, 20481, 154415, 22572, 154416, 9667, 154417, 11002, 154418, 47626, 154419, 48106, 154420, 42042, 154428, 38230, 154443, 19802, 154444, 19803, 154448, 26188, 154449, 31906, 154450, 13908, 154451, 7983, 154452, 9907, 154454, 9174, 154456, 10671, 154457, 46301, 154458, 26806, 154460, 19814, 154461, 27573, 154462, 44918, 154464, 38477, 154465, 46994, 154466, 30090, 154469, 10935, 154475, 27272, 154476, 14705, 154477, 12079, 154478, 27116, 154509, 43428, 154510, 26791, 154511, 13031, 154512, 13121, 154514, 31038, 154517, 17437, 154518, 46752, 154519, 21747, 154520, 28690, 154524, 27275, 154525, 16435, 154531, 47627, 154532, 28804, 154533, 47904, 154535, 42483, 154536, 11836, 154538, 40767, 154540, 39113, 154543, 9100, 154558, 9528, 154563, 41791, 154577, 21170, 154580, 21820, 154581, 12569, 154582, 13713, 154584, 42408, 154585, 21416, 154586, 22716, 154587, 26473, 154588, 37992, 154589, 37020, 154590, 44048, 154591, 29303, 154593, 29799, 154594, 13366, 154596, 37993, 154597, 10344, 154598, 20401, 154600, 34937, 154601, 47908, 154602, 35208, 154604, 32925, 154606, 44322, 154611, 14231, 154614, 22931, 154616, 47601, 154622, 39256, 154651, 15308, 154652, 36226, 154653, 38864, 154654, 11025, 154655, 15687, 154656, 26121, 154657, 9686, 154658, 33603, 154659, 25508, 154661, 39133, 154662, 19446, 154663, 42868, 154664, 35947, 154666, 18225, 154669, 12083, 154670, 16019, 154672, 34398, 154673, 33220, 154674, 17981, 154675, 39661, 154678, 39260, 154683, 28084, 154684, 35632, 154686, 45833, 154688, 15137, 154689, 33303, 154690, 29056, 154691, 43201, 154727, 31546, 154728, 31697, 154741, 19078, 154742, 34777, 154743, 12410, 154744, 29192, 154745, 27929, 154746, 30965, 154747, 10898, 154748, 29281, 154749, 22048, 154752, 10253, 154753, 25081, 154754, 8995, 154755, 22874, 154756, 12473, 154757, 11081, 154758, 36836, 154759, 12474, 154760, 26689, 154761, 18369, 154762, 24938, 154763, 39485, 154765, 9622, 154766, 26063, 154767, 11377, 154768, 38493, 154769, 26653, 154773, 48115, 154775, 13718, 154778, 34786, 154779, 15500, 154780, 21930, 154781, 47373, 154783, 13177, 154784, 37779, 154785, 11396, 154786, 30966, 154787, 37228, 154789, 24712, 154790, 8799, 154791, 24196, 154794, 24197, 154822, 8598, 154823, 15509, 154824, 12042, 154825, 13590, 154827, 45364, 154828, 25651, 154829, 41350, 154830, 31778, 154831, 19470, 154832, 31098, 154834, 20303, 154835, 33710, 154836, 14052, 154837, 34549, 154838, 9393, 154839, 40796, 154840, 13436, 154842, 32428, 154844, 42065, 154845, 32957, 154846, 25230, 154847, 20304, 154848, 12970, 154849, 14884, 154850, 13086, 154851, 48464, 154853, 28928, 154858, 35383, 154859, 36597, 154860, 7476, 154863, 9689, 154864, 13371, 154865, 33915, 154866, 13720, 154867, 36396, 154868, 20730, 154869, 48465, 154870, 46057, 154871, 20305, 154872, 12482, 154873, 12415, 154874, 35106, 154896, 45940, 154897, 36780, 154898, 47095, 154901, 44065, 154902, 29285, 154913, 24317, 154916, 31056, 154918, 35511, 154919, 21827, 154920, 7367, 154921, 15998, 154922, 21937, 154923, 37276, 154924, 8608, 154925, 30882, 154926, 9248, 154927, 19095, 154929, 20436, 154932, 16261, 154933, 35385, 154938, 11660, 154939, 31252, 154943, 41691, 154959, 13088, 154962, 27612, 154972, 30265, 154973, 25444, 154974, 21009, 154975, 47615, 154976, 16463, 154979, 13738, 154980, 46170, 154982, 33732, 154983, 31581, 154984, 27306, 154986, 30159, 154987, 11822, 154988, 11029, 154991, 33084, 154998, 36598, 155013, 25542, 155014, 26125, 155015, 25944, 155016, 48284, 155020, 26215, 155021, 18633, 155023, 36667, 155024, 37199, 155025, 31247, 155026, 25238, 155027, 8103, 155028, 29467, 155029, 45892, 155031, 24581, 155035, 36411, 155036, 18262, 155042, 25105, 155061, 18965, 155062, 32022, 155063, 41109, 155065, 21434, 155066, 13284, 155067, 35433, 155069, 38136, 155071, 41707, 155072, 41603, 155073, 7888, 155075, 20535, 155076, 28561, 155077, 24596, 155078, 18265, 155079, 30825, 155080, 47184, 155089, 8627, 155092, 44385, 155093, 13285, 155094, 25243, 155095, 24611, 155096, 47954, 155097, 19921, 155098, 21703, 155100, 15000, 155102, 44712, 155112, 25115, 155113, 45266, 155114, 31064, 155115, 20853, 155116, 16627, 155118, 47958, 155121, 15531, 155129, 33336, 155132, 11923, 155139, 18966, 155144, 12585, 155145, 25702, 155146, 43311, 155159, 33043, 155160, 45059, 155162, 12858, 155169, 15701, 155170, 45328, 155171, 33636, 155172, 44732, 155173, 9275, 155175, 13348, 155176, 14486, 155178, 44494, 155180, 33864, 155186, 16138, 155188, 27586, 155189, 37256, 155192, 25045, 155201, 45643, 155202, 29500, 155204, 27261, 155206, 27736, 155207, 14583, 155209, 28152, 155210, 35014, 155211, 42718, 155212, 19963, 155213, 47570, 155219, 7815, 155220, 44529, 155222, 30217, 155226, 18537, 155227, 9544, 155228, 20597, 155232, 35924, 155241, 46973, 155243, 27347, 155244, 22573, 155249, 42154, 155250, 13820, 155251, 32280, 155252, 9375, 155253, 11262, 155254, 31354, 155255, 25484, 155256, 9175, 155258, 22510, 155259, 14915, 155269, 12647, 155273, 13548, 155274, 15961, 155289, 25333, 155290, 38967, 155292, 28602, 155293, 47274, 155294, 47275, 155299, 11021, 155316, 28627, 155317, 19419, 155319, 31990, 155332, 22390, 155335, 39652, 155337, 17668, 155339, 25151, 155341, 48031, 155345, 29221, 155346, 11897, 155351, 9805, 155357, 47227, 155358, 9309, 155364, 11026, 155365, 39134, 155366, 33070, 155367, 39473, 155368, 33304, 155369, 27529, 155371, 14513, 155372, 46699, 155374, 12032, 155380, 39305, 155390, 29160, 155391, 24198, 155392, 48336, 155394, 11975, 155395, 45547, 155397, 24199, 155416, 30624, 155418, 47847, 155419, 12043, 155420, 30316, 155422, 14524, 155423, 35957, 155433, 48054, 155434, 48376, 155435, 47294, 155436, 32716, 155437, 25165, 155438, 35958, 155446, 34415, 155450, 11992, 155451, 48060, 155452, 15149, 155457, 40047, 155464, 14990, 155471, 39687, 155472, 20442, 155474, 14934, 155479, 24582, 155480, 27946, 155487, 43976, 155493, 19325, 155495, 32023, 155500, 28701, 155504, 27319, 155507, 30828, 155510, 17703, 155512, 24819, 155519, 48572, 155522, 25426, 155525, 47450, 155527, 28705, 155530, 19691, 155531, 32630, 155532, 20893, 155533, 15673, 155536, 42988, 155539, 47303, 155541, 38603, 155546, 16084, 155547, 11878, 155549, 27587, 155553, 41315, 155555, 46662, 155556, 39964, 155559, 15215, 155560, 18160, 155564, 12772, 155566, 22113, 155567, 13152, 155577, 34442, 155580, 37739, 155587, 28153, 155588, 12778, 155589, 34343, 155590, 11631, 155591, 34514, 155593, 37499, 155594, 10329, 155595, 14493, 155597, 16344, 155598, 44756, 155601, 16604, 155610, 31429, 155612, 45910, 155613, 12291, 155614, 33755, 155622, 47267, 155623, 39768, 155624, 27739, 155625, 48138, 155626, 18719, 155627, 27266, 155629, 39092, 155630, 46974, 155631, 29299, 155632, 13984, 155636, 11698, 155637, 27973, 155639, 10284, 155641, 43078, 155642, 16246, 155655, 21299, 155667, 45601, 155668, 30091, 155669, 42470, 155670, 20942, 155672, 29721, 155675, 33379, 155676, 47746, 155677, 21476, 155680, 25485, 155681, 44442, 155683, 21674, 155688, 29149, 155704, 26919, 155716, 10376, 155718, 47688, 155719, 28691, 155720, 22827, 155721, 20840, 155722, 18483, 155725, 40401, 155726, 48519, 155727, 41900, 155728, 22166, 155733, 18122, 155734, 47358, 155735, 33818, 155737, 41792, 155739, 40273, 155740, 13252, 155743, 10379, 155762, 20277, 155763, 19838, 155766, 11575, 155767, 17933, 155776, 12207, 155780, 22391, 155781, 40491, 155782, 19045, 155783, 20282, 155784, 47365, 155785, 45735, 155786, 15478, 155787, 10882, 155788, 8286, 155789, 29155, 155793, 19852, 155794, 31044, 155796, 37681, 155797, 29204, 155798, 8549, 155799, 34869, 155808, 21311, 155809, 42492, 155844, 14733, 155847, 24188, 155850, 24478, 155851, 29806, 155858, 35490, 155859, 25509, 155860, 17673, 155861, 19168, 155862, 36000, 155863, 34870, 155864, 47062, 155865, 9210, 155869, 39135, 155873, 30200, 155874, 32401, 155876, 28085, 155901, 43837, 155906, 12319, 155914, 30712, 155915, 13144, 155916, 28826, 155917, 34778, 155919, 33708, 155920, 23355, 155921, 35500, 155923, 13501, 155924, 13268, 155932, 16177, 155951, 47670, 155952, 17049, 155964, 40797, 155965, 32089, 155968, 41351, 155971, 20637, 155972, 46261, 155974, 13087, 155975, 33184, 155976, 8270, 155978, 35640, 155979, 31099, 155983, 40798, 155985, 41352, 155988, 27931, 156021, 35512, 156022, 23467, 156023, 47524, 156024, 47379, 156026, 24546, 156028, 12380, 156029, 21775, 156031, 45209, 156032, 10059, 156033, 26377, 156036, 33319, 156038, 24729, 156040, 48393, 156043, 23565, 156044, 34782, 156045, 31462, 156056, 13503, 156062, 38667, 156063, 27170, 156065, 19904, 156068, 10697, 156070, 28555, 156088, 42263, 156091, 23479, 156094, 26216, 156096, 35523, 156097, 15153, 156100, 24027, 156101, 38034, 156110, 11786, 156116, 24597, 156118, 30064, 156120, 22302, 156121, 21831, 156123, 23485, 156135, 19922, 156138, 27623, 156140, 42376, 156141, 8668, 156145, 11832, 156146, 34969, 156149, 34970, 156152, 17704, 156163, 28323, 156165, 13294, 156168, 10318, 156169, 45170, 156171, 40689, 156172, 34506, 156174, 10021, 156175, 27648, 156176, 24660, 156177, 43351, 156178, 40474, 156179, 37804, 156180, 16416, 156181, 36953, 156182, 35679, 156183, 14723, 156184, 12151, 156185, 28798, 156186, 11890, 156187, 48536, 156188, 20964, 156189, 41145, 156190, 9211, 156191, 21128, 156192, 43500, 156193, 40792, 156195, 44242, 156196, 40613, 156198, 30749, 156199, 8083, 156200, 40525, 156201, 16202, 156204, 48424, 156208, 20830, 156210, 22383, 156213, 40535, 156214, 8096, 156215, 34529, 156216, 44595, 156218, 47320, 156219, 45923, 156226, 47170, 156230, 9806, 156232, 11457, 156233, 25593, 156238, 35412, 156240, 47522, 156249, 8754, 156253, 40458, 156255, 41541, 156258, 25390, 156263, 41543, 156268, 36729, 156281, 12803, 156289, 29764, 156290, 18324, 156291, 9696, 156298, 36495, 156299, 27996, 156300, 21984, 156302, 27997, 156304, 21871, 156305, 25561, 156307, 25439, 156311, 25562, 156312, 18334, 156326, 15217, 156327, 18161, 156330, 14172, 156331, 16149, 156332, 16345, 156337, 16557, 156345, 26283, 156347, 14494, 156348, 26185, 156349, 27109, 156350, 15256, 156351, 25477, 156357, 40130, 156358, 16356, 156360, 39635, 156361, 9176, 156363, 19817, 156371, 32182, 156372, 26003, 156382, 34865, 156385, 27999, 156386, 44597, 156387, 17350, 156393, 45002, 156394, 12453, 156399, 44323, 156400, 20159, 156403, 15769, 156415, 9620, 156416, 33997, 156417, 25574, 156422, 20623, 156425, 35322, 156426, 35323, 156427, 47230, 156434, 25004, 156436, 41103, 156437, 26065, 156439, 19879, 156442, 41679, 156447, 26078, 156449, 27717, 156450, 36397, 156454, 18692, 156457, 43234, 156458, 36004, 156460, 38569, 156464, 19479, 156471, 13641, 156472, 23331, 156474, 22301, 156479, 34165, 156480, 28295, 156481, 30268, 156484, 34555, 156485, 32296, 156492, 32580, 156495, 14852, 156498, 35713, 156499, 37255, 156501, 42028, 156518, 13932, 156519, 11598, 156521, 16408, 156522, 14858, 156525, 32775, 156529, 15795, 156530, 39748, 156532, 39749, 156533, 18046, 156535, 36165, 156536, 33578, 156537, 42043, 156538, 48139, 156540, 44823, 156548, 35234, 156551, 11372, 156552, 39753, 156554, 7821, 156556, 26682, 156558, 15374, 156559, 23432, 156560, 24299, 156562, 20943, 156563, 43956, 156568, 44598, 156570, 10870, 156572, 11373, 156573, 43138, 156574, 33510, 156578, 19617, 156579, 41586, 156582, 38643, 156583, 11519, 156584, 26772, 156589, 15298, 156590, 19985, 156591, 16318, 156592, 16376, 156593, 20037, 156597, 39474, 156599, 21258, 156600, 48148, 156601, 25781, 156604, 16320, 156608, 32546, 156610, 33520, 156613, 22210, 156614, 36911, 156615, 44128, 156628, 20189, 156629, 13636, 156631, 18254, 156635, 33228, 156636, 44693, 156642, 26624, 156644, 46706, 156645, 41600, 156646, 15820, 156648, 18532, 156654, 32265, 156657, 42110, 156659, 48422, 156663, 39849, 156664, 42990, 156665, 41743, 156666, 17891, 156667, 44243, 156671, 10834, 156673, 10714, 156676, 17414, 156677, 33267, 156678, 29245, 156679, 35716, 156680, 14822, 156681, 10655, 156684, 17900, 156685, 41229, 156694, 46829, 156699, 32045, 156704, 38758, 156705, 15235, 156707, 34521, 156708, 17160, 156710, 30243, 156712, 11675, 156720, 9881, 156723, 17833, 156728, 29469, 156729, 33891, 156730, 39889, 156733, 41014, 156734, 11677, 156735, 36771, 156736, 30249, 156743, 35746, 156744, 9759, 156747, 48328, 156748, 19273, 156749, 40942, 156750, 41901, 156751, 9883, 156753, 37374, 156760, 39465, 156761, 41027, 156762, 18025, 156763, 18629, 156764, 15976, 156765, 10991, 156766, 8551, 156767, 17841, 156768, 17842, 156769, 10743, 156771, 9807, 156783, 45736, 156785, 45810, 156786, 35764, 156789, 30255, 156790, 35765, 156792, 44055, 156793, 15309, 156794, 11606, 156795, 12208, 156796, 35698, 156798, 25510, 156801, 11607, 156803, 17853, 156805, 17373, 156806, 23421, 156808, 34154, 156813, 36912, 156814, 19089, 156815, 17683, 156816, 30025, 156817, 44673, 156828, 39390, 156829, 17289, 156831, 30260, 156838, 23480, 156839, 19326, 156848, 35877, 156852, 23846, 156854, 34631, 156858, 12635, 156859, 13020, 156872, 40627, 156875, 37782, 156877, 10313, 156878, 28212, 156880, 22079, 156883, 14328, 156884, 14332, 156885, 29075, 156886, 29090, 156893, 47669, 156898, 29167, 156900, 25018, 156901, 23985, 156903, 7648, 156908, 10496, 156911, 16776, 156912, 32225, 156913, 16027, 156915, 16203, 156916, 33749, 156921, 23525, 156922, 46549, 156923, 43139, 156924, 16959, 156925, 37815, 156926, 26345, 156930, 34222, 156931, 43609, 156932, 34062, 156933, 37079, 156934, 8552, 156936, 45529, 156937, 47228, 156939, 32759, 156940, 30602, 156941, 15493, 156942, 9687, 156947, 24200, 156948, 26655, 156950, 24713, 156951, 8800, 156955, 11407, 156956, 43235, 156960, 29306, 156965, 43254, 156966, 23033, 156969, 8817, 156971, 10913, 156972, 32117, 156973, 27957, 156974, 46187, 156975, 33410, 156976, 33411, 156983, 42152, 156984, 16140, 156985, 28216, 156988, 40228, 156991, 36604, 156998, 42397, 157001, 33365, 157007, 33243, 157010, 12983, 157011, 40897, 157017, 32046, 157024, 17834, 157025, 34078, 157026, 36823, 157040, 14058, 157045, 24906, 157047, 17972, 157048, 24300, 157050, 39773, 157053, 33988, 157056, 15123, 157064, 41794, 157065, 37759, 157066, 30445, 157067, 13992, 157069, 18484, 157070, 30953, 157072, 40274, 157085, 11705, 157086, 34033, 157090, 14397, 157092, 40492, 157094, 37226, 157095, 41906, 157097, 25071, 157100, 27279, 157112, 48247, 157114, 48032, 157116, 18227, 157117, 43702, 157118, 24705, 157119, 12162, 157120, 36548, 157121, 36610, 157131, 32700, 157133, 7343, 157136, 7353, 157137, 46255, 157138, 17014, 157139, 26066, 157140, 46109, 157141, 27289, 157142, 24939, 157143, 46256, 157147, 32141, 157148, 11778, 157151, 36745, 157153, 35960, 157154, 45941, 157155, 18246, 157157, 30026, 157159, 12165, 157160, 32717, 157166, 28400, 157171, 28300, 157172, 12514, 157173, 20734, 157179, 21938, 157180, 14373, 157194, 24599, 157196, 17018, 157197, 37539, 157202, 28754, 157204, 21105, 157225, 29829, 157226, 10817, 157234, 29830, 157235, 42915, 157236, 13575, 157237, 37486, 157238, 41256, 157240, 30725, 157241, 33566, 157244, 40725, 157247, 17560, 157248, 29361, 157250, 29496, 157252, 40588, 157254, 10770, 157255, 35882, 157256, 48437, 157257, 48390, 157258, 30733, 157259, 13576, 157273, 34798, 157276, 28116, 157277, 38705, 157287, 10263, 157288, 42964, 157291, 46512, 157294, 21715, 157295, 12281, 157297, 33122, 157300, 47555, 157301, 37666, 157304, 33123, 157305, 7874, 157306, 20080, 157307, 26606, 157320, 37427, 157322, 30743, 157327, 47718, 157328, 37349, 157331, 30115, 157341, 29582, 157342, 23073, 157343, 42709, 157345, 40229, 157346, 44936, 157347, 17769, 157349, 17997, 157350, 46515, 157351, 11532, 157352, 34334, 157353, 37491, 157355, 40108, 157368, 16106, 157381, 14161, 157391, 22925, 157392, 28147, 157395, 21646, 157396, 41128, 157397, 31971, 157398, 10331, 157399, 26147, 157400, 17625, 157401, 34075, 157402, 28291, 157404, 17626, 157405, 9786, 157406, 41564, 157407, 16090, 157408, 28778, 157410, 17032, 157411, 41639, 157412, 16633, 157415, 46945, 157416, 23893, 157423, 13666, 157424, 30760, 157425, 31972, 157426, 22124, 157441, 14964, 157443, 40898, 157444, 37217, 157446, 17247, 157447, 22901, 157450, 33887, 157451, 46975, 157453, 29428, 157454, 46535, 157455, 24426, 157456, 37626, 157458, 14554, 157459, 40445, 157462, 41529, 157467, 21664, 157468, 33980, 157485, 26786, 157487, 37282, 157488, 47890, 157489, 38780, 157490, 43535, 157491, 21297, 157492, 37261, 157495, 16110, 157496, 19805, 157519, 47666, 157522, 36698, 157524, 46673, 157526, 19579, 157530, 43687, 157531, 38076, 157533, 18676, 157534, 36772, 157535, 9935, 157538, 23197, 157539, 30874, 157540, 7879, 157541, 9757, 157542, 37415, 157543, 28280, 157544, 20835, 157546, 41575, 157548, 37063, 157550, 38233, 157552, 11743, 157555, 40928, 157556, 43539, 157559, 8297, 157564, 26115, 157569, 45286, 157570, 12153, 157574, 28799, 157575, 21814, 157576, 18015, 157580, 16114, 157589, 18016, 157590, 22448, 157591, 16158, 157593, 18948, 157594, 40275, 157597, 39114, 157598, 17253, 157599, 27276, 157601, 38290, 157602, 19184, 157603, 33218, 157604, 40449, 157605, 46233, 157606, 19274, 157608, 16163, 157611, 33111, 157612, 21118, 157613, 37466, 157617, 13798, 157618, 10677, 157629, 38823, 157634, 27277, 157635, 45392, 157636, 33191, 157651, 37266, 157652, 46996, 157653, 38235, 157656, 43439, 157657, 37284, 157659, 10942, 157660, 45530, 157662, 39910, 157663, 27799, 157664, 11898, 157667, 8688, 157668, 40663, 157671, 42767, 157678, 18820, 157680, 45661, 157681, 35583, 157682, 19157, 157683, 21910, 157697, 11899, 157700, 19447, 157701, 41347, 157702, 35555, 157703, 9722, 157705, 43203, 157710, 8793, 157714, 22198, 157715, 24479, 157718, 29485, 157723, 45232, 157724, 42502, 157726, 8570, 157727, 46305, 157728, 46306, 157730, 21609, 157731, 46248, 157734, 34676, 157738, 38867, 157751, 40844, 157752, 28208, 157753, 39475, 157754, 16968, 157755, 38098, 157758, 19642, 157759, 33078, 157762, 13435, 157763, 29122, 157764, 13715, 157765, 46559, 157766, 22918, 157769, 27753, 157781, 7989, 157782, 19072, 157785, 48195, 157800, 33172, 157802, 36268, 157803, 42787, 157805, 44655, 157809, 42361, 157810, 28929, 157812, 11087, 157813, 19193, 157815, 13839, 157817, 30816, 157818, 43765, 157819, 9061, 157820, 28915, 157821, 18785, 157830, 43766, 157834, 7990, 157838, 16744, 157839, 24020, 157840, 48491, 157849, 10060, 157859, 20311, 157863, 27171, 157865, 40053, 157871, 40459, 157873, 24234, 157882, 31357, 157887, 38036, 157888, 28184, 157890, 29397, 157892, 23966, 157895, 26394, 157899, 26248, 157901, 16074, 157903, 26249, 157906, 32118, 157910, 26401, 157912, 28307, 157915, 26402, 157916, 45057, 157922, 34806, 157925, 27383, 157926, 37721, 157927, 9669, 157928, 20131, 157929, 37750, 157935, 19986, 157940, 18614, 157944, 24823, 157945, 48119, 157946, 7758, 157947, 34438, 157950, 37599, 157954, 34507, 157959, 16762, 157960, 38733, 157962, 32818, 157963, 42334, 157966, 15796, 157973, 45003, 157976, 43829, 157977, 37507, 157978, 9199, 157983, 40455, 157986, 29890, 157987, 9224, 157990, 17171, 157991, 45836, 157992, 38397, 157994, 42535, 157995, 8617, 157996, 17175, 158008, 10835, 158011, 46946, 158013, 28491, 158017, 38478, 158018, 7293, 158024, 7291, 158025, 44459, 158026, 10890, 158029, 21422, 158030, 47082, 158031, 47096, 158032, 47097, 158033, 21707, 158038, 17215, 158042, 30082, 158045, 42291, 158051, 44015, 158052, 30086, 158054, 27879, 158060, 48560, 158061, 30244, 158063, 41193, 158064, 23097, 158065, 43081, 158066, 30245, 158075, 47791, 158083, 28506, 158084, 31934, 158085, 11849, 158092, 42310, 158097, 14880, 158101, 39262, 158103, 20494, 158104, 9764, 158107, 40041, 158108, 9765, 158114, 10615, 158115, 12045, 158119, 31779, 158121, 44685, 158123, 44364, 158127, 38257, 158129, 9771, 158130, 44473, 158137, 48524, 158138, 12628, 158141, 22057, 158142, 12629, 158143, 43660, 158145, 15038, 158149, 38306, 158152, 21204, 158153, 30750, 158155, 31596, 158157, 23372, 158159, 35889, 158160, 39342, 158162, 36498, 158164, 23376, 158166, 36608, 158168, 18183, 158169, 47411, 158170, 45853, 158171, 35728, 158173, 36503, 158174, 35736, 158175, 35747, 158176, 18431, 158177, 41795, 158178, 36716, 158180, 36717, 158181, 35748, 158188, 18525, 158190, 20038, 158191, 30807, 158193, 35770, 158196, 35907, 158197, 18499, 158200, 47706, 158201, 18412, 158204, 23643, 158214, 48485, 158215, 42936, 158216, 15185, 158217, 38596, 158219, 15186, 158221, 13315, 158222, 35714, 158230, 10281, 158233, 32644, 158234, 32275, 158236, 15893, 158241, 15237, 158242, 12924, 158243, 13113, 158244, 43897, 158246, 20081, 158249, 25629, 158252, 43898, 158253, 29775, 158255, 19217, 158256, 31740, 158258, 14497, 158259, 38479, 158260, 36872, 158261, 17424, 158264, 35896, 158270, 17786, 158276, 36626, 158280, 47270, 158283, 7795, 158284, 40276, 158285, 12599, 158287, 21119, 158293, 18123, 158294, 8098, 158296, 13363, 158300, 29120, 158301, 38091, 158302, 44326, 158304, 40493, 158305, 15299, 158306, 39654, 158307, 30793, 158308, 37021, 158311, 19618, 158313, 43789, 158315, 12744, 158316, 37821, 158317, 38847, 158319, 29279, 158321, 34043, 158322, 44120, 158324, 7279, 158325, 20412, 158327, 16258, 158328, 33020, 158332, 16228, 158335, 33435, 158336, 36096, 158343, 26067, 158344, 7556, 158346, 30814, 158347, 40669, 158349, 12250, 158353, 14436, 158354, 38115, 158356, 13919, 158357, 24947, 158358, 14467, 158359, 18786, 158360, 22211, 158361, 35779, 158362, 48499, 158363, 32508, 158364, 9481, 158365, 36290, 158368, 18500, 158369, 40799, 158371, 45881, 158375, 15691, 158378, 29651, 158379, 9484, 158380, 40076, 158381, 12218, 158385, 19905, 158390, 24320, 158393, 29350, 158397, 25684, 158398, 24600, 158399, 38990, 158400, 36301, 158403, 25391, 158408, 24328, 158409, 32436, 158410, 25427, 158414, 16951, 158420, 30178, 158421, 27880, 158422, 29270, 158425, 7720, 158433, 30583, 158436, 41667, 158442, 37508, 158443, 7501, 158445, 27776, 158446, 27713, 158447, 41402, 158448, 27172, 158451, 16573, 158454, 20578, 158459, 15575, 158465, 9426, 158466, 38588, 158467, 46188, 158468, 32552, 158469, 22831, 158484, 46119, 158485, 47152, 158486, 31850, 158487, 16988, 158488, 16135, 158489, 30302, 158490, 18319, 158491, 27485, 158494, 36493, 158499, 37734, 158520, 47454, 158521, 12181, 158522, 40614, 158523, 28101, 158526, 21956, 158529, 28651, 158536, 18325, 158537, 33358, 158556, 46652, 158559, 35670, 158561, 34900, 158565, 42991, 158573, 31724, 158574, 46915, 158575, 26145, 158576, 32819, 158578, 30519, 158579, 44418, 158580, 47252, 158581, 42033, 158582, 39528, 158583, 27969, 158584, 11038, 158585, 18857, 158586, 21512, 158587, 21582, 158588, 29990, 158593, 20762, 158595, 16565, 158597, 27870, 158608, 38734, 158609, 30328, 158639, 19778, 158646, 38227, 158647, 8145, 158648, 42847, 158649, 15239, 158650, 34907, 158651, 21965, 158652, 19795, 158654, 28586, 158656, 8226, 158661, 40899, 158664, 31566, 158665, 9159, 158668, 37720, 158669, 46299, 158671, 38360, 158672, 33720, 158673, 45473, 158674, 42090, 158677, 35117, 158678, 28779, 158683, 8460, 158691, 11871, 158692, 31165, 158698, 40020, 158699, 46667, 158700, 33772, 158703, 46947, 158704, 29589, 158735, 13158, 158742, 38369, 158744, 46830, 158745, 8461, 158747, 14859, 158757, 7901, 158762, 31900, 158763, 28538, 158764, 9166, 158765, 13903, 158767, 34261, 158768, 40753, 158769, 10148, 158770, 40754, 158771, 42402, 158772, 27267, 158776, 40395, 158777, 47891, 158778, 15444, 158781, 29840, 158782, 41235, 158784, 44555, 158785, 39447, 158786, 44556, 158787, 44282, 158789, 21665, 158790, 35674, 158791, 22803, 158794, 46536, 158795, 27110, 158796, 15763, 158802, 28066, 158803, 39010, 158804, 8480, 158806, 15445, 158812, 40027, 158816, 21521, 158819, 16279, 158832, 10726, 158833, 21522, 158834, 21523, 158837, 33376, 158839, 14679, 158891, 15257, 158895, 37675, 158896, 40755, 158897, 9093, 158913, 17524, 158915, 40131, 158916, 29931, 158917, 44444, 158919, 36536, 158920, 29791, 158922, 34263, 158923, 22994, 158924, 19405, 158927, 45651, 158928, 28228, 158929, 27998, 158931, 15270, 158932, 13706, 158935, 34058, 158936, 9794, 158938, 10734, 158939, 16855, 158940, 27661, 158941, 36035, 158942, 7792, 158943, 31175, 158945, 47897, 158946, 38077, 158947, 41327, 158949, 27557, 158950, 45287, 158951, 44037, 158953, 44169, 158955, 33501, 158956, 17649, 158957, 26153, 158958, 46745, 158962, 21408, 158963, 46360, 158966, 27117, 158967, 44038, 158969, 38373, 158970, 7696, 158973, 22033, 158974, 32829, 158975, 11846, 158976, 46686, 158985, 18192, 158986, 41996, 158988, 22334, 158989, 33778, 158990, 22862, 158993, 31032, 158996, 27118, 159002, 36647, 159056, 28800, 159071, 10735, 159073, 40600, 159075, 19185, 159078, 12822, 159079, 23745, 159081, 45421, 159082, 9680, 159083, 35623, 159084, 48377, 159085, 35406, 159087, 39252, 159089, 40277, 159092, 20957, 159093, 44044, 159095, 16312, 159096, 16096, 159100, 22338, 159101, 18819, 159102, 19603, 159103, 30273, 159104, 38434, 159106, 43141, 159109, 28207, 159111, 32752, 159112, 28259, 159114, 30142, 159115, 33587, 159116, 13122, 159117, 19604, 159118, 18403, 159119, 13823, 159120, 22822, 159121, 35750, 159123, 17974, 159125, 34534, 159129, 17799, 159130, 14900, 159154, 22866, 159193, 28638, 159197, 11168, 159206, 31251, 159218, 39115, 159219, 18197, 159220, 35123, 159221, 38378, 159223, 17166, 159224, 32832, 159225, 27122, 159227, 33144, 159229, 38482, 159231, 44050, 159233, 35903, 159234, 33904, 159238, 30704, 159240, 17045, 159241, 30877, 159242, 39372, 159247, 35409, 159248, 26034, 159251, 30453, 159252, 13124, 159255, 30595, 159256, 20033, 159257, 44051, 159258, 38972, 159259, 10250, 159265, 27415, 159266, 25827, 159267, 8385, 159274, 29524, 159278, 46375, 159279, 33905, 159280, 10042, 159281, 15479, 159286, 32000, 159287, 34939, 159290, 48415, 159339, 46158, 159357, 29800, 159360, 11850, 159366, 15812, 159367, 13617, 159369, 15140, 159370, 16613, 159371, 33240, 159372, 35197, 159373, 20287, 159374, 30284, 159376, 9507, 159377, 8303, 159378, 28001, 159379, 46106, 159380, 39982, 159382, 21761, 159383, 34541, 159384, 20288, 159385, 24193, 159387, 11375, 159388, 23886, 159390, 17734, 159391, 18228, 159392, 16367, 159393, 46055, 159394, 20975, 159395, 39824, 159397, 13586, 159398, 17260, 159399, 20039, 159400, 39825, 159401, 19631, 159402, 34593, 159403, 23789, 159404, 19448, 159405, 33517, 159408, 36186, 159409, 48039, 159410, 34739, 159412, 19632, 159413, 11280, 159414, 19864, 159415, 33909, 159416, 25226, 159417, 24933, 159419, 33147, 159421, 7439, 159422, 32929, 159424, 36382, 159425, 12465, 159427, 18596, 159429, 33071, 159494, 32949, 159495, 38438, 159496, 21922, 159497, 18597, 159498, 24091, 159499, 26056, 159502, 35905, 159503, 45612, 159507, 31049, 159511, 38868, 159521, 11679, 159522, 33783, 159527, 33072, 159530, 26935, 159531, 32082, 159533, 9225, 159534, 15689, 159536, 31452, 159537, 22050, 159538, 12508, 159539, 10164, 159540, 42061, 159541, 17680, 159543, 19461, 159545, 9031, 159547, 26993, 159551, 13874, 159552, 7584, 159553, 21316, 159554, 26068, 159555, 27532, 159556, 13083, 159557, 17738, 159559, 20178, 159562, 18442, 159563, 16259, 159566, 26069, 159567, 15320, 159568, 18958, 159570, 45588, 159572, 21259, 159573, 34948, 159574, 32386, 159580, 12475, 159582, 37687, 159583, 8692, 159588, 20042, 159595, 12412, 159596, 21531, 159597, 39476, 159598, 9226, 159631, 39268, 159633, 8801, 159637, 30258, 159640, 33241, 159641, 8187, 159642, 33444, 159643, 38014, 159645, 9579, 159646, 26070, 159657, 12476, 159659, 16460, 159660, 45233, 159661, 7924, 159662, 15725, 159665, 10231, 159666, 19887, 159667, 25009, 159669, 31780, 159670, 20430, 159671, 26079, 159672, 13736, 159673, 35372, 159674, 42256, 159675, 43502, 159677, 35780, 159678, 42257, 159679, 21320, 159680, 11183, 159681, 15325, 159682, 44868, 159683, 33731, 159685, 9062, 159686, 12581, 159687, 34412, 159690, 25867, 159691, 31456, 159692, 26375, 159693, 30261, 159695, 27159, 159696, 21002, 159699, 19472, 159702, 26080, 159748, 10212, 159749, 27610, 159750, 27160, 159751, 20307, 159754, 9452, 159756, 35347, 159764, 17745, 159765, 33082, 159767, 48055, 159768, 22788, 159769, 16102, 159770, 34951, 159776, 36404, 159777, 45992, 159778, 40340, 159779, 34791, 159780, 10808, 159781, 43971, 159782, 25942, 159783, 27238, 159784, 25099, 159785, 35045, 159788, 38903, 159789, 14526, 159790, 15150, 159791, 33965, 159792, 36405, 159793, 9886, 159794, 45029, 159796, 15151, 159797, 20437, 159798, 12974, 159802, 40174, 159803, 12382, 159807, 46772, 159811, 40973, 159816, 28840, 159817, 14604, 159818, 27166, 159819, 27718, 159870, 25792, 159871, 13642, 159873, 45996, 159874, 20444, 159875, 17383, 159876, 12486, 159877, 33341, 159878, 20445, 159879, 35969, 159880, 20742, 159881, 30206, 159883, 30160, 159885, 47707, 159887, 24957, 159888, 48149, 159890, 47947, 159892, 18377, 159897, 39165, 159899, 27173, 159900, 21940, 159901, 27616, 159902, 39500, 159904, 23282, 159905, 27174, 159906, 20203, 159910, 29026, 159912, 12975, 159913, 33230, 159951, 11290, 159952, 46778, 159953, 31061, 159954, 26170, 159956, 47949, 159960, 48570, 159961, 17271, 159962, 35441, 159963, 16324, 159965, 11120, 159966, 19910, 159967, 43281, 159968, 44377, 159976, 29027, 159977, 28559, 159978, 33023, 159982, 25178, 159985, 28920, 160013, 31345, 160014, 42270, 160015, 15528, 160016, 34755, 160017, 23285, 160018, 32110, 160019, 13439, 160020, 34609, 160026, 24250, 160027, 21789, 160028, 32961, 160032, 45719, 160036, 39948, 160056, 27083, 160057, 34233, 160058, 13010, 160059, 24612, 160060, 12760, 160061, 45378, 160063, 26395, 160064, 9519, 160067, 7525, 160070, 20333, 160072, 13184, 160075, 43734, 160086, 43302, 160087, 12537, 160088, 29030, 160090, 45045, 160110, 24327, 160111, 24267, 160112, 18389, 160114, 44181, 160122, 28321, 160130, 10483, 160137, 15005, 160138, 8881, 160143, 26694, 160144, 15734, 160145, 19333, 160147, 11867, 160149, 44130, 160152, 44182, 160156, 40734, 160161, 40888, 160162, 18274, 160163, 25856, 160165, 39232, 160166, 43045, 160174, 18278, 160175, 18338, 160176, 48101, 160183, 16153, 160184, 37162, 160185, 38426, 160186, 25320, 160187, 16357, 160188, 47166, 160196, 25861, 160200, 48378, 160204, 36886, 160205, 39196, 160206, 17662, 160211, 45011, 160217, 28261, 160218, 9200, 160219, 18130, 160220, 30808, 160221, 34568, 160222, 31188, 160223, 47286, 160224, 42354, 160225, 16368, 160229, 7831, 160230, 22477, 160238, 17675, 160239, 19866, 160240, 18229, 160241, 41680, 160246, 11488, 160247, 13339, 160248, 31819, 160249, 18031, 160252, 17546, 160255, 48380, 160257, 39490, 160260, 39311, 160261, 39161, 160264, 33320, 160268, 16003, 160269, 39166, 160273, 16005, 160276, 26171, 160278, 16006, 160279, 22731, 160281, 34479, 160282, 47624, 160284, 36306, 160285, 41499, 160286, 28571, 160294, 26442, 160295, 35389, 160298, 10012, 160301, 38604, 160303, 44194, 160313, 45443, 160315, 43020, 160316, 38736, 160317, 17902, 160318, 32204, 160319, 37740, 160320, 10782, 160321, 39081, 160322, 36563, 160323, 45138, 160325, 42582, 160326, 19548, 160327, 18858, 160328, 15068, 160330, 15360, 160333, 19549, 160334, 41062, 160337, 35865, 160339, 13693, 160343, 44812, 160347, 12912, 160350, 47506, 160351, 35814, 160353, 32746, 160354, 41189, 160355, 44530, 160356, 14585, 160357, 8107, 160359, 32135, 160361, 9367, 160362, 19965, 160363, 45687, 160365, 29066, 160366, 33774, 160370, 24415, 160388, 16846, 160389, 16577, 160391, 12294, 160399, 15566, 160402, 11700, 160404, 41771, 160405, 35065, 160406, 34355, 160408, 22946, 160409, 46837, 160410, 36873, 160411, 32048, 160412, 14193, 160414, 40532, 160415, 32828, 160416, 44284, 160419, 43083, 160420, 43084, 160421, 40915, 160422, 15079, 160423, 15953, 160428, 17637, 160429, 43352, 160431, 17970, 160433, 13986, 160445, 40533, 160446, 14498, 160457, 30433, 160458, 33381, 160460, 13707, 160461, 12943, 160462, 24150, 160463, 43118, 160464, 38963, 160465, 16095, 160466, 36877, 160467, 22580, 160468, 17973, 160469, 23349, 160470, 28801, 160471, 10736, 160472, 36361, 160474, 36878, 160480, 24151, 160481, 28171, 160497, 45859, 160498, 8108, 160513, 36650, 160515, 45228, 160516, 14218, 160517, 34468, 160518, 22809, 160519, 29625, 160520, 15466, 160521, 26022, 160522, 40278, 160523, 40279, 160524, 40659, 160525, 26023, 160526, 36584, 160527, 35751, 160528, 11707, 160529, 31993, 160531, 15467, 160532, 46691, 160534, 40280, 160535, 48290, 160536, 14771, 160537, 27668, 160538, 40485, 160541, 36887, 160542, 30563, 160544, 29964, 160546, 35472, 160547, 14367, 160551, 18285, 160571, 35071, 160573, 8864, 160574, 13323, 160575, 7857, 160576, 34137, 160577, 40281, 160578, 39979, 160579, 14727, 160594, 11363, 160595, 34720, 160596, 42166, 160597, 22182, 160598, 34063, 160600, 43961, 160601, 14600, 160604, 23203, 160605, 12962, 160607, 26842, 160608, 20966, 160610, 41669, 160613, 37823, 160616, 33182, 160617, 20967, 160618, 44329, 160619, 38093, 160620, 14233, 160621, 32239, 160622, 21484, 160623, 15026, 160624, 25642, 160625, 13259, 160626, 29937, 160628, 24801, 160629, 18210, 160630, 26197, 160639, 13074, 160643, 12029, 160644, 27981, 160661, 37722, 160662, 21972, 160663, 22638, 160664, 41670, 160665, 20714, 160673, 16172, 160675, 32703, 160676, 35541, 160677, 33605, 160680, 10748, 160682, 30605, 160683, 35633, 160685, 42503, 160686, 45451, 160687, 32304, 160688, 45933, 160689, 7674, 160690, 48332, 160691, 35634, 160692, 46249, 160693, 39137, 160695, 11209, 160696, 20724, 160697, 48459, 160698, 15914, 160699, 38648, 160702, 26297, 160703, 19634, 160706, 40151, 160707, 40152, 160710, 13523, 160715, 31815, 160721, 30150, 160723, 25512, 160741, 20976, 160743, 19064, 160747, 33441, 160760, 46767, 160761, 7354, 160762, 40967, 160763, 8585, 160765, 42388, 160766, 28617, 160767, 47477, 160769, 35339, 160771, 40162, 160772, 44656, 160773, 32008, 160776, 48337, 160777, 46700, 160778, 46034, 160779, 26299, 160780, 38015, 160781, 10949, 160782, 27427, 160784, 19462, 160786, 35340, 160787, 42429, 160788, 38979, 160789, 37139, 160790, 24716, 160791, 41080, 160793, 38652, 160799, 26847, 160812, 17946, 160815, 26300, 160816, 13629, 160817, 11819, 160818, 9955, 160819, 26072, 160820, 35341, 160832, 26301, 160838, 47176, 160839, 24212, 160840, 14789, 160842, 21364, 160843, 23276, 160844, 43238, 160845, 18446, 160846, 12046, 160848, 44674, 160849, 8290, 160850, 37243, 160851, 34603, 160852, 12325, 160853, 38443, 160854, 11715, 160855, 28941, 160856, 12582, 160857, 48344, 160858, 17268, 160860, 29814, 160861, 11379, 160864, 13721, 160865, 29262, 160868, 47433, 160870, 40172, 160871, 46262, 160872, 31457, 160873, 41038, 160875, 33257, 160896, 8600, 160898, 15512, 160904, 24523, 160910, 14108, 160912, 42391, 160913, 34606, 160915, 33321, 160917, 30471, 160918, 17101, 160919, 33322, 160921, 15517, 160922, 26848, 160924, 23954, 160925, 45884, 160936, 9887, 160941, 38119, 160957, 23955, 160959, 45591, 160960, 43628, 160961, 7368, 160962, 40078, 160964, 8610, 160971, 9978, 160974, 29818, 160975, 11823, 160976, 25102, 160977, 30644, 160979, 19907, 160980, 21329, 160981, 13421, 160982, 14710, 160983, 42804, 160984, 37146, 161000, 27221, 161001, 9515, 161002, 41469, 161010, 42109, 161012, 36786, 161016, 46779, 161018, 40352, 161019, 26217, 161021, 24584, 161023, 26852, 161026, 39280, 161029, 35210, 161046, 35230, 161047, 41251, 161053, 24602, 161054, 44879, 161057, 45953, 161059, 35804, 161060, 41086, 161061, 38137, 161062, 42544, 161063, 29419, 161064, 26853, 161065, 36413, 161066, 30065, 161068, 13724, 161069, 31930, 161070, 42881, 161075, 37397, 161076, 9889, 161079, 21269, 161084, 14118, 161091, 9991, 161092, 43655, 161093, 25392, 161095, 39573, 161097, 30479, 161099, 45043, 161100, 26304, 161101, 43735, 161102, 32114, 161106, 14736, 161107, 48069, 161113, 31637, 161117, 28924, 161118, 38146, 161119, 34761, 161121, 15532, 161124, 27955, 161125, 27956, 161126, 37401, 161127, 9891, 161128, 45417, 161134, 24263, 161135, 24268, 161137, 39284, 161138, 21999, 161140, 28268, 161141, 27442, 161144, 18802, 161146, 34788, 161148, 40850, 161151, 14737, 161153, 40364, 161158, 35808, 161159, 43926, 161161, 45955, 161169, 31232, 161170, 28308, 161172, 25248, 161176, 26264, 161177, 39581, 161178, 15339, 161180, 25429, 161184, 33235, 161186, 19116, 161192, 36753, 161194, 31644, 161196, 18713, 161198, 7455, 161205, 26683, 161207, 28598, 161211, 17043, 161212, 29219, 161215, 39816, 161217, 21124, 161222, 46556, 161224, 28097, 161227, 33173, 161228, 18370, 161230, 48345, 161231, 18960, 161234, 19473, 161238, 42538, 161254, 40526, 161257, 23436, 161258, 44531, 161259, 22145, 161265, 34650, 161266, 46540, 161268, 43912, 161270, 15906, 161272, 20393, 161273, 40452, 161276, 18891, 161279, 34724, 161282, 10953, 161283, 17430, 161288, 24969, 161293, 20469, 161295, 16136, 161297, 47863, 161303, 30678, 161308, 30911, 161310, 13513, 161311, 30174, 161314, 18326, 161317, 28964, 161319, 30745, 161320, 13104, 161321, 13105, 161323, 24374, 161326, 40592, 161341, 28104, 161343, 46516, 161344, 23437, 161345, 46917, 161347, 14122, 161348, 9083, 161349, 30176, 161350, 40738, 161351, 43935, 161352, 11629, 161353, 24399, 161356, 29451, 161359, 40702, 161371, 30388, 161373, 10303, 161374, 30761, 161377, 43046, 161379, 36336, 161380, 13978, 161381, 25630, 161383, 20370, 161389, 45969, 161390, 44908, 161398, 44260, 161400, 16058, 161402, 18059, 161406, 30691, 161408, 28067, 161409, 18667, 161410, 25740, 161411, 39095, 161412, 14088, 161413, 23765, 161414, 14763, 161415, 37627, 161417, 12057, 161419, 29615, 161423, 12133, 161424, 38262, 161441, 15832, 161445, 12018, 161448, 30778, 161449, 24152, 161450, 31435, 161451, 31125, 161452, 22806, 161453, 8280, 161455, 34463, 161463, 37813, 161476, 33503, 161487, 48023, 161490, 36457, 161491, 30954, 161492, 13612, 161495, 37072, 161498, 37817, 161502, 18199, 161503, 40486, 161505, 33511, 161506, 46851, 161511, 10798, 161528, 47366, 161529, 38271, 161530, 10744, 161531, 35631, 161532, 40291, 161534, 22719, 161537, 33461, 161538, 34145, 161539, 34469, 161541, 21078, 161545, 15843, 161546, 26161, 161556, 40292, 161562, 46852, 161566, 26650, 161568, 34722, 161569, 22723, 161571, 13142, 161572, 42612, 161574, 35324, 161575, 11394, 161585, 12034, 161586, 37438, 161589, 40306, 161597, 41076, 161602, 17739, 161603, 22204, 161606, 36475, 161607, 14785, 161609, 46857, 161610, 34404, 161611, 37190, 161614, 10950, 161616, 36476, 161617, 45989, 161618, 17806, 161620, 32084, 161621, 37895, 161623, 13875, 161624, 8068, 161628, 24940, 161636, 34949, 161642, 8843, 161643, 40316, 161644, 8902, 161646, 11834, 161650, 21933, 161651, 17684, 161655, 23278, 161656, 43845, 161664, 34686, 161677, 28841, 161679, 44365, 161680, 47940, 161681, 27168, 161682, 18255, 161685, 25100, 161693, 20850, 161694, 40608, 161699, 41824, 161705, 21012, 161706, 23475, 161707, 34692, 161708, 21013, 161709, 23960, 161712, 48351, 161714, 34419, 161720, 37916, 161721, 13593, 161722, 35356, 161731, 40184, 161732, 32479, 161740, 26495, 161745, 30997, 161752, 28322, 161753, 25423, 161756, 19932, 161760, 27770, 161763, 16391, 161768, 41063, 161772, 40743, 161777, 9191, 161788, 37828, 161794, 22923, 161798, 37598, 161800, 9833, 161802, 26893, 161803, 22691, 161806, 11696, 161810, 39620, 161811, 27882, 161818, 19128, 161819, 10083, 161820, 34124, 161821, 46415, 161822, 14194, 161823, 27269, 161825, 34125, 161826, 31982, 161827, 34523, 161829, 11601, 161830, 41772, 161833, 18115, 161834, 30435, 161835, 46998, 161836, 18722, 161844, 46842, 161846, 44110, 161852, 15870, 161853, 42306, 161854, 30274, 161863, 42756, 161864, 10641, 161865, 19840, 161867, 7296, 161869, 13469, 161871, 35478, 161873, 21605, 161880, 30795, 161881, 24696, 161882, 41100, 161884, 24978, 161889, 45198, 161890, 41102, 161891, 11840, 161892, 29918, 161894, 23204, 161896, 36383, 161897, 18630, 161898, 12373, 161899, 16912, 161900, 10387, 161902, 33668, 161903, 19867, 161908, 24805, 161909, 22450, 161910, 34088, 161912, 13502, 161913, 44064, 161914, 30613, 161916, 40004, 161922, 43239, 161923, 25785, 161926, 11397, 161931, 23888, 161932, 15817, 161936, 45618, 161938, 37912, 161942, 20204, 161947, 43646, 161948, 14539, 161949, 24603, 161950, 30986, 161954, 42378, 161958, 23171, 161959, 37923, 161961, 32376, 161964, 40006, 161965, 32377, 161968, 18145, 161973, 13926, 161974, 11235, 161977, 33873, 161980, 47882, 161981, 14081, 161982, 19796, 161985, 35921, 161987, 29248, 161995, 21065, 161996, 31367, 162001, 31023, 162002, 21885, 162005, 31901, 162006, 37365, 162010, 29147, 162011, 35021, 162015, 42728, 162017, 16425, 162018, 19182, 162019, 29259, 162020, 48013, 162022, 20601, 162025, 39023, 162026, 33729, 162028, 42757, 162029, 47023, 162037, 26348, 162039, 47279, 162040, 22183, 162041, 35941, 162042, 29156, 162043, 21911, 162044, 18212, 162046, 47041, 162051, 8331, 162061, 10891, 162062, 41032, 162063, 19635, 162064, 16547, 162065, 21762, 162066, 38384, 162067, 37386, 162069, 31922, 162070, 37829, 162071, 13734, 162073, 34472, 162075, 46431, 162076, 28425, 162079, 39144, 162080, 46258, 162081, 47085, 162083, 28112, 162088, 20179, 162094, 42247, 162095, 17055, 162098, 12889, 162100, 19299, 162101, 21321, 162108, 22219, 162109, 45030, 162116, 19663, 162118, 35352, 162120, 20209, 162122, 23333, 162123, 38398, 162124, 23144, 162125, 8825, 162126, 22239, 162129, 8632, 162131, 9994, 162133, 48070, 162134, 24638, 162138, 15065, 162139, 31068, 162140, 41730, 162142, 36009, 162143, 27851, 162147, 22855, 162148, 38737, 162158, 18339, 162159, 18340, 162161, 15243, 162164, 42117, 162165, 17097, 162167, 32540, 162168, 43529, 162169, 14965, 162170, 22321, 162172, 45109, 162175, 41383, 162177, 39085, 162190, 39190, 162193, 17420, 162202, 18341, 162205, 18109, 162206, 30389, 162207, 14456, 162212, 19973, 162215, 42731, 162221, 37319, 162222, 28108, 162232, 43416, 162233, 43536, 162243, 19820, 162244, 37777, 162245, 34370, 162246, 13786, 162247, 14034, 162249, 37372, 162250, 37463, 162251, 24445, 162255, 32525, 162258, 11702, 162259, 40931, 162260, 47271, 162261, 48143, 162268, 37755, 162269, 41483, 162271, 19821, 162272, 10268, 162281, 19593, 162293, 33553, 162294, 37073, 162296, 8899, 162297, 39116, 162298, 29725, 162299, 45771, 162302, 19034, 162304, 35580, 162306, 17726, 162308, 44939, 162310, 38436, 162312, 25336, 162314, 45772, 162315, 18432, 162327, 9941, 162335, 14219, 162337, 10431, 162343, 35480, 162345, 36589, 162352, 47042, 162353, 36462, 162354, 7518, 162355, 47911, 162356, 48146, 162357, 22639, 162359, 33292, 162360, 36547, 162361, 26037, 162366, 33529, 162367, 45737, 162371, 10944, 162373, 41908, 162386, 28038, 162387, 18131, 162394, 10682, 162397, 35311, 162403, 28394, 162406, 19636, 162407, 13957, 162408, 18068, 162410, 11837, 162411, 45666, 162412, 43441, 162414, 40000, 162416, 8743, 162417, 8304, 162418, 23460, 162420, 10684, 162422, 30879, 162424, 7407, 162425, 34151, 162428, 10892, 162437, 29074, 162439, 19868, 162451, 29224, 162453, 39201, 162456, 9884, 162458, 7281, 162461, 34090, 162462, 17681, 162464, 19645, 162465, 10687, 162466, 39146, 162467, 46560, 162470, 35684, 162472, 26571, 162475, 29740, 162478, 40793, 162479, 31097, 162489, 39309, 162506, 44657, 162513, 20986, 162514, 39312, 162515, 25937, 162517, 31458, 162519, 9844, 162523, 42135, 162524, 19888, 162525, 33407, 162526, 25831, 162528, 19474, 162529, 47098, 162530, 37780, 162532, 8601, 162533, 7410, 162534, 42620, 162535, 7411, 162540, 24213, 162553, 39388, 162558, 21618, 162559, 36005, 162561, 17549, 162562, 17749, 162565, 45668, 162566, 45944, 162567, 43257, 162568, 39162, 162570, 39163, 162571, 14450, 162572, 41692, 162575, 28039, 162581, 16374, 162590, 45128, 162596, 47235, 162598, 10062, 162599, 11411, 162600, 19102, 162601, 45261, 162602, 16982, 162603, 20320, 162604, 41470, 162608, 39832, 162609, 17750, 162627, 12489, 162631, 27473, 162632, 28921, 162634, 27181, 162636, 25106, 162637, 47382, 162638, 30318, 162639, 35816, 162643, 43729, 162644, 36296, 162645, 17060, 162650, 31230, 162652, 26218, 162653, 33089, 162654, 25107, 162655, 10760, 162656, 40201, 162659, 17063, 162660, 8074, 162661, 26489, 162662, 22055, 162666, 14277, 162675, 17700, 162677, 27063, 162680, 40358, 162681, 30066, 162683, 17205, 162684, 10480, 162685, 33632, 162686, 19113, 162694, 43657, 162696, 20337, 162701, 7417, 162705, 35805, 162706, 42632, 162707, 37201, 162711, 25553, 162713, 48527, 162715, 24272, 162717, 30070, 162718, 41254, 162720, 28462, 162721, 13572, 162724, 23693, 162730, 45840, 162731, 22088, 162732, 46339, 162733, 19551, 162734, 30922, 162736, 17188, 162737, 14860, 162739, 17189, 162740, 17918, 162741, 17651, 162742, 18017, 162746, 45981, 162747, 11068, 162748, 35874, 162749, 31137, 162751, 33823, 162752, 43612, 162755, 31492, 162758, 19292, 162760, 39147, 162761, 17741, 162762, 39153, 162763, 39203, 162764, 17451, 162765, 23889, 162767, 24548, 162770, 10526, 162774, 22362, 162775, 38939, 162776, 17294, 162782, 13539, 162784, 13487, 162785, 37549, 162788, 13488, 162789, 45310, 162790, 22034, 162792, 25802, 162793, 11269, 162795, 46550, 162799, 30597, 162800, 22494, 162801, 19279, 162802, 23527, 162810, 15573, 162812, 34475, 162814, 13414, 162819, 25787, 162820, 37120, 162823, 44357, 162824, 38653, 162826, 36554, 162834, 17058, 162840, 35972, 162841, 30654, 162848, 25116, 162849, 24631, 162851, 41290, 162856, 16105, 162857, 36733, 162858, 17315, 162859, 11241, 162861, 37257, 162863, 40604, 162864, 44024, 162865, 27883, 162866, 10788, 162868, 18279, 162869, 13582, 162871, 28030, 162873, 28159, 162875, 25309, 162879, 7326, 162880, 39355, 162884, 22471, 162885, 35024, 162886, 33128, 162890, 43122, 162895, 43145, 162896, 40034, 162898, 46692, 162899, 13552, 162904, 26616, 162908, 26334, 162909, 22185, 162913, 31185, 162914, 25341, 162921, 29941, 162922, 11851, 162923, 14049, 162924, 44460, 162928, 47844, 162930, 39148, 162931, 18527, 162932, 27755, 162933, 36101, 162937, 30313, 162939, 27434, 162940, 26658, 162942, 16572, 162944, 30974, 162946, 25171, 162947, 27719, 162948, 38030, 162949, 9727, 162951, 18379, 162952, 35431, 162955, 21941, 162956, 33446, 162957, 27182, 162967, 37921, 162968, 38936, 162969, 25454, 162972, 8633, 162973, 38149, 162977, 24375, 162978, 46210, 162980, 43866, 162981, 18172, 162982, 37586, 162983, 7666, 162984, 20121, 162989, 48534, 162990, 45914, 162991, 9095, 162992, 31805, 162993, 41995, 162996, 13403, 162997, 32049, 163002, 29787, 163003, 45817, 163006, 33504, 163007, 16305, 163008, 8849, 163009, 42746, 163010, 15272, 163012, 40448, 163013, 34371, 163014, 36831, 163017, 13321, 163020, 37016, 163021, 39900, 163022, 38483, 163023, 29520, 163024, 18884, 163029, 23526, 163033, 35035, 163034, 11983, 163035, 33437, 163036, 47321, 163037, 46159, 163038, 37887, 163039, 23528, 163040, 8554, 163043, 13433, 163046, 28395, 163047, 40074, 163048, 32516, 163049, 37160, 163050, 38101, 163051, 44056, 163052, 26989, 163053, 44860, 163054, 47232, 163062, 35165, 163064, 16378, 163065, 33752, 163067, 46123, 163068, 29811, 163071, 36837, 163073, 10690, 163074, 29644, 163075, 9962, 163076, 43846, 163077, 34781, 163079, 38567, 163081, 29815, 163082, 18694, 163084, 15332, 163086, 8852, 163091, 28359, 163093, 8853, 163094, 38131, 163095, 43852, 163097, 28403, 163098, 16593, 163104, 24614, 163106, 40463, 163107, 41715, 163108, 30231, 163109, 29507, 163114, 35602, 163116, 32599, 163117, 33540, 163122, 35603, 163128, 12351, 163130, 27090, 163139, 34444, 163144, 16294, 163146, 17190, 163147, 34359, 163148, 42094, 163150, 16419, 163163, 22614, 163166, 21666, 163168, 29302, 163169, 9671, 163170, 7970, 163171, 40599, 163172, 9430, 163175, 25192, 163176, 7327, 163180, 27401, 163181, 23540, 163185, 39890, 163187, 33779, 163195, 19219, 163196, 28599, 163204, 46604, 163206, 25220, 163207, 45699, 163210, 45120, 163213, 40944, 163220, 10595, 163221, 38341, 163222, 38827, 163225, 8172, 163228, 33652, 163232, 44619, 163233, 27416, 163250, 13741, 163253, 9840, 163255, 45542, 163256, 10643, 163258, 36778, 163269, 42786, 163275, 42170, 163278, 22919, 163280, 14882, 163281, 40163, 163282, 10644, 163291, 23272, 163295, 8954, 163297, 25789, 163301, 43241, 163302, 27435, 163303, 40325, 163313, 16801, 163315, 26376, 163318, 33617, 163326, 21776, 163327, 13592, 163330, 39391, 163333, 46862, 163336, 8977, 163349, 46863, 163350, 47708, 163351, 41205, 163352, 24814, 163353, 35517, 163366, 23709, 163367, 21949, 163368, 27474, 163369, 41403, 163370, 46001, 163371, 16984, 163378, 47126, 163389, 38143, 163390, 32285, 163391, 9890, 163400, 32635, 163402, 45046, 163404, 48071, 163408, 26498, 163409, 16878, 163411, 10568, 163413, 21667, 163414, 36578, 163415, 37682, 163419, 46668, 163422, 28277, 163427, 17197, 163432, 38848, 163433, 25152, 163436, 41589, 163437, 40963, 163442, 18371, 163443, 15724, 163444, 40968, 163446, 39154, 163450, 12048, 163453, 39170, 163454, 18263, 163461, 41604, 163470, 42994, 163471, 10719, 163472, 22115, 163474, 48314, 163484, 20763, 163485, 43052, 163487, 35985, 163488, 10844, 163489, 7690, 163490, 36981, 163491, 48157, 163492, 31887, 163495, 10845, 163496, 39005, 163504, 28587, 163506, 11863, 163508, 38537, 163510, 11256, 163511, 35214, 163512, 43869, 163513, 21811, 163514, 7692, 163516, 11676, 163517, 12936, 163518, 29354, 163519, 10853, 163521, 31932, 163523, 41651, 163533, 45818, 163538, 39639, 163539, 8298, 163540, 23080, 163541, 30779, 163542, 47272, 163543, 21744, 163544, 31436, 163545, 27897, 163546, 44841, 163548, 16896, 163549, 48411, 163559, 31437, 163568, 18202, 163569, 31914, 163570, 17123, 163571, 15472, 163572, 23787, 163573, 33434, 163574, 38828, 163575, 9305, 163576, 34381, 163577, 43914, 163578, 16716, 163580, 28805, 163583, 18048, 163594, 27409, 163598, 14234, 163599, 39468, 163600, 45152, 163601, 40955, 163602, 31575, 163603, 13409, 163604, 24089, 163605, 30796, 163606, 23597, 163607, 15301, 163608, 30705, 163609, 10992, 163612, 11900, 163615, 27922, 163616, 8099, 163620, 12655, 163624, 20977, 163625, 11007, 163626, 10893, 163627, 44639, 163628, 11973, 163629, 35325, 163630, 36469, 163631, 34677, 163632, 45703, 163633, 15311, 163635, 10352, 163636, 15064, 163637, 18029, 163638, 45704, 163652, 20978, 163653, 45705, 163654, 45872, 163657, 41808, 163658, 17130, 163659, 38566, 163660, 18444, 163661, 12995, 163662, 42250, 163663, 35166, 163664, 30969, 163665, 19646, 163666, 40628, 163667, 30815, 163668, 22296, 163670, 17131, 163678, 41816, 163679, 21003, 163680, 11976, 163682, 37142, 163683, 46035, 163684, 29972, 163685, 26081, 163686, 46703, 163687, 11288, 163688, 27436, 163689, 31196, 163691, 24809, 163698, 24525, 163702, 14110, 163703, 35350, 163704, 22221, 163707, 21777, 163708, 35967, 163709, 24955, 163710, 33131, 163711, 13475, 163713, 45260, 163714, 46773, 163718, 41158, 163719, 25372, 163722, 12725, 163725, 45889, 163726, 41048, 163727, 31582, 163728, 20798, 163729, 29900, 163732, 17290, 163738, 44378, 163739, 17061, 163741, 41355, 163744, 41356, 163745, 9987, 163746, 21015, 163747, 21790, 163748, 41836, 163749, 13649, 163751, 17988, 163752, 39691, 163753, 41357, 163758, 25393, 163759, 21018, 163760, 43308, 163761, 32122, 163762, 15665, 163763, 15002, 163765, 22258, 163766, 32027, 163771, 21576, 163773, 19765, 163774, 19695, 163781, 38950, 163782, 29383, 163784, 23120, 163785, 22939, 163787, 22940, 163788, 45760, 163791, 7719, 163794, 10448, 163795, 18342, 163796, 29070, 163797, 14083, 163798, 40596, 163799, 13885, 163800, 34025, 163801, 37588, 163802, 14826, 163805, 38761, 163806, 47991, 163808, 18343, 163813, 8893, 163815, 37432, 163816, 7854, 163817, 15943, 163819, 22609, 163826, 47782, 163827, 15260, 163828, 27887, 163829, 20023, 163830, 37367, 163831, 44560, 163833, 28031, 163834, 22148, 163835, 21736, 163836, 16515, 163837, 30219, 163840, 28539, 163844, 37492, 163845, 41773, 163860, 11112, 163861, 23081, 163862, 17163, 163864, 39757, 163865, 38806, 163867, 12067, 163868, 36832, 163869, 33014, 163871, 13953, 163872, 10338, 163876, 24054, 163877, 48018, 163879, 46579, 163880, 48535, 163883, 22511, 163884, 45311, 163886, 44769, 163887, 31752, 163891, 14427, 163892, 41329, 163894, 19822, 163896, 9758, 163904, 34537, 163905, 41141, 163906, 40138, 163907, 36318, 163908, 17353, 163909, 39364, 163910, 33512, 163911, 37289, 163912, 17427, 163913, 23351, 163914, 9702, 163915, 13494, 163916, 29121, 163917, 41902, 163918, 10596, 163919, 30306, 163920, 30788, 163921, 45004, 163922, 15128, 163927, 36815, 163935, 38342, 163936, 34034, 163937, 37419, 163956, 35991, 163958, 41487, 163959, 47045, 163960, 26041, 163961, 41801, 163962, 21685, 163965, 12694, 163967, 11276, 163968, 48373, 163969, 14235, 163970, 46760, 163971, 29629, 163973, 8871, 163975, 12886, 163984, 23529, 163986, 42493, 163996, 17476, 163997, 29337, 163998, 36026, 163999, 22524, 164000, 40789, 164001, 48297, 164002, 19870, 164003, 38649, 164006, 11376, 164009, 30256, 164010, 41804, 164011, 37439, 164013, 13618, 164015, 29943, 164016, 10894, 164017, 19191, 164018, 30096, 164020, 11772, 164021, 45740, 164026, 37555, 164031, 37527, 164035, 14249, 164036, 38102, 164037, 7755, 164039, 20496, 164051, 9808, 164053, 11285, 164054, 22990, 164055, 36288, 164056, 48278, 164057, 24501, 164058, 35772, 164059, 33079, 164062, 29339, 164063, 29340, 164067, 33253, 164068, 31297, 164077, 48338, 164079, 47086, 164080, 41809, 164082, 20987, 164083, 28466, 164100, 26233, 164101, 32013, 164103, 12751, 164104, 24848, 164105, 10054, 164106, 31459, 164107, 25832, 164108, 13274, 164109, 11977, 164112, 19718, 164115, 10255, 164116, 34741, 164117, 48346, 164119, 22532, 164122, 31198, 164123, 24214, 164142, 34711, 164143, 44675, 164144, 46036, 164145, 24017, 164165, 30204, 164170, 46267, 164171, 40048, 164173, 36006, 164174, 12049, 164175, 23619, 164177, 40801, 164178, 34689, 164179, 45743, 164180, 9513, 164183, 8391, 164184, 29677, 164189, 10618, 164195, 31340, 164196, 19482, 164202, 45797, 164204, 23620, 164225, 36599, 164226, 33085, 164227, 21136, 164228, 47616, 164229, 14054, 164231, 9846, 164232, 22053, 164233, 36116, 164234, 8313, 164236, 14533, 164237, 25103, 164238, 45592, 164239, 35518, 164249, 33325, 164263, 47120, 164264, 37197, 164266, 31635, 164268, 11587, 164272, 35798, 164273, 9065, 164274, 38241, 164277, 30223, 164285, 27820, 164286, 9407, 164289, 23145, 164291, 12112, 164292, 32518, 164293, 8075, 164294, 23573, 164301, 28679, 164302, 24251, 164309, 20746, 164310, 25896, 164311, 24616, 164312, 25691, 164313, 16937, 164317, 10075, 164324, 39410, 164326, 10104, 164328, 40362, 164329, 46005, 164335, 34763, 164347, 27362, 164348, 26257, 164349, 26499, 164352, 13013, 164360, 13295, 164362, 37565, 164363, 45061, 164364, 26266, 164366, 26268, 164371, 24081, 164373, 37524, 164374, 13303, 164375, 28456, 164376, 33726, 164377, 40241, 164378, 29779, 164389, 26824, 164391, 43474, 164393, 9168, 164395, 47584, 164398, 10933, 164406, 28032, 164407, 37368, 164409, 36928, 164410, 42406, 164417, 18831, 164419, 32613, 164421, 42471, 164427, 37377, 164438, 48383, 164439, 44620, 164442, 7243, 164444, 47281, 164445, 37554, 164449, 13996, 164450, 47233, 164451, 17105, 164452, 18774, 164453, 27530, 164457, 11486, 164458, 31449, 164459, 16173, 164460, 36779, 164461, 26990, 164465, 36149, 164468, 32710, 164471, 32711, 164472, 30614, 164473, 17056, 164477, 39829, 164478, 36552, 164485, 39937, 164488, 45885, 164489, 12050, 164500, 23635, 164504, 33919, 164506, 24033, 164507, 24617, 164509, 9919, 164510, 28869, 164511, 26258, 164513, 36734, 164514, 18986, 164519, 16147, 164528, 30752, 164529, 44253, 164531, 40393, 164536, 44985, 164537, 7667, 164538, 12297, 164539, 19378, 164540, 41130, 164543, 22131, 164544, 28968, 164552, 13695, 164553, 19564, 164560, 29250, 164561, 16204, 164562, 8228, 164564, 22774, 164565, 42119, 164566, 25565, 164567, 28500, 164568, 45766, 164569, 43537, 164570, 28658, 164571, 29480, 164573, 16154, 164574, 9371, 164575, 17639, 164576, 32749, 164577, 16892, 164581, 8486, 164582, 38784, 164583, 21737, 164584, 19152, 164585, 8509, 164587, 36627, 164588, 46581, 164590, 17837, 164591, 43123, 164592, 11703, 164594, 9054, 164599, 16161, 164602, 14428, 164605, 42053, 164606, 40836, 164609, 17838, 164612, 45413, 164613, 9870, 164614, 17934, 164616, 36542, 164620, 46693, 164621, 40488, 164622, 40817, 164625, 46477, 164628, 37639, 164632, 22340, 164637, 38379, 164640, 26043, 164642, 46554, 164643, 32753, 164644, 10604, 164645, 15302, 164647, 14236, 164648, 36182, 164649, 36090, 164651, 21973, 164652, 10285, 164653, 35758, 164654, 12887, 164656, 48192, 164659, 22779, 164660, 37165, 164662, 22780, 164677, 32754, 164678, 45076, 164679, 17677, 164680, 48229, 164681, 11773, 164682, 31818, 164686, 28087, 164687, 13959, 164688, 40845, 164689, 22784, 164690, 39663, 164699, 13619, 164700, 22478, 164702, 43613, 164706, 48043, 164711, 18775, 164713, 29638, 164715, 24502, 164717, 9229, 164718, 15991, 164719, 21766, 164720, 22641, 164722, 18237, 164723, 42252, 164724, 36103, 164726, 31773, 164727, 32760, 164728, 25575, 164729, 19080, 164730, 19464, 164745, 47087, 164747, 36108, 164748, 46860, 164749, 22534, 164756, 42136, 164758, 36133, 164759, 17855, 164763, 24849, 164765, 9626, 164769, 28210, 164770, 48232, 164772, 12752, 164774, 20641, 164775, 29653, 164777, 16721, 164778, 14345, 164779, 20439, 164780, 20794, 164781, 29123, 164782, 45458, 164787, 29658, 164788, 12517, 164790, 32096, 164791, 24737, 164792, 28092, 164793, 23679, 164798, 14889, 164802, 19165, 164806, 23087, 164808, 43512, 164809, 34742, 164810, 20451, 164818, 26490, 164820, 26105, 164826, 16011, 164827, 32493, 164830, 30067, 164832, 25692, 164836, 46438, 164837, 39692, 164840, 25245, 164841, 24747, 164842, 33528, 164843, 9270, 164844, 24625, 164851, 40190, 164852, 16013, 164853, 27724, 164854, 24749, 164857, 22260, 164858, 47300, 164863, 22651, 164865, 13296, 164867, 46279, 164869, 34495, 164870, 19357, 164871, 25620, 164872, 16713, 164873, 45452, 164874, 39688, 164875, 30905, 164877, 33874, 164880, 43475, 164881, 21066, 164884, 33894, 164885, 33895, 164886, 33036, 164891, 39117, 164897, 22954, 164899, 32072, 164901, 15988, 164902, 7885, 164904, 8587, 164905, 30970, 164912, 8955, 164913, 7886, 164915, 48569, 164916, 29895, 164918, 19312, 164926, 7889, 164938, 29000, 164940, 10445, 164942, 29572, 164945, 15340, 164946, 37026, 164956, 29831, 164957, 30224, 164960, 10764, 164963, 41219, 164964, 30727, 164965, 38591, 164968, 46877, 164969, 12900, 164970, 11725, 164971, 43994, 164985, 11726, 164988, 12901, 164989, 47858, 164991, 48289, 164992, 11796, 164995, 29362, 164996, 41736, 164997, 30734, 164998, 32737, 164999, 20006, 165001, 46887, 165002, 31852, 165003, 44967, 165005, 34305, 165009, 17456, 165017, 37308, 165020, 8887, 165022, 22487, 165026, 11557, 165028, 11671, 165030, 43467, 165031, 34325, 165032, 28217, 165033, 32911, 165035, 42029, 165036, 10651, 165038, 11596, 165041, 16141, 165042, 27256, 165044, 19696, 165052, 16045, 165053, 45463, 165057, 8274, 165063, 40423, 165064, 23373, 165066, 13216, 165069, 36758, 165082, 34807, 165086, 12286, 165094, 24291, 165096, 43893, 165097, 20593, 165100, 35686, 165101, 32136, 165102, 43411, 165103, 44757, 165104, 20914, 165106, 30928, 165107, 42157, 165108, 41522, 165111, 31625, 165119, 29512, 165143, 19967, 165145, 36983, 165147, 36312, 165153, 13905, 165154, 10026, 165155, 19975, 165156, 10854, 165157, 20133, 165158, 34653, 165167, 35729, 165205, 46677, 165207, 44825, 165210, 18111, 165212, 25060, 165216, 45514, 165218, 11267, 165222, 31939, 165223, 8261, 165241, 18585, 165242, 22970, 165243, 34031, 165245, 20947, 165247, 37756, 165251, 18116, 165258, 45524, 165259, 45337, 165260, 42129, 165262, 10799, 165263, 21600, 165274, 24916, 165275, 44203, 165280, 8686, 165282, 23099, 165292, 11127, 165293, 41466, 165294, 47905, 165296, 31444, 165297, 39646, 165299, 44772, 165300, 38556, 165301, 20715, 165302, 39821, 165303, 33438, 165305, 47046, 165308, 11006, 165310, 8651, 165311, 37825, 165331, 12657, 165341, 44623, 165342, 37182, 165345, 10286, 165349, 19066, 165350, 31095, 165352, 38004, 165360, 44058, 165372, 12966, 165374, 12238, 165377, 44059, 165378, 21610, 165379, 37185, 165380, 45340, 165383, 19081, 165385, 33445, 165388, 19293, 165396, 42253, 165401, 39669, 165406, 39670, 165420, 12971, 165422, 21616, 165426, 19091, 165428, 22587, 165429, 44066, 165432, 24549, 165436, 11354, 165438, 10758, 165440, 19313, 165442, 44072, 165444, 45033, 165454, 35791, 165455, 45370, 165459, 28850, 165460, 47621, 165473, 39575, 165481, 34173, 165483, 22842, 165484, 30666, 165485, 37100, 165486, 14479, 165487, 12053, 165490, 37247, 165491, 9733, 165492, 9422, 165493, 39792, 165494, 29532, 165495, 21337, 165496, 30487, 165497, 33724, 165498, 28952, 165499, 28125, 165501, 31500, 165517, 8398, 165523, 8410, 165524, 7962, 165525, 8707, 165526, 47967, 165527, 28130, 165528, 38046, 165529, 17455, 165537, 21146, 165539, 46591, 165543, 31399, 165550, 17500, 165551, 36848, 165552, 45440, 165553, 34069, 165554, 12065, 165555, 18707, 165556, 32811, 165557, 45305, 165558, 28632, 165566, 39335, 165576, 32195, 165577, 19749, 165578, 43390, 165579, 24286, 165580, 26749, 165581, 33738, 165582, 17306, 165583, 12118, 165584, 22308, 165585, 19766, 165586, 9353, 165587, 25730, 165588, 15074, 165589, 44007, 165590, 23011, 165596, 39798, 165601, 45100, 165603, 31507, 165604, 18923, 165605, 30326, 165611, 24115, 165612, 29508, 165613, 34508, 165614, 21647, 165615, 42713, 165616, 46517, 165617, 10968, 165619, 38951, 165621, 18275, 165622, 32774, 165644, 18652, 165645, 31364, 165646, 46664, 165647, 43676, 165648, 39006, 165649, 31263, 165650, 19797, 165651, 46527, 165652, 18734, 165654, 44261, 165655, 48270, 165656, 26963, 165660, 34052, 165673, 32216, 165680, 20480, 165681, 17631, 165683, 36874, 165684, 17640, 165685, 38156, 165686, 43089, 165687, 29405, 165690, 38263, 165691, 31024, 165692, 24430, 165693, 42734, 165694, 11430, 165695, 40917, 165696, 37967, 165702, 15901, 165704, 44435, 165707, 45829, 165708, 15650, 165709, 30942, 165710, 22512, 165711, 24154, 165712, 33896, 165713, 16667, 165715, 29980, 165718, 24155, 165720, 18282, 165723, 37065, 165724, 34834, 165726, 18351, 165727, 24156, 165730, 25820, 165734, 12558, 165736, 48564, 165737, 33505, 165739, 33820, 165741, 15024, 165742, 21902, 165743, 36888, 165744, 20701, 165745, 31320, 165746, 15805, 165747, 48024, 165748, 18759, 165749, 33513, 165752, 35933, 165772, 37320, 165774, 25450, 165776, 10597, 165777, 38301, 165778, 48522, 165779, 44624, 165781, 47471, 165783, 32397, 165784, 39026, 165785, 32064, 165787, 15977, 165794, 30455, 165795, 40784, 165800, 15610, 165801, 32353, 165802, 11072, 165803, 27137, 165810, 33911, 165811, 32073, 165814, 31294, 165815, 9511, 165818, 24503, 165820, 37689, 165821, 23946, 165822, 40500, 165823, 23755, 165826, 34406, 165827, 46561, 165828, 14520, 165834, 47088, 165839, 43445, 165841, 24526, 165846, 27811, 165847, 38023, 165849, 43629, 165850, 32470, 165856, 32185, 165861, 26432, 165874, 12287, 165876, 43530, 165877, 8373, 165878, 15895, 165880, 38251, 165881, 41757, 165882, 27496, 165884, 15777, 165885, 31888, 165886, 46669, 165899, 16355, 165900, 36875, 165902, 25313, 165903, 36349, 165904, 11637, 165905, 42735, 165906, 14591, 165907, 30181, 165908, 8487, 165910, 8050, 165919, 29592, 165921, 35369, 165924, 35068, 165925, 37875, 165926, 39978, 165932, 17526, 165933, 41784, 165942, 42748, 165943, 45423, 165944, 43754, 165945, 28281, 165951, 45229, 165953, 36585, 165954, 38829, 165955, 20779, 165956, 41663, 165964, 28428, 165965, 35994, 165966, 41910, 165967, 36592, 165968, 47047, 165969, 11022, 165970, 36224, 165975, 45775, 165982, 27510, 165985, 38557, 165986, 43492, 165987, 41911, 165988, 23863, 165993, 30188, 165995, 19192, 165996, 17142, 165997, 28008, 165998, 11774, 166001, 22955, 166002, 11027, 166004, 44122, 166008, 47919, 166011, 35162, 166018, 43554, 166021, 48463, 166022, 33183, 166023, 25597, 166024, 17376, 166025, 38111, 166026, 27146, 166027, 18238, 166028, 24504, 166030, 27430, 166032, 7912, 166033, 20298, 166044, 32360, 166048, 27147, 166050, 28009, 166051, 17961, 166052, 18374, 166053, 27295, 166054, 33464, 166057, 33657, 166058, 10288, 166060, 47936, 166062, 46704, 166063, 28694, 166069, 19889, 166072, 22647, 166073, 46564, 166079, 12383, 166080, 24984, 166081, 45945, 166082, 16214, 166083, 23837, 166084, 18409, 166085, 11322, 166087, 20312, 166088, 23279, 166093, 33765, 166100, 10461, 166101, 36007, 166103, 18258, 166104, 27177, 166105, 29490, 166106, 45949, 166107, 10169, 166109, 15693, 166112, 43274, 166114, 35519, 166118, 40980, 166119, 19912, 166120, 23710, 166124, 42806, 166127, 27439, 166129, 27620, 166133, 11937, 166136, 23683, 166139, 41605, 166142, 27326, 166146, 43925, 166147, 9591, 166148, 20340, 166151, 35181, 166158, 41719, 166161, 22021, 166165, 14239, 166168, 14925, 166170, 14927, 166177, 16745, 166178, 26582, 166180, 25013, 166185, 10934, 166187, 24157, 166193, 46763, 166196, 40326, 166199, 11088, 166201, 19670, 166205, 29708, 166210, 20915, 166215, 47315, 166221, 40597, 166225, 23127, 166233, 21353, 166235, 18346, 166238, 31026, 166243, 9700, 166246, 30565, 166247, 37632, 166248, 26832, 166250, 13520, 166260, 22846, 166262, 12306, 166264, 28345, 166266, 17928, 166274, 23541, 166275, 13994, 166276, 30955, 166278, 43431, 166294, 25824, 166295, 18885, 166299, 15473, 166300, 26835, 166302, 47276, 166305, 43870, 166317, 23822, 166318, 19622, 166319, 43168, 166320, 25500, 166321, 11768, 166323, 28286, 166352, 37238, 166353, 39822, 166357, 8742, 166358, 11404, 166359, 38646, 166361, 21687, 166373, 40073, 166374, 29736, 166375, 47920, 166376, 32981, 166378, 33250, 166379, 48147, 166381, 46610, 166384, 48334, 166385, 32005, 166387, 10895, 166389, 47064, 166423, 32294, 166424, 30963, 166425, 41437, 166426, 10287, 166427, 17678, 166428, 32870, 166432, 21690, 166433, 38650, 166444, 10896, 166445, 23132, 166447, 11853, 166448, 32940, 166449, 23396, 166450, 10753, 166451, 48339, 166452, 20627, 166454, 44354, 166455, 37089, 166456, 27148, 166457, 12163, 166458, 34871, 166501, 14985, 166502, 16283, 166503, 13415, 166504, 9820, 166505, 26936, 166506, 10049, 166507, 8657, 166508, 44659, 166511, 37595, 166512, 48340, 166514, 48050, 166516, 11335, 166517, 37649, 166518, 37470, 166520, 32184, 166523, 37650, 166525, 39310, 166532, 43797, 166533, 20424, 166536, 38024, 166537, 36399, 166538, 33226, 166540, 30626, 166541, 33396, 166542, 44677, 166543, 19657, 166544, 13562, 166545, 10056, 166546, 37143, 166549, 25528, 166551, 47806, 166579, 32941, 166582, 41934, 166583, 16461, 166585, 24528, 166586, 9768, 166590, 12972, 166591, 25529, 166592, 45942, 166593, 30190, 166610, 25834, 166612, 47112, 166657, 24731, 166661, 26430, 166669, 14055, 166672, 22233, 166673, 24568, 166674, 23630, 166676, 32942, 166677, 16375, 166678, 9979, 166679, 40803, 166682, 46864, 166721, 41250, 166722, 9112, 166723, 10531, 166725, 47617, 166726, 17766, 166729, 7838, 166739, 13279, 166742, 45950, 166743, 17062, 166746, 8818, 166747, 23482, 166778, 21140, 166786, 15584, 166802, 27240, 166804, 44707, 166826, 39043, 166828, 29978, 166829, 34962, 166836, 12758, 166840, 11551, 166841, 12854, 166842, 19500, 166843, 9992, 166847, 47956, 166867, 9461, 166878, 20573, 166898, 36962, 166909, 24270, 166914, 31150, 166918, 11552, 166927, 35807, 166929, 13185, 166931, 20342, 166939, 46866, 166940, 22255, 166942, 27825, 166944, 26404, 166950, 8029, 166957, 48401, 166965, 46180, 166968, 44391, 166971, 8032, 166974, 26531, 166975, 39063, 166976, 18327, 166977, 42996, 166978, 14074, 166979, 16341, 166980, 37041, 166981, 46341, 166983, 31903, 166984, 35271, 166985, 24888, 166986, 31985, 166987, 25323, 166988, 16668, 166989, 23752, 166990, 36943, 166991, 12160, 166992, 25830, 166993, 18781, 166994, 34473, 166995, 20628, 166996, 48477, 166997, 15583, 166998, 37903, 167001, 23293, 167002, 13747, 167003, 35064, 167004, 30545, 167005, 42091, 167009, 34347, 167011, 15580, 167014, 12644, 167015, 42297, 167019, 31027, 167021, 33694, 167022, 10149, 167023, 27779, 167025, 27786, 167029, 28387, 167032, 11744, 167034, 28802, 167035, 46101, 167036, 9701, 167039, 35069, 167040, 28807, 167041, 11708, 167044, 22341, 167046, 33700, 167048, 47472, 167049, 13997, 167050, 7470, 167051, 8333, 167054, 36463, 167056, 29845, 167057, 39259, 167058, 31920, 167059, 34066, 167063, 36046, 167067, 26651, 167068, 29920, 167070, 36477, 167071, 32714, 167079, 11783, 167082, 19476, 167083, 15029, 167084, 38660, 167085, 20796, 167086, 23838, 167087, 45620, 167088, 29654, 167089, 9534, 167091, 29003, 167093, 10067, 167102, 26668, 167103, 16936, 167104, 28743, 167105, 10962, 167106, 10105, 167110, 28324, 167113, 39187, 167114, 21513, 167115, 19697, 167116, 46458, 167121, 36806, 167124, 27073, 167125, 44987, 167127, 47165, 167128, 37262, 167129, 32972, 167130, 40255, 167131, 38786, 167133, 36810, 167134, 28970, 167136, 37754, 167137, 20135, 167139, 14830, 167154, 8732, 167159, 42749, 167162, 13244, 167163, 19409, 167164, 15680, 167167, 20146, 167168, 21446, 167174, 22387, 167178, 32335, 167180, 28257, 167181, 27978, 167182, 40947, 167183, 35101, 167184, 33993, 167185, 23083, 167186, 32344, 167187, 37882, 167191, 13255, 167192, 28260, 167194, 33017, 167195, 16164, 167196, 13553, 167198, 28662, 167201, 10229, 167202, 17663, 167203, 41904, 167209, 37082, 167210, 9326, 167212, 18213, 167213, 43917, 167215, 34265, 167216, 11277, 167225, 39912, 167226, 27077, 167227, 24305, 167228, 36379, 167230, 20163, 167234, 46853, 167235, 16524, 167236, 16643, 167238, 30797, 167240, 14687, 167241, 44462, 167242, 46251, 167243, 38005, 167244, 14126, 167245, 9913, 167246, 38872, 167248, 16450, 167255, 32354, 167256, 19067, 167258, 40156, 167259, 43615, 167261, 35768, 167262, 37520, 167263, 15314, 167264, 21084, 167265, 29885, 167269, 34067, 167270, 44355, 167271, 22972, 167273, 29892, 167274, 40164, 167275, 29108, 167276, 39672, 167277, 20425, 167278, 40969, 167280, 8588, 167284, 28264, 167286, 24845, 167288, 29945, 167292, 21427, 167296, 35699, 167297, 41935, 167298, 7363, 167301, 39929, 167302, 31200, 167303, 38568, 167304, 36110, 167306, 22352, 167312, 23402, 167319, 23791, 167321, 28469, 167324, 13565, 167325, 34574, 167327, 20737, 167328, 28842, 167330, 44366, 167336, 9691, 167338, 20738, 167340, 18503, 167341, 38214, 167342, 42392, 167343, 14113, 167344, 16723, 167345, 18411, 167346, 20643, 167354, 24070, 167356, 33658, 167357, 43938, 167359, 12727, 167360, 16622, 167361, 28951, 167363, 35524, 167364, 39834, 167366, 33087, 167367, 10131, 167374, 33001, 167376, 45081, 167378, 14841, 167379, 20454, 167380, 40983, 167384, 39173, 167385, 34576, 167397, 40186, 167398, 24627, 167401, 36963, 167404, 27361, 167405, 10077, 167406, 19210, 167409, 47674, 167410, 45052, 167419, 23651, 167421, 41720, 167422, 12586, 167423, 39794, 167424, 44955, 167425, 36793, 167426, 8240, 167427, 33161, 167428, 39601, 167429, 13205, 167430, 29869, 167431, 29928, 167433, 35691, 167435, 20617, 167436, 42387, 167438, 45034, 167440, 32621, 167441, 31346, 167442, 30483, 167443, 13096, 167444, 30484, 167447, 17298, 167448, 44794, 167449, 43985, 167450, 19521, 167451, 15590, 167452, 17109, 167453, 34288, 167455, 31944, 167465, 38243, 167468, 46443, 167469, 30165, 167470, 41615, 167471, 16327, 167472, 21848, 167473, 36602, 167479, 14142, 167482, 41413, 167483, 25209, 167484, 8411, 167488, 48085, 167489, 17880, 167491, 13968, 167493, 13810, 167494, 41114, 167496, 33534, 167498, 33535, 167499, 42182, 167500, 32443, 167508, 37343, 167511, 8990, 167512, 40879, 167513, 37232, 167514, 10551, 167516, 13527, 167517, 42997, 167521, 10321, 167541, 21986, 167542, 19372, 167544, 46138, 167545, 8246, 167547, 36564, 167552, 29583, 167557, 15429, 167574, 37408, 167576, 39429, 167577, 28583, 167578, 25625, 167581, 47872, 167583, 46529, 167584, 34827, 167585, 48158, 167586, 14966, 167587, 13748, 167588, 29865, 167589, 41758, 167590, 35187, 167591, 31890, 167592, 14177, 167593, 31019, 167595, 31079, 167597, 9399, 167598, 41384, 167605, 47777, 167608, 26870, 167609, 20679, 167615, 45911, 167616, 29788, 167617, 38787, 167618, 41886, 167619, 14766, 167620, 28790, 167622, 46979, 167624, 35610, 167626, 43091, 167628, 23995, 167629, 40918, 167631, 43092, 167634, 37807, 167637, 19396, 167638, 10373, 167639, 13239, 167651, 44827, 167653, 38957, 167655, 25479, 167656, 35611, 167665, 8262, 167666, 39302, 167667, 41894, 167669, 11958, 167671, 22513, 167674, 31627, 167675, 25763, 167676, 8326, 167688, 45974, 167689, 11941, 167690, 38484, 167691, 40768, 167692, 10381, 167693, 17469, 167694, 22169, 167696, 10470, 167697, 9800, 167698, 10036, 167699, 46753, 167700, 41333, 167715, 15970, 167716, 10432, 167717, 42485, 167722, 11207, 167723, 32065, 167724, 40293, 167726, 45983, 167727, 22745, 167729, 22188, 167741, 32066, 167743, 27138, 167744, 42508, 167745, 48276, 167746, 30346, 167748, 34402, 167753, 34596, 167754, 9953, 167757, 13624, 167759, 17016, 167760, 26073, 167761, 41594, 167766, 28728, 167767, 8956, 167775, 37193, 167782, 28619, 167783, 18550, 167784, 31059, 167791, 39318, 167794, 25404, 167799, 24681, 167801, 43170, 167803, 24465, 167804, 35042, 167807, 12321, 167810, 38132, 167813, 11694, 167817, 21559, 167818, 17909, 167820, 44263, 167822, 23181, 167826, 17425, 167827, 15902, 167828, 14662, 167831, 23190, 167834, 16777, 167835, 10794, 167838, 21561, 167841, 35405, 167844, 13245, 167852, 35435, 167856, 31528, 167860, 16787, 167867, 47762, 167870, 36688, 167873, 45006, 167879, 48427, 167887, 38487, 167888, 11986, 167899, 47049, 167904, 34816, 167906, 13410, 167917, 37892, 167935, 10994, 167947, 32989, 167958, 19650, 167964, 13131, 167966, 9580, 167968, 22875, 167971, 37904, 167975, 9514, 167978, 26521, 167979, 29235, 167986, 33154, 167990, 37913, 167996, 33157, 167999, 21137, 168012, 37917, 168030, 9462, 168031, 24258, 168047, 45055, 168052, 45082, 168055, 10494, 168058, 33496, 168066, 18112, 168067, 33459, 168068, 37263, 168070, 15081, 168072, 31601, 168073, 40758, 168077, 11332, 168078, 15452, 168082, 43124, 168083, 13406, 168084, 15277, 168085, 15278, 168086, 45515, 168087, 30391, 168089, 25326, 168093, 33460, 168094, 29482, 168098, 43432, 168099, 26471, 168100, 18486, 168101, 43546, 168102, 8300, 168103, 44204, 168104, 33821, 168106, 40283, 168107, 11206, 168116, 33822, 168117, 13070, 168121, 43171, 168123, 10346, 168124, 16099, 168125, 25643, 168126, 30147, 168127, 45153, 168128, 41912, 168129, 27916, 168131, 35410, 168139, 21418, 168141, 35126, 168142, 29412, 168144, 41467, 168145, 33293, 168146, 14001, 168149, 11405, 168150, 40308, 168152, 37134, 168153, 16174, 168154, 41148, 168156, 23420, 168158, 25352, 168160, 12316, 168161, 45706, 168172, 43368, 168173, 35078, 168175, 44463, 168176, 37387, 168177, 37388, 168180, 7729, 168181, 32463, 168182, 9230, 168183, 12322, 168185, 45710, 168186, 18033, 168190, 18961, 168197, 25865, 168202, 25453, 168203, 32847, 168213, 12478, 168214, 27149, 168215, 39314, 168216, 38293, 168217, 17270, 168218, 48056, 168219, 46492, 168220, 33316, 168221, 12108, 168222, 24529, 168224, 12997, 168225, 24725, 168226, 16323, 168230, 29646, 168234, 43626, 168236, 18071, 168238, 13834, 168239, 38661, 168247, 30012, 168248, 17746, 168250, 25652, 168251, 27936, 168252, 14735, 168253, 26167, 168254, 45554, 168255, 9251, 168256, 13089, 168257, 26799, 168259, 47751, 168260, 26092, 168261, 29394, 168262, 13842, 168263, 9396, 168268, 10390, 168269, 26723, 168278, 38909, 168285, 7443, 168286, 47181, 168288, 28293, 168289, 37442, 168290, 17694, 168293, 13846, 168294, 37556, 168295, 47182, 168296, 9706, 168297, 24569, 168298, 34749, 168302, 9707, 168304, 34959, 168306, 13847, 168308, 19140, 168316, 20210, 168317, 29005, 168318, 12490, 168319, 15526, 168320, 19324, 168321, 19108, 168322, 11665, 168324, 43924, 168325, 33088, 168326, 36787, 168334, 25604, 168337, 35373, 168338, 25386, 168339, 26669, 168340, 13092, 168344, 29439, 168346, 25387, 168349, 24608, 168351, 29029, 168355, 25111, 168356, 33561, 168358, 14803, 168363, 33562, 168366, 25397, 168367, 46006, 168369, 8965, 168370, 24264, 168373, 34972, 168374, 32482, 168375, 20221, 168376, 47959, 168379, 25400, 168380, 25401, 168381, 27243, 168383, 34764, 168388, 25405, 168391, 19197, 168398, 25424, 168399, 20224, 168400, 32130, 168404, 29009, 168405, 21398, 168406, 10374, 168412, 46372, 168413, 31698, 168415, 31702, 168416, 14261, 168419, 33329, 168425, 8147, 168427, 14674, 168430, 14767, 168431, 14703, 168436, 14622, 168437, 22930, 168442, 45254, 168443, 19048, 168445, 14709, 168449, 13848, 168454, 29251, 168455, 28972, 168456, 29429, 168457, 12450, 168458, 12361, 168459, 7328, 168461, 36586, 168462, 10271, 168463, 7582, 168464, 27050, 168465, 28282, 168468, 9286, 168469, 44605, 168470, 39366, 168471, 26614, 168474, 30094, 168476, 13788, 168478, 12656, 168481, 40572, 168482, 28612, 168483, 17200, 168484, 11281, 168485, 34701, 168486, 26688, 168492, 37690, 168493, 43226, 168494, 13180, 168495, 41595, 168497, 38391, 168498, 35384, 168500, 7440, 168501, 23615, 168502, 28287, 168504, 31937, 168505, 27533, 168506, 29136, 168507, 9516, 168508, 9535, 168512, 23706, 168513, 36600, 168514, 42542, 168516, 28677, 168518, 34703, 168523, 11666, 168525, 20335, 168528, 15729, 168532, 20461, 168533, 17064, 168535, 45901, 168537, 26439, 168540, 19379, 168541, 16893, 168545, 20029, 168546, 19709, 168549, 41137, 168551, 14976, 168555, 8512, 168556, 30568, 168559, 44842, 168560, 7508, 168561, 12787, 168564, 14212, 168565, 14866, 168568, 21903, 168569, 28542, 168570, 37378, 168572, 33901, 168573, 15288, 168574, 39254, 168575, 32059, 168576, 30251, 168577, 37640, 168578, 25337, 168579, 26563, 168580, 47361, 168581, 8057, 168583, 44606, 168588, 8284, 168589, 26615, 168591, 19984, 168593, 42101, 168595, 22980, 168596, 20785, 168598, 9028, 168602, 26474, 168603, 16863, 168604, 14047, 168605, 47050, 168609, 46482, 168610, 14240, 168611, 47427, 168612, 7701, 168616, 46483, 168617, 14983, 168618, 13556, 168619, 28668, 168620, 9387, 168621, 13828, 168622, 33394, 168623, 33306, 168624, 8574, 168628, 47067, 168629, 46252, 168630, 9388, 168634, 22199, 168635, 41399, 168639, 39149, 168641, 47931, 168642, 7799, 168643, 42254, 168644, 11116, 168645, 35774, 168646, 30971, 168648, 28412, 168649, 44660, 168650, 14255, 168651, 20180, 168652, 43227, 168653, 39926, 168655, 28828, 168658, 8996, 168663, 17086, 168664, 40165, 168665, 13181, 168668, 21695, 168669, 35639, 168670, 13269, 168671, 15326, 168672, 27514, 168673, 34413, 168674, 41155, 168675, 36400, 168676, 44678, 168679, 40173, 168680, 15327, 168681, 47100, 168682, 28554, 168683, 41156, 168684, 42066, 168686, 15036, 168687, 48255, 168688, 47376, 168689, 41039, 168693, 47434, 168695, 23492, 168697, 43798, 168698, 15874, 168699, 23404, 168701, 14101, 168702, 37905, 168703, 26996, 168707, 18516, 168708, 11118, 168710, 35646, 168711, 35783, 168712, 35647, 168713, 35784, 168714, 41249, 168716, 16215, 168717, 20075, 168719, 9252, 168720, 35785, 168721, 44894, 168728, 35786, 168733, 11463, 168736, 40603, 168737, 17692, 168738, 35592, 168743, 27939, 168744, 10983, 168745, 35416, 168746, 45555, 168747, 26100, 168748, 46037, 168749, 26486, 168750, 40974, 168751, 20206, 168752, 33527, 168754, 40975, 168766, 20534, 168770, 8073, 168771, 26590, 168773, 36913, 168774, 39171, 168777, 32727, 168779, 34048, 168780, 47383, 168782, 20211, 168783, 15527, 168784, 12755, 168787, 43858, 168788, 21702, 168790, 43292, 168791, 7916, 168793, 33330, 168794, 35527, 168796, 13964, 168797, 40356, 168801, 18618, 168805, 32874, 168806, 28563, 168807, 47385, 168808, 16938, 168810, 26492, 168818, 46710, 168819, 40984, 168821, 46711, 168823, 22251, 168824, 21704, 168827, 44880, 168828, 25899, 168831, 9273, 168834, 32729, 168835, 40365, 168841, 39047, 168842, 26406, 168846, 16014, 168849, 48389, 168850, 17334, 168852, 20603, 168853, 33037, 168854, 31530, 168855, 32385, 168856, 29457, 168857, 45007, 168858, 10339, 168859, 15290, 168860, 29502, 168863, 27052, 168866, 36178, 168868, 22733, 168869, 39127, 168875, 14048, 168877, 43172, 168880, 35492, 168882, 39264, 168883, 21975, 168885, 37893, 168887, 43208, 168889, 44661, 168891, 7800, 168892, 37393, 168893, 35775, 168894, 29463, 168898, 9033, 168901, 45206, 168902, 45207, 168903, 13766, 168904, 32934, 168905, 37906, 168911, 38031, 168912, 16928, 168914, 12220, 168915, 39278, 168918, 19194, 168919, 21998, 168920, 35417, 168922, 35522, 168925, 25794, 168926, 7804, 168927, 44699, 168928, 46619, 168929, 16935, 168931, 23170, 168932, 15821, 168933, 12384, 168937, 39571, 168938, 45813, 168939, 33331, 168941, 22650, 168942, 9332, 168943, 9267, 168946, 35528, 168948, 44718, 168949, 9333, 168950, 21535, 168951, 21536, 168953, 22058, 168954, 22263, 168956, 28136, 168957, 45809, 168958, 36160, 168959, 37981, 168960, 39250, 168961, 40264, 168965, 33080, 168966, 19466, 168969, 40343, 168972, 13852, 168973, 48116, 168984, 44890, 168985, 31604, 168986, 15291, 168987, 29626, 168988, 29458, 168990, 43550, 168992, 17844, 168993, 48331, 168995, 16168, 168996, 13470, 168997, 17572, 168998, 38381, 169000, 29391, 169003, 35326, 169004, 22479, 169005, 28829, 169006, 17486, 169007, 15058, 169008, 14256, 169009, 42528, 169012, 36781, 169013, 13476, 169014, 46269, 169015, 33185, 169019, 27940, 169020, 35354, 169022, 23920, 169024, 30387, 169025, 14116, 169026, 47952, 169027, 42545, 169031, 39734, 169032, 16746, 169033, 32565, 169034, 25432, 169037, 7598, 169040, 9855, 169042, 13952, 169043, 31743, 169044, 22903, 169045, 40760, 169046, 18580, 169047, 42162, 169048, 46467, 169049, 36814, 169050, 8281, 169053, 7496, 169055, 22449, 169057, 22906, 169058, 29517, 169059, 44172, 169060, 7581, 169061, 27074, 169062, 27898, 169068, 15376, 169069, 31628, 169070, 23448, 169071, 13521, 169072, 35992, 169075, 31090, 169076, 42349, 169077, 38083, 169078, 18203, 169079, 27906, 169080, 17571, 169081, 41143, 169083, 8532, 169084, 30185, 169086, 12789, 169088, 46424, 169090, 34138, 169091, 22473, 169092, 9681, 169095, 40770, 169096, 46425, 169098, 47515, 169103, 19049, 169104, 10802, 169107, 17960, 169108, 29023, 169109, 28817, 169110, 41913, 169112, 10993, 169113, 15386, 169114, 16718, 169115, 30456, 169117, 16037, 169118, 36817, 169122, 35995, 169123, 31092, 169126, 21607, 169127, 40785, 169128, 30706, 169130, 46484, 169134, 31924, 169136, 14127, 169139, 19070, 169140, 17983, 169141, 31678, 169143, 10301, 169146, 15496, 169148, 17850, 169149, 38873, 169150, 38490, 169151, 26774, 169154, 36320, 169157, 17851, 169168, 9217, 169170, 31577, 169171, 16038, 169174, 15315, 169175, 23237, 169181, 8903, 169182, 21428, 169183, 22480, 169184, 16795, 169186, 15849, 169187, 40794, 169188, 7473, 169189, 45020, 169190, 38656, 169191, 42791, 169192, 21317, 169194, 26075, 169195, 32245, 169196, 37191, 169198, 19882, 169210, 21488, 169211, 22207, 169212, 30024, 169213, 23326, 169216, 37534, 169217, 19092, 169218, 13920, 169219, 44893, 169220, 21004, 169222, 16924, 169223, 15852, 169224, 30263, 169225, 27081, 169226, 47703, 169227, 17439, 169236, 43874, 169237, 31928, 169239, 24065, 169240, 7498, 169241, 29856, 169242, 38277, 169245, 31610, 169247, 31580, 169248, 27613, 169249, 13504, 169250, 27298, 169251, 45886, 169253, 31684, 169254, 42800, 169262, 7837, 169265, 21978, 169267, 45556, 169268, 40976, 169269, 23631, 169270, 26522, 169271, 26523, 169272, 29200, 169273, 8102, 169275, 30288, 169276, 40977, 169280, 7624, 169286, 17962, 169289, 17963, 169290, 45951, 169292, 33343, 169293, 15853, 169295, 30207, 169296, 25006, 169301, 37537, 169302, 41051, 169308, 23218, 169311, 14278, 169312, 17391, 169313, 33332, 169316, 12492, 169322, 41052, 169324, 14283, 169325, 15614, 169327, 12600, 169329, 27223, 169330, 42630, 169331, 28931, 169333, 30068, 169337, 9583, 169342, 44930, 169344, 14287, 169345, 28866, 169348, 43514, 169351, 31305, 169353, 17860, 169354, 25406, 169356, 9920, 169357, 43778, 169362, 16630, 169364, 28736, 169365, 40771, 169366, 35934, 169367, 21265, 169371, 29616, 169373, 24905, 169376, 8156, 169379, 40417, 169380, 37267, 169381, 10228, 169382, 15651, 169384, 18117, 169385, 37757, 169388, 15280, 169389, 29551, 169391, 28346, 169392, 41326, 169393, 41242, 169396, 25569, 169397, 25338, 169398, 41244, 169399, 31995, 169400, 17470, 169401, 42759, 169402, 17354, 169404, 15292, 169405, 7698, 169406, 42760, 169408, 9192, 169412, 17845, 169413, 24467, 169417, 33065, 169418, 38849, 169422, 34391, 169423, 29965, 169424, 18493, 169425, 42770, 169426, 9205, 169427, 9218, 169428, 28440, 169429, 31925, 169432, 38006, 169433, 10354, 169434, 44060, 169436, 38103, 169437, 18953, 169438, 33074, 169442, 17984, 169443, 35164, 169444, 17369, 169445, 29461, 169447, 14635, 169449, 25517, 169450, 47374, 169451, 29812, 169453, 24506, 169456, 11461, 169457, 38888, 169458, 46562, 169460, 8306, 169461, 46587, 169462, 35503, 169463, 41811, 169468, 31633, 169469, 38657, 169470, 24872, 169472, 46165, 169473, 24846, 169477, 20848, 169479, 17856, 169480, 43968, 169482, 23464, 169483, 18072, 169485, 44927, 169486, 17950, 169487, 42529, 169489, 43767, 169490, 41105, 169491, 44067, 169496, 32247, 169500, 36114, 169501, 35648, 169503, 24550, 169504, 35174, 169505, 24551, 169508, 44686, 169511, 43260, 169517, 40681, 169518, 7563, 169519, 37147, 169520, 35355, 169521, 34725, 169523, 44700, 169525, 14993, 169529, 35357, 169530, 37200, 169531, 44701, 169532, 46569, 169533, 46570, 169535, 36237, 169540, 25544, 169542, 10621, 169543, 35432, 169544, 33233, 169551, 16466, 169552, 15001, 169553, 25118, 169554, 29979, 169558, 24632, 169560, 25700, 169561, 11145, 169562, 39955, 169563, 17861, 169564, 40366, 169565, 33839, 169568, 25707, 169569, 17993, 169570, 41088, 169571, 15007, 169573, 7687, 169574, 9136, 169575, 36214, 169576, 35272, 169577, 46143, 169578, 8777, 169579, 35146, 169580, 37175, 169581, 35625, 169582, 39902, 169583, 17803, 169584, 33224, 169586, 14683, 169591, 28978, 169592, 26800, 169597, 18619, 169598, 46713, 169602, 42998, 169604, 44513, 169607, 42721, 169608, 44937, 169609, 10723, 169621, 43480, 169622, 28976, 169623, 32750, 169627, 28162, 169635, 36532, 169637, 7668, 169642, 14365, 169643, 46543, 169644, 14213, 169645, 30282, 169646, 19410, 169647, 28504, 169649, 21477, 169650, 20030, 169653, 15652, 169657, 25327, 169659, 48448, 169662, 8164, 169669, 34531, 169670, 42857, 169671, 29272, 169675, 28391, 169676, 34384, 169678, 26685, 169679, 34385, 169681, 36369, 169688, 16165, 169693, 24060, 169694, 8018, 169695, 44777, 169696, 48502, 169697, 23753, 169698, 40664, 169701, 45315, 169702, 10642, 169703, 20164, 169704, 26931, 169705, 20036, 169706, 44626, 169709, 44627, 169710, 42771, 169714, 26730, 169715, 45316, 169717, 47797, 169718, 36381, 169721, 39128, 169722, 21763, 169723, 45359, 169724, 26060, 169725, 36229, 169728, 47801, 169729, 25353, 169731, 21925, 169734, 19453, 169735, 21997, 169738, 48045, 169740, 44943, 169741, 13411, 169746, 28311, 169750, 10979, 169759, 7511, 169763, 16069, 169765, 9108, 169766, 13368, 169767, 38008, 169772, 32243, 169773, 22644, 169776, 29893, 169777, 22481, 169778, 15322, 169779, 43922, 169781, 37140, 169782, 36976, 169783, 44176, 169784, 42173, 169786, 42390, 169789, 41930, 169800, 39487, 169802, 36393, 169804, 35504, 169808, 11657, 169812, 40849, 169813, 38658, 169814, 9478, 169815, 44662, 169818, 10057, 169819, 39276, 169821, 22588, 169822, 9581, 169823, 9769, 169824, 31936, 169827, 12166, 169829, 35349, 169832, 18408, 169847, 38445, 169848, 44782, 169853, 20571, 169854, 39786, 169855, 45798, 169856, 33155, 169857, 27816, 169859, 33669, 169860, 9628, 169861, 35415, 169862, 11410, 169863, 27299, 169864, 47480, 169865, 10981, 169866, 19898, 169867, 10982, 169881, 24734, 169886, 17172, 169892, 13879, 169893, 39788, 169894, 10533, 169895, 33670, 169896, 24570, 169897, 18793, 169900, 12754, 169903, 24850, 169910, 45236, 169914, 19319, 169915, 25176, 169918, 13645, 169919, 17387, 169920, 43855, 169921, 44929, 169922, 17102, 169923, 25383, 169925, 24774, 169927, 7626, 169928, 12519, 169929, 43284, 169930, 29006, 169931, 33629, 169933, 40462, 169936, 12223, 169937, 44702, 169938, 9486, 169939, 38399, 169940, 9813, 169941, 9265, 169943, 20330, 169950, 27190, 169951, 38037, 169952, 27822, 169957, 34821, 169958, 21016, 169959, 34880, 169960, 19327, 169963, 11591, 169965, 25697, 169966, 18534, 169968, 37328, 169971, 44388, 169974, 10106, 169975, 43864, 169976, 19332, 169978, 23691, 169983, 28131, 169984, 7644, 169985, 15633, 169986, 42832, 169987, 20010, 169989, 12185, 169990, 13355, 169991, 41380, 169992, 32559, 169993, 21989, 169994, 37127, 169995, 40832, 169996, 35121, 169998, 9612, 169999, 10515, 170001, 13328, 170010, 17125, 170015, 38558, 170022, 30711, 170024, 19467, 170030, 23212, 170031, 37909, 170038, 34447, 170039, 15337, 170041, 37150, 170043, 8896, 170045, 35930, 170046, 17401, 170047, 30020, 170051, 44319, 170052, 35935, 170060, 39724, 170062, 40678, 170067, 38297, 170068, 17173, 170069, 29656, 170077, 35973, 170079, 8909, 170080, 39731, 170083, 42882, 170086, 29989, 170087, 18572, 170088, 28028, 170089, 7669, 170091, 14594, 170095, 13320, 170103, 14834, 170106, 21075, 170110, 35593, 170116, 37679, 170117, 15909, 170120, 14835, 170122, 37382, 170124, 38201, 170125, 16526, 170126, 13938, 170128, 46244, 170129, 11678, 170130, 42311, 170132, 7883, 170133, 9385, 170134, 27917, 170136, 30221, 170139, 15981, 170142, 25503, 170145, 32460, 170152, 15657, 170154, 18215, 170155, 27982, 170158, 40666, 170159, 18725, 170160, 15316, 170161, 18934, 170163, 32074, 170164, 20979, 170165, 37324, 170166, 44342, 170167, 27923, 170168, 47289, 170169, 21611, 170171, 34569, 170172, 23084, 170173, 31768, 170174, 25073, 170175, 15497, 170186, 40964, 170198, 25229, 170200, 28830, 170202, 29741, 170204, 15505, 170205, 9392, 170206, 43228, 170209, 9231, 170211, 14099, 170217, 46259, 170219, 24507, 170222, 37110, 170223, 12216, 170225, 26085, 170226, 41598, 170227, 13416, 170228, 31461, 170229, 37652, 170230, 27769, 170231, 48418, 170232, 15516, 170233, 32015, 170234, 8206, 170235, 7586, 170236, 31201, 170241, 32387, 170248, 32365, 170249, 18448, 170250, 39675, 170251, 23364, 170255, 12047, 170258, 42798, 170262, 10691, 170263, 48257, 170264, 28402, 170265, 10619, 170266, 13737, 170267, 43875, 170268, 46288, 170270, 36027, 170271, 42070, 170272, 40176, 170273, 41046, 170275, 13767, 170276, 34702, 170277, 39493, 170278, 39494, 170281, 14112, 170290, 23423, 170296, 38122, 170297, 43972, 170298, 44368, 170301, 36324, 170303, 21138, 170305, 36117, 170306, 30645, 170308, 13002, 170309, 36194, 170310, 26212, 170311, 45998, 170312, 38174, 170313, 19908, 170314, 7523, 170315, 29236, 170316, 30885, 170320, 34161, 170321, 35703, 170324, 27941, 170328, 44073, 170336, 45718, 170339, 42265, 170347, 10958, 170348, 24243, 170349, 44379, 170350, 10071, 170351, 42626, 170354, 10908, 170356, 24244, 170365, 37095, 170367, 48352, 170370, 39505, 170375, 39176, 170377, 8910, 170378, 17272, 170379, 30655, 170380, 33186, 170382, 14697, 170384, 33631, 170392, 18554, 170400, 7957, 170401, 44386, 170402, 44387, 170404, 19674, 170417, 22999, 170418, 48210, 170425, 39696, 170426, 27194, 170435, 24633, 170436, 47134, 170437, 14543, 170438, 25120, 170439, 9463, 170440, 13659, 170441, 16724, 170442, 40631, 170443, 24271, 170444, 30829, 170447, 22256, 170448, 37330, 170450, 21952, 170451, 39956, 170456, 32127, 170460, 47675, 170465, 22264, 170470, 21046, 170472, 47332, 170473, 39594, 170474, 25614, 170475, 42080, 170476, 32444, 170477, 42967, 170478, 25033, 170479, 9075, 170480, 19143, 170481, 19767, 170482, 13455, 170483, 47249, 170484, 32174, 170485, 20896, 170490, 21720, 170492, 8202, 170495, 8321, 170496, 15956, 170497, 11536, 170499, 31029, 170500, 35148, 170501, 38071, 170502, 10584, 170503, 25758, 170504, 44287, 170505, 23416, 170506, 31030, 170507, 12989, 170508, 35692, 170509, 45975, 170511, 14508, 170512, 25094, 170513, 36739, 170514, 19380, 170515, 30930, 170516, 18185, 170519, 44289, 170520, 30773, 170521, 44290, 170522, 37460, 170524, 7724, 170525, 30571, 170526, 33038, 170527, 31271, 170528, 41535, 170529, 39541, 170536, 11603, 170537, 14595, 170539, 23350, 170540, 16962, 170541, 32302, 170542, 14221, 170543, 31756, 170546, 26564, 170547, 22912, 170548, 42307, 170551, 32303, 170552, 11139, 170553, 20072, 170555, 47516, 170557, 13789, 170558, 37481, 170560, 28393, 170564, 41672, 170565, 36897, 170571, 40542, 170572, 16969, 170573, 30097, 170577, 44464, 170578, 17735, 170580, 47921, 170583, 33764, 170584, 44467, 170587, 19883, 170589, 31195, 170590, 34818, 170591, 11583, 170592, 48341, 170593, 24095, 170594, 28516, 170596, 37472, 170597, 45711, 170599, 12479, 170606, 13722, 170607, 8753, 170608, 20849, 170609, 30881, 170610, 17688, 170611, 11008, 170612, 41684, 170614, 41938, 170618, 35087, 170619, 36292, 170620, 42319, 170622, 22562, 170624, 47766, 170625, 16929, 170626, 7283, 170627, 17174, 170632, 35649, 170633, 40978, 170634, 8816, 170636, 15059, 170637, 32019, 170638, 26801, 170640, 17059, 170646, 8623, 170647, 22238, 170648, 11413, 170651, 30361, 170655, 43285, 170658, 30987, 170659, 43294, 170660, 14279, 170661, 25388, 170663, 8628, 170669, 19328, 170670, 27834, 170673, 41289, 170676, 41970, 170680, 24634, 170682, 35977, 170686, 26262, 170688, 22431, 170689, 26926, 170690, 39903, 170695, 7295, 170698, 35695, 170701, 27056, 170703, 17012, 170707, 15846, 170708, 28352, 170709, 17487, 170720, 32305, 170725, 9629, 170726, 33258, 170731, 29822, 170738, 40081, 170739, 39957, 170740, 21738, 170745, 10592, 170746, 28388, 170752, 28452, 170765, 28037, 170767, 33701, 170769, 12993, 170772, 25345, 170774, 46428, 170775, 42312, 170777, 15487, 170778, 31047, 170779, 31761, 170780, 21758, 170781, 9057, 170782, 26844, 170783, 45777, 170784, 35815, 170788, 10945, 170795, 45820, 170797, 34146, 170798, 43936, 170800, 31769, 170801, 12660, 170802, 36470, 170803, 47771, 170805, 43555, 170807, 28396, 170808, 9109, 170809, 23086, 170810, 46855, 170811, 14002, 170812, 11775, 170813, 8021, 170823, 24206, 170826, 21769, 170827, 38212, 170828, 25082, 170831, 38344, 170832, 34269, 170833, 28726, 170834, 26776, 170835, 21532, 170840, 40671, 170845, 38327, 170847, 12664, 170849, 38897, 170850, 7479, 170851, 12217, 170852, 48233, 170853, 17381, 170854, 11462, 170855, 8339, 170857, 13474, 170859, 46058, 170863, 41440, 170866, 12845, 170867, 19207, 170871, 27674, 170874, 15518, 170876, 8026, 170877, 22728, 170878, 26849, 170879, 32528, 170880, 48205, 170881, 30883, 170882, 39204, 170883, 35177, 170884, 40679, 170885, 28180, 170889, 26661, 170894, 45669, 170895, 9969, 170896, 33831, 170897, 38346, 170902, 7284, 170903, 7956, 170904, 17452, 170906, 33231, 170907, 35650, 170908, 36483, 170909, 41540, 170911, 9064, 170912, 32726, 170923, 33402, 170924, 38298, 170927, 7565, 170929, 47732, 170931, 30013, 170932, 35418, 170933, 42627, 170934, 35178, 170935, 13505, 170936, 35179, 170937, 26384, 170947, 14802, 170948, 48500, 170950, 28414, 170951, 12728, 170952, 46781, 170953, 12087, 170954, 24963, 170955, 19722, 170956, 9114, 170957, 11830, 170958, 10623, 170959, 9331, 170961, 33134, 170962, 45375, 170968, 20803, 170971, 42377, 170972, 25949, 170974, 9559, 170984, 28565, 170992, 21019, 170993, 30365, 170994, 47752, 170995, 45380, 171002, 24639, 171005, 23487, 171008, 10964, 171011, 46008, 171021, 8739, 171022, 38269, 171027, 17987, 171031, 30043, 171033, 33334, 171038, 28566, 171039, 14842, 171040, 40843, 171042, 34267, 171044, 21944, 171048, 22248, 171050, 44725, 171052, 17000, 171053, 17005, 171055, 18216, 171058, 24486, 171059, 40158, 171060, 14341, 171061, 44861, 171062, 17129, 171065, 21429, 171067, 22725, 171069, 48198, 171070, 14791, 171072, 29601, 171073, 16070, 171075, 20197, 171076, 28517, 171078, 39495, 171079, 24572, 171080, 10273, 171082, 14346, 171083, 16073, 171084, 44703, 171085, 18264, 171086, 14800, 171087, 7566, 171091, 14376, 171096, 22732, 171097, 22959, 171098, 9268, 171101, 42549, 171102, 20805, 171110, 10276, 171111, 16075, 171112, 32894, 171114, 45056, 171116, 25185, 171121, 44727, 171122, 45062, 171123, 45804, 171124, 39958, 171127, 27628, 171131, 16847, 171132, 21517, 171134, 37434, 171137, 38958, 171138, 37970, 171139, 47892, 171140, 38072, 171141, 23192, 171144, 27046, 171146, 17528, 171147, 17400, 171148, 14623, 171149, 28949, 171150, 44173, 171151, 18477, 171154, 23784, 171168, 47466, 171169, 16862, 171170, 8534, 171171, 20073, 171172, 36655, 171174, 26192, 171175, 22823, 171176, 48428, 171177, 25339, 171178, 30588, 171180, 47469, 171185, 16437, 171186, 48379, 171188, 42001, 171189, 35218, 171191, 23201, 171193, 10122, 171195, 42239, 171198, 44628, 171205, 34540, 171206, 23551, 171207, 43174, 171208, 13498, 171212, 38491, 171213, 43762, 171214, 15317, 171215, 47699, 171216, 15388, 171218, 35327, 171219, 24310, 171220, 42355, 171221, 37227, 171229, 16913, 171233, 26200, 171234, 41931, 171235, 30615, 171236, 23790, 171237, 47478, 171239, 16866, 171240, 18141, 171247, 21318, 171250, 10805, 171253, 21772, 171254, 45713, 171256, 27546, 171264, 47435, 171265, 15662, 171266, 40602, 171267, 19659, 171271, 33465, 171272, 27061, 171273, 45212, 171277, 34478, 171280, 26213, 171281, 44179, 171282, 20572, 171283, 29124, 171288, 21945, 171289, 44180, 171292, 43286, 171293, 36297, 171294, 37919, 171295, 10312, 171296, 25241, 171297, 16496, 171299, 24586, 171300, 25007, 171303, 20646, 171304, 42073, 171305, 8824, 171306, 30648, 171310, 43295, 171313, 8964, 171314, 27192, 171315, 9848, 171317, 15664, 171321, 32115, 171322, 12855, 171323, 23974, 171328, 25407, 171332, 18559, 171333, 32126, 171335, 26407, 171337, 23226, 171341, 31910, 171342, 44445, 171343, 18478, 171347, 24055, 171349, 32616, 171350, 39996, 171351, 35031, 171354, 13711, 171355, 8866, 171360, 28950, 171362, 17729, 171363, 29504, 171365, 14778, 171366, 28082, 171369, 15133, 171372, 18218, 171373, 37723, 171374, 33390, 171376, 20618, 171377, 38559, 171385, 15488, 171393, 9030, 171394, 47608, 171396, 47475, 171397, 10685, 171399, 33959, 171400, 18137, 171401, 9306, 171406, 32462, 171414, 28088, 171416, 24487, 171419, 19992, 171422, 26570, 171425, 27150, 171426, 27987, 171427, 47292, 171428, 39554, 171429, 18959, 171430, 16592, 171431, 21613, 171433, 28089, 171435, 32892, 171437, 38497, 171439, 32848, 171441, 45780, 171457, 29135, 171458, 40166, 171460, 20562, 171467, 24313, 171468, 34546, 171469, 43244, 171470, 12846, 171471, 31661, 171472, 21773, 171475, 47101, 171477, 23758, 171478, 9394, 171479, 23100, 171480, 43245, 171482, 9241, 171495, 10904, 171501, 20567, 171503, 38394, 171504, 41401, 171509, 37244, 171510, 26777, 171512, 14636, 171513, 47942, 171515, 30884, 171517, 35702, 171518, 30634, 171520, 29678, 171521, 8875, 171522, 14931, 171523, 37111, 171524, 18501, 171527, 14266, 171531, 14267, 171534, 13372, 171536, 32853, 171542, 14268, 171550, 41947, 171551, 35046, 171557, 43720, 171558, 28519, 171559, 28520, 171560, 42801, 171577, 27300, 171582, 42414, 171583, 30192, 171584, 11855, 171586, 38133, 171588, 17176, 171589, 43641, 171591, 36785, 171592, 47121, 171593, 14696, 171594, 44074, 171597, 23214, 171598, 7480, 171599, 7736, 171601, 17386, 171614, 28266, 171615, 28235, 171618, 21330, 171621, 37837, 171633, 11291, 171635, 35652, 171636, 36195, 171637, 30650, 171638, 36118, 171639, 38035, 171640, 15695, 171642, 16008, 171644, 17388, 171646, 28183, 171647, 16009, 171652, 46571, 171671, 35705, 171675, 34960, 171677, 28620, 171678, 33201, 171691, 40182, 171695, 48354, 171696, 44383, 171697, 28621, 171698, 30476, 171701, 33921, 171708, 9307, 171723, 23334, 171724, 24252, 171726, 16532, 171734, 41838, 171735, 9398, 171736, 20457, 171738, 38506, 171739, 9709, 171740, 25181, 171741, 47713, 171743, 18908, 171745, 36916, 171746, 45746, 171748, 17767, 171751, 17093, 171761, 21369, 171765, 13286, 171767, 43736, 171772, 47132, 171778, 38041, 171780, 19926, 171781, 32767, 171784, 7628, 171785, 12520, 171786, 26398, 171787, 42550, 171788, 37839, 171794, 31231, 171801, 16012, 171802, 19927, 171814, 48301, 171816, 42814, 171819, 45747, 171821, 25122, 171828, 42553, 171836, 45900, 171840, 11101, 171841, 8828, 171846, 40986, 171847, 43981, 171853, 40367, 171854, 37924, 171855, 24642, 171867, 9274, 171868, 20344, 171869, 9998, 171870, 23336, 171873, 31665, 171879, 34767, 171880, 38941, 171881, 32128, 171888, 26409, 171891, 12540, 171892, 28646, 171893, 24329, 171895, 7745, 171897, 14201, 171898, 15119, 171899, 15453, 171900, 19167, 171901, 45773, 171902, 7400, 171905, 31921, 171906, 11069, 171907, 27511, 171908, 41398, 171909, 37109, 171910, 28515, 171911, 18390, 171912, 34543, 171914, 40795, 171915, 47234, 171916, 22536, 171922, 39891, 171923, 39892, 171924, 11704, 171925, 10864, 171927, 13119, 171928, 43125, 171930, 13322, 171933, 17355, 171934, 37592, 171936, 42860, 171937, 8059, 171938, 43148, 171943, 41394, 171948, 39759, 171955, 8345, 171958, 20972, 171959, 15912, 171960, 45581, 171962, 46487, 171963, 18219, 171964, 38850, 171965, 40404, 171966, 39914, 171967, 15489, 171968, 47229, 171970, 26932, 171971, 40405, 171972, 31186, 171976, 14876, 171977, 7828, 171978, 18542, 171985, 20619, 171987, 8062, 171988, 41435, 171989, 42240, 171995, 39129, 171997, 21926, 171999, 32163, 172000, 45018, 172001, 35843, 172002, 36973, 172003, 27925, 172004, 45707, 172005, 32076, 172007, 15141, 172009, 32077, 172010, 10897, 172012, 44062, 172023, 36389, 172026, 37468, 172029, 37392, 172031, 11178, 172033, 15917, 172040, 44780, 172041, 15918, 172042, 32078, 172047, 21927, 172050, 13271, 172051, 42793, 172052, 34156, 172053, 43230, 172055, 16867, 172056, 20563, 172058, 35082, 172059, 31774, 172061, 14258, 172062, 18726, 172063, 18936, 172064, 41348, 172067, 21771, 172069, 45812, 172070, 10899, 172071, 23867, 172073, 30616, 172074, 40674, 172076, 18896, 172077, 36909, 172090, 15507, 172093, 41349, 172094, 20990, 172095, 27356, 172096, 44664, 172104, 47749, 172105, 20631, 172106, 47102, 172107, 10616, 172109, 21005, 172110, 39930, 172111, 10440, 172112, 24220, 172113, 45025, 172115, 47103, 172116, 23835, 172117, 38395, 172118, 32090, 172120, 37708, 172122, 42622, 172123, 43246, 172124, 23759, 172126, 36958, 172127, 7412, 172128, 22215, 172129, 41940, 172133, 21935, 172135, 46493, 172137, 47104, 172138, 26798, 172142, 40715, 172145, 11408, 172146, 11143, 172152, 31204, 172153, 14694, 172154, 10168, 172156, 27471, 172157, 35351, 172158, 7588, 172160, 15394, 172164, 38124, 172165, 46705, 172166, 27675, 172167, 10129, 172168, 41694, 172169, 44688, 172171, 15519, 172172, 35787, 172173, 19720, 172175, 14795, 172178, 18257, 172179, 21701, 172181, 44472, 172187, 30638, 172188, 26997, 172191, 8878, 172192, 17088, 172196, 27777, 172198, 37653, 172199, 37654, 172212, 21326, 172213, 44689, 172214, 39501, 172217, 11493, 172218, 19668, 172220, 39727, 172221, 29567, 172222, 15523, 172226, 25540, 172228, 33106, 172229, 41176, 172230, 48299, 172232, 21014, 172235, 45891, 172237, 44373, 172238, 44374, 172239, 27001, 172240, 27566, 172241, 26937, 172242, 13962, 172243, 15524, 172251, 20448, 172262, 27548, 172264, 7524, 172269, 22729, 172278, 18038, 172282, 16325, 172284, 38929, 172286, 32728, 172287, 15924, 172288, 29351, 172289, 44877, 172290, 39317, 172293, 33403, 172294, 29746, 172296, 31663, 172297, 43856, 172298, 32102, 172300, 16231, 172302, 16010, 172303, 39402, 172305, 35358, 172309, 7839, 172310, 30651, 172311, 18073, 172315, 38930, 172317, 38447, 172333, 30477, 172334, 18384, 172335, 16810, 172337, 12853, 172338, 33660, 172339, 26626, 172340, 27723, 172341, 19918, 172342, 38993, 172343, 39406, 172344, 19673, 172345, 10170, 172346, 22878, 172347, 10959, 172354, 46040, 172355, 30002, 172356, 35360, 172357, 26303, 172358, 24253, 172359, 27241, 172360, 10960, 172361, 36510, 172363, 25389, 172365, 10911, 172374, 10961, 172377, 10912, 172381, 28735, 172383, 43877, 172398, 27440, 172400, 34554, 172402, 39177, 172404, 14284, 172405, 48068, 172408, 21017, 172409, 19501, 172410, 17992, 172411, 34093, 172412, 24619, 172414, 30480, 172416, 47299, 172417, 34966, 172418, 32116, 172427, 40187, 172439, 34967, 172443, 40809, 172448, 15529, 172463, 29007, 172464, 41542, 172465, 25552, 172466, 20076, 172467, 16811, 172468, 23222, 172469, 10915, 172470, 9560, 172471, 11194, 172473, 17019, 172475, 12418, 172479, 20459, 172481, 12521, 172482, 18075, 172484, 22879, 172486, 11293, 172487, 30996, 172488, 7373, 172490, 29905, 172497, 41407, 172498, 21334, 172499, 27244, 172501, 8966, 172502, 23649, 172503, 16469, 172504, 11100, 172507, 43863, 172508, 16533, 172509, 44390, 172510, 47387, 172525, 9464, 172527, 25554, 172528, 9335, 172529, 26500, 172530, 21021, 172531, 46388, 172532, 27627, 172533, 16735, 172535, 20047, 172537, 23488, 172544, 34480, 172547, 17020, 172550, 27245, 172551, 31065, 172552, 23575, 172554, 17705, 172555, 37151, 172561, 18909, 172568, 17862, 172572, 26172, 172575, 20048, 172581, 16812, 172584, 42633, 172585, 18560, 172592, 26410, 172596, 22265, 172600, 16698, 172603, 32267, 172604, 28737, 172607, 26675, 172610, 45171, 172611, 38187, 172612, 10840, 172613, 10846, 172614, 46670, 172616, 11633, 172617, 47743, 172618, 18425, 172619, 20916, 172620, 32052, 172621, 37012, 172622, 27663, 172623, 26985, 172624, 44320, 172625, 7550, 172626, 7829, 172628, 29732, 172629, 46386, 172630, 25921, 172631, 10876, 172632, 36956, 172634, 20844, 172636, 45876, 172642, 21133, 172643, 25938, 172646, 20441, 172647, 36029, 172648, 10130, 172650, 11717, 172653, 37522, 172654, 11856, 172655, 22500, 172657, 8757, 172664, 38177, 172667, 30990, 172671, 15730, 172674, 19114, 172676, 15700, 172678, 19929, 172679, 15732, 172681, 18521, 172685, 35032, 172688, 15135, 172693, 29802, 172695, 9400, 172700, 8234, 172706, 34268, 172709, 18606, 172711, 16797, 172714, 29226, 172723, 29464, 172725, 43769, 172726, 36820, 172727, 40045, 172729, 47611, 172731, 44361, 172737, 20433, 172740, 32143, 172741, 37655, 172742, 23330, 172743, 47768, 172745, 44690, 172746, 17089, 172747, 30157, 172748, 48436, 172749, 48350, 172751, 47442, 172752, 29100, 172753, 47443, 172758, 29977, 172759, 27310, 172764, 8630, 172765, 35361, 172769, 30364, 172770, 27322, 172779, 42552, 172780, 44476, 172782, 44719, 172784, 47529, 172787, 25402, 172794, 29048, 172798, 25328, 172800, 24975, 172802, 37322, 172804, 8384, 172805, 28178, 172806, 32067, 172808, 29803, 172809, 13522, 172810, 28819, 172811, 37271, 172813, 19434, 172815, 25346, 172819, 22953, 172820, 35328, 172824, 36974, 172830, 28192, 172831, 45544, 172834, 36931, 172835, 15994, 172836, 13792, 172839, 20991, 172841, 36551, 172842, 36690, 172843, 10754, 172844, 32011, 172846, 33400, 172848, 9243, 172849, 24221, 172851, 26485, 172853, 24952, 172854, 34688, 172855, 12735, 172857, 10692, 172858, 27611, 172860, 36234, 172861, 19164, 172863, 28748, 172865, 22358, 172866, 18376, 172868, 26098, 172869, 42537, 172871, 27937, 172872, 10289, 172876, 35663, 172878, 22648, 172879, 15525, 172881, 10274, 172884, 35651, 172887, 31830, 172891, 35359, 172893, 45213, 172895, 35654, 172896, 22924, 172897, 9262, 172899, 25814, 172900, 27951, 172902, 24776, 172903, 41162, 172904, 35655, 172905, 26671, 172906, 8631, 172914, 36487, 172916, 24745, 172917, 35975, 172918, 33635, 172920, 32121, 172921, 13658, 172922, 18624, 172923, 33260, 172927, 23148, 172931, 28875, 172933, 28876, 172934, 26411, 172935, 48528, 172936, 43025, 172937, 39622, 172938, 10265, 172939, 36714, 172946, 34866, 172948, 27353, 172951, 27281, 172955, 37647, 172957, 8235, 172958, 31190, 172960, 27831, 172963, 25532, 172964, 38396, 172966, 27026, 172968, 36960, 172971, 28041, 172973, 27003, 172978, 48573, 172980, 37269, 172981, 22557, 172982, 37272, 172986, 10355, 172987, 46614, 172989, 10951, 172990, 36508, 172992, 47090, 172993, 9958, 172994, 9963, 172997, 31634, 172998, 37245, 172999, 18962, 173000, 32368, 173001, 45887, 173002, 20199, 173003, 9970, 173005, 18791, 173007, 18904, 173008, 10759, 173010, 18792, 173011, 17812, 173012, 45156, 173014, 37121, 173015, 8663, 173017, 18798, 173018, 45157, 173023, 27952, 173024, 16182, 173026, 16183, 173028, 16940, 173030, 9993, 173032, 32374, 173033, 32986, 173034, 23149, 173035, 30014, 173038, 32869, 173042, 28975, 173043, 18366, 173044, 21173, 173045, 28614, 173046, 8069, 173048, 28552, 173050, 8591, 173051, 18242, 173052, 24207, 173055, 47436, 173056, 28121, 173058, 32283, 173059, 15037, 173060, 8392, 173061, 24235, 173062, 8908, 173063, 28645, 173064, 13438, 173067, 24742, 173068, 28623, 173069, 24746, 173070, 26525, 173071, 46277, 173075, 19998, 173076, 42815, 173078, 25726, 173080, 43127, 173085, 12315, 173086, 13714, 173091, 42865, 173093, 35876, 173094, 17402, 173095, 34680, 173100, 37594, 173102, 35329, 173103, 42316, 173104, 14399, 173106, 46489, 173114, 13559, 173115, 20185, 173119, 29393, 173120, 18900, 173122, 9845, 173123, 33524, 173124, 25868, 173126, 44682, 173128, 41949, 173129, 37656, 173130, 31390, 173131, 26355, 173132, 44691, 173135, 37093, 173136, 38125, 173138, 37290, 173141, 19169, 173142, 8207, 173143, 31466, 173145, 21139, 173146, 23536, 173148, 46865, 173149, 44375, 173151, 11718, 173158, 42543, 173159, 13281, 173160, 9847, 173161, 13091, 173162, 26667, 173164, 12756, 173165, 37838, 173166, 28678, 173167, 24073, 173168, 8997, 173169, 38448, 173171, 46436, 173174, 32798, 173175, 37538, 173176, 27438, 173177, 21088, 173179, 18039, 173181, 45838, 173182, 32873, 173183, 48067, 173184, 29352, 173186, 27953, 173188, 27441, 173190, 30478, 173191, 27954, 173194, 46709, 173195, 7840, 173197, 27622, 173199, 26106, 173201, 30481, 173202, 10963, 173204, 24259, 173205, 43300, 173208, 12761, 173209, 12088, 173211, 13854, 173212, 26574, 173213, 41846, 173215, 45631, 173216, 41847, 173217, 13855, 173218, 30320, 173221, 45050, 173225, 19331, 173226, 26627, 173227, 20341, 173228, 29008, 173229, 31557, 173231, 31558, 173234, 42554, 173236, 35852, 173241, 20223, 173244, 9814, 173246, 12494, 173247, 36308, 173248, 24644, 173251, 28698, 173252, 9999, 173253, 45403, 173258, 44736, 173260, 48467, 173261, 8665, 173264, 11216, 173272, 32425, 173274, 32431, 173275, 42006, 173276, 9280, 173281, 11914, 173292, 27311, 173294, 22672, 173296, 11920, 173303, 38996, 173305, 26526, 173307, 34168, 173308, 13014, 173311, 34169, 173314, 13331, 173315, 21447, 173317, 44855, 173318, 15658, 173322, 19115, 173323, 19454, 173325, 29640, 173327, 12718, 173329, 8310, 173332, 29395, 173333, 35789, 173335, 44786, 173336, 15819, 173337, 44787, 173343, 19997, 173347, 22814, 173350, 13478, 173353, 39506, 173354, 30826, 173356, 33187, 173360, 43567, 173363, 25701, 173366, 36271, 173367, 25706, 173370, 32617, 173373, 43563, 173374, 30154, 173375, 30315, 173376, 44866, 173377, 32761, 173379, 14626, 173383, 17404, 173384, 27292, 173385, 18251, 173386, 48059, 173388, 25368, 173389, 21450, 173390, 32763, 173394, 30158, 173395, 16722, 173396, 14374, 173405, 11917, 173406, 22359, 173414, 40694, 173416, 14348, 173417, 36485, 173419, 42074, 173421, 7371, 173422, 18266, 173423, 38994, 173425, 18267, 173427, 34963, 173428, 24323, 173430, 43301, 173431, 16467, 173433, 36120, 173440, 32375, 173441, 48211, 173442, 24265, 173444, 20807, 173447, 14544, 173448, 30366, 173449, 34973, 173451, 21023, 173452, 25906, 173453, 24645, 173454, 10000, 173456, 42352, 173461, 18901, 173465, 17990, 173466, 13001, 173467, 31941, 173468, 22225, 173470, 29897, 173474, 23167, 173477, 39042, 173478, 36328, 173481, 40982, 173487, 8698, 173490, 17576, 173491, 24748, 173494, 35365, 173495, 25008, 173500, 21141, 173505, 24646, 173506, 10001, 173509, 30609, 173510, 30618, 173513, 48064, 173515, 48066, 173517, 30656, 173519, 30659, 173520, 48072, 173522, 45803, 173523, 45805, 173524, 29268, 173526, 21696, 173529, 41818, 173532, 17431, 173533, 28181, 173540, 41825, 173542, 45999, 173543, 34270, 173544, 46777, 173549, 45670, 173556, 32766, 173557, 45671, 173559, 43289, 173560, 27759, 173561, 41471, 173563, 47125, 173565, 23406, 173566, 39282, 173568, 29947, 173569, 35801, 173571, 42880, 173574, 40683, 173575, 45801, 173577, 14007, 173578, 14275, 173582, 43453, 173584, 14280, 173585, 35374, 173586, 7416, 173587, 12113, 173589, 37399, 173591, 37400, 173592, 39283, 173595, 11589, 173597, 35375, 173605, 19923, 173606, 31104, 173607, 48355, 173608, 45802, 173609, 45160, 173610, 46004, 173612, 42809, 173618, 41472, 173619, 44946, 173625, 17702, 173626, 30887, 173630, 9772, 173635, 29207, 173640, 18268, 173642, 41971, 173644, 31471, 173645, 9272, 173646, 31205, 173647, 21089, 173659, 28625, 173662, 10079, 173663, 31584, 173665, 45433, 173668, 43516, 173669, 40368, 173671, 30660, 173672, 20462, 173675, 40810, 173677, 45632, 173679, 14291, 173683, 48305, 173684, 42884, 173689, 46784, 173690, 24647, 173693, 24648, 173694, 43456, 173697, 24751, 173699, 10002, 173701, 22266, 173703, 45269, 173710, 45806, 173711, 29936, 173713, 25664, 173715, 25665, 173720, 25672, 173725, 25687, 173728, 25693, 173730, 26803, 173733, 46280, 173740, 15726, 173741, 16264, 173742, 32432, 173743, 11918, 173744, 20645, 173751, 9282, 173753, 47622, 173754, 31833, 173755, 42007, 173760, 40057, 173762, 18937, 173763, 32026, 173768, 25434, 173770, 43452, 173774, 29907, 173778, 24750, 173981, 13941, 174152, 7759, 174159, 45867, 174254, 26229, 174602, 35085, 174615, 22059, 174749, 43815, 175801, 29067, 175824, 11729, 176034, 39599, 176225, 24396, 176264, 14770, 176281, 35335, 176348, 22851, 176424, 10654, 176440, 41274, 176688, 30872, 176848, 16210, 176896, 19406, 176936, 26358, 176985, 42900, 176991, 42652, 176994, 28331, 177008, 39004, 177010, 39990, 177099, 22061, 177156, 44963, 177158, 23005, 177161, 25272, 177168, 28501, 177171, 9362, 177334, 17264, 177383, 15102, 177385, 11732, 177422, 22206, 177592, 44924, 177632, 46010, 177638, 9364, 177639, 35254, 177646, 18746, 177652, 45875, 177693, 22090, 177699, 17316, 177700, 7266, 177704, 36350, 177800, 40901, 177801, 17910, 177810, 15221, 177812, 18933, 177813, 34139, 177817, 30310, 177837, 25114, 177883, 46654, 177886, 22107, 177890, 28892, 177910, 10875, 177912, 36370, 178257, 43314, 181500, 37184, 181805, 10368, 182565, 47689, 183246, 37172, 183843, 39374 diff --git a/polardbx-optimizer/src/main/resources/com/alibaba/polardbx/optimizer/config/table/collation/zh_plane.yml b/polardbx-optimizer/src/main/resources/com/alibaba/polardbx/optimizer/config/table/collation/zh_plane.yml new file mode 100644 index 000000000..72ebfcbae --- /dev/null +++ b/polardbx-optimizer/src/main/resources/com/alibaba/polardbx/optimizer/config/table/collation/zh_plane.yml @@ -0,0 +1,441 @@ +0: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 1, 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 3, 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 513, 514, 515, 516, 517, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 521, 608, 780, 920, 7186, 921, 918, 773, 791, 792, 911, 1558, 546, 525, 631, 916, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 569, 564, 1562, 1563, 1564, 614, 910, 48580, 48605, 48631, 48652, 48679, 48738, 48753, 48789, 48815, 48841, 48866, 48884, 48935, 48950, 48986, 49033, 49054, 49072, 49134, 49170, 49202, 49248, 49266, 49276, 49288, 49310, 793, 917, 794, 1157, 523, 1154, 48580, 48605, 48631, 48652, 48679, 48738, 48753, 48789, 48815, 48841, 48866, 48884, 48935, 48950, 48986, 49033, 49054, 49072, 49134, 49170, 49202, 49248, 49266, 49276, 49288, 49310, 795, 1566, 796, 1568, 0, 0, 0, 0, 0, 0, 518, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 521, 609, 7185, 7187, 7184, 7188, 1567, 905, 1161, 1412, 48580, 789, 1565, 0, 1413, 1158, 1270, 1559, 7231, 7232, 1155, 49480, 907, 651, 1164, 7230, 48986, 790, 7230, 7230, 7232, 615, 48580, 48580, 48580, 48580, 48580, 48580, 48580, 48631, 48679, 48679, 48679, 48679, 48815, 48815, 48815, 48815, 48652, 48950, 48986, 48986, 48986, 48986, 48986, 1561, 48986, 49202, 49202, 49202, 49202, 49288, 49357, 49134, 48580, 48580, 48580, 48580, 48580, 48580, 48580, 48631, 48679, 48679, 48679, 48679, 48815, 48815, 48815, 48815, 48652, 48950, 48986, 48986, 48986, 48986, 48986, 1560, 48986, 49202, 49202, 49202, 49202, 49288, 49357, 49288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 31, 31, 32, 32, 32, 32, 32, 32, 31, 31, 32, 32, 31, 31, 32, 32, 32, 32, 31, 31, 32, 32, 32, 32, 32, 31, 31, 32, 32, 32, 32, 32, 31, 31, 32, 32, 32, 32, 32, 32, 31, 31, 32, 32, 31, 31, 32, 32, 32, 32, 31, 31, 32, 32, 32, 32, 32, 31, 31, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 0, 27, 2, 2, 2, 2, 2, 2, 2, 2, 2, 20, 2, 2, 0, 2, 2, 2, 2, 20, 20, 2, 4, 2, 2, 2, 20, 20, 2, 30, 30, 30, 2, 2, 2, 8, 8, 8, 8, 10, 8, 2, 2, 8, 8, 2, 2, 8, 8, 10, 8, 2, 2, 8, 8, 8, 2, 8, 2, 2, 8, 8, 8, 8, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 8, 2, 2, 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, 1574, 1574, 1574, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 0, 281, 279, 39, 45, 43, 41, 272, 48, 281, 279, 39, 43, 281, 279, 39, 43, 272, 45, 281, 279, 39, 45, 43, 0, 47, 281, 279, 39, 282, 36, 0, 272, 281, 279, 39, 45, 43, 41, 272, 48, 281, 279, 39, 43, 281, 279, 39, 43, 272, 45, 281, 279, 39, 45, 43, 0, 47, 281, 279, 39, 282, 36, 0, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 30, 30, 0, 33, 33, 2, 2, 2, 2, 4, 2, 33, 33, 2, 2, 33, 33, 2, 2, 4, 2, 33, 33, 2, 2, 2, 0, 2, 33, 33, 2, 33, 2, 0, 4, 0, 0, 2, 2, 2, 2, 4, 2, 0, 0, 2, 2, 0, 0, 2, 2, 4, 2, 0, 0, 2, 2, 2, 0, 2, 0, 0, 2, 0, 2, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7233, 7231, 7233, 0, 0, 0, 0, 0, 0, 0, 48679, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49134, 0, 0, 0, 0, 0, 0, 48679, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 30, 30, 0, 0, 0, 0, 0, 0, 0, 10, 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, 4, 0, 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: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 3, 3, 3, 3, 4, 4, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 3, 3, 4, 4, 3, 3, 48580, 48580, 48580, 48580, 48580, 48580, 48631, 48631, 48631, 48631, 48631, 48631, 48631, 48631, 48652, 48652, 48652, 48652, 48679, 48679, 48679, 48679, 48679, 48679, 48679, 48679, 48679, 48679, 48753, 48753, 48753, 48753, 48753, 48753, 48753, 48753, 48789, 48789, 48789, 48789, 48815, 48815, 48815, 48815, 48815, 48815, 48815, 48815, 48815, 48819, 48815, 48815, 48841, 48841, 48866, 48866, 49068, 48884, 48884, 48884, 48884, 48884, 48884, 48884, 48884, 48884, 48884, 48950, 48950, 48950, 48950, 48950, 48950, 49403, 48981, 48981, 48986, 48986, 48986, 48986, 48986, 48986, 48986, 48986, 49072, 49072, 49072, 49072, 49072, 49072, 49134, 49134, 49134, 49134, 49134, 49134, 49134, 49134, 49170, 49170, 49170, 49170, 49175, 49175, 49202, 49202, 49202, 49202, 49202, 49202, 49202, 49202, 49202, 49202, 49202, 49202, 49266, 49266, 49288, 49288, 49288, 49310, 49310, 49310, 49310, 49310, 49310, 49134, 48613, 48622, 48626, 48626, 49390, 49390, 49005, 48642, 48642, 48660, 48664, 48669, 48669, 49310, 48693, 48698, 48703, 48747, 48747, 48771, 48781, 48797, 48836, 48830, 48872, 48872, 48895, 48927, 49233, 48961, 48965, 49018, 48986, 48986, 48785, 48785, 49042, 49042, 49077, 49382, 49382, 49151, 49157, 49181, 49185, 49185, 49189, 49202, 49202, 49243, 49255, 49300, 49300, 49315, 49315, 49339, 49344, 49344, 49349, 49375, 49386, 49386, 49170, 49363, 49430, 49434, 49438, 49442, 48652, 48652, 48652, 48884, 48884, 48884, 48950, 48950, 48950, 48580, 48580, 48815, 48815, 48986, 48986, 49202, 49202, 49202, 49202, 49202, 49202, 49202, 49202, 49202, 49202, 48693, 48580, 48580, 48580, 48580, 48580, 48580, 48766, 48766, 48753, 48753, 48866, 48866, 48986, 48986, 48986, 48986, 49339, 49339, 48841, 48652, 48652, 48652, 48753, 48753, 48797, 49363, 48950, 48950, 48580, 48580, 48580, 48580, 48986, 48986, 31, 31, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 31, 31, 32, 32, 32, 32, 32, 32, 31, 31, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 31, 31, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 31, 31, 32, 32, 31, 31, 32, 32, 32, 31, 31, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 31, 31, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 31, 31, 31, 31, 31, 31, 31, 31, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 31, 31, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 31, 31, 32, 32, 32, 32, 32, 32, 2, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 2, 2, 8, 2, 8, 2, 8, 2, 2, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 2, 2, 8, 2, 8, 2, 8, 2, 10, 4, 8, 2, 8, 2, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 2, 2, 8, 2, 2, 2, 4, 8, 2, 2, 2, 8, 2, 8, 2, 10, 4, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 2, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 8, 2, 8, 2, 8, 2, 4, 2, 8, 8, 2, 8, 2, 8, 8, 2, 8, 8, 8, 2, 4, 8, 8, 8, 8, 2, 8, 8, 2, 8, 8, 8, 2, 2, 2, 8, 8, 2, 8, 8, 2, 8, 2, 8, 2, 8, 8, 2, 8, 2, 2, 8, 2, 8, 8, 2, 8, 8, 8, 2, 8, 2, 8, 8, 2, 2, 2, 8, 2, 4, 2, 2, 2, 2, 2, 10, 10, 4, 10, 10, 4, 10, 10, 4, 2, 2, 2, 2, 2, 2, 2, 2, 8, 8, 8, 8, 8, 8, 8, 8, 2, 8, 2, 8, 2, 10, 4, 8, 2, 8, 2, 8, 2, 8, 2, 2, 2, 8, 2, 2, 10, 10, 4, 8, 2, 8, 8, 2, 2, 8, 2, 10, 4, 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, 48841, 48841, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48950, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49266, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49134, 0, 0, 0, 0, 0, 49310, 49310, 49310, 48841, 48841, 48841, 48841, 48841, 48841, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49310, 49310, 49310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 278, 278, 38, 38, 49, 49, 36, 36, 39, 39, 46, 46, 40, 40, 40, 40, 57, 57, 278, 278, 38, 38, 46, 46, 49, 49, 280, 280, 39, 39, 38, 38, 46, 46, 48, 48, 39, 39, 57, 57, 45, 45, 278, 278, 38, 38, 49, 49, 46, 0, 32, 32, 39, 39, 48, 48, 0, 36, 36, 48, 48, 40, 40, 272, 272, 57, 57, 279, 279, 48, 48, 280, 280, 32, 0, 0, 278, 278, 38, 38, 44, 44, 272, 272, 36, 36, 48, 48, 40, 40, 36, 36, 39, 39, 48, 48, 40, 40, 48, 48, 40, 40, 0, 0, 45, 45, 278, 278, 38, 38, 41, 41, 44, 44, 49, 49, 39, 39, 39, 39, 43, 36, 36, 46, 46, 40, 40, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 280, 280, 280, 280, 280, 280, 280, 280, 278, 278, 279, 279, 280, 280, 281, 281, 0, 43, 43, 46, 46, 272, 272, 0, 0, 40, 40, 40, 40, 49, 49, 278, 278, 40, 40, 40, 32, 32, 32, 36, 36, 0, 0, 281, 281, 41, 41, 272, 272, 47, 47, 33, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 33, 0, 2, 2, 2, 2, 2, 2, 33, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 33, 0, 2, 2, 2, 2, 2, 0, 10, 4, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 33, 0, 2, 2, 33, 0, 4, 0, 0, 33, 0, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 33, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 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, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 10, 4, 4, 10, 4, 4, 10, 4, 4, 33, 0, 33, 0, 33, 0, 33, 0, 33, 0, 33, 0, 33, 0, 33, 0, 0, 2, 2, 2, 2, 4, 4, 0, 0, 2, 2, 2, 2, 2, 2, 33, 0, 2, 2, 2, 10, 4, 4, 2, 2, 0, 0, 33, 0, 2, 2, 4, 4, 2, 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, 48679, 48679, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48679, 48679, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48679, 48679, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 50, 36, 36, 40, 40, 37, 37, 0, 50, 50, 50, 50, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 49, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 36, 32, 32, 36, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 10, 4, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 10, 4, 2, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 2, 2, 0, 0 +2: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 2, 2, 3, 3, 2, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 48580, 48580, 48580, 48580, 48679, 48679, 48679, 48679, 48815, 48815, 48815, 48815, 48986, 48986, 48986, 48986, 49072, 49072, 49072, 49072, 49202, 49202, 49202, 49202, 49134, 49134, 49170, 49170, 49306, 49306, 48789, 48789, 48965, 48673, 49028, 49028, 49321, 49321, 48580, 48580, 48679, 48679, 48986, 48986, 48986, 48986, 48986, 48986, 48986, 48986, 49288, 49288, 48917, 48975, 49193, 48845, 48652, 49054, 48585, 48636, 48636, 48895, 49179, 49145, 49333, 49398, 49398, 48613, 49213, 49262, 48686, 48686, 48850, 48850, 49064, 49064, 49084, 49084, 49296, 49296, 48590, 48594, 48600, 48622, 49005, 48646, 48660, 48664, 48708, 48698, 48712, 48703, 48716, 48722, 48726, 48858, 48771, 48757, 48762, 48781, 48734, 49221, 48802, 48809, 48830, 48836, 48823, 48900, 48906, 48912, 48922, 49233, 49239, 48942, 48961, 48971, 48954, 49018, 48993, 49023, 49049, 49089, 49094, 49099, 49104, 49108, 49113, 49118, 49077, 49127, 49141, 49151, 48862, 49161, 49166, 49198, 49189, 49213, 49243, 49255, 49262, 49272, 48931, 49292, 49325, 49329, 49339, 49353, 49394, 49409, 49426, 49446, 49450, 48609, 48730, 48775, 48793, 48854, 48880, 48888, 49060, 49418, 49422, 48652, 48652, 48652, 49170, 49170, 49170, 48738, 48884, 48884, 49454, 49458, 49225, 49229, 48789, 48802, 48841, 49072, 49089, 49099, 49127, 49266, 49288, 1171, 1173, 48813, 49403, 48814, 49405, 49413, 49402, 49414, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 7160, 7161, 1188, 1189, 1190, 1191, 1192, 1193, 1159, 1160, 1162, 1165, 1156, 1163, 1194, 1195, 48781, 48884, 49134, 49276, 49409, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 49404, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 2, 2, 2, 2, 4, 4, 8, 8, 2, 8, 8, 2, 2, 8, 2, 8, 8, 8, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 20, 20, 20, 20, 20, 20, 20, 20, 20, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 20, 20, 20, 20, 20, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 48605, 49033, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49310, 49339, 49329, 49134, 49151, 48646, 48981, 49134, 49310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 60, 62, 62, 60, 60, 62, 62, 60, 60, 62, 62, 60, 60, 62, 62, 60, 60, 62, 62, 60, 60, 62, 62, 69, 69, 69, 69, 0, 0, 40, 40, 0, 0, 0, 0, 0, 0, 46, 46, 48, 48, 43, 43, 45, 45, 46, 46, 46, 46, 50, 50, 0, 0, 0, 0, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 50, 50, 50, 0, 0, 50, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 2, 2, 2, 0, 0, 2, 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 +3: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 1, 1, 1, 2, 2, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48580, 48679, 48815, 48986, 49202, 48631, 48652, 48789, 48935, 49072, 49170, 49248, 49276, 49472, 49472, 49505, 49505, 1171, 1172, 49469, 49469, 63010, 63010, 49475, 49494, 49493, 49495, 564, 49476, 63010, 63010, 63010, 63010, 1155, 1161, 49462, 651, 49467, 49473, 49475, 63010, 49483, 63010, 49497, 49502, 49475, 49462, 49463, 49464, 49466, 49467, 49471, 49473, 49474, 49475, 49477, 49478, 49480, 49481, 49482, 49483, 49484, 49489, 63010, 49492, 49496, 49497, 49498, 49499, 49500, 49502, 49475, 49497, 49462, 49467, 49473, 49475, 49497, 49462, 49463, 49464, 49466, 49467, 49471, 49473, 49474, 49475, 49477, 49478, 49480, 49481, 49482, 49483, 49484, 49489, 49492, 49492, 49496, 49497, 49498, 49499, 49500, 49502, 49475, 49497, 49483, 49497, 49502, 49477, 49463, 49474, 49497, 49497, 49497, 49498, 49484, 49477, 49488, 49488, 49470, 49470, 49468, 49468, 49487, 49487, 49504, 49504, 49538, 49538, 49543, 49543, 49544, 49544, 49547, 49547, 49554, 49554, 49557, 49557, 49561, 49561, 49477, 49489, 49492, 49476, 49474, 49467, 1553, 49506, 49506, 49492, 49486, 49486, 49491, 49494, 49493, 49495, 37, 36, 39, 45, 50, 58, 38, 46, 43, 59, 41, 44, 40, 51, 51, 60, 61, 62, 51, 34, 35, 51, 52, 52, 52, 52, 51, 63, 52, 52, 52, 52, 52, 64, 65, 66, 67, 68, 69, 48, 49, 52, 52, 52, 52, 70, 71, 52, 72, 73, 33, 52, 74, 57, 53, 53, 47, 75, 52, 52, 52, 51, 51, 51, 37, 36, 42, 34, 43, 76, 51, 52, 52, 52, 51, 51, 51, 52, 52, 0, 51, 51, 51, 52, 52, 52, 52, 51, 77, 52, 52, 51, 52, 51, 51, 52, 78, 79, 52, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 2, 8, 2, 2, 2, 8, 2, 2, 2, 4, 2, 2, 2, 2, 8, 2, 2, 2, 2, 2, 2, 8, 2, 8, 8, 8, 2, 8, 2, 8, 8, 2, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 2, 8, 8, 8, 8, 8, 8, 8, 8, 8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 25, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 10, 4, 4, 10, 10, 10, 4, 4, 4, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 4, 4, 4, 2, 10, 4, 2, 8, 2, 10, 8, 2, 2, 8, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33656, 33657, 0, 0, 0, 0, 0, 0, 33664, 33665, 33666, 33667, 0, 0, 0, 0, 0, 0, 0, 33675, 0, 33677, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33698, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49462, 0, 0, 0, 0, 0, 0, 0, 49462, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 36, 0, 36, 36, 36, 0, 36, 0, 36, 36, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 43, 36, 36, 36, 36, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 43, 36, 36, 36, 32, 0, 0, 0, 36, 43, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 2, 0, 2, 2, 2, 0, 2, 0, 2, 2, 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, 2, 2, 2, 2, 2, 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, 2, 2, 2, 2, 4, 0, 0, 0, 2, 2, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49475, 0, 0, 0, 0, 0, 0, 0, 49475, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +4: 2, 2, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 49623, 49623, 49613, 49587, 49627, 49649, 49669, 49669, 49678, 49721, 49759, 49814, 49683, 49661, 49818, 49916, 49567, 49579, 49583, 49587, 49607, 49623, 49631, 49641, 49661, 49674, 49683, 49709, 49728, 49737, 49764, 49772, 49785, 49794, 49803, 49818, 49835, 49839, 49878, 49889, 49920, 49925, 49932, 49937, 49941, 49954, 49958, 49964, 49567, 49579, 49583, 49587, 49607, 49623, 49631, 49641, 49661, 49674, 49683, 49709, 49728, 49737, 49764, 49772, 49785, 49794, 49803, 49818, 49835, 49839, 49878, 49889, 49920, 49925, 49932, 49937, 49941, 49954, 49958, 49964, 49623, 49623, 49613, 49587, 49627, 49649, 49669, 49669, 49678, 49721, 49759, 49814, 49683, 49661, 49818, 49916, 49861, 49861, 49949, 49949, 49969, 49969, 49973, 49973, 49983, 49983, 49978, 49978, 49988, 49988, 49992, 49992, 49996, 49996, 50000, 50000, 50004, 50004, 50004, 50004, 49831, 49831, 49874, 49874, 49870, 49870, 49865, 49865, 49781, 49781, 1271, 0, 0, 0, 0, 0, 0, 0, 49665, 49665, 49945, 49945, 49789, 49789, 49587, 49587, 49591, 49591, 49599, 49599, 49637, 49637, 49619, 49619, 49687, 49687, 49703, 49703, 49699, 49699, 49695, 49695, 49746, 49746, 49755, 49755, 49777, 49777, 50009, 50009, 49799, 49799, 49809, 49809, 49822, 49822, 49826, 49826, 49851, 49851, 49884, 49884, 49895, 49895, 49903, 49903, 49855, 49855, 49908, 49908, 49912, 49912, 50014, 49631, 49631, 49691, 49691, 49714, 49714, 49750, 49750, 49742, 49742, 49899, 49899, 49732, 49732, 50014, 49567, 49567, 49567, 49567, 49575, 49575, 49623, 49623, 49571, 49571, 49571, 49571, 49631, 49631, 49641, 49641, 49654, 49654, 49661, 49661, 49661, 49661, 49764, 49764, 49768, 49768, 49768, 49768, 49954, 49954, 49818, 49818, 49818, 49818, 49818, 49818, 49889, 49889, 49603, 49603, 49937, 49937, 49595, 49595, 49843, 49843, 49847, 49847, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 80, 51, 35, 34, 51, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 2, 2, 2, 2, 2, 2, 0, 0, 8, 2, 8, 2, 8, 2, 10, 4, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 43, 0, 36, 0, 0, 0, 43, 0, 0, 0, 0, 36, 37, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 43, 0, 36, 0, 0, 0, 43, 0, 0, 0, 0, 36, 37, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 38, 43, 43, 0, 0, 38, 38, 0, 0, 43, 43, 43, 43, 43, 43, 0, 0, 50, 50, 43, 43, 43, 43, 0, 0, 43, 43, 43, 43, 50, 50, 43, 43, 44, 44, 43, 43, 0, 0, 43, 43, 0, 0, 0, 0, 0, 0, 2, 2, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 2, 2, 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, 2, 2, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 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, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 0, 0, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0 +5: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 49611, 49611, 49618, 49618, 49646, 49646, 49659, 49659, 49726, 49726, 49763, 49763, 49798, 49798, 49808, 49808, 49647, 49647, 49719, 49719, 49727, 49727, 49793, 49793, 49968, 49968, 49708, 49708, 50013, 50013, 49707, 49707, 49720, 49720, 49754, 49754, 49776, 49776, 49859, 49859, 49741, 49741, 49635, 49635, 49893, 49893, 49718, 49718, 63010, 50189, 50190, 50191, 50192, 50193, 50194, 50195, 50196, 50197, 50198, 50199, 50200, 50201, 50202, 50203, 50204, 50205, 50206, 50207, 50208, 50209, 50210, 50211, 50212, 50213, 50214, 50215, 50216, 50217, 50218, 50219, 50220, 50221, 50222, 50223, 50224, 50225, 50226, 63010, 63010, 50227, 971, 972, 610, 550, 617, 973, 63010, 50189, 50190, 50191, 50192, 50193, 50194, 50195, 50196, 50197, 50198, 50199, 50200, 50201, 50202, 50203, 50204, 50205, 50206, 50207, 50208, 50209, 50210, 50211, 50212, 50213, 50214, 50215, 50216, 50217, 50218, 50219, 50220, 50221, 50222, 50223, 50224, 50225, 50226, 50193, 63010, 570, 526, 63010, 63010, 1272, 1273, 7189, 63010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 974, 0, 975, 0, 0, 976, 0, 0, 977, 0, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 50228, 50229, 50230, 50231, 50232, 50233, 50234, 50235, 50236, 50237, 50238, 50238, 50239, 50240, 50240, 50241, 50241, 50242, 50243, 50244, 50244, 50245, 50245, 50246, 50247, 50248, 50249, 63010, 63010, 63010, 63010, 63010, 50233, 50233, 50237, 978, 979, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 91, 92, 95, 0, 32, 96, 32, 94, 93, 32, 0, 0, 32, 90, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 2, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 25, 2, 2, 25, 2, 25, 2, 2, 2, 25, 2, 25, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 34096, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34135, 34136, 0, 0, 0, 0, 0, 0, 0, 34144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50222, 34184, 0, 0, 34187, 34188, 0, 0, 0, 34192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34248, 34249, 34250, 34251, 34252, 34253, 34254, 34255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34283, 34284, 34285, 34286, 34287, 50233, 50237, 50237, 0, 0, 34293, 34294, 34295, 34296, 34297, 34298, 34299, 34300, 34301, 34302, 34303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +6: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 0, 0, 0, 0, 0, 0, 1581, 1583, 1274, 924, 926, 7190, 551, 552, 1277, 1278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 565, 0, 63010, 571, 618, 50508, 50298, 50299, 50300, 50303, 50304, 50308, 50312, 50314, 50329, 50330, 50331, 50338, 50345, 50346, 50356, 50357, 50371, 50372, 50390, 50391, 50401, 50402, 50407, 50408, 50411, 50412, 50453, 50454, 50505, 50506, 50507, 0, 50419, 50431, 50436, 50457, 50464, 50468, 50478, 50484, 50498, 50499, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 922, 553, 554, 914, 50313, 50430, 0, 50302, 50301, 50305, 50298, 50312, 50484, 50488, 50499, 50332, 50333, 50315, 50334, 50335, 50316, 50336, 50317, 50347, 50348, 50339, 50340, 50349, 50341, 50343, 50358, 50359, 50360, 50361, 50362, 50363, 50365, 50366, 50367, 50373, 50374, 50375, 50376, 50377, 50378, 50379, 50380, 50381, 50392, 50393, 50394, 50403, 50405, 50409, 50413, 50420, 50421, 50423, 50424, 50426, 50427, 50432, 50434, 50437, 50438, 50439, 50440, 50442, 50443, 50445, 50447, 50448, 50449, 50450, 50451, 50458, 50459, 50460, 50461, 50474, 50469, 50471, 50472, 50473, 50479, 50342, 50483, 50480, 50480, 50481, 50485, 50486, 50487, 50488, 50489, 50490, 50491, 50492, 50500, 50501, 50502, 50494, 50503, 50504, 50513, 50513, 633, 50483, 0, 0, 0, 0, 0, 0, 0, 0, 1279, 0, 0, 0, 0, 0, 0, 50484, 50499, 0, 0, 1280, 0, 0, 0, 0, 50368, 50382, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 50395, 50406, 50414, 50298, 50464, 50482, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 109, 112, 115, 118, 122, 125, 128, 129, 130, 131, 132, 134, 135, 136, 138, 139, 140, 141, 142, 143, 133, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 152, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 32, 32, 0, 0, 32, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 4, 4, 0, 0, 2, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 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, 34333, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50298, 50298, 50298, 50298, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 131, 0, 131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 0, 0, 0, 0, 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, 4, 0 +7: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 708, 634, 635, 572, 573, 574, 575, 576, 577, 619, 980, 981, 982, 983, 63010, 0, 50516, 0, 50517, 50518, 50518, 50520, 50519, 50521, 50522, 50523, 50525, 50526, 50526, 50527, 50528, 50529, 50531, 50532, 50533, 50534, 50534, 50535, 50536, 50536, 50538, 50539, 50540, 50541, 50542, 50517, 50518, 50520, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63010, 63010, 50524, 50530, 50537, 50318, 50319, 50320, 50321, 50322, 50323, 50325, 50350, 50351, 50369, 50370, 50383, 50396, 50415, 50416, 50417, 50428, 50429, 50452, 50455, 50456, 50465, 50466, 50475, 50476, 50477, 50462, 50384, 50385, 50397, 50352, 50353, 50398, 50386, 50354, 50306, 50307, 50509, 50510, 50511, 50495, 50496, 50514, 50515, 50355, 50399, 50400, 50441, 50568, 50571, 50572, 50573, 50575, 50576, 50577, 50578, 50581, 50583, 50584, 50585, 50587, 50591, 50592, 50594, 50595, 50599, 50600, 50601, 50602, 50603, 50604, 50605, 50588, 50569, 50570, 50586, 50574, 50596, 50597, 50598, 50589, 50590, 50579, 50580, 50593, 50582, 50607, 50608, 50609, 50610, 50611, 50612, 50613, 50614, 50615, 50616, 50617, 50606, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 50618, 50619, 50620, 50621, 50622, 50623, 50624, 50625, 50626, 50627, 50628, 50629, 50630, 50631, 50632, 50633, 50634, 50635, 50636, 50637, 50638, 50639, 50640, 50641, 50642, 50643, 50644, 50645, 50646, 50647, 50630, 50631, 50633, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50648, 50649, 1298, 709, 555, 611, 0, 63010, 63010, 63010, 63010, 63010, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 153, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 0, 51, 52, 0, 0, 51, 52, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 170, 171, 172, 173, 174, 175, 176, 177, 178, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 25, 2, 2, 4, 2, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 2, 2, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34574, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34635, 34636, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34738, 34739, 34740, 34741, 34742, 34743, 34744, 34745, 34746, 34747, 34748, 34749, 34750, 34751, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34811, 34812, 34813, 34814, 34815, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, 0, 0, 274, 274, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 272, 272, 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +8: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 50272, 50273, 50274, 50275, 50276, 50277, 50278, 50279, 50280, 50281, 50282, 50283, 50284, 50285, 50286, 50287, 50288, 50289, 50290, 50291, 50292, 50293, 50294, 50295, 0, 0, 50296, 50297, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63010, 63010, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 63010, 50543, 50544, 50545, 50546, 50547, 50548, 50549, 50550, 50551, 50552, 50553, 50554, 50555, 50556, 50557, 50558, 50559, 50560, 50561, 50562, 50563, 50564, 50565, 50566, 50567, 0, 0, 0, 63010, 63010, 984, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 50324, 50326, 50344, 50410, 50425, 50435, 50463, 50467, 50309, 50310, 50387, 50497, 50311, 50312, 50364, 50404, 50446, 50493, 50388, 50418, 50444, 63010, 50327, 50328, 50337, 50389, 50512, 50422, 50433, 50470, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 106, 107, 32, 32, 98, 98, 99, 99, 99, 100, 100, 100, 101, 101, 102, 102, 103, 103, 103, 104, 105, 108, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 52, 52, 52, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 144, 119, 123, 126, 111, 114, 117, 0, 0, 0, 0, 0, 0, 110, 113, 116, 0, 120, 121, 127, 145, 146, 150, 151, 148, 149, 147, 124, 137, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 34862, 34863, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34879, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34908, 34909, 0, 34911, 34912, 34913, 34914, 34915, 34916, 34917, 34918, 34919, 34920, 34921, 34922, 34923, 34924, 34925, 34926, 34927, 34928, 34929, 34930, 34931, 34932, 34933, 34934, 34935, 34936, 34937, 34938, 34939, 34940, 34941, 34942, 34943, 34944, 34945, 34946, 34947, 34948, 34949, 34950, 34951, 34952, 34953, 34954, 34955, 34956, 34957, 34958, 34959, 34960, 34961, 34962, 34963, 34964, 34965, 34966, 34967, 34968, 34969, 34970, 34971, 34972, 34973, 34974, 34975, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34997, 0, 0, 0, 0, 0, 0, 0, 0, 35006, 35007, 35008, 35009, 35010, 35011, 35012, 35013, 35014, 35015, 35016, 35017, 35018, 35019, 35020, 35021, 35022, 35023, 35024, 35025, 35026, 35027, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 0, 0, 0, 0, 51163, 51164, 51165, 51171, 51172, 51173, 51174, 51175, 51177, 51179, 51180, 51181, 51182, 51183, 51184, 51185, 51186, 51187, 51188, 51189, 51191, 51192, 51193, 51194, 51195, 51198, 51199, 51200, 51201, 51203, 51205, 51206, 51207, 51208, 51209, 51210, 51211, 51211, 51212, 51213, 51214, 51216, 51217, 51218, 51220, 51220, 51221, 51222, 51222, 51223, 51224, 51225, 51226, 51227, 51236, 51237, 0, 51228, 51235, 51241, 51242, 51243, 51244, 51245, 51246, 51249, 51251, 51252, 51254, 51255, 51256, 51257, 51258, 51259, 51253, 51238, 51160, 0, 0, 0, 0, 51250, 51239, 51240, 51187, 51188, 51189, 51195, 51203, 51205, 51213, 51218, 51176, 51178, 51247, 51248, 654, 655, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 999, 7162, 51162, 51166, 51167, 51168, 51169, 51170, 51202, 51196, 51219, 51190, 51197, 51229, 51204, 51215, 51260, 0, 0, 0, 63010, 51261, 51262, 51263, 51264, 51265, 51266, 51267, 51269, 63010, 63010, 51271, 51272, 63010, 63010, 51273, 51274, 51275, 51276, 51277, 51278, 51279, 51280, 51281, 51282, 51283, 51284, 51285, 51286, 51287, 51288, 51289, 51290, 51291, 51292, 51293, 51294, 63010, 51295, 51296, 51297, 51298, 51299, 51300, 51301, 63010, 51303, 63010, 63010, 63010, 51305, 51306, 51307, 51308, 63010, 63010, 0, 51309, 51310, 51311, 51312, 51313, 51314, 51315, 51316, 63010, 63010, 51319, 51320, 63010, 63010, 51321, 51322, 51323, 51290, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 51324, 63010, 63010, 63010, 63010, 51287, 51288, 63010, 51300, 51268, 51270, 51317, 51318, 63010, 63010, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 51302, 51304, 7191, 7192, 6806, 6807, 6808, 6809, 6810, 6811, 1299, 7193, 63010, 63010, 63010, 63010, 195, 195, 196, 197, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 194, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 37, 36, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 195, 196, 197, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 194, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 35204, 0, 0, 0, 0, 0, 0, 0, 0, 35213, 35214, 0, 0, 35217, 35218, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35241, 0, 0, 0, 0, 0, 0, 0, 35249, 0, 35251, 35252, 35253, 0, 0, 0, 0, 35258, 35259, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35269, 35270, 0, 0, 35273, 35274, 0, 0, 0, 51323, 35279, 35280, 35281, 35282, 35283, 35284, 35285, 35286, 0, 35288, 35289, 35290, 35291, 0, 0, 35294, 0, 0, 0, 0, 0, 35300, 35301, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35324, 35325, 35326, 35327, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 194, 0, 0, 0, 0, 0, 0, 0, 194, 0, 0, 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 194, 194, 194, 194, 194, 194, 194, 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 194, 194, 0, 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 2, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 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, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 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, 0, 0, 0, 0, 0, 0, 0 +10: 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 63010, 0, 0, 0, 63010, 51330, 51331, 51335, 51336, 51327, 51328, 63010, 63010, 63010, 63010, 51337, 51332, 63010, 63010, 51329, 51333, 51341, 51342, 51343, 51344, 51345, 51346, 51347, 51348, 51349, 51350, 51351, 51352, 51353, 51354, 51355, 51356, 51357, 51358, 51359, 51360, 63010, 51361, 51362, 51363, 51364, 51365, 51366, 51368, 63010, 51369, 51369, 63010, 51370, 51338, 63010, 51338, 51339, 63010, 63010, 0, 63010, 51372, 51373, 51374, 51375, 51376, 63010, 63010, 63010, 63010, 51377, 51378, 63010, 63010, 51379, 51380, 51381, 63010, 63010, 63010, 51340, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 51342, 51343, 51348, 51371, 63010, 51362, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 0, 0, 51334, 51326, 51325, 51367, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 0, 0, 0, 63010, 51383, 51384, 51385, 51386, 51387, 51388, 51389, 51391, 51393, 63010, 51394, 51395, 51396, 63010, 51397, 51398, 51399, 51400, 51401, 51402, 51403, 51404, 51405, 51406, 51408, 51409, 51410, 51411, 51412, 51413, 51414, 51415, 51416, 51417, 51418, 51419, 63010, 51420, 51421, 51422, 51423, 51424, 51425, 51426, 63010, 51427, 51433, 63010, 51428, 51429, 51430, 51431, 51432, 63010, 63010, 0, 51434, 51435, 51436, 51437, 51438, 51439, 51440, 51441, 51444, 63010, 51445, 51446, 51447, 63010, 51448, 51449, 51450, 63010, 63010, 51382, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 51390, 51392, 51442, 51443, 63010, 63010, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 1004, 7194, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 51407, 63010, 63010, 63010, 63010, 63010, 63010, 32, 195, 196, 197, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 194, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 198, 199, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 195, 196, 197, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 194, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 35328, 0, 0, 0, 35332, 0, 0, 0, 0, 0, 0, 35339, 35340, 35341, 35342, 0, 0, 35345, 35346, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35369, 0, 0, 0, 0, 0, 0, 0, 35377, 0, 0, 35380, 0, 0, 35383, 0, 0, 35386, 35387, 0, 35389, 0, 0, 0, 0, 0, 35395, 35396, 35397, 35398, 0, 0, 35401, 35402, 0, 0, 0, 35406, 35407, 35408, 0, 35410, 35411, 35412, 35413, 35414, 35415, 35416, 0, 0, 0, 0, 35421, 0, 35423, 35424, 35425, 35426, 35427, 35428, 35429, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35446, 35447, 35448, 35449, 35450, 35451, 35452, 35453, 35454, 35455, 35456, 0, 0, 0, 35460, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35470, 0, 0, 0, 35474, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35497, 0, 0, 0, 0, 0, 0, 0, 35505, 0, 0, 35508, 0, 0, 0, 0, 0, 35514, 35515, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35526, 0, 0, 0, 35530, 0, 0, 0, 35534, 35535, 0, 35537, 35538, 35539, 35540, 35541, 35542, 35543, 35544, 35545, 35546, 35547, 35548, 35549, 35550, 35551, 0, 0, 0, 0, 35556, 35557, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35570, 35571, 35572, 35573, 35574, 35575, 35576, 0, 35578, 35579, 35580, 35581, 35582, 35583, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 194, 0, 0, 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 194, 194, 194, 0, 0, 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 2, 2, 2, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +11: 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 1, 1, 2, 1, 2, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 63010, 0, 0, 0, 63010, 51451, 51452, 51453, 51454, 51455, 51456, 51457, 51459, 63010, 63010, 51461, 51462, 63010, 63010, 51463, 51464, 51465, 51466, 51467, 51468, 51469, 51470, 51471, 51472, 51473, 51474, 51475, 51476, 51477, 51478, 51479, 51480, 51481, 51482, 51483, 51484, 63010, 51485, 51486, 51487, 51488, 51489, 51490, 51492, 63010, 51493, 51494, 63010, 51495, 51497, 51498, 51499, 51500, 63010, 63010, 0, 51501, 51502, 51503, 51504, 51505, 51506, 51507, 51508, 63010, 63010, 51511, 51512, 63010, 63010, 51513, 51514, 51515, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 51516, 51517, 63010, 63010, 63010, 63010, 51477, 51478, 63010, 51491, 51458, 51460, 51509, 51510, 63010, 63010, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 1300, 51496, 6812, 6813, 6814, 6815, 6816, 6817, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 0, 51531, 63010, 51519, 51520, 51521, 51522, 51523, 51524, 63010, 63010, 63010, 51525, 51526, 51527, 63010, 51528, 51529, 51530, 51532, 63010, 63010, 63010, 51533, 51534, 63010, 51550, 63010, 51535, 51536, 63010, 63010, 63010, 51537, 51538, 63010, 63010, 63010, 51539, 51549, 51540, 63010, 63010, 63010, 51541, 51542, 51543, 51548, 51544, 51547, 51546, 51545, 51551, 51552, 51553, 51554, 63010, 63010, 63010, 63010, 51555, 51556, 51557, 51558, 51559, 63010, 63010, 63010, 51560, 51561, 51562, 63010, 51563, 51564, 51565, 51566, 63010, 63010, 51518, 63010, 63010, 63010, 63010, 63010, 63010, 51567, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 6824, 6825, 6826, 1301, 1302, 1303, 1304, 1305, 1306, 7196, 1307, 63010, 63010, 63010, 63010, 63010, 32, 195, 196, 197, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 194, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 196, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 35584, 0, 0, 0, 35588, 0, 0, 0, 0, 0, 0, 0, 0, 35597, 35598, 0, 0, 35601, 35602, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35625, 0, 0, 0, 0, 0, 0, 0, 35633, 0, 0, 35636, 0, 0, 0, 0, 0, 35642, 35643, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35653, 35654, 0, 0, 35657, 35658, 0, 0, 0, 35662, 35663, 35664, 35665, 35666, 35667, 35668, 35669, 0, 0, 35672, 35673, 35674, 35675, 0, 0, 35678, 0, 0, 0, 0, 0, 35684, 35685, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35704, 35705, 35706, 35707, 35708, 35709, 35710, 35711, 35712, 35713, 0, 0, 35716, 0, 0, 0, 0, 0, 0, 35723, 35724, 35725, 0, 0, 0, 35729, 0, 0, 0, 0, 35734, 35735, 35736, 0, 0, 35739, 0, 35741, 0, 0, 35744, 35745, 35746, 0, 0, 35749, 35750, 35751, 0, 0, 0, 35755, 35756, 35757, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35770, 35771, 35772, 35773, 0, 0, 0, 0, 0, 35779, 35780, 35781, 0, 0, 0, 35785, 0, 0, 0, 0, 35790, 35791, 0, 35793, 35794, 35795, 35796, 35797, 35798, 0, 35800, 35801, 35802, 35803, 35804, 35805, 35806, 35807, 35808, 35809, 35810, 35811, 35812, 35813, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35835, 35836, 35837, 35838, 35839, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 194, 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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 +12: 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 63010, 51568, 51569, 51570, 51571, 51572, 51573, 51574, 51576, 63010, 51578, 51579, 51580, 63010, 51581, 51582, 51583, 51584, 51585, 51586, 51587, 51588, 51589, 51591, 51592, 51594, 51595, 51596, 51597, 51598, 51599, 51600, 51601, 51602, 51603, 51604, 51605, 63010, 51606, 51607, 51608, 51609, 51610, 51611, 51612, 51613, 51614, 51620, 51621, 51615, 51616, 51617, 51618, 51619, 63010, 63010, 63010, 51623, 51624, 51625, 51626, 51627, 51628, 51629, 51630, 63010, 51633, 51634, 51635, 63010, 51636, 51637, 51638, 51639, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 51640, 51641, 63010, 51590, 51593, 51622, 63010, 63010, 63010, 63010, 63010, 51575, 51577, 51631, 51632, 63010, 63010, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 7229, 7230, 7231, 7232, 7230, 7231, 7232, 1308, 51697, 0, 0, 0, 63010, 51642, 51643, 51644, 51645, 51646, 51647, 51648, 51650, 63010, 51652, 51653, 51654, 63010, 51655, 51656, 51657, 51658, 51659, 51660, 51661, 51662, 51663, 51664, 51665, 51666, 51667, 51668, 51669, 51670, 51671, 51672, 51673, 51674, 51675, 51676, 51677, 63010, 51678, 51679, 51680, 51681, 51682, 51683, 51684, 51685, 51686, 51692, 63010, 51687, 51688, 51689, 51690, 51691, 63010, 63010, 0, 51694, 51698, 51699, 51700, 51701, 51702, 51703, 51704, 63010, 51707, 51708, 51709, 63010, 51710, 51711, 51712, 51713, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 51714, 51715, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 51693, 63010, 51649, 51651, 51705, 51706, 63010, 63010, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 63010, 51695, 51696, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 195, 195, 196, 197, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 195, 196, 197, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 194, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 35844, 0, 0, 0, 0, 0, 0, 0, 0, 35853, 0, 0, 0, 35857, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35881, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35898, 35899, 35900, 0, 0, 0, 0, 0, 0, 0, 0, 35909, 0, 0, 0, 35913, 0, 0, 0, 0, 35918, 35919, 35920, 35921, 35922, 35923, 35924, 0, 0, 35927, 0, 0, 0, 35931, 35932, 35933, 35934, 35935, 0, 0, 0, 0, 35940, 35941, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35952, 35953, 35954, 35955, 35956, 35957, 35958, 35959, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35972, 0, 0, 0, 0, 0, 0, 0, 0, 35981, 0, 0, 0, 35985, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36009, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36020, 0, 0, 0, 0, 0, 36026, 36027, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36037, 0, 0, 0, 36041, 0, 0, 0, 0, 36046, 36047, 36048, 36049, 36050, 36051, 36052, 0, 0, 36055, 36056, 36057, 36058, 36059, 36060, 36061, 0, 36063, 0, 0, 0, 0, 36068, 36069, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36080, 0, 0, 36083, 36084, 36085, 36086, 36087, 36088, 36089, 36090, 36091, 36092, 36093, 36094, 36095, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 63010, 0, 0, 0, 63010, 51716, 51717, 51718, 51719, 51721, 51722, 51723, 51725, 63010, 51727, 51728, 51729, 63010, 51730, 51731, 51732, 51733, 51734, 51735, 51736, 51737, 51738, 51739, 51740, 51741, 51742, 51743, 51744, 51745, 51746, 51747, 51748, 51749, 51750, 51751, 51752, 51753, 51754, 51755, 51756, 51757, 51758, 51759, 51760, 51769, 51761, 51767, 51768, 51762, 51763, 51764, 51765, 51766, 51770, 63010, 63010, 51771, 51772, 51773, 51774, 51775, 51776, 51777, 51778, 63010, 51781, 51782, 51783, 63010, 51784, 51785, 51786, 51788, 51760, 1309, 63010, 63010, 63010, 63010, 51758, 51759, 51768, 51787, 6827, 6828, 6829, 6830, 6831, 6832, 6833, 51720, 51724, 51726, 51779, 51780, 63010, 63010, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 6834, 6835, 6836, 6837, 6838, 6839, 6840, 6841, 6842, 1310, 51747, 51752, 51760, 51761, 51767, 51733, 63010, 63010, 0, 0, 63010, 51789, 51790, 51791, 51792, 51793, 51794, 51795, 51796, 51797, 51798, 51799, 51800, 51801, 51802, 51803, 51804, 51805, 51806, 63010, 63010, 63010, 51807, 51808, 51809, 51810, 51811, 51812, 51813, 51814, 51815, 51816, 51817, 51818, 51819, 51820, 51821, 51822, 51823, 51824, 51825, 51826, 51827, 51828, 51829, 51830, 63010, 51831, 51832, 51833, 51834, 51835, 51836, 51837, 51838, 51839, 63010, 51840, 63010, 63010, 51841, 51842, 51843, 51844, 51845, 51846, 51847, 63010, 63010, 63010, 51865, 63010, 63010, 63010, 63010, 51848, 51849, 51850, 51851, 51852, 51853, 63010, 51854, 63010, 51855, 51859, 51860, 51861, 51862, 51863, 51864, 51857, 63010, 63010, 63010, 63010, 63010, 63010, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 63010, 63010, 51856, 51858, 1005, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 32, 195, 196, 197, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 196, 197, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 36096, 0, 0, 0, 36100, 0, 0, 0, 0, 0, 0, 0, 0, 36109, 0, 0, 0, 36113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36155, 36156, 0, 0, 0, 0, 0, 0, 0, 0, 36165, 0, 0, 0, 36169, 0, 0, 0, 0, 51788, 0, 36176, 36177, 36178, 36179, 51788, 51788, 51788, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36196, 36197, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51788, 51788, 51788, 51788, 51788, 51788, 36224, 36225, 0, 0, 36228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36247, 36248, 36249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36284, 0, 36286, 36287, 0, 0, 0, 0, 0, 0, 0, 36295, 36296, 36297, 0, 36299, 36300, 36301, 36302, 0, 0, 0, 0, 0, 0, 36309, 0, 36311, 0, 0, 0, 0, 0, 0, 0, 0, 36320, 36321, 36322, 36323, 36324, 36325, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36336, 36337, 0, 0, 0, 36341, 36342, 36343, 36344, 36345, 36346, 36347, 36348, 36349, 36350, 36351, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +14: 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 63010, 52976, 52977, 52978, 52979, 52980, 52981, 52982, 52983, 52984, 52985, 52986, 52987, 52988, 52989, 52990, 52991, 52992, 52993, 52994, 52995, 52996, 52997, 52998, 52999, 53000, 53001, 53002, 53003, 53004, 53005, 53006, 53007, 53008, 53009, 53010, 53011, 53012, 53013, 53014, 53015, 53016, 53017, 53018, 53019, 53020, 53021, 53022, 53023, 53024, 53025, 53026, 53027, 53028, 53029, 53030, 53031, 53032, 53033, 63010, 63010, 63010, 63010, 7197, 53034, 53035, 53036, 53037, 53038, 53039, 7163, 0, 0, 0, 0, 0, 0, 0, 0, 1006, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 1007, 1008, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 53041, 53042, 63010, 53043, 63010, 63010, 53044, 53045, 63010, 53047, 63010, 63010, 53049, 63010, 63010, 63010, 63010, 63010, 63010, 53050, 53051, 53052, 53053, 63010, 53054, 53055, 53056, 53057, 53058, 53059, 53060, 63010, 53061, 53062, 53063, 63010, 53064, 63010, 53065, 63010, 63010, 53046, 53066, 63010, 53067, 53068, 53069, 53070, 53071, 53072, 53073, 53074, 53075, 53076, 53077, 53078, 53079, 63010, 53080, 53081, 53082, 63010, 63010, 53083, 53084, 53085, 53086, 53087, 63010, 7164, 63010, 0, 0, 0, 0, 0, 0, 63010, 63010, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 63010, 63010, 53066, 53066, 53040, 53048, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 210, 211, 212, 213, 214, 215, 216, 209, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 217, 218, 219, 220, 221, 222, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 36352, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36411, 36412, 36413, 36414, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36444, 36445, 36446, 36447, 36448, 36449, 36450, 36451, 36452, 36453, 36454, 36455, 36456, 36457, 36458, 36459, 36460, 36461, 36462, 36463, 36464, 36465, 36466, 36467, 36468, 36469, 36470, 36471, 36472, 36473, 36474, 36475, 36476, 36477, 36478, 36479, 36480, 0, 0, 36483, 0, 36485, 36486, 0, 0, 36489, 0, 36491, 36492, 0, 36494, 36495, 36496, 36497, 36498, 36499, 0, 0, 0, 0, 36504, 0, 0, 0, 0, 0, 0, 0, 36512, 0, 0, 0, 36516, 0, 36518, 0, 36520, 36521, 0, 0, 36524, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36538, 0, 0, 0, 36542, 36543, 0, 0, 0, 0, 0, 36549, 0, 36551, 0, 0, 0, 0, 0, 0, 36558, 36559, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36570, 36571, 53054, 53061, 0, 0, 36576, 36577, 36578, 36579, 36580, 36581, 36582, 36583, 36584, 36585, 36586, 36587, 36588, 36589, 36590, 36591, 36592, 36593, 36594, 36595, 36596, 36597, 36598, 36599, 36600, 36601, 36602, 36603, 36604, 36605, 36606, 36607, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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: 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 53225, 1318, 1319, 1320, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1020, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1321, 600, 1322, 1323, 1324, 0, 0, 1325, 1326, 1327, 1328, 1329, 1330, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7229, 1331, 0, 1332, 0, 1333, 0, 797, 798, 799, 800, 0, 0, 53155, 53158, 53160, 53160, 53162, 53164, 53166, 53168, 63010, 53170, 53172, 53174, 53176, 53176, 53178, 53180, 53182, 53184, 53184, 53186, 53188, 53190, 53192, 53192, 53194, 53196, 53198, 53200, 53200, 53202, 53204, 53206, 53208, 53210, 53212, 53215, 53217, 53219, 53221, 53223, 53225, 53155, 53212, 53157, 53214, 63010, 63010, 63010, 63010, 53235, 53236, 53237, 53240, 53241, 53242, 53243, 53244, 53245, 53246, 53247, 53248, 53249, 0, 0, 53238, 53239, 0, 0, 53250, 1027, 0, 0, 53227, 53229, 53233, 53234, 53231, 53228, 53230, 53232, 53156, 53159, 53161, 53161, 53163, 53165, 53167, 53169, 63010, 53171, 53173, 53175, 53177, 53177, 53179, 53181, 53183, 53185, 53185, 53187, 53189, 53191, 53193, 53193, 53195, 53197, 53199, 53201, 53201, 53203, 53205, 53207, 53209, 53211, 53213, 53216, 53218, 53220, 53222, 53224, 53226, 53156, 53203, 53211, 53213, 63010, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 0, 1342, 1343, 1344, 1345, 1346, 1347, 63010, 1348, 1349, 1018, 1019, 1028, 1029, 1030, 1350, 1351, 1352, 1353, 1031, 1032, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 0, 32, 225, 32, 32, 32, 32, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 196, 197, 32, 32, 0, 0, 32, 32, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 27, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 0, 2, 0, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 53248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53224, 0, 0, 0, 0, 36680, 0, 0, 0, 0, 53224, 0, 0, 0, 0, 53224, 0, 0, 0, 0, 53224, 0, 0, 0, 0, 53224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53220, 0, 0, 0, 36717, 36718, 36719, 36720, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53224, 0, 0, 0, 0, 36760, 0, 0, 0, 0, 53224, 0, 0, 0, 0, 53224, 0, 0, 0, 0, 53224, 0, 0, 0, 0, 53224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53220, 0, 0, 0, 36797, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36813, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36827, 36828, 36829, 36830, 36831, 36832, 36833, 36834, 36835, 36836, 36837, 36838, 36839, 36840, 36841, 36842, 36843, 36844, 36845, 36846, 36847, 36848, 36849, 36850, 36851, 36852, 36853, 36854, 36855, 36856, 36857, 36858, 36859, 36860, 36861, 36862, 36863, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 32, 0, 0, 0, 0, 32, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 32, 0, 0, 0, 0, 32, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 273, 273, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 53682, 53684, 53686, 53690, 53693, 53695, 53698, 53702, 53707, 53714, 53718, 53719, 53721, 53723, 53726, 53729, 53733, 53734, 53735, 53738, 53741, 53745, 53746, 53752, 53755, 53758, 53760, 53762, 53766, 53768, 53775, 53777, 53783, 53790, 53791, 53792, 53793, 53794, 53795, 53800, 53801, 53802, 53803, 53804, 53804, 53808, 53810, 53812, 53815, 53820, 53824, 53811, 53826, 53822, 0, 0, 0, 53832, 53833, 53761, 53765, 53769, 53780, 53775, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 665, 666, 1038, 1039, 1040, 1041, 53772, 53773, 53796, 53797, 53798, 53799, 53816, 53817, 53818, 53819, 53694, 53708, 53785, 53786, 53744, 53759, 53767, 53712, 53827, 53834, 53835, 53774, 53789, 53828, 53829, 53836, 53837, 53838, 53839, 53840, 53730, 53787, 53788, 53809, 53806, 53813, 53814, 53683, 53685, 53687, 53696, 53705, 53715, 53736, 53742, 53747, 53748, 53753, 53771, 53778, 53770, 53805, 53821, 53823, 53831, 53841, 53843, 53846, 53847, 53842, 53844, 53845, 53750, 53848, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 53849, 53850, 53807, 53825, 1355, 1356, 50104, 50106, 50108, 50110, 50112, 50114, 50116, 50120, 50122, 50124, 50126, 50128, 50130, 50134, 50136, 50138, 50140, 50142, 50144, 50148, 50150, 50152, 50154, 50156, 50158, 50160, 50162, 50164, 50166, 50168, 50170, 50174, 50176, 50118, 50132, 50146, 50172, 50178, 63010, 50181, 63010, 63010, 63010, 63010, 63010, 50186, 63010, 63010, 50103, 50105, 50107, 50109, 50111, 50113, 50115, 50119, 50121, 50123, 50125, 50127, 50129, 50133, 50135, 50137, 50139, 50141, 50143, 50147, 50149, 50151, 50153, 50155, 50157, 50159, 50161, 50163, 50165, 50167, 50169, 50173, 50175, 50117, 50131, 50145, 50171, 50177, 50179, 50180, 50182, 50183, 50184, 710, 50129, 50185, 50187, 50188, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 196, 229, 197, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 2, 8, 2, 2, 2, 2, 2, 8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 20, 2, 2, 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, 53832, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37062, 0, 37064, 37065, 37066, 37067, 37068, 0, 37070, 37071, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53775, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 56690, 56691, 56692, 56693, 56694, 56695, 56696, 56697, 56698, 56699, 56700, 56701, 56702, 56703, 56704, 56705, 56706, 56707, 56708, 56709, 56710, 56711, 56712, 56713, 56714, 56715, 56716, 56717, 56718, 56719, 56720, 56721, 56722, 56723, 56724, 56725, 56726, 56727, 56728, 56729, 56730, 56731, 56732, 56733, 56734, 56735, 56736, 56737, 56738, 56739, 56740, 56741, 56742, 56743, 56744, 56745, 56746, 56747, 56748, 56749, 56750, 56751, 56752, 56753, 56754, 56755, 56756, 56757, 56758, 56759, 56760, 56761, 56762, 56763, 56764, 56765, 56766, 56767, 56768, 56769, 56770, 56771, 56772, 56773, 56774, 56775, 56776, 56777, 56778, 56779, 56780, 56781, 56782, 56783, 56784, 56814, 56815, 56816, 56817, 56818, 56819, 56820, 56821, 56822, 56823, 56824, 56825, 56826, 56827, 56828, 56829, 56830, 56831, 56832, 56833, 56834, 56835, 56836, 56837, 56838, 56839, 56840, 56841, 56842, 56843, 56844, 56845, 56846, 56847, 56848, 56849, 56850, 56851, 56852, 56853, 56854, 56855, 56856, 56857, 56858, 56859, 56860, 56861, 56862, 56863, 56864, 56865, 56866, 56867, 56868, 56869, 56870, 56871, 56872, 56873, 56874, 56875, 56876, 56877, 56878, 56879, 56880, 56881, 56882, 56883, 56884, 56885, 56886, 56910, 56911, 56912, 56913, 56914, 56915, 56916, 56917, 56918, 56919, 56920, 56921, 56922, 56923, 56924, 56925, 56926, 56927, 56928, 56929, 56930, 56931, 56932, 56933, 56934, 56935, 56936, 56937, 56938, 56939, 56940, 56941, 56942, 56943, 56944, 56945, 56946, 56947, 56948, 56949, 56950, 56951, 56952, 56953, 56954, 56955, 56956, 56957, 56958, 56959, 56960, 56961, 56962, 56963, 56964, 56965, 56966, 56967, 56968, 56969, 56970, 56971, 56972, 56973, 56974, 56975, 56976, 56977, 56978, 56979, 56980, 56981, 56982, 56983, 56984, 56985, 56986, 56987, 56988, 56989, 56990, 56991, 56992, 56993, 56994, 56995, 56996, 56997, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +18: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 50707, 50708, 50709, 50710, 50711, 50712, 50713, 50714, 50715, 50716, 50717, 50718, 50719, 50720, 50721, 50722, 50724, 50725, 50726, 50727, 50728, 50729, 50730, 50731, 50732, 50733, 50734, 50735, 50736, 50737, 50738, 50739, 50745, 50746, 50747, 50748, 50749, 50750, 50751, 50752, 50753, 50754, 50755, 50756, 50757, 50758, 50759, 50760, 50762, 50763, 50764, 50765, 50766, 50767, 50768, 50769, 50777, 50778, 50779, 50780, 50781, 50782, 50783, 50784, 50786, 50787, 50788, 50789, 50790, 50791, 50792, 50793, 50794, 63010, 50795, 50796, 50797, 50798, 63010, 63010, 50799, 50800, 50801, 50802, 50803, 50804, 50805, 63010, 50806, 63010, 50807, 50808, 50809, 50810, 63010, 63010, 50811, 50812, 50813, 50814, 50815, 50816, 50817, 50818, 50824, 50825, 50826, 50827, 50828, 50829, 50830, 50831, 50832, 50833, 50834, 50835, 50836, 50837, 50838, 50839, 50841, 50842, 50843, 50844, 50845, 50846, 50847, 50848, 50850, 50851, 50852, 50853, 50854, 50855, 50856, 50857, 50858, 63010, 50859, 50860, 50861, 50862, 63010, 63010, 50863, 50864, 50865, 50866, 50867, 50868, 50869, 50870, 50872, 50873, 50874, 50875, 50876, 50877, 50878, 50879, 50881, 50882, 50883, 50884, 50885, 50886, 50887, 50888, 50890, 50891, 50892, 50893, 50894, 50895, 50896, 50897, 50898, 63010, 50899, 50900, 50901, 50902, 63010, 63010, 50903, 50904, 50905, 50906, 50907, 50908, 50909, 63010, 50910, 63010, 50911, 50912, 50913, 50914, 63010, 63010, 50915, 50916, 50917, 50918, 50919, 50920, 50921, 50922, 50923, 50924, 50925, 50926, 50927, 50928, 50929, 63010, 50930, 50931, 50932, 50933, 50934, 50935, 50936, 50937, 50945, 50946, 50947, 50948, 50949, 50950, 50951, 50952, 50953, 50954, 50955, 50956, 50957, 50958, 50959, 50960, 50961, 50962, 50963, 50964, 50965, 50966, 50967, 50968, 50976, 50977, 50978, 50979, 50980, 50981, 50982, 50983, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 37449, 0, 0, 0, 0, 37454, 37455, 0, 0, 0, 0, 0, 0, 0, 37463, 0, 37465, 0, 0, 0, 0, 37470, 37471, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37513, 0, 0, 0, 0, 37518, 37519, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37553, 0, 0, 0, 0, 37558, 37559, 0, 0, 0, 0, 0, 0, 0, 37567, 0, 37569, 0, 0, 0, 0, 37574, 37575, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37591, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 50985, 50986, 50987, 50988, 50989, 50990, 50991, 50992, 50994, 50995, 50996, 50997, 50998, 50999, 51000, 51001, 51002, 63010, 51003, 51004, 51005, 51006, 63010, 63010, 51007, 51008, 51009, 51010, 51011, 51012, 51013, 51014, 51019, 51020, 51021, 51022, 51023, 51024, 51025, 51026, 51028, 51029, 51030, 51031, 51032, 51033, 51034, 51035, 51044, 51045, 51046, 51047, 51048, 51049, 51050, 51051, 51053, 51054, 51055, 51056, 51057, 51058, 51059, 51060, 51068, 51069, 51070, 51071, 51072, 51073, 51074, 51075, 51076, 51077, 51078, 51079, 51080, 51081, 51082, 51083, 51088, 51089, 51090, 51091, 51092, 51093, 51094, 51095, 51101, 51102, 51103, 63010, 63010, 0, 0, 0, 711, 593, 636, 594, 595, 596, 597, 620, 712, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 6843, 6844, 6845, 6846, 6847, 6848, 6849, 6850, 6851, 6852, 6853, 63010, 63010, 63010, 50740, 50741, 50742, 50743, 50819, 50820, 50821, 50822, 51084, 51085, 51086, 51087, 51096, 51097, 51098, 51099, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 63010, 63010, 63010, 63010, 63010, 63010, 54524, 54525, 54526, 54527, 54528, 54529, 54530, 54531, 54532, 54533, 54534, 54535, 54536, 54537, 54538, 54539, 54540, 54541, 54542, 54543, 54544, 54545, 54546, 54547, 54548, 54549, 54550, 54551, 54552, 54553, 54554, 54555, 54556, 54557, 54558, 54559, 54560, 54561, 54562, 54563, 54564, 54565, 54566, 54567, 54568, 54569, 54570, 54571, 54572, 54573, 54574, 54575, 54576, 54577, 54578, 54579, 54580, 54581, 54582, 54583, 54584, 54585, 54586, 54587, 54588, 54589, 54590, 54591, 54592, 54593, 54594, 54595, 54596, 54597, 54598, 54599, 54600, 54601, 54602, 54603, 54604, 54605, 54606, 54607, 54608, 54609, 63010, 63010, 54604, 54605, 54606, 54607, 54608, 54609, 63010, 63010, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 181, 180, 179, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37649, 0, 0, 0, 0, 37654, 37655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37723, 37724, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37757, 37758, 37759, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37786, 37787, 37788, 37789, 37790, 37791, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37878, 37879, 0, 0, 0, 0, 0, 0, 37886, 37887, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +20: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 527, 54646, 54647, 54648, 54649, 54650, 54651, 54652, 54653, 54654, 54655, 54656, 54657, 54658, 54659, 54660, 54661, 54662, 54663, 54664, 54665, 54666, 54667, 54668, 54669, 54670, 54671, 54672, 54673, 54674, 54675, 54676, 54677, 54678, 54679, 54680, 54681, 54682, 54683, 54684, 54685, 54686, 54687, 54688, 54689, 54690, 54691, 54692, 54693, 54694, 54695, 54696, 54697, 54698, 54699, 54700, 54701, 54702, 54703, 54704, 54705, 54706, 54707, 54708, 54709, 54710, 54711, 54712, 54713, 54714, 54715, 54716, 54717, 54718, 54719, 54720, 54721, 54722, 54723, 54724, 54725, 54726, 54727, 54728, 54729, 54730, 54731, 54732, 54733, 54734, 54735, 54736, 54737, 54738, 54739, 54740, 54741, 54742, 54743, 54744, 54745, 54746, 54747, 54748, 54749, 54750, 54751, 54752, 54753, 54754, 54755, 54756, 54757, 54758, 54759, 54760, 54761, 54762, 54763, 54764, 54765, 54766, 54767, 54768, 54769, 54770, 54771, 54772, 54773, 54774, 54775, 54776, 54777, 54778, 54779, 54780, 54781, 54782, 54783, 54784, 54785, 54786, 54787, 54788, 54789, 54790, 54791, 54792, 54793, 54794, 54795, 54796, 54797, 54798, 54799, 54800, 54801, 54802, 54803, 54804, 54805, 54806, 54807, 54808, 54809, 54810, 54811, 54812, 54813, 54814, 54815, 54816, 54817, 54818, 54819, 54820, 54821, 54822, 54823, 54824, 54825, 54826, 54827, 54828, 54829, 54830, 54831, 54832, 54833, 54834, 54835, 54836, 54837, 54838, 54839, 54840, 54841, 54842, 54843, 54844, 54845, 54846, 54847, 54848, 54849, 54850, 54851, 54852, 54853, 54854, 54855, 54856, 54857, 54858, 54859, 54860, 54861, 54862, 54863, 54864, 54865, 54866, 54867, 54868, 54869, 54870, 54871, 54872, 54873, 54874, 54875, 54876, 54877, 54878, 54879, 54880, 54881, 54882, 54883, 54884, 54885, 54886, 54887, 54888, 54889, 54890, 54891, 54892, 54893, 54894, 54895, 54896, 54897, 54898, 54899, 54900, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +21: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 54901, 54902, 54903, 54904, 54905, 54906, 54907, 54908, 54909, 54910, 54911, 54912, 54913, 54914, 54915, 54916, 54917, 54918, 54919, 54920, 54921, 54922, 54923, 54924, 54925, 54926, 54927, 54928, 54929, 54930, 54931, 54932, 54933, 54934, 54935, 54936, 54937, 54938, 54939, 54940, 54941, 54942, 54943, 54944, 54945, 54946, 54947, 54948, 54949, 54950, 54951, 54952, 54953, 54954, 54955, 54956, 54957, 54958, 54959, 54960, 54961, 54962, 54963, 54964, 54965, 54966, 54967, 54968, 54969, 54970, 54971, 54972, 54973, 54974, 54975, 54976, 54977, 54978, 54979, 54980, 54981, 54982, 54983, 54984, 54985, 54986, 54987, 54988, 54989, 54990, 54991, 54992, 54993, 54994, 54995, 54996, 54997, 54998, 54999, 55000, 55001, 55002, 55003, 55004, 55005, 55006, 55007, 55008, 55009, 55010, 55011, 55012, 55013, 55014, 55015, 55016, 55017, 55018, 55019, 55020, 55021, 55022, 55023, 55024, 55075, 55025, 55027, 55028, 55029, 55030, 55031, 55032, 55033, 55034, 55035, 55036, 55037, 55038, 55039, 55040, 55041, 55042, 55044, 55045, 55046, 55047, 55048, 55049, 55050, 55051, 55058, 55059, 55060, 55061, 55062, 55063, 55064, 55065, 55066, 55067, 55068, 55069, 55070, 55071, 55072, 55073, 55074, 55076, 55077, 55078, 55079, 55080, 55081, 55082, 55083, 55084, 55085, 55086, 55087, 55088, 55089, 55090, 55091, 55092, 55093, 55094, 55095, 55096, 55097, 55098, 55099, 55100, 55101, 55102, 55103, 55104, 55105, 55106, 55107, 55108, 55109, 55110, 55111, 55112, 55113, 55114, 55115, 55116, 55117, 55118, 55119, 55120, 55121, 55122, 55123, 55124, 55125, 55126, 55127, 55128, 55129, 55130, 55131, 55132, 55133, 55134, 55135, 55136, 55137, 55138, 55139, 55140, 55141, 55142, 55143, 55144, 55145, 55146, 55147, 55148, 55149, 55150, 55151, 55152, 55153, 55154, 55155, 55156, 55157, 55158, 55159, 55160, 55161, 55162, 55163, 55164, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +22: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 1, 1, 2, 2, 1, 2, 1, 2, 1, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 4, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 55165, 55166, 55167, 55168, 55169, 55170, 55171, 55172, 55173, 55174, 55175, 55176, 55177, 55178, 55179, 55180, 55181, 55182, 55183, 55184, 55185, 55186, 55187, 55188, 55189, 55190, 55191, 55192, 55193, 55194, 55195, 55196, 55197, 55198, 55199, 55200, 55201, 55202, 55203, 55204, 55205, 55206, 55207, 55208, 55209, 55210, 55211, 55212, 55213, 55214, 55215, 55216, 55217, 55218, 55219, 55220, 55221, 55222, 55223, 55224, 55225, 55226, 55227, 55228, 55229, 55230, 55231, 55232, 55233, 55234, 55235, 55236, 55237, 55238, 55239, 55240, 55241, 55242, 55243, 55244, 55245, 55246, 55247, 55248, 55249, 55250, 55251, 55252, 55253, 55254, 55255, 55256, 55257, 55258, 55259, 55260, 55261, 55262, 55263, 55264, 55265, 55266, 55267, 55268, 55269, 55270, 55271, 55272, 55273, 1054, 639, 55026, 55043, 55052, 55053, 55054, 55055, 55056, 55057, 55274, 55275, 55276, 55277, 55278, 55279, 55280, 55281, 55282, 521, 55353, 55354, 55355, 55356, 55357, 55358, 55359, 55360, 55361, 55362, 55363, 55364, 55365, 55366, 55367, 55368, 55369, 55370, 55371, 55372, 55373, 55374, 55375, 55376, 55377, 55378, 801, 802, 63010, 63010, 63010, 55379, 55379, 55380, 55416, 55380, 55380, 55381, 55381, 55382, 55382, 55412, 55414, 55382, 55382, 55382, 55384, 55385, 55386, 55387, 55387, 55387, 55387, 55387, 55389, 55419, 55390, 55391, 55391, 55391, 55391, 55392, 55392, 55392, 55393, 55393, 55395, 55395, 55396, 55396, 55397, 55398, 55399, 55400, 55400, 55400, 55400, 55400, 55402, 55402, 55402, 55403, 55403, 55403, 55398, 55404, 55406, 55406, 55406, 55407, 55407, 55408, 55408, 55409, 55410, 55417, 55421, 55422, 55418, 55420, 55423, 55424, 55424, 55424, 55390, 55400, 604, 605, 606, 55396, 55406, 55381, 55388, 55401, 55411, 55383, 55394, 55405, 55413, 55415, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 4, 4, 2, 4, 2, 4, 2, 2, 4, 4, 4, 2, 2, 2, 2, 4, 4, 4, 4, 2, 2, 2, 2, 4, 4, 4, 2, 4, 4, 2, 4, 2, 4, 2, 4, 2, 2, 2, 2, 4, 4, 4, 4, 2, 4, 4, 2, 4, 4, 4, 2, 2, 4, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 38557, 38558, 38559, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55407, 0, 55381, 0, 0, 0, 0, 0, 0, 0, 0, 38649, 38650, 38651, 38652, 38653, 38654, 38655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 272, 0, 0, 272, 273, 0, 272, 0, 272, 0, 0, 273, 274, 275, 0, 0, 0, 0, 272, 273, 274, 275, 0, 0, 0, 0, 272, 273, 274, 0, 272, 273, 0, 272, 0, 272, 0, 272, 0, 0, 0, 0, 272, 274, 275, 276, 0, 272, 273, 0, 272, 273, 272, 0, 0, 272, 273, 0, 272, 0, 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 272, 273, 272, 273, 0, 0, 0, 32, 272, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 4, 0, 4, 0, 4, 0, 0, 4, 4, 4, 0, 0, 0, 0, 4, 4, 4, 4, 0, 0, 0, 0, 4, 4, 4, 0, 4, 4, 0, 4, 0, 4, 0, 4, 0, 0, 0, 0, 4, 4, 4, 4, 0, 4, 4, 0, 4, 4, 4, 0, 0, 4, 4, 0, 4, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55406, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0 +23: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 53475, 53476, 53477, 53478, 53479, 53480, 53481, 53482, 53483, 53484, 53485, 53486, 53487, 63010, 53488, 53489, 53490, 53491, 53492, 53493, 53494, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 53495, 53496, 53497, 53498, 53499, 53500, 53501, 53502, 53503, 53504, 53505, 53506, 53507, 53508, 53509, 53510, 53511, 53512, 53513, 53514, 53515, 662, 663, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 53516, 53517, 53518, 53519, 53520, 53521, 53522, 53523, 53524, 53525, 53526, 53527, 53528, 53529, 53530, 53531, 53532, 53533, 53534, 53535, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 53536, 53537, 53538, 53539, 53540, 53541, 53542, 53543, 53544, 53545, 53546, 53547, 53548, 63010, 53549, 53550, 53551, 63010, 53552, 53553, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 53907, 53908, 53909, 53910, 53911, 53912, 53913, 53914, 53915, 53916, 53917, 53918, 53919, 53920, 53921, 53922, 53923, 53924, 53925, 53926, 53927, 53928, 53929, 53930, 53931, 53932, 53933, 53934, 53935, 53936, 53937, 53938, 53939, 53940, 53941, 53943, 53944, 53945, 53946, 53947, 53948, 53949, 53950, 53951, 53952, 53953, 53954, 53955, 53956, 53957, 53958, 53959, 0, 0, 53960, 53961, 53962, 53963, 53964, 53965, 53966, 53967, 53968, 53969, 53970, 53971, 53972, 53973, 53974, 53975, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53976, 0, 667, 668, 601, 7165, 1042, 1043, 1044, 7198, 53942, 0, 63010, 63010, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 63010, 63010, 63010, 63010, 63010, 63010, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 63010, 63010, 63010, 63010, 63010, 63010, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 196, 197, 230, 231, 232, 51, 51, 51, 51, 51, 51, 51, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 51, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38669, 0, 0, 0, 0, 0, 0, 0, 38677, 38678, 38679, 38680, 38681, 38682, 38683, 38684, 38685, 38686, 38687, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38711, 38712, 38713, 38714, 38715, 38716, 38717, 38718, 38719, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38740, 38741, 38742, 38743, 38744, 38745, 38746, 38747, 38748, 38749, 38750, 38751, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38765, 0, 0, 0, 38769, 0, 0, 38772, 38773, 38774, 38775, 38776, 38777, 38778, 38779, 38780, 38781, 38782, 38783, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38878, 38879, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38890, 38891, 38892, 38893, 38894, 38895, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38906, 38907, 38908, 38909, 38910, 38911, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +24: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 985, 632, 556, 637, 598, 599, 529, 530, 557, 638, 0, 0, 0, 0, 0, 63010, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 63010, 63010, 63010, 63010, 63010, 63010, 54365, 54367, 54370, 54376, 54378, 54381, 54383, 54386, 54387, 54388, 54393, 54395, 54398, 54400, 54405, 54407, 54408, 54409, 54416, 54419, 54422, 54427, 54431, 54434, 54436, 54438, 54441, 54446, 54447, 54450, 54454, 54457, 54458, 54459, 54460, 54364, 54368, 54371, 54377, 54379, 54382, 54384, 54389, 54394, 54396, 54399, 54401, 54406, 54417, 54420, 54423, 54428, 54448, 54432, 54437, 54442, 54452, 54455, 54461, 54462, 54425, 54369, 54372, 54375, 54385, 54380, 54390, 54443, 54402, 54404, 54397, 54410, 54418, 54421, 54429, 54439, 54453, 54456, 54449, 54451, 54463, 54424, 54433, 54373, 54444, 54435, 54440, 54430, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 54357, 54358, 54359, 54360, 54361, 54362, 54363, 54366, 54374, 54445, 54391, 54426, 54464, 54466, 54467, 54469, 54470, 54473, 54475, 54476, 54478, 54480, 54482, 54483, 54471, 54481, 54403, 54392, 54411, 54412, 54465, 54468, 54472, 54474, 54413, 54479, 54414, 54415, 54484, 54485, 54477, 54487, 54486, 63010, 63010, 63010, 63010, 63010, 55283, 55284, 55285, 55286, 55287, 55288, 55289, 55290, 55291, 55292, 55293, 55294, 55295, 55296, 55297, 55298, 55299, 55300, 55301, 55302, 55303, 55304, 55305, 55306, 55307, 55308, 55309, 55310, 55311, 55312, 55313, 55314, 55315, 55316, 55317, 55318, 55319, 55320, 55321, 55322, 55323, 55324, 55325, 55326, 55327, 55328, 55329, 55330, 55331, 55332, 55333, 55334, 55335, 55336, 55337, 55338, 55339, 55340, 55341, 55342, 55343, 55344, 55345, 55346, 55347, 55348, 55349, 55350, 55351, 55352, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38927, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38938, 38939, 38940, 38941, 38942, 38943, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39032, 39033, 39034, 39035, 39036, 39037, 39038, 39039, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39083, 39084, 39085, 39086, 39087, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39158, 39159, 39160, 39161, 39162, 39163, 39164, 39165, 39166, 39167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +25: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 53425, 53426, 53427, 53428, 53429, 53430, 53431, 53432, 53433, 53434, 53435, 53436, 53437, 53438, 53439, 53440, 53441, 53442, 53443, 53444, 53445, 53446, 53447, 53448, 53449, 53450, 53451, 53452, 53453, 53433, 53436, 63010, 53454, 53455, 53456, 53457, 53458, 53459, 53460, 53461, 53462, 53463, 53464, 53465, 63010, 63010, 63010, 63010, 53466, 53467, 53468, 53469, 53470, 53471, 53472, 53473, 53474, 0, 0, 0, 63010, 63010, 63010, 63010, 1354, 63010, 63010, 63010, 612, 621, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 53977, 53978, 53979, 53980, 53981, 53982, 53983, 53984, 53985, 53986, 53987, 53988, 53989, 53990, 53991, 53992, 53993, 53994, 53995, 53996, 53997, 53998, 53999, 54000, 54001, 54002, 54003, 54004, 54005, 54006, 63010, 63010, 54007, 54008, 54009, 54010, 54011, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 54012, 54013, 54014, 54015, 54016, 54017, 54018, 54019, 54020, 54021, 54022, 54023, 54024, 54025, 54026, 54027, 54028, 54029, 54030, 54031, 54032, 54033, 54034, 54035, 54036, 54037, 54038, 54039, 54040, 54041, 54042, 54043, 54044, 54045, 54046, 54047, 54048, 54049, 54050, 54051, 54052, 54053, 54054, 54055, 63010, 63010, 63010, 63010, 54056, 54057, 54058, 54059, 54060, 54061, 54062, 54063, 54064, 54065, 54066, 54067, 54068, 54069, 54070, 54071, 54072, 54073, 54074, 54075, 54076, 54077, 54078, 54079, 54080, 54081, 63010, 63010, 63010, 63010, 63010, 63010, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7230, 63010, 63010, 63010, 54040, 54040, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 241, 242, 243, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 53463, 53464, 39199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39212, 39213, 39214, 39215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39228, 39229, 39230, 39231, 0, 39233, 39234, 39235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39278, 39279, 0, 0, 0, 0, 0, 39285, 39286, 39287, 39288, 39289, 39290, 39291, 39292, 39293, 39294, 39295, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39340, 39341, 39342, 39343, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39370, 39371, 39372, 39373, 39374, 39375, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39387, 39388, 39389, 54062, 54062, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54073, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +26: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 53554, 53555, 53556, 53557, 53558, 53559, 53560, 53561, 53562, 53563, 53564, 53565, 53566, 53567, 53568, 53569, 53570, 53571, 53572, 53573, 53574, 53575, 53576, 53577, 53578, 53579, 53580, 53581, 63010, 63010, 713, 714, 54082, 54083, 54084, 54085, 54086, 54087, 54088, 54089, 54090, 54091, 54092, 54093, 54094, 54095, 54096, 54097, 54098, 54099, 54100, 54101, 54102, 54103, 54104, 54105, 54106, 54107, 54108, 54109, 54110, 54111, 54112, 54113, 54114, 54115, 54116, 54117, 54118, 54119, 54120, 54121, 54122, 54123, 54124, 54125, 54126, 54135, 54136, 54137, 54138, 54139, 54140, 54127, 54120, 54129, 54130, 54131, 54088, 54088, 54109, 54109, 54132, 54133, 54134, 63010, 54158, 54141, 54143, 54144, 54144, 54145, 54146, 54147, 54148, 54149, 54150, 54128, 54142, 54157, 54151, 54152, 54154, 54155, 54156, 54153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63010, 63010, 0, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 63010, 63010, 63010, 63010, 63010, 63010, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 63010, 63010, 63010, 63010, 63010, 63010, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 7166, 669, 670, 671, 672, 1052, 1053, 63010, 63010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 196, 233, 234, 235, 236, 237, 238, 239, 240, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 51, 51, 51, 51, 51, 52, 52, 52, 52, 52, 52, 51, 51, 52, 54, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 39452, 39453, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39519, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39549, 39550, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39562, 39563, 39564, 39565, 39566, 39567, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39578, 39579, 39580, 39581, 39582, 39583, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39598, 39599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39615, 39616, 39617, 39618, 39619, 39620, 39621, 39622, 39623, 39624, 39625, 39626, 39627, 39628, 39629, 39630, 39631, 39632, 39633, 39634, 39635, 39636, 39637, 39638, 39639, 39640, 39641, 39642, 39643, 39644, 39645, 39646, 39647, 39648, 39649, 39650, 39651, 39652, 39653, 39654, 39655, 39656, 39657, 39658, 39659, 39660, 39661, 39662, 39663, 39664, 39665, 39666, 39667, 39668, 39669, 39670, 39671, 39672, 39673, 39674, 39675, 39676, 39677, 39678, 39679, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +27: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0, 0, 54228, 54229, 54230, 54231, 54232, 54233, 54234, 54235, 54236, 54237, 54238, 54239, 54240, 54241, 54242, 54245, 54246, 54247, 54248, 54249, 54250, 54251, 54252, 54253, 54254, 54255, 54256, 54257, 54258, 54259, 54261, 54262, 54263, 54264, 54265, 54267, 54268, 54269, 54270, 54271, 54272, 54273, 54274, 54276, 54277, 54278, 54281, 0, 54282, 54283, 54284, 54285, 54286, 54287, 54288, 54289, 54290, 54291, 54292, 54293, 54294, 54295, 54296, 54297, 54243, 54244, 54260, 54266, 54275, 54279, 54280, 63010, 63010, 63010, 63010, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 715, 716, 640, 602, 673, 674, 528, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 63010, 63010, 63010, 0, 0, 0, 52757, 52758, 52759, 52760, 52761, 52762, 52763, 52764, 52766, 52767, 52768, 52769, 52770, 52771, 52772, 52773, 52774, 52775, 52776, 52777, 52778, 52779, 52781, 52783, 52785, 52788, 52791, 52793, 52794, 52796, 52784, 52786, 52789, 52797, 52798, 52799, 52800, 52801, 52802, 52803, 52804, 52782, 52792, 52765, 52795, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 52757, 52787, 52790, 52780, 52764, 52781, 53582, 53582, 53583, 53583, 53583, 53584, 53584, 53585, 53585, 53586, 53586, 53587, 53587, 53587, 53588, 53588, 53589, 53590, 53591, 53591, 53592, 53592, 53593, 53593, 53594, 53594, 53594, 53595, 53595, 53596, 53597, 53597, 53598, 53599, 53600, 53601, 53602, 53603, 0, 53604, 53604, 53605, 53606, 53606, 53607, 53607, 53608, 53608, 53609, 53610, 53611, 53612, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 1066, 1067, 1068, 1069, 195, 195, 196, 200, 197, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 194, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 196, 202, 197, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 194, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 25, 25, 2, 4, 2, 4, 4, 2, 4, 2, 4, 2, 4, 2, 4, 4, 2, 4, 2, 2, 2, 4, 2, 4, 2, 4, 2, 4, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 39756, 39757, 39758, 39759, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39805, 39806, 39807, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39924, 39925, 39926, 39927, 39928, 39929, 39930, 39931, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 53315, 53316, 53317, 53318, 53319, 53320, 53321, 53322, 53323, 53324, 53328, 53329, 53330, 53331, 53332, 53333, 53334, 53335, 53336, 53337, 53338, 53339, 53340, 53341, 53342, 53343, 53344, 53346, 53348, 53349, 53350, 53351, 53352, 53353, 53354, 53355, 53345, 53347, 53357, 53358, 53359, 53360, 53361, 53362, 53363, 53364, 53365, 53366, 53367, 53368, 53369, 53370, 53371, 53372, 53356, 0, 63010, 63010, 63010, 658, 659, 1035, 1036, 1037, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 63010, 63010, 63010, 53325, 53326, 53327, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 54488, 54489, 54490, 54491, 54492, 54493, 54494, 54495, 54496, 54497, 54498, 54499, 54500, 54501, 54502, 54503, 54504, 54505, 54506, 54507, 54508, 54509, 54510, 54511, 54512, 54513, 54514, 54515, 54516, 54517, 54518, 54519, 54520, 54521, 54522, 54523, 706, 707, 49583, 49607, 49764, 49794, 49803, 49803, 49932, 49949, 49830, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51230, 51230, 51230, 51230, 0, 51230, 51230, 51230, 51230, 0, 0, 0, 51231, 51232, 63010, 0, 0, 63010, 63010, 63010, 63010, 63010, 63010, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 194, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 196, 32, 32, 32, 32, 197, 197, 0, 32, 32, 32, 0, 0, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 4, 4, 4, 2, 4, 4, 4, 4, 2, 2, 0, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 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, 39992, 39993, 39994, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40010, 40011, 40012, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40073, 40074, 40075, 40076, 40077, 40078, 40079, 40080, 40081, 40082, 40083, 40084, 40085, 40086, 40087, 40088, 40089, 40090, 40091, 40092, 40093, 40094, 40095, 40096, 40097, 40098, 40099, 40100, 40101, 40102, 40103, 40104, 40105, 40106, 40107, 40108, 40109, 40110, 40111, 40112, 40113, 40114, 40115, 40116, 40117, 40118, 40119, 40120, 40121, 40122, 40123, 40124, 40125, 40126, 40127, 0, 0, 0, 0, 0, 0, 0, 0, 40136, 40137, 40138, 40139, 40140, 40141, 40142, 40143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40183, 0, 0, 40186, 40187, 40188, 40189, 40190, 40191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +29: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 48584, 48587, 48588, 48618, 48635, 48656, 48657, 48683, 48721, 48829, 48849, 48870, 48893, 48939, 48959, 48990, 49009, 48991, 49010, 49003, 48997, 49032, 49015, 49016, 49037, 49083, 49093, 49174, 49206, 49208, 49209, 49238, 49252, 49270, 49314, 49343, 49415, 49416, 49465, 49479, 49485, 49490, 49501, 49713, 48580, 48580, 48605, 48617, 48652, 48679, 48693, 48753, 48789, 48815, 48841, 48866, 48884, 48935, 48950, 48958, 48986, 49028, 49033, 49072, 49170, 49202, 49266, 48580, 48590, 48594, 48588, 48605, 48652, 48679, 48698, 48703, 48721, 48753, 48829, 48866, 48935, 48981, 48986, 49005, 49015, 49016, 49033, 49170, 49202, 49208, 49233, 49248, 49416, 49463, 49464, 49466, 49498, 49499, 48815, 49072, 49202, 49248, 49463, 49464, 49489, 49498, 49499, 49210, 48619, 48658, 48745, 48940, 48960, 49040, 49088, 49117, 49139, 49180, 49319, 48779, 49737, 48753, 49170, 48834, 48840, 49038, 49218, 49247, 48621, 48659, 48746, 48770, 48871, 48911, 48941, 48970, 49041, 49098, 49140, 49156, 49254, 49280, 49320, 48586, 48599, 48668, 48690, 48707, 48720, 48702, 48835, 49012, 49165, 49219, 49348, 48600, 48631, 48646, 48652, 48716, 48738, 48858, 48757, 49221, 48830, 48836, 48823, 48834, 48854, 48912, 48911, 48888, 48942, 49239, 48961, 48971, 48954, 49018, 49049, 49141, 49151, 49181, 49213, 49243, 49206, 49255, 49262, 49310, 49325, 49329, 49339, 49474, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49072, 0, 0, 0, 0, 0, 0, 0, 49373, 48580, 48580, 48580, 48580, 48631, 48652, 48652, 48753, 48762, 48866, 48884, 48888, 48939, 48950, 48954, 49077, 49082, 49134, 49134, 49310, 48594, 48605, 48630, 48698, 48738, 48904, 48986, 49033, 49151, 49202, 49266, 48580, 48986, 49202, 0, 63010, 63010, 63010, 63010, 63010, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 51, 51, 52, 51, 51, 51, 51, 51, 51, 51, 32, 51, 51, 51, 51, 52, 52, 51, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 51, 32, 32, 32, 32, 32, 51, 52, 52, 51, 52, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 29, 20, 29, 2, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 2, 29, 29, 29, 29, 29, 29, 29, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 20, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 48986, 49248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40438, 40439, 40440, 40441, 40442, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 272, 272, 32, 32, 48, 273, 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 52, 0, 43, 43, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 4, 0, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48679, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48789, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48679, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +30: 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 2, 2, 2, 2, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 1, 1, 3, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 48580, 48580, 48605, 48605, 48605, 48605, 48605, 48605, 48631, 48631, 48652, 48652, 48652, 48652, 48652, 48652, 48652, 48652, 48652, 48652, 48679, 48679, 48679, 48679, 48679, 48679, 48679, 48679, 48679, 48679, 48738, 48738, 48753, 48753, 48789, 48789, 48789, 48789, 48789, 48789, 48789, 48789, 48789, 48789, 48815, 48815, 48815, 48815, 48866, 48866, 48866, 48866, 48866, 48866, 48884, 48884, 48884, 48884, 48884, 48884, 48884, 48884, 48935, 48935, 48935, 48935, 48935, 48935, 48950, 48950, 48950, 48950, 48950, 48950, 48950, 48950, 48986, 48986, 48986, 48986, 48986, 48986, 48986, 48986, 49033, 49033, 49033, 49033, 49072, 49072, 49072, 49072, 49072, 49072, 49072, 49072, 49134, 49134, 49134, 49134, 49134, 49134, 49134, 49134, 49134, 49134, 49170, 49170, 49170, 49170, 49170, 49170, 49170, 49170, 49202, 49202, 49202, 49202, 49202, 49202, 49202, 49202, 49202, 49202, 49248, 49248, 49248, 49248, 49266, 49266, 49266, 49266, 49266, 49266, 49266, 49266, 49266, 49266, 49276, 49276, 49276, 49276, 49288, 49288, 49310, 49310, 49310, 49310, 49310, 49310, 48789, 49170, 49266, 49288, 48580, 49134, 49149, 49150, 49134, 48678, 48580, 48580, 48580, 48580, 48580, 48580, 48580, 48580, 48580, 48580, 48580, 48580, 48580, 48580, 48580, 48580, 48580, 48580, 48580, 48580, 48580, 48580, 48580, 48580, 48679, 48679, 48679, 48679, 48679, 48679, 48679, 48679, 48679, 48679, 48679, 48679, 48679, 48679, 48679, 48679, 48815, 48815, 48815, 48815, 48986, 48986, 48986, 48986, 48986, 48986, 48986, 48986, 48986, 48986, 48986, 48986, 48986, 48986, 48986, 48986, 48986, 48986, 48986, 48986, 48986, 48986, 48986, 48986, 49202, 49202, 49202, 49202, 49202, 49202, 49202, 49202, 49202, 49202, 49202, 49202, 49202, 49202, 49288, 49288, 49288, 49288, 49288, 49288, 49288, 49288, 48884, 48884, 49261, 49261, 49304, 49304, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 31, 31, 31, 31, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 31, 31, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 31, 31, 31, 31, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 31, 31, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 31, 31, 31, 31, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 31, 31, 31, 31, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 2, 2, 2, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 2, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 2, 2, 2, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 2, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 2, 2, 2, 2, 4, 4, 2, 2, 10, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 2, 2, 2, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 2, 2, 2, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 2, 2, 2, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 10, 4, 8, 2, 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, 49405, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48884, 48884, 0, 0, 0, 0, 68, 68, 46, 46, 66, 66, 73, 73, 48, 48, 46, 46, 66, 66, 73, 73, 48, 48, 70, 70, 278, 278, 278, 278, 70, 70, 72, 72, 48, 48, 46, 46, 50, 50, 46, 46, 66, 66, 43, 43, 48, 48, 71, 71, 72, 72, 43, 43, 36, 36, 66, 66, 73, 73, 66, 66, 66, 66, 73, 73, 70, 70, 279, 279, 46, 46, 66, 66, 46, 46, 66, 66, 73, 73, 70, 70, 45, 45, 45, 45, 278, 278, 278, 278, 36, 36, 46, 46, 46, 46, 66, 66, 66, 66, 73, 73, 46, 46, 66, 66, 36, 36, 40, 40, 66, 66, 46, 46, 66, 66, 73, 73, 70, 70, 67, 67, 72, 72, 70, 70, 45, 45, 278, 278, 45, 45, 66, 66, 37, 37, 36, 36, 43, 43, 46, 46, 66, 66, 46, 46, 43, 43, 46, 46, 39, 39, 66, 66, 73, 73, 73, 43, 41, 41, 32, 273, 0, 0, 272, 0, 66, 66, 59, 59, 39, 39, 39, 39, 39, 39, 39, 39, 66, 66, 38, 38, 38, 38, 38, 38, 38, 38, 66, 66, 66, 66, 59, 59, 45, 45, 279, 279, 281, 281, 39, 39, 39, 39, 66, 66, 59, 59, 66, 66, 66, 66, 59, 59, 39, 39, 39, 39, 39, 39, 39, 39, 66, 66, 279, 279, 281, 281, 63, 63, 63, 63, 63, 63, 66, 66, 59, 59, 279, 279, 281, 281, 63, 63, 63, 63, 63, 63, 37, 37, 66, 66, 59, 59, 45, 45, 32, 32, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 33, 0, 33, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 33, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 33, 0, 33, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 33, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 0, 0, 4, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 33, 0, 33, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 33, 0, 33, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 33, 0, 33, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 10, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 37, 36, 36, 0, 0, 0, 0, 38, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 36, 0, 0, 0, 0, 0, 0, 0, 0, 50, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 36, 43, 43, 37, 37, 36, 36, 0, 0, 0, 0, 0, 0, 0, 0, 50, 50, 0, 0, 0, 0, 0, 0, 46, 46, 46, 46, 46, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 36, 43, 43, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 32, 0, 0, 0, 0, 0, 36, 36, 37, 37, 59, 59, 45, 45, 39, 39, 36, 36, 37, 37, 59, 59, 45, 45, 38, 38, 0, 0, 0, 0, 0, 0, 36, 36, 37, 37, 59, 59, 45, 45, 39, 39, 0, 0, 0, 0, 0, 0, 0, 0, 36, 36, 37, 37, 59, 59, 45, 45, 39, 39, 63, 63, 63, 63, 59, 59, 45, 45, 66, 66, 0, 0, 0, 0, 63, 63, 63, 63, 59, 59, 45, 45, 66, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 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, 2, 0, 0, 10, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +31: 2, 2, 3, 3, 3, 3, 3, 3, 2, 2, 3, 3, 3, 3, 3, 3, 2, 2, 3, 3, 3, 3, 2, 2, 2, 2, 3, 3, 3, 3, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 2, 2, 3, 3, 3, 3, 3, 3, 2, 2, 3, 3, 3, 3, 3, 3, 2, 2, 3, 3, 3, 3, 3, 3, 2, 2, 3, 3, 3, 3, 2, 2, 2, 2, 3, 3, 3, 3, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 2, 2, 2, 3, 2, 3, 2, 3, 2, 2, 3, 3, 3, 3, 3, 3, 2, 2, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 4, 4, 4, 4, 4, 4, 3, 3, 4, 4, 4, 4, 4, 4, 3, 3, 4, 4, 4, 4, 4, 4, 3, 3, 4, 4, 4, 4, 4, 4, 3, 3, 4, 4, 4, 4, 4, 4, 3, 3, 4, 4, 4, 4, 4, 4, 2, 2, 3, 2, 3, 2, 2, 3, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 3, 2, 3, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 3, 2, 3, 2, 2, 3, 2, 2, 2, 2, 2, 1, 1, 2, 49462, 49462, 49462, 49462, 49462, 49462, 49462, 49462, 49462, 49462, 49462, 49462, 49462, 49462, 49462, 49462, 49467, 49467, 49467, 49467, 49467, 49467, 63010, 63010, 49467, 49467, 49467, 49467, 49467, 49467, 63010, 63010, 49473, 49473, 49473, 49473, 49473, 49473, 49473, 49473, 49473, 49473, 49473, 49473, 49473, 49473, 49473, 49473, 49475, 49475, 49475, 49475, 49475, 49475, 49475, 49475, 49475, 49475, 49475, 49475, 49475, 49475, 49475, 49475, 49483, 49483, 49483, 49483, 49483, 49483, 63010, 63010, 49483, 49483, 49483, 49483, 49483, 49483, 63010, 63010, 49497, 49497, 49497, 49497, 49497, 49497, 49497, 49497, 63010, 49497, 63010, 49497, 63010, 49497, 63010, 49497, 49502, 49502, 49502, 49502, 49502, 49502, 49502, 49502, 49502, 49502, 49502, 49502, 49502, 49502, 49502, 49502, 49462, 49462, 49467, 49467, 49473, 49473, 49475, 49475, 49483, 49483, 49497, 49497, 49502, 49502, 63010, 63010, 49462, 49462, 49462, 49462, 49462, 49462, 49462, 49462, 49462, 49462, 49462, 49462, 49462, 49462, 49462, 49462, 49473, 49473, 49473, 49473, 49473, 49473, 49473, 49473, 49473, 49473, 49473, 49473, 49473, 49473, 49473, 49473, 49502, 49502, 49502, 49502, 49502, 49502, 49502, 49502, 49502, 49502, 49502, 49502, 49502, 49502, 49502, 49502, 49462, 49462, 49462, 49462, 49462, 63010, 49462, 49462, 49462, 49462, 49462, 49462, 49462, 1166, 49475, 1166, 1168, 1161, 49473, 49473, 49473, 63010, 49473, 49473, 49467, 49467, 49473, 49473, 49473, 1166, 1166, 1166, 49475, 49475, 49475, 49475, 63010, 63010, 49475, 49475, 49475, 49475, 49475, 49475, 63010, 1167, 1167, 1167, 49497, 49497, 49497, 49497, 49489, 49489, 49497, 49497, 49497, 49497, 49497, 49497, 49489, 1161, 1161, 1154, 63010, 63010, 49502, 49502, 49502, 63010, 49502, 49502, 49483, 49483, 49502, 49502, 49502, 1155, 1167, 63010, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 8, 8, 8, 8, 8, 8, 8, 8, 2, 2, 2, 2, 2, 2, 2, 2, 8, 8, 8, 8, 8, 8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 8, 8, 8, 8, 8, 8, 8, 8, 2, 2, 2, 2, 2, 2, 2, 2, 8, 8, 8, 8, 8, 8, 8, 8, 2, 2, 2, 2, 2, 2, 2, 2, 8, 8, 8, 8, 8, 8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 8, 2, 8, 2, 8, 2, 8, 2, 2, 2, 2, 2, 2, 2, 2, 8, 8, 8, 8, 8, 8, 8, 8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 8, 8, 8, 8, 8, 8, 8, 8, 2, 2, 2, 2, 2, 2, 2, 2, 8, 8, 8, 8, 8, 8, 8, 8, 2, 2, 2, 2, 2, 2, 2, 2, 8, 8, 8, 8, 8, 8, 8, 8, 2, 2, 2, 2, 2, 2, 2, 2, 8, 8, 8, 8, 8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 8, 8, 8, 8, 8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 8, 8, 8, 8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 8, 8, 8, 8, 8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 8, 8, 8, 8, 8, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40726, 40727, 0, 0, 0, 0, 0, 0, 40734, 40735, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40774, 40775, 0, 0, 0, 0, 0, 0, 40782, 40783, 0, 0, 0, 0, 0, 0, 0, 0, 40792, 0, 40794, 0, 40796, 0, 40798, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40830, 40831, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40885, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40901, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40916, 40917, 0, 0, 0, 0, 0, 0, 40924, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40944, 40945, 0, 0, 0, 40949, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40959, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 0, 0, 34, 35, 34, 35, 34, 35, 0, 0, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 0, 0, 34, 35, 34, 35, 34, 35, 0, 0, 34, 35, 34, 35, 34, 35, 34, 35, 0, 35, 0, 35, 0, 35, 0, 35, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 37, 36, 37, 36, 37, 36, 37, 36, 37, 36, 37, 36, 37, 36, 0, 0, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35, 38, 50, 37, 76, 36, 0, 42, 42, 38, 50, 37, 36, 76, 0, 0, 0, 0, 42, 37, 76, 36, 0, 42, 42, 37, 36, 37, 36, 76, 37, 36, 42, 38, 50, 43, 43, 0, 0, 42, 43, 38, 50, 37, 36, 0, 37, 36, 42, 38, 50, 43, 43, 34, 35, 42, 43, 38, 50, 37, 36, 35, 37, 36, 0, 0, 0, 37, 76, 36, 0, 42, 42, 37, 36, 37, 36, 76, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 2, 0, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 37, 36, 36, 42, 42, 0, 0, 37, 37, 36, 36, 42, 42, 0, 0, 37, 37, 36, 36, 0, 0, 0, 0, 37, 37, 36, 36, 0, 0, 0, 0, 37, 37, 36, 36, 42, 42, 0, 0, 37, 37, 36, 36, 42, 42, 0, 0, 37, 37, 36, 36, 42, 42, 0, 0, 37, 37, 36, 36, 42, 42, 0, 0, 37, 37, 36, 36, 0, 0, 0, 0, 37, 37, 36, 36, 0, 0, 0, 0, 37, 37, 36, 36, 42, 42, 0, 0, 0, 37, 0, 36, 0, 42, 0, 0, 37, 37, 36, 36, 42, 42, 0, 0, 37, 37, 36, 36, 42, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 76, 37, 37, 36, 36, 42, 42, 76, 76, 37, 37, 36, 36, 42, 42, 76, 76, 37, 37, 36, 36, 42, 42, 76, 76, 37, 37, 36, 36, 42, 42, 76, 76, 37, 37, 36, 36, 42, 42, 76, 76, 37, 37, 36, 36, 42, 42, 0, 0, 76, 0, 76, 0, 0, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 0, 76, 0, 0, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 36, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 36, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 0, 76, 0, 0, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 0, 0, 0, 0, 2, 2, 2, 2, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 0, 0, 0, 0, 2, 2, 2, 2, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 0, 2, 0, 2, 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 76, 76, 76, 76, 76, 0, 0, 76, 76, 76, 76, 76, 76, 0, 0, 76, 76, 76, 76, 76, 76, 0, 0, 76, 76, 76, 76, 76, 76, 0, 0, 76, 76, 76, 76, 76, 76, 0, 0, 76, 76, 76, 76, 76, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 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 +32: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 2, 3, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, 0, 0, 0, 0, 0, 531, 531, 532, 533, 534, 535, 899, 524, 774, 775, 776, 777, 781, 782, 783, 784, 927, 928, 932, 933, 631, 631, 631, 934, 519, 520, 0, 0, 0, 0, 0, 521, 923, 925, 938, 938, 938, 939, 939, 939, 942, 778, 779, 943, 608, 629, 522, 944, 946, 948, 949, 935, 1574, 803, 804, 614, 614, 608, 919, 908, 936, 937, 912, 566, 947, 913, 1570, 538, 945, 744, 745, 938, 746, 747, 748, 749, 750, 751, 752, 521, 0, 0, 0, 0, 0, 63010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7229, 48815, 63010, 63010, 7233, 7234, 7235, 7236, 7237, 7238, 1558, 1569, 1563, 791, 792, 48950, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 1558, 1569, 1563, 791, 792, 63010, 48580, 48679, 48986, 49276, 48698, 48789, 48866, 48884, 48935, 48950, 49033, 49134, 49170, 63010, 63010, 63010, 7199, 7200, 7201, 7202, 7203, 7204, 7205, 7206, 49072, 7207, 7208, 7209, 7210, 7211, 7212, 7213, 7214, 7215, 7216, 7217, 7218, 7219, 7220, 7221, 7222, 7223, 7224, 7225, 7226, 7227, 7228, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 257, 258, 259, 259, 260, 261, 262, 263, 53, 53, 53, 264, 265, 54, 54, 54, 54, 266, 54, 54, 54, 53, 267, 268, 269, 270, 53, 53, 52, 52, 52, 52, 51, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 4, 4, 4, 4, 4, 4, 4, 27, 4, 4, 4, 0, 0, 0, 0, 0, 2, 27, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 0, 0, 0, 0, 0, 27, 2, 2, 2, 4, 4, 2, 4, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 4, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 20, 2, 2, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 2, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 10, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 631, 631, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 938, 938, 0, 939, 939, 0, 0, 0, 0, 608, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 614, 608, 614, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 938, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41061, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41074, 41075, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41117, 41118, 41119, 0, 0, 0, 0, 0, 0, 0, 0, 49134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41151, 41152, 41153, 41154, 41155, 41156, 41157, 41158, 41159, 41160, 41161, 41162, 41163, 41164, 41165, 41166, 41167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41201, 41202, 41203, 41204, 41205, 41206, 41207, 41208, 41209, 41210, 41211, 41212, 41213, 41214, 41215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 0, 32, 32, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 0, 4, 4, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 631, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 938, 0, 0, 939, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 938, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 938, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 3, 1, 2, 1, 3, 3, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 3, 3, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 2, 3, 2, 1, 2, 3, 4, 2, 1, 2, 3, 1, 1, 1, 1, 1, 2, 3, 2, 1, 2, 3, 4, 2, 1, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 48580, 48580, 48631, 1270, 1414, 48631, 48631, 48703, 1415, 1270, 48753, 48789, 48789, 48789, 48789, 48789, 48815, 48815, 48884, 48884, 1416, 48950, 48950, 1417, 1418, 49033, 49054, 49072, 49072, 49072, 1419, 1420, 49134, 49170, 49170, 1421, 49310, 1422, 49502, 1423, 49310, 1424, 48866, 48580, 48605, 48631, 1425, 48679, 48679, 48738, 48751, 48935, 48986, 50228, 50229, 50230, 50231, 48815, 1426, 48738, 49484, 49464, 49464, 49484, 1557, 1427, 1428, 1429, 1430, 48652, 48652, 48679, 48815, 48841, 1431, 1713, 1432, 48580, 48751, 1433, 7230, 7230, 7230, 7230, 7231, 7230, 7231, 7232, 7233, 7230, 7234, 7230, 7232, 7234, 7236, 7230, 48815, 48815, 48815, 48815, 49248, 49248, 49248, 49248, 48815, 49276, 49276, 49276, 48884, 48631, 48652, 48935, 48815, 48815, 48815, 48815, 49248, 49248, 49248, 49248, 48815, 49276, 49276, 49276, 48884, 48631, 48652, 48935, 6854, 6855, 6856, 48650, 48650, 7235, 6857, 6858, 6859, 7229, 1434, 1435, 63010, 63010, 63010, 63010, 1436, 1438, 1437, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1436, 1437, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1440, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1498, 1496, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 4, 4, 11, 4, 2, 4, 4, 10, 2, 4, 5, 11, 11, 11, 5, 2, 11, 11, 11, 5, 2, 11, 10, 2, 2, 11, 11, 11, 11, 11, 2, 2, 20, 10, 20, 2, 11, 2, 8, 2, 11, 2, 8, 8, 11, 11, 2, 5, 11, 11, 8, 11, 5, 4, 4, 4, 4, 5, 2, 10, 5, 5, 11, 11, 5, 2, 2, 2, 2, 11, 5, 5, 5, 5, 2, 2, 2, 10, 2, 2, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 8, 2, 2, 2, 2, 2, 30, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 916, 916, 0, 48631, 0, 916, 916, 0, 0, 48738, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48986, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48935, 48679, 48935, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48580, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 916, 0, 0, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 0, 48815, 48815, 49248, 0, 48815, 48815, 48815, 49276, 0, 48815, 48815, 0, 0, 0, 0, 0, 48815, 48815, 49248, 0, 48815, 48815, 48815, 49276, 0, 48815, 48815, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1574, 0, 0, 41356, 41357, 41358, 41359, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 0, 32, 0, 32, 32, 0, 0, 32, 0, 0, 0, 0, 0, 57, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 0, 32, 32, 32, 32, 0, 32, 32, 0, 0, 0, 0, 0, 32, 32, 32, 0, 32, 32, 32, 32, 0, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 0, 10, 0, 4, 4, 0, 0, 10, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 10, 20, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 0, 10, 10, 10, 0, 10, 10, 10, 10, 0, 10, 10, 0, 0, 0, 0, 0, 4, 4, 4, 0, 4, 4, 4, 4, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 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, 48631, 49134, 0, 0, 0, 48986, 49202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48884, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49276, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49134, 0, 0, 7236, 7238, 7230, 7232, 7232, 7234, 7234, 7234, 7234, 7235, 7235, 7237, 7237, 7237, 7237, 0, 0, 0, 48815, 0, 0, 0, 48815, 48815, 0, 0, 0, 48815, 0, 0, 0, 0, 0, 0, 48815, 0, 0, 0, 48815, 48815, 0, 0, 0, 48815, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 0, 0, 0, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 32, 0, 0, 0, 32, 32, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 32, 32, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 0, 0, 0, 10, 0, 0, 0, 10, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48815, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48815, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +34: 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 2, 3, 1, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1542, 1543, 1544, 1545, 1545, 1546, 1547, 1548, 1549, 1549, 1550, 1551, 1551, 1552, 1554, 1555, 1556, 1557, 1569, 1571, 1572, 1573, 1575, 1576, 1577, 1578, 1579, 1580, 1582, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1590, 1591, 1591, 1592, 1593, 1594, 1595, 1596, 1596, 1596, 1597, 1597, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1609, 1614, 1615, 1615, 1616, 1617, 1616, 1618, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1563, 1641, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1622, 1562, 1564, 1643, 1644, 1652, 1653, 1652, 1653, 1654, 1655, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1656, 1657, 1662, 1663, 1662, 1663, 1664, 1665, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1690, 1696, 1697, 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1658, 1659, 1673, 1674, 1749, 1750, 1751, 1752, 1753, 1754, 1702, 1703, 1704, 1705, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 1596, 1596, 0, 1597, 1597, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 0, 47, 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 0, 47, 0, 0, 0, 0, 0, 32, 32, 0, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, 47, 0, 0, 47, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 47, 47, 47, 0, 0, 47, 47, 0, 0, 47, 47, 0, 0, 0, 0, 0, 0, 47, 47, 0, 0, 47, 47, 0, 0, 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 47, 47, 0, 0, 0, 0, 0, 0, 47, 47, 47, 47, 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, 2, 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, 2, 0, 2, 0, 0, 0, 0, 0, 4, 4, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 0, 0, 2, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 2, 2, 0, 0, 2, 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, 2, 2, 2, 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, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 2, 2, 2, 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, 1596, 0, 0, 1597, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +35: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 805, 806, 807, 808, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 879, 880, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 63010, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41983, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +36: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059, 2060, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069, 2070, 2071, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7230, 7230, 7230, 7230, 7230, 7230, 7230, 7230, 7230, 7230, 7231, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7230, 7230, 7230, 7230, 7230, 7230, 7230, 7230, 7230, 7230, 7231, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 48580, 48605, 48631, 48652, 48679, 48738, 48753, 48789, 48815, 48841, 48866, 48884, 48935, 48950, 48986, 49033, 49054, 49072, 49134, 49170, 49202, 49248, 49266, 49276, 49288, 49310, 48580, 48605, 48631, 48652, 48679, 48738, 48753, 48789, 48815, 48841, 48866, 48884, 48935, 48950, 48986, 49033, 49054, 49072, 49134, 49170, 49202, 49248, 49266, 49276, 49288, 49310, 7229, 7230, 7230, 7230, 7230, 7230, 7230, 7230, 7230, 7230, 7231, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7230, 7229, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42023, 42024, 42025, 42026, 42027, 42028, 42029, 42030, 42031, 42032, 42033, 42034, 42035, 42036, 42037, 42038, 42039, 42040, 42041, 42042, 42043, 42044, 42045, 42046, 42047, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42059, 42060, 42061, 42062, 42063, 42064, 42065, 42066, 42067, 42068, 42069, 42070, 42071, 42072, 42073, 42074, 42075, 42076, 42077, 42078, 42079, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7230, 7230, 7230, 7230, 7230, 7230, 7230, 7230, 7230, 7230, 7231, 631, 631, 631, 631, 631, 631, 631, 631, 631, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7229, 48580, 48605, 48631, 48652, 48679, 48738, 48753, 48789, 48815, 48841, 48866, 48884, 48935, 48950, 48986, 49033, 49054, 49072, 49134, 49170, 49202, 49248, 49266, 49276, 49288, 49310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 792, 792, 792, 792, 792, 792, 792, 792, 792, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +37: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177, 2178, 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187, 2188, 2189, 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248, 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2256, 2257, 2258, 2259, 2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268, 2269, 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277, 2278, 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288, 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, 2299, 2300, 2301, 2302, 2303, 2304, 2305, 2306, 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316, 2317, 2318, 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2326, 2327, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +38: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2328, 2329, 2330, 2331, 2332, 2333, 2334, 2335, 2336, 2337, 2338, 2339, 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347, 2348, 2349, 2350, 2351, 2352, 2353, 2354, 2355, 2356, 2357, 2358, 2359, 2360, 2361, 2362, 2363, 2364, 2365, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 3746, 3747, 3748, 3749, 3750, 3751, 3752, 3753, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2384, 2385, 2386, 2387, 2388, 2389, 2390, 2391, 2392, 2393, 2394, 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2402, 2403, 2404, 2405, 2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415, 2416, 2417, 2418, 2419, 2420, 2421, 2422, 2423, 2424, 2425, 2426, 2427, 2428, 4339, 4340, 4341, 2429, 2430, 2431, 2432, 2433, 2434, 2435, 2436, 2437, 2438, 2439, 2440, 2441, 2442, 2443, 2444, 2445, 2446, 2447, 2448, 2449, 2450, 2451, 2452, 2453, 2454, 3740, 3741, 3742, 3743, 3744, 3745, 2455, 2456, 2457, 2458, 2459, 2460, 2461, 2462, 2463, 2464, 2465, 2466, 2467, 2468, 2469, 2470, 2471, 2472, 2473, 2474, 2475, 2476, 2477, 2478, 2479, 2480, 2481, 2482, 2483, 2484, 2485, 2486, 2487, 2488, 2489, 2490, 2491, 2492, 2493, 2494, 2495, 2496, 2497, 2498, 2499, 2500, 2501, 2502, 2503, 2504, 2505, 2506, 2507, 2508, 2509, 2510, 2511, 2512, 2513, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 2523, 2524, 2525, 2526, 2527, 2528, 2529, 2530, 2531, 2532, 2533, 2534, 2535, 2536, 2537, 2538, 2539, 2540, 2541, 2542, 2543, 2544, 2545, 2546, 2547, 2548, 2549, 2550, 2551, 2552, 2553, 2554, 2555, 2556, 2557, 2558, 2559, 2560, 2561, 2562, 2563, 2564, 2565, 2566, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +39: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2593, 2594, 2595, 2596, 2597, 2598, 2599, 2600, 2601, 2602, 2603, 2604, 2605, 2606, 2607, 2608, 2609, 2610, 2611, 2612, 2613, 2614, 2615, 2616, 2617, 2618, 2619, 2620, 2621, 2622, 2623, 2624, 2625, 2626, 2627, 2628, 2629, 2630, 2631, 2632, 2633, 2634, 2635, 2636, 2637, 2638, 2639, 2640, 2641, 2642, 2643, 2644, 2645, 2646, 2647, 2648, 2649, 2650, 2651, 2652, 2653, 2654, 2655, 2656, 2657, 2658, 2659, 2660, 2661, 2662, 2663, 2664, 2665, 2666, 2667, 2668, 2669, 2670, 2671, 2672, 2673, 2674, 2675, 2676, 2677, 2678, 2679, 2680, 2681, 2682, 2683, 2684, 2685, 2686, 2687, 2688, 2689, 2690, 2691, 2692, 2693, 2694, 2695, 2696, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7230, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7230, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7230, 2697, 2698, 2699, 2700, 2701, 2702, 2703, 2704, 2705, 2706, 2707, 2708, 2709, 2710, 2711, 2712, 2713, 2714, 2715, 2716, 2717, 2718, 2719, 2720, 2721, 2722, 2723, 2724, 2725, 2726, 2727, 2728, 2729, 2730, 2731, 2732, 2733, 2734, 2735, 2736, 2737, 2738, 2739, 2740, 2741, 2742, 2743, 2744, 2745, 833, 834, 2746, 2747, 2748, 2749, 2750, 2751, 2752, 2753, 2754, 2755, 2756, 2757, 2758, 2759, 2760, 2761, 2762, 2763, 2764, 2765, 2766, 2767, 2768, 2769, 2770, 2771, 2772, 2773, 2774, 2775, 2776, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 2777, 2778, 2779, 2780, 2781, 2782, 2783, 2784, 2785, 2786, 2787, 2788, 2789, 2790, 2791, 2792, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 7229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +40: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3484, 3485, 3486, 3487, 3488, 3489, 3490, 3491, 3492, 3493, 3494, 3495, 3496, 3497, 3498, 3499, 3500, 3501, 3502, 3503, 3504, 3505, 3506, 3507, 3508, 3509, 3510, 3511, 3512, 3513, 3514, 3515, 3516, 3517, 3518, 3519, 3520, 3521, 3522, 3523, 3524, 3525, 3526, 3527, 3528, 3529, 3530, 3531, 3532, 3533, 3534, 3535, 3536, 3537, 3538, 3539, 3540, 3541, 3542, 3543, 3544, 3545, 3546, 3547, 3548, 3549, 3550, 3551, 3552, 3553, 3554, 3555, 3556, 3557, 3558, 3559, 3560, 3561, 3562, 3563, 3564, 3565, 3566, 3567, 3568, 3569, 3570, 3571, 3572, 3573, 3574, 3575, 3576, 3577, 3578, 3579, 3580, 3581, 3582, 3583, 3584, 3585, 3586, 3587, 3588, 3589, 3590, 3591, 3592, 3593, 3594, 3595, 3596, 3597, 3598, 3599, 3600, 3601, 3602, 3603, 3604, 3605, 3606, 3607, 3608, 3609, 3610, 3611, 3612, 3613, 3614, 3615, 3616, 3617, 3618, 3619, 3620, 3621, 3622, 3623, 3624, 3625, 3626, 3627, 3628, 3629, 3630, 3631, 3632, 3633, 3634, 3635, 3636, 3637, 3638, 3639, 3640, 3641, 3642, 3643, 3644, 3645, 3646, 3647, 3648, 3649, 3650, 3651, 3652, 3653, 3654, 3655, 3656, 3657, 3658, 3659, 3660, 3661, 3662, 3663, 3664, 3665, 3666, 3667, 3668, 3669, 3670, 3671, 3672, 3673, 3674, 3675, 3676, 3677, 3678, 3679, 3680, 3681, 3682, 3683, 3684, 3685, 3686, 3687, 3688, 3689, 3690, 3691, 3692, 3693, 3694, 3695, 3696, 3697, 3698, 3699, 3700, 3701, 3702, 3703, 3704, 3705, 3706, 3707, 3708, 3709, 3710, 3711, 3712, 3713, 3714, 3715, 3716, 3717, 3718, 3719, 3720, 3721, 3722, 3723, 3724, 3725, 3726, 3727, 3728, 3729, 3730, 3731, 3732, 3733, 3734, 3735, 3736, 3737, 3738, 3739, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +41: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2793, 2794, 2795, 2796, 2797, 2798, 2799, 2800, 2801, 2802, 2803, 2804, 2805, 2806, 2807, 2808, 2809, 2810, 2811, 2812, 2813, 2814, 2815, 2816, 2817, 2818, 2819, 2820, 2821, 2822, 2823, 2824, 2825, 2826, 2827, 2828, 2829, 2830, 2831, 2832, 2833, 2834, 2835, 2836, 2837, 2838, 2839, 2840, 2841, 2842, 2843, 2844, 2845, 2846, 2847, 2848, 2849, 2850, 2851, 2852, 2853, 2854, 2855, 2856, 2857, 2858, 2859, 2860, 2861, 2862, 2863, 2864, 2865, 2866, 2867, 2868, 2869, 2870, 2871, 2872, 2873, 2874, 2875, 2876, 2877, 2878, 2879, 2880, 2881, 2882, 2883, 2884, 2885, 2886, 2887, 2888, 2889, 2890, 2891, 2892, 2893, 2894, 2895, 2896, 2897, 2898, 2899, 2900, 2901, 2902, 2903, 2904, 2905, 2906, 2907, 2908, 2909, 2910, 2911, 2912, 2913, 2914, 2915, 2916, 2917, 2918, 2919, 2920, 2921, 2922, 2923, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 2924, 2925, 2926, 2927, 2928, 2929, 2930, 2931, 2932, 2933, 2934, 2935, 2936, 2937, 2938, 2939, 2940, 2941, 2942, 2943, 2944, 2945, 2946, 2947, 2948, 2949, 2950, 2951, 2952, 2953, 2954, 2955, 2956, 2957, 2958, 2959, 2960, 2961, 2962, 2963, 2964, 2965, 2966, 2967, 2968, 2969, 2970, 2971, 2972, 2973, 2974, 2975, 2976, 2977, 2978, 2979, 2980, 2981, 2982, 2983, 2984, 2985, 2986, 901, 902, 903, 904, 2987, 2988, 2989, 2990, 2991, 2992, 2993, 2994, 2995, 2996, 2997, 2998, 2999, 3000, 3001, 3002, 3003, 3004, 3005, 3006, 3007, 3008, 3009, 3010, 3011, 3012, 3013, 3014, 3015, 3016, 3017, 3018, 809, 810, 3019, 3020, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +42: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3021, 3022, 3023, 3024, 3025, 3026, 3027, 3028, 3029, 3030, 3031, 3032, 1596, 3033, 3034, 3035, 3036, 3037, 3038, 3039, 3040, 3041, 3042, 3043, 3044, 3045, 3046, 3047, 3048, 3049, 3050, 3051, 3052, 3053, 3054, 3055, 3056, 3057, 3058, 3059, 3060, 3061, 3062, 3063, 3064, 3065, 3066, 3067, 3068, 3069, 3070, 3071, 3072, 3073, 3074, 3075, 3076, 3077, 3078, 3079, 3080, 3081, 3082, 3083, 3084, 3085, 3086, 3087, 3088, 3089, 3090, 3091, 3092, 3093, 3094, 3095, 3096, 3097, 3098, 3099, 3100, 3101, 3102, 3103, 3104, 3105, 3106, 3107, 3108, 3109, 3110, 3111, 3112, 3113, 3114, 3115, 3116, 3117, 3118, 3119, 3120, 3121, 3122, 3123, 3124, 3125, 3126, 3127, 3128, 3129, 3130, 3131, 3132, 3133, 3134, 3135, 569, 1563, 1563, 3136, 3137, 3138, 3139, 3140, 3141, 3142, 3143, 3144, 3145, 3146, 3147, 3148, 3149, 3150, 3151, 3152, 3153, 3154, 3155, 3156, 3157, 3158, 3159, 3160, 3161, 3162, 3163, 3164, 3165, 3166, 3167, 3168, 3169, 3170, 3171, 3172, 3173, 3174, 3175, 3176, 3177, 3178, 3179, 3180, 3181, 3182, 3183, 3184, 3185, 3186, 3187, 3188, 3189, 3190, 3191, 3192, 3193, 3194, 3195, 3196, 3197, 3198, 3199, 3200, 3201, 3202, 3203, 3204, 3205, 3206, 3207, 3208, 3209, 3210, 3211, 3212, 3213, 3214, 3215, 3216, 3217, 3218, 3219, 3220, 3221, 3222, 3223, 3224, 3225, 3226, 3227, 3228, 3229, 3230, 3231, 3232, 3233, 3234, 3235, 3236, 3237, 3237, 3238, 3239, 3240, 3241, 3242, 3243, 3244, 3245, 3246, 3247, 3248, 3249, 3250, 3251, 3252, 3253, 3254, 3255, 3256, 3257, 3258, 3259, 3260, 3261, 3262, 3263, 3264, 3265, 3266, 3267, 3268, 3269, 3270, 3271, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1596, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 569, 1563, 1563, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1596, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1563, 0, 1563, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1596, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +43: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3272, 3273, 3274, 3275, 3276, 3277, 3278, 3279, 3280, 3281, 3282, 3283, 3284, 3285, 3286, 3287, 3288, 3289, 3290, 3291, 3292, 3293, 3294, 3295, 3296, 3297, 3298, 3299, 3300, 3301, 3302, 3303, 3304, 3305, 3306, 3307, 3308, 3309, 3310, 3311, 3312, 3313, 3314, 3315, 3316, 3317, 3318, 3319, 3320, 3321, 3322, 3323, 3324, 3325, 3326, 3327, 3328, 3329, 3330, 3331, 3332, 3333, 3334, 3335, 3336, 3337, 3338, 3339, 3340, 3341, 3342, 3343, 3344, 3345, 3346, 3347, 3348, 3349, 3350, 3351, 3352, 3353, 3354, 3355, 3356, 3357, 3358, 3359, 3360, 3361, 3362, 3363, 3364, 3365, 3366, 3367, 3368, 3369, 3370, 3371, 3372, 3373, 3374, 3375, 3376, 3377, 3378, 3379, 3380, 3381, 3382, 3383, 3384, 3385, 3386, 3387, 63010, 63010, 3388, 3389, 3390, 3391, 3392, 3393, 3394, 3395, 3396, 3397, 3398, 3399, 3400, 3401, 3402, 3403, 3404, 3405, 3406, 3407, 3408, 3409, 3410, 3411, 3412, 3413, 3414, 3415, 3416, 3417, 3418, 3419, 63010, 63010, 3420, 3421, 3422, 3423, 3424, 3425, 3426, 3427, 3428, 3429, 3430, 3431, 3432, 3433, 3434, 3435, 3436, 3437, 3438, 3439, 3440, 3441, 3442, 3443, 3444, 3445, 3446, 3447, 3448, 3449, 3450, 3451, 3452, 3453, 63010, 63010, 63010, 3454, 3455, 3456, 3457, 3458, 3459, 3460, 3461, 3462, 3463, 3464, 3465, 63010, 3466, 3467, 3468, 3469, 3470, 3471, 3472, 3473, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 3474, 3475, 3476, 3477, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 43892, 43893, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43926, 43927, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43962, 43963, 43964, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43977, 0, 0, 0, 0, 0, 0, 0, 0, 43986, 43987, 43988, 43989, 43990, 43991, 43992, 43993, 43994, 43995, 43996, 43997, 43998, 43999, 44000, 44001, 44002, 44003, 44004, 44005, 44006, 44007, 44008, 44009, 44010, 44011, 0, 0, 0, 0, 44016, 44017, 44018, 44019, 44020, 44021, 44022, 44023, 44024, 44025, 44026, 44027, 44028, 44029, 44030, 44031, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +44: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 50018, 50019, 50020, 50021, 50022, 50023, 50024, 50025, 50026, 50027, 50028, 50029, 50030, 50031, 50032, 50033, 50034, 50035, 50036, 50037, 50038, 50039, 50040, 50041, 50042, 50043, 50044, 50045, 50046, 50047, 50048, 50049, 50050, 50051, 50052, 50053, 50054, 50055, 50056, 50057, 50058, 50059, 50060, 50061, 50062, 50063, 50064, 63010, 50018, 50019, 50020, 50021, 50022, 50023, 50024, 50025, 50026, 50027, 50028, 50029, 50030, 50031, 50032, 50033, 50034, 50035, 50036, 50037, 50038, 50039, 50040, 50041, 50042, 50043, 50044, 50045, 50046, 50047, 50048, 50049, 50050, 50051, 50052, 50053, 50054, 50055, 50056, 50057, 50058, 50059, 50060, 50061, 50062, 50063, 50064, 63010, 48899, 48899, 48900, 49038, 49108, 48585, 49179, 48806, 48806, 48876, 48876, 49337, 49337, 48594, 48942, 48590, 48600, 49259, 49271, 49271, 49260, 48807, 48807, 49053, 48692, 49103, 49017, 48697, 48841, 49248, 49145, 49333, 49507, 49507, 49508, 49508, 49509, 49509, 49510, 49510, 49511, 49511, 49513, 49513, 49514, 49514, 49515, 49515, 49516, 49516, 49517, 49517, 49518, 49518, 49520, 49520, 49521, 49521, 49522, 49522, 49525, 49525, 49526, 49526, 49527, 49527, 49528, 49528, 49529, 49529, 49530, 49530, 49531, 49531, 49532, 49532, 49533, 49533, 49534, 49534, 49535, 49535, 49562, 49562, 49563, 49563, 49512, 49512, 49519, 49519, 49523, 49523, 49524, 49524, 49536, 49536, 49537, 49537, 49540, 49540, 49541, 49541, 49542, 49542, 49546, 49546, 49548, 49548, 49549, 49549, 49550, 49550, 49551, 49551, 49552, 49552, 49553, 49553, 49556, 49556, 49558, 49558, 49559, 49559, 49560, 49560, 49564, 49564, 49565, 49565, 49566, 49566, 49518, 3478, 3479, 3480, 3481, 3482, 3483, 49539, 49539, 49555, 49555, 0, 0, 0, 49545, 49545, 63010, 63010, 63010, 63010, 63010, 641, 622, 623, 758, 6882, 642, 759, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 51, 35, 34, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 8, 2, 8, 8, 8, 2, 2, 8, 2, 8, 2, 8, 2, 8, 8, 8, 8, 2, 8, 2, 2, 8, 2, 2, 2, 2, 2, 2, 21, 29, 8, 8, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 4, 2, 2, 2, 2, 2, 2, 8, 2, 8, 2, 2, 2, 2, 8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 44079, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49507, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44276, 44277, 44278, 44279, 44280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49517, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +45: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 50104, 50106, 50108, 50110, 50112, 50114, 50116, 50120, 50122, 50124, 50126, 50128, 50130, 50134, 50136, 50138, 50140, 50142, 50144, 50148, 50150, 50152, 50154, 50156, 50158, 50160, 50162, 50164, 50166, 50168, 50170, 50174, 50176, 50118, 50132, 50146, 50172, 50178, 63010, 50181, 63010, 63010, 63010, 63010, 63010, 50186, 63010, 63010, 50650, 50651, 50652, 50653, 50654, 50655, 50656, 50657, 50658, 50659, 50660, 50661, 50663, 50664, 50665, 50666, 50667, 50668, 50669, 50670, 50671, 50672, 50673, 50674, 50675, 50676, 50677, 50678, 50679, 50680, 50681, 50682, 50683, 50684, 50685, 50686, 50688, 50689, 50690, 50691, 50692, 50693, 50694, 50695, 50696, 50697, 50698, 50699, 50700, 50701, 50702, 50703, 50704, 50705, 50662, 50687, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 50706, 1063, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 0, 50723, 50744, 50761, 50770, 50785, 50823, 50840, 50849, 50871, 50880, 50889, 50938, 50969, 50984, 50993, 51027, 51036, 51052, 51100, 51015, 51016, 51017, 51018, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 51104, 51105, 51106, 51107, 51108, 51109, 51110, 63010, 51111, 51112, 51113, 51114, 51115, 51116, 51117, 63010, 51118, 51119, 51120, 51121, 51122, 51123, 51124, 63010, 51125, 51126, 51127, 51128, 51129, 51130, 51131, 63010, 51132, 51133, 51134, 51135, 51136, 51137, 51138, 63010, 51139, 51140, 51141, 51142, 51143, 51144, 51145, 63010, 51146, 51147, 51148, 51149, 51150, 51151, 51152, 63010, 51153, 51154, 51155, 51156, 51157, 51158, 51159, 63010, 49579, 49583, 49587, 49607, 49631, 49641, 49683, 49709, 49728, 49737, 49764, 49772, 49785, 49794, 49803, 49839, 49878, 49889, 49920, 49925, 50000, 49794, 49567, 49623, 49682, 49830, 49949, 49958, 49963, 49973, 49978, 49988, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44326, 0, 44328, 44329, 44330, 44331, 44332, 0, 44334, 44335, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44392, 44393, 44394, 44395, 44396, 44397, 44398, 0, 0, 44401, 44402, 44403, 44404, 44405, 44406, 44407, 44408, 44409, 44410, 44411, 44412, 44413, 44414, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44439, 44440, 44441, 44442, 44443, 44444, 44445, 44446, 44447, 0, 0, 0, 0, 0, 0, 0, 44455, 0, 0, 0, 0, 0, 0, 0, 44463, 0, 0, 0, 0, 0, 0, 0, 44471, 0, 0, 0, 0, 0, 0, 0, 44479, 0, 0, 0, 0, 0, 0, 0, 44487, 0, 0, 0, 0, 0, 0, 0, 44495, 0, 0, 0, 0, 0, 0, 0, 44503, 0, 0, 0, 0, 0, 0, 0, 44511, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49803, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 +46: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 3, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 950, 951, 859, 860, 861, 862, 952, 953, 954, 863, 864, 955, 865, 866, 956, 957, 958, 959, 960, 961, 962, 963, 964, 540, 630, 760, 965, 966, 867, 868, 967, 968, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 753, 754, 755, 756, 616, 49930, 643, 652, 548, 653, 547, 567, 929, 930, 931, 906, 536, 537, 644, 757, 900, 909, 541, 549, 785, 539, 969, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 44131, 10190, 41548, 43517, 41545, 32548, 21436, 19679, 12588, 12601, 9293, 21024, 39984, 39985, 38670, 37709, 37710, 38671, 35047, 42175, 19933, 19724, 40466, 40467, 34482, 30321, 63010, 32649, 32637, 44949, 12257, 28011, 27678, 34825, 34800, 8831, 46124, 46113, 31233, 28943, 32286, 37714, 29826, 28093, 34280, 34421, 34287, 34974, 34975, 15772, 37767, 15736, 37766, 37725, 32579, 32618, 27335, 23874, 44737, 44738, 32803, 21795, 9641, 9643, 9644, 18288, 42634, 38943, 38942, 20463, 20658, 20658, 41721, 8194, 48308, 10302, 11553, 11555, 11592, 15396, 21143, 10172, 10173, 46060, 27086, 15413, 15397, 44401, 31641, 37925, 42556, 15008, 14699, 34235, 34191, 34236, 34237, 34441, 26545, 16396, 16869, 44392, 28738, 25951, 26628, 18803, 27516, 30661, 30662, 10810, 10811, 25708, 25709, 16814, 16813, 16751, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 44613, 44614, 44615, 44616, 44617, 44618, 44619, 44620, 44621, 44622, 44623, 44624, 44625, 44626, 44627, 44628, 44629, 44630, 44631, 44632, 44633, 44634, 44635, 44636, 44637, 44638, 44639, 44640, 44641, 44642, 44643, 44644, 44645, 44646, 44647, 44648, 44649, 44650, 44651, 44652, 44653, 44654, 44655, 44656, 44657, 44658, 44659, 44660, 44661, 44662, 44663, 44664, 44665, 44666, 44667, 44668, 44669, 44670, 44671, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44698, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44788, 44789, 44790, 44791, 44792, 44793, 44794, 44795, 44796, 44797, 44798, 44799, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 272, 272, 0, 0, 0, 0, 0, 0, 0, 0, 272, 0, 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 272, 0, 0, 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 272, 0, 0, 0, 0, 0, 0, 0, 0, 272, 0, 0, 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +47: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 42558, 16942, 47496, 30027, 42816, 22068, 14377, 36946, 32529, 14310, 32875, 7630, 21437, 27364, 8983, 19679, 31066, 12587, 24330, 7958, 8349, 14608, 39048, 34170, 9294, 20857, 10174, 34881, 44132, 22841, 37841, 37098, 34271, 46785, 35386, 38673, 12228, 29076, 48150, 27443, 12071, 39986, 43982, 34094, 10314, 33468, 11324, 16120, 19680, 21090, 15702, 42140, 16725, 43459, 16186, 42889, 16121, 19723, 33469, 10812, 40369, 15875, 18293, 34435, 46623, 30297, 38179, 13524, 21092, 14609, 38449, 32638, 44931, 44950, 28042, 31105, 46786, 12251, 34485, 38450, 8350, 26810, 34272, 30714, 34792, 19223, 46112, 15399, 42176, 29319, 29952, 41443, 28944, 32270, 41054, 44478, 16497, 37482, 15615, 33999, 43927, 36511, 29826, 28415, 9067, 7757, 29747, 27679, 28046, 26811, 34241, 34174, 34279, 32771, 17577, 41177, 24338, 47446, 27331, 27366, 15070, 37727, 42009, 44399, 23844, 14311, 23984, 14353, 44485, 32804, 10392, 48118, 46870, 21568, 33767, 11355, 47239, 16035, 33262, 9630, 18079, 10965, 41216, 40508, 42564, 41495, 20347, 20658, 41613, 16388, 13525, 34245, 46876, 8116, 10822, 48288, 48308, 33847, 10292, 40375, 10398, 11556, 42939, 44083, 8708, 24281, 21100, 46048, 27069, 15413, 24360, 47754, 44402, 31612, 14666, 27523, 15933, 37853, 21554, 43329, 42449, 14952, 14667, 34198, 34441, 39702, 26533, 16397, 15793, 8770, 13535, 10198, 15941, 16836, 44265, 28712, 25911, 25984, 26609, 26508, 18747, 34587, 17759, 46840, 27506, 13330, 16427, 34590, 8344, 30589, 10803, 25648, 16798, 45021, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 6747, 6748, 6749, 6750, 6751, 6752, 6753, 6754, 6755, 6756, 6757, 6758, 63010, 63010, 63010, 63010, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 45014, 45015, 45016, 45017, 45018, 45019, 45020, 45021, 45022, 45023, 45024, 45025, 45026, 45027, 45028, 45029, 45030, 45031, 45032, 45033, 45034, 45035, 45036, 45037, 45038, 45039, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45052, 45053, 45054, 45055, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +48: 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 2, 2, 2, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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, 1, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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, 1, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 521, 561, 650, 940, 6795, 7175, 57059, 25249, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 6796, 6797, 889, 890, 891, 892, 893, 894, 895, 896, 542, 786, 787, 788, 6798, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 0, 0, 0, 0, 0, 0, 543, 7178, 7178, 7179, 7179, 7180, 6796, 6799, 34170, 28680, 33044, 7176, 57078, 941, 6800, 6801, 63010, 57047, 57047, 57048, 57048, 57049, 57049, 57051, 57051, 57052, 57052, 57053, 57053, 57054, 57054, 57055, 57055, 57056, 57056, 57057, 57057, 57058, 57058, 57059, 57059, 57060, 57060, 57061, 57061, 57062, 57062, 57063, 57063, 57064, 57064, 57065, 57065, 57065, 57066, 57066, 57067, 57067, 57068, 57069, 57070, 57071, 57072, 57073, 57073, 57073, 57074, 57074, 57074, 57075, 57075, 57075, 57076, 57076, 57076, 57077, 57077, 57077, 57078, 57079, 57080, 57081, 57082, 57083, 57083, 57084, 57084, 57086, 57086, 57087, 57088, 57089, 57090, 57091, 57092, 57092, 57093, 57094, 57095, 57096, 57049, 57053, 57056, 63010, 63010, 0, 0, 1169, 1170, 7181, 7181, 57086, 544, 57047, 57047, 57048, 57048, 57049, 57049, 57051, 57051, 57052, 57052, 57053, 57053, 57054, 57054, 57055, 57055, 57056, 57056, 57057, 57057, 57058, 57058, 57059, 57059, 57060, 57060, 57061, 57061, 57062, 57062, 57063, 57063, 57064, 57064, 57065, 57065, 57065, 57066, 57066, 57067, 57067, 57068, 57069, 57070, 57071, 57072, 57073, 57073, 57073, 57074, 57074, 57074, 57075, 57075, 57075, 57076, 57076, 57076, 57077, 57077, 57077, 57078, 57079, 57080, 57081, 57082, 57083, 57083, 57084, 57084, 57086, 57086, 57087, 57088, 57089, 57090, 57091, 57092, 57092, 57093, 57094, 57095, 57096, 57049, 57053, 57056, 57092, 57093, 57094, 57095, 545, 7182, 7183, 7183, 57057, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 251, 252, 253, 254, 255, 256, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 55, 56, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 3, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 13, 14, 13, 14, 13, 14, 13, 14, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 13, 14, 13, 14, 13, 14, 14, 14, 14, 14, 14, 13, 14, 14, 14, 14, 14, 14, 13, 13, 2, 2, 2, 2, 2, 2, 2, 2, 22, 2, 15, 17, 15, 17, 15, 17, 15, 17, 15, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 15, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 15, 17, 15, 17, 15, 17, 17, 17, 17, 17, 17, 15, 17, 17, 17, 17, 17, 17, 15, 15, 17, 17, 17, 17, 2, 2, 2, 2, 22, 0, 0, 0, 0, 0, 0, 57081, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57060, 0, 0, 0, 45120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45207, 45208, 0, 0, 0, 0, 0, 0, 57088, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57067, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 55, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 55, 0, 55, 0, 55, 0, 55, 0, 55, 0, 55, 0, 55, 0, 55, 0, 55, 0, 55, 0, 55, 0, 0, 55, 0, 55, 0, 55, 0, 0, 0, 0, 0, 0, 55, 56, 0, 55, 56, 0, 55, 56, 0, 55, 56, 0, 55, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 55, 0, 55, 0, 55, 0, 55, 0, 55, 0, 55, 0, 55, 0, 55, 0, 55, 0, 55, 0, 55, 0, 0, 55, 0, 55, 0, 55, 0, 0, 0, 0, 0, 0, 55, 56, 0, 55, 56, 0, 55, 56, 0, 55, 56, 0, 55, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 55, 55, 55, 55, 0, 0, 0, 55, 32, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 34, 33, 33, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 2, 2, 0, 2, 2, 0, 2, 2, 0, 2, 2, 0, 2, 2, 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, 2, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 2, 2, 0, 2, 2, 0, 2, 2, 0, 2, 2, 0, 2, 2, 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, 2, 2, 2, 2, 0, 0, 0, 2, 22 +49: 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 63010, 63010, 63010, 63010, 63010, 57097, 57098, 57099, 57100, 57102, 57103, 57104, 57105, 57106, 57107, 57110, 57111, 57112, 57113, 57115, 57116, 57117, 57118, 57119, 57120, 57121, 57125, 57126, 57128, 57129, 57131, 57132, 57133, 57134, 57135, 57136, 57137, 57139, 57143, 57144, 57145, 57146, 57101, 57108, 57114, 57147, 63010, 63010, 63010, 56690, 56691, 56912, 56692, 56914, 56915, 56693, 56694, 56695, 56918, 56919, 56920, 56921, 56922, 56923, 56716, 56696, 56697, 56698, 56723, 56699, 56700, 56701, 56702, 56703, 56704, 56705, 56706, 56707, 56708, 56816, 56817, 56818, 56819, 56820, 56821, 56822, 56823, 56824, 56825, 56826, 56827, 56828, 56829, 56830, 56831, 56832, 56833, 56834, 56835, 56836, 56815, 56710, 56711, 56941, 56942, 56946, 56948, 56953, 56957, 56959, 56718, 56963, 56965, 56719, 56720, 56722, 56724, 56725, 56729, 56731, 56733, 56734, 56735, 56736, 56737, 56740, 56744, 56754, 56761, 56766, 56983, 56984, 56777, 56778, 56779, 56851, 56852, 56855, 56864, 56865, 56867, 56877, 56880, 63010, 6802, 6803, 42558, 14377, 33117, 34980, 33674, 47136, 39287, 20049, 42816, 8998, 13304, 36490, 12699, 32529, 57097, 57119, 57111, 57106, 57130, 57130, 57127, 57126, 57145, 57125, 57144, 57145, 57142, 57109, 57131, 57133, 57140, 57141, 57138, 57144, 57098, 57103, 57107, 57110, 57122, 57123, 57124, 63010, 63010, 63010, 63010, 63010, 6759, 6760, 6761, 6762, 6763, 6764, 6765, 6766, 6767, 6768, 6769, 6770, 6771, 6772, 6773, 6774, 6775, 6776, 6777, 6778, 6779, 6780, 6781, 6782, 6783, 6784, 6785, 6786, 6787, 6788, 6789, 6790, 6791, 6792, 6793, 6794, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 57055, 57059, 57060, 57067, 57070, 57073, 57074, 57075, 57076, 57077, 57080, 57087, 57088, 57089, 57090, 57091, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 2, 4, 2, 4, 4, 4, 4, 4, 2, 2, 4, 4, 2, 2, 2, 22, 25, 25, 25, 25, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 45312, 45313, 45314, 45315, 45316, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45358, 45359, 45360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45455, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45499, 45500, 45501, 45502, 45503, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45540, 45541, 45542, 45543, 45544, 45545, 45546, 45547, 45548, 45549, 45550, 45551, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 273, 273, 273, 0, 273, 0, 273, 274, 273, 273, 273, 0, 0, 273, 273, 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 34, 33, 33, 33, 33, 33, 33, 34, 33, 33, 33, 33, 34, 4, 4, 4, 4, 0, 4, 0, 4, 4, 4, 4, 4, 0, 0, 4, 4, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +50: 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 7, 6, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 4, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 2, 3, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 63010, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 38249, 44136, 38179, 46546, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 49033, 7231, 7231, 7231, 7231, 7231, 7231, 7231, 7231, 7231, 7232, 7232, 7232, 7232, 7232, 7232, 56690, 56692, 56693, 56695, 56696, 56697, 56699, 56701, 56702, 56704, 56705, 56706, 56707, 56708, 56690, 56692, 56693, 56695, 56696, 56697, 56699, 56701, 56702, 56704, 56705, 56706, 56707, 56708, 56704, 56702, 56701, 6804, 42558, 14377, 33117, 34980, 38510, 25578, 30401, 7630, 21539, 34170, 44950, 19223, 34792, 28042, 21100, 37098, 32638, 47399, 44077, 33791, 27726, 36251, 9428, 47554, 23798, 27379, 28238, 29076, 34382, 43962, 43518, 47543, 39810, 40632, 40192, 46588, 33674, 47136, 39287, 48530, 44134, 39048, 48152, 41180, 20149, 30667, 48016, 40088, 42439, 7232, 7232, 7232, 7232, 7233, 7233, 7233, 7233, 7233, 7233, 7233, 7233, 7233, 7233, 7234, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7230, 7230, 7230, 48789, 48679, 48679, 48884, 57047, 57048, 57049, 57051, 57052, 57053, 57054, 57055, 57056, 57057, 57058, 57059, 57060, 57061, 57062, 57063, 57064, 57065, 57066, 57067, 57068, 57069, 57070, 57071, 57072, 57073, 57074, 57075, 57076, 57077, 57078, 57079, 57080, 57081, 57082, 57083, 57084, 57086, 57087, 57088, 57089, 57090, 57091, 57092, 57093, 57094, 57095, 63010, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 6, 6, 6, 6, 6, 6, 6, 29, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 29, 28, 28, 29, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 2, 56690, 56692, 56693, 56695, 56696, 56697, 56699, 56701, 56702, 56704, 56705, 56706, 56707, 56708, 56690, 56692, 56693, 56695, 56696, 56697, 56699, 56701, 56702, 56704, 56705, 56706, 56707, 56708, 56702, 56701, 56701, 45599, 42558, 14377, 33117, 34980, 38510, 25578, 30401, 7630, 21539, 34170, 44950, 19223, 34792, 28042, 21100, 37098, 32638, 47399, 44077, 33791, 27726, 36251, 9428, 47554, 23798, 12258, 18081, 41180, 20149, 30667, 48016, 40088, 19794, 40632, 48118, 46870, 0, 0, 0, 0, 7229, 7229, 7229, 7229, 7229, 7229, 7229, 7229, 49170, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7229, 7230, 7231, 7232, 7233, 7234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56816, 56816, 56816, 56816, 56816, 56816, 56816, 56816, 56816, 56816, 56816, 56816, 56816, 56816, 56816, 56829, 56829, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7235, 7236, 7237, 7238, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7229, 44950, 44950, 44950, 44950, 44950, 44950, 44950, 44950, 44950, 7229, 7230, 7231, 48753, 49072, 49248, 49170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45823, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 33, 33, 34, 33, 6, 6, 6, 6, 6, 6, 6, 6, 29, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 0, 35, 35, 34, 34, 33, 33, 33, 34, 33, 35, 34, 34, 34, 34, 34, 34, 34, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 34, 33, 33, 33, 33, 33, 33, 33, 33, 34, 34, 34, 33, 33, 34, 33, 33, 33, 33, 33, 33, 33, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 28, 28, 29, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 56816, 56816, 56816, 56816, 56816, 56816, 56816, 56816, 56816, 56816, 56816, 56816, 56816, 56816, 56829, 56824, 56824, 0, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48679, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56925, 56701, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44950, 44950, 44950, 0, 48753, 0, 48652, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 0, 32, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 33, 33, 33, 33, 33, 33, 33, 33, 2, 2, 2, 0, 28, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 56702, 56708, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56690, 56835, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 33, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56820, 56829, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56824, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56913, 792, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 792, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +51: 5, 4, 5, 3, 5, 3, 3, 6, 4, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 6, 2, 6, 6, 5, 4, 6, 6, 4, 3, 3, 4, 4, 5, 5, 3, 3, 4, 3, 3, 2, 2, 3, 3, 6, 4, 5, 6, 4, 3, 3, 6, 4, 6, 3, 5, 3, 4, 3, 4, 5, 4, 5, 4, 2, 5, 3, 3, 4, 3, 3, 3, 5, 4, 2, 6, 3, 5, 4, 4, 3, 3, 4, 2, 4, 5, 2, 6, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 2, 2, 3, 2, 2, 2, 3, 3, 2, 3, 3, 3, 3, 5, 2, 2, 2, 2, 2, 2, 2, 2, 3, 4, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 2, 3, 3, 3, 2, 3, 3, 4, 2, 3, 3, 3, 3, 5, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 4, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, 2, 3, 3, 2, 4, 3, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 57047, 57047, 57047, 57047, 57048, 57048, 57049, 57051, 57051, 57052, 57052, 57053, 57053, 57053, 57053, 57053, 57054, 57054, 57054, 57054, 57054, 57054, 57054, 57054, 57055, 57055, 57055, 57055, 57056, 57057, 57057, 57058, 57058, 57059, 57061, 57061, 57063, 57066, 57067, 57067, 57068, 57072, 57073, 57073, 57073, 57073, 57074, 57074, 57074, 57074, 57075, 57075, 57075, 57075, 57076, 57076, 57076, 57076, 57076, 57076, 57076, 57077, 57077, 57077, 57077, 57077, 57077, 57078, 57078, 57078, 57078, 57078, 57079, 57079, 57079, 57081, 57081, 57081, 57083, 57083, 57084, 57088, 57088, 57089, 57089, 57090, 57090, 57092, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7230, 7230, 7230, 7230, 7230, 7230, 7230, 7230, 7230, 7230, 7231, 7231, 7231, 7231, 7231, 48789, 48652, 48580, 48605, 48986, 49033, 48652, 48652, 48652, 48815, 30099, 46094, 12228, 27727, 47399, 49033, 48950, 49480, 48935, 48866, 48866, 48935, 48753, 48631, 48866, 49033, 48950, 49480, 49480, 48935, 48866, 48789, 48866, 48935, 48753, 49170, 49480, 48935, 48652, 48866, 48738, 48950, 49480, 48935, 48631, 48866, 48935, 48631, 48935, 48866, 48935, 48631, 48935, 48866, 48935, 48935, 49033, 48866, 48935, 48753, 49072, 49072, 49072, 49033, 48950, 49480, 48935, 49033, 48950, 49480, 48935, 48866, 48935, 49033, 48950, 49480, 48935, 48866, 48935, 48866, 48935, 48580, 48605, 48631, 48631, 48631, 48631, 48652, 48753, 48789, 48789, 48815, 48866, 48866, 48866, 48884, 48884, 48884, 48884, 48935, 48935, 48935, 49033, 49033, 49033, 49033, 49134, 49134, 49266, 49248, 48580, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7230, 7230, 7230, 7230, 7230, 7230, 7230, 7230, 7230, 7230, 7231, 7231, 7231, 7231, 7231, 7231, 7231, 7231, 7231, 7231, 7232, 7232, 48753, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 28, 28, 29, 28, 28, 28, 28, 28, 28, 29, 2, 2, 2, 2, 2, 28, 28, 28, 28, 28, 29, 29, 29, 28, 28, 28, 28, 28, 28, 28, 28, 29, 28, 29, 29, 29, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 29, 28, 29, 29, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 29, 28, 28, 28, 28, 28, 29, 28, 29, 28, 29, 28, 28, 29, 29, 28, 29, 28, 29, 28, 29, 29, 28, 28, 28, 28, 28, 28, 28, 28, 29, 28, 29, 29, 28, 29, 29, 29, 29, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 28, 57073, 57089, 57096, 7182, 57069, 57096, 57052, 57060, 7182, 57096, 7182, 57048, 57087, 57091, 0, 0, 0, 0, 57084, 0, 57091, 57091, 57091, 57091, 0, 0, 57089, 57091, 7182, 57089, 7182, 57048, 57096, 57088, 57096, 57096, 0, 0, 0, 57096, 57072, 57065, 57048, 0, 0, 0, 0, 0, 0, 0, 57047, 57048, 0, 57087, 57055, 0, 0, 57089, 0, 0, 0, 0, 0, 57096, 0, 7182, 7182, 57048, 57048, 57065, 57089, 57096, 57055, 57088, 57088, 57053, 57053, 7182, 7182, 7182, 57047, 57065, 57087, 57074, 7182, 57080, 57096, 57065, 13017, 13017, 13017, 13017, 13017, 13017, 13017, 13017, 13017, 13017, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7229, 7230, 7231, 7232, 7233, 49033, 48580, 49202, 48580, 49248, 48631, 48935, 48935, 48935, 49202, 10535, 17583, 46588, 46883, 34284, 48580, 48580, 48580, 48580, 48580, 48605, 48605, 48605, 48580, 48631, 48738, 48738, 48738, 48753, 48753, 48753, 49310, 48789, 48789, 48789, 48789, 48884, 48884, 48884, 48884, 48935, 48935, 48935, 48935, 48935, 48935, 48935, 48935, 7231, 48935, 48935, 48935, 7232, 48935, 1573, 1573, 48580, 49033, 49033, 49033, 48580, 48580, 48580, 49134, 49134, 49134, 49134, 49248, 49248, 49248, 49248, 49248, 49248, 49266, 49266, 49266, 49266, 49266, 49266, 49502, 49502, 631, 49054, 48631, 48652, 1573, 48986, 48605, 49288, 48580, 49033, 48950, 48866, 48935, 49170, 48935, 48950, 48986, 49276, 48605, 48815, 48986, 48789, 631, 49033, 49072, 49072, 49248, 48605, 1573, 1573, 32638, 32638, 32638, 32638, 32638, 32638, 32638, 32638, 32638, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7229, 7230, 48580, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 55, 55, 55, 55, 32, 55, 32, 32, 32, 32, 55, 55, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 55, 55, 55, 32, 32, 32, 32, 56, 56, 55, 56, 56, 56, 55, 32, 32, 55, 32, 32, 56, 56, 32, 56, 56, 55, 56, 55, 32, 56, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 29, 28, 29, 28, 29, 28, 28, 28, 28, 29, 2, 2, 2, 2, 2, 29, 29, 29, 29, 29, 29, 29, 29, 28, 28, 29, 29, 29, 28, 28, 28, 28, 29, 29, 29, 29, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 28, 28, 28, 28, 28, 28, 29, 28, 28, 29, 28, 29, 29, 28, 28, 28, 28, 28, 28, 28, 28, 29, 28, 29, 29, 28, 28, 28, 28, 28, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 28, 0, 57075, 57076, 57089, 57096, 57064, 57096, 57055, 57053, 57060, 57080, 57088, 57065, 57088, 57091, 57096, 57053, 57069, 57088, 57089, 0, 57055, 57081, 57092, 57087, 57087, 57061, 7182, 57060, 57068, 57077, 57055, 57064, 57096, 57064, 57067, 7182, 57059, 57089, 0, 0, 57067, 57065, 7182, 7182, 7182, 57047, 57055, 57057, 57089, 57087, 7182, 57065, 57096, 57063, 57062, 57069, 57065, 57096, 7182, 7182, 57048, 57089, 0, 57096, 57089, 57096, 57055, 57089, 57073, 57055, 57059, 57091, 0, 57073, 0, 0, 57067, 57067, 57089, 57096, 57067, 0, 0, 57075, 0, 57067, 57067, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13017, 13017, 13017, 13017, 13017, 13017, 13017, 13017, 13017, 13017, 13017, 13017, 13017, 13017, 13017, 48580, 0, 0, 49072, 0, 0, 0, 7231, 7232, 0, 0, 0, 0, 0, 18972, 0, 0, 0, 0, 0, 0, 0, 0, 48884, 48580, 0, 0, 0, 0, 0, 0, 0, 49310, 49310, 49310, 49310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7231, 7231, 0, 7231, 7232, 7232, 0, 7232, 49134, 49134, 0, 48580, 48580, 48580, 48652, 48652, 48652, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48935, 0, 0, 0, 48866, 631, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48753, 0, 0, 48884, 48884, 0, 48935, 48935, 0, 0, 0, 0, 48935, 48935, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32638, 32638, 32638, 32638, 32638, 32638, 32638, 32638, 32638, 32638, 32638, 32638, 32638, 32638, 32638, 32638, 32638, 32638, 32638, 32638, 32638, 32638, 48884, 56, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 55, 55, 32, 32, 32, 32, 32, 0, 56, 32, 0, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 32, 0, 0, 0, 32, 32, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 0, 32, 32, 32, 0, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 32, 32, 0, 32, 32, 0, 0, 0, 0, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 0, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 0, 0, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 0, 28, 28, 28, 28, 28, 28, 28, 28, 28, 0, 28, 28, 28, 28, 28, 28, 28, 28, 0, 28, 28, 0, 28, 28, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 28, 0, 0, 28, 0, 0, 0, 28, 28, 0, 33, 33, 33, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 28, 28, 0, 0, 0, 0, 0, 0, 0, 28, 28, 28, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 28, 0, 28, 28, 28, 0, 28, 28, 28, 0, 28, 28, 28, 28, 28, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 28, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 28, 28, 0, 28, 29, 0, 0, 0, 0, 28, 28, 33, 33, 33, 33, 33, 33, 33, 33, 33, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 28, 7182, 57047, 0, 0, 57055, 0, 0, 7182, 7182, 0, 0, 0, 57067, 7182, 57096, 57078, 0, 7182, 7182, 57063, 0, 0, 7182, 57065, 57080, 57080, 0, 57071, 0, 0, 0, 57089, 7182, 57055, 0, 0, 57060, 0, 0, 0, 0, 0, 0, 57061, 57065, 57090, 57060, 57089, 0, 0, 57065, 57067, 57059, 0, 7182, 0, 57074, 0, 57060, 57059, 57063, 57096, 57067, 0, 57067, 0, 0, 57091, 0, 0, 0, 57086, 57096, 0, 0, 0, 57067, 57089, 0, 0, 0, 57089, 0, 7182, 0, 0, 57056, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33791, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48884, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7231, 0, 0, 0, 0, 0, 1573, 1573, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 631, 0, 0, 0, 48753, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 631, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 56, 0, 32, 0, 0, 32, 32, 0, 0, 0, 32, 32, 32, 32, 55, 32, 32, 32, 0, 55, 32, 32, 32, 32, 55, 32, 0, 0, 56, 32, 32, 32, 0, 0, 32, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 0, 0, 32, 32, 32, 0, 32, 0, 32, 0, 32, 32, 32, 32, 32, 0, 32, 0, 0, 32, 0, 0, 0, 32, 32, 0, 55, 0, 32, 32, 55, 0, 0, 32, 0, 32, 55, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 28, 28, 0, 28, 0, 0, 28, 28, 0, 0, 0, 28, 28, 28, 28, 28, 28, 28, 28, 0, 28, 28, 28, 28, 28, 28, 28, 0, 0, 28, 28, 28, 28, 0, 0, 28, 0, 0, 0, 0, 0, 0, 28, 28, 28, 28, 28, 0, 0, 28, 28, 28, 0, 28, 0, 28, 0, 28, 28, 28, 28, 28, 0, 28, 0, 0, 28, 0, 0, 0, 28, 28, 0, 28, 0, 28, 28, 28, 0, 0, 28, 0, 28, 28, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 28, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 0, 57067, 0, 57047, 0, 0, 0, 0, 57067, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57087, 57067, 57067, 0, 57067, 57048, 0, 0, 0, 0, 0, 57080, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57096, 0, 57089, 57067, 0, 0, 0, 57067, 0, 57051, 0, 57089, 0, 0, 0, 0, 0, 0, 57067, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57096, 0, 0, 7182, 0, 57096, 0, 0, 0, 0, 0, 0, 0, 57089, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49134, 49134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 32, 0, 55, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 32, 32, 32, 0, 32, 32, 0, 0, 0, 0, 0, 32, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 32, 32, 0, 0, 0, 32, 0, 32, 0, 32, 0, 0, 0, 0, 55, 0, 32, 0, 0, 55, 0, 0, 0, 0, 0, 0, 32, 0, 0, 32, 0, 32, 0, 0, 0, 0, 0, 0, 0, 32, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 28, 0, 28, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 28, 28, 28, 0, 28, 28, 0, 0, 0, 0, 0, 28, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 28, 28, 0, 0, 0, 28, 0, 28, 0, 28, 0, 0, 0, 0, 28, 0, 28, 0, 0, 28, 0, 0, 0, 0, 0, 0, 28, 0, 0, 28, 0, 28, 0, 0, 0, 0, 0, 0, 0, 28, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7182, 0, 57080, 57089, 0, 0, 57096, 57091, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57067, 0, 0, 57089, 0, 0, 0, 0, 0, 57089, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57089, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57096, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 32, 32, 0, 0, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 32, 0, 0, 0, 55, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 28, 28, 0, 0, 28, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 28, 0, 0, 0, 28, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64320, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63806, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +52: 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 31790, 36601, 48577, 48577, 22981, 38509, 43462, 48577, 48577, 48577, 48577, 48577, 42636, 48577, 48577, 48577, 48577, 48577, 48577, 48577, 48577, 48577, 40086, 48577, 48577, 48577, 48577, 48577, 11033, 48577, 48577, 48577, 48577, 29138, 48577, 48577, 12353, 48577, 48577, 48577, 40860, 40513, 48577, 40581, 25462, 25186, 39714, 43840, 40424, 46390, 12259, 38575, 29307, 32807, 48577, 26528, 31107, 42903, 43379, 28446, 10638, 14939, 48577, 48577, 48577, 47828, 14640, 7571, 38515, 48539, 48577, 47325, 13441, 35240, 42941, 31714, 23061, 24041, 28364, 47539, 34490, 48577, 48577, 48577, 40820, 48577, 48577, 33857, 21052, 13195, 29113, 35243, 42969, 25728, 43779, 8272, 48577, 48577, 48577, 23582, 27538, 42999, 24380, 19768, 44412, 26359, 9862, 48577, 48577, 48577, 19144, 40829, 18992, 32512, 48577, 47348, 48577, 17328, 39088, 35869, 42198, 18996, 22322, 26554, 26287, 36064, 42206, 46144, 45789, 44437, 47898, 14394, 32458, 30699, 10865, 38544, 17342, 36127, 33278, 48577, 31753, 23927, 33059, 48577, 48577, 23235, 30338, 35752, 34563, 42002, 29220, 35837, 48577, 27458, 43551, 13173, 44454, 27600, 22349, 28727, 40318, 44068, 48577, 48577, 10359, 14991, 24021, 24575, 48577, 26435, 48577, 19730, 48577, 48577, 48577, 48577, 32189, 48577, 9423, 24855, 16385, 26873, 48577, 16539, 35449, 48577, 48577, 26894, 26634, 32177, 34361, 24245, 48577, 37724, 22849, 13696, 46478, 36721, 48577, 48577, 9038, 19236, 13444, 16218, 10485, 48577, 31476, 21461, 25965, 40559, 48577, 28250, 40243, 48577, 8490, 20950, 35255, 48577, 16124, 48577, 44133, 40507, 30849, 29750, 13040, 15348, 26440, 30852, 30853, 36032, 7750, 15635, 11617, 40991, 23761, 48577, 48577, 33770, 48577, 24110, 18463, 36950, 29910, 12775, 32914, 14166, 31423, 43057, 47838, 32969, 20122, 48577, 10857, 10973, 38809, 48577, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 46082, 46083, 0, 0, 0, 46087, 46088, 46089, 46090, 46091, 0, 46093, 46094, 46095, 46096, 46097, 46098, 46099, 46100, 46101, 0, 46103, 46104, 46105, 46106, 46107, 0, 46109, 46110, 46111, 46112, 0, 46114, 46115, 0, 46117, 46118, 46119, 0, 0, 46122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46134, 0, 0, 0, 0, 0, 0, 0, 46142, 46143, 46144, 0, 0, 0, 0, 0, 46150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46161, 46162, 46163, 0, 46165, 46166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46176, 46177, 46178, 0, 0, 0, 0, 0, 0, 0, 0, 46187, 46188, 46189, 0, 0, 0, 0, 46194, 0, 46196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46219, 0, 0, 0, 46223, 46224, 0, 0, 0, 0, 0, 0, 0, 46232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46242, 46243, 0, 0, 0, 0, 46248, 0, 46250, 0, 46252, 46253, 46254, 46255, 0, 46257, 0, 0, 0, 0, 46262, 0, 0, 46265, 46266, 0, 0, 0, 0, 0, 46272, 0, 0, 0, 0, 0, 46278, 46279, 0, 0, 0, 0, 0, 46285, 0, 0, 0, 0, 46290, 0, 0, 46293, 0, 0, 0, 46297, 0, 46299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46315, 46316, 0, 46318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46331, 0, 0, 0, 46335, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +53: 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 26291, 12709, 25141, 22158, 35290, 40030, 45352, 48577, 48577, 47514, 45928, 20168, 48296, 11297, 40311, 24490, 48577, 10905, 38985, 20225, 48577, 19513, 48577, 14738, 11223, 8241, 20879, 48577, 7683, 24858, 23012, 48577, 39188, 8858, 22160, 23941, 40456, 7798, 42103, 26205, 8139, 14178, 25914, 48577, 48577, 10326, 29126, 41056, 17787, 44421, 48577, 16854, 43097, 41097, 16233, 25815, 36314, 23897, 34283, 48577, 35547, 42325, 39319, 48292, 48577, 32310, 43380, 38679, 46791, 19999, 18304, 23408, 42829, 22678, 15093, 31508, 7312, 48577, 22700, 11157, 40196, 11166, 37818, 48577, 48577, 18635, 35246, 44160, 48577, 22342, 46111, 40851, 34243, 48577, 34697, 23243, 34745, 17658, 15608, 41722, 31836, 33841, 18456, 38681, 14558, 29424, 12388, 14641, 16129, 7514, 15342, 28417, 41218, 43986, 18414, 48577, 10393, 17021, 28095, 18458, 24352, 14410, 39843, 30290, 48577, 34990, 48577, 48577, 23909, 25210, 42970, 18042, 48577, 40870, 32031, 14316, 48577, 48577, 41299, 48577, 48577, 48577, 48577, 28763, 37939, 40222, 36332, 17895, 37279, 28764, 28765, 43395, 46330, 48577, 48577, 48577, 48577, 48577, 37516, 34454, 29139, 42455, 30524, 36980, 17231, 22316, 13424, 19123, 25971, 21649, 19249, 25285, 48577, 36566, 26317, 48577, 48577, 48577, 48577, 48577, 48577, 15942, 41568, 34204, 41190, 29558, 11534, 28948, 13979, 45509, 14180, 40117, 43952, 14181, 34053, 38228, 22899, 18174, 15944, 39236, 26696, 26285, 19566, 18000, 46955, 48577, 48577, 37518, 48577, 7805, 7320, 47760, 30937, 16297, 12447, 8091, 9170, 11137, 24434, 40028, 40706, 48577, 48577, 48577, 48577, 48577, 17931, 36454, 11887, 23386, 23814, 47004, 40071, 38811, 48577, 31438, 45653, 38812, 48577, 48577, 11807, 19606, 19275, 35694, 41664, 40948, 30186, 33107, 48577, 48577, 48577, 17008, 42496, 39781, 41171, 17670, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 46343, 46344, 0, 0, 0, 0, 0, 0, 0, 46352, 0, 0, 0, 46356, 0, 46358, 0, 0, 0, 0, 46363, 0, 0, 0, 46367, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46379, 46380, 0, 0, 0, 0, 0, 46386, 0, 0, 0, 0, 0, 0, 0, 0, 46395, 0, 0, 0, 0, 46400, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46413, 0, 0, 0, 0, 0, 46419, 46420, 0, 0, 0, 46424, 0, 0, 0, 0, 46429, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46451, 0, 0, 0, 0, 0, 0, 0, 0, 46460, 0, 46462, 46463, 0, 0, 0, 0, 46468, 0, 0, 0, 46472, 46473, 0, 46475, 46476, 46477, 46478, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46489, 46490, 46491, 46492, 46493, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46508, 0, 0, 46511, 46512, 46513, 46514, 46515, 46516, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46541, 46542, 0, 46544, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46557, 46558, 46559, 46560, 46561, 0, 0, 0, 0, 0, 0, 0, 0, 46570, 0, 0, 0, 46574, 46575, 0, 0, 0, 0, 0, 0, 0, 0, 46584, 46585, 46586, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +54: 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 48567, 43179, 11650, 48577, 24080, 39481, 35853, 32706, 43210, 47091, 38889, 39488, 21932, 19651, 17287, 48577, 29487, 24531, 48577, 23621, 33109, 17291, 41696, 32020, 48577, 41708, 17293, 22452, 10809, 28751, 19232, 48577, 8412, 39209, 38280, 41059, 37550, 44069, 31498, 40854, 28756, 8404, 17497, 21341, 7590, 7591, 48577, 48577, 46319, 35880, 21709, 48577, 48542, 9342, 20887, 7311, 45406, 11619, 14412, 48577, 48577, 48577, 48577, 28766, 25581, 26954, 13814, 7896, 8438, 8000, 48577, 11243, 39296, 36567, 10143, 48577, 48577, 13928, 37795, 15438, 13980, 44428, 42424, 23185, 37954, 23014, 48577, 37796, 42159, 25714, 40476, 9323, 10730, 40123, 28792, 23767, 42598, 48175, 26638, 46079, 39303, 16977, 40133, 48577, 19846, 24918, 43151, 19607, 43434, 48577, 12157, 43152, 40295, 17537, 43919, 22476, 10086, 35841, 36091, 46765, 8066, 27139, 23207, 9959, 24009, 48577, 39158, 48577, 38911, 31392, 28318, 45065, 48577, 25615, 15416, 48153, 48577, 16389, 22379, 13120, 18480, 23238, 48577, 15826, 36243, 48577, 33531, 23538, 28757, 15171, 15827, 31400, 7867, 19942, 22794, 39066, 44518, 47756, 33942, 11565, 39884, 19713, 29050, 39959, 42905, 44212, 42642, 41725, 33930, 32440, 17498, 33046, 22274, 43988, 48577, 40415, 29493, 31796, 9896, 48577, 9343, 13382, 34991, 14354, 48577, 26861, 45165, 19354, 48577, 31349, 40587, 29444, 11147, 29574, 29129, 20888, 42575, 14384, 14015, 48577, 48577, 48577, 13972, 48577, 48577, 31417, 26136, 31864, 35184, 9540, 13528, 38722, 14953, 43004, 35564, 31395, 30232, 40384, 36921, 40437, 44009, 8133, 25732, 48577, 48577, 48577, 48577, 45102, 24111, 35718, 23657, 26678, 31235, 47305, 41869, 38742, 25973, 38743, 33238, 14587, 48577, 37955, 14445, 43059, 28378, 10498, 36015, 19384, 34645, 29926, 7390, 22966, 9751, 48577, 39443, 46958, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 46595, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46607, 0, 0, 46610, 0, 0, 0, 0, 0, 46616, 0, 0, 0, 0, 0, 0, 46623, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46638, 46639, 0, 0, 0, 46643, 0, 0, 0, 0, 0, 0, 0, 46651, 46652, 46653, 46654, 0, 0, 0, 0, 0, 0, 0, 46662, 0, 0, 0, 0, 46667, 46668, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46678, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46695, 0, 0, 0, 0, 0, 46701, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46717, 0, 46719, 0, 0, 0, 0, 46724, 0, 0, 0, 46728, 0, 0, 0, 0, 0, 46734, 0, 0, 46737, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46766, 0, 0, 0, 0, 46771, 0, 0, 0, 0, 46776, 0, 0, 0, 46780, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46791, 46792, 46793, 0, 46795, 46796, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46815, 46816, 46817, 46818, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46832, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46845, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +55: 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 48577, 48577, 14967, 24786, 41319, 40920, 27392, 19010, 28070, 43814, 45915, 43098, 29036, 36067, 38791, 45112, 34654, 15261, 43099, 12200, 48577, 24676, 9607, 9475, 21894, 26007, 35291, 28460, 7606, 7436, 31127, 48577, 11960, 11745, 48577, 32420, 28663, 26583, 40418, 45010, 28190, 7615, 33906, 26568, 48577, 48577, 23700, 38875, 45022, 47093, 38294, 18512, 27237, 28729, 37657, 27302, 28843, 32097, 45372, 24821, 46783, 48077, 17119, 40855, 17501, 40992, 46903, 27490, 11508, 16299, 48577, 11521, 26252, 47531, 34436, 24966, 21566, 40193, 13345, 21039, 32652, 26737, 48577, 22684, 42283, 28890, 42672, 23720, 43865, 43397, 41631, 35257, 48577, 25131, 41428, 26822, 27733, 48439, 44429, 43060, 16300, 27350, 22330, 38232, 48577, 22516, 13069, 25634, 48577, 40546, 12024, 31323, 27464, 27239, 31583, 48577, 37573, 12675, 7313, 48577, 8719, 29020, 24677, 21166, 44185, 11439, 48532, 9276, 18845, 42327, 37203, 19785, 7384, 26454, 19698, 37956, 9091, 45226, 40921, 28647, 45163, 48577, 7705, 46189, 21631, 37934, 40216, 30737, 42673, 40217, 11620, 31865, 13579, 28741, 30764, 19703, 37163, 48577, 35086, 13071, 23818, 45943, 48577, 48577, 43377, 9694, 19682, 18970, 48079, 23577, 28327, 21838, 31587, 12261, 48577, 20866, 40819, 11723, 43928, 13509, 10705, 48577, 27682, 18728, 35445, 22659, 48310, 17502, 10539, 41221, 28475, 10824, 24653, 7447, 28016, 34892, 39742, 42022, 18417, 12122, 31866, 23805, 15209, 13815, 26752, 23721, 37406, 17228, 26782, 9139, 32381, 30512, 17229, 48577, 25734, 48577, 36640, 45501, 30527, 45349, 27259, 29511, 45964, 39803, 15776, 48577, 30528, 48577, 25974, 48577, 45177, 14184, 13730, 27650, 37798, 32219, 35190, 27651, 37008, 48577, 27766, 42298, 22150, 24436, 23016, 15779, 44834, 12240, 48577, 23815, 25765, 31128, 7541, 8836, 43821, 26790, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 46848, 46849, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46868, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46879, 0, 0, 46882, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46892, 46893, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46918, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46930, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46940, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46952, 0, 0, 0, 46956, 0, 0, 0, 0, 0, 0, 46963, 0, 0, 0, 46967, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46989, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47005, 0, 0, 0, 0, 47010, 47011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47022, 0, 0, 0, 0, 0, 0, 47029, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47061, 0, 47063, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47073, 0, 47075, 0, 47077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47087, 0, 0, 0, 0, 0, 0, 0, 0, 47096, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +56: 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 2, 2, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 1, 1, 2, 2, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 12615, 48577, 7542, 48577, 38965, 15293, 12369, 21601, 32996, 36894, 31997, 14225, 30447, 19608, 19609, 18433, 20782, 48456, 8838, 27133, 7796, 38001, 42866, 7616, 44465, 17481, 13831, 38386, 28616, 11933, 48577, 24209, 25871, 28730, 18513, 24535, 48577, 26214, 14995, 27359, 44723, 48577, 21833, 48577, 48577, 45912, 29598, 42820, 48577, 19786, 8351, 48577, 32576, 18701, 14480, 15926, 22932, 21042, 33349, 48577, 34888, 36844, 44741, 47968, 8414, 22977, 24363, 18709, 41301, 29130, 48577, 46204, 38247, 39432, 30864, 42398, 26895, 48577, 48577, 34647, 48577, 31265, 47815, 23303, 38620, 43585, 11401, 36353, 24668, 8322, 16249, 26766, 40266, 15051, 25766, 45420, 46608, 11170, 26714, 25644, 48577, 43558, 30037, 46617, 20201, 26241, 28749, 43064, 48577, 19825, 19626, 45808, 44398, 21545, 18561, 46798, 23411, 25259, 46805, 8209, 45752, 21632, 12424, 24991, 42976, 46131, 39597, 10830, 11691, 10773, 41740, 23722, 13529, 25735, 9922, 48577, 37169, 9784, 7289, 10784, 48577, 43744, 46221, 36952, 48577, 37173, 9797, 42303, 48223, 48577, 29311, 31377, 24686, 31539, 25926, 41917, 22558, 35223, 43265, 9894, 21456, 20520, 48577, 21420, 48577, 13448, 48577, 22000, 17301, 12894, 48577, 48577, 17870, 48577, 10710, 13101, 8416, 48577, 41369, 25846, 48577, 40095, 8427, 48577, 8439, 48577, 39433, 32967, 8914, 14362, 22022, 48577, 46468, 8157, 14203, 44447, 32062, 45354, 27308, 42949, 35037, 48577, 48577, 48577, 33567, 35821, 28062, 21401, 8724, 32683, 9730, 9550, 13308, 48577, 48577, 48577, 48577, 12801, 36919, 35709, 40518, 35053, 13942, 39070, 36156, 48577, 36333, 33572, 20366, 46925, 37789, 43526, 48577, 48577, 18625, 47192, 30765, 48164, 48577, 40259, 40267, 45519, 37877, 48577, 48577, 35759, 45870, 28938, 48577, 48577, 48577, 42911, 32550, 34617, 9824, 47854, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 47105, 0, 47107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47134, 0, 0, 0, 0, 0, 47140, 0, 0, 0, 0, 47145, 0, 47147, 47148, 0, 0, 0, 47152, 0, 0, 47155, 0, 0, 0, 0, 0, 0, 0, 47163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47174, 0, 0, 0, 0, 0, 0, 47181, 47182, 0, 47184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47204, 0, 0, 0, 0, 0, 0, 0, 47212, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47239, 0, 0, 0, 0, 47244, 0, 0, 0, 47248, 0, 0, 0, 0, 47253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47266, 0, 47268, 0, 47270, 0, 0, 0, 47274, 47275, 0, 47277, 0, 0, 0, 47281, 0, 0, 47284, 0, 0, 47287, 0, 47289, 0, 0, 0, 0, 0, 47295, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47305, 47306, 47307, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47317, 47318, 47319, 47320, 0, 0, 0, 0, 0, 0, 0, 0, 47329, 0, 0, 0, 0, 0, 0, 47336, 47337, 0, 0, 0, 0, 47342, 0, 0, 0, 0, 47347, 47348, 0, 0, 0, 47352, 47353, 47354, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +57: 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 48577, 27484, 19527, 14629, 29533, 7310, 14562, 7573, 31590, 30834, 40009, 14810, 15627, 31255, 15888, 36847, 9897, 44142, 15789, 8219, 15410, 11227, 47541, 48577, 47329, 48577, 17410, 28878, 22097, 10921, 9831, 22821, 25037, 24364, 44498, 48577, 44235, 17151, 24365, 17995, 16192, 22690, 44905, 12678, 18980, 48577, 16741, 21464, 48558, 15423, 31424, 8106, 10322, 11630, 26754, 17183, 39076, 31868, 18807, 48577, 48577, 11036, 33165, 41559, 46730, 12685, 36253, 27088, 25288, 34455, 37216, 9495, 13226, 10327, 29611, 42591, 21725, 19789, 23512, 36569, 44912, 48577, 9440, 30417, 44522, 24662, 11737, 48577, 48577, 48577, 44273, 19570, 38064, 27345, 35460, 40118, 40747, 10848, 31894, 19014, 48577, 44274, 31434, 34830, 34812, 13982, 25754, 48577, 29409, 35871, 47353, 43485, 33214, 14721, 10377, 44835, 42740, 19178, 33279, 42476, 27706, 14899, 17643, 48577, 43541, 9676, 28600, 7612, 15023, 24687, 10157, 10033, 26512, 13189, 18120, 26010, 48577, 43153, 18434, 45658, 18133, 14226, 19276, 35552, 28603, 39649, 24173, 39650, 41918, 25641, 27093, 21127, 19455, 48577, 8694, 44468, 19288, 27564, 11083, 26587, 48577, 23917, 20994, 38126, 43266, 41040, 39159, 9533, 23623, 43508, 40347, 45237, 26434, 25410, 31003, 19234, 20103, 38329, 48577, 48577, 15935, 47398, 13209, 43895, 19707, 42046, 32888, 38970, 34785, 44648, 42648, 31069, 19528, 32151, 36517, 34428, 31067, 28044, 21096, 26859, 43463, 15591, 30163, 41089, 26874, 14643, 41447, 15739, 35088, 18842, 44493, 16502, 16582, 25556, 14145, 48086, 48122, 8420, 37487, 48577, 25023, 48577, 48577, 22991, 48577, 17152, 43324, 47394, 10997, 39515, 41115, 48577, 31855, 29540, 16830, 14318, 16195, 31720, 18091, 23850, 24366, 10464, 33137, 47961, 38332, 30279, 22766, 37287, 29579, 36254, 35721, 47877, 8848, 16479, 18100, 48577, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 47360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47383, 0, 47385, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47395, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47405, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47419, 47420, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47441, 0, 0, 0, 0, 0, 47447, 47448, 47449, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47460, 0, 0, 0, 0, 0, 0, 47467, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47483, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47496, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47513, 0, 0, 0, 0, 0, 0, 47520, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47538, 47539, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47579, 0, 47581, 47582, 0, 47584, 0, 0, 0, 0, 0, 0, 47591, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47615, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +58: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 9017, 46927, 13425, 13797, 47257, 28450, 25188, 30194, 19700, 27652, 37960, 10306, 16302, 7905, 32825, 35894, 9320, 48166, 23156, 23810, 17330, 43678, 46963, 20919, 40544, 40126, 41325, 33546, 31031, 40067, 35280, 17118, 27396, 19149, 29719, 48577, 19015, 28163, 35097, 8229, 11019, 20933, 18829, 23660, 48577, 18357, 13491, 19271, 16956, 42221, 9677, 16860, 20389, 20274, 12616, 21228, 26560, 19027, 27507, 9505, 26294, 29876, 42124, 21897, 21898, 32339, 48577, 30956, 33451, 48577, 21603, 19277, 45149, 12205, 41021, 39907, 14775, 9683, 42487, 48577, 12705, 48577, 31541, 18954, 37273, 48577, 31224, 38973, 28546, 33100, 27141, 37136, 23671, 17482, 11713, 45834, 7520, 26427, 27607, 48577, 15143, 48577, 40168, 9234, 19085, 31680, 40169, 48577, 48577, 9245, 31058, 30205, 20740, 22234, 23356, 35109, 21787, 14281, 28861, 30992, 13288, 13289, 48577, 30411, 46657, 30532, 47779, 22883, 44218, 31504, 22888, 17593, 15191, 48577, 12871, 39609, 16881, 17607, 32390, 17319, 36923, 9149, 33542, 8375, 25985, 42460, 28494, 11310, 33167, 13163, 25986, 36971, 24756, 22667, 33168, 46419, 11313, 24792, 26911, 48577, 30950, 22432, 33728, 39894, 8540, 45659, 43548, 38854, 33599, 35315, 33068, 32983, 11550, 25879, 25381, 9774, 48577, 18670, 48577, 48577, 20005, 7872, 18158, 13518, 48577, 25807, 21693, 22056, 22661, 35597, 26449, 46206, 13329, 13758, 47598, 41727, 29400, 9783, 48577, 48577, 48577, 48577, 42845, 48577, 48577, 44026, 18888, 42308, 42272, 46793, 16189, 30673, 16042, 48577, 48577, 18050, 27371, 15178, 18086, 16737, 35981, 12770, 48577, 41625, 48577, 48577, 32152, 48577, 10177, 27762, 36161, 8041, 7381, 48577, 48577, 39521, 48577, 48577, 48577, 26896, 23780, 28272, 8140, 10414, 48577, 14677, 47317, 19388, 20827, 34648, 48577, 23361, 13229, 25987, 48577, 48577, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 47651, 0, 0, 0, 0, 0, 0, 0, 0, 47660, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47682, 0, 0, 47685, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47695, 0, 47697, 0, 0, 0, 47701, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47715, 0, 47717, 0, 0, 0, 0, 0, 47723, 47724, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47738, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47749, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47775, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47792, 0, 47794, 47795, 0, 0, 0, 0, 47800, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47814, 47815, 47816, 47817, 0, 47819, 47820, 0, 0, 0, 0, 0, 0, 0, 0, 47829, 47830, 0, 0, 0, 0, 0, 0, 0, 47838, 0, 47840, 47841, 0, 47843, 0, 0, 0, 0, 0, 47849, 47850, 0, 47852, 47853, 47854, 0, 0, 0, 0, 0, 47860, 0, 0, 0, 0, 0, 47866, 0, 0, 0, 47870, 47871, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +59: 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 1, 1, 1, 2, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 48577, 48577, 44296, 35829, 10084, 26697, 27705, 18671, 38157, 29096, 18672, 18009, 21407, 9182, 39542, 24451, 21229, 48577, 26792, 30010, 17472, 42057, 48577, 39659, 35316, 38002, 10347, 38855, 21247, 9720, 17731, 14836, 33463, 25358, 48577, 13837, 30467, 30396, 45023, 9235, 48577, 19093, 13277, 41951, 21951, 20801, 28294, 25119, 44213, 36465, 36507, 38522, 17956, 39963, 17515, 48577, 36623, 46534, 48577, 18724, 15476, 48577, 48577, 37241, 48577, 32624, 20652, 48577, 40431, 48577, 48577, 44899, 22092, 18415, 48577, 7928, 27965, 48577, 15744, 37935, 48577, 27034, 35001, 8717, 25849, 31959, 48577, 48577, 15939, 46207, 26141, 29294, 32661, 31869, 25039, 16197, 39522, 39078, 40387, 48577, 28710, 48577, 48577, 48577, 40114, 25049, 15108, 12090, 47879, 7664, 48559, 46216, 48409, 17618, 19558, 48577, 20115, 48577, 48577, 48577, 37050, 39444, 41766, 36062, 35727, 12880, 22139, 7493, 17243, 39973, 21733, 37802, 7918, 47758, 28786, 36607, 28222, 48577, 48577, 44107, 27452, 48577, 48577, 28226, 34057, 9756, 41572, 16048, 11003, 32917, 20025, 31526, 26829, 14206, 24439, 10732, 45389, 17645, 20936, 28660, 48577, 16666, 18010, 15604, 48577, 8230, 35621, 38431, 19827, 38814, 31754, 17660, 38268, 39456, 20953, 19154, 29793, 33898, 11020, 46472, 48577, 45863, 34861, 19415, 35122, 46847, 8216, 48577, 48577, 48577, 23773, 8541, 41144, 29522, 12313, 48577, 46695, 29798, 10039, 8542, 35305, 19278, 17771, 21482, 11347, 20523, 28461, 16439, 14658, 48577, 48577, 35760, 12030, 38858, 12696, 39471, 23054, 46245, 35682, 18221, 12031, 26046, 22043, 26047, 31135, 29483, 46488, 48577, 24475, 9617, 30600, 48577, 48577, 36466, 25359, 32079, 24764, 25930, 34571, 16230, 46253, 29437, 21255, 31660, 48577, 48577, 48194, 30354, 21175, 8844, 20427, 16971, 48577, 48577, 45432, 25096, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 47872, 47873, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47889, 0, 0, 0, 0, 47894, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47906, 0, 0, 0, 0, 0, 47912, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47927, 0, 0, 47930, 0, 0, 47933, 47934, 0, 47936, 0, 0, 47939, 0, 47941, 47942, 0, 0, 0, 47946, 0, 0, 47949, 0, 0, 47952, 0, 0, 0, 0, 0, 47958, 47959, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47971, 0, 47973, 47974, 47975, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47987, 0, 47989, 47990, 47991, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48009, 48010, 0, 0, 48013, 48014, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48032, 0, 0, 0, 48036, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48052, 0, 0, 0, 0, 0, 0, 48059, 48060, 48061, 0, 0, 0, 0, 0, 48067, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48081, 48082, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48099, 0, 0, 0, 48103, 48104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48116, 48117, 0, 0, 0, 0, 0, 0, 48124, 48125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +60: 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 24224, 26428, 33964, 27467, 20434, 12847, 8189, 48577, 24768, 48577, 39497, 30061, 32369, 25669, 48466, 48577, 22228, 33526, 41203, 48577, 40350, 48577, 23677, 30652, 42807, 29128, 24255, 45041, 48577, 42826, 10648, 19747, 17397, 40208, 22762, 47974, 17561, 39072, 32153, 17114, 39182, 17115, 16759, 9901, 41311, 40737, 33975, 22857, 39189, 33417, 44198, 41525, 30293, 48319, 44101, 48129, 24757, 39352, 39301, 42854, 33425, 41890, 20770, 38815, 10797, 34377, 22522, 43489, 17763, 43190, 38876, 33307, 21256, 42516, 43970, 32370, 42415, 26246, 23335, 46589, 48577, 48577, 48577, 48577, 40061, 48577, 12011, 40657, 7475, 40687, 9489, 11356, 45680, 48577, 42982, 29696, 22893, 34022, 23731, 37205, 38767, 25306, 30428, 38365, 24788, 13605, 27092, 23696, 37973, 13754, 23018, 7276, 45296, 19028, 43134, 27909, 48145, 14920, 29631, 48577, 8579, 24557, 25882, 26491, 17111, 46398, 15560, 32315, 46345, 22802, 10576, 21590, 22151, 19828, 25347, 48577, 33722, 32357, 32984, 11558, 28470, 46636, 25746, 29433, 48577, 48577, 8039, 32663, 39345, 24048, 39868, 15109, 32040, 48577, 33369, 46836, 35922, 32747, 35212, 43749, 26830, 28227, 8734, 48577, 34708, 36075, 17346, 33248, 32686, 48577, 12713, 30342, 20620, 35998, 48577, 32426, 28914, 25097, 13292, 13211, 47210, 48577, 26194, 12461, 38676, 16817, 19512, 28569, 42897, 28682, 44400, 37726, 17095, 45568, 41611, 11995, 39417, 20654, 36964, 15405, 29535, 48577, 43945, 31797, 41417, 9350, 8711, 34301, 45682, 42957, 8712, 48577, 13808, 23580, 42578, 9877, 10922, 41117, 40874, 44236, 40639, 48577, 48577, 48577, 35711, 16989, 48577, 48577, 48577, 25737, 40227, 10323, 20240, 35886, 29862, 45333, 41060, 39428, 28740, 48577, 48577, 48577, 48577, 48577, 27382, 19793, 29035, 18102, 18399, 37742, 44021, 45504, 8474, 27344, 31164, 40235, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 48135, 0, 48137, 0, 0, 0, 0, 0, 48143, 0, 0, 0, 48147, 0, 48149, 0, 0, 0, 0, 0, 0, 48156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48208, 48209, 48210, 48211, 0, 48213, 0, 0, 0, 0, 0, 0, 0, 48221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48263, 0, 0, 0, 0, 0, 0, 0, 0, 48272, 48273, 0, 0, 0, 0, 0, 0, 0, 48281, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48291, 0, 0, 0, 0, 0, 48297, 0, 0, 0, 0, 48302, 0, 0, 0, 0, 0, 0, 48309, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48329, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48339, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48349, 48350, 48351, 0, 0, 48354, 48355, 48356, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48367, 48368, 48369, 48370, 48371, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +61: 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 14580, 43034, 35890, 24050, 43896, 48577, 21210, 33802, 43527, 19701, 48577, 35260, 48577, 48577, 28219, 37748, 27524, 35267, 43071, 33448, 38769, 19577, 26457, 43955, 26906, 45727, 35461, 46966, 8727, 24133, 48577, 48577, 48577, 48577, 48577, 48577, 48577, 31370, 16665, 38798, 46469, 43816, 28795, 22331, 40261, 42300, 40262, 46680, 28465, 48577, 34915, 25715, 10424, 27398, 32330, 12359, 33547, 48577, 48577, 48577, 35294, 40271, 9183, 13333, 48326, 48577, 34664, 33781, 17348, 35899, 15839, 48577, 48577, 48577, 28175, 27413, 41337, 27095, 20398, 11981, 22174, 17728, 14776, 34220, 10310, 33994, 29091, 30144, 26715, 48577, 48577, 48577, 48577, 43193, 11071, 48577, 22917, 7987, 23940, 22671, 33440, 8564, 35427, 15983, 29887, 43194, 39472, 28609, 43699, 47519, 11522, 15027, 40965, 29995, 38565, 24935, 9586, 48298, 48503, 8748, 42357, 18600, 29304, 40668, 48577, 24013, 31703, 40043, 20635, 17053, 48577, 48577, 41689, 41202, 47439, 17810, 43717, 38902, 48577, 48577, 24735, 39562, 18612, 43374, 48577, 24813, 33559, 9590, 8192, 20323, 34693, 14607, 13090, 48577, 7739, 44384, 48577, 48577, 28313, 24036, 43310, 12262, 48577, 9921, 10260, 15622, 21191, 28454, 48577, 48577, 48577, 24972, 27858, 44090, 48577, 25580, 17222, 48577, 43931, 21202, 10777, 32596, 28983, 48577, 48577, 17968, 36606, 48577, 7255, 16509, 8772, 9152, 31726, 48577, 34649, 11464, 18943, 10267, 15442, 18864, 14189, 38067, 14864, 35923, 48577, 26326, 17720, 43910, 18946, 48577, 44300, 48220, 41893, 31905, 46146, 21474, 35830, 48577, 48577, 48577, 48577, 48577, 48577, 37223, 25143, 21480, 45730, 40482, 18359, 48577, 40938, 48577, 48577, 48577, 12020, 31676, 27911, 48577, 45425, 8301, 10679, 48577, 48577, 41921, 15984, 27920, 8182, 21993, 13261, 46163, 48577, 38488, 41922, 48577, 22200, 39380, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 48389, 0, 0, 0, 0, 48394, 0, 48396, 48397, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48414, 48415, 48416, 48417, 48418, 48419, 48420, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48433, 0, 0, 0, 0, 0, 0, 0, 48441, 48442, 48443, 0, 0, 0, 0, 0, 48449, 0, 0, 0, 0, 0, 48455, 48456, 48457, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48473, 48474, 48475, 48476, 0, 0, 48479, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48508, 0, 0, 0, 0, 0, 48514, 48515, 0, 0, 0, 0, 0, 0, 48522, 48523, 0, 0, 0, 0, 48528, 0, 0, 0, 0, 0, 0, 0, 0, 48537, 0, 0, 48540, 48541, 0, 0, 0, 0, 48546, 0, 0, 0, 0, 0, 48552, 48553, 48554, 0, 0, 0, 48558, 0, 0, 48561, 0, 0, 0, 0, 0, 48567, 48568, 0, 0, 48571, 0, 0, 0, 0, 0, 48577, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48588, 0, 0, 0, 0, 48593, 0, 0, 0, 0, 0, 0, 0, 48601, 48602, 48603, 48604, 48605, 48606, 0, 0, 0, 0, 0, 0, 48613, 0, 48615, 48616, 48617, 0, 0, 0, 48621, 0, 0, 0, 48625, 48626, 0, 0, 0, 0, 0, 0, 0, 48634, 0, 0, 48637, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +62: 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 35847, 17286, 48577, 13035, 19886, 20999, 48577, 48392, 48577, 40335, 23568, 14530, 19317, 39169, 28856, 27317, 32433, 11951, 43388, 27373, 48577, 22164, 31961, 36861, 37668, 46174, 24282, 33716, 22825, 39331, 46191, 46658, 36672, 34503, 8167, 42518, 29957, 10095, 18296, 22752, 21500, 7377, 11496, 31006, 8124, 7646, 14851, 22592, 37346, 37347, 48506, 25269, 48577, 16840, 41553, 34329, 18045, 25050, 33371, 35011, 48577, 8142, 32602, 13602, 9153, 24832, 31082, 14762, 19832, 48221, 18873, 17648, 24139, 44846, 45001, 40658, 10040, 12829, 23935, 21168, 10975, 35040, 30381, 42314, 20499, 18544, 18689, 36190, 32893, 38296, 43727, 32510, 43389, 34293, 43383, 22086, 37251, 41057, 19946, 47150, 31411, 47544, 13102, 48577, 44144, 48577, 48577, 42683, 34254, 42984, 27859, 48577, 48577, 32316, 39860, 38465, 16053, 43741, 36757, 34256, 28483, 16056, 35724, 38314, 21728, 10017, 29992, 47881, 18103, 28381, 41645, 16278, 44432, 18007, 48577, 34916, 10669, 18348, 42120, 38267, 39630, 30053, 32690, 25771, 23860, 33509, 39897, 45521, 17167, 14507, 17284, 9910, 45980, 48577, 35697, 47605, 28992, 17372, 44347, 47929, 44177, 24541, 19306, 38922, 39398, 9977, 24736, 48577, 34886, 21567, 30323, 31843, 16191, 48084, 44224, 48577, 48577, 32631, 28960, 26950, 7647, 21538, 48577, 40875, 30117, 8718, 26883, 48577, 48577, 48577, 48577, 42704, 44251, 48577, 30118, 31965, 8004, 18990, 48577, 48577, 48577, 9366, 26758, 23438, 37046, 38470, 24404, 25293, 48577, 19801, 22324, 48268, 13983, 22141, 12300, 8159, 48577, 48577, 48577, 48577, 48577, 23447, 8935, 35425, 37059, 41169, 48577, 48577, 48577, 48577, 48577, 14043, 48577, 48577, 35471, 8547, 37019, 33290, 9549, 37076, 27508, 21122, 26160, 48577, 48577, 45985, 8387, 19630, 45595, 41035, 24495, 48577, 48577, 35493, 43842, 34598, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 48642, 0, 0, 0, 48646, 0, 48648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48660, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48692, 0, 0, 0, 0, 0, 0, 0, 48700, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48743, 0, 48745, 48746, 0, 0, 0, 0, 48751, 48752, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48774, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48793, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48807, 0, 0, 0, 0, 0, 0, 0, 48815, 48816, 0, 0, 0, 0, 0, 48822, 0, 0, 0, 0, 48827, 48828, 48829, 48830, 0, 0, 48833, 0, 0, 0, 0, 48838, 48839, 48840, 0, 0, 0, 0, 0, 0, 0, 48848, 0, 0, 0, 0, 0, 0, 0, 48856, 48857, 48858, 48859, 48860, 0, 0, 0, 0, 0, 48866, 48867, 48868, 48869, 48870, 0, 48872, 48873, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48883, 48884, 0, 0, 0, 0, 0, 0, 48891, 48892, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +63: 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 48577, 48577, 14100, 48577, 48577, 48577, 48577, 31784, 26393, 46449, 37254, 16339, 44416, 23990, 9154, 28436, 29935, 24798, 36128, 24689, 38165, 12509, 24636, 36752, 37488, 47330, 15748, 40520, 7505, 14574, 29670, 9143, 37351, 34513, 42715, 9155, 31427, 36968, 16200, 36869, 17244, 10578, 20923, 18675, 40565, 13062, 9856, 13466, 29789, 32920, 25068, 34059, 29217, 12950, 44312, 11345, 32693, 22523, 36085, 11817, 29983, 11420, 26049, 36905, 46612, 24497, 33077, 29313, 34945, 48577, 12510, 18245, 43250, 39679, 40354, 26397, 25606, 48577, 35927, 15720, 48577, 35952, 48577, 48577, 48577, 43992, 28239, 48577, 15774, 22306, 10833, 16242, 37603, 24405, 25472, 25056, 39238, 8093, 7435, 44572, 21741, 32784, 41338, 48029, 12102, 9552, 45623, 43843, 15508, 32936, 48577, 38995, 34656, 20655, 20656, 40729, 46068, 48577, 48577, 34802, 10402, 14550, 19541, 46644, 48577, 16474, 38610, 48577, 31422, 34635, 17116, 37352, 13598, 48097, 32410, 28057, 15424, 25276, 19560, 40646, 41095, 28185, 41429, 21064, 24406, 12190, 32820, 44760, 26150, 33947, 24295, 24883, 16092, 40444, 40066, 31569, 31432, 10333, 44030, 9369, 23096, 32323, 7324, 31486, 31174, 11261, 29548, 23384, 42596, 16569, 34060, 29915, 48577, 47357, 18755, 18880, 18196, 8169, 48577, 48577, 45655, 19834, 16441, 38843, 15840, 9871, 26565, 47600, 37208, 47793, 39371, 23749, 48577, 48577, 48577, 47060, 7341, 39549, 17009, 38974, 48577, 37211, 9531, 33255, 39387, 21087, 14929, 32400, 48577, 42365, 12627, 20045, 24023, 41698, 25888, 37198, 43730, 29902, 26493, 24623, 8913, 48577, 26884, 7760, 18827, 48577, 42344, 17570, 11540, 17666, 28937, 11091, 24577, 36141, 18563, 8435, 7653, 10325, 42114, 12191, 7529, 41192, 48577, 48009, 12154, 32459, 7908, 12103, 37645, 35778, 7991, 15630, 41627, 38713, 47561, 41478, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48896, 48897, 0, 48899, 48900, 48901, 48902, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48965, 0, 0, 0, 0, 0, 0, 0, 48973, 0, 0, 48976, 0, 48978, 48979, 48980, 0, 0, 48983, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49006, 0, 0, 0, 0, 0, 0, 49013, 49014, 0, 0, 0, 0, 0, 49020, 0, 0, 49023, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49068, 0, 0, 0, 0, 0, 49074, 49075, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49088, 49089, 49090, 0, 0, 0, 0, 0, 49096, 0, 0, 0, 0, 0, 0, 0, 49104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49117, 0, 0, 0, 49121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +64: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 14575, 44161, 7386, 37171, 27115, 33811, 21232, 16447, 19860, 31334, 20732, 41699, 39172, 22503, 27482, 41110, 33479, 38353, 30908, 18641, 32590, 46450, 36494, 22101, 40099, 30739, 7491, 27035, 16394, 48577, 36159, 14490, 21869, 10081, 34829, 8445, 26890, 34851, 16399, 17957, 18470, 26456, 17419, 20016, 32214, 15563, 18716, 9321, 16415, 14970, 28065, 7317, 43745, 34831, 24884, 20924, 10851, 20925, 11017, 30162, 10371, 41646, 13668, 12932, 48577, 24886, 39631, 8778, 40566, 27207, 42469, 27399, 30775, 30776, 38377, 40272, 44591, 30875, 10594, 42305, 43599, 42056, 19598, 48177, 41018, 27665, 25744, 22414, 42309, 41799, 35553, 16906, 18835, 43694, 34061, 9804, 24691, 48577, 41075, 11351, 10350, 28610, 32161, 27545, 19284, 44338, 45932, 18234, 9723, 8798, 31052, 38881, 20529, 22840, 26585, 26795, 45938, 8695, 19469, 22209, 28299, 8597, 34410, 34877, 27938, 25101, 27614, 27944, 38927, 9985, 32112, 20804, 19330, 39411, 40868, 28962, 36865, 18021, 44651, 48577, 10946, 9258, 48398, 13107, 47835, 19368, 30868, 48577, 40567, 19031, 34178, 22884, 48577, 13773, 42186, 44237, 7930, 20891, 46292, 19958, 34257, 12876, 13423, 11628, 15425, 27642, 46337, 46408, 48577, 41873, 31350, 17399, 16201, 31260, 26282, 16589, 23442, 32970, 14441, 12116, 41647, 16152, 20926, 16570, 17035, 35619, 38338, 46602, 28796, 13166, 23539, 35734, 12017, 41433, 16954, 48577, 48577, 12785, 48577, 27453, 20838, 27666, 21818, 44314, 46369, 46151, 45770, 40483, 48577, 7826, 17667, 16316, 17940, 23821, 38642, 9104, 22783, 26052, 11904, 24702, 42611, 31382, 34567, 48577, 41146, 21130, 31493, 18957, 35333, 11406, 13873, 25649, 48577, 28355, 35955, 12414, 38022, 15690, 12213, 24521, 9404, 39685, 29348, 23474, 47444, 28733, 18518, 43728, 39689, 23711, 27823, 7744, 48577, 16833, 8363, 15098, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 49181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49291, 0, 0, 0, 0, 0, 0, 0, 49299, 0, 0, 0, 0, 49304, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49320, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49347, 49348, 0, 49350, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49375, 0, 0, 0, 0, 0, 0, 0, 0, 49384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49404, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +65: 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 19241, 43016, 25582, 48577, 43338, 22019, 19215, 10579, 13542, 14087, 48577, 41781, 47786, 45768, 30697, 44305, 32292, 19218, 28797, 18757, 21819, 33817, 48577, 48577, 29628, 27751, 9619, 25780, 24185, 11391, 48577, 11974, 33614, 12378, 30630, 48577, 23570, 25420, 24968, 32628, 44228, 42962, 13139, 30677, 42661, 28631, 15099, 20235, 41453, 14616, 32965, 39338, 48577, 48577, 8446, 34201, 30237, 28636, 46940, 36211, 36571, 36572, 32881, 43039, 25053, 7460, 17624, 31727, 24408, 16769, 48135, 35262, 44907, 41520, 9785, 37625, 21967, 36807, 44105, 19002, 20255, 32946, 26764, 21809, 48011, 21672, 7395, 35469, 23520, 19181, 32279, 10118, 14033, 22805, 28423, 9525, 36365, 40839, 21599, 18758, 30787, 20955, 26834, 41580, 48577, 46850, 37178, 48577, 7336, 29411, 9594, 36087, 14304, 19187, 30594, 11172, 35629, 47907, 29040, 37083, 33908, 25811, 8792, 24186, 26647, 40409, 9705, 18777, 27024, 15814, 24721, 12663, 45939, 48053, 48577, 48577, 47117, 7735, 12051, 31831, 48577, 25676, 39403, 14801, 17065, 10538, 21573, 14157, 10923, 44971, 17887, 42289, 41423, 42192, 36867, 45761, 44163, 41231, 42293, 22698, 18657, 23739, 44991, 10420, 48577, 48577, 33986, 48577, 28899, 27744, 17840, 11388, 45151, 41023, 21243, 47917, 44206, 35904, 22529, 31767, 48577, 10612, 21530, 41247, 46558, 10947, 29316, 31385, 48577, 32088, 23616, 43251, 32723, 34961, 30896, 34995, 48577, 14415, 48577, 27106, 18466, 48577, 48577, 17158, 31368, 11255, 32334, 13819, 24442, 7722, 21082, 40791, 26483, 48577, 45135, 47158, 18331, 43468, 48577, 46822, 31073, 48577, 15643, 20368, 47568, 47569, 22928, 28776, 32968, 45506, 7499, 46972, 16224, 43076, 10664, 19393, 47409, 23858, 32604, 32671, 46533, 28158, 9666, 48577, 48577, 42744, 22153, 8895, 10589, 22333, 13547, 37977, 43112, 46224, 41656, 48577, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 49411, 0, 0, 0, 0, 0, 0, 49418, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49430, 49431, 0, 0, 0, 0, 0, 0, 49438, 0, 0, 0, 0, 49443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49460, 49461, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49512, 0, 0, 49515, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49542, 49543, 0, 0, 0, 0, 49548, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49572, 49573, 0, 49575, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49588, 0, 0, 0, 0, 0, 0, 0, 49596, 0, 0, 0, 0, 0, 0, 0, 49604, 0, 49606, 0, 0, 49609, 49610, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49621, 0, 0, 0, 0, 49626, 0, 0, 49629, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49651, 49652, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49663, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +66: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 33127, 26330, 30141, 46122, 17251, 44592, 12309, 46152, 14706, 33432, 25332, 35744, 31989, 26769, 42491, 7986, 16907, 16546, 28283, 15975, 48577, 34221, 22635, 35630, 11645, 47364, 35838, 23023, 31607, 40780, 13674, 9684, 18627, 11761, 33108, 46609, 31043, 21123, 48186, 37991, 48577, 48577, 39132, 28179, 30345, 35160, 21921, 46379, 33705, 36183, 7830, 35763, 31140, 38273, 32699, 26476, 18235, 35199, 47173, 30351, 27606, 21131, 33707, 27423, 34683, 25361, 24007, 20530, 24093, 47081, 13143, 48577, 33149, 16373, 14603, 27059, 35507, 20302, 36107, 40337, 22921, 38498, 14522, 26484, 9480, 9726, 25366, 42618, 11821, 45127, 27156, 44684, 47107, 42875, 12416, 19307, 37907, 35963, 33317, 40324, 35203, 35107, 30985, 25541, 43280, 48577, 24071, 24239, 14798, 25104, 25242, 39690, 40055, 29201, 27318, 39407, 32480, 47712, 34759, 41713, 8761, 25425, 17889, 30516, 24994, 7853, 8456, 18169, 18170, 48577, 9668, 29547, 31738, 27738, 21592, 9374, 26979, 33141, 38075, 48577, 48577, 24169, 32281, 48577, 19155, 39775, 48577, 34387, 43695, 48577, 28284, 18765, 21604, 41585, 48577, 33069, 37138, 40313, 46254, 27079, 39143, 26654, 48577, 18784, 35956, 40044, 42526, 8599, 26374, 14523, 24545, 11991, 11300, 12667, 12850, 23143, 11192, 39408, 10102, 27327, 31149, 31849, 46451, 48577, 48577, 48577, 18333, 15639, 10779, 16587, 28058, 9145, 18467, 16083, 42193, 26891, 37738, 48577, 48577, 48577, 32822, 41188, 46525, 27647, 20514, 48577, 45966, 48510, 44981, 25054, 48577, 47347, 8457, 32606, 44554, 48577, 11568, 14363, 43077, 27348, 31689, 48577, 37749, 19816, 9324, 48577, 8863, 14501, 44998, 24144, 14502, 32057, 15378, 14336, 14068, 46547, 36504, 44594, 21233, 30703, 21749, 23524, 10309, 8110, 28977, 43163, 40842, 27979, 41339, 15296, 48577, 28882, 36741, 8285, 45734, 37820, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49684, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49704, 49705, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49735, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49769, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49793, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49803, 49804, 0, 0, 49807, 0, 0, 49810, 0, 0, 49813, 0, 0, 0, 0, 49818, 0, 0, 0, 0, 0, 0, 0, 49826, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49847, 49848, 49849, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49861, 49862, 49863, 0, 0, 0, 0, 0, 49869, 0, 0, 0, 0, 49874, 0, 0, 0, 0, 49879, 0, 0, 0, 0, 0, 49885, 0, 0, 0, 49889, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49914, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +67: 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 22636, 42165, 29233, 39909, 16098, 36095, 16911, 19061, 35683, 48577, 42243, 12161, 30812, 21174, 26298, 27424, 27425, 20175, 26064, 14518, 29193, 27288, 21001, 15392, 8917, 18836, 35221, 42255, 28839, 21135, 24769, 9249, 20195, 36423, 25370, 48396, 34159, 43510, 12668, 11093, 9406, 27619, 41835, 23681, 10987, 20647, 34758, 32187, 28865, 26494, 48577, 34167, 26497, 47492, 48577, 11016, 22012, 21467, 14364, 43079, 32974, 9450, 32545, 15297, 23601, 35513, 44241, 44014, 13024, 25297, 47573, 35725, 30124, 45816, 20598, 11456, 9379, 22872, 12074, 48577, 17276, 17277, 27995, 18323, 16139, 12773, 15216, 41121, 27262, 26971, 23781, 16487, 46148, 35735, 44596, 48245, 24191, 26054, 38494, 23949, 19719, 24583, 24262, 48577, 30175, 42086, 37500, 37361, 29588, 48577, 46141, 16852, 48577, 40815, 28189, 32343, 37986, 46548, 13407, 37995, 9212, 48577, 18690, 41153, 45325, 24598, 41746, 18731, 41232, 18171, 8005, 32452, 39871, 30240, 24995, 47268, 43080, 40913, 26461, 22579, 11263, 48577, 28168, 17252, 10270, 26019, 45924, 35745, 15139, 17847, 45617, 31337, 35346, 30042, 16688, 48577, 19134, 11153, 48577, 14321, 14322, 32912, 30680, 35016, 21743, 48577, 41793, 7945, 42484, 48022, 28424, 11433, 7728, 9600, 36473, 17374, 48523, 7737, 46186, 37497, 16055, 8458, 14388, 47579, 38632, 38194, 47020, 47359, 26020, 38198, 16960, 31917, 23457, 45299, 35196, 27459, 12888, 30813, 9623, 30011, 24722, 34160, 25683, 35286, 30720, 44896, 15011, 40724, 22096, 12911, 29954, 16631, 28961, 32591, 46446, 15593, 29861, 35980, 10262, 11531, 17559, 47640, 27861, 8888, 30742, 34322, 8365, 22104, 35004, 48577, 16507, 28146, 18940, 38732, 14387, 40644, 27968, 48577, 38949, 46944, 32993, 21729, 13219, 46298, 33745, 27203, 8459, 17323, 44258, 39618, 29384, 28464, 9497, 9370, 48577, 30695, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49929, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49970, 0, 0, 0, 49974, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49999, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50023, 0, 0, 0, 0, 0, 50029, 0, 0, 50032, 0, 0, 0, 0, 0, 0, 0, 0, 50041, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50061, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50075, 0, 0, 50078, 0, 0, 0, 0, 0, 0, 50085, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50149, 0, 0, 0, 0, 0, 0, 0, 50157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +68: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 19804, 47889, 25993, 22327, 39628, 38779, 9445, 38231, 46739, 48142, 23307, 11740, 36576, 11264, 12786, 11539, 31807, 46225, 45650, 32782, 8967, 19591, 38802, 47415, 22154, 15962, 19404, 12152, 10380, 35660, 33016, 39776, 18818, 30603, 47596, 35551, 9857, 38289, 22628, 22582, 16436, 15571, 14597, 11765, 9616, 47039, 10041, 23937, 40662, 45831, 46241, 44325, 16908, 16171, 45322, 12372, 19285, 35161, 36025, 16366, 39136, 26649, 13960, 7619, 29889, 38651, 7300, 27157, 29896, 27158, 42108, 47108, 9250, 43724, 37910, 32491, 23634, 41601, 10070, 32258, 46412, 30356, 48577, 35831, 14755, 34582, 48577, 12570, 12104, 35888, 36525, 10786, 35755, 20071, 34838, 18796, 24971, 48577, 48577, 10364, 21205, 14162, 16245, 15236, 14029, 48577, 14191, 8256, 36168, 12934, 48577, 12942, 9376, 37635, 46155, 26332, 30582, 28079, 31131, 48577, 48183, 35155, 48577, 44049, 47285, 35766, 48577, 35336, 9390, 38978, 20531, 9639, 15501, 36286, 10358, 15510, 14788, 38571, 38716, 42089, 27775, 29422, 26797, 33345, 27188, 9631, 36634, 22395, 7781, 39988, 40436, 30744, 48577, 48577, 33725, 18651, 28947, 39965, 10407, 12347, 14958, 43469, 7492, 32450, 32645, 26633, 14584, 31973, 34260, 17627, 8722, 12292, 27881, 12731, 48577, 48577, 23076, 48577, 9836, 13985, 44106, 17520, 48577, 16514, 41234, 24053, 21154, 30696, 31980, 37751, 42594, 24904, 48577, 48577, 41657, 43116, 43422, 30562, 46226, 39104, 43117, 42405, 38480, 46685, 46997, 17280, 11572, 15124, 11513, 30137, 22993, 11058, 48577, 37418, 31750, 11751, 15804, 22971, 31991, 31992, 46688, 27230, 24455, 47277, 35749, 46689, 16490, 24867, 18124, 23451, 13032, 11706, 43604, 48577, 48577, 30584, 48577, 9838, 26929, 13614, 43362, 9872, 32977, 17777, 32927, 15132, 23548, 40569, 20160, 43164, 27021, 48577, 26773, 19863, 35585, 17366, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 50258, 0, 0, 0, 50262, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50273, 50274, 0, 0, 0, 0, 0, 0, 50281, 0, 0, 0, 0, 50286, 0, 0, 0, 0, 0, 0, 0, 0, 50295, 0, 0, 50298, 0, 0, 0, 50302, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50328, 50329, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50350, 50351, 0, 50353, 0, 0, 0, 0, 50358, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50368, 50369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50388, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50409, 50410, 0, 50412, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50427, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +69: 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 48577, 24480, 48114, 48374, 42244, 15913, 24192, 30709, 16229, 24481, 8994, 35586, 48577, 48577, 35337, 11128, 20177, 40161, 8186, 40848, 21426, 30352, 25362, 39760, 48568, 13178, 11526, 31679, 28263, 45794, 26204, 42788, 33730, 44349, 18441, 24201, 29253, 48577, 48577, 24202, 48577, 48577, 34779, 48577, 43222, 28940, 34950, 22956, 15511, 42619, 12722, 32430, 9690, 48577, 36398, 31551, 8845, 35510, 37900, 13876, 33315, 7362, 30817, 48490, 23057, 14734, 48577, 43566, 48577, 33242, 13564, 19098, 40339, 45552, 35964, 36112, 47109, 43255, 15330, 14107, 48577, 22357, 19995, 9812, 39499, 26724, 48577, 8618, 25378, 21010, 23281, 20046, 48577, 10527, 23792, 40505, 14799, 26126, 45744, 17698, 19490, 28558, 43732, 40056, 36302, 23871, 45558, 23219, 48577, 31063, 21788, 29987, 14538, 36961, 25206, 27320, 47955, 40185, 18385, 27321, 20854, 45267, 11833, 24630, 32435, 47491, 43455, 17392, 48577, 43312, 26263, 45060, 32437, 25428, 28703, 44735, 29102, 48577, 43018, 29104, 43019, 31012, 39231, 11200, 43415, 27388, 38804, 28170, 22470, 48370, 39249, 41668, 37084, 36322, 38442, 35641, 43448, 10966, 47312, 26781, 44805, 29086, 27537, 45445, 37617, 24126, 31975, 28154, 34203, 8464, 47988, 7934, 48577, 22027, 39769, 23188, 29301, 23077, 41323, 45764, 42203, 23308, 18875, 38805, 14093, 42052, 36649, 44039, 22155, 24149, 48577, 24170, 10508, 19839, 18284, 45977, 15380, 10155, 16640, 21750, 27123, 10121, 36022, 27980, 40494, 24303, 41587, 35157, 34144, 43165, 9056, 11766, 18026, 37636, 12961, 19449, 15985, 17261, 9213, 40665, 25511, 9508, 9509, 43223, 41079, 41681, 45455, 17375, 43872, 48196, 48577, 22531, 44351, 30462, 46309, 26520, 48577, 48577, 34780, 21263, 16682, 30357, 25231, 48577, 36783, 20506, 23469, 43256, 43848, 11716, 41823, 21007, 41286, 38129, 39564, 28919, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 50432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50444, 50445, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50469, 50470, 0, 50472, 50473, 0, 50475, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50485, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50498, 0, 50500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50512, 0, 0, 0, 0, 0, 50518, 0, 0, 0, 0, 0, 50524, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50540, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50560, 0, 0, 0, 0, 0, 0, 0, 0, 50569, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50604, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50622, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50662, 0, 0, 0, 0, 0, 50668, 50669, 0, 0, 0, 0, 0, 50675, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +70: 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 15520, 16004, 48577, 27948, 47619, 28194, 39569, 38216, 24601, 9517, 27624, 20218, 28622, 9892, 37564, 40878, 29088, 26608, 48410, 22493, 22370, 17417, 48577, 48577, 44637, 38130, 47451, 48577, 48577, 42992, 48577, 13108, 15220, 8371, 47507, 48102, 34643, 39233, 28493, 48577, 20687, 41324, 10932, 29038, 32675, 46977, 33179, 48577, 33502, 44578, 48577, 21120, 48577, 26024, 17195, 8865, 43144, 48450, 45978, 44601, 37637, 28508, 16641, 22167, 8283, 9502, 48577, 14046, 30794, 42167, 23266, 32903, 18027, 41340, 40290, 48577, 23267, 48577, 40153, 9214, 22722, 11972, 40962, 7774, 29194, 48231, 48577, 36474, 11213, 10750, 28725, 16680, 15028, 40315, 12723, 37901, 22214, 23277, 45628, 33083, 14003, 25371, 27175, 48577, 17091, 27176, 25677, 48577, 43800, 48577, 16694, 11922, 24269, 13660, 48577, 8769, 48577, 38782, 48577, 12679, 12680, 39619, 24661, 48577, 33747, 40121, 34123, 38070, 48577, 48577, 17725, 44045, 26035, 23549, 43760, 34065, 22046, 30809, 20295, 45200, 48577, 30818, 48577, 25236, 19661, 26589, 11409, 28673, 8960, 24637, 25430, 15758, 10590, 41016, 39539, 18200, 8330, 48329, 12255, 12256, 19188, 33101, 10351, 36384, 48577, 29163, 47084, 25525, 14793, 20735, 16621, 38986, 25170, 41053, 32632, 36240, 29836, 40438, 33575, 46950, 37502, 36969, 36499, 42587, 40240, 29838, 42195, 42196, 29089, 17517, 28880, 43528, 14551, 28251, 42156, 37670, 44887, 39240, 47352, 44888, 34356, 27525, 38783, 19809, 36216, 14764, 41236, 28497, 11635, 27389, 8730, 48577, 28110, 44580, 14210, 46843, 32542, 40930, 26289, 19020, 41390, 28347, 17352, 20031, 13551, 18485, 37015, 30093, 11893, 38825, 35125, 27278, 40450, 38644, 31759, 46030, 36222, 40570, 21606, 21912, 19189, 36377, 26643, 41907, 19431, 34470, 24003, 37641, 10345, 9554, 21083, 44175, 18952, 45739, 35343, 15990, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 50690, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50710, 50711, 0, 0, 0, 50715, 50716, 0, 50718, 0, 0, 0, 0, 0, 0, 0, 0, 50727, 0, 0, 0, 0, 0, 0, 0, 50735, 0, 0, 50738, 0, 50740, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50754, 0, 0, 0, 0, 0, 0, 0, 0, 50763, 0, 50765, 0, 0, 0, 0, 0, 0, 0, 0, 50774, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50791, 0, 0, 0, 50795, 0, 50797, 0, 0, 0, 0, 50802, 0, 50804, 0, 50806, 0, 0, 0, 0, 50811, 0, 0, 0, 0, 50816, 50817, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50828, 0, 50830, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50852, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50899, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +71: 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 28397, 39145, 48577, 13793, 10756, 37902, 46265, 16972, 10232, 10689, 45428, 19100, 26235, 24954, 23836, 37327, 18903, 38665, 7622, 33832, 35430, 26623, 36030, 40461, 21368, 7425, 35797, 9983, 38134, 37155, 19911, 10444, 10361, 44706, 39574, 40392, 48577, 48577, 48577, 28398, 48577, 41963, 31860, 20476, 35094, 22328, 24915, 21754, 48577, 26691, 25108, 48577, 11248, 10793, 39755, 31489, 27018, 34666, 9876, 10804, 16377, 44340, 43365, 48577, 25516, 23831, 34684, 46271, 34762, 18860, 48577, 48577, 14196, 48577, 33436, 48248, 22184, 22348, 37117, 25788, 37908, 10955, 47620, 25109, 48577, 46278, 46120, 48577, 43051, 11135, 28498, 9094, 35370, 42862, 17536, 41538, 18604, 26719, 26720, 32094, 23869, 17488, 47178, 27649, 39441, 46466, 34586, 48513, 47582, 16296, 41133, 43086, 46999, 40132, 21225, 9503, 48577, 9380, 24842, 46696, 19854, 37642, 16676, 21683, 21417, 7337, 15484, 16909, 18069, 41924, 32930, 47063, 8851, 42789, 35636, 13272, 16927, 34092, 41405, 10481, 33780, 31657, 48577, 48577, 11543, 17903, 13467, 10509, 37987, 32857, 34581, 9415, 19552, 45246, 30539, 41566, 15436, 44559, 15259, 30246, 46675, 35987, 48514, 10307, 32050, 44170, 17653, 18063, 16858, 14211, 20550, 45147, 36985, 12058, 37017, 15471, 48520, 18201, 48577, 9201, 46103, 22267, 36042, 22186, 15485, 18773, 11485, 43920, 11465, 35637, 10752, 30968, 9420, 39983, 26659, 9482, 30819, 20431, 8602, 19481, 46776, 47481, 32095, 45947, 19669, 8667, 48577, 24605, 24615, 45047, 32263, 10489, 15422, 9835, 36145, 34345, 17436, 31430, 30541, 9161, 28156, 36982, 11150, 11884, 44994, 46676, 10421, 11257, 8485, 27111, 7694, 36530, 27656, 25014, 15034, 10502, 31938, 36645, 15273, 23385, 20269, 48577, 48577, 48577, 46476, 31915, 48566, 10872, 23200, 25069, 8173, 13709, 38555, 48577, 47912, 26040, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 50946, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50980, 50981, 50982, 0, 50984, 0, 0, 0, 0, 0, 0, 0, 50992, 0, 0, 50995, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51007, 0, 0, 0, 0, 0, 0, 51014, 51015, 0, 51017, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51028, 0, 0, 51031, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51060, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51086, 51087, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51185, 51186, 51187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51197, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +72: 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 36043, 48577, 11174, 24869, 36591, 23352, 10160, 22187, 37080, 18685, 14777, 8555, 48577, 39202, 38385, 19869, 32162, 23236, 18231, 31817, 35491, 9419, 48577, 31940, 29891, 29414, 37509, 42251, 32709, 41276, 11909, 13273, 10903, 12106, 27234, 41107, 14004, 8906, 46310, 11190, 10094, 16931, 13768, 48300, 12757, 23537, 36304, 45048, 32264, 47494, 25311, 10372, 46417, 15451, 33804, 36676, 22969, 7272, 48577, 31760, 34678, 17132, 33558, 37535, 45948, 25725, 21511, 24377, 48577, 11473, 32666, 44984, 22130, 22541, 14552, 30543, 17908, 15244, 25857, 17919, 37369, 27657, 36531, 22035, 30698, 46580, 31691, 16206, 36541, 23748, 26924, 43544, 26042, 44776, 21757, 29883, 48577, 40155, 8744, 19138, 47428, 32712, 33196, 38440, 9842, 22785, 33612, 29645, 26721, 40675, 48577, 11782, 22789, 47672, 9967, 34955, 10956, 35515, 8191, 22438, 48577, 47122, 38140, 27676, 25394, 48387, 28871, 25431, 30753, 44986, 48577, 43167, 39039, 10427, 48577, 32755, 10443, 29001, 43993, 19742, 9129, 14648, 48577, 48577, 11870, 12874, 20592, 44254, 17614, 40889, 44510, 31967, 48577, 7788, 16059, 21468, 48577, 41530, 34652, 44031, 35119, 42472, 9593, 42228, 34667, 41662, 34721, 25000, 11767, 44621, 9215, 35428, 48577, 41926, 24062, 25168, 36323, 13637, 45049, 19684, 48577, 45093, 48577, 48577, 21637, 21800, 11133, 10404, 16142, 39814, 39517, 7380, 16835, 44411, 23989, 48577, 37040, 10410, 40527, 31876, 17438, 48577, 12524, 9443, 12879, 41754, 47992, 48577, 43589, 9929, 48577, 24153, 35620, 26536, 26541, 48577, 36082, 29521, 25774, 30446, 12101, 37081, 14238, 9506, 20970, 42779, 19648, 12535, 22247, 8366, 24045, 43023, 11504, 11507, 30241, 24127, 45293, 35868, 30247, 11872, 21887, 40933, 14590, 48577, 40934, 14393, 19220, 47418, 32456, 14429, 21971, 17198, 24844, 46697, 27417, 44205, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 51201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51212, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51222, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51320, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51330, 0, 0, 0, 51334, 0, 0, 0, 0, 0, 0, 0, 51342, 51343, 0, 0, 0, 0, 0, 0, 0, 0, 51352, 0, 0, 0, 51356, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51372, 0, 0, 0, 0, 0, 0, 0, 51380, 0, 51382, 51383, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51395, 0, 0, 0, 0, 0, 51401, 0, 0, 0, 0, 0, 51407, 0, 0, 51410, 0, 0, 0, 0, 51415, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +73: 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 2, 2, 1, 1, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 2, 1, 48577, 9704, 26991, 43366, 27513, 37085, 23205, 48577, 48577, 27429, 32713, 44658, 31193, 27294, 21779, 29855, 21180, 37781, 19897, 27183, 20452, 41252, 8076, 15698, 10076, 24643, 24294, 31878, 13901, 43785, 45142, 10423, 46839, 32457, 48577, 26290, 22388, 16861, 45005, 19035, 29880, 9799, 13993, 9949, 33388, 34389, 33824, 40541, 43697, 34390, 10884, 42505, 17262, 14782, 42506, 41810, 48403, 35167, 21132, 14050, 39671, 16617, 36191, 31460, 10055, 17269, 27235, 45024, 11910, 31144, 21179, 33618, 28040, 44784, 48577, 29602, 46616, 47111, 11527, 44471, 27991, 37695, 20570, 30473, 35353, 30030, 36555, 23058, 11915, 35520, 48577, 20851, 20446, 7564, 20744, 42540, 48577, 42541, 25679, 45435, 7992, 24740, 48577, 18617, 26219, 37922, 39570, 36710, 9264, 46620, 47485, 8104, 27191, 40202, 29203, 43980, 48577, 40005, 24626, 45720, 27328, 48577, 42404, 48577, 48577, 30183, 40194, 48577, 48577, 48577, 33619, 47849, 48577, 33624, 22262, 19798, 20836, 48577, 28717, 7562, 11249, 38617, 16636, 40254, 36809, 41237, 12559, 45862, 35989, 29595, 40139, 40946, 39647, 35030, 22988, 46606, 38486, 19203, 32998, 38237, 13587, 18598, 23391, 15495, 11321, 39480, 31548, 31402, 23602, 48577, 41539, 43622, 32362, 17403, 11544, 47089, 48577, 38033, 41700, 39833, 43283, 28562, 46607, 11318, 48577, 34176, 13309, 48080, 22089, 40859, 44814, 48577, 48577, 40824, 12631, 36515, 16023, 42691, 17894, 42579, 48577, 24292, 22896, 39530, 35397, 39082, 41124, 48577, 48577, 12780, 23511, 47262, 28688, 10570, 20373, 8488, 47682, 25314, 17527, 7944, 36072, 10673, 26558, 39640, 34738, 43824, 31994, 48577, 30341, 19047, 37889, 42870, 42507, 48577, 10353, 17485, 8950, 48577, 39681, 9980, 19196, 48577, 17327, 11632, 46678, 30555, 23189, 32783, 48577, 43594, 40606, 48577, 18214, 11985, 48577, 32355, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 51456, 0, 0, 0, 0, 0, 0, 51463, 51464, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51490, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51530, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51546, 0, 0, 0, 0, 0, 51552, 0, 0, 0, 0, 0, 51558, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51572, 0, 0, 0, 0, 51577, 0, 51579, 51580, 0, 0, 51583, 51584, 51585, 0, 0, 51588, 0, 0, 0, 0, 51593, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51625, 0, 0, 0, 0, 0, 0, 51632, 0, 0, 0, 0, 0, 0, 0, 51640, 0, 0, 0, 0, 0, 0, 51647, 51648, 0, 0, 0, 0, 0, 0, 0, 51656, 0, 0, 0, 0, 0, 0, 51663, 51664, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51683, 0, 0, 0, 0, 0, 51689, 0, 0, 0, 51693, 0, 0, 0, 51697, 0, 0, 0, 0, 0, 0, 51704, 0, 0, 51707, 0, 0, 51710, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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: 1, 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 12832, 38654, 31820, 48577, 41946, 24959, 8347, 48577, 8962, 48577, 44791, 29105, 7980, 43747, 17929, 11643, 30876, 36367, 44604, 23933, 7985, 48577, 19844, 15303, 39656, 9703, 18136, 33305, 8269, 31631, 44466, 37471, 7299, 17265, 12477, 15992, 12837, 19301, 29392, 48577, 47764, 25367, 26588, 26621, 24732, 39938, 41213, 46494, 30266, 15521, 29028, 39175, 13853, 12493, 45159, 39695, 43515, 34556, 13856, 8314, 18381, 14718, 14760, 45250, 8179, 14695, 39359, 34375, 27505, 45925, 45926, 45864, 19068, 15387, 37651, 27833, 31342, 24988, 48577, 27625, 18113, 17922, 44286, 30567, 14038, 7495, 48577, 7723, 12946, 41142, 12955, 8530, 47360, 29456, 36700, 42769, 48577, 20040, 47066, 37086, 40157, 12466, 36660, 40309, 10210, 44892, 16647, 24871, 8289, 48577, 26074, 19658, 41154, 34687, 13591, 35170, 18247, 45204, 10065, 7915, 32721, 14111, 38276, 7732, 15030, 44207, 46311, 14891, 16648, 9330, 16007, 13880, 18797, 13650, 36425, 9266, 31147, 25117, 25699, 38147, 46007, 23650, 35419, 28173, 8531, 37379, 47597, 13190, 9327, 21767, 30262, 39274, 38026, 30264, 12167, 14473, 9918, 18386, 45251, 48577, 48577, 48577, 48577, 48577, 14537, 40359, 17923, 10729, 7981, 43424, 48577, 21313, 9216, 32935, 11119, 43630, 42628, 15582, 23309, 45144, 46422, 41484, 21680, 18066, 27669, 7754, 15971, 8738, 47843, 17530, 46423, 34064, 16036, 8556, 13998, 11525, 11306, 33171, 10609, 32424, 10456, 26933, 29527, 37831, 29850, 15389, 47846, 30464, 25164, 42615, 27080, 38495, 30820, 13275, 10460, 39275, 17687, 33198, 16530, 18035, 7521, 15393, 31303, 19195, 29744, 41693, 34956, 38983, 27757, 23240, 16001, 48577, 7623, 33159, 34784, 25795, 46435, 19110, 9984, 48577, 25240, 28114, 17390, 13652, 21270, 27475, 14542, 14289, 10222, 17924, 17930, 44583, 41241, 29436, 8328, 10230, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 51715, 0, 0, 0, 51719, 0, 51721, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51733, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51751, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51790, 0, 0, 0, 0, 0, 0, 0, 51798, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51808, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51821, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51871, 51872, 51873, 51874, 51875, 0, 0, 0, 0, 0, 0, 51882, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51943, 0, 0, 0, 0, 0, 0, 0, 51951, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +75: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 44114, 42758, 41243, 33061, 40956, 24466, 24483, 44925, 13829, 19287, 33443, 24094, 30275, 18140, 17050, 9391, 32950, 38118, 35171, 7477, 44358, 39723, 17809, 42068, 39939, 42261, 48577, 8621, 48577, 17813, 36238, 25551, 48577, 47610, 48577, 39098, 45351, 43093, 13549, 44843, 21595, 48577, 9179, 36368, 43755, 48577, 42761, 28639, 33750, 8231, 16253, 7858, 27907, 15572, 14306, 33787, 48577, 47051, 42133, 20408, 44926, 34817, 36388, 38007, 41400, 47068, 43209, 32564, 34407, 18240, 28426, 42389, 20432, 35438, 43768, 8024, 18248, 18249, 42530, 48577, 42137, 24733, 38910, 14307, 13794, 45344, 47618, 43774, 43776, 21182, 11412, 12491, 48577, 23034, 43293, 42546, 20329, 14308, 28923, 11667, 31103, 41253, 9116, 27363, 34822, 27826, 24851, 30707, 30708, 34446, 15333, 9194, 8307, 8904, 42873, 38150, 18581, 14503, 30570, 26836, 8015, 7497, 7500, 15474, 30587, 32395, 37381, 43173, 9206, 29939, 7702, 48577, 41074, 48577, 48577, 44642, 10749, 25864, 42782, 24484, 48577, 28723, 39150, 38496, 48577, 24063, 30314, 47848, 48417, 47938, 10126, 7478, 14344, 44679, 24102, 15515, 45715, 19163, 11545, 35175, 8340, 8615, 45716, 48577, 17695, 24571, 48577, 17385, 45300, 16379, 10622, 25797, 27949, 27437, 26625, 7627, 46272, 47483, 18799, 14540, 12759, 36915, 48577, 13655, 38400, 38145, 19924, 10914, 25183, 8827, 25704, 20343, 28874, 26408, 33922, 48577, 16528, 28848, 43056, 22904, 37591, 37467, 30878, 9207, 22560, 25344, 15721, 16527, 17128, 23085, 17804, 23161, 45543, 36744, 23757, 8589, 18691, 30259, 42318, 37693, 36481, 35440, 22973, 13843, 7587, 20447, 27821, 23287, 23035, 7482, 26575, 31673, 31272, 48577, 22576, 17553, 14009, 39351, 28187, 35582, 21076, 29727, 29252, 35072, 10156, 28818, 26644, 35079, 11712, 39384, 23400, 48577, 12838, 30286, 36663, 48347, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 51994, 0, 51996, 0, 0, 0, 52000, 0, 52002, 0, 0, 0, 0, 0, 0, 52009, 0, 0, 0, 52013, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52024, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52047, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52060, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52099, 0, 52101, 52102, 0, 0, 0, 0, 0, 52108, 0, 0, 0, 52112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52131, 0, 0, 52134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +76: 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 38345, 14790, 9460, 29648, 33104, 48577, 32795, 30632, 12109, 29349, 9260, 26664, 48235, 11719, 23288, 19925, 23647, 48577, 27195, 27477, 29353, 25902, 48402, 48577, 25545, 42859, 38202, 24468, 24485, 45630, 47528, 19156, 33927, 10885, 40573, 37763, 13417, 19302, 29853, 18143, 27060, 10311, 27062, 10233, 21791, 29047, 48577, 43304, 32860, 25435, 41531, 48577, 30789, 48027, 48577, 7950, 16169, 45533, 21080, 44333, 31537, 8180, 7673, 37390, 42004, 31332, 44123, 47070, 21085, 27924, 34045, 33606, 30607, 33607, 27355, 16212, 42792, 16116, 16117, 36977, 15144, 41201, 42532, 36782, 36664, 27990, 25530, 9483, 24219, 34551, 26094, 19314, 12140, 29287, 25537, 21939, 45994, 21780, 46567, 48349, 39682, 47115, 48577, 48577, 23471, 48577, 48577, 23478, 40805, 16118, 14114, 28010, 47236, 36408, 44874, 45890, 16119, 38278, 23760, 44380, 35180, 45745, 17133, 18450, 45952, 48577, 25798, 10101, 47128, 38141, 41087, 45459, 27677, 16809, 35232, 48577, 48577, 34964, 14057, 9708, 23059, 36305, 28443, 23842, 25950, 42810, 40363, 41845, 31664, 30319, 11099, 39510, 16650, 21020, 23574, 27199, 42555, 48577, 24488, 43557, 11491, 31828, 36299, 44381, 48577, 48577, 12310, 13712, 17938, 48577, 39118, 48577, 30599, 48577, 44854, 19623, 45193, 14657, 16170, 17429, 46486, 32352, 48577, 48577, 21081, 29807, 15722, 41077, 34035, 34226, 31355, 11655, 13266, 9221, 13129, 37646, 11656, 46856, 7762, 38564, 8022, 12469, 7703, 36908, 48577, 16178, 21614, 16919, 11714, 44124, 44864, 23866, 21770, 15328, 28835, 14105, 14106, 40550, 22498, 41939, 37092, 30295, 8291, 27758, 34820, 41948, 30637, 44872, 8877, 48577, 41050, 18037, 18795, 42174, 22054, 23215, 14273, 19667, 27943, 10984, 8028, 38669, 46495, 40981, 35799, 10909, 38928, 11831, 26524, 22877, 41959, 9518, 48577, 17753, 12729, 32434, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 52229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52241, 0, 0, 0, 0, 0, 52247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52270, 0, 0, 0, 0, 52275, 0, 0, 52278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52326, 52327, 0, 52329, 52330, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52349, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52359, 52360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52381, 0, 0, 0, 0, 0, 0, 52388, 52389, 0, 0, 0, 52393, 0, 52395, 0, 52397, 0, 0, 0, 0, 0, 0, 0, 0, 52406, 52407, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52428, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52453, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52476, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +77: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 36917, 44715, 39836, 28363, 34841, 14893, 30363, 25398, 7589, 18622, 42812, 18623, 27197, 43662, 24039, 41978, 8031, 13297, 25436, 34148, 20632, 25085, 21327, 21785, 36327, 29906, 15780, 39931, 37523, 11323, 12857, 18589, 42313, 24469, 27280, 18138, 34036, 19993, 43446, 37833, 48577, 29988, 26109, 25399, 43149, 9431, 33589, 18132, 34566, 37325, 27926, 18439, 36718, 9034, 29649, 19162, 15146, 17090, 9397, 24231, 10092, 29817, 12111, 27187, 35653, 31254, 46782, 23147, 8348, 7569, 27198, 39657, 22958, 36959, 37119, 38028, 39394, 48577, 37122, 23873, 10078, 28607, 28613, 24195, 13437, 21946, 31145, 9263, 33466, 45672, 36242, 31148, 29011, 43126, 21415, 15685, 12839, 20289, 27058, 12212, 20309, 44681, 40328, 45318, 26778, 24232, 16983, 41287, 35793, 46312, 42138, 37156, 33661, 39180, 31306, 38148, 43802, 11301, 32091, 37474, 48577, 46712, 36819, 16468, 33662, 9412, 15329, 36720, 35788, 35800, 47922, 17267, 30155, 17693, 47769, 47384, 9269, 25550, 29092, 38900, 29489, 12976, 17574, 36486, 37540, 36488, 30617, 19884, 10757, 7733, 21266, 22730, 24573, 21947, 32144, 23483, 16464, 30886, 30657, 39694, 20339, 34234, 20219, 7285, 18452, 45675, 45561, 42323, 45902, 19931, 9849, 41981, 20215, 48577, 41832, 48577, 20644, 36914, 28267, 45039, 48577, 10761, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 63010, 3754, 3755, 3756, 3757, 3758, 3759, 3760, 3761, 3762, 3763, 3764, 3765, 3766, 3767, 3768, 3769, 3770, 3771, 3772, 3773, 3774, 3775, 3776, 3777, 3778, 3779, 3780, 3781, 3782, 3783, 3784, 3785, 3786, 3787, 3788, 3789, 3790, 3791, 3792, 3793, 3794, 3795, 3796, 3797, 3798, 3799, 3800, 3801, 3802, 3803, 3804, 3805, 3806, 3807, 3808, 3809, 3810, 3811, 3812, 3813, 3814, 3815, 3816, 3817, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 52520, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52557, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52600, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52653, 0, 52655, 0, 0, 0, 0, 52660, 0, 52662, 52663, 52664, 52665, 52666, 52667, 52668, 52669, 52670, 52671, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +78: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 42558, 13304, 22563, 30401, 33673, 39286, 17273, 37658, 46061, 33117, 33674, 39287, 19334, 9336, 44393, 27478, 15585, 11102, 11103, 47637, 31405, 29679, 34275, 34274, 31789, 8998, 42430, 11789, 13379, 34883, 10534, 13373, 31791, 24853, 13374, 44078, 24854, 41609, 9039, 33203, 16942, 21489, 16020, 41408, 31207, 47136, 19681, 21033, 14936, 16652, 11366, 10008, 25128, 47866, 47496, 7629, 37566, 12333, 38043, 47497, 21336, 24342, 21801, 30027, 15155, 42635, 42885, 28195, 38508, 21540, 21541, 37291, 26939, 42887, 42559, 46622, 38403, 45748, 18076, 14407, 23899, 43378, 30079, 29380, 31307, 18269, 16563, 10544, 10552, 42816, 43457, 41546, 27576, 21539, 30663, 42416, 38944, 39698, 15586, 21542, 39288, 18289, 34484, 13506, 34242, 19341, 28297, 19936, 21836, 34177, 26858, 18077, 26592, 26271, 47965, 32864, 41179, 41731, 15347, 33354, 28115, 15634, 35596, 44232, 12052, 46282, 15641, 46920, 16763, 15645, 26276, 25191, 43095, 22068, 23922, 26576, 44394, 46497, 34289, 34295, 14377, 11220, 44209, 23150, 44208, 45083, 18290, 30482, 38510, 21335, 34979, 35443, 16039, 16040, 41493, 40059, 41497, 30494, 41501, 19525, 36946, 37711, 22545, 12229, 20577, 17146, 42901, 10003, 17779, 28012, 42557, 39761, 21277, 36754, 24874, 39762, 21281, 42444, 31474, 9137, 44165, 40242, 12401, 24665, 13999, 27082, 32529, 32530, 19507, 19508, 37712, 42888, 33923, 32531, 23896, 13305, 45563, 21144, 30296, 11031, 7631, 46043, 21091, 21034, 8984, 32620, 11788, 15061, 33135, 26307, 8985, 9561, 48075, 34277, 35665, 46062, 15401, 39320, 39321, 37292, 17863, 36838, 32569, 30889, 15666, 15876, 9117, 12258, 25445, 42818, 10277, 10133, 33026, 10134, 42637, 28043, 27099, 32570, 14547, 10278, 42076, 30999, 47206, 29827, 38347, 38512, 20346, 20077, 42271, 14938, 9562, 32572, 37715, 14902, 12763, 14638, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +79: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 47137, 30667, 29530, 44211, 13146, 13887, 38580, 42902, 40422, 22546, 42563, 19511, 7306, 38513, 19729, 15159, 14408, 40632, 21183, 29680, 12385, 15084, 36121, 47207, 43940, 19224, 18972, 44395, 11993, 45087, 33136, 37927, 11336, 10291, 41444, 39582, 33637, 10107, 26308, 9563, 41364, 40426, 37928, 47532, 45582, 39415, 29057, 9119, 16326, 28524, 28570, 40203, 7863, 40853, 25251, 47324, 33845, 31945, 11684, 8238, 34281, 19938, 29681, 42917, 34984, 42822, 46498, 13039, 17179, 26601, 12422, 47533, 9338, 31946, 8354, 46088, 11669, 38045, 12764, 47534, 48531, 44137, 42077, 36415, 45957, 17580, 8400, 37333, 33768, 44214, 42918, 15162, 48538, 16236, 28932, 36840, 28525, 39327, 32029, 43806, 37483, 30899, 34422, 22372, 7961, 29536, 18914, 17707, 23845, 39739, 15927, 42016, 7765, 14437, 27760, 19941, 14381, 9040, 19526, 17773, 19211, 16821, 32192, 36613, 20659, 11686, 42940, 34246, 40514, 33848, 37302, 22455, 46716, 15551, 23494, 42654, 10768, 22974, 16701, 24351, 43320, 34296, 27333, 47391, 40861, 44140, 7378, 25957, 27963, 14313, 26312, 13443, 9827, 10649, 41367, 16132, 47241, 42570, 32810, 12064, 39208, 34989, 12264, 26131, 35809, 20660, 46321, 9647, 31308, 23006, 9860, 28933, 28980, 21147, 38526, 17994, 21460, 10625, 46447, 48546, 11109, 31475, 26132, 21712, 34624, 36795, 33970, 37213, 9130, 28242, 39846, 8714, 37202, 44403, 39064, 11876, 14073, 31853, 40811, 16736, 22934, 38527, 22305, 42968, 15353, 24825, 48360, 31358, 24361, 43884, 19171, 21377, 31110, 33162, 29528, 35233, 15189, 38706, 24283, 15354, 30081, 7998, 44233, 30505, 39212, 40434, 40634, 44404, 12905, 10293, 11034, 46889, 41737, 24649, 24362, 23495, 34897, 20230, 40635, 15359, 19242, 21861, 40013, 29273, 20356, 8847, 11236, 14750, 15044, 41508, 7427, 8130, 44503, 40382, 8367, 18273, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +80: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 10109, 46655, 9044, 21578, 42188, 11998, 24650, 37600, 23496, 9567, 48239, 16024, 16599, 8131, 36561, 34499, 34500, 27100, 12633, 35916, 22108, 11442, 40558, 29607, 36123, 18057, 42839, 30409, 36433, 15707, 21383, 21059, 35391, 10196, 20897, 14650, 46721, 22795, 22006, 48154, 21862, 31112, 28481, 26315, 47832, 38308, 26413, 35056, 24097, 19172, 13389, 48125, 8220, 38529, 21863, 28204, 9436, 20237, 45823, 42381, 46722, 33412, 31616, 28935, 43573, 10495, 31015, 41747, 32913, 47217, 11533, 20059, 19781, 37947, 44419, 9048, 33006, 36335, 37788, 29909, 41868, 14959, 36124, 38357, 14165, 40110, 10305, 34051, 22460, 12915, 48556, 9746, 36759, 8137, 40230, 18732, 42292, 45963, 11111, 41556, 44020, 20358, 40828, 45642, 11600, 15430, 8318, 46921, 48213, 27492, 19553, 42844, 40231, 41316, 9416, 13727, 9656, 46342, 29213, 36939, 36940, 8138, 45244, 25751, 20905, 37948, 14911, 10142, 16764, 35186, 46954, 35265, 39192, 15437, 44909, 32742, 24416, 29071, 45175, 20515, 26552, 7935, 12984, 36058, 17518, 20917, 38763, 33580, 31117, 22133, 9569, 11250, 33138, 8148, 40021, 43899, 42197, 36014, 35566, 42092, 14424, 9050, 19968, 12254, 45309, 36126, 16404, 8930, 11201, 29116, 9474, 23996, 11955, 43812, 45418, 48219, 8258, 35095, 7599, 11343, 44436, 45828, 48322, 33641, 11415, 21406, 10856, 33405, 17335, 46013, 31626, 41888, 12937, 40256, 25759, 8150, 30005, 21155, 24783, 25994, 26636, 30936, 39360, 36017, 43683, 13465, 47687, 39811, 33586, 31317, 21478, 37207, 48486, 30336, 38808, 23813, 10183, 16714, 24907, 30436, 10504, 9936, 37982, 19412, 9099, 19023, 11362, 36703, 12451, 20697, 21596, 33344, 14916, 39641, 21746, 14214, 20604, 20388, 36883, 25217, 9181, 16489, 39361, 35289, 39642, 20487, 27708, 42475, 21234, 20089, 31375, 29881, 14979, 47362, 7335, 33113, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +81: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 42762, 22335, 28987, 9943, 43150, 12564, 21354, 41019, 23021, 20278, 11272, 12367, 20704, 33406, 45314, 9548, 8944, 7423, 32838, 35840, 11070, 9873, 23598, 28544, 21171, 31133, 27124, 38560, 28904, 31762, 28545, 10162, 25074, 24006, 26164, 23103, 8065, 44646, 8797, 45341, 47072, 35043, 43962, 17477, 31699, 10473, 24509, 36289, 38009, 25717, 11210, 9964, 32468, 34547, 19101, 24574, 26381, 45345, 29125, 36135, 41833, 23968, 28317, 14310, 38573, 45129, 45319, 44792, 40580, 10917, 46126, 40582, 39323, 16699, 13803, 22674, 13804, 27480, 37104, 10136, 14312, 13805, 14314, 21099, 37106, 34985, 41732, 41738, 34251, 48575, 12523, 30916, 13484, 14823, 26821, 33880, 13485, 48575, 21306, 24307, 18825, 32875, 37713, 28444, 32190, 24857, 44234, 7630, 16122, 25578, 38674, 17393, 23576, 16216, 36491, 16594, 40551, 8989, 30495, 21849, 13015, 47970, 14819, 42081, 20110, 34452, 19810, 43096, 19856, 10051, 21437, 26872, 32438, 28445, 44793, 26855, 15735, 32439, 9645, 21438, 9646, 45302, 16535, 21453, 26877, 47333, 26880, 16291, 40825, 27493, 27364, 32730, 43376, 40192, 22453, 22270, 28979, 42645, 27250, 34307, 16597, 27105, 47189, 21865, 44745, 27732, 22852, 25129, 15432, 40195, 27411, 8983, 13380, 35856, 15737, 15009, 8987, 18300, 10918, 22075, 18301, 23109, 42419, 24096, 29355, 15163, 27680, 13442, 39513, 25020, 30851, 20101, 21373, 35129, 27007, 37030, 30410, 16473, 47819, 35057, 21384, 24826, 31686, 13106, 25273, 13456, 15708, 20242, 43335, 11842, 7270, 24417, 11428, 27765, 47821, 11956, 34920, 13955, 21235, 25193, 25194, 28905, 38851, 13621, 19679, 14476, 14477, 14478, 15039, 21626, 11195, 46496, 14940, 28047, 46789, 15160, 14941, 30101, 14946, 22393, 18733, 22400, 15646, 12738, 30140, 31066, 40578, 23001, 36988, 7513, 11129, 19337, 12542, 17212, 17216, 45434, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 53593, 0, 0, 0, 0, 0, 0, 0, 53601, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +82: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 12587, 13094, 12589, 32566, 32567, 11381, 14806, 31406, 42890, 19338, 22439, 31106, 12069, 11146, 38217, 19342, 12387, 40506, 18455, 37567, 22076, 24104, 44954, 25015, 25461, 45490, 15738, 11423, 15164, 11131, 32149, 13100, 33473, 27681, 25252, 47140, 29356, 8884, 20868, 20869, 29441, 24343, 33474, 8885, 10004, 21339, 16500, 16049, 12630, 11425, 23151, 22885, 14010, 14382, 46878, 34696, 32288, 33355, 11687, 22675, 20877, 16872, 11688, 16873, 22394, 14011, 19744, 36430, 21346, 25747, 26412, 45498, 44743, 12117, 41165, 22679, 23426, 31007, 33356, 11426, 16541, 20350, 12119, 24109, 36310, 14751, 30271, 10013, 30511, 11427, 48126, 15751, 37542, 9077, 19364, 13927, 31645, 33570, 13577, 20359, 19769, 9078, 41551, 21866, 19199, 34076, 20243, 13945, 13728, 38422, 16543, 15433, 34072, 20364, 15897, 12186, 22401, 11429, 11330, 10027, 37128, 25995, 24136, 29668, 33498, 29961, 22835, 20689, 16518, 31273, 22157, 18479, 45652, 47906, 24682, 21905, 29728, 25494, 16899, 20705, 16900, 20394, 20395, 36038, 19202, 19857, 20409, 43178, 20410, 47074, 9965, 20322, 27819, 24254, 47525, 24330, 41488, 32287, 7861, 16125, 19934, 38576, 26599, 25016, 21184, 22757, 40082, 46790, 13440, 47535, 29058, 20870, 32030, 33733, 42919, 47390, 27839, 24345, 21185, 23797, 23798, 22004, 22844, 42017, 37447, 40011, 27964, 23062, 20878, 25022, 17581, 34297, 22680, 21193, 15856, 9131, 27686, 10828, 23717, 43885, 43886, 27487, 22681, 41257, 22007, 31646, 25966, 9355, 27200, 10836, 23925, 22426, 27494, 13459, 40890, 40893, 22442, 38606, 43026, 41260, 38281, 34077, 23809, 28063, 25996, 30006, 34362, 19398, 31523, 20552, 10227, 32291, 39812, 43129, 22159, 14457, 21970, 36884, 21906, 12368, 40140, 26613, 41266, 41268, 26201, 24470, 10356, 32469, 32295, 7958, 33712, 45084, 21495, 8033, 16235, 38574, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +83: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 45085, 38178, 40579, 15587, 15588, 7959, 11720, 42894, 40583, 29573, 21628, 36197, 15928, 30325, 14158, 29452, 15222, 16151, 12187, 21583, 16166, 8349, 18454, 8105, 28372, 34424, 14608, 21563, 42638, 45218, 20536, 22547, 20537, 23060, 18078, 39206, 31947, 14481, 16822, 31413, 45384, 23065, 14714, 18095, 44420, 16842, 23246, 19008, 12362, 16898, 24674, 24683, 35377, 13623, 21617, 22226, 39048, 29824, 31942, 42565, 22591, 41739, 8674, 28579, 31968, 34170, 41361, 30888, 28680, 33044, 48306, 33998, 38511, 18967, 7862, 34282, 39049, 37659, 18413, 40083, 37660, 8079, 48309, 47829, 40088, 12337, 26604, 28243, 12340, 19554, 9162, 34726, 9294, 23105, 8699, 9312, 45956, 22371, 25838, 44079, 25907, 38696, 16550, 38351, 40221, 20857, 20858, 38042, 7487, 31710, 46624, 26856, 43518, 37783, 33735, 19522, 32309, 26269, 10769, 21981, 40214, 40863, 21148, 32312, 38597, 19534, 14167, 31617, 38788, 33126, 10174, 37926, 14130, 36722, 24332, 46182, 17274, 24334, 41474, 41410, 41851, 33788, 12860, 45721, 29398, 41445, 31408, 41450, 46879, 9648, 29401, 36330, 24107, 33793, 18052, 36731, 48406, 12120, 14752, 44807, 9657, 44816, 39704, 41748, 24420, 22134, 33420, 12985, 11151, 21584, 21156, 7530, 16859, 41896, 34921, 24433, 10184, 23594, 24449, 41673, 41819, 44881, 34881, 16123, 25125, 32770, 32146, 32147, 14349, 23983, 13573, 39584, 47638, 33121, 9465, 9467, 9468, 9471, 7329, 12311, 44132, 9732, 19509, 44076, 34744, 14545, 34427, 16580, 7675, 14400, 33003, 34290, 34492, 47860, 32131, 34449, 8709, 40869, 20052, 29363, 35182, 19536, 38054, 35183, 13240, 32980, 11820, 22841, 16382, 21835, 25446, 16536, 12590, 22847, 46787, 20750, 46125, 7633, 13306, 22656, 35817, 10813, 34239, 44134, 31835, 30208, 42431, 17496, 34885, 36008, 10763, 23900, 13098, 19339, 24965, 17817, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +84: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 27577, 40720, 26732, 10646, 16021, 40988, 42144, 48076, 17579, 19514, 13147, 12072, 36839, 27726, 18049, 24339, 37101, 39793, 45634, 39289, 42418, 26129, 41411, 26577, 29209, 19198, 42566, 22272, 11104, 25208, 37230, 43381, 14739, 8356, 31588, 31589, 21036, 9339, 15071, 7746, 13857, 14808, 14070, 17210, 36727, 22759, 34826, 30671, 17867, 46627, 43464, 38452, 38453, 10259, 28126, 41217, 38682, 11434, 13479, 38218, 18040, 17818, 38454, 15854, 41547, 22304, 26130, 14138, 15925, 26944, 12244, 30672, 10537, 38455, 15855, 15086, 20753, 17819, 10766, 34003, 28127, 37231, 15341, 42920, 12245, 29210, 24346, 8195, 44797, 16985, 38259, 31154, 38413, 14143, 34101, 21982, 29568, 38221, 28427, 26501, 25447, 32403, 43946, 12865, 47243, 34298, 47326, 36712, 39057, 42944, 30728, 30102, 48090, 16328, 11594, 38047, 40821, 17557, 28328, 15536, 29492, 42945, 39842, 33849, 18081, 27771, 12172, 32150, 21797, 17213, 45222, 37303, 13923, 30289, 29442, 8886, 15170, 41984, 17582, 45270, 17583, 17112, 21570, 43881, 15407, 12142, 47327, 37485, 22365, 16329, 22366, 48574, 9341, 25611, 13381, 28886, 35810, 34891, 39586, 19239, 30735, 14383, 14148, 16705, 45754, 39065, 42670, 25011, 47971, 27578, 27247, 46811, 42282, 19358, 47334, 15887, 34625, 45329, 40012, 17113, 18844, 22975, 18523, 36199, 39422, 14149, 41090, 40636, 16986, 41856, 23847, 42572, 7248, 30072, 33935, 36849, 17822, 40589, 13924, 37514, 17103, 45278, 44146, 13299, 29292, 39763, 7247, 16034, 23066, 41476, 12177, 39847, 8426, 18978, 28633, 18393, 40576, 23009, 13969, 14816, 19750, 28981, 27960, 43803, 17507, 44808, 25731, 30291, 26750, 15891, 29170, 10652, 33740, 24103, 28117, 48312, 17604, 22894, 39851, 39603, 23802, 9079, 46198, 45641, 24875, 7654, 27579, 25034, 35392, 15207, 9317, 17182, 17780, 16078, 34843, 16016, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +85: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 44158, 41861, 16338, 16398, 8196, 17225, 35562, 11500, 43001, 7249, 20011, 36996, 39423, 37601, 24383, 38719, 36055, 48550, 31863, 10295, 38458, 45464, 41477, 13482, 30681, 12806, 31595, 26551, 27862, 16220, 13515, 32155, 23803, 24859, 35598, 45465, 18645, 23793, 33359, 19365, 48364, 38311, 15033, 21207, 18276, 30754, 34453, 37859, 34698, 10199, 14326, 24401, 31249, 7429, 45499, 43804, 28685, 44195, 36565, 23543, 33413, 38739, 37429, 18097, 7267, 46098, 29031, 22742, 47873, 47874, 33639, 12916, 17783, 25130, 7245, 9437, 39705, 37234, 38532, 38249, 12006, 33414, 16405, 30685, 30686, 36206, 12432, 12433, 42454, 48104, 8372, 12007, 11314, 17616, 41479, 30689, 46212, 14668, 24860, 39442, 29771, 33415, 23489, 45500, 43577, 16554, 29247, 46283, 33268, 47679, 28771, 16992, 26353, 41633, 12776, 32206, 10015, 9086, 13352, 23716, 40019, 21722, 36060, 10847, 36337, 7420, 21518, 12441, 22367, 43867, 38059, 28252, 33581, 44536, 46220, 23431, 20820, 17999, 17279, 13221, 47264, 9867, 37517, 29140, 44514, 43344, 45247, 42158, 29168, 27497, 18173, 45140, 11359, 18997, 18659, 18660, 39008, 17566, 19382, 23248, 47190, 37865, 33421, 40902, 18737, 13948, 28782, 41000, 24879, 44537, 33204, 10663, 31316, 41876, 12354, 29570, 9472, 24129, 43805, 45644, 37794, 27535, 43671, 29557, 9319, 23184, 38956, 44538, 20821, 25753, 22943, 45474, 18347, 36352, 42207, 17718, 7244, 40705, 31173, 33276, 43813, 35273, 17958, 40122, 7319, 35574, 26578, 9750, 17161, 22617, 12147, 33188, 10375, 32882, 35133, 37458, 19399, 29420, 38428, 31084, 34363, 15957, 47993, 20822, 23878, 38264, 37503, 35022, 10666, 17462, 35664, 48575, 17117, 35613, 31524, 28791, 17568, 46741, 33110, 28094, 16018, 28109, 13188, 7259, 31167, 36828, 8492, 7532, 7533, 24667, 48412, 46176, 27889, 35207, 35192, 35990, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 0, 0, 0, 0, 0, 54759, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +86: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 12818, 30438, 20774, 10937, 20605, 22402, 36019, 33506, 9606, 19982, 7273, 40031, 30007, 25764, 15537, 16429, 39893, 18118, 19024, 17001, 29216, 39362, 45516, 10152, 40764, 30196, 12674, 26579, 26559, 18193, 24079, 13583, 15538, 36036, 42425, 8263, 43595, 33098, 20775, 27402, 40032, 18401, 26595, 32419, 11315, 29596, 23816, 40036, 19421, 47517, 10245, 23258, 48430, 39904, 34928, 17471, 15382, 24917, 31321, 38831, 11273, 10037, 12456, 17760, 41395, 14124, 48488, 14458, 10678, 18886, 45338, 11402, 11895, 12452, 44608, 37237, 9712, 20780, 42385, 38832, 30790, 17465, 24684, 40773, 12711, 18889, 43433, 30307, 22062, 31534, 41335, 28808, 25835, 34929, 41803, 43790, 12156, 45868, 29169, 47368, 21245, 28990, 19050, 40284, 30798, 14244, 45481, 42606, 34395, 20786, 44923, 7263, 43831, 22191, 23025, 44455, 29559, 12651, 15541, 17816, 13867, 12502, 40406, 33099, 29733, 29849, 43370, 48434, 28908, 12834, 23699, 35681, 19204, 32842, 17446, 39306, 42510, 13939, 29886, 11074, 19872, 21252, 17479, 36471, 10163, 41271, 26938, 9401, 36479, 25932, 19083, 9232, 43965, 28831, 43442, 18373, 26942, 17852, 46260, 24208, 25519, 17178, 28298, 39928, 27808, 41941, 24530, 25869, 25653, 27813, 12483, 10475, 30059, 29854, 39827, 19303, 27814, 39164, 14006, 22957, 41685, 9971, 43633, 32486, 13037, 23430, 35790, 39943, 22227, 11586, 18547, 19315, 47710, 28849, 39944, 9413, 24237, 10072, 9888, 24589, 43277, 26356, 28302, 45264, 35231, 39040, 45600, 20216, 45265, 47526, 23640, 28862, 28296, 23687, 25608, 37841, 18910, 43313, 31837, 34980, 28877, 20226, 18911, 40427, 43315, 28236, 37123, 37124, 13889, 22549, 44740, 21455, 29908, 45088, 11721, 18147, 18913, 44798, 14071, 17022, 23357, 11722, 36824, 37027, 37844, 26309, 17024, 32379, 32643, 25254, 16471, 17025, 35811, 17026, 37029, 44147, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +87: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 17028, 43396, 19173, 30369, 44414, 17226, 44809, 26318, 32176, 44422, 31619, 17030, 11341, 37866, 44818, 32178, 22900, 30373, 44829, 44830, 41532, 37053, 37068, 37069, 37129, 26293, 19037, 43180, 18591, 26236, 26254, 37098, 41490, 37099, 36790, 34068, 30322, 25952, 23002, 41409, 45303, 37843, 15878, 44481, 38405, 16749, 29828, 42640, 12699, 30891, 30892, 46439, 47852, 12543, 30850, 39290, 33471, 23107, 10175, 30489, 28755, 27840, 19344, 20000, 46795, 46796, 7842, 41255, 42921, 31560, 26945, 22273, 32733, 37249, 14611, 8217, 8218, 35879, 22454, 18522, 48540, 22760, 8403, 21340, 12895, 21273, 19734, 23003, 12861, 21274, 20098, 35911, 24347, 7712, 38584, 14843, 47772, 30167, 7866, 36053, 23291, 31953, 35979, 46634, 37336, 15625, 30103, 13042, 16551, 28474, 35820, 29686, 21440, 42078, 15062, 7594, 25958, 31794, 28014, 22657, 16284, 41220, 7678, 10708, 10317, 25255, 47540, 15408, 18082, 46880, 11440, 23410, 25711, 25712, 25842, 7595, 12266, 29443, 27725, 40516, 13445, 19751, 17709, 26175, 11618, 10772, 23988, 15555, 43321, 18053, 13774, 46129, 15190, 16706, 42183, 13970, 13971, 16827, 9776, 42021, 43391, 14411, 16288, 44803, 13197, 40091, 22738, 33663, 34439, 14152, 9042, 13045, 17882, 41418, 22976, 12239, 22373, 12547, 22396, 17409, 28365, 7426, 40469, 39604, 44903, 7893, 15103, 7716, 43003, 43524, 17307, 40880, 11443, 31509, 16079, 7251, 8275, 14632, 32313, 43889, 22310, 19954, 12908, 26581, 23776, 21985, 10545, 33483, 21109, 46200, 25035, 25036, 9356, 10554, 18395, 9357, 34199, 41258, 16990, 21442, 42422, 28686, 12777, 44516, 9365, 41426, 32207, 35455, 29773, 31620, 37605, 21875, 26340, 46506, 22796, 10989, 13391, 12288, 36012, 7430, 9453, 11242, 8276, 22462, 46725, 13976, 43027, 46726, 43028, 29510, 19375, 47820, 30525, 33244, 21876, 28487, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +88: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 22897, 22694, 36057, 23294, 28584, 20113, 13777, 21152, 15756, 44517, 14168, 29609, 16476, 37108, 24098, 14663, 41457, 31115, 23295, 7457, 33875, 14023, 28377, 37007, 10571, 43345, 19147, 8468, 24784, 16993, 13222, 47680, 18061, 8006, 8007, 44266, 12782, 26827, 20823, 32897, 42458, 16108, 22444, 48160, 44267, 18738, 14182, 42200, 41877, 8049, 11626, 26964, 10180, 13664, 37362, 43531, 15015, 47219, 21068, 21114, 17815, 15764, 11475, 20248, 30127, 23992, 39806, 18717, 24083, 13749, 37547, 41001, 19799, 19582, 23015, 43684, 35675, 10585, 43906, 22405, 35274, 35275, 34209, 27391, 35689, 38283, 10586, 37054, 36066, 32328, 47193, 24435, 47194, 7939, 33095, 45411, 13780, 36533, 38627, 46601, 41262, 15959, 46464, 7321, 16155, 41652, 22468, 36534, 44831, 38154, 40257, 25585, 17139, 23766, 10153, 29617, 8299, 10428, 26006, 25916, 29180, 31126, 26980, 27890, 47647, 34770, 34562, 25803, 10741, 26699, 8779, 21410, 9675, 34660, 47005, 46078, 22492, 43819, 13068, 10451, 46747, 39107, 16997, 31241, 21227, 12947, 33643, 28069, 11959, 41897, 35693, 45602, 31034, 31214, 24836, 38078, 47789, 31280, 45604, 40765, 33590, 33591, 7700, 30339, 23022, 13427, 14505, 32345, 27919, 13862, 13863, 48471, 12948, 34084, 14040, 14044, 35936, 12742, 28007, 14869, 18752, 35937, 12242, 42465, 47592, 20396, 7610, 31221, 19437, 31285, 22746, 43181, 29804, 8559, 13075, 20492, 42428, 43832, 41195, 35944, 23666, 21915, 18526, 12573, 32485, 31141, 41272, 39666, 39033, 17736, 7338, 41439, 12621, 17480, 32904, 21253, 24008, 23133, 25870, 41686, 35962, 38019, 18528, 25719, 25720, 32985, 24532, 25173, 32487, 9972, 41283, 41703, 23969, 7740, 37559, 34271, 32532, 33175, 47734, 47735, 34004, 42568, 26602, 22652, 47548, 47739, 18157, 18165, 23340, 42590, 18175, 40904, 23346, 34464, 26788, 48472, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +89: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 34465, 42608, 46785, 16381, 11221, 20538, 15010, 8118, 45781, 8715, 35386, 32378, 25256, 15415, 12121, 39294, 40620, 40320, 28357, 39315, 23216, 38673, 37528, 44895, 26857, 35238, 13921, 13922, 42439, 31642, 37531, 16292, 16293, 30763, 27228, 27229, 43427, 19231, 10453, 12228, 45562, 36490, 35855, 15083, 16579, 42141, 41982, 17395, 15825, 34096, 36152, 35857, 36947, 41724, 8352, 42641, 22960, 19937, 13940, 18457, 23102, 45131, 19939, 7639, 14294, 24651, 18637, 12766, 41733, 29471, 22003, 30496, 28211, 15041, 40092, 14906, 13016, 32170, 23173, 48293, 18642, 30736, 22378, 45637, 8197, 42972, 20511, 36244, 45407, 8211, 38720, 18812, 14716, 13110, 41382, 8247, 13056, 7600, 33753, 38282, 17108, 7601, 38628, 7602, 20518, 24675, 13954, 45073, 20519, 34386, 14919, 19280, 8592, 26237, 14008, 29076, 29049, 13324, 28196, 30893, 20095, 35667, 21543, 29093, 9823, 17492, 39324, 14559, 19686, 34846, 32809, 14665, 37768, 17865, 47714, 15402, 26502, 12334, 32581, 15087, 21372, 41610, 17149, 38244, 47142, 29238, 13679, 19735, 22761, 47208, 42146, 21187, 45089, 27567, 15072, 10647, 44959, 47716, 28942, 41852, 28128, 40372, 14844, 8357, 44215, 37404, 14942, 37663, 14628, 38516, 44488, 16750, 13683, 7679, 28471, 47302, 47861, 46091, 12173, 28201, 44898, 36965, 39419, 46717, 14059, 27028, 27842, 30406, 8413, 33850, 31409, 14060, 17585, 40822, 14409, 46499, 27630, 7868, 28015, 15089, 25257, 48081, 48082, 34247, 32441, 33477, 41985, 26631, 21025, 16331, 34986, 40553, 37933, 47972, 21841, 33478, 30033, 32592, 42184, 13446, 20470, 34497, 19537, 15556, 39796, 18416, 21954, 20582, 16289, 23848, 20107, 20108, 42671, 28684, 46720, 19361, 19366, 39595, 17789, 16707, 22278, 22964, 41857, 27761, 25025, 29539, 14153, 44148, 41623, 9829, 33858, 43323, 34192, 16828, 32196, 47973, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +90: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 35052, 37784, 17883, 37478, 25748, 41505, 32500, 20583, 26222, 30083, 39605, 33741, 24287, 10546, 40223, 26751, 15104, 35563, 26955, 37940, 22688, 11559, 11560, 36797, 28695, 40524, 28245, 44246, 28138, 30272, 28433, 21958, 33865, 46902, 17227, 12909, 47720, 14075, 30049, 37215, 39606, 27489, 38459, 41624, 38534, 7252, 41630, 44247, 34999, 44248, 37452, 24384, 39427, 21650, 32134, 47775, 30415, 39430, 47875, 13392, 10110, 25972, 7288, 14062, 14063, 25752, 27448, 11798, 30292, 21723, 30193, 9417, 25286, 37606, 8834, 39866, 34558, 30687, 18861, 14578, 38334, 32943, 35919, 14669, 14670, 20906, 36496, 28488, 32209, 21380, 19124, 21288, 30924, 13051, 40562, 18335, 37544, 23502, 8451, 43346, 11013, 28407, 15434, 21391, 26319, 7458, 23583, 23296, 43404, 41512, 21651, 24402, 13021, 39431, 18396, 18468, 43578, 9923, 33943, 36760, 12552, 42294, 38618, 28292, 11561, 20060, 36941, 40905, 44539, 37867, 12928, 32776, 27012, 12355, 32916, 31482, 18862, 38362, 31022, 11476, 27539, 15439, 21027, 13729, 42739, 47220, 26965, 18739, 27450, 7389, 43579, 41002, 20824, 37797, 27041, 44910, 46530, 31803, 34348, 40246, 37411, 24785, 26901, 32453, 34908, 29911, 38061, 37456, 11882, 18176, 7579, 20918, 8008, 40745, 36942, 16773, 11158, 42208, 29870, 38959, 44832, 43786, 32668, 32883, 10667, 25481, 27016, 29325, 7580, 26504, 16298, 23249, 31525, 20086, 33239, 46351, 44833, 20825, 32676, 27741, 43590, 19583, 35278, 28713, 39453, 36170, 29406, 23726, 28382, 7982, 7322, 29871, 30052, 43131, 29981, 44584, 23928, 41069, 26629, 42599, 46017, 22515, 43820, 28593, 24160, 12819, 16783, 41577, 21159, 47648, 10154, 45517, 17193, 28458, 23881, 27787, 46177, 18353, 18354, 7603, 28459, 31215, 26580, 30031, 16362, 38549, 31322, 37417, 45929, 27543, 39459, 39460, 27908, 24919, 24685, 18487, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +91: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 16789, 12712, 46755, 40775, 42604, 18473, 38833, 23259, 32504, 38834, 41905, 9944, 20610, 27020, 14598, 14459, 39375, 43182, 19052, 20787, 15491, 34396, 8560, 33595, 35474, 31222, 24762, 18592, 40407, 28720, 13428, 43183, 9476, 7339, 28696, 28909, 26506, 36680, 11075, 21254, 11651, 44335, 30056, 32707, 32843, 28209, 41591, 35845, 43619, 31142, 28724, 45015, 43698, 27460, 8346, 26507, 33961, 40574, 28615, 13626, 25576, 44783, 23674, 41942, 34748, 25375, 20739, 28697, 23676, 30981, 43634, 34751, 19105, 32250, 27358, 24246, 26238, 41704, 47486, 23682, 48150, 20859, 22071, 22072, 22815, 45162, 26503, 48117, 12063, 35529, 15165, 8113, 47966, 40007, 40430, 27225, 34992, 35812, 7963, 19745, 16332, 29051, 41180, 44141, 47663, 17121, 26223, 35532, 28326, 27580, 11799, 30925, 34559, 9543, 41427, 47994, 28540, 15126, 48007, 24161, 41196, 9287, 32844, 28193, 28836, 28837, 43635, 26239, 27443, 28885, 32731, 35666, 16815, 45807, 31712, 44396, 34437, 7375, 36989, 35111, 37572, 32805, 42273, 17868, 42647, 21342, 47810, 27370, 47499, 12545, 17875, 48152, 16596, 47328, 13347, 37597, 42656, 7994, 34186, 34187, 10988, 33933, 22683, 40993, 34309, 44149, 18643, 42693, 36669, 34252, 39596, 16137, 10547, 32388, 16143, 39852, 45292, 45758, 8001, 17154, 41862, 39853, 19955, 33938, 10405, 32659, 18809, 27377, 22853, 23037, 8927, 35256, 9438, 45332, 19783, 44750, 19784, 43405, 27380, 22856, 31621, 17714, 46347, 20374, 15440, 28894, 9051, 18576, 27042, 31568, 17241, 44540, 34205, 28895, 21218, 28897, 46984, 44438, 8010, 23039, 28898, 31571, 27891, 9796, 21895, 16545, 31574, 18119, 38636, 24909, 34216, 28900, 45830, 33950, 37989, 40197, 23040, 19038, 24920, 22343, 18593, 43211, 42783, 8025, 31497, 10996, 8027, 14994, 12071, 13802, 34982, 41292, 12603, 26173, 13807, 34448, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +92: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 30210, 14948, 47641, 15105, 33794, 22689, 20471, 20478, 47644, 38056, 48470, 41320, 34646, 13822, 12618, 39986, 20860, 33723, 14350, 14351, 14352, 15545, 20096, 34486, 10391, 33675, 33676, 27784, 15540, 10141, 24996, 39534, 39535, 23366, 43982, 37699, 43983, 24989, 24990, 42178, 26738, 37704, 37701, 37702, 15547, 42179, 14016, 23244, 47191, 21586, 15647, 16412, 15648, 37180, 15660, 15661, 34094, 43460, 10762, 22559, 28472, 21145, 37929, 28739, 21708, 29859, 9714, 39053, 8316, 21630, 21047, 36512, 31954, 36429, 21048, 38416, 13140, 34106, 34253, 30109, 19367, 40224, 46403, 40225, 28482, 45906, 38723, 37941, 26676, 14064, 25818, 30121, 36438, 14758, 34583, 40247, 37042, 26149, 26155, 39017, 9717, 26159, 21907, 40285, 21929, 22066, 24942, 22216, 34608, 39178, 10314, 37246, 28567, 33468, 37445, 39322, 24336, 14133, 18968, 18969, 25610, 42906, 30668, 32574, 38581, 17299, 33843, 44397, 11130, 35444, 30669, 32575, 44960, 7844, 42274, 7488, 41446, 38585, 20873, 14136, 19516, 30900, 14845, 37574, 30490, 9695, 31000, 30491, 9826, 21040, 31948, 15773, 39587, 7592, 23578, 12604, 7640, 48543, 48544, 42079, 21842, 15743, 22658, 16266, 41181, 30169, 24353, 36632, 31956, 41617, 15172, 40696, 20050, 25438, 37337, 29752, 7596, 12267, 23111, 44965, 31957, 18314, 30225, 27631, 7446, 36633, 25258, 10709, 30105, 13383, 17305, 23152, 40697, 26862, 36843, 41182, 42947, 8710, 17592, 7649, 26444, 14154, 15417, 41300, 13198, 25961, 14302, 14317, 15557, 32171, 13447, 42675, 28019, 34193, 7379, 37850, 18567, 46890, 27375, 24284, 19754, 36850, 37851, 44150, 30845, 39214, 24285, 42185, 20756, 46507, 26224, 20584, 14076, 14077, 44505, 40093, 9297, 31361, 32380, 14955, 14956, 28336, 24288, 44010, 39607, 32660, 12606, 33866, 10548, 37032, 16080, 22311, 15861, 39220, 43398, 44415, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +93: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 23777, 22491, 23804, 23497, 39519, 32314, 22797, 10969, 10970, 35719, 25132, 18464, 21654, 23503, 30526, 27644, 23297, 23298, 48315, 16477, 11954, 41458, 41459, 15775, 26320, 26321, 24082, 22117, 13930, 46519, 16994, 43406, 13393, 17232, 46520, 37949, 39968, 29774, 41558, 35058, 20908, 8248, 48316, 22898, 13394, 45908, 16478, 43407, 47983, 45577, 18740, 44268, 37525, 42039, 14968, 31892, 42040, 36338, 42848, 46959, 34349, 45294, 42295, 14183, 47576, 22445, 26182, 41759, 27013, 17242, 19385, 19386, 18661, 36761, 34080, 26966, 31118, 38619, 44269, 48162, 23586, 22665, 41643, 41644, 37957, 48163, 9787, 35459, 32669, 22610, 31483, 44270, 30548, 25800, 37055, 13782, 38793, 38285, 9571, 12556, 32677, 20932, 22406, 25482, 38629, 35066, 31266, 47995, 37868, 8259, 12986, 12092, 31085, 43907, 28794, 12093, 19708, 34210, 33012, 35100, 48176, 20555, 24910, 22517, 10032, 13246, 9693, 13332, 37013, 25805, 46080, 45920, 45921, 7534, 9608, 31987, 31178, 11961, 48425, 12613, 12614, 38964, 44585, 29553, 25635, 39815, 9718, 9101, 31490, 20611, 41581, 23819, 45979, 25148, 24921, 24922, 21121, 12743, 14041, 48473, 20781, 16901, 42233, 20612, 42234, 22172, 45869, 43184, 41197, 28350, 42497, 42498, 42774, 28820, 39547, 19610, 40296, 22670, 38836, 12963, 7611, 48432, 37826, 42784, 32708, 12622, 25443, 20982, 44456, 45019, 43497, 32895, 20993, 24492, 16799, 25655, 25656, 12998, 32719, 38912, 21782, 9973, 43770, 23168, 41688, 37834, 28361, 32251, 10275, 11936, 26240, 13006, 13007, 28852, 41706, 41705, 41840, 23220, 41841, 11324, 23000, 11325, 47238, 18700, 21275, 41294, 10236, 10237, 25070, 16120, 48530, 31347, 21834, 16187, 21839, 38414, 30399, 30400, 9830, 31893, 31911, 19680, 42817, 34978, 7632, 46629, 46092, 39797, 42695, 21149, 41368, 22005, 7655, 41385, 21090, 15157, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +94: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 45217, 8393, 34278, 9337, 13307, 34713, 14452, 28753, 34097, 14809, 29264, 46797, 38691, 18307, 12423, 37845, 46065, 36122, 12268, 27843, 29537, 29265, 36693, 9070, 24654, 46881, 47309, 9124, 46882, 12906, 27854, 42973, 42974, 30110, 30855, 21983, 32813, 34714, 12275, 46593, 34803, 31362, 46331, 34113, 32389, 38948, 7894, 12283, 16757, 11035, 30122, 46072, 33163, 37545, 12289, 37860, 10144, 33416, 30530, 45503, 17031, 26902, 13665, 18004, 46599, 40746, 27386, 37869, 38363, 15246, 43062, 7903, 30128, 13225, 16156, 29326, 18814, 36172, 27394, 20087, 36274, 18877, 47167, 33507, 26701, 28071, 8780, 17036, 45518, 28072, 7906, 46081, 21356, 10038, 15294, 47027, 18127, 14460, 11403, 8516, 8538, 46053, 27418, 31286, 9912, 14870, 27134, 7911, 11076, 27601, 11181, 20973, 39557, 23622, 15702, 30099, 28629, 20097, 9037, 9041, 40554, 15716, 42140, 18636, 44136, 43949, 19704, 16725, 29825, 36723, 45564, 16726, 47715, 27783, 31685, 8406, 31501, 13890, 11398, 16820, 41475, 7778, 21043, 40856, 25840, 38517, 47717, 22933, 43570, 12866, 29445, 13043, 41414, 27568, 16050, 11690, 15349, 36845, 29399, 14741, 39743, 42833, 46891, 36616, 46892, 40638, 13688, 48552, 39856, 37033, 16838, 22936, 26753, 36755, 44092, 9298, 9043, 10630, 23504, 8452, 19556, 7385, 34638, 22509, 43810, 37409, 35059, 34639, 31671, 44542, 44423, 27572, 35134, 9662, 39708, 14761, 21587, 14202, 16774, 25586, 33423, 24669, 23727, 35135, 46985, 9373, 31674, 21598, 21588, 21160, 7535, 23383, 25767, 43538, 24998, 12307, 26008, 43132, 11171, 9945, 37070, 34931, 40402, 27574, 10185, 38550, 14774, 16728, 22951, 23027, 8561, 31223, 40298, 25196, 25197, 24943, 25872, 19892, 43771, 39395, 36747, 43853, 24248, 36749, 43459, 41291, 41607, 36751, 12799, 29288, 20348, 18915, 28202, 18918, 16186, 28681, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +95: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 22377, 8700, 42909, 30722, 29012, 14903, 21798, 41741, 42977, 45408, 8517, 42889, 42560, 14379, 33120, 34284, 14380, 34351, 34364, 16121, 13145, 43461, 18292, 15158, 17864, 38407, 37167, 10700, 20539, 7713, 33932, 12896, 46009, 22083, 36155, 15350, 12867, 27252, 39420, 18150, 10217, 29060, 21374, 46399, 42696, 27336, 32172, 37541, 33684, 33007, 40995, 21386, 13111, 46011, 20544, 31210, 29610, 12434, 31213, 8469, 8470, 33801, 12442, 20262, 16301, 15904, 14405, 8493, 22837, 20271, 8916, 39915, 12457, 17002, 20557, 17942, 27284, 17013, 37558, 22241, 19723, 19725, 16748, 12496, 25959, 25960, 37157, 18993, 46961, 19012, 19013, 42775, 42776, 42794, 42795, 44945, 44947, 33469, 40511, 38180, 36841, 41858, 41859, 44506, 10653, 9439, 8773, 13112, 8928, 29612, 43908, 29993, 46018, 43756, 10698, 10812, 47853, 37403, 19517, 14642, 47144, 42926, 37716, 10316, 8360, 12768, 25260, 15175, 37730, 46501, 11868, 37731, 21375, 12276, 38709, 41370, 17774, 42024, 18505, 26176, 18054, 37735, 10626, 46904, 40812, 21387, 37034, 11797, 47135, 23498, 11801, 12681, 29274, 39003, 13400, 19787, 10145, 46924, 11802, 47255, 23505, 44543, 40233, 21062, 20365, 34352, 20061, 8725, 18741, 15441, 41321, 37958, 29408, 42211, 37808, 38796, 46537, 30008, 36371, 12692, 46544, 46553, 8898, 12693, 10939, 10341, 20707, 19053, 20718, 18894, 26992, 25741, 39725, 8072, 32100, 40369, 40465, 8394, 42891, 23901, 32534, 12591, 13343, 15574, 19736, 32551, 32537, 10080, 35978, 36247, 36248, 15617, 30716, 34285, 12070, 46872, 37769, 26734, 38684, 14453, 43571, 36559, 27632, 38219, 47146, 10919, 38593, 19518, 38518, 39058, 20001, 43943, 37664, 11727, 35048, 23004, 44490, 8702, 46873, 30492, 11994, 10395, 35858, 37250, 31002, 28683, 19141, 40585, 28953, 23088, 39328, 40373, 22505, 18084, 22421, 14907, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +96: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 18504, 35860, 35089, 38519, 29228, 10192, 11424, 21843, 42950, 7996, 10218, 27633, 29494, 48545, 45596, 42111, 21851, 7869, 29068, 28329, 46502, 29266, 9346, 36694, 18321, 18315, 21852, 12174, 24655, 34898, 11032, 12902, 12277, 42657, 36993, 44003, 15094, 19539, 29575, 40555, 44901, 28476, 16581, 15176, 39059, 8417, 43947, 31410, 41112, 11731, 9002, 18804, 40864, 11226, 8418, 34627, 38710, 35885, 43882, 48212, 13813, 27958, 46806, 42951, 34312, 28455, 41302, 34313, 39071, 23849, 17790, 23067, 27966, 46813, 40096, 24779, 36618, 18806, 13200, 17508, 22820, 16829, 17791, 38711, 20662, 34633, 34902, 18090, 31798, 42112, 18987, 18919, 10831, 20012, 42678, 40590, 16584, 25212, 18846, 48127, 40871, 10776, 33677, 29084, 17778, 14295, 22685, 13449, 36516, 16144, 32173, 38724, 30856, 44968, 29577, 22741, 12677, 18988, 14159, 40058, 36932, 41550, 22397, 9649, 28367, 45169, 26746, 43894, 43890, 44747, 29703, 23337, 31257, 44972, 44520, 37035, 21060, 38744, 46213, 25213, 36434, 17309, 17509, 31419, 36440, 9358, 43006, 31114, 18939, 38725, 8134, 26632, 42583, 17781, 35091, 32175, 10627, 23154, 38607, 38608, 43951, 24117, 24876, 18653, 11733, 43031, 44973, 24386, 28879, 28370, 14169, 32319, 41064, 30917, 38609, 27692, 11803, 14717, 8086, 12683, 12008, 10200, 27091, 33164, 19788, 16662, 16657, 40563, 12637, 30416, 22799, 36568, 26322, 38764, 22464, 16947, 28589, 31647, 11041, 13858, 17070, 45852, 21290, 37608, 44758, 21113, 19800, 23584, 44521, 19258, 17634, 32210, 35920, 36441, 36445, 28774, 37741, 11562, 18099, 19126, 38745, 10179, 40389, 37861, 18999, 14186, 35608, 48215, 20114, 43900, 13052, 21877, 9523, 10572, 12684, 8151, 31425, 9494, 12435, 16658, 14030, 28380, 45178, 39771, 47778, 13227, 18742, 11537, 31733, 32522, 40472, 9663, 8680, 27697, 48165, 36339, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +97: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 31353, 11053, 8158, 41004, 37799, 15946, 30938, 37959, 44568, 44272, 8471, 41005, 18662, 27702, 8472, 43100, 27499, 43901, 22427, 12553, 43348, 14187, 10418, 26910, 30871, 22706, 44292, 7323, 31431, 41761, 29145, 15679, 45179, 48216, 33093, 24099, 14912, 43580, 23250, 23251, 32337, 16157, 45113, 35279, 35292, 30558, 42212, 35096, 18828, 19584, 16414, 21896, 11431, 28594, 40124, 22407, 46582, 43909, 9633, 41392, 33982, 9171, 22430, 44919, 39100, 19183, 43913, 42096, 24437, 33209, 36173, 43357, 11638, 40922, 31121, 35873, 18718, 45182, 33983, 27767, 16234, 33805, 11808, 29962, 28073, 28077, 17038, 10877, 9526, 9504, 9499, 11963, 27709, 36257, 46020, 36936, 7604, 34771, 26702, 16669, 32346, 45475, 21602, 19039, 22403, 24670, 29230, 35102, 31532, 43547, 26193, 33644, 38084, 37130, 26639, 30946, 33814, 43822, 31695, 22518, 12957, 46756, 25768, 22038, 30448, 30440, 44611, 30143, 24912, 11835, 43959, 10940, 47029, 36937, 10505, 30791, 31988, 29627, 8181, 8868, 31763, 20613, 45606, 10867, 24688, 30148, 23260, 19040, 31325, 10601, 43552, 43553, 39024, 38853, 12458, 35939, 14042, 13827, 13825, 35302, 22192, 9682, 39906, 14461, 14918, 23823, 23882, 10941, 17199, 30800, 39461, 27710, 21357, 24977, 38551, 9529, 22173, 11896, 39658, 35993, 34044, 29739, 43186, 11278, 39376, 28351, 12460, 35996, 21359, 35073, 17361, 20719, 38095, 41030, 13429, 31549, 31540, 21916, 9635, 22749, 40300, 43620, 7613, 26934, 43187, 25198, 33295, 22344, 18510, 27097, 23668, 7340, 25199, 41596, 23401, 39307, 10900, 44457, 43559, 12249, 27212, 7347, 27135, 13836, 30610, 27829, 23604, 27098, 11077, 47075, 29161, 29162, 41592, 42104, 9233, 47094, 23136, 23104, 44126, 15147, 25520, 27602, 10617, 19118, 10089, 27215, 23675, 18514, 41084, 32497, 10093, 19893, 21948, 18548, 33833, 43290, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +98: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 24818, 28288, 27312, 36137, 22243, 15787, 15788, 47753, 15875, 44953, 38578, 20094, 40722, 34616, 32651, 39051, 10535, 38328, 21044, 15882, 20102, 31156, 19237, 31157, 45958, 13457, 30418, 20015, 13218, 45584, 20019, 19706, 46671, 22447, 19571, 23193, 15602, 12733, 45973, 31179, 15907, 20272, 20951, 44586, 20273, 41797, 26026, 18128, 45984, 39130, 39139, 11549, 12318, 32103, 18293, 18294, 18295, 14134, 34292, 36427, 26860, 18316, 24354, 14630, 35595, 8672, 13046, 21441, 33664, 42697, 42840, 33573, 18336, 14675, 41762, 34435, 34481, 9421, 45633, 31838, 23902, 30299, 7635, 12226, 32619, 14546, 32876, 45304, 37294, 46064, 13138, 22538, 44186, 22881, 15667, 33844, 9735, 37295, 16384, 22848, 38583, 12703, 30894, 46714, 32577, 23368, 27066, 33236, 42008, 28954, 7865, 10304, 32511, 38685, 31004, 7808, 20002, 44217, 15167, 7593, 38693, 29683, 46800, 46874, 14139, 12704, 46116, 10540, 19738, 41728, 23089, 8703, 10214, 21627, 38220, 18148, 44961, 22084, 7706, 31591, 12389, 46573, 45132, 37576, 28419, 42928, 34488, 47625, 30276, 36948, 13510, 22550, 46185, 30277, 15344, 29431, 7677, 7574, 45491, 37125, 22830, 26305, 31234, 45215, 18308, 8035, 9003, 46807, 29576, 28240, 9347, 29689, 35822, 42278, 46396, 45636, 41986, 8036, 17558, 28528, 42441, 12868, 10825, 29690, 19940, 27827, 27029, 10362, 41415, 11011, 31958, 27684, 11228, 19944, 15177, 45722, 47501, 12338, 9851, 28017, 28626, 23412, 15351, 29432, 7870, 29269, 25124, 28099, 16574, 31005, 21844, 35707, 7681, 37305, 37306, 7576, 21633, 47830, 29358, 46093, 7784, 7779, 12869, 28526, 21853, 23369, 25713, 20227, 30843, 43807, 23579, 28887, 9072, 45493, 30913, 17768, 23370, 34314, 20889, 46576, 28883, 16193, 16194, 32202, 34728, 12066, 45223, 22567, 42679, 40097, 9650, 18847, 30034, 47634, 34194, 28102, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +99: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 7751, 10712, 16553, 46893, 23371, 13974, 13975, 46814, 31420, 7448, 29013, 46448, 15930, 20757, 22984, 13450, 28103, 36619, 25026, 45638, 26133, 13201, 37449, 22098, 25012, 21805, 46907, 26225, 41506, 38307, 35710, 40098, 28333, 12522, 20663, 46509, 19694, 18848, 39424, 44407, 7253, 37309, 29114, 12125, 9140, 16082, 36417, 46454, 10556, 33028, 33029, 22765, 27009, 29014, 21640, 29605, 20238, 43007, 36798, 33484, 32896, 37602, 40101, 9743, 15012, 20668, 38531, 22312, 21580, 36922, 23338, 19243, 37036, 47833, 30278, 26139, 7656, 17310, 33685, 28744, 21959, 45573, 34634, 42396, 22110, 9318, 37581, 9359, 48494, 42450, 45783, 26134, 35130, 37310, 23794, 35543, 7897, 20239, 18647, 12607, 37943, 37667, 31515, 29664, 33786, 25046, 27645, 27071, 15363, 7768, 21878, 12602, 38335, 7268, 21987, 44980, 48214, 10367, 11445, 20910, 37003, 8222, 28150, 28654, 33002, 48509, 38358, 30419, 39344, 10561, 12982, 33237, 26306, 31687, 15757, 13931, 34456, 13155, 30280, 12877, 46050, 19175, 19699, 36164, 30837, 30531, 29275, 34509, 30932, 25289, 42382, 41517, 22119, 46521, 24861, 16555, 43032, 19254, 33577, 46577, 26279, 9441, 36013, 10332, 8992, 20813, 36442, 22824, 37161, 41749, 12128, 47256, 21657, 36605, 31016, 22753, 7753, 29256, 20814, 25910, 16568, 27778, 20911, 46926, 12399, 27246, 9541, 33207, 16659, 29671, 44913, 29141, 20249, 46531, 21519, 20250, 44275, 41653, 23186, 28274, 17828, 32777, 29866, 37800, 33094, 48294, 41006, 27540, 36340, 28745, 9753, 34354, 48217, 46465, 42592, 41322, 43868, 8641, 42041, 18663, 41763, 45334, 7433, 40749, 41524, 38364, 22653, 11307, 19545, 36448, 23428, 23444, 10419, 22382, 21520, 21524, 37049, 20826, 18863, 16046, 11001, 39885, 13228, 40064, 44819, 31017, 42399, 9754, 45646, 8087, 42201, 37801, 8315, 23658, 38252, 31599, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +100: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9905, 15900, 25801, 48218, 16047, 20681, 16303, 31602, 32678, 32329, 11018, 11308, 45916, 35548, 35534, 9172, 11259, 32670, 7941, 12076, 33210, 22618, 42213, 12611, 46679, 29072, 23417, 20136, 35136, 31933, 15833, 39536, 34858, 33189, 21220, 27592, 14204, 11448, 29148, 33499, 35730, 45728, 36068, 29329, 7819, 12149, 24438, 36174, 18179, 46987, 37461, 18428, 30948, 38253, 31237, 36535, 46353, 14205, 40125, 29151, 32227, 9788, 45767, 15965, 38540, 14305, 33806, 22539, 33807, 34525, 7773, 42214, 8969, 35143, 35897, 33056, 10034, 35577, 21526, 10938, 11387, 16571, 9020, 15019, 34707, 12949, 30782, 35150, 45791, 24759, 10506, 10668, 16670, 26011, 26466, 25806, 48224, 15596, 18356, 45654, 11418, 36146, 18481, 11964, 28191, 27798, 20484, 16784, 43752, 46749, 7543, 47031, 28809, 26703, 10085, 22838, 11138, 33815, 37131, 20698, 27782, 27793, 46230, 9546, 22777, 8781, 20556, 42220, 16314, 30949, 24999, 19423, 43596, 22063, 30021, 30018, 23796, 13868, 39651, 32901, 16903, 45339, 43155, 39462, 10512, 10513, 33030, 28348, 17976, 34933, 17345, 16743, 12159, 48489, 28664, 25195, 46583, 18887, 47748, 20708, 19712, 9597, 12403, 12404, 10342, 9102, 10308, 22064, 15383, 24894, 8232, 15384, 31378, 9103, 12082, 47900, 47692, 37983, 30308, 31606, 13865, 28665, 18429, 40141, 25836, 20709, 11926, 35753, 17362, 31380, 38322, 20285, 15686, 43834, 23938, 28310, 25927, 33597, 47901, 45535, 30311, 11579, 19456, 12528, 33296, 9598, 31658, 31654, 18687, 20842, 31535, 22997, 12370, 40143, 22369, 29847, 7756, 7617, 21917, 42488, 14245, 27101, 35195, 27285, 19714, 35846, 47923, 12623, 40548, 23672, 9402, 21825, 42411, 32871, 42521, 42514, 28550, 38383, 20984, 8973, 28910, 15919, 47076, 47055, 23394, 27810, 20426, 40167, 25089, 35906, 7775, 35200, 25934, 26302, 32517, 36321, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +101: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 29317, 42105, 24064, 9403, 34548, 45342, 28671, 39558, 22356, 19208, 24537, 23465, 18632, 43714, 25873, 25722, 30976, 30977, 45343, 30982, 23624, 39396, 43636, 26998, 32488, 9916, 38295, 11930, 40179, 33834, 26387, 22363, 27313, 10696, 45346, 26243, 35908, 48404, 24592, 13008, 37476, 12532, 20747, 22244, 23684, 24620, 28314, 46623, 16871, 16831, 30424, 41341, 30297, 30298, 34429, 22564, 43944, 15576, 42825, 16130, 15620, 7809, 14660, 46594, 30227, 12980, 22850, 27687, 38600, 16472, 17606, 9654, 40015, 27339, 11238, 15936, 12807, 40891, 20766, 27694, 10412, 21585, 33876, 13946, 44425, 10841, 7527, 7786, 40892, 20767, 13947, 24752, 28785, 8453, 10181, 13025, 13933, 43065, 15675, 33166, 22666, 41879, 13859, 19387, 36970, 40022, 13934, 20691, 21402, 42047, 39243, 27703, 34655, 7274, 31274, 7275, 46586, 12826, 46471, 15129, 34669, 24925, 31999, 40622, 42867, 20720, 33598, 20721, 47924, 43212, 24763, 8577, 24223, 40050, 40051, 38179, 41178, 30499, 30514, 45784, 8931, 22120, 45787, 23729, 14719, 7816, 7820, 23599, 44469, 23632, 38040, 13524, 34005, 24993, 20055, 18167, 40113, 20062, 44430, 46354, 20776, 38374, 36678, 13557, 21092, 10816, 43386, 15352, 31158, 45904, 32032, 47864, 45909, 13746, 12131, 34909, 40398, 47885, 47902, 31536, 25155, 47925, 11282, 13765, 47527, 14609, 10009, 17407, 44225, 34110, 29541, 44004, 27032, 29403, 30515, 45846, 26818, 26140, 29543, 29710, 25469, 15107, 14651, 41065, 21291, 21292, 28536, 48317, 46139, 42849, 25483, 33695, 20375, 44294, 42858, 30576, 47056, 14463, 29969, 14464, 45883, 23031, 35505, 44362, 38449, 19726, 19756, 19790, 19260, 32638, 12420, 21565, 46792, 45437, 40084, 36612, 41293, 40852, 15535, 23425, 15703, 17304, 35818, 12897, 40723, 10007, 34181, 23110, 42012, 34188, 37772, 27634, 27635, 37286, 11470, 38521, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +102: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 45094, 8121, 7489, 45569, 7845, 20876, 23292, 34006, 18317, 14645, 17503, 16874, 10108, 40990, 27727, 19119, 14813, 31561, 18085, 42953, 38697, 40377, 41618, 45570, 14646, 35915, 33971, 21854, 42025, 45330, 9007, 40468, 43780, 41116, 30228, 46400, 25265, 11472, 17505, 27033, 48505, 27855, 8716, 40872, 19120, 46094, 48237, 34315, 34316, 44499, 14747, 13202, 26866, 28576, 10176, 38152, 13386, 7287, 9008, 7490, 47336, 25616, 39516, 23115, 36670, 10235, 34200, 18810, 18811, 41093, 23175, 40736, 20669, 21198, 46908, 21199, 33665, 36856, 17955, 41863, 15559, 39766, 33458, 39989, 42451, 45064, 18854, 17234, 17320, 22317, 37610, 39614, 23299, 47345, 38747, 10557, 34071, 9301, 46214, 46215, 38613, 37611, 18994, 17514, 10413, 37619, 36573, 47886, 48443, 47316, 30372, 21352, 38765, 33543, 28537, 38766, 31649, 30693, 21296, 16849, 46578, 43066, 46964, 7463, 37620, 25135, 24881, 10115, 37746, 39991, 45350, 14676, 41011, 16111, 42741, 39244, 45068, 18870, 40833, 27704, 23194, 42384, 43783, 34585, 37971, 34584, 31653, 26912, 28255, 20263, 29095, 7465, 42048, 11477, 42222, 35617, 30375, 27746, 20699, 22410, 15836, 38287, 10205, 30783, 17529, 41898, 24450, 7332, 19826, 19848, 27094, 45355, 40286, 17532, 28078, 27903, 11755, 28601, 46026, 19041, 8060, 17356, 41072, 11346, 24929, 39370, 35997, 21360, 30022, 25156, 37239, 39028, 43188, 19859, 18833, 12312, 42477, 42478, 24474, 35945, 36898, 39998, 14779, 33956, 46162, 17539, 43213, 39780, 40497, 33914, 20725, 8067, 21421, 41929, 7350, 42515, 32850, 34597, 27142, 41277, 42359, 30398, 24516, 10442, 23137, 13276, 24982, 41950, 19316, 25880, 38916, 32722, 25666, 28312, 26436, 26244, 33467, 36138, 41842, 47488, 44931, 44932, 31943, 42432, 16104, 42436, 18087, 17594, 34501, 9604, 9602, 34021, 26695, 9711, 9715, 36449, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +103: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 48442, 9524, 40907, 19016, 43486, 31440, 14837, 29819, 44950, 44077, 32907, 29604, 14848, 15179, 25266, 14711, 32033, 36431, 29085, 36671, 34850, 46455, 23763, 23762, 48408, 27734, 18714, 37775, 37235, 10238, 19390, 30425, 43586, 48172, 37778, 36899, 23775, 23824, 27143, 25667, 28042, 12730, 38044, 27837, 8208, 45676, 34614, 34615, 28045, 47389, 32535, 7637, 30367, 13965, 13966, 12593, 24341, 16818, 19345, 21498, 8353, 40686, 10536, 11682, 33348, 32878, 45240, 32191, 30901, 44219, 15621, 38415, 9737, 33475, 41296, 14482, 38587, 48083, 24280, 40552, 9425, 12055, 32583, 8765, 37300, 12898, 46066, 26739, 10819, 42929, 15592, 16131, 13680, 24106, 30674, 34618, 15740, 36630, 20574, 27445, 37665, 23493, 21548, 26740, 42013, 26547, 27550, 34993, 44801, 17408, 14743, 8080, 20881, 13384, 15828, 42279, 39330, 11197, 11471, 29254, 34493, 18460, 40378, 11106, 47542, 11107, 35049, 7846, 35050, 19523, 38352, 21190, 16285, 19356, 26813, 29755, 8421, 37732, 7504, 14614, 14849, 42954, 15180, 28241, 38698, 18318, 41416, 13511, 40416, 46397, 42149, 25127, 32964, 14119, 26948, 46128, 17066, 46635, 11728, 45167, 48468, 34007, 34494, 45438, 12903, 24355, 25843, 20228, 10541, 35051, 31159, 14947, 45841, 39845, 39337, 22892, 30111, 35824, 38999, 46815, 16575, 39848, 20079, 19949, 16270, 7966, 27856, 42981, 42446, 42452, 34317, 28760, 8361, 14017, 42680, 25267, 9009, 28532, 23413, 17595, 7873, 14483, 47153, 12278, 11621, 42083, 15095, 7766, 27994, 15636, 30408, 32448, 32772, 26882, 33715, 35055, 46291, 39215, 44152, 33859, 16875, 37426, 45755, 28244, 28891, 43891, 12872, 46894, 45639, 9777, 12430, 16336, 9352, 21574, 7515, 15192, 20233, 7650, 14018, 22596, 28213, 47550, 8429, 25557, 9863, 33485, 35000, 11232, 29497, 34300, 16576, 45640, 42284, 10487, 21575, 34318, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +104: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 46643, 25558, 26952, 24367, 32654, 45756, 45441, 8766, 45959, 46895, 25617, 13451, 25848, 34012, 24368, 23581, 43887, 34628, 41309, 34730, 30747, 46332, 30412, 24387, 42698, 39746, 46456, 24388, 33265, 16505, 22441, 8201, 32555, 40016, 7767, 32556, 9045, 47977, 11037, 43008, 11693, 40826, 47399, 20360, 48438, 14324, 14358, 44093, 14419, 16196, 22570, 23853, 45847, 25038, 43331, 42113, 17608, 16032, 43009, 34326, 15938, 45280, 26226, 15212, 20901, 17792, 16882, 36203, 16710, 37856, 23072, 32815, 7452, 7382, 22010, 42699, 47834, 22895, 46909, 31718, 36857, 33178, 33177, 18571, 21718, 21581, 41226, 14020, 47773, 44249, 45331, 48575, 43574, 20902, 25559, 45961, 41421, 32503, 46333, 12549, 30413, 31312, 18465, 16883, 20513, 47721, 41310, 35567, 33367, 46343, 8085, 36737, 23374, 21392, 30270, 8223, 15225, 32944, 36924, 22121, 38748, 23730, 25563, 14960, 30420, 38224, 22284, 15676, 35258, 24827, 31880, 36800, 44097, 26959, 7898, 25738, 29585, 47723, 12918, 40998, 37043, 45472, 7516, 16480, 8454, 12810, 17235, 48100, 46666, 32601, 8141, 16089, 20244, 18654, 37612, 29115, 19960, 36639, 19791, 39867, 26142, 19145, 33689, 9699, 14857, 35061, 27227, 38468, 24120, 24121, 13536, 31565, 43743, 35568, 21658, 36311, 40234, 23341, 47878, 34510, 9900, 14579, 37950, 21393, 24122, 8929, 39297, 15063, 36209, 46928, 23506, 24659, 20245, 47836, 25290, 24131, 30768, 9021, 26325, 11738, 31119, 27451, 30549, 30550, 9455, 16974, 9926, 12686, 14720, 29277, 7936, 7937, 19131, 48167, 10574, 45447, 19573, 24422, 29613, 44546, 44547, 16482, 22323, 13461, 36061, 15761, 37747, 12929, 12132, 14495, 10490, 45970, 30694, 44764, 41765, 44548, 32180, 43067, 33337, 32560, 11450, 24084, 30426, 47839, 15248, 22611, 23513, 48266, 48267, 46140, 16605, 14824, 14861, 33882, 31650, 28495, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 59483, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +105: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 37621, 17075, 25988, 17460, 20828, 42850, 11048, 21808, 21732, 10575, 48511, 24831, 31169, 46734, 11451, 41431, 21661, 8088, 20595, 47887, 47997, 8932, 29614, 13356, 11199, 10116, 27064, 18398, 20251, 16775, 39090, 13604, 31120, 12641, 16886, 13026, 26364, 46672, 32297, 27773, 15367, 16060, 29672, 33582, 42724, 37412, 33338, 13987, 42383, 15455, 37972, 37809, 13753, 20063, 48173, 20137, 42742, 33984, 38960, 41889, 41779, 11344, 20138, 11478, 44439, 17644, 45649, 38370, 29929, 8323, 42163, 19261, 40761, 33011, 42049, 23445, 41654, 8214, 18871, 23195, 21069, 23196, 34914, 14973, 40068, 37414, 46929, 20376, 28074, 26913, 11203, 18345, 18187, 24793, 24085, 36768, 28256, 44297, 44035, 26973, 35099, 41134, 41135, 42093, 46355, 29930, 42467, 19586, 20934, 42468, 11202, 13907, 44276, 48295, 37810, 26974, 36452, 19574, 20935, 22408, 31806, 43685, 32800, 18748, 25761, 23912, 32228, 39715, 30074, 34262, 15603, 35926, 23661, 38158, 44298, 10469, 26114, 21812, 33926, 11294, 8324, 40268, 20068, 43133, 45922, 15283, 29153, 27403, 23734, 32684, 16431, 20390, 21813, 35677, 42304, 46365, 7921, 33384, 44844, 48112, 27747, 35293, 20088, 42223, 20952, 18832, 15718, 14725, 45769, 31035, 26561, 35550, 44845, 40269, 32685, 34217, 46687, 11965, 38163, 36769, 25491, 32679, 36074, 32340, 45792, 34922, 34085, 35739, 22625, 38813, 16422, 30442, 15837, 15838, 35538, 29330, 36176, 15966, 11479, 12990, 29039, 19596, 34860, 16308, 11453, 31180, 9793, 31087, 18507, 26981, 40935, 15785, 15801, 47842, 37375, 31318, 42125, 12991, 20069, 22472, 48449, 12617, 25636, 8938, 47419, 33181, 38971, 19424, 24678, 19042, 43826, 31134, 17077, 15605, 15609, 37133, 18489, 30450, 33339, 11967, 29622, 44115, 18205, 20522, 18361, 18683, 16904, 28810, 43156, 15807, 22521, 16790, 16791, 9615, 26711, 21167, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +106: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 12828, 47729, 23914, 23771, 10429, 11756, 24165, 40656, 31655, 34773, 14506, 36930, 16673, 45525, 35303, 24000, 25922, 24840, 27412, 25775, 10247, 35304, 22632, 11140, 36083, 8787, 26027, 21528, 46303, 45660, 34538, 46027, 26641, 27794, 28719, 42132, 36653, 29623, 47599, 33387, 38856, 32238, 17800, 20151, 11757, 19425, 41582, 31218, 41210, 43607, 14398, 41342, 46761, 31328, 48416, 11816, 30379, 34674, 18482, 23269, 46376, 48475, 45016, 33600, 38857, 11483, 13077, 14434, 15684, 27801, 38562, 31289, 32506, 25222, 25505, 31329, 39660, 32999, 14510, 45931, 37385, 23864, 45124, 34836, 13869, 10517, 36092, 27126, 21760, 10607, 35330, 22194, 22195, 13078, 19055, 19439, 29134, 39820, 37420, 28927, 32955, 47424, 36900, 45608, 14877, 31765, 32461, 17801, 31048, 16365, 25573, 23885, 15809, 11176, 39029, 34087, 48113, 33176, 19627, 13499, 21312, 25928, 20464, 11295, 44856, 35761, 34544, 20497, 35950, 25202, 28994, 43494, 38977, 19073, 33518, 48458, 41078, 10521, 15723, 21764, 48462, 43214, 31542, 30382, 41676, 23943, 14984, 18955, 12575, 19875, 35485, 9288, 30152, 10608, 11211, 47628, 16914, 19629, 21032, 20074, 31659, 45811, 20290, 31226, 12658, 42872, 8842, 35077, 33763, 25203, 24493, 9810, 27144, 43443, 36231, 35849, 27465, 30620, 37141, 8951, 19289, 19885, 30973, 28553, 28913, 42616, 15850, 22482, 43564, 29043, 31681, 41812, 30621, 27431, 46167, 16920, 11489, 19468, 23208, 30203, 12750, 11182, 15995, 27466, 43969, 47105, 18824, 30978, 24018, 23951, 33081, 25939, 24517, 11935, 26209, 27608, 19094, 29196, 25866, 47077, 15816, 13630, 44870, 24538, 14792, 47932, 35202, 24710, 20568, 11188, 31705, 47438, 25881, 41695, 24555, 47437, 10477, 20996, 14269, 35228, 18517, 28845, 44683, 25668, 23567, 20809, 39561, 16807, 21828, 39941, 25382, 43642, 20207, 43509, 44075, 43722, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +107: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 39729, 29004, 9255, 9981, 23633, 21830, 34753, 33837, 37920, 11828, 32255, 32104, 9589, 21622, 44705, 26392, 24610, 11938, 26245, 12536, 22250, 41709, 23688, 23644, 47489, 23976, 24326, 7743, 28306, 44717, 25413, 16747, 31105, 11683, 18535, 40379, 44220, 42955, 30907, 29174, 40732, 10219, 11233, 30759, 22424, 43010, 22111, 39079, 40882, 17564, 44524, 23247, 23723, 23046, 34853, 38749, 7254, 42593, 30427, 11296, 10789, 31484, 23048, 22465, 23049, 22469, 11361, 33424, 16511, 43353, 40399, 40069, 44299, 31129, 39895, 42479, 15908, 38432, 36023, 21240, 29186, 18129, 36458, 18539, 40778, 29561, 39030, 40038, 11298, 33825, 33601, 17202, 11283, 43215, 14259, 44346, 11585, 18552, 46786, 46588, 11668, 9340, 38523, 30500, 9348, 9349, 37515, 21855, 31010, 10717, 33274, 10790, 33280, 47196, 35464, 35465, 24452, 45527, 44321, 24476, 16800, 12251, 14135, 34976, 20099, 46190, 27845, 27846, 42150, 27847, 11869, 41990, 36560, 34014, 12279, 33638, 40883, 41376, 34502, 9491, 22122, 29991, 30865, 31881, 35259, 31648, 45139, 24782, 43068, 15078, 46735, 42461, 9496, 19133, 12356, 19575, 13241, 46366, 45145, 38159, 11126, 8970, 36460, 21241, 33649, 43436, 13123, 21608, 19056, 11942, 43191, 12371, 13717, 20498, 24807, 8975, 13631, 20192, 20208, 34485, 29175, 13744, 47551, 43332, 31688, 43033, 33361, 31366, 22654, 39974, 41386, 13060, 18944, 18945, 16424, 31276, 19416, 43157, 29187, 18950, 13762, 42617, 39952, 38450, 16651, 28011, 27005, 27006, 7286, 21026, 13594, 44587, 8350, 8397, 8432, 29760, 29761, 8440, 9954, 26810, 17454, 9433, 29756, 25010, 19951, 45844, 33092, 28056, 37428, 41312, 14359, 32662, 39523, 21719, 28003, 17459, 31882, 13537, 33368, 35986, 29513, 21734, 13935, 12012, 8319, 33124, 33125, 26915, 33096, 34526, 34527, 37435, 17646, 20377, 35741, 33129, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +108: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 26118, 28006, 26838, 36901, 32757, 10187, 30380, 26110, 45878, 33251, 45879, 27145, 25940, 32105, 13291, 34272, 12762, 27629, 22078, 26741, 30714, 30015, 28198, 30718, 12594, 39329, 11328, 14815, 42018, 28448, 8982, 15194, 33860, 13387, 31614, 30748, 43333, 38727, 17155, 42085, 7383, 41510, 22697, 31622, 41526, 13401, 12443, 26184, 31651, 42097, 45069, 45072, 34792, 34823, 46572, 8986, 43878, 12541, 34793, 23903, 28568, 37278, 14556, 16816, 36724, 46625, 31845, 8919, 45565, 27479, 11924, 18971, 13099, 17297, 9825, 47855, 11365, 37569, 14560, 12231, 38686, 37297, 26735, 31842, 30719, 33565, 30077, 17302, 30895, 38408, 38409, 41365, 34983, 32862, 16190, 20465, 10701, 38410, 37113, 21546, 36031, 46630, 46801, 30902, 27367, 16386, 37703, 21343, 21344, 32962, 22275, 17871, 35859, 32271, 19519, 8704, 8705, 15704, 38245, 47139, 14612, 40586, 22085, 18270, 28946, 30723, 14846, 40857, 40866, 31592, 42649, 38348, 45090, 44800, 17433, 41729, 10396, 10397, 12425, 43990, 13891, 18309, 19235, 30404, 28049, 29080, 26946, 12176, 27481, 27368, 10920, 29381, 8358, 33350, 46802, 29534, 29357, 47770, 45220, 16238, 25463, 26947, 45492, 14944, 29173, 24348, 26310, 9564, 14945, 37846, 18310, 27848, 27030, 34621, 21799, 45241, 37307, 37338, 37339, 17587, 24356, 27334, 42658, 14401, 14744, 43999, 36514, 46883, 46118, 16333, 45842, 41620, 34894, 23113, 21457, 21634, 40209, 31848, 42956, 19945, 47148, 32198, 30170, 18975, 27372, 8198, 45494, 47448, 23907, 43948, 16334, 17877, 15628, 14438, 26864, 34994, 18088, 30106, 11672, 14563, 46637, 35241, 28934, 10486, 25261, 29473, 9073, 30730, 34987, 28477, 21711, 33048, 47543, 34008, 24042, 41113, 22093, 15181, 29359, 27685, 35863, 41987, 19689, 43883, 16656, 8292, 41184, 25612, 25844, 12426, 26441, 40210, 30171, 45495, 21278, 43393, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +109: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 29321, 20890, 42447, 18849, 18920, 45306, 10549, 43326, 37852, 18055, 20351, 42026, 25027, 35006, 19757, 14319, 40519, 15195, 33033, 33264, 46816, 43522, 38463, 39000, 22569, 47395, 20542, 26445, 26451, 7449, 13452, 36432, 27967, 24043, 42577, 27338, 32199, 21102, 30229, 37938, 39962, 40218, 17886, 40873, 35244, 23069, 36200, 31421, 21845, 14356, 47246, 32879, 30112, 41304, 40591, 46896, 16708, 18568, 27729, 19213, 37450, 30857, 29293, 38417, 31960, 25467, 42983, 19952, 21381, 31070, 20474, 20585, 46325, 34111, 47865, 9652, 14413, 18981, 19758, 25465, 10011, 19142, 18272, 28982, 41305, 21194, 25040, 31870, 37944, 46293, 22313, 17230, 7899, 26755, 47868, 44012, 38728, 9141, 13530, 18648, 17896, 43011, 30370, 43740, 23656, 17511, 23778, 17278, 24289, 16052, 15213, 38464, 24780, 11501, 15013, 43012, 44507, 36859, 23808, 17135, 21200, 19956, 10925, 21465, 27010, 35394, 10491, 29544, 39611, 33973, 37037, 23360, 30084, 28767, 17312, 21286, 39859, 33795, 28653, 37000, 43892, 40017, 39425, 36799, 14078, 35248, 37233, 21960, 9697, 36435, 24390, 34804, 35007, 24046, 34805, 36162, 13597, 23875, 23499, 24656, 37857, 38309, 45103, 18649, 12808, 17782, 32992, 20361, 46049, 33266, 15227, 16660, 40564, 34458, 34736, 41460, 11563, 46073, 42456, 22800, 38359, 17236, 37315, 13397, 17619, 38312, 21659, 33797, 24828, 19127, 35723, 47837, 13054, 31426, 12682, 22016, 47985, 38750, 39970, 30534, 16407, 17071, 41560, 25134, 36125, 47258, 29665, 17516, 10111, 34511, 30421, 14618, 46731, 25976, 28408, 21726, 36210, 11804, 24049, 46296, 30123, 14701, 35062, 36570, 29864, 12438, 44525, 28489, 44196, 25977, 15710, 27381, 21394, 25291, 26323, 43409, 12009, 32041, 18506, 44526, 28655, 33878, 8771, 11505, 18101, 44759, 23507, 19176, 31623, 41561, 31077, 36497, 27554, 46820, 43477, 9151, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +110: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 8224, 44752, 38250, 33009, 14671, 31624, 44753, 22664, 19792, 33798, 44754, 33271, 25978, 48132, 13601, 42584, 20367, 27495, 29296, 38751, 44257, 44755, 33944, 33976, 32778, 18664, 47505, 20252, 29094, 44277, 31895, 36762, 32042, 13700, 14496, 45647, 9165, 38366, 38313, 12930, 37803, 38155, 32826, 40249, 9664, 38066, 17620, 15778, 41767, 17912, 41131, 27346, 22668, 26823, 43581, 41768, 44028, 17829, 27555, 34056, 27014, 45284, 19148, 28224, 16850, 10850, 14188, 29298, 26967, 24789, 30770, 30771, 26968, 36529, 11843, 37870, 9473, 37114, 27500, 19001, 27884, 40750, 19576, 29565, 20127, 20246, 18180, 15045, 39709, 43070, 43533, 45971, 34207, 20829, 10500, 18743, 36016, 44278, 8475, 27699, 34120, 37009, 34026, 43902, 21735, 13462, 37158, 20683, 20692, 31896, 41569, 36034, 25632, 19262, 44820, 28275, 7876, 44103, 32221, 47724, 24882, 9927, 39445, 11510, 28787, 47999, 37548, 34121, 26679, 43679, 23441, 23252, 15016, 20378, 40909, 25755, 37871, 15597, 9092, 43680, 30180, 21222, 41891, 36069, 44836, 35618, 44837, 24671, 42299, 27113, 47822, 10588, 22707, 35872, 35690, 37462, 25457, 16251, 33211, 27742, 45763, 34212, 43103, 26347, 26534, 30374, 37811, 24440, 45285, 38631, 38797, 38160, 31170, 45511, 34127, 35281, 7271, 31527, 35137, 45115, 40707, 43354, 32681, 19180, 35282, 35659, 28595, 35678, 34128, 32884, 7258, 29371, 11260, 11152, 29388, 38266, 9572, 27593, 15960, 12987, 17522, 18830, 39101, 48000, 12815, 46989, 40536, 15373, 20937, 18426, 15905, 48109, 36175, 36279, 35402, 8495, 20771, 19018, 16953, 43419, 15800, 25633, 46965, 41892, 33809, 26681, 43686, 11512, 26187, 23697, 26230, 42215, 8934, 35898, 44570, 40690, 18358, 8496, 8782, 47015, 20554, 22864, 33992, 33645, 12788, 27404, 7536, 25919, 18283, 18121, 43958, 10035, 14596, 43823, 16957, 26684, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +111: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 31675, 44311, 30009, 19830, 41465, 10244, 30443, 39020, 19831, 26013, 25770, 25637, 21161, 17040, 11809, 25822, 46757, 15607, 31219, 24138, 41788, 9609, 20777, 11748, 11516, 37132, 29182, 36278, 42426, 38966, 27405, 36076, 27893, 33646, 17347, 24672, 23663, 37464, 10742, 15654, 15020, 41070, 42601, 26704, 48144, 26789, 22519, 26467, 29594, 34662, 46051, 46021, 47747, 40936, 18678, 19229, 20391, 41578, 34772, 24913, 11979, 36372, 42127, 20489, 11810, 43757, 17932, 40691, 34663, 16671, 43689, 39896, 48258, 23316, 40937, 24797, 47016, 37878, 29877, 44613, 20784, 30187, 12562, 19043, 20962, 38553, 29260, 19611, 29312, 37884, 35318, 31040, 31041, 38838, 26048, 39120, 41396, 13914, 18753, 27711, 32997, 35306, 23862, 46373, 11811, 43135, 46304, 37552, 33592, 35940, 10248, 41336, 23261, 42386, 33751, 37071, 47420, 33039, 17762, 8545, 33514, 9946, 9947, 34591, 36895, 30309, 25149, 37885, 33308, 33288, 10602, 21485, 10603, 18490, 20614, 23883, 10343, 15681, 12060, 17977, 34934, 34670, 29599, 17256, 45121, 25590, 17978, 15295, 17533, 17647, 39463, 20397, 33515, 39121, 44739, 25923, 23595, 28936, 44337, 25200, 27512, 45449, 12503, 18688, 45536, 40301, 44632, 24308, 34397, 41198, 25348, 37680, 48037, 43835, 19057, 9551, 24802, 13079, 42501, 7614, 18594, 46377, 9950, 26716, 12407, 12462, 43192, 35475, 29884, 21918, 35754, 31543, 19441, 47916, 24700, 28991, 17003, 21248, 14873, 33298, 19612, 35411, 19058, 11208, 35769, 35075, 13335, 33299, 47518, 23552, 8945, 24701, 27354, 34153, 34675, 27419, 28939, 43704, 43705, 27136, 21257, 30611, 8581, 19876, 17483, 32845, 12035, 38387, 36187, 43498, 43499, 13832, 11653, 19281, 31700, 23701, 22350, 7298, 30347, 47927, 37894, 8946, 16451, 31055, 43706, 8947, 23395, 14787, 9576, 26941, 20428, 38010, 26482, 45362, 26207, 24494, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +112: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 43967, 42134, 25935, 35044, 47057, 43712, 13628, 37764, 18899, 40322, 29342, 33963, 8804, 9960, 27928, 25523, 20187, 30397, 33312, 10614, 16457, 8957, 19305, 39678, 25874, 31608, 17382, 43715, 32720, 24539, 21425, 39934, 43716, 35436, 38021, 40333, 18515, 41248, 47432, 25659, 23562, 13840, 14528, 18253, 23563, 34550, 25455, 43718, 27304, 19901, 24812, 20435, 43723, 14933, 25174, 43267, 20202, 45031, 9976, 12327, 32471, 20318, 23625, 14529, 34787, 44788, 47945, 14996, 33835, 24026, 23626, 11825, 32101, 43854, 31060, 14443, 16685, 22235, 41972, 17550, 43726, 33041, 45373, 26247, 41957, 24238, 27360, 33630, 35909, 12533, 20748, 10073, 43733, 17554, 7741, 47487, 23685, 23641, 28315, 37562, 26255, 41360, 39579, 41975, 15733, 41980, 44730, 19223, 8764, 27583, 16700, 12706, 18839, 39839, 39840, 18840, 17820, 25253, 45460, 47677, 21549, 45749, 40205, 10820, 47857, 45275, 45276, 9538, 42014, 30731, 47149, 14850, 28959, 21458, 38183, 30300, 42958, 25845, 11435, 29694, 22422, 29360, 41621, 22423, 29425, 28052, 10261, 24992, 16877, 22552, 13892, 16702, 40380, 46884, 16703, 16704, 37936, 31248, 8762, 12178, 39216, 46510, 47452, 22662, 46132, 15196, 7684, 40219, 40220, 25448, 47831, 41118, 21856, 36010, 29474, 21462, 29447, 35825, 35826, 9010, 42084, 36825, 33536, 47552, 45757, 13017, 38051, 34195, 24778, 10832, 18808, 47247, 18092, 34847, 23694, 36732, 20670, 40884, 17793, 32274, 25041, 18650, 42030, 40641, 40642, 39525, 43387, 38421, 47250, 42190, 34327, 37787, 36860, 27585, 45281, 22425, 17824, 23876, 39224, 47456, 41094, 46513, 30233, 41552, 18924, 16711, 10324, 18855, 22571, 21868, 14489, 33686, 42453, 18989, 48575, 36144, 21201, 32524, 25042, 38752, 15228, 21466, 40236, 30371, 36738, 47869, 36801, 37583, 17138, 29586, 23764, 41864, 40894, 14961, 10842, 32664, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 0, 0, 0, 0, 0, 0, 0, 0, 61674, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +113: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 18168, 38753, 34512, 17715, 41259, 22941, 21961, 39869, 38754, 41562, 17322, 47742, 22318, 12919, 40237, 19559, 38615, 41563, 26143, 17238, 41872, 18655, 27089, 21727, 12638, 8152, 14863, 25215, 23304, 19177, 37236, 38770, 12013, 38472, 17830, 10266, 15368, 38367, 20596, 11739, 15046, 30129, 31735, 33010, 38771, 31736, 40443, 10223, 41881, 41882, 43072, 22140, 44550, 15782, 32415, 29783, 40617, 15783, 34027, 10201, 33692, 40609, 28656, 16061, 38151, 10425, 17719, 23231, 47198, 13755, 39194, 18872, 15047, 24794, 41012, 40478, 18749, 20693, 20139, 8497, 43587, 47511, 37974, 37116, 33548, 38816, 29097, 29098, 9933, 41573, 21469, 21479, 44571, 27048, 33378, 38074, 45693, 21215, 31747, 32780, 26975, 18673, 40923, 46145, 37812, 14500, 31904, 35466, 42050, 25062, 47510, 20834, 45476, 16512, 7971, 18189, 45070, 28278, 34365, 24892, 8645, 16309, 37219, 36077, 10269, 33508, 14300, 9184, 18817, 40136, 39108, 38638, 38817, 45186, 17661, 17722, 38818, 45119, 40607, 28188, 33551, 31748, 42346, 41263, 27406, 24679, 43690, 38546, 32689, 16162, 41899, 31250, 25458, 38819, 8519, 8788, 11758, 26029, 20155, 34565, 43158, 25776, 29624, 35408, 43159, 36265, 22175, 48185, 45188, 18362, 42765, 47034, 7544, 38086, 25570, 17357, 29188, 32526, 21483, 26712, 23320, 33650, 11943, 45609, 20171, 38859, 38860, 38861, 43160, 40040, 10889, 18761, 10047, 42480, 35946, 32423, 41919, 41343, 31291, 22346, 12714, 13916, 33907, 20621, 14878, 34943, 24930, 44634, 25157, 36902, 33704, 14879, 14511, 41920, 41344, 23698, 27022, 36148, 43196, 21486, 27096, 21435, 20722, 43700, 44635, 43216, 41199, 23605, 35875, 45483, 9555, 35487, 38877, 32358, 48228, 24711, 18956, 47476, 40312, 25360, 37830, 43217, 40159, 46164, 19074, 12211, 28995, 23606, 32851, 39555, 17743, 41278, 21261, 11086, 12661, 42360, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +114: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 17744, 23702, 8809, 32715, 24519, 27935, 8071, 33021, 26210, 23466, 7522, 41284, 23138, 34876, 24953, 24558, 25883, 22218, 24986, 41952, 38920, 40334, 25670, 42524, 9485, 32490, 45036, 23707, 11829, 22236, 10986, 16686, 21953, 10360, 27316, 36140, 23712, 47490, 23689, 25414, 11952, 44733, 46112, 46114, 29255, 46503, 29448, 10488, 44804, 7314, 38068, 17394, 22176, 22201, 15399, 42394, 7714, 13186, 42401, 42176, 48361, 34768, 14366, 29319, 11399, 22598, 45386, 13242, 31181, 43827, 31227, 29952, 7847, 29364, 10234, 20128, 29278, 13606, 11386, 44301, 45694, 8646, 13243, 7922, 9185, 11389, 44118, 44119, 13633, 41443, 10501, 28944, 28945, 30076, 21499, 27962, 35668, 28013, 23799, 32584, 26727, 14615, 26815, 28053, 15745, 38594, 41855, 15885, 8123, 35002, 20353, 16393, 44153, 15890, 34016, 28020, 12873, 30914, 32289, 32203, 48130, 36251, 38729, 26757, 22769, 30927, 38536, 16481, 38772, 24123, 24134, 30294, 19391, 15762, 46736, 8203, 32222, 11511, 13607, 21884, 19978, 20129, 14974, 29914, 22619, 21740, 22581, 11167, 39110, 8168, 26468, 21073, 26513, 33130, 38087, 26839, 13870, 36903, 31331, 20559, 38878, 24520, 13634, 25098, 29286, 29973, 9247, 38921, 11028, 37914, 23223, 11030, 32270, 32269, 7676, 14557, 31839, 19687, 9859, 47856, 7444, 15879, 47736, 16727, 26546, 43991, 22551, 9121, 18041, 41498, 43382, 18536, 47738, 45133, 23090, 28955, 12800, 23091, 47209, 28050, 8114, 29695, 21714, 42659, 34009, 29446, 39211, 37340, 18152, 25262, 14745, 29758, 28529, 42280, 44143, 16267, 41223, 21635, 12427, 9126, 22926, 39514, 28888, 18569, 17775, 20665, 17597, 46133, 19540, 41371, 33486, 35712, 32655, 34451, 36853, 23851, 13595, 39218, 34112, 23010, 46511, 44500, 35530, 44250, 8442, 26756, 38730, 22011, 24112, 39225, 43399, 35366, 23724, 8135, 46911, 41626, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +115: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 33362, 24391, 17313, 39526, 21293, 29276, 14678, 39870, 7787, 30535, 28490, 8774, 43534, 23508, 25051, 20116, 31162, 23300, 41883, 17072, 48241, 27260, 10112, 42585, 46931, 46523, 41461, 27201, 9418, 11880, 33754, 25052, 13023, 26360, 18181, 48168, 16887, 37963, 14969, 38315, 44821, 40473, 47402, 26807, 38069, 11331, 39629, 37115, 41527, 28341, 40065, 19971, 18006, 8642, 44029, 44036, 26969, 9789, 42216, 35535, 9173, 27743, 18427, 44838, 35138, 26556, 44839, 12248, 44588, 34129, 17463, 31171, 43104, 46357, 9573, 17474, 26705, 21411, 20524, 27894, 46022, 9937, 7545, 7537, 17467, 11966, 8233, 22177, 8546, 8522, 18754, 30340, 25150, 40949, 36896, 42350, 24926, 34863, 39908, 34471, 13866, 20788, 15973, 22045, 13616, 19059, 23028, 39548, 40302, 35696, 39551, 41273, 28911, 8654, 19283, 29042, 27213, 25093, 28399, 16730, 34476, 25875, 35701, 39684, 27305, 32472, 18549, 28404, 26389, 39568, 30653, 22245, 41054, 27569, 47979, 26179, 25854, 44478, 35237, 37714, 31840, 15546, 13310, 23906, 7638, 19347, 17872, 12899, 11367, 15623, 21550, 44222, 30675, 44223, 10194, 26529, 17878, 38525, 15091, 38184, 21051, 41452, 8923, 8713, 7929, 44966, 22094, 27067, 22095, 37577, 20104, 26949, 12391, 30047, 37937, 18562, 39590, 31160, 25270, 12280, 42985, 7418, 30113, 13048, 15197, 41058, 39002, 9076, 11673, 16271, 20053, 33717, 30230, 11616, 22599, 32449, 34017, 33861, 42685, 48362, 19953, 27639, 33487, 25560, 8433, 46326, 46327, 22099, 14444, 25618, 21110, 20760, 20362, 24392, 16739, 39341, 47251, 16198, 41554, 40699, 42032, 40827, 26452, 35249, 47400, 31510, 43400, 41313, 8003, 14360, 39802, 42191, 39226, 17412, 16760, 10926, 40886, 7812, 29545, 23854, 12497, 43575, 18856, 38191, 14080, 10562, 12920, 38539, 38469, 10558, 22319, 26960, 8143, 36802, 39616, 11245, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +116: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 17239, 41066, 41637, 31885, 41126, 23732, 24293, 40703, 15229, 25470, 41454, 38755, 25292, 24124, 21211, 24753, 35604, 35605, 14963, 37584, 13058, 30051, 45913, 33275, 27653, 44551, 21662, 10370, 23514, 27654, 34081, 37872, 36574, 11252, 48512, 8278, 10492, 18280, 30551, 14207, 23305, 10117, 30552, 8279, 37623, 25989, 11805, 16635, 41770, 13115, 8153, 25137, 31517, 29784, 29257, 32320, 47888, 31518, 14446, 21115, 31737, 13667, 21070, 19151, 44440, 26917, 26977, 11480, 41013, 36359, 40479, 12305, 32781, 27658, 20140, 37975, 32918, 18674, 40128, 11333, 20264, 47685, 10202, 24796, 32229, 39246, 13756, 44916, 41462, 28385, 18190, 43588, 44303, 18751, 32973, 33277, 25492, 34135, 32691, 35622, 42226, 38161, 38547, 46367, 21230, 43692, 26537, 36177, 25495, 36079, 24453, 23735, 16779, 46473, 31182, 12078, 22165, 46121, 42227, 7333, 8939, 34533, 10158, 23321, 47650, 11759, 21169, 42610, 11982, 11760, 30591, 24166, 21358, 35626, 31916, 41073, 7546, 24760, 27076, 46029, 43438, 42481, 43608, 38096, 26061, 38489, 12715, 40709, 45611, 41346, 32063, 12576, 25158, 24931, 31766, 35332, 18762, 16793, 30344, 21361, 14512, 21242, 25506, 19442, 19060, 21362, 7352, 8596, 9556, 32081, 45453, 12507, 20726, 16980, 36002, 19075, 18601, 33310, 35488, 36550, 11212, 44348, 21262, 25876, 8953, 34572, 38258, 48435, 23613, 39038, 48052, 41081, 32933, 38388, 15613, 23952, 13635, 24542, 47106, 32793, 24226, 45366, 31776, 36480, 16805, 35429, 23472, 25671, 25884, 24561, 45369, 23708, 43644, 27314, 39730, 31785, 16687, 12672, 45376, 18621, 16497, 9127, 13212, 9142, 18337, 46744, 29982, 7887, 32476, 24622, 37482, 48575, 39738, 30903, 7848, 29562, 14647, 12392, 38299, 29176, 48575, 48575, 37513, 18154, 25271, 42686, 30119, 11627, 7769, 21962, 10146, 10659, 48575, 12554, 27205, 9368, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 0, 0, 0, 0, 0, 62695, 0, 0, 0, 0, 0, 0, 0, 0, 62704, 62705, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62716, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +117: 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 47780, 30131, 8647, 47354, 46358, 48575, 11639, 43598, 30784, 39457, 25808, 12959, 29190, 27121, 47651, 8302, 25224, 45626, 38563, 29888, 12374, 38303, 43625, 41826, 15615, 12269, 33924, 36526, 36527, 17249, 10150, 33999, 31643, 33868, 10018, 10019, 32945, 34028, 35213, 33899, 43927, 34712, 25953, 15346, 43880, 8271, 15043, 28896, 36511, 43984, 20049, 33842, 45677, 13038, 15161, 28238, 12978, 30080, 36728, 18461, 36794, 46445, 45277, 27102, 8422, 8423, 25579, 41297, 25464, 10195, 28021, 45095, 14573, 15198, 16051, 36519, 21053, 21054, 32273, 38052, 15199, 36520, 28022, 13925, 29366, 20475, 37453, 12184, 28246, 25468, 8212, 46404, 11240, 28024, 28025, 9655, 36523, 15562, 8443, 12189, 46932, 26280, 30536, 26281, 29309, 42586, 14455, 18471, 33757, 44279, 28029, 22325, 43037, 25474, 33758, 13232, 11049, 18474, 12501, 47784, 19402, 37628, 20483, 10593, 10206, 37283, 23936, 19426, 9763, 25507, 13262, 37154, 25228, 20502, 20504, 11090, 29898, 13278, 13283, 29826, 20883, 12431, 34518, 34519, 47017, 42755, 28415, 28199, 13311, 8359, 20811, 24898, 15746, 15886, 21571, 47310, 39293, 33569, 40728, 29101, 24357, 42019, 10463, 44006, 7652, 21055, 22100, 30508, 39184, 11997, 8434, 42986, 24370, 48238, 11383, 14949, 47560, 29475, 29767, 15638, 22604, 11597, 41167, 46659, 12397, 46405, 14414, 46821, 36272, 21641, 19546, 14753, 21642, 33490, 19957, 41061, 45759, 9046, 28768, 46596, 43808, 21388, 32213, 36273, 36827, 42716, 20816, 37951, 18928, 35891, 42087, 10843, 46933, 17770, 41480, 27043, 13541, 21403, 39874, 36933, 37010, 26762, 29839, 39875, 35367, 15114, 24423, 46970, 12094, 13950, 38622, 33374, 23811, 34461, 18665, 39446, 43106, 8260, 46076, 16637, 35928, 14768, 26509, 25139, 10670, 19813, 36580, 7394, 10859, 8499, 8500, 27659, 16485, 13784, 14067, 37976, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 62725, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +118: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 44201, 12016, 41482, 47465, 11886, 12360, 33985, 47200, 10869, 44589, 18018, 14977, 23449, 42055, 10430, 37060, 44441, 16999, 38196, 18680, 22949, 20070, 43358, 43137, 25823, 33249, 22178, 10879, 38842, 16611, 43161, 38164, 19614, 11390, 7825, 19030, 25496, 9882, 34466, 29107, 12992, 12241, 8911, 35902, 46083, 8790, 33996, 11903, 26425, 43197, 48250, 11023, 46084, 45832, 35209, 33301, 32307, 13174, 25828, 25829, 27912, 31544, 43495, 43758, 18769, 15319, 24936, 25645, 31333, 25514, 23828, 39482, 14783, 12375, 43549, 17737, 7280, 7835, 39483, 16615, 16922, 29016, 44667, 37899, 43232, 43844, 29852, 24015, 24499, 34599, 12481, 25204, 13084, 25205, 23559, 8912, 19894, 10693, 42106, 41106, 20846, 46568, 26943, 24576, 19321, 23569, 19488, 13005, 41108, 43777, 43511, 32111, 43862, 35910, 13011, 26438, 26261, 26265, 9067, 9074, 16832, 7685, 14402, 12707, 14404, 7757, 7764, 31398, 19524, 45461, 45462, 26875, 12700, 29242, 20812, 18730, 16754, 11674, 25277, 15790, 27863, 19542, 20674, 29666, 15794, 7269, 14085, 17519, 17331, 8476, 37624, 11055, 31123, 38801, 7278, 39997, 17534, 18834, 17535, 45539, 11990, 17542, 40002, 42489, 30201, 17545, 20729, 7360, 40502, 18838, 24562, 30000, 17697, 20802, 29747, 15670, 29476, 47343, 22285, 31897, 12056, 32331, 45656, 16434, 22289, 22290, 47363, 45664, 16452, 46110, 13638, 27679, 30676, 43665, 44227, 8081, 46095, 47155, 29563, 17598, 43668, 17609, 43014, 9080, 37604, 17610, 7506, 45907, 41632, 20112, 17622, 44197, 23155, 14581, 15595, 12639, 29322, 15370, 31898, 34074, 12642, 25999, 45917, 27114, 24167, 21162, 40939, 20149, 29332, 16677, 7405, 25863, 40847, 47290, 12577, 7409, 16458, 24563, 28046, 13312, 15705, 40730, 26743, 37773, 46719, 30732, 44883, 36521, 39701, 13883, 40381, 39074, 29365, 14950, 13893, 27640, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +119: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 27730, 34049, 34321, 45096, 27488, 29308, 14649, 27551, 12341, 26953, 26885, 22489, 39598, 22834, 34330, 41992, 46514, 42286, 33869, 19244, 12233, 46406, 23118, 21643, 33974, 42705, 34050, 27039, 27865, 47562, 46334, 46335, 27447, 34331, 44748, 13213, 28581, 48133, 48134, 10264, 45724, 41120, 9014, 27341, 25621, 35399, 36864, 27248, 13301, 12921, 28421, 27735, 41127, 10660, 23122, 22018, 27970, 46461, 36682, 42036, 41752, 27874, 47218, 27866, 46314, 46524, 26970, 35571, 33746, 17333, 18666, 12931, 10634, 12095, 22023, 14086, 26680, 39624, 38774, 23362, 23545, 20253, 33550, 36581, 16976, 37629, 24100, 34366, 31749, 25063, 41463, 21303, 46539, 24142, 23546, 35467, 22031, 34813, 35403, 13584, 8501, 29874, 28075, 19136, 28596, 26000, 43108, 20938, 9447, 47318, 44313, 19137, 26557, 39304, 40545, 18882, 16979, 45288, 11541, 20141, 27049, 13673, 18019, 41017, 36609, 23199, 15802, 32976, 26921, 40940, 14430, 38376, 27541, 11113, 23257, 27249, 38291, 22869, 12568, 10383, 22633, 35194, 39199, 31757, 27913, 27750, 26642, 34815, 45540, 46085, 43198, 13125, 22839, 27914, 34837, 11769, 25745, 10680, 26645, 29994, 10518, 16864, 27127, 37684, 32988, 30023, 38880, 31335, 30348, 47521, 12747, 33960, 34839, 24981, 10357, 39484, 22496, 42490, 40966, 36906, 27984, 25161, 16915, 20419, 42519, 7361, 19086, 45880, 20299, 16459, 46168, 32087, 26995, 11117, 33256, 28930, 41281, 42367, 19297, 27154, 27468, 30060, 27469, 24019, 23139, 22229, 41041, 27472, 19322, 25890, 27169, 25673, 16689, 26693, 39045, 11292, 36142, 22501, 47530, 26811, 21103, 21111, 44552, 34857, 45513, 22252, 34241, 42827, 33934, 46638, 17996, 33937, 43738, 21803, 47259, 20676, 12096, 13740, 7290, 20728, 45613, 44944, 7734, 34174, 13346, 30724, 19352, 48087, 15631, 38595, 46192, 22890, 15747, 39061, 14484, 23114, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +120: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 12546, 26530, 33357, 12342, 22102, 24371, 15097, 27641, 14121, 19240, 22507, 46817, 30741, 22457, 21056, 8925, 14146, 41507, 29701, 46194, 41628, 35450, 47643, 10294, 13894, 37490, 41860, 21104, 14951, 14421, 27867, 45725, 21644, 44509, 22605, 37353, 37354, 12875, 45825, 46336, 14160, 15214, 28027, 47563, 23427, 8639, 29064, 30085, 29581, 25278, 29477, 23910, 30235, 9081, 30236, 33870, 45243, 7315, 24393, 25622, 36862, 43933, 24394, 23119, 11198, 22768, 32215, 47404, 23074, 16768, 14170, 28338, 30869, 25980, 37952, 7316, 16025, 39617, 40528, 41638, 13460, 29587, 38757, 23856, 17905, 34855, 39228, 31259, 31707, 37863, 31314, 43038, 22772, 39877, 32325, 10082, 23737, 17832, 44280, 39878, 39239, 26785, 26458, 43903, 10299, 10334, 38368, 25476, 43784, 26759, 32326, 41884, 33375, 23343, 44553, 10852, 18400, 25912, 10449, 20254, 29106, 35067, 47894, 22776, 29618, 41574, 47785, 22804, 10564, 30560, 48242, 31690, 25140, 22288, 9097, 13359, 27660, 13117, 20142, 17721, 26001, 7325, 35468, 32333, 24086, 8095, 43421, 13818, 38542, 30561, 26342, 37630, 13029, 28344, 8160, 30777, 10450, 32923, 41660, 13251, 13361, 13610, 37371, 20954, 43592, 8683, 22713, 8524, 38080, 34864, 46368, 13759, 39251, 12563, 36364, 28390, 29673, 20276, 12951, 36020, 9798, 36539, 30785, 13911, 14978, 41139, 32349, 32350, 26538, 16167, 28666, 35310, 14094, 11641, 25498, 34935, 36086, 7948, 18430, 29729, 37985, 33193, 24001, 12081, 36543, 39255, 38845, 24692, 29335, 37886, 45150, 13787, 46239, 22634, 23429, 47652, 42236, 16964, 47655, 9951, 30804, 7549, 29600, 25592, 25929, 22497, 11421, 10454, 43490, 24004, 8791, 30805, 27804, 30806, 11970, 48193, 31696, 11581, 26337, 19457, 33609, 23829, 32069, 45614, 12748, 20420, 39142, 25162, 13369, 35953, 18770, 29338, 45257, 31296, 12794, 24500, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +121: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 20421, 20625, 38882, 46056, 31336, 13872, 20300, 44653, 47803, 17682, 22726, 45548, 23948, 20985, 11215, 42525, 32363, 12579, 42874, 20503, 29742, 29743, 44668, 30039, 14265, 7366, 22646, 20194, 44669, 32938, 27155, 29488, 11659, 9236, 42107, 26572, 9408, 39498, 23140, 23959, 24024, 47116, 24544, 24565, 14531, 32371, 29491, 43645, 24579, 25674, 25675, 27945, 9261, 34754, 16690, 23637, 9409, 41710, 34279, 34273, 24276, 32625, 33791, 44962, 34988, 30486, 35669, 26548, 40211, 42151, 39332, 30501, 30502, 46809, 8243, 13809, 47211, 32593, 42571, 34196, 44155, 46899, 36638, 15201, 15418, 27376, 48363, 46646, 35378, 27036, 48548, 31962, 18322, 47554, 33925, 35453, 11623, 9865, 27254, 26144, 44417, 39747, 38471, 36620, 30004, 47564, 16841, 39227, 46660, 19794, 15864, 46338, 15865, 34808, 21212, 33977, 15564, 23342, 12922, 12609, 19256, 36215, 30553, 16483, 16663, 48444, 25307, 25991, 9022, 21223, 12610, 46737, 25990, 9928, 8478, 46284, 18874, 44108, 39102, 43355, 48010, 19263, 46359, 15265, 44917, 38476, 39538, 42051, 46682, 42597, 26978, 34917, 12940, 8161, 47903, 46370, 43916, 19835, 15869, 36080, 34923, 26562, 35743, 15465, 41022, 30593, 44654, 39031, 19444, 35034, 9952, 12463, 16916, 35489, 24312, 28996, 27293, 12626, 24522, 32475, 45037, 36412, 45377, 24076, 32771, 44409, 44238, 24113, 40238, 31519, 17577, 36991, 40695, 34890, 32538, 36992, 48088, 9775, 15671, 42961, 39333, 9004, 28630, 31799, 31800, 47187, 14910, 17506, 45098, 22600, 27552, 46647, 21282, 8364, 46648, 44501, 27379, 22937, 7875, 29705, 28484, 24395, 44013, 48302, 29706, 9144, 25279, 27869, 10639, 28635, 31511, 41993, 48507, 46913, 46661, 34557, 21859, 48091, 19214, 19369, 10493, 36866, 46938, 19216, 17623, 43339, 47986, 46939, 20817, 32558, 13694, 42717, 47405, 18995, 28985, 15443, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +122: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 38775, 15831, 23738, 15116, 41387, 34809, 26146, 23344, 15678, 21298, 36345, 10580, 37052, 33693, 34810, 41534, 26343, 26002, 16486, 48516, 32561, 47826, 7942, 7791, 19403, 46683, 46992, 23347, 24087, 29619, 22620, 9023, 11056, 48445, 44573, 35216, 26288, 39716, 42602, 39112, 8684, 19836, 15285, 29879, 29154, 20839, 47201, 48180, 40838, 10507, 12648, 38234, 39464, 48020, 44615, 19850, 40953, 46426, 47036, 12652, 20090, 19427, 15841, 15842, 16442, 32692, 35477, 32769, 19861, 22528, 28083, 9530, 26988, 47080, 19837, 26053, 35220, 19445, 43759, 38238, 31814, 33302, 17732, 43200, 18771, 31450, 19715, 35496, 39921, 30350, 20626, 47845, 47205, 48469, 26165, 35498, 28998, 33314, 19087, 32467, 29165, 44670, 30041, 19895, 37194, 38240, 10524, 19298, 23141, 26168, 8814, 33324, 32478, 47850, 24260, 11939, 41177, 37446, 21505, 31713, 38702, 31715, 22793, 44190, 33862, 21349, 42328, 11329, 47813, 36995, 23801, 31415, 45815, 42287, 8673, 7979, 42288, 9015, 37454, 47458, 20761, 31363, 13151, 38424, 16770, 42194, 46941, 11384, 42336, 36674, 20769, 11385, 21470, 39879, 10566, 22859, 11940, 38319, 12448, 22905, 22621, 47895, 40762, 35217, 16608, 23157, 13546, 47963, 41264, 38320, 37465, 41537, 44316, 21900, 31758, 42237, 42238, 36679, 10249, 44450, 36544, 13175, 21920, 25003, 38863, 38647, 23160, 11393, 46105, 23055, 23056, 25646, 10522, 12036, 24937, 45484, 11947, 31386, 31777, 13566, 45489, 25723, 31468, 24338, 11225, 34183, 15412, 30909, 11234, 17888, 30509, 17457, 34018, 14817, 34630, 27570, 32133, 45962, 47565, 25281, 25623, 9047, 21389, 21399, 46012, 7770, 35019, 22326, 17914, 36870, 35093, 21404, 13167, 43111, 34657, 21396, 32139, 20956, 30092, 13732, 24168, 47668, 9724, 12717, 12061, 37521, 21431, 22484, 21433, 47446, 47449, 23908, 29606, 44240, 10713, 15637, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +123: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 26747, 47453, 37579, 13663, 19371, 20671, 7657, 35379, 19543, 31564, 46136, 35544, 41455, 47774, 44810, 18330, 17413, 40018, 9698, 8447, 8368, 20241, 42841, 13398, 33494, 34024, 12145, 12812, 47461, 28151, 10661, 16343, 24409, 31428, 27695, 7968, 36642, 35013, 15230, 9658, 8225, 14423, 12192, 48099, 12923, 25294, 45505, 29054, 15231, 16274, 14492, 19962, 15677, 14582, 34259, 26869, 30216, 36489, 20117, 31728, 25627, 27696, 8640, 26459, 16890, 31978, 10725, 43349, 42339, 39533, 8377, 31729, 23378, 12732, 39975, 21116, 32223, 35546, 32827, 14425, 23075, 47578, 36925, 19392, 12196, 17422, 9665, 47223, 22860, 23516, 8479, 33449, 12500, 46532, 9672, 15121, 45116, 37061, 29258, 24143, 23741, 21810, 16638, 20265, 17250, 36876, 39247, 46993, 10581, 35380, 34367, 47589, 48517, 39993, 33696, 36764, 9673, 41648, 15868, 23019, 15649, 11057, 23078, 15784, 45117, 29171, 30941, 39994, 20266, 30283, 23523, 48271, 8382, 8525, 8526, 16028, 35834, 16578, 44202, 20150, 12649, 16359, 10740, 46546, 31693, 33431, 47319, 26017, 9187, 19418, 25144, 35382, 22336, 15287, 45698, 16360, 22808, 31037, 30952, 22337, 11455, 16639, 44771, 9679, 48327, 9279, 45522, 31442, 37437, 26368, 12363, 39899, 33015, 20400, 41024, 8648, 35554, 39719, 39544, 30145, 46374, 40489, 18207, 42766, 47594, 44942, 11481, 26195, 38437, 13430, 34868, 19616, 20941, 18763, 40490, 27054, 14599, 11349, 47694, 29916, 14980, 47474, 18764, 31447, 18022, 31811, 27559, 31136, 16364, 23262, 34425, 25809, 45125, 17672, 36093, 45017, 11024, 15810, 14732, 33019, 46555, 16257, 28821, 31139, 39999, 11944, 25716, 29632, 13677, 24477, 8567, 47918, 11173, 33452, 10747, 47606, 31187, 25647, 23600, 20173, 9386, 24187, 19077, 8568, 12831, 11776, 41593, 29633, 9532, 47698, 29808, 29996, 13500, 44671, 27605, 37137, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +124: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 45546, 33453, 16918, 42785, 18368, 10048, 22873, 11906, 30153, 45482, 19458, 16865, 35334, 25813, 9688, 26062, 28669, 35584, 11945, 13130, 35588, 23916, 13763, 24893, 39922, 9238, 27432, 33454, 12580, 24945, 12379, 13085, 15391, 20301, 27716, 23274, 12324, 20636, 12720, 18778, 35556, 23832, 45323, 39935, 26089, 34411, 45324, 30833, 29283, 30623, 29284, 15692, 21936, 26090, 26077, 41690, 9281, 12513, 33115, 47630, 16260, 30979, 24728, 9395, 47378, 23564, 34426, 23627, 23280, 44363, 45028, 17489, 46385, 35850, 36482, 28846, 11092, 19662, 42803, 30640, 36295, 47711, 47381, 14472, 35206, 47380, 31153, 47951, 36300, 26104, 25891, 20327, 37444, 43731, 44711, 23572, 25681, 31469, 24743, 23642, 30993, 45042, 47185, 32108, 24744, 8669, 13770, 48399, 24261, 34971, 26400, 43737, 45054, 47960, 44731, 27331, 12802, 14485, 33853, 46196, 33863, 29078, 17600, 24044, 39339, 48093, 28480, 12073, 46071, 30915, 45782, 8369, 7851, 38611, 33363, 22508, 32773, 14897, 8448, 12001, 43568, 46208, 27342, 35878, 18332, 7658, 24410, 15644, 21870, 30239, 27877, 11861, 45849, 47346, 10662, 35263, 36684, 24411, 38776, 35268, 17915, 36871, 48002, 9659, 44992, 47266, 25138, 47725, 7771, 23795, 14913, 14331, 31979, 17636, 24834, 39634, 15267, 24835, 9545, 21304, 24298, 44997, 26018, 21748, 30578, 12021, 7794, 46023, 25145, 48244, 21309, 17078, 18402, 33143, 33145, 36088, 8687, 32786, 27526, 18023, 40841, 48246, 18208, 20402, 45321, 11646, 24178, 40303, 15138, 29159, 8184, 16448, 40693, 15811, 36094, 31935, 19989, 9599, 47730, 36099, 27286, 33148, 14926, 45427, 22530, 20560, 27805, 33150, 33151, 29164, 38894, 24847, 20565, 23032, 9289, 18609, 34605, 48256, 39686, 29166, 37145, 28857, 24566, 48571, 12851, 28858, 36691, 23715, 27366, 34887, 21506, 39054, 16133, 46575, 21509, 44145, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +125: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 19760, 9832, 47337, 41306, 44935, 17890, 44192, 17601, 37580, 32594, 38223, 38188, 31872, 28145, 47980, 36967, 28966, 15067, 19776, 34505, 11502, 29707, 46457, 33364, 17898, 46823, 19544, 14820, 45105, 32597, 12398, 21112, 35251, 14652, 35601, 12002, 21556, 45224, 7749, 21151, 15111, 46942, 30430, 48107, 11044, 17906, 45225, 24052, 39084, 15232, 40239, 33879, 9087, 47571, 31970, 25295, 47572, 33744, 15712, 42088, 15233, 37360, 46410, 12290, 11246, 34115, 47162, 39437, 48367, 21444, 7877, 32043, 27878, 34640, 48440, 23123, 21294, 32605, 17423, 40251, 20927, 47410, 11051, 16558, 7772, 22143, 23124, 18182, 11697, 18578, 16062, 36167, 20928, 22945, 20686, 32224, 15581, 26460, 41132, 8255, 39625, 15254, 16030, 13463, 32673, 36685, 43350, 23993, 40252, 22025, 40912, 15565, 13233, 36926, 34910, 20549, 39751, 19003, 22144, 46738, 20267, 22032, 10672, 27503, 46470, 26151, 10582, 31907, 34528, 7920, 36927, 39888, 18582, 31487, 16094, 40692, 36360, 36984, 40129, 17925, 39103, 15268, 36740, 35404, 13821, 23348, 15122, 21305, 18349, 46684, 41649, 21475, 15021, 19815, 40927, 32562, 48181, 10378, 13991, 24454, 26190, 24837, 11064, 32282, 33748, 30579, 30580, 47823, 30581, 37633, 31130, 39644, 34467, 37879, 30701, 36219, 37634, 15767, 37758, 8266, 47790, 9449, 17079, 12022, 26331, 25568, 30702, 45976, 8527, 11574, 25334, 27454, 30444, 31443, 36540, 48182, 16958, 48272, 38822, 48021, 40568, 24866, 21163, 14684, 32947, 27667, 44593, 48226, 14504, 26191, 40941, 43601, 33681, 30832, 40954, 39720, 20158, 22717, 39653, 32926, 27455, 19429, 13761, 10976, 12960, 27670, 27544, 44849, 40289, 8017, 34938, 31812, 8649, 18628, 16065, 11762, 27509, 38090, 15477, 37994, 36955, 16255, 27560, 40144, 24800, 48187, 8740, 45190, 43361, 36374, 16521, 47061, 45191, 10514, 9948, 12314, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +126: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 39257, 44850, 48227, 40781, 34042, 37819, 16066, 41025, 43701, 21250, 43202, 47794, 28605, 7910, 16444, 29336, 47371, 20174, 11604, 32241, 34776, 45196, 39261, 11971, 38865, 32695, 36184, 15492, 45126, 10386, 15845, 32891, 18226, 45317, 36284, 39662, 35321, 46430, 48251, 36185, 18822, 9457, 8569, 15056, 11907, 24189, 35589, 41807, 39034, 48253, 23945, 22049, 31143, 26718, 46766, 26166, 28086, 29997, 24703, 27287, 41151, 48230, 19459, 33519, 35499, 14517, 26203, 8287, 42614, 33222, 27985, 42246, 31243, 19159, 39381, 19877, 33447, 40714, 32429, 41152, 35508, 31300, 45616, 48537, 46702, 33615, 33152, 25166, 44672, 14465, 24946, 11584, 48478, 20429, 32521, 10053, 32958, 40716, 19088, 18497, 48391, 38895, 31245, 45216, 12243, 34046, 19096, 39160, 33318, 20306, 20505, 18610, 45456, 11781, 40338, 20733, 8609, 12484, 43252, 29010, 35509, 43253, 33457, 40802, 19903, 8959, 31100, 23628, 30359, 41285, 48395, 30641, 29650, 42371, 27947, 24072, 40181, 48397, 23142, 43977, 40979, 23961, 39400, 9982, 20743, 25892, 9986, 43653, 9432, 32495, 39409, 48421, 48400, 26496, 24266, 12673, 23692, 23981, 24822, 34882, 21497, 44187, 17866, 47323, 39326, 15880, 44934, 19520, 37570, 23108, 19733, 32578, 37930, 45091, 17873, 11498, 29684, 33353, 15741, 28129, 32585, 48236, 26311, 14811, 46803, 38181, 14644, 47537, 46442, 28956, 34489, 39591, 15706, 40212, 15183, 24777, 48359, 33854, 39062, 46640, 47151, 47331, 7871, 15184, 11230, 33737, 42963, 21279, 12271, 7917, 32656, 20894, 22935, 32519, 13203, 17411, 18982, 16029, 41119, 20543, 26446, 22103, 20666, 36920, 16085, 39862, 22013, 40700, 39080, 35421, 36163, 19777, 36334, 19377, 40895, 25296, 43582, 40896, 30690, 14672, 11564, 33679, 16948, 34041, 37864, 27449, 34460, 8251, 11045, 36212, 25564, 32277, 48156, 45967, 37613, 26180, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +127: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 47776, 47987, 22704, 39711, 20130, 27501, 23659, 36346, 27556, 19394, 45066, 19004, 34911, 13977, 13751, 8729, 39626, 16247, 47781, 18626, 12933, 26152, 8643, 27655, 44822, 21224, 15457, 32885, 46421, 15048, 11957, 15835, 9934, 24145, 43113, 20143, 8936, 29963, 26706, 23931, 43602, 35579, 27975, 33217, 40145, 24927, 33594, 45607, 20493, 31094, 31293, 18595, 20723, 48394, 15070, 40213, 15749, 15075, 32298, 15076, 30831, 9088, 30132, 39807, 46172, 15768, 43603, 43610, 31701, 39308, 16679, 48479, 35959, 10523, 30822, 38304, 43638, 23962, 35974, 25893, 16693, 37727, 37725, 15736, 37733, 17275, 26357, 26351, 15203, 33855, 14416, 16340, 47503, 21645, 26820, 16400, 27643, 15754, 7717, 16556, 36347, 22026, 15255, 33987, 41782, 46147, 48446, 16559, 47896, 44574, 46995, 7437, 14431, 23664, 34588, 34924, 29795, 26567, 25571, 7727, 14433, 24190, 10252, 38097, 8550, 19878, 45615, 10948, 25577, 19460, 22052, 27433, 46169, 26378, 29816, 19495, 19504, 26251, 42009, 27335, 31155, 12180, 27008, 42027, 44095, 44091, 14854, 7659, 15791, 42116, 16401, 31161, 45387, 15792, 25298, 43041, 47574, 12779, 40643, 31236, 42726, 39627, 32674, 32392, 32393, 31240, 18583, 35575, 39636, 43114, 42139, 31183, 31045, 44324, 16067, 20965, 36040, 44857, 38866, 14525, 33523, 14885, 33525, 24770, 23953, 16071, 29025, 31253, 10096, 44399, 16219, 42989, 10928, 38261, 14821, 17899, 10838, 10839, 12003, 15234, 39229, 8213, 43042, 23414, 43043, 29711, 25299, 25583, 46943, 32044, 38953, 40120, 39752, 38777, 38778, 22655, 31369, 19005, 18866, 39880, 33427, 17926, 20486, 12821, 12023, 14726, 12650, 33433, 10871, 47595, 20283, 41026, 10883, 29917, 48188, 37593, 18890, 18024, 17674, 17733, 17365, 7552, 29970, 43219, 24704, 18030, 7555, 25167, 29569, 31387, 7559, 14466, 43220, 19097, 41042, 12669, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +128: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 42370, 23844, 23843, 22565, 26892, 46281, 30517, 16272, 16275, 16273, 13215, 13234, 14311, 34699, 32910, 28214, 28215, 13726, 23984, 36730, 48094, 16054, 10280, 17513, 45106, 7718, 29712, 42719, 35015, 32156, 19964, 21872, 19200, 11160, 23879, 26344, 19601, 36037, 29222, 25777, 29041, 20527, 29421, 45708, 25782, 19471, 23887, 19308, 43978, 27950, 18519, 14353, 42935, 13314, 42395, 12143, 35092, 31512, 45107, 10780, 12345, 12346, 17901, 16086, 46723, 29367, 28769, 12350, 46411, 10330, 25300, 46526, 44098, 37501, 24903, 25628, 46733, 28893, 36624, 14333, 41528, 36697, 16513, 40914, 24663, 17523, 34082, 25064, 30078, 21310, 21901, 8383, 12884, 17041, 38197, 40943, 30088, 11750, 13362, 28505, 36775, 21821, 11763, 23159, 24693, 23263, 11764, 24694, 38292, 23264, 24706, 24714, 11777, 7553, 34037, 35103, 36743, 23275, 28832, 46769, 12381, 28918, 31403, 28556, 36746, 36748, 25682, 44485, 44477, 46137, 35008, 35242, 43115, 35285, 35023, 46153, 46154, 32804, 42898, 23894, 19349, 31844, 22734, 9637, 15883, 9122, 18638, 18705, 10767, 32586, 40010, 32863, 47308, 44897, 13682, 15742, 32653, 15624, 9739, 38350, 10138, 16390, 46641, 17214, 15092, 14700, 14853, 29495, 29426, 20105, 14631, 47812, 44001, 28135, 7483, 22736, 32405, 16134, 44495, 38222, 42181, 30503, 29759, 31071, 38703, 38704, 14746, 22737, 21345, 35861, 33969, 47186, 46069, 40089, 33972, 38053, 47338, 13204, 12395, 14748, 7686, 9134, 32034, 36522, 8127, 16503, 35813, 48089, 14713, 46650, 28577, 30114, 48140, 15356, 29427, 46328, 39426, 48549, 29498, 20054, 34070, 46651, 7967, 28023, 31963, 18156, 22602, 10774, 43523, 40733, 41991, 25619, 13453, 22374, 25850, 21382, 29065, 41555, 29382, 22985, 42708, 16712, 17137, 15892, 13458, 10656, 20591, 40593, 40594, 14325, 7454, 17794, 29923, 28463, 48141, 16761, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +129: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 10559, 36673, 46663, 12004, 26956, 40105, 12005, 40106, 26607, 26605, 19547, 40107, 28884, 23013, 33053, 45410, 30518, 28371, 27343, 28984, 26228, 37669, 9157, 38226, 37614, 40647, 20677, 21397, 44099, 17785, 12115, 25055, 33491, 36803, 26961, 11506, 33978, 31078, 12702, 21964, 11881, 40645, 40440, 37316, 29434, 10567, 28435, 30330, 13538, 37317, 28742, 28376, 29837, 16409, 26361, 24412, 24754, 46074, 12014, 20831, 24863, 34789, 29785, 8775, 26327, 29927, 23994, 23253, 11452, 12444, 36575, 28437, 21300, 28186, 23443, 42462, 41571, 32607, 33979, 11569, 15379, 15372, 21663, 14702, 31172, 37674, 13464, 29786, 17034, 48169, 13357, 38372, 27017, 28503, 47686, 10860, 11845, 26365, 29215, 12941, 7396, 40480, 28386, 34658, 34737, 28279, 45183, 47199, 32806, 14208, 33097, 37062, 42164, 20379, 37978, 20695, 44281, 19980, 13757, 8503, 10151, 15458, 39637, 28597, 27504, 37505, 36275, 37206, 7923, 31088, 26156, 37506, 34462, 36081, 35297, 47788, 15967, 43140, 9188, 24914, 19602, 29796, 40137, 15803, 26162, 8971, 29205, 10159, 26033, 17044, 29390, 11311, 8789, 20528, 15131, 36089, 27796, 38846, 47653, 26196, 20615, 43788, 26120, 47038, 41209, 12062, 25225, 36904, 29634, 28611, 11319, 24932, 12033, 16794, 39916, 36266, 14514, 46762, 20624, 33604, 18135, 12028, 33000, 39721, 35437, 14924, 43621, 33521, 47629, 12411, 23029, 28997, 37275, 24715, 8584, 43841, 22203, 11284, 43221, 21995, 23459, 24765, 33223, 37277, 16453, 30625, 12044, 8976, 41279, 28413, 38389, 45415, 39680, 8810, 40575, 23042, 23468, 41599, 25885, 19318, 45234, 26431, 32109, 45416, 26253, 28523, 45239, 10392, 30910, 38354, 16742, 45393, 25163, 16731, 48118, 20657, 28770, 11122, 19806, 15799, 11124, 27456, 28822, 46870, 46914, 15950, 20380, 13235, 46674, 40651, 35835, 46380, 21568, 39592, 44229, 9742, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +130: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 42290, 44244, 10930, 39093, 39094, 21594, 44317, 44443, 40571, 21823, 21612, 40460, 33767, 33784, 33792, 21553, 34335, 35892, 34522, 34379, 36583, 36021, 30392, 30393, 16644, 18498, 36611, 11355, 34832, 39248, 38548, 47239, 12595, 11338, 33488, 42836, 14488, 29246, 35864, 14491, 7852, 11339, 17415, 14653, 7813, 8370, 25852, 47159, 20363, 9568, 25301, 47462, 45507, 14028, 9158, 39438, 16017, 11340, 39230, 25855, 31739, 29404, 38781, 22967, 15269, 45477, 15022, 24146, 33697, 44306, 23742, 36808, 44575, 37979, 9189, 27210, 28692, 21678, 18766, 34445, 22718, 8741, 28080, 13257, 12653, 7952, 9762, 43204, 35156, 9577, 9624, 25783, 12320, 41211, 42362, 10952, 12721, 12515, 31228, 25941, 42876, 19656, 20443, 19309, 27165, 30642, 25945, 25894, 9990, 34760, 16035, 24824, 20106, 20176, 33262, 41865, 15238, 30089, 41943, 41969, 9630, 9642, 42892, 23904, 36725, 20575, 7305, 28197, 36629, 20576, 20863, 29603, 37571, 42916, 9850, 27444, 27332, 15618, 30897, 44486, 44487, 33713, 31708, 13678, 18303, 30670, 26736, 48120, 18983, 35387, 46871, 39699, 29751, 15168, 37252, 37931, 38456, 46626, 30726, 33476, 38182, 31108, 32539, 15169, 22832, 21045, 25841, 40858, 19350, 31502, 30493, 41612, 14812, 7643, 32963, 40374, 19741, 18391, 18392, 14613, 38589, 22087, 16265, 46804, 45092, 31503, 7575, 11149, 26876, 41449, 14740, 32636, 17405, 11724, 43384, 44082, 8706, 42937, 31393, 37932, 24350, 29834, 14140, 39588, 10139, 9565, 47538, 35211, 36329, 44900, 32442, 25263, 35823, 33714, 12804, 27536, 31666, 24359, 43930, 22593, 28054, 8125, 7965, 16268, 27636, 42828, 42831, 21846, 30028, 33005, 22927, 28889, 28530, 9128, 9005, 33480, 40685, 42281, 39334, 8210, 17879, 43572, 45723, 13385, 21636, 13193, 28746, 15632, 18089, 30107, 26951, 15187, 34011, 16335, 8424, 38049, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +131: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 15188, 47862, 26879, 14571, 19947, 26816, 26817, 7682, 11624, 27850, 47969, 46810, 10711, 19761, 21280, 25613, 11730, 28706, 44824, 41183, 43667, 31716, 15931, 27731, 24372, 32657, 43521, 16044, 31111, 9875, 10403, 44502, 17441, 48123, 25031, 38466, 19762, 16755, 11692, 20236, 11625, 16290, 16709, 26748, 9778, 20587, 20588, 15204, 44245, 47397, 47976, 20473, 18921, 43327, 9779, 14417, 32650, 32814, 10924, 26787, 36855, 47213, 30904, 47455, 41307, 18570, 15100, 32200, 15558, 12144, 21283, 40557, 11358, 9632, 21284, 14323, 7450, 31310, 10715, 32554, 20354, 36331, 18710, 30116, 24373, 21106, 23852, 34632, 47719, 12182, 20008, 32501, 8436, 9653, 31311, 18984, 19763, 12548, 48124, 32658, 19121, 40521, 26447, 43669, 41308, 21195, 35531, 43328, 26593, 17892, 47339, 42330, 13692, 37945, 24114, 13532, 15106, 32557, 43401, 17613, 8343, 9361, 45137, 12809, 37038, 35395, 35396, 10550, 10408, 38467, 8890, 38735, 16087, 24397, 30329, 47567, 27871, 24398, 47722, 48508, 37311, 31873, 33366, 35565, 10409, 29608, 21804, 26957, 27107, 40561, 21287, 10297, 33872, 22282, 41629, 36756, 44016, 12126, 16632, 17314, 44096, 12127, 20014, 37718, 35252, 28967, 33687, 39612, 23779, 15218, 14079, 27872, 38248, 20903, 28248, 28059, 22459, 23500, 24657, 34202, 38310, 37107, 39343, 19246, 44017, 43670, 43576, 16226, 11503, 26783, 26784, 11695, 37615, 21295, 12925, 32036, 13399, 20118, 48265, 16346, 23415, 25982, 21730, 38057, 22286, 28780, 23301, 17628, 30332, 45282, 15830, 17073, 15240, 26324, 10113, 11046, 35063, 11446, 45968, 27072, 9454, 7689, 24125, 37047, 9089, 17324, 8046, 31598, 21988, 38759, 31513, 12878, 20818, 30331, 12551, 21153, 31315, 35827, 16057, 18421, 16347, 25302, 14673, 31516, 7387, 37745, 8277, 47314, 41565, 21660, 20119, 25189, 35984, 34515, 36528, 12640, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +132: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 18277, 30537, 17629, 12010, 36213, 11474, 8462, 10147, 18573, 14759, 23509, 30423, 27108, 30125, 37790, 12439, 33419, 18574, 41753, 42720, 36643, 30538, 37616, 9660, 28220, 46413, 37431, 21516, 36696, 26362, 8463, 43044, 29310, 9295, 29435, 13353, 43672, 43673, 43674, 39872, 33054, 31804, 22613, 39808, 37673, 44434, 44283, 15446, 24790, 41009, 41010, 28276, 9670, 38316, 11535, 39881, 44259, 8681, 26907, 7392, 14192, 26462, 43682, 23379, 23380, 20482, 27502, 48561, 48562, 48303, 8009, 32779, 39011, 42463, 7393, 32047, 20132, 15258, 26186, 21301, 29566, 14971, 17916, 17917, 18008, 41885, 37011, 46315, 48003, 39712, 32608, 15951, 30839, 31652, 27349, 18744, 33888, 30333, 15598, 13426, 47350, 20381, 37965, 9167, 37805, 29249, 19807, 18184, 45412, 19972, 13752, 42340, 35400, 11741, 32226, 37806, 46348, 23187, 36765, 19135, 39012, 34122, 30772, 23588, 48170, 42161, 44761, 26972, 45067, 34641, 12935, 47681, 16606, 32454, 41168, 10025, 22404, 23254, 18405, 20516, 25757, 37966, 29300, 44183, 35139, 43540, 34130, 11514, 34214, 45071, 46361, 23783, 32830, 27119, 24443, 32300, 35381, 44840, 24444, 21815, 38803, 7943, 11154, 40816, 37064, 25486, 19269, 13030, 31124, 48304, 30250, 12097, 44766, 11161, 44576, 22995, 29328, 30334, 30335, 28169, 34859, 38961, 14865, 45118, 46538, 20144, 19592, 33013, 9574, 14299, 27268, 17444, 35536, 46362, 27745, 35140, 40929, 25487, 38962, 16417, 23733, 32682, 38286, 15606, 12135, 34131, 36071, 26420, 32886, 35576, 41015, 8162, 42301, 16895, 8504, 48222, 16955, 48563, 36644, 9674, 29549, 23591, 12464, 19818, 24147, 33892, 23769, 44577, 25319, 43688, 27895, 13168, 36648, 26871, 36830, 11265, 29620, 7398, 24673, 11752, 39022, 30133, 31808, 21164, 11517, 20958, 37880, 37164, 9611, 44616, 43142, 48073, 24976, 8505, 25920, 40987, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +133: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9377, 46024, 23932, 31220, 26707, 41661, 25335, 19808, 8783, 16961, 17281, 12823, 35298, 26021, 33819, 33648, 12824, 27596, 41265, 26708, 9190, 12952, 12100, 46302, 33900, 41140, 38081, 18198, 7538, 27351, 25772, 11891, 47168, 9456, 30198, 20521, 27407, 11753, 28716, 19032, 22040, 43429, 20392, 28628, 34539, 43356, 17042, 10426, 18360, 33380, 22867, 31132, 26511, 45394, 45523, 31217, 13493, 24761, 25219, 22868, 7294, 8528, 24179, 37996, 19619, 31046, 34086, 14462, 27128, 29223, 10043, 13033, 41397, 20616, 32953, 32954, 24002, 44327, 31326, 11169, 18436, 20161, 26597, 45122, 7973, 44052, 32058, 26055, 32505, 19046, 14232, 36375, 14729, 22180, 48454, 14448, 32836, 14874, 23265, 34835, 32948, 41486, 40782, 15480, 22181, 12571, 38485, 13431, 34940, 39917, 39125, 25639, 38166, 33703, 30596, 20162, 45192, 35539, 25349, 44636, 39258, 38302, 19620, 17943, 35041, 28993, 24005, 41031, 45197, 44617, 38975, 17543, 7988, 17447, 7344, 37827, 19062, 19063, 19865, 11654, 39718, 37685, 27598, 43205, 24092, 20495, 9553, 33910, 31225, 24707, 22629, 44858, 12209, 36468, 36044, 41172, 8571, 45871, 35540, 39377, 14515, 13337, 40304, 16449, 40305, 34594, 20413, 17448, 17848, 33073, 40410, 41269, 42353, 7797, 35198, 34595, 41275, 13833, 30057, 38003, 28912, 11082, 26586, 32846, 29984, 35848, 19880, 45454, 10439, 46381, 14371, 28551, 43707, 15848, 11818, 39923, 30612, 14435, 20292, 40961, 23209, 19643, 8693, 13179, 27426, 23607, 21260, 9587, 27562, 31772, 31453, 39552, 24961, 29227, 39489, 35338, 26124, 43236, 40971, 40199, 24211, 43237, 23433, 24016, 20790, 12836, 46859, 8100, 36291, 42363, 27932, 18693, 8807, 14468, 35201, 35961, 37166, 31781, 31338, 38116, 25524, 19079, 29197, 15851, 45203, 8023, 24547, 34602, 11184, 7301, 25235, 45457, 41043, 31609, 23566, 19310, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +134: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 37440, 38664, 32959, 32960, 30631, 17811, 25877, 35226, 37195, 27167, 45210, 30156, 44474, 41282, 19896, 21451, 41044, 27815, 31825, 35227, 21452, 29652, 28847, 9291, 32473, 43269, 39563, 44371, 21783, 24772, 24773, 43506, 31229, 43639, 25661, 36978, 18410, 45032, 25379, 32093, 42264, 14532, 26999, 17384, 23169, 23629, 19906, 12583, 26725, 24075, 23963, 18906, 14997, 46707, 38128, 23217, 46002, 18520, 24240, 19914, 27315, 24031, 18533, 26390, 19496, 23221, 26107, 20217, 33090, 36303, 23973, 32284, 39954, 43303, 26256, 27085, 8882, 18079, 18271, 25909, 29103, 26178, 34901, 39863, 31011, 11247, 18104, 40741, 12091, 15241, 40742, 40756, 25915, 18281, 44307, 17525, 20608, 21891, 17046, 8063, 41674, 45986, 45987, 23162, 8948, 39152, 34694, 10965, 31846, 13103, 19692, 31851, 13316, 34102, 39181, 22105, 46197, 33769, 44193, 17224, 48095, 17893, 18850, 27104, 16022, 35390, 39186, 9878, 34197, 42837, 26532, 39764, 14620, 14163, 7660, 10781, 30920, 38189, 38190, 32966, 7931, 29768, 44975, 44976, 22283, 30520, 36863, 43470, 30521, 9493, 44811, 22114, 18925, 31514, 30522, 47216, 41456, 17458, 28060, 37719, 14855, 14856, 17416, 16145, 45444, 15426, 32411, 21061, 15219, 10657, 13517, 8047, 39529, 28492, 12293, 31802, 44022, 45762, 30126, 10721, 44164, 17630, 17187, 21873, 24413, 15435, 32414, 45686, 16276, 29776, 29777, 39439, 47575, 13114, 8892, 9018, 16348, 45850, 31974, 33773, 36702, 25303, 16410, 12440, 16411, 43675, 24414, 10497, 31981, 27974, 15952, 11699, 18929, 18930, 26767, 15447, 42044, 37459, 25058, 47412, 42595, 39448, 23381, 20599, 24427, 43082, 30134, 30431, 17106, 33777, 42727, 37752, 27885, 31741, 31433, 16853, 31742, 46976, 26635, 23859, 46222, 20021, 28342, 34912, 30554, 40481, 21071, 31908, 33698, 43911, 20027, 37220, 10300, 8163, 14092, 17339, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +135: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 34589, 41068, 14975, 33989, 33990, 15375, 39638, 46175, 38481, 15271, 24148, 23743, 8506, 11162, 44767, 44109, 20944, 12445, 41650, 36766, 13065, 37221, 18931, 38321, 46690, 35070, 14685, 21679, 27408, 30585, 30586, 44599, 22339, 23452, 27211, 31176, 34925, 38824, 26333, 24456, 13253, 36654, 36220, 23317, 17254, 17351, 44600, 7946, 14707, 29797, 37816, 13861, 43143, 44775, 35661, 32236, 31089, 32975, 28507, 31629, 38082, 24868, 17080, 37551, 13408, 14217, 7856, 12953, 37760, 9501, 42098, 43691, 17004, 9939, 13364, 23453, 22637, 20945, 40072, 36776, 26930, 40783, 27457, 44328, 20843, 34219, 41028, 18767, 41800, 8650, 32787, 37822, 15481, 44851, 27055, 38092, 15300, 32837, 40146, 44053, 31918, 26841, 39200, 43605, 34143, 10977, 36041, 47421, 48189, 36376, 15482, 44852, 23202, 27129, 23458, 13615, 18209, 31813, 13258, 24464, 38323, 45075, 32140, 28285, 25778, 11482, 32696, 43696, 20491, 7890, 23746, 29413, 34944, 38869, 11709, 38870, 44859, 38274, 24708, 35158, 7832, 32701, 32702, 19633, 38439, 40713, 17367, 31547, 42777, 8335, 18437, 36097, 42869, 13716, 28233, 17676, 18230, 16792, 26540, 27752, 43206, 38206, 43703, 36260, 47172, 9578, 33221, 30604, 26686, 36692, 33654, 34403, 9625, 10683, 12969, 7554, 26071, 38109, 47083, 36100, 10436, 29971, 32071, 29809, 44350, 20422, 26373, 25784, 31578, 47174, 43501, 20500, 34723, 38210, 39924, 37688, 46257, 46308, 26517, 26518, 17015, 25515, 26846, 38883, 11779, 24203, 26690, 39925, 10213, 46033, 26794, 39828, 27933, 48419, 34952, 31822, 36262, 46770, 29642, 29643, 20731, 32083, 8873, 24948, 29343, 16868, 39036, 19717, 47657, 18779, 14708, 23833, 22212, 22213, 19090, 43444, 9961, 20638, 33616, 28356, 39936, 38499, 10980, 41353, 34953, 11185, 10525, 12516, 24318, 40341, 33620, 42877, 21365, 12214, 9966, 30823, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +136: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 11611, 39783, 33828, 26429, 31552, 43719, 9885, 24524, 45590, 41045, 24730, 47479, 45553, 40077, 26796, 40342, 30643, 32725, 20319, 27219, 17490, 32854, 19311, 47948, 21011, 30062, 17573, 27617, 14536, 24028, 21008, 23481, 27721, 24241, 11546, 24567, 31832, 28859, 25895, 13723, 39949, 47445, 25685, 24242, 25686, 14999, 42393, 29821, 28303, 16465, 21980, 43654, 34610, 38935, 9520, 32119, 32261, 13725, 9521, 26673, 32124, 21022, 47493, 47851, 41216, 18711, 29083, 29499, 29087, 40441, 47224, 26610, 14390, 22368, 27618, 39179, 40508, 41744, 22490, 44906, 32037, 25304, 41129, 34642, 39440, 36935, 39809, 20832, 39455, 41464, 18211, 38094, 12654, 10943, 38099, 12659, 47818, 17802, 32120, 42564, 42562, 9316, 15672, 44230, 8833, 9815, 42662, 33481, 10462, 15101, 16945, 14818, 34705, 20886, 28141, 47156, 12396, 42993, 47214, 47160, 21057, 46818, 40109, 32407, 46653, 32595, 31479, 21107, 22279, 44813, 27037, 9879, 7577, 28711, 18852, 32408, 19966, 37356, 25440, 12295, 8048, 29450, 42335, 48555, 8449, 33742, 35982, 21874, 17713, 41185, 40701, 46409, 42710, 29267, 9082, 12774, 37498, 15427, 16949, 46916, 46948, 32412, 29368, 43021, 26899, 37312, 28148, 16244, 41122, 46209, 31966, 8136, 44532, 38954, 27257, 9146, 9090, 15242, 10792, 10787, 22942, 32603, 20546, 20017, 20369, 9160, 20913, 14329, 15894, 32823, 47406, 16771, 43340, 9429, 25059, 22375, 40577, 47726, 12498, 40757, 23302, 22754, 28714, 34651, 20022, 23345, 10583, 24301, 21968, 33889, 30281, 15954, 43119, 44558, 46414, 25478, 31909, 32391, 19819, 43120, 9322, 47727, 34811, 33382, 32394, 24296, 24664, 24758, 22947, 20256, 15069, 9908, 8507, 23311, 36218, 44920, 25321, 10796, 10119, 11059, 13936, 8835, 24864, 33683, 29518, 29519, 14682, 44768, 26421, 17081, 41783, 13611, 36453, 47021, 21675, 42856, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +137: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 30564, 17076, 16560, 22755, 30434, 36456, 36366, 15468, 10974, 40282, 8685, 13254, 23318, 13733, 40710, 40711, 17724, 44921, 7974, 8013, 15469, 44318, 37159, 41796, 18883, 8170, 11204, 26157, 29459, 12364, 45146, 35680, 16256, 12155, 18508, 32697, 44922, 32890, 28232, 21487, 35624, 7833, 37224, 10801, 33194, 28722, 43611, 21077, 30962, 18511, 22952, 24695, 23596, 24180, 46287, 34150, 26163, 43207, 13191, 40314, 39382, 38110, 8840, 9621, 19450, 31244, 33340, 7975, 39722, 8553, 15321, 20293, 47700, 20294, 12038, 19644, 12376, 45258, 14519, 9227, 39826, 40419, 8900, 32507, 26687, 23608, 7585, 45549, 16923, 9640, 35501, 28999, 9914, 24767, 8611, 21134, 12512, 34604, 36003, 8612, 23617, 15331, 32852, 46861, 13844, 34607, 37510, 34416, 7776, 40177, 9259, 10479, 23571, 25678, 38991, 39404, 23638, 46289, 12329, 21832, 45379, 34166, 20334, 29378, 43297, 23648, 41495, 38687, 38688, 42331, 15032, 35925, 15448, 15060, 15513, 7731, 17691, 19498, 19506, 20347, 16598, 8721, 41866, 16772, 22125, 29948, 26900, 27384, 27385, 27589, 34341, 35020, 9906, 26366, 22146, 27400, 36686, 24680, 42347, 47022, 22291, 38968, 33556, 37824, 39126, 36588, 44339, 23669, 14247, 13675, 31491, 29423, 19881, 27754, 43708, 16321, 32012, 45991, 21264, 16616, 12724, 20438, 26379, 32166, 20196, 37911, 22230, 32018, 26382, 23680, 33966, 12852, 16628, 20345, 16595, 41854, 16752, 27374, 34303, 9899, 23654, 22106, 19779, 38955, 12813, 36577, 44308, 16313, 21244, 32158, 20658, 31857, 21108, 11862, 22126, 46949, 10283, 19550, 16350, 12446, 48012, 12881, 33640, 18475, 32231, 15963, 34368, 21028, 16856, 16159, 11266, 21029, 19186, 31912, 40487, 35299, 28510, 19430, 26036, 47040, 45662, 8572, 40499, 18236, 33655, 16179, 47110, 41204, 11289, 38904, 42805, 24604, 22237, 38931, 41961, 38938, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +138: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 41613, 41614, 13349, 15419, 31858, 31859, 20758, 17823, 19764, 14454, 41377, 13153, 17967, 9880, 36241, 40739, 20904, 42711, 32598, 41378, 43402, 33574, 30751, 37313, 19780, 41379, 43403, 14082, 14825, 41521, 42155, 35118, 33946, 43410, 40391, 22127, 39972, 28422, 10415, 44023, 46831, 40595, 14654, 40442, 10221, 33799, 41640, 33034, 47824, 40830, 43047, 43048, 35269, 10665, 17567, 33890, 17638, 40916, 46416, 47580, 46600, 16295, 48014, 48110, 45854, 16418, 15449, 20257, 13236, 25308, 12882, 42118, 24428, 28343, 29370, 47351, 15714, 43085, 21881, 42341, 45765, 42729, 42730, 32138, 46142, 30135, 8481, 40618, 31983, 7691, 12197, 48369, 36169, 47512, 11634, 46223, 43904, 40835, 41328, 43121, 18815, 17650, 34369, 9795, 40029, 34132, 17776, 9837, 16304, 16857, 32232, 19019, 20946, 18476, 15567, 39754, 37814, 33893, 47355, 36879, 27273, 45860, 27774, 14209, 18876, 41658, 40598, 16561, 14392, 9053, 36675, 42745, 23997, 47416, 23079, 22968, 38430, 44579, 36276, 19841, 47024, 32614, 11892, 23772, 14095, 23098, 14293, 34380, 36813, 12449, 8171, 9940, 44174, 22778, 31373, 31488, 34704, 7399, 44448, 40033, 10591, 21074, 39645, 38435, 38639, 15871, 35124, 9304, 19033, 21412, 34844, 46474, 34845, 13613, 18404, 10209, 34790, 20968, 22720, 32001, 11812, 39981, 35479, 37761, 39466, 14730, 10681, 35756, 43166, 28606, 43440, 13172, 29844, 47909, 10044, 10384, 47817, 19853, 30454, 35942, 47795, 37997, 21682, 31677, 13432, 46603, 45531, 48273, 30958, 47910, 24889, 20403, 11275, 17475, 26349, 33953, 8837, 18491, 29938, 44330, 13264, 40788, 29951, 34399, 41033, 34400, 19190, 18492, 14248, 47231, 12964, 40154, 15310, 30378, 36777, 20414, 30710, 44638, 48040, 47656, 39032, 19065, 43364, 7406, 39477, 28262, 10437, 15035, 47425, 42058, 41923, 18772, 41034, 15986, 29157, 30459, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +139: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 27983, 42504, 38100, 40495, 36287, 47291, 33610, 20296, 30202, 23271, 18823, 19291, 15920, 43709, 27282, 40001, 27428, 39035, 31191, 10388, 41245, 36390, 35342, 7954, 10751, 30967, 34405, 20532, 44862, 40317, 17740, 36188, 42248, 42249, 25837, 44356, 8808, 11838, 31704, 24204, 27806, 27807, 33656, 46263, 27781, 20308, 45550, 20847, 24717, 25786, 9557, 29198, 16981, 38980, 47935, 7557, 7558, 21178, 46264, 42797, 18142, 20569, 26657, 10258, 17379, 18443, 10061, 40800, 45619, 33328, 38905, 45667, 13841, 46615, 28358, 23618, 14109, 43640, 22220, 19480, 48492, 20736, 9290, 19099, 47705, 38503, 45598, 45714, 34230, 31389, 35965, 45599, 30384, 34047, 41047, 45486, 35970, 12529, 35514, 39565, 19485, 20797, 21366, 45997, 28301, 42624, 7302, 45888, 29899, 18964, 18502, 43270, 43271, 33621, 32498, 29046, 31101, 13851, 35796, 18378, 47298, 17491, 7369, 43647, 20449, 44695, 20328, 19111, 13646, 46270, 41161, 45374, 24032, 33967, 38138, 10074, 24613, 42808, 8759, 46276, 41962, 14282, 11097, 38142, 11098, 42379, 9995, 32499, 43513, 23645, 10482, 40189, 28867, 18556, 45381, 43307, 12539, 45903, 41976, 13662, 41606, 19727, 13342, 15400, 32568, 19336, 20864, 17965, 36239, 32496, 33563, 30715, 37293, 41362, 42899, 41363, 19728, 32571, 20510, 18973, 29172, 21840, 41496, 28416, 40818, 14069, 26346, 40584, 35110, 15040, 33789, 14639, 22080, 46590, 16387, 17556, 30100, 48357, 34294, 40610, 45750, 35239, 46394, 12862, 47240, 11614, 31950, 46127, 8408, 42938, 42651, 23063, 23986, 34304, 16552, 34103, 19531, 18843, 10542, 47392, 33856, 18462, 12428, 16286, 32194, 16824, 41298, 42965, 46504, 15552, 39741, 9828, 19170, 40823, 47248, 21058, 38419, 44410, 31359, 38605, 15858, 44156, 18985, 23092, 34842, 35113, 14292, 31669, 47401, 48262, 29137, 13600, 47870, 14715, 22692, 37946, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +140: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 44252, 33840, 33940, 13154, 10014, 24877, 47814, 35454, 35917, 33941, 43022, 27971, 10416, 13220, 18813, 20371, 40116, 41233, 42457, 38058, 14173, 44533, 40999, 9924, 47989, 7388, 41874, 12926, 27263, 29924, 40744, 27785, 12525, 35270, 40253, 42204, 7938, 34357, 30933, 27390, 21157, 26637, 46227, 20268, 27780, 35932, 45597, 31319, 23593, 30376, 22168, 41909, 31091, 45866, 10476, 16388, 30921, 17907, 39191, 19563, 17927, 17196, 17843, 38884, 38885, 19206, 24949, 17288, 13647, 25689, 13525, 20477, 30683, 34344, 24302, 12708, 37553, 8332, 34673, 39668, 14987, 47119, 47133, 41977, 41979, 34245, 11231, 18859, 37258, 43049, 37259, 43050, 20120, 7665, 18062, 14195, 11155, 39805, 18677, 20145, 22743, 15568, 21892, 15127, 38826, 8940, 17468, 44618, 47426, 19990, 14881, 38886, 9228, 38167, 18603, 8949, 12842, 48199, 14887, 43258, 46876, 8043, 9864, 7456, 29778, 28155, 29713, 16280, 28160, 44167, 13116, 27886, 35025, 40653, 18584, 23312, 17652, 17464, 27896, 7468, 26923, 24171, 28511, 8386, 44461, 19991, 37118, 26809, 29810, 38887, 43224, 21934, 27930, 11142, 35966, 18557, 22257, 8116, 46329, 44806, 15420, 9428, 16221, 36252, 42712, 17421, 37587, 30050, 19257, 14586, 35893, 16661, 45508, 46951, 14389, 47581, 34358, 8482, 48015, 14391, 16891, 29950, 8678, 26594, 12301, 34079, 23125, 14765, 36699, 42732, 10727, 26908, 17717, 8483, 26004, 25216, 19021, 15569, 29932, 48016, 20066, 40932, 45585, 20696, 15570, 45390, 20385, 43606, 41393, 46475, 33760, 8941, 8942, 31913, 33761, 11374, 45395, 47280, 23550, 45356, 11710, 10385, 33667, 36590, 29525, 16068, 39467, 26617, 20404, 35481, 15483, 36024, 11813, 11814, 47043, 19432, 46082, 13676, 21251, 40601, 11542, 45154, 8020, 45289, 23553, 15057, 9595, 19463, 34091, 43225, 47701, 15502, 16322, 33114, 45551, 24950, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +141: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 43240, 7801, 10458, 37691, 47099, 47804, 8811, 45080, 45629, 12485, 45367, 41944, 30358, 33622, 37694, 43725, 21267, 15727, 39504, 45400, 8624, 13648, 34575, 41958, 33671, 41163, 25743, 15731, 45402, 8111, 46318, 15403, 44795, 16217, 9427, 45496, 39421, 7782, 46070, 19238, 46885, 14572, 35883, 30048, 8670, 16287, 47545, 16655, 14385, 20355, 8200, 34323, 36695, 16880, 23117, 12282, 26886, 14749, 17711, 42689, 45583, 46918, 20057, 18991, 47981, 25214, 25968, 45388, 47982, 15561, 21206, 31886, 46462, 23544, 33756, 15450, 13670, 19395, 34561, 33666, 11701, 8484, 47269, 16063, 29515, 12400, 23547, 15049, 47792, 15470, 47690, 33112, 45532, 41925, 45357, 45077, 45627, 33611, 43710, 15728, 10822, 38760, 33800, 28273, 36880, 39105, 10503, 17727, 10519, 46286, 39263, 36102, 48288, 48287, 24376, 21510, 15421, 46134, 15674, 30684, 33576, 31730, 43473, 39532, 47990, 22128, 31567, 10722, 11599, 10467, 10468, 13237, 21668, 10225, 12783, 39096, 45855, 22147, 44993, 31984, 19594, 10737, 11163, 16517, 41240, 48017, 36651, 13988, 25065, 15682, 35581, 11894, 38969, 46156, 35300, 43491, 21755, 20405, 32351, 36147, 11576, 11984, 26038, 32159, 12572, 31816, 48041, 36385, 32009, 10902, 18787, 31339, 31301, 20792, 45487, 36484, 14375, 45347, 45348, 48308, 29244, 8044, 22938, 22606, 13884, 22129, 15112, 10447, 20247, 14661, 46832, 35671, 44982, 7721, 30540, 44983, 31166, 37433, 35828, 43087, 28657, 25310, 27044, 7693, 13187, 22902, 37366, 19974, 11602, 29468, 30846, 47583, 21669, 13027, 46740, 15117, 29324, 21886, 33497, 9278, 28499, 21882, 24429, 16033, 42747, 19407, 14035, 39540, 20602, 14036, 47417, 32233, 22987, 47635, 16897, 31751, 23233, 39756, 10861, 26005, 29933, 47000, 20028, 36687, 9448, 20382, 12201, 31268, 8508, 39356, 14037, 19408, 21751, 19842, 34535, 37074, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +142: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 11270, 21413, 28806, 39901, 9381, 41194, 12059, 28036, 34536, 24838, 43915, 20700, 11065, 31277, 27976, 35757, 20406, 30598, 38324, 37998, 11548, 20969, 19621, 28813, 21684, 28814, 26335, 26039, 24101, 18509, 21913, 10745, 37643, 32240, 36319, 9202, 48330, 31448, 42863, 11901, 48190, 9451, 48191, 29674, 47044, 46541, 13034, 46759, 44341, 13958, 13917, 11364, 43921, 47203, 12965, 45738, 10455, 11320, 20407, 16522, 36098, 21824, 15312, 48333, 13265, 29942, 32788, 29158, 36386, 9819, 37209, 20297, 12624, 12084, 30463, 35771, 31192, 28670, 12996, 36391, 19647, 28827, 26656, 25459, 45365, 8586, 10954, 26082, 24951, 11908, 36047, 12326, 35348, 39037, 23239, 19475, 46771, 31197, 12843, 29344, 48200, 24718, 8309, 45429, 28674, 8905, 37196, 21778, 12726, 9731, 39392, 14527, 11189, 47179, 13877, 9111, 11912, 11913, 22222, 22223, 25237, 35687, 31302, 22067, 30385, 24895, 13878, 11929, 16683, 45488, 12219, 8619, 8620, 47482, 21942, 11186, 31391, 13886, 11094, 19491, 38572, 45038, 28676, 25239, 25110, 46780, 24606, 47127, 9988, 11193, 13769, 38139, 25690, 25244, 39405, 38144, 48386, 23646, 40361, 32481, 33042, 28868, 35806, 32123, 19676, 11931, 12114, 39046, 23225, 22259, 25246, 33847, 16146, 12352, 14827, 31976, 36419, 13989, 13990, 16160, 23747, 32563, 26424, 7297, 19433, 21756, 36131, 22810, 23884, 41805, 27023, 22533, 32014, 25790, 23890, 14005, 46774, 41945, 36424, 12671, 43658, 44721, 10292, 41504, 16834, 22280, 38055, 44977, 40439, 12285, 40997, 14577, 32600, 33492, 23094, 34516, 37260, 10417, 12296, 14174, 28157, 30542, 26825, 32915, 23095, 31018, 47665, 17825, 18110, 32051, 23126, 12883, 25312, 12302, 7517, 46418, 14589, 23082, 42095, 29591, 8154, 16351, 16352, 29454, 47585, 32748, 14197, 7695, 47306, 46838, 42205, 22615, 43088, 46978, 34372, 30138, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +143: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 14334, 16205, 21745, 20773, 16715, 17654, 22409, 32234, 47273, 45312, 47001, 33759, 24887, 44602, 33699, 44046, 37678, 43487, 46234, 37638, 15381, 31630, 47282, 28512, 24090, 46242, 45982, 24890, 48033, 18892, 37762, 11577, 17082, 22475, 42864, 29630, 31138, 16965, 28667, 30146, 16642, 8177, 26336, 29280, 24843, 32931, 32789, 19637, 42059, 39478, 11352, 11852, 11487, 15987, 44057, 17849, 34542, 15494, 48042, 15313, 38168, 8237, 45937, 44352, 38169, 36189, 16454, 46383, 39269, 44863, 26083, 20639, 10256, 47671, 38117, 19160, 41212, 46268, 20793, 45993, 9310, 23870, 14888, 14469, 25172, 15999, 33326, 22485, 18613, 42879, 19664, 47808, 14347, 44696, 20450, 17859, 23967, 29556, 24607, 24618, 25897, 25247, 10290, 41492, 16819, 40989, 12263, 32587, 47662, 14147, 26313, 32909, 17821, 16337, 22603, 25851, 47304, 46819, 42995, 18094, 46402, 24378, 42187, 31615, 34336, 45308, 46919, 20764, 47253, 32205, 25969, 20765, 46218, 15366, 24878, 28659, 8155, 18867, 16952, 37753, 24833, 11570, 48004, 11847, 15274, 19595, 38162, 34530, 29550, 44848, 39253, 28661, 26044, 46250, 25159, 40375, 16353, 11636, 11640, 29875, 48447, 8737, 23454, 23455, 11647, 41173, 7884, 8745, 8746, 8747, 41174, 8751, 7836, 11662, 8756, 8758, 10398, 32866, 28986, 28989, 10063, 11556, 11554, 42561, 32623, 8636, 8637, 34175, 44184, 24896, 12168, 9895, 15619, 30898, 44188, 44189, 30721, 41366, 42644, 17094, 26600, 30403, 45221, 37771, 37105, 47811, 43666, 12169, 45164, 21188, 17406, 41500, 14549, 38590, 12170, 14072, 17120, 46290, 12171, 21189, 44882, 37848, 24652, 10707, 10319, 28573, 36635, 46886, 42663, 21459, 19948, 10401, 12272, 14355, 12805, 30226, 47546, 13194, 45497, 36198, 34623, 37342, 32168, 21376, 18922, 13454, 44157, 27255, 8293, 19363, 28203, 42690, 20895, 47755, 25032, 41372, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +144: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 37214, 35114, 34324, 36202, 29402, 18056, 28578, 13896, 21463, 41092, 41373, 9299, 43950, 39864, 31874, 36979, 47459, 31875, 12913, 12914, 37039, 21390, 36437, 13533, 42842, 46295, 36826, 16740, 38612, 34337, 10628, 35253, 45470, 32382, 15014, 24658, 35657, 18926, 24290, 16402, 23510, 8227, 12129, 22132, 8294, 18658, 12253, 25983, 44025, 47261, 21213, 44534, 11547, 23178, 37791, 36443, 43053, 12193, 44886, 26363, 8320, 29143, 44285, 12555, 35424, 13904, 35462, 41774, 11342, 10728, 36348, 44561, 34208, 46349, 44032, 45181, 14198, 8731, 17098, 14199, 39241, 18745, 31902, 12643, 12198, 37873, 28254, 42733, 16306, 42217, 11125, 25488, 41391, 35737, 12944, 10738, 44889, 35287, 35738, 31086, 26535, 42218, 16672, 46025, 7539, 34382, 9411, 10873, 35301, 45422, 46178, 13912, 12954, 25773, 10746, 12080, 25153, 48474, 32520, 30959, 41101, 44622, 42768, 14237, 24928, 21923, 34401, 8573, 42171, 26618, 40307, 35502, 17127, 45873, 36282, 14372, 27563, 8655, 8659, 23422, 24215, 44871, 42267, 26391, 24322, 42939, 36750, 12736, 30665, 43809, 33470, 17207, 44210, 26731, 32808, 31711, 38678, 23106, 15085, 22548, 8920, 14610, 40509, 28124, 40371, 33931, 7891, 44796, 12054, 19226, 40085, 7902, 38412, 21847, 43995, 17211, 35819, 31792, 8409, 29685, 9000, 33736, 8117, 37484, 12863, 48260, 42438, 25126, 23064, 16753, 47393, 34104, 22891, 44496, 15553, 17590, 31412, 46888, 19532, 18564, 18051, 40515, 20581, 38945, 16782, 29112, 23718, 20007, 23007, 46592, 23744, 45168, 41622, 10543, 13526, 38717, 26112, 15357, 38457, 15205, 15859, 17494, 23719, 20009, 16077, 22307, 43739, 9135, 39075, 8128, 24379, 45099, 9363, 39966, 30414, 29769, 31618, 16991, 47254, 35918, 48263, 30108, 23501, 28485, 10366, 44018, 9383, 39703, 12348, 21731, 43838, 31262, 42588, 13483, 41755, 26962, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +145: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 33008, 8146, 14175, 34517, 22020, 44427, 45173, 17998, 23179, 39706, 39707, 35132, 36063, 27740, 38785, 32867, 11258, 48005, 48269, 42464, 38427, 39713, 45110, 17521, 43817, 8379, 26909, 10239, 15125, 24974, 43423, 47646, 18350, 31269, 41576, 46015, 26698, 31270, 40840, 12740, 8603, 41332, 8529, 45603, 37881, 46605, 26925, 33588, 25146, 30199, 12365, 27130, 42494, 9638, 23024, 14981, 27131, 48275, 23131, 24766, 45361, 9956, 43964, 19465, 41933, 9968, 12107, 25373, 18546, 38923, 14992, 45371, 24585, 44083, 13317, 31861, 47871, 29546, 47344, 42843, 15640, 44255, 21557, 41756, 48441, 26826, 46463, 40900, 13540, 46346, 14828, 44817, 15533, 45174, 35867, 36501, 30847, 37370, 11885, 17191, 16354, 35215, 30248, 11060, 45313, 27768, 23880, 11573, 11061, 44171, 36881, 46844, 39357, 20551, 10598, 43545, 37075, 20778, 26982, 22950, 35371, 24056, 30337, 48451, 17141, 41903, 33450, 28699, 37888, 26045, 23665, 41588, 36223, 29503, 45930, 11520, 35943, 48455, 47796, 11902, 23322, 36387, 39479, 13585, 18232, 40846, 40547, 36001, 31923, 11523, 45199, 30257, 22642, 35163, 27283, 32242, 11115, 12085, 45201, 43937, 7512, 45779, 17144, 36104, 20561, 29998, 10459, 44676, 24205, 45430, 23834, 42621, 20566, 9311, 20795, 38906, 35968, 14406, 29002, 43272, 24319, 21943, 41953, 43273, 28700, 32858, 41288, 11095, 41964, 25395, 27324, 27325, 28702, 40464, 20806, 33455, 27330, 41973, 8708, 9435, 34346, 44168, 34360, 34417, 24281, 47215, 42423, 24885, 24216, 21100, 21101, 31862, 42838, 24973, 12596, 46097, 13318, 30238, 31877, 7661, 15361, 46340, 46724, 7662, 26275, 15362, 28205, 13159, 33579, 31351, 22858, 11370, 48103, 14553, 18422, 18423, 17325, 15759, 30544, 26760, 32646, 12927, 35017, 39086, 43054, 9854, 34116, 37103, 38762, 29079, 30929, 31889, 20372, 29868, 42403, 21117, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +146: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 7709, 14621, 10422, 40534, 13519, 44995, 30934, 15118, 29714, 28161, 40396, 14089, 22149, 13906, 16248, 43478, 31025, 7855, 33055, 32541, 10226, 28969, 14829, 45141, 42851, 31520, 29715, 16995, 17920, 43417, 22287, 13165, 43090, 47164, 39013, 15599, 32647, 19228, 35870, 22555, 44826, 25859, 14200, 31521, 13951, 48025, 28541, 37066, 34373, 27662, 16358, 22622, 25322, 9024, 35026, 16426, 9177, 29722, 44581, 35027, 48518, 9303, 44040, 36537, 20067, 46363, 34264, 34374, 46746, 21888, 9909, 34133, 34134, 41136, 46100, 8053, 17655, 8510, 34032, 11164, 34215, 9178, 47590, 10862, 45227, 30182, 36882, 31033, 15275, 45819, 25567, 30943, 15276, 24446, 44999, 29723, 41997, 7880, 9098, 20948, 16252, 34659, 46542, 28034, 39014, 39015, 12945, 19981, 28076, 35988, 18586, 42852, 34918, 23128, 22376, 8109, 20386, 36889, 40537, 17935, 20702, 10800, 14395, 26469, 9025, 34383, 27977, 19983, 43430, 22292, 47278, 11004, 39777, 36890, 27904, 24057, 19420, 44603, 40945, 32544, 48496, 47025, 31755, 33584, 10874, 39543, 40538, 32237, 29726, 36704, 47422, 39817, 27748, 22978, 42229, 39365, 39458, 40660, 22293, 9760, 23861, 19605, 29843, 32833, 27352, 42603, 43360, 16717, 7438, 13378, 44113, 33281, 22583, 31039, 26232, 34926, 7261, 13169, 17359, 32978, 34388, 22781, 31919, 39911, 46243, 40712, 45414, 36378, 12138, 16523, 17980, 47171, 36944, 26158, 26986, 23751, 37683, 40403, 45123, 8178, 38645, 35312, 44625, 9942, 13365, 9203, 17360, 20034, 17941, 11927, 14982, 9911, 37644, 47048, 34941, 41029, 18438, 44451, 36656, 23130, 47913, 26295, 40540, 31576, 33995, 17258, 26296, 42407, 11175, 45625, 21686, 39655, 36705, 26770, 30394, 24181, 29374, 32979, 10599, 15872, 24304, 36259, 8993, 47602, 46479, 37022, 25572, 48460, 21924, 10188, 44891, 20415, 15770, 13176, 36227, 10161, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +147: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 26338, 17084, 25350, 29734, 26057, 24194, 31189, 30285, 21996, 27671, 48461, 29635, 7471, 29735, 39664, 41436, 47763, 24061, 22640, 22811, 35767, 23323, 13620, 28453, 11458, 48044, 46551, 8205, 28823, 48252, 11524, 35948, 13367, 30606, 31050, 47799, 19451, 44640, 21172, 16645, 26845, 10123, 36593, 38871, 24806, 36228, 16492, 12139, 34679, 46382, 26058, 27214, 26059, 18406, 8841, 15543, 23531, 22748, 14624, 38672, 28234, 37686, 45358, 18286, 12697, 39378, 29919, 19205, 24891, 14442, 27078, 22416, 43614, 12795, 24808, 17011, 39553, 13719, 37088, 37896, 48197, 15503, 32791, 19649, 14254, 22297, 10457, 36392, 45709, 18372, 42062, 13764, 39270, 44353, 22786, 34038, 18780, 38016, 15504, 46107, 9766, 31454, 34155, 17854, 23210, 36594, 27986, 31298, 31299, 18032, 36945, 11780, 18605, 42520, 27673, 20423, 13735, 20416, 35081, 23211, 18239, 41036, 14000, 20988, 46384, 8656, 47175, 48049, 40670, 42410, 27025, 29305, 7264, 21086, 31151, 26994, 35638, 12215, 7955, 39273, 24723, 35642, 22436, 25526, 42258, 42527, 29044, 38275, 32718, 36109, 35643, 31199, 24527, 34874, 11459, 9239, 29345, 12164, 8338, 33197, 15771, 48051, 38444, 43713, 18837, 36662, 25527, 22417, 35557, 33397, 35168, 37692, 17547, 46490, 46491, 23754, 43242, 44869, 36134, 28833, 38981, 19994, 15922, 26542, 21976, 35127, 48375, 35644, 39313, 14988, 38170, 28113, 25943, 35645, 29199, 48348, 37144, 40676, 16684, 41159, 24810, 34477, 7621, 26692, 27934, 26380, 8604, 38120, 25535, 12848, 33153, 48234, 42799, 26091, 7561, 22790, 31203, 11978, 30472, 10167, 36048, 26722, 43849, 10064, 14989, 21430, 8812, 34690, 25833, 40717, 11784, 25662, 45368, 20440, 9627, 24228, 39316, 38907, 22535, 34783, 8312, 46086, 31152, 10528, 26101, 18447, 19665, 30360, 19103, 31246, 30191, 25175, 33327, 40718, 33156, 10529, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +148: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 23283, 34958, 25538, 28360, 18789, 30029, 35516, 14534, 31341, 32186, 42069, 36049, 39831, 22231, 20642, 48481, 24958, 31465, 23839, 13845, 40420, 45326, 19486, 20321, 47180, 12753, 41442, 43773, 13795, 22232, 29045, 45327, 30386, 36708, 14535, 10530, 13341, 33623, 22392, 20205, 14796, 35521, 25946, 21979, 19107, 44697, 24739, 47941, 31304, 20453, 47950, 23964, 8625, 36709, 18615, 42539, 13963, 17087, 12518, 21950, 14890, 12221, 8193, 43282, 7370, 48209, 41406, 13183, 47623, 17814, 47809, 19497, 28860, 17699, 19323, 31636, 8961, 43652, 23286, 28922, 40807, 20455, 20456, 31102, 9822, 47131, 27621, 24257, 23970, 19499, 48405, 23146, 33672, 29661, 23486, 13654, 34879, 11590, 26220, 8826, 8077, 25948, 39697, 23044, 25695, 14286, 25898, 40413, 20458, 23713, 9271, 20220, 42380, 9996, 39736, 20460, 38940, 16695, 9592, 28870, 24037, 11932, 32125, 29379, 26403, 48388, 26260, 45436, 28873, 22261, 36143, 47495, 23652, 21094, 15539, 42821, 46320, 13313, 46089, 30164, 24970, 37102, 30912, 11369, 33482, 33049, 14487, 13148, 27068, 29077, 42020, 9853, 40522, 15594, 9354, 35862, 21860, 13897, 10220, 47157, 28142, 8129, 15750, 7850, 31008, 42332, 31477, 22281, 38420, 16240, 22553, 14617, 19227, 36966, 28965, 7707, 44511, 31013, 46518, 31014, 16403, 9084, 22607, 30214, 9300, 9147, 44978, 48382, 28061, 35983, 20058, 13050, 44019, 36701, 9148, 25282, 34852, 30923, 26868, 8045, 34338, 41123, 35672, 8450, 28486, 29709, 13944, 40529, 22578, 23857, 14361, 26761, 41430, 44100, 10569, 20018, 42400, 28339, 46952, 12499, 36868, 26148, 13160, 43341, 22399, 45688, 47407, 39007, 13354, 13377, 39349, 18424, 32217, 33372, 17104, 13161, 16026, 27737, 46528, 33272, 20678, 42589, 10022, 11000, 36033, 7431, 43412, 32824, 47586, 23812, 30390, 38474, 23517, 36256, 24791, 22775, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +149: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 39882, 35609, 24297, 45624, 11156, 16996, 15866, 14090, 40704, 12134, 26286, 14972, 40397, 25566, 22384, 20258, 32971, 36315, 23740, 31570, 21670, 7241, 31177, 46285, 29150, 12136, 26833, 8204, 30566, 12690, 22709, 23313, 10120, 38807, 16488, 26367, 11454, 47761, 21158, 47002, 39358, 21990, 19201, 29516, 35929, 13360, 20387, 21893, 27208, 48019, 31445, 43593, 22412, 31184, 34927, 14220, 9761, 31278, 47169, 13760, 35153, 18760, 18588, 7262, 13710, 27019, 25825, 48026, 14772, 26983, 27915, 46480, 9204, 15978, 28815, 36132, 21974, 28816, 28111, 25501, 15844, 7949, 43169, 19987, 8943, 32698, 8794, 36045, 26717, 26371, 8305, 43839, 21423, 12793, 48335, 41147, 25513, 9957, 22205, 25005, 30353, 25931, 13835, 23609, 30383, 11928, 31194, 12749, 19300, 23950, 18607, 47937, 24724, 43243, 9821, 8815, 23476, 9989, 39732, 46048, 10140, 21558, 7578, 13238, 32002, 24985, 27309, 46045, 27069, 26549, 34729, 33541, 19247, 27070, 41641, 8465, 17326, 8466, 33495, 22385, 22556, 8257, 17921, 32994, 33170, 39449, 39450, 20134, 27701, 39193, 34824, 13544, 45695, 28410, 45861, 29593, 39285, 25324, 8736, 8511, 32995, 7334, 16610, 15968, 15969, 14432, 11271, 17975, 16786, 27707, 33261, 23353, 23788, 26116, 36773, 33439, 21752, 45012, 45013, 10045, 32160, 25227, 10124, 33462, 23354, 41590, 38207, 41675, 14250, 19139, 44641, 38208, 17986, 7976, 17982, 32165, 42317, 38211, 7860, 7472, 37897, 43371, 23397, 32361, 23610, 13588, 32244, 14986, 36553, 28834, 35781, 22418, 17685, 32364, 11422, 16618, 13563, 30713, 23165, 36113, 16620, 29986, 22499, 39167, 19104, 10068, 29901, 12584, 18616, 35792, 38215, 35685, 27065, 34727, 33530, 41608, 17303, 8399, 38242, 11414, 32991, 37849, 39418, 17874, 20100, 27683, 22506, 27087, 45683, 28405, 16756, 38186, 35715, 27690, 26113, 22398, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +150: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 14418, 15932, 17602, 23339, 21514, 44979, 23725, 13580, 44535, 41567, 10114, 39087, 38192, 19129, 41642, 14176, 10023, 23589, 32157, 19006, 23382, 32327, 17656, 36538, 12202, 32301, 17282, 18599, 15413, 15398, 23898, 13801, 40425, 30890, 38579, 15589, 46867, 43316, 42010, 13508, 14137, 34001, 7841, 29505, 22758, 45130, 32905, 46794, 29749, 21338, 14627, 42011, 43317, 46440, 20810, 10484, 14141, 31951, 12864, 48358, 48541, 13041, 25437, 7239, 37334, 37335, 8078, 9001, 15406, 19743, 25956, 25710, 10399, 40512, 14012, 25816, 27852, 20540, 34496, 14013, 39593, 14315, 16825, 44191, 15554, 33533, 22309, 31360, 40523, 11499, 15428, 8437, 39219, 33539, 34019, 46900, 30303, 13514, 44902, 46452, 11148, 39602, 12605, 28762, 45136, 39518, 29509, 14756, 48264, 43024, 13816, 26316, 43334, 21648, 11444, 10411, 29770, 25283, 36205, 39613, 25970, 34023, 39531, 43342, 47504, 42038, 32633, 39234, 10971, 41875, 43343, 34644, 12781, 44262, 25631, 37792, 37793, 28781, 13817, 35422, 7432, 18735, 20819, 35423, 43476, 15600, 41775, 18868, 15955, 45143, 38624, 23180, 7318, 39097, 36073, 19823, 46077, 12612, 7531, 39106, 43482, 33057, 32513, 25147, 37179, 12741, 20716, 35473, 35426, 7609, 39545, 14868, 28547, 14339, 19452, 12620, 38976, 43496, 47065, 18895, 25718, 38908, 24360, 24482, 24505, 47754, 18162, 46665, 35545, 22014, 28249, 43055, 32321, 41887, 31522, 30935, 40605, 41481, 19580, 16484, 18579, 47003, 16307, 22028, 11642, 43818, 21676, 11165, 18125, 45253, 26470, 44331, 11073, 13126, 35414, 17380, 38390, 34747, 16681, 11187, 45259, 43847, 19477, 38896, 11089, 25601, 24217, 28265, 41206, 45268, 19677, 19678, 44402, 44264, 41208, 28119, 15080, 33273, 28068, 38193, 14831, 29387, 45111, 24431, 10863, 41998, 25325, 23926, 7421, 7984, 38633, 13066, 12560, 18352, 38634, 13170, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +151: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 40769, 19843, 28081, 10435, 39913, 45776, 36774, 46481, 29554, 26987, 25342, 30460, 47287, 19286, 33442, 14688, 17944, 45874, 43367, 28513, 47607, 37274, 25160, 25351, 13473, 43616, 38655, 25363, 34746, 25364, 39271, 17947, 43372, 26619, 26620, 45155, 25598, 27236, 8958, 38662, 38121, 23403, 43449, 38982, 43259, 7303, 12487, 36309, 33158, 44698, 26102, 25663, 12328, 19666, 29396, 42072, 7738, 29745, 37918, 14998, 39174, 19915, 26591, 27184, 27185, 23971, 24628, 19329, 7304, 14805, 12331, 25696, 25396, 7374, 15003, 24641, 8030, 17754, 17755, 17757, 9066, 31612, 31613, 21405, 36502, 46364, 21409, 10510, 31694, 21414, 21419, 13080, 21424, 36509, 14666, 14680, 22585, 27297, 27523, 27520, 8056, 42495, 36595, 19109, 42547, 15933, 13319, 9792, 31028, 32609, 12814, 13702, 38625, 32610, 31529, 21226, 41170, 28973, 7710, 43483, 33035, 28172, 27905, 48371, 12204, 7881, 43146, 42348, 36221, 8174, 20841, 17936, 29455, 42000, 9026, 43363, 15979, 36225, 20971, 40147, 7402, 7403, 17772, 16209, 30848, 12210, 31327, 36742, 26652, 43793, 35413, 36657, 31383, 41149, 22828, 8288, 35773, 33682, 9032, 23398, 21694, 23491, 40327, 32792, 7914, 14309, 31823, 31824, 17686, 31388, 28090, 21697, 20181, 8660, 12796, 20190, 38173, 36192, 16262, 35782, 8190, 40175, 29346, 16000, 8613, 23405, 36050, 25793, 16934, 31343, 41175, 19492, 20213, 20508, 10099, 12222, 18382, 39576, 30995, 13656, 37511, 20222, 23653, 37853, 32611, 15289, 27051, 32293, 15980, 37999, 31384, 17266, 10211, 23399, 32801, 45205, 33829, 38025, 15997, 7803, 36193, 16263, 45208, 15818, 8614, 38032, 35525, 13651, 37512, 13657, 37842, 32588, 15206, 17248, 37980, 45184, 36179, 21554, 21562, 39373, 40310, 39383, 19483, 43329, 45252, 45185, 33721, 23913, 29636, 18788, 43623, 45211, 29655, 7414, 43375, 39787, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +152: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 18383, 42449, 13327, 31672, 23182, 39810, 34833, 17192, 40759, 42750, 40763, 14123, 35120, 23234, 30569, 17426, 44582, 37590, 7822, 13909, 12825, 12366, 29373, 30184, 25442, 10340, 21355, 24058, 17669, 31283, 14241, 14096, 38000, 40148, 23389, 33954, 42780, 42781, 17124, 13800, 44452, 30095, 24059, 15385, 20035, 36957, 19069, 23206, 20041, 26354, 36818, 10520, 43761, 45078, 18233, 17368, 21363, 37186, 37187, 30055, 23554, 37188, 48058, 48057, 11460, 13370, 23555, 35954, 17377, 30972, 22643, 12039, 41104, 31494, 42790, 33103, 36401, 14102, 14262, 41682, 38256, 22483, 43873, 47658, 41683, 39556, 40457, 42878, 44928, 33200, 12999, 13000, 20533, 23163, 24068, 23840, 30001, 37536, 26663, 11916, 42268, 17551, 31344, 16495, 41404, 41837, 19112, 10100, 32859, 27189, 8963, 39577, 30069, 25900, 23690, 28872, 32266, 42433, 13325, 31667, 17181, 39799, 34828, 40735, 40740, 37582, 16475, 13900, 30523, 7814, 35116, 17418, 44512, 25858, 25441, 30218, 21351, 20929, 20024, 36811, 17641, 43748, 21471, 22616, 42751, 30054, 19022, 37174, 17340, 43750, 43751, 22630, 36380, 43871, 14242, 47654, 41671, 14097, 28824, 26630, 12994, 33195, 17548, 24066, 10091, 32855, 30063, 32262, 14952, 8776, 16516, 15279, 39195, 45927, 8784, 33060, 7697, 35836, 25072, 16525, 41150, 33706, 21931, 8802, 34954, 38027, 42067, 42260, 35172, 22419, 35173, 14470, 25536, 38987, 25602, 29974, 29975, 25543, 8819, 8820, 8821, 24962, 8822, 33333, 15004, 40684, 14937, 42015, 45905, 8767, 33052, 21889, 34919, 35147, 42230, 25493, 29966, 8795, 8796, 14667, 14474, 14698, 14664, 34198, 34191, 9469, 19373, 13351, 35009, 37318, 45851, 35533, 39770, 37264, 32612, 44562, 22036, 10855, 43484, 14592, 14593, 35537, 43479, 36972, 42752, 48565, 8513, 21030, 36180, 8011, 11648, 36715, 35028, 8012, 34376, 14039, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +153: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 17164, 32615, 36587, 20703, 20032, 9027, 42231, 36891, 11649, 39778, 42099, 22042, 14368, 41914, 23924, 38830, 9477, 9105, 28438, 14243, 9384, 22345, 13555, 35313, 44332, 34392, 42245, 19158, 17085, 34393, 20417, 47800, 9029, 39665, 9389, 42509, 35949, 14690, 46031, 38104, 16646, 14251, 29099, 45202, 18241, 18782, 36719, 19082, 20182, 18034, 7355, 36105, 14839, 38112, 16455, 9767, 35128, 36111, 9240, 15815, 39155, 23273, 25599, 35169, 36232, 42531, 38171, 27812, 36115, 26660, 8605, 44687, 40677, 21181, 33160, 23284, 47709, 33625, 10906, 12488, 43275, 19487, 32509, 10532, 43859, 36196, 38135, 39789, 45893, 14840, 17177, 27186, 41965, 27824, 9997, 39790, 26405, 45382, 28309, 34171, 13344, 19340, 37298, 36052, 37253, 39055, 32589, 44491, 10823, 14564, 43465, 20349, 34306, 7997, 34996, 14014, 42664, 14357, 32502, 39765, 17603, 23923, 20667, 38718, 9011, 9085, 13534, 14164, 44256, 28434, 22314, 17074, 19146, 39621, 16634, 9755, 23255, 16420, 35141, 9930, 42473, 27789, 9180, 25489, 40654, 21165, 26640, 33146, 47695, 28305, 34441, 23183, 17051, 39702, 14867, 9193, 28543, 8533, 9219, 37087, 17201, 14691, 20183, 7408, 7364, 15514, 39393, 45079, 40411, 14892, 30044, 40414, 26533, 44563, 15018, 17341, 12816, 37373, 46228, 10739, 41330, 47591, 46694, 29552, 40451, 32648, 33058, 45148, 38199, 46754, 12454, 26117, 44047, 9195, 8014, 22170, 37380, 43147, 31996, 38200, 32003, 21448, 30220, 46104, 44778, 29526, 47367, 21904, 47603, 29055, 21688, 29730, 45405, 20091, 25343, 46427, 35839, 15486, 42102, 34266, 8557, 37383, 37384, 35036, 25502, 26569, 29944, 36230, 47069, 32704, 36285, 13471, 41270, 32183, 33912, 21449, 14370, 17168, 9220, 47429, 43369, 26477, 47288, 12467, 17169, 25518, 21768, 35104, 31495, 26775, 23756, 17378, 37090, 41037, 37229, 22351, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +154: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 14128, 10636, 40501, 7282, 26084, 47765, 47295, 33830, 29946, 23327, 36233, 23532, 48201, 22727, 30627, 30628, 41936, 14692, 33227, 41937, 16002, 42320, 38666, 29958, 11785, 29959, 31057, 14693, 18790, 31054, 19209, 44367, 36406, 32249, 39279, 48203, 23213, 32794, 34957, 16531, 37395, 16804, 35176, 30984, 10620, 47113, 25539, 29659, 36294, 38988, 9636, 13643, 41954, 44873, 48282, 33229, 33626, 30647, 47123, 34752, 26103, 38989, 26383, 46038, 27942, 7625, 9487, 8823, 11787, 32021, 8622, 47124, 44708, 40806, 18449, 9113, 35362, 39950, 25179, 46003, 13881, 25549, 37398, 9728, 13093, 20648, 36711, 41966, 26396, 45895, 21332, 43298, 42548, 37329, 30045, 47386, 41974, 25703, 26128, 36307, 39737, 19930, 34765, 21794, 38997, 18558, 24273, 8829, 26527, 44479, 37332, 41295, 10703, 31952, 32642, 9123, 26111, 45404, 34250, 34997, 15414, 21638, 48261, 47547, 37344, 29053, 20078, 42966, 12273, 39850, 26550, 43330, 20589, 18418, 26448, 17153, 29922, 8768, 24116, 10629, 41867, 40470, 31480, 22315, 30546, 30547, 22699, 47757, 48159, 35264, 9470, 29955, 46980, 23191, 33212, 38626, 7605, 25490, 30944, 33585, 8785, 26369, 11754, 10046, 47375, 19899, 34750, 39726, 16397, 37953, 37968, 37969, 44288, 15715, 43094, 7485, 36954, 21072, 8058, 8175, 11605, 36421, 12885, 22911, 17126, 31284, 18028, 22989, 15982, 37210, 16101, 29940, 8590, 22645, 30880, 44359, 35439, 25791, 9253, 39940, 7925, 9254, 11609, 23043, 8978, 27817, 24960, 25796, 39946, 13653, 45401, 35442, 36426, 8980, 23045, 25901, 15793, 15797, 31374, 22561, 31356, 23841, 33259, 8770, 23310, 23314, 12817, 14656, 40661, 32418, 26837, 12455, 23319, 8972, 14447, 36658, 29731, 48046, 14449, 32422, 36464, 8061, 8558, 26843, 15304, 14340, 32705, 32006, 16175, 40667, 23392, 19871, 29639, 47631, 33709, 35590, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +155: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 36478, 24508, 8974, 48202, 12844, 29647, 35084, 46557, 32248, 48204, 34840, 20313, 37424, 18256, 23470, 21533, 30646, 24738, 46434, 8979, 29660, 26573, 33133, 26665, 26666, 33346, 40808, 25112, 30989, 30988, 28304, 18620, 23407, 28925, 8981, 25121, 32483, 13535, 13554, 28411, 17985, 39156, 13567, 17292, 13570, 13569, 21537, 10198, 44722, 44726, 15941, 41927, 15390, 31553, 16802, 48206, 25603, 16806, 33659, 44709, 16836, 27045, 19824, 30572, 15550, 23198, 19153, 7699, 30252, 27053, 40772, 41802, 39918, 24870, 44663, 37192, 30465, 37765, 24873, 38113, 15663, 10694, 29976, 8616, 27818, 19721, 40804, 11121, 41843, 45896, 44265, 12598, 32543, 20949, 7671, 17937, 37321, 13171, 19711, 40957, 14098, 14222, 33389, 17428, 37270, 27918, 21079, 33955, 7859, 44853, 29801, 25924, 38203, 18217, 25862, 45231, 14634, 14875, 28177, 44054, 29956, 27800, 17679, 39265, 32007, 17263, 29737, 25354, 37389, 9110, 31926, 30151, 15318, 8575, 11680, 38105, 21691, 13127, 7730, 44061, 16970, 29738, 28640, 40496, 35842, 8064, 15498, 45741, 21914, 16369, 34225, 13412, 12332, 35776, 20989, 34545, 18070, 39784, 14342, 7474, 37898, 46166, 47430, 43556, 25083, 26479, 36907, 36422, 43229, 9059, 38017, 20629, 22920, 16796, 39385, 15993, 18935, 23865, 15323, 22586, 40672, 13961, 22298, 36402, 27515, 33711, 45742, 35591, 31496, 44360, 28441, 46266, 16973, 16103, 35222, 38500, 31929, 33522, 30317, 18695, 36661, 24316, 33398, 33399, 22589, 27161, 10613, 24218, 48291, 38898, 43923, 33916, 48061, 30633, 46566, 39785, 28442, 11528, 19900, 13133, 31463, 16494, 47322, 13419, 23533, 14794, 28518, 43261, 23328, 26093, 21619, 10128, 21323, 26339, 25374, 48280, 24229, 27220, 48207, 47114, 28644, 18287, 44369, 12890, 34158, 33918, 18696, 36407, 18036, 40504, 47440, 23477, 48208, 45589, 8661, 8662, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +156: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 18697, 32252, 45593, 37835, 37836, 44372, 11490, 32796, 13280, 18794, 24815, 41827, 31826, 31827, 20314, 8341, 14271, 42071, 15522, 33105, 15694, 39205, 37425, 18259, 34418, 33022, 41049, 38175, 31146, 17552, 38446, 14637, 33232, 25546, 26543, 34232, 34162, 16623, 48065, 36298, 35704, 42269, 14117, 43876, 31062, 30649, 38176, 33024, 33928, 24741, 7567, 23921, 18907, 27722, 19916, 36668, 32024, 20214, 33920, 26670, 38992, 31931, 8855, 19917, 19909, 47484, 20509, 40682, 47660, 43860, 46039, 22537, 41215, 8879, 44713, 32025, 39835, 9115, 20749, 41358, 35363, 18800, 48483, 33633, 33634, 14475, 16939, 25180, 41359, 27549, 39044, 45622, 39733, 14935, 16629, 18074, 23036, 45594, 33234, 45898, 15699, 16941, 43801, 24325, 10171, 23975, 34611, 7372, 32861, 19928, 40985, 18387, 34612, 24635, 25123, 24640, 27626, 46387, 39791, 14290, 25903, 16696, 24274, 39412, 44231, 12597, 19702, 44033, 37265, 25913, 14633, 7670, 17657, 7725, 30139, 28637, 25860, 44041, 45729, 15459, 7726, 8054, 18064, 29792, 35832, 16788, 20959, 22584, 37988, 14337, 36892, 45586, 18067, 23020, 19845, 20609, 39367, 45733, 39779, 41334, 16100, 24182, 24697, 20165, 24306, 34223, 36659, 16966, 33391, 18686, 22294, 19855, 43918, 31632, 25355, 30608, 48277, 14689, 23324, 10125, 16493, 28514, 28641, 13128, 21314, 33913, 34152, 48047, 14928, 13270, 8337, 10165, 36394, 38172, 37832, 33102, 14257, 31821, 15506, 18783, 32246, 20501, 8658, 33225, 7560, 30629, 35700, 16619, 42259, 29415, 20191, 23919, 8854, 41214, 8876, 26662, 27720, 43850, 38123, 38984, 16932, 33627, 25177, 48482, 18380, 15696, 24321, 45894, 16649, 28712, 42853, 15281, 24447, 21525, 9308, 41895, 15358, 13118, 19411, 15050, 32887, 15655, 34140, 15052, 27749, 8016, 44773, 46698, 18364, 31538, 15134, 7827, 38204, 20166, 34147, 44629, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +157: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 15082, 42168, 22189, 22190, 29846, 18541, 46485, 8019, 41915, 41434, 46611, 14625, 15053, 38205, 29191, 12317, 15915, 32841, 25356, 27599, 15305, 37391, 27672, 24489, 8689, 47071, 15916, 44779, 11658, 32075, 39919, 10686, 12468, 21692, 42315, 16370, 13413, 44643, 42005, 44644, 41438, 36707, 44645, 36549, 43617, 13791, 38441, 14343, 16529, 7345, 46701, 41932, 17807, 39927, 20043, 25084, 47431, 42063, 36395, 17948, 26480, 32849, 27988, 15921, 32547, 20630, 40673, 47293, 10688, 26481, 17808, 28642, 14129, 26234, 20044, 19890, 37091, 18545, 37422, 9329, 38501, 21977, 44680, 9242, 22353, 22354, 8336, 38899, 22355, 21774, 37024, 21322, 36403, 14103, 14104, 23101, 18250, 38570, 33917, 23560, 20808, 29375, 26095, 29813, 34552, 15334, 7413, 47943, 29657, 31554, 30980, 8101, 13134, 26096, 32367, 20198, 21781, 37112, 41441, 44785, 30635, 24230, 42536, 47767, 22813, 14053, 23329, 34040, 30636, 21324, 43262, 43263, 21325, 48062, 23534, 13420, 30474, 11529, 16072, 21700, 22224, 43264, 48480, 19484, 34691, 43631, 10907, 27547, 32797, 7415, 31829, 36409, 18260, 36410, 14272, 20852, 26850, 15336, 11492, 37094, 41828, 17696, 44875, 29921, 23332, 27000, 18261, 43632, 11380, 38668, 21784, 13422, 9582, 14659, 17751, 43648, 44876, 39401, 38279, 34163, 17752, 11191, 36119, 39281, 33025, 25547, 19671, 16380, 20212, 35558, 17389, 11663, 11664, 43287, 42372, 41956, 19493, 24587, 36556, 22876, 36325, 36326, 43288, 37096, 26544, 39947, 15822, 36557, 10446, 19672, 37148, 46313, 7568, 42322, 42629, 29202, 10910, 47129, 25605, 43861, 26127, 8626, 34756, 47953, 44382, 38507, 22249, 43454, 36414, 34965, 20649, 43299, 18451, 8629, 43656, 35364, 18801, 14541, 20650, 24964, 41967, 15824, 21624, 39507, 39508, 37097, 26598, 48484, 44714, 43659, 26108, 37149, 39509, 41207, 43305, 29903, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +158: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 11218, 26399, 38937, 42811, 19505, 45560, 44389, 45899, 42551, 42075, 29904, 28926, 18388, 27329, 43661, 27196, 12856, 45053, 44716, 24038, 9334, 25904, 17756, 25705, 34766, 45058, 43663, 16697, 32129, 24275, 26267, 28704, 21507, 19353, 44742, 27728, 34105, 29177, 41419, 9566, 7999, 46453, 16342, 13390, 25853, 41424, 39865, 41994, 25284, 10658, 32038, 44749, 41186, 37357, 34904, 46953, 14330, 16510, 40648, 17797, 47263, 15896, 26227, 17911, 38475, 9169, 24135, 21969, 16421, 14091, 44564, 39451, 36351, 38543, 32336, 27542, 7397, 23315, 8097, 29621, 30945, 11515, 16064, 44770, 35288, 18204, 17664, 14223, 16438, 31809, 11644, 26984, 38640, 43175, 42351, 38272, 25504, 19624, 43176, 20167, 17730, 42613, 43618, 46307, 25594, 24941, 20633, 21615, 44665, 26086, 18608, 45882, 43627, 18375, 27162, 16691, 34757, 25911, 21125, 25357, 20315, 39502, 12110, 20325, 20338, 41711, 12105, 25984, 43957, 11864, 19710, 29460, 11865, 29462, 47609, 22295, 47520, 20184, 27290, 27291, 44470, 25531, 10441, 22299, 25169, 28521, 30639, 26097, 21620, 22300, 21328, 24552, 39728, 39503, 19996, 27307, 24588, 33836, 46041, 25182, 21333, 30658, 25418, 41718, 11866, 26609, 26603, 17665, 10272, 15136, 27527, 27528, 15142, 29486, 32164, 32010, 27989, 15145, 39676, 23535, 32016, 27534, 10916, 15006, 15113, 32004, 27531, 26508, 26940, 27797, 18893, 27959, 48281, 29109, 14894, 18747, 18736, 21126, 16719, 36506, 36975, 17945, 18496, 23134, 17952, 34587, 24183, 28643, 10699, 17759, 17758, 43177, 31051, 12409, 39138, 37242, 27927, 27910, 31053, 12323, 11286, 44125, 13036, 42623, 39277, 41817, 32017, 27027, 41829, 31662, 45035, 24236, 12530, 13644, 9536, 41602, 41701, 41834, 12417, 7481, 46437, 12330, 9537, 42631, 27004, 45954, 41850, 13661, 25905, 46840, 14901, 15324, 15395, 27506, 27486, 44865, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +159: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 11911, 32167, 10257, 37473, 47441, 46708, 27193, 7570, 8880, 37402, 8634, 44828, 10240, 37396, 13330, 27410, 28230, 13334, 48034, 16427, 16428, 13418, 14886, 36235, 44789, 29820, 10132, 15823, 30827, 44790, 36051, 36270, 34590, 34580, 14883, 14786, 38213, 7704, 13132, 37394, 47177, 32092, 34039, 34227, 44178, 34231, 36784, 38505, 21786, 21331, 19166, 21792, 41839, 37025, 34968, 38933, 39693, 41844, 23982, 8344, 42356, 31927, 17203, 38659, 38663, 17991, 40357, 14285, 45673, 40719, 38305, 45674, 29017, 28325, 30589, 45795, 19891, 48063, 19494, 19502, 30488, 19435, 10803, 10471, 10472, 17689, 41468, 43450, 40344, 7977, 45557, 40349, 9874, 10695, 41830, 21829, 36666, 25380, 25365, 11144, 32256, 40353, 22751, 28851, 21623, 42321, 11588, 45158, 44475, 11217, 42883, 28522, 45559, 48285, 32145, 45161, 41848, 29206, 14288, 38401, 43309, 11612, 48286, 13012, 11219, 21271, 41544, 10771, 10465, 17632, 43418, 21816, 25329, 7972, 36652, 48028, 22744, 44453, 11578, 32142, 38392, 25648, 29416, 16180, 29417, 41831, 25680, 25724, 16184, 22451, 12224, 25433, 12225, 25609, 16150, 22443, 16798, 31834, 8883, 16751, 45021, 11437, 17701, 22254, 40191, 44720, 48576, 48576, 48576, 48576, 48576, 48576, 48576, 48576, 48576, 48576, 48576, 48576, 48576, 48576, 48576, 48576, 48576, 48576, 48576, 48576, 48576, 48576, 48576, 48576, 48576, 48576, 48576, 48576, 48576, 33544, 48576, 48576, 48576, 48576, 48576, 48576, 48576, 48576, 48576, 15781, 35688, 26611, 48576, 48576, 48576, 48576, 15911, 12357, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 7618, 36524, 28535, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 40870, 40871, 40872, 40873, 40874, 40875, 40876, 40877, 40878, 40879, 40880, 40881, 40882, 40883, 40884, 40885, 40886, 40887, 40888, 40889, 40890, 40891, 40892, 40893, 40894, 40895, 40896, 40897, 40898, 0, 40900, 40901, 40902, 40903, 40904, 40905, 40906, 40907, 40908, 0, 0, 0, 40912, 40913, 40914, 40915, 0, 0, 40918, 40919, 40920, 40921, 40922, 40923, 40924, 40925, 40926, 40927, 40928, 40929, 40930, 40931, 40932, 40933, 40934, 40935, 40936, 40937, 40938, 0, 0, 0, 40942, 40943, 40944, 40945, 40946, 40947, 40948, 40949, 40950, 40951, 40952, 40953, 40954, 40955, 40956, 40957, 40958, 40959, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +160: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 57148, 57149, 57150, 57151, 57152, 57153, 57154, 57155, 57156, 57157, 57158, 57159, 57160, 57161, 57162, 57163, 57164, 57165, 57166, 57167, 57168, 57169, 57170, 57171, 57172, 57173, 57174, 57175, 57176, 57177, 57178, 57179, 57180, 57181, 57182, 57183, 57184, 57185, 57186, 57187, 57188, 57189, 57190, 57191, 57192, 57193, 57194, 57195, 57196, 57197, 57198, 57199, 57200, 57201, 57202, 57203, 57204, 57205, 57206, 57207, 57208, 57209, 57210, 57211, 57212, 57213, 57214, 57215, 57216, 57217, 57218, 57219, 57220, 57221, 57222, 57223, 57224, 57225, 57226, 57227, 57228, 57229, 57230, 57231, 57232, 57233, 57234, 57235, 57236, 57237, 57238, 57239, 57240, 57241, 57242, 57243, 57244, 57245, 57246, 57247, 57248, 57249, 57250, 57251, 57252, 57253, 57254, 57255, 57256, 57257, 57258, 57259, 57260, 57261, 57262, 57263, 57264, 57265, 57266, 57267, 57268, 57269, 57270, 57271, 57272, 57273, 57274, 57275, 57276, 57277, 57278, 57279, 57280, 57281, 57282, 57283, 57284, 57285, 57286, 57287, 57288, 57289, 57290, 57291, 57292, 57293, 57294, 57295, 57296, 57297, 57298, 57299, 57300, 57301, 57302, 57303, 57304, 57305, 57306, 57307, 57308, 57309, 57310, 57311, 57312, 57313, 57314, 57315, 57316, 57317, 57318, 57319, 57320, 57321, 57322, 57323, 57324, 57325, 57326, 57327, 57328, 57329, 57330, 57331, 57332, 57333, 57334, 57335, 57336, 57337, 57338, 57339, 57340, 57341, 57342, 57343, 57344, 57345, 57346, 57347, 57348, 57349, 57350, 57351, 57352, 57353, 57354, 57355, 57356, 57357, 57358, 57359, 57360, 57361, 57362, 57363, 57364, 57365, 57366, 57367, 57368, 57369, 57370, 57371, 57372, 57373, 57374, 57375, 57376, 57377, 57378, 57379, 57380, 57381, 57382, 57383, 57384, 57385, 57386, 57387, 57388, 57389, 57390, 57391, 57392, 57393, 57394, 57395, 57396, 57397, 57398, 57399, 57400, 57401, 57402, 57403, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +161: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 57404, 57405, 57406, 57407, 57408, 57409, 57410, 57411, 57412, 57413, 57414, 57415, 57416, 57417, 57418, 57419, 57420, 57421, 57422, 57423, 57424, 57425, 57426, 57427, 57428, 57429, 57430, 57431, 57432, 57433, 57434, 57435, 57436, 57437, 57438, 57439, 57440, 57441, 57442, 57443, 57444, 57445, 57446, 57447, 57448, 57449, 57450, 57451, 57452, 57453, 57454, 57455, 57456, 57457, 57458, 57459, 57460, 57461, 57462, 57463, 57464, 57465, 57466, 57467, 57468, 57469, 57470, 57471, 57472, 57473, 57474, 57475, 57476, 57477, 57478, 57479, 57480, 57481, 57482, 57483, 57484, 57485, 57486, 57487, 57488, 57489, 57490, 57491, 57492, 57493, 57494, 57495, 57496, 57497, 57498, 57499, 57500, 57501, 57502, 57503, 57504, 57505, 57506, 57507, 57508, 57509, 57510, 57511, 57512, 57513, 57514, 57515, 57516, 57517, 57518, 57519, 57520, 57521, 57522, 57523, 57524, 57525, 57526, 57527, 57528, 57529, 57530, 57531, 57532, 57533, 57534, 57535, 57536, 57537, 57538, 57539, 57540, 57541, 57542, 57543, 57544, 57545, 57546, 57547, 57548, 57549, 57550, 57551, 57552, 57553, 57554, 57555, 57556, 57557, 57558, 57559, 57560, 57561, 57562, 57563, 57564, 57565, 57566, 57567, 57568, 57569, 57570, 57571, 57572, 57573, 57574, 57575, 57576, 57577, 57578, 57579, 57580, 57581, 57582, 57583, 57584, 57585, 57586, 57587, 57588, 57589, 57590, 57591, 57592, 57593, 57594, 57595, 57596, 57597, 57598, 57599, 57600, 57601, 57602, 57603, 57604, 57605, 57606, 57607, 57608, 57609, 57610, 57611, 57612, 57613, 57614, 57615, 57616, 57617, 57618, 57619, 57620, 57621, 57622, 57623, 57624, 57625, 57626, 57627, 57628, 57629, 57630, 57631, 57632, 57633, 57634, 57635, 57636, 57637, 57638, 57639, 57640, 57641, 57642, 57643, 57644, 57645, 57646, 57647, 57648, 57649, 57650, 57651, 57652, 57653, 57654, 57655, 57656, 57657, 57658, 57659, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +162: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 57660, 57661, 57662, 57663, 57664, 57665, 57666, 57667, 57668, 57669, 57670, 57671, 57672, 57673, 57674, 57675, 57676, 57677, 57678, 57679, 57680, 57681, 57682, 57683, 57684, 57685, 57686, 57687, 57688, 57689, 57690, 57691, 57692, 57693, 57694, 57695, 57696, 57697, 57698, 57699, 57700, 57701, 57702, 57703, 57704, 57705, 57706, 57707, 57708, 57709, 57710, 57711, 57712, 57713, 57714, 57715, 57716, 57717, 57718, 57719, 57720, 57721, 57722, 57723, 57724, 57725, 57726, 57727, 57728, 57729, 57730, 57731, 57732, 57733, 57734, 57735, 57736, 57737, 57738, 57739, 57740, 57741, 57742, 57743, 57744, 57745, 57746, 57747, 57748, 57749, 57750, 57751, 57752, 57753, 57754, 57755, 57756, 57757, 57758, 57759, 57760, 57761, 57762, 57763, 57764, 57765, 57766, 57767, 57768, 57769, 57770, 57771, 57772, 57773, 57774, 57775, 57776, 57777, 57778, 57779, 57780, 57781, 57782, 57783, 57784, 57785, 57786, 57787, 57788, 57789, 57790, 57791, 57792, 57793, 57794, 57795, 57796, 57797, 57798, 57799, 57800, 57801, 57802, 57803, 57804, 57805, 57806, 57807, 57808, 57809, 57810, 57811, 57812, 57813, 57814, 57815, 57816, 57817, 57818, 57819, 57820, 57821, 57822, 57823, 57824, 57825, 57826, 57827, 57828, 57829, 57830, 57831, 57832, 57833, 57834, 57835, 57836, 57837, 57838, 57839, 57840, 57841, 57842, 57843, 57844, 57845, 57846, 57847, 57848, 57849, 57850, 57851, 57852, 57853, 57854, 57855, 57856, 57857, 57858, 57859, 57860, 57861, 57862, 57863, 57864, 57865, 57866, 57867, 57868, 57869, 57870, 57871, 57872, 57873, 57874, 57875, 57876, 57877, 57878, 57879, 57880, 57881, 57882, 57883, 57884, 57885, 57886, 57887, 57888, 57889, 57890, 57891, 57892, 57893, 57894, 57895, 57896, 57897, 57898, 57899, 57900, 57901, 57902, 57903, 57904, 57905, 57906, 57907, 57908, 57909, 57910, 57911, 57912, 57913, 57914, 57915, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +163: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 57916, 57917, 57918, 57919, 57920, 57921, 57922, 57923, 57924, 57925, 57926, 57927, 57928, 57929, 57930, 57931, 57932, 57933, 57934, 57935, 57936, 57937, 57938, 57939, 57940, 57941, 57942, 57943, 57944, 57945, 57946, 57947, 57948, 57949, 57950, 57951, 57952, 57953, 57954, 57955, 57956, 57957, 57958, 57959, 57960, 57961, 57962, 57963, 57964, 57965, 57966, 57967, 57968, 57969, 57970, 57971, 57972, 57973, 57974, 57975, 57976, 57977, 57978, 57979, 57980, 57981, 57982, 57983, 57984, 57985, 57986, 57987, 57988, 57989, 57990, 57991, 57992, 57993, 57994, 57995, 57996, 57997, 57998, 57999, 58000, 58001, 58002, 58003, 58004, 58005, 58006, 58007, 58008, 58009, 58010, 58011, 58012, 58013, 58014, 58015, 58016, 58017, 58018, 58019, 58020, 58021, 58022, 58023, 58024, 58025, 58026, 58027, 58028, 58029, 58030, 58031, 58032, 58033, 58034, 58035, 58036, 58037, 58038, 58039, 58040, 58041, 58042, 58043, 58044, 58045, 58046, 58047, 58048, 58049, 58050, 58051, 58052, 58053, 58054, 58055, 58056, 58057, 58058, 58059, 58060, 58061, 58062, 58063, 58064, 58065, 58066, 58067, 58068, 58069, 58070, 58071, 58072, 58073, 58074, 58075, 58076, 58077, 58078, 58079, 58080, 58081, 58082, 58083, 58084, 58085, 58086, 58087, 58088, 58089, 58090, 58091, 58092, 58093, 58094, 58095, 58096, 58097, 58098, 58099, 58100, 58101, 58102, 58103, 58104, 58105, 58106, 58107, 58108, 58109, 58110, 58111, 58112, 58113, 58114, 58115, 58116, 58117, 58118, 58119, 58120, 58121, 58122, 58123, 58124, 58125, 58126, 58127, 58128, 58129, 58130, 58131, 58132, 58133, 58134, 58135, 58136, 58137, 58138, 58139, 58140, 58141, 58142, 58143, 58144, 58145, 58146, 58147, 58148, 58149, 58150, 58151, 58152, 58153, 58154, 58155, 58156, 58157, 58158, 58159, 58160, 58161, 58162, 58163, 58164, 58165, 58166, 58167, 58168, 58169, 58170, 58171, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +164: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 58172, 58173, 58174, 58175, 58176, 58177, 58178, 58179, 58180, 58181, 58182, 58183, 58184, 58185, 58186, 58187, 58188, 58189, 58190, 58191, 58192, 58193, 58194, 58195, 58196, 58197, 58198, 58199, 58200, 58201, 58202, 58203, 58204, 58205, 58206, 58207, 58208, 58209, 58210, 58211, 58212, 58213, 58214, 58215, 58216, 58217, 58218, 58219, 58220, 58221, 58222, 58223, 58224, 58225, 58226, 58227, 58228, 58229, 58230, 58231, 58232, 58233, 58234, 58235, 58236, 58237, 58238, 58239, 58240, 58241, 58242, 58243, 58244, 58245, 58246, 58247, 58248, 58249, 58250, 58251, 58252, 58253, 58254, 58255, 58256, 58257, 58258, 58259, 58260, 58261, 58262, 58263, 58264, 58265, 58266, 58267, 58268, 58269, 58270, 58271, 58272, 58273, 58274, 58275, 58276, 58277, 58278, 58279, 58280, 58281, 58282, 58283, 58284, 58285, 58286, 58287, 58288, 58289, 58290, 58291, 58292, 58293, 58294, 58295, 58296, 58297, 58298, 58299, 58300, 58301, 58302, 58303, 58304, 58305, 58306, 58307, 58308, 58309, 58310, 58311, 58312, 63011, 63011, 63011, 3905, 3906, 3907, 3908, 3909, 3910, 3911, 3912, 3913, 3914, 3915, 3916, 3917, 3918, 3919, 3920, 3921, 3922, 3923, 3924, 3925, 3926, 3927, 3928, 3929, 3930, 3931, 3932, 3933, 3934, 3935, 3936, 3937, 3938, 3939, 3940, 3941, 3942, 3943, 3944, 3945, 3946, 3947, 3948, 3949, 3950, 3951, 3952, 3953, 3954, 3955, 3956, 3957, 3958, 3959, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 58319, 58320, 58321, 58322, 58323, 58324, 58325, 58326, 58327, 58328, 58329, 58330, 58331, 58332, 58333, 58334, 58335, 58336, 58337, 58338, 58339, 58340, 58341, 58342, 58343, 58344, 58347, 58345, 58348, 58346, 58349, 58350, 58351, 58352, 58353, 58354, 58355, 58356, 58357, 58358, 58313, 58314, 58315, 58316, 58318, 58317, 558, 645, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 42125, 42126, 42127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42183, 42184, 42185, 42186, 42187, 42188, 42189, 42190, 42191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +165: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 55511, 55512, 55513, 55514, 55515, 55516, 55517, 55518, 55519, 55520, 55521, 55522, 55523, 55524, 55525, 55526, 55527, 55528, 55529, 55530, 55531, 55532, 55533, 55534, 55535, 55536, 55537, 55538, 55539, 55540, 55541, 55542, 55543, 55544, 55545, 55546, 55547, 55548, 55549, 55550, 55551, 55552, 55553, 55554, 55555, 55556, 55557, 55558, 55559, 55560, 55561, 55562, 55563, 55564, 55565, 55566, 55567, 55568, 55569, 55570, 55571, 55572, 55573, 55574, 55575, 55576, 55577, 55578, 55579, 55580, 55581, 55582, 55583, 55584, 55585, 55586, 55587, 55588, 55589, 55590, 55591, 55592, 55593, 55594, 55595, 55596, 55597, 55598, 55599, 55600, 55601, 55602, 55603, 55604, 55605, 55606, 55607, 55608, 55609, 55610, 55611, 55612, 55613, 55614, 55615, 55616, 55617, 55618, 55619, 55620, 55621, 55622, 55623, 55624, 55625, 55626, 55627, 55628, 55629, 55630, 55631, 55632, 55633, 55634, 55635, 55636, 55637, 55638, 55639, 55640, 55641, 55642, 55643, 55644, 55645, 55646, 55647, 55648, 55649, 55650, 55651, 55652, 55653, 55654, 55655, 55656, 55657, 55658, 55659, 55660, 55661, 55662, 55663, 55664, 55665, 55666, 55667, 55668, 55669, 55670, 55671, 55672, 55673, 55674, 55675, 55676, 55677, 55678, 55679, 55680, 55681, 55682, 55683, 55684, 55685, 55686, 55687, 55688, 55689, 55690, 55691, 55692, 55693, 55694, 55695, 55696, 55697, 55698, 55699, 55700, 55701, 55702, 55703, 55704, 55705, 55706, 55707, 55708, 55709, 55710, 55711, 55712, 55713, 55714, 55715, 55716, 55717, 55718, 55719, 55720, 55721, 55722, 55723, 55724, 55725, 55726, 55727, 55728, 55729, 55730, 55731, 55732, 55733, 55734, 55735, 55736, 55737, 55738, 55739, 55740, 55741, 55742, 55743, 55744, 55745, 55746, 55747, 55748, 55749, 55750, 55751, 55752, 55753, 55754, 55755, 55756, 55757, 55758, 55759, 55760, 55761, 55762, 55763, 55764, 55765, 55766, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +166: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 55767, 55768, 55769, 55770, 55771, 55772, 55773, 55774, 55775, 55776, 55777, 55778, 55779, 559, 646, 624, 55599, 55617, 55646, 55523, 55541, 55562, 55582, 55593, 55599, 55601, 55607, 55644, 55691, 55714, 55720, 55727, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 55621, 55720, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 49645, 49645, 49648, 49648, 49653, 49653, 49673, 49673, 49682, 49682, 49830, 49830, 49869, 49869, 49929, 49929, 49936, 49936, 49953, 49953, 49962, 49962, 49963, 49963, 49977, 49977, 49982, 49982, 49987, 49987, 50008, 50008, 49882, 49882, 49617, 49617, 49725, 49725, 49736, 49736, 49764, 49764, 49764, 49764, 49764, 49764, 49764, 0, 0, 0, 0, 915, 49627, 49661, 49669, 49818, 49932, 49937, 49941, 49861, 0, 0, 970, 49931, 49612, 49612, 49660, 49660, 49636, 49636, 49907, 49907, 49658, 49658, 49813, 49813, 49807, 49807, 49883, 49883, 49888, 49888, 49894, 49894, 49860, 49860, 49924, 49924, 49764, 49764, 49764, 49764, 49932, 49941, 49835, 49969, 55780, 55781, 55782, 55783, 55784, 55785, 55786, 55787, 55788, 55789, 55790, 55791, 55792, 55793, 55794, 55795, 55796, 55797, 55798, 55799, 55800, 55801, 55802, 55803, 55804, 55805, 55806, 55807, 55808, 55809, 55810, 55811, 55812, 55813, 55814, 55815, 55816, 55817, 55818, 55819, 55820, 55821, 55822, 55823, 55824, 55825, 55826, 55827, 55828, 55829, 55830, 55831, 55832, 55833, 55834, 55835, 55836, 55837, 55838, 55839, 55840, 55841, 55842, 55843, 55844, 55845, 55846, 55847, 55848, 55849, 55850, 55851, 55852, 55853, 55854, 55855, 55856, 55857, 55858, 55859, 0, 0, 727, 647, 607, 560, 568, 625, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 81, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 51, 51, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 182, 183, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 10, 4, 10, 4, 10, 4, 4, 2, 0, 0, 0, 2, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 10, 4, 10, 4, 20, 20, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55778, 55778, 55778, 55779, 55778, 55779, 55779, 55778, 55778, 55778, 55778, 55779, 55778, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42540, 42541, 42542, 42543, 42544, 42545, 42546, 42547, 42548, 42549, 42550, 42551, 42552, 42553, 42554, 42555, 42556, 42557, 42558, 42559, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42744, 42745, 42746, 42747, 42748, 42749, 42750, 42751, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +167: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 3, 1, 1, 1, 1, 1, 1, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 49406, 49406, 49417, 49417, 48808, 48808, 49170, 49170, 49379, 49379, 49380, 49380, 49381, 49381, 48742, 49138, 48580, 48580, 48580, 48580, 48580, 48580, 48580, 48580, 48580, 48580, 48580, 48580, 48651, 48651, 48877, 48877, 48878, 48878, 48879, 48879, 48892, 48892, 48894, 48894, 49022, 49022, 49014, 49014, 48986, 48986, 49039, 49039, 49046, 49046, 49047, 49047, 49058, 49058, 49059, 49059, 49082, 49082, 49133, 49133, 49253, 49253, 49248, 49248, 49338, 49338, 49361, 49361, 49362, 49362, 49367, 49367, 49371, 49371, 49372, 49372, 49373, 49373, 49373, 48677, 48921, 48949, 48980, 49131, 49132, 49197, 49374, 48652, 48652, 48738, 48738, 48753, 48780, 48780, 48926, 48926, 49072, 49072, 49134, 49134, 49170, 49170, 1266, 1267, 1268, 49407, 49407, 49221, 48916, 49408, 48969, 48969, 48640, 48640, 48641, 48801, 48620, 48620, 48744, 48744, 48580, 48580, 48986, 48986, 49202, 49202, 48753, 48753, 48866, 48866, 48950, 48950, 49072, 49072, 49134, 49134, 48802, 48716, 48757, 48906, 48823, 63011, 48880, 49198, 48854, 49285, 48630, 48630, 49027, 49027, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 48828, 48789, 48986, 49237, 48752, 49048, 48947, 48827, 48948, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 8, 2, 8, 2, 8, 2, 10, 4, 8, 2, 8, 2, 8, 2, 2, 2, 10, 4, 10, 4, 10, 4, 10, 4, 10, 4, 10, 4, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 10, 4, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 10, 4, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2, 20, 2, 2, 2, 2, 2, 2, 2, 2, 10, 4, 10, 4, 10, 8, 2, 8, 2, 10, 4, 10, 4, 10, 4, 2, 2, 2, 8, 2, 8, 2, 2, 8, 2, 8, 2, 2, 2, 8, 2, 8, 2, 10, 4, 10, 4, 10, 4, 10, 4, 10, 4, 10, 4, 10, 4, 10, 4, 8, 8, 8, 8, 8, 2, 8, 8, 8, 8, 8, 2, 8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 20, 20, 2, 2, 2, 2, 2, 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, 49310, 49310, 0, 0, 0, 0, 0, 0, 0, 0, 48580, 48580, 48986, 48986, 49202, 49202, 49248, 49248, 0, 0, 49288, 49288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48986, 48986, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49288, 49288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42927, 0, 0, 0, 0, 0, 0, 0, 0, 42936, 42937, 42938, 42939, 42940, 42941, 42942, 42943, 42944, 42945, 42946, 42947, 42948, 42949, 42950, 42951, 42952, 42953, 42954, 42955, 42956, 42957, 42958, 42959, 42960, 42961, 42962, 42963, 42964, 42965, 42966, 42967, 42968, 42969, 42970, 42971, 42972, 42973, 42974, 42975, 42976, 42977, 42978, 42979, 42980, 42981, 42982, 42983, 42984, 42985, 42986, 42987, 42988, 42989, 42990, 42991, 42992, 42993, 42994, 42995, 42996, 42997, 42998, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 272, 272, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 273, 273, 273, 273, 0, 0, 0, 0, 273, 273, 273, 273, 273, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 43, 43, 43, 43, 43, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 10, 4, 10, 4, 10, 4, 4, 4, 10, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49248, 49248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48679, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0 +168: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 51929, 51930, 51931, 51932, 51933, 51934, 51935, 51936, 51937, 51938, 51939, 0, 51940, 51941, 51942, 51943, 51944, 51945, 51946, 51947, 51948, 51949, 51950, 51951, 51952, 51953, 51954, 51955, 51956, 51957, 51958, 51959, 51960, 51961, 51962, 51963, 51964, 51965, 51966, 51967, 1311, 1312, 1313, 1314, 63011, 63011, 63011, 63011, 6818, 6819, 6820, 6821, 6822, 6823, 1315, 1316, 7195, 1317, 63011, 63011, 63011, 63011, 63011, 63011, 53373, 53374, 53375, 53376, 53377, 53378, 53379, 53380, 53385, 53386, 53387, 53388, 53389, 53390, 53391, 53392, 53393, 53394, 53395, 53396, 53398, 53399, 53400, 53401, 53404, 53407, 53408, 53410, 53411, 53414, 53419, 53420, 53421, 53422, 53415, 53416, 53417, 53418, 53423, 53397, 53402, 53381, 53382, 53383, 53384, 53403, 53409, 53412, 53413, 53405, 53406, 53424, 1064, 1065, 660, 661, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 0, 0, 51968, 51969, 51970, 51971, 51972, 51973, 51974, 51975, 51976, 51977, 51978, 51979, 51980, 51981, 51982, 51983, 51984, 51985, 51986, 51987, 51988, 51989, 51990, 51991, 51992, 51993, 51994, 51995, 51996, 51997, 51998, 51999, 52000, 52001, 52002, 52003, 52004, 52005, 52006, 52007, 52008, 52009, 52010, 52011, 52012, 52013, 52014, 52015, 52016, 52017, 52018, 52019, 52020, 52021, 52022, 52023, 52024, 52025, 52026, 52027, 52028, 52029, 52030, 52031, 52032, 52033, 52034, 0, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 656, 657, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 63011, 63011, 63011, 63011, 63011, 63011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51233, 51233, 51233, 51233, 51233, 51233, 1000, 1001, 1002, 51234, 1003, 51161, 63011, 63011, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 196, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 196, 197, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 195, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 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, 43052, 43053, 43054, 43055, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43066, 43067, 43068, 43069, 43070, 43071, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43128, 43129, 43130, 43131, 43132, 43133, 43134, 43135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43206, 43207, 43208, 43209, 43210, 43211, 43212, 43213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43226, 43227, 43228, 43229, 43230, 43231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43262, 43263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +169: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 53649, 53650, 53651, 53652, 53653, 53654, 53655, 53656, 53657, 53658, 53659, 53660, 53661, 53662, 53663, 53664, 53665, 53666, 53667, 53668, 53669, 53670, 53671, 53672, 53673, 53674, 53675, 53676, 53677, 53678, 53679, 53680, 53681, 0, 0, 0, 1070, 664, 53613, 53614, 53615, 53616, 53617, 53618, 53619, 53620, 53621, 53622, 53623, 53624, 53625, 53626, 53627, 53628, 53629, 53630, 53631, 53632, 53633, 53634, 53635, 53636, 53637, 53638, 53639, 53640, 53641, 53642, 53643, 53644, 53645, 53646, 53647, 53648, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 728, 56785, 56786, 56787, 56788, 56789, 56790, 56791, 56792, 56793, 56794, 56795, 56796, 56797, 56798, 56799, 56800, 56801, 56802, 56803, 56804, 56805, 56806, 56807, 56808, 56809, 56810, 56811, 56812, 56813, 63011, 63011, 63011, 0, 0, 0, 0, 54298, 54299, 54300, 54301, 54302, 54303, 54304, 54305, 54306, 54307, 54308, 54309, 54310, 54311, 54312, 54313, 54314, 54315, 54316, 54317, 54318, 54319, 54320, 54321, 54322, 54323, 54324, 54325, 54326, 54327, 54328, 54329, 54330, 54331, 54332, 54333, 54334, 54335, 54336, 54338, 54338, 54340, 54341, 54342, 54343, 54344, 54345, 0, 54346, 54355, 54348, 54349, 54350, 54351, 54353, 54354, 54347, 54352, 54337, 54339, 54356, 717, 718, 719, 720, 721, 722, 603, 675, 676, 723, 724, 725, 726, 63011, 7167, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 63011, 63011, 63011, 63011, 1071, 1072, 53691, 53699, 53709, 53731, 53756, 53830, 7168, 53717, 53751, 53689, 53692, 53704, 53711, 53725, 53728, 53732, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 53784, 53737, 53740, 53754, 53757, 63011, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 226, 227, 228, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 195, 196, 201, 197, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 194, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 43348, 43349, 43350, 43351, 43352, 43353, 43354, 43355, 43356, 43357, 43358, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43389, 43390, 43391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43470, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43482, 43483, 43484, 43485, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43519, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +170: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 54159, 54160, 54161, 54162, 54163, 54164, 54165, 54166, 54167, 54168, 54169, 54170, 54171, 54172, 54173, 54174, 54175, 54176, 54177, 54178, 54179, 54180, 54181, 54182, 54183, 54184, 54185, 54186, 54187, 54188, 54189, 54190, 54191, 54192, 54193, 54194, 54195, 54196, 54197, 54198, 54199, 54204, 54205, 54206, 54207, 54208, 54209, 54210, 54211, 54212, 54213, 54200, 54201, 54202, 54203, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 54214, 54215, 54216, 54217, 54218, 54219, 54220, 54221, 54222, 54223, 54224, 54225, 54226, 54227, 63011, 63011, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 63011, 63011, 1073, 677, 678, 679, 53688, 53697, 53700, 53703, 53710, 53716, 53720, 53722, 53724, 53727, 53739, 53743, 53776, 53779, 53781, 53749, 7169, 53782, 53706, 53763, 53854, 53855, 53856, 1357, 1358, 1359, 53764, 53851, 53852, 53853, 53701, 53713, 53088, 53089, 53090, 53091, 53092, 53093, 53094, 53095, 53096, 53097, 53098, 53099, 53100, 53101, 53102, 53103, 53104, 53105, 53106, 53107, 53108, 53109, 53110, 53111, 53112, 53113, 53114, 53115, 53116, 53117, 53118, 53119, 53120, 53121, 53122, 53123, 53124, 53125, 53126, 53127, 53128, 53129, 53130, 53131, 53132, 53133, 53134, 53135, 53136, 53137, 53138, 53139, 53140, 53141, 53142, 53143, 53144, 53145, 53146, 53147, 53148, 53149, 53150, 0, 53151, 0, 53152, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 53153, 53154, 7170, 1009, 1010, 51894, 51895, 51896, 51897, 51898, 51899, 51900, 51901, 51902, 51903, 51904, 51913, 51914, 51915, 51916, 51917, 680, 626, 51866, 7171, 7172, 51918, 51928, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 223, 32, 224, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 43575, 43576, 43577, 43578, 43579, 43580, 43581, 43582, 43583, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43598, 43599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43610, 43611, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43715, 43716, 43717, 43718, 43719, 43720, 43721, 43722, 43723, 43724, 43725, 43726, 43727, 43728, 43729, 43730, 43731, 43732, 43733, 43734, 43735, 43736, 43737, 43738, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43767, 43768, 43769, 43770, 43771, 43772, 43773, 43774, 43775, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +171: 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 63011, 50771, 50772, 50773, 50774, 50775, 50776, 63011, 63011, 50970, 50971, 50972, 50973, 50974, 50975, 63011, 63011, 50939, 50940, 50941, 50942, 50943, 50944, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 51037, 51038, 51039, 51040, 51041, 51042, 51043, 63011, 51061, 51062, 51063, 51064, 51065, 51066, 51067, 63011, 48598, 48589, 48684, 48685, 48691, 48743, 48761, 48910, 48904, 48905, 48946, 48979, 48985, 48992, 49004, 49011, 49000, 48998, 48999, 49001, 49002, 49076, 49081, 49122, 49123, 49112, 49124, 49125, 49126, 49155, 49207, 49217, 49211, 49212, 49220, 49285, 49286, 49287, 49281, 49282, 49283, 49284, 49305, 1269, 48808, 48910, 48900, 49220, 49368, 49369, 49013, 49370, 48604, 49503, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 54524, 54525, 54526, 54527, 54528, 54529, 54530, 54531, 54532, 54533, 54534, 54535, 54536, 54537, 54538, 54539, 54540, 54541, 54542, 54543, 54544, 54545, 54546, 54547, 54548, 54549, 54550, 54551, 54552, 54553, 54554, 54555, 54556, 54557, 54558, 54559, 54560, 54561, 54562, 54563, 54564, 54565, 54566, 54567, 54568, 54569, 54570, 54571, 54572, 54573, 54574, 54575, 54576, 54577, 54578, 54579, 54580, 54581, 54582, 54583, 54584, 54585, 54586, 54587, 54588, 54589, 54590, 54591, 54592, 54593, 54594, 54595, 54596, 54597, 54598, 54599, 54600, 54601, 54602, 54603, 51867, 51868, 51869, 51870, 51871, 51872, 51873, 51874, 51875, 51876, 51877, 51878, 51879, 51880, 51881, 51882, 51883, 51884, 51885, 51886, 51887, 51888, 51889, 51890, 51891, 51892, 51893, 51919, 51920, 51921, 51922, 51923, 51924, 51925, 51926, 51905, 51906, 51907, 51908, 51909, 51910, 51911, 51912, 681, 0, 51927, 63011, 63011, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 63011, 63011, 63011, 63011, 63011, 63011, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 203, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 20, 20, 20, 20, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 43776, 0, 0, 0, 0, 0, 0, 43783, 43784, 0, 0, 0, 0, 0, 0, 43791, 43792, 0, 0, 0, 0, 0, 0, 43799, 43800, 43801, 43802, 43803, 43804, 43805, 43806, 43807, 0, 0, 0, 0, 0, 0, 0, 43815, 0, 0, 0, 0, 0, 0, 0, 43823, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43878, 43879, 43880, 43881, 43882, 43883, 43884, 43885, 43886, 43887, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44014, 44015, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44026, 44027, 44028, 44029, 44030, 44031, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +215: 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56708, 56709, 56709, 56709, 56709, 56709, 56709, 56709, 56709, 56709, 56709, 56709, 56709, 56887, 56888, 56889, 56890, 56891, 56892, 56893, 56894, 56895, 56896, 56897, 56898, 56899, 56900, 56901, 56902, 56903, 56904, 56905, 56906, 56907, 56908, 56909, 63011, 63011, 63011, 63011, 56998, 56999, 57000, 57001, 57002, 57003, 57004, 57005, 57006, 57007, 57008, 57009, 57010, 57011, 57012, 57013, 57014, 57015, 57016, 57017, 57018, 57019, 57020, 57021, 57022, 57023, 57024, 57025, 57026, 57027, 57028, 57029, 57030, 57031, 57032, 57033, 57034, 57035, 57036, 57037, 57038, 57039, 57040, 57041, 57042, 57043, 57044, 57045, 57046, 63011, 63011, 63011, 63011, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 56831, 56831, 56831, 56831, 56831, 56831, 56831, 56831, 56831, 56831, 56831, 56831, 56831, 56831, 56831, 56831, 56831, 56831, 56831, 56831, 56831, 56831, 56831, 56831, 56832, 56832, 56832, 56832, 56832, 56832, 56832, 56832, 56832, 56832, 56832, 56832, 56832, 56832, 56832, 56832, 56832, 56832, 56832, 56832, 56832, 56832, 56832, 56832, 56832, 56832, 56832, 56832, 56833, 56833, 56833, 56833, 56833, 56833, 56833, 56833, 56833, 56833, 56833, 56833, 56833, 56833, 56833, 56833, 56833, 56833, 56833, 56833, 56833, 56833, 56833, 56833, 56833, 56833, 56833, 56833, 56834, 56834, 56834, 56834, 56834, 56834, 56834, 56834, 56834, 56834, 56834, 56834, 56834, 56834, 56834, 56834, 56834, 56834, 56834, 56834, 56834, 56834, 56834, 56834, 56834, 56834, 56834, 56834, 56835, 56835, 56835, 56835, 56835, 56835, 56835, 56835, 56835, 56835, 56835, 56835, 56835, 56835, 56835, 56835, 56835, 56835, 56835, 56835, 56835, 56835, 56835, 56835, 56835, 56835, 56835, 56835, 56836, 56836, 56836, 56836, 56836, 56836, 56836, 56836, 56836, 56836, 56836, 56836, 56836, 56836, 56836, 56836, 56836, 56836, 56836, 56836, 56836, 56836, 56836, 56836, 56836, 56836, 56836, 56836, 56816, 56816, 56816, 56816, 56816, 56816, 56816, 56816, 56816, 56816, 56816, 56816, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55239, 55240, 55241, 55242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55292, 55293, 55294, 55295, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 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, 56913, 56914, 56915, 56916, 56917, 56918, 56919, 56920, 56921, 56922, 56923, 56924, 56925, 56926, 56927, 56928, 56929, 56930, 56931, 56932, 56933, 56934, 56935, 56936, 0, 56910, 56911, 56912, 56913, 56914, 56915, 56916, 56917, 56918, 56919, 56920, 56921, 56922, 56923, 56924, 56925, 56926, 56927, 56928, 56929, 56930, 56931, 56932, 56933, 56934, 56935, 56936, 0, 56910, 56911, 56912, 56913, 56914, 56915, 56916, 56917, 56918, 56919, 56920, 56921, 56922, 56923, 56924, 56925, 56926, 56927, 56928, 56929, 56930, 56931, 56932, 56933, 56934, 56935, 56936, 0, 56910, 56911, 56912, 56913, 56914, 56915, 56916, 56917, 56918, 56919, 56920, 56921, 56922, 56923, 56924, 56925, 56926, 56927, 56928, 56929, 56930, 56931, 56932, 56933, 56934, 56935, 56936, 0, 56910, 56911, 56912, 56913, 56914, 56915, 56916, 56917, 56918, 56919, 56920, 56921, 56922, 56923, 56924, 56925, 56926, 56927, 56928, 56929, 56930, 56931, 56932, 56933, 56934, 56935, 56936, 0, 56910, 56911, 56912, 56913, 56914, 56915, 56916, 56917, 56918, 56919, 56920, 56921, 56922, 56923, 56924, 56925, 56926, 56927, 56928, 56929, 56930, 56931, 56932, 56933, 56934, 56935, 56936, 0, 56910, 56911, 56912, 56913, 56914, 56915, 56916, 56917, 56918, 56919, 56920, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 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 +249: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 30683, 16104, 10292, 20066, 18426, 11366, 21835, 16798, 16798, 30736, 21100, 23431, 28211, 23675, 23569, 26378, 26390, 26373, 26421, 26391, 23914, 26445, 23876, 26452, 26462, 23880, 26477, 26276, 26269, 23633, 23707, 23629, 26267, 23586, 23701, 23607, 23617, 23412, 23468, 23481, 23727, 23762, 23778, 23724, 23718, 23494, 24096, 23809, 25927, 25939, 25883, 25863, 23844, 25877, 25915, 26005, 26102, 25924, 26108, 26001, 25991, 26190, 25982, 26057, 25984, 26349, 25719, 29012, 25681, 25682, 23799, 24001, 26004, 23926, 24008, 26155, 25775, 24049, 25822, 24052, 26166, 25816, 23925, 23894, 25194, 25273, 24087, 25334, 25302, 25283, 13646, 28099, 23914, 29157, 12333, 28900, 29068, 26179, 43037, 8105, 29338, 8714, 15441, 9336, 27372, 34669, 35601, 9467, 33095, 34049, 42463, 34844, 33361, 10398, 10396, 34194, 33005, 26279, 26280, 24874, 24857, 24826, 24827, 24847, 24824, 24889, 24885, 24470, 26130, 29076, 25872, 26140, 26207, 24544, 26116, 24273, 24552, 24183, 24330, 24474, 24476, 24607, 28629, 24688, 24818, 28664, 24672, 24794, 24760, 28630, 24800, 24714, 28667, 24673, 24658, 24808, 25015, 25016, 41856, 25041, 25059, 34844, 24669, 28683, 28654, 24807, 24728, 25093, 25445, 25254, 28900, 25443, 24655, 25270, 43692, 25298, 25300, 25322, 25325, 25396, 25442, 24351, 24312, 24319, 24505, 14186, 23922, 24907, 24920, 28739, 24993, 23914, 24930, 24936, 24976, 24928, 25648, 45068, 32905, 25494, 11106, 25557, 25467, 25457, 25470, 25468, 25476, 28966, 24068, 25578, 26026, 25970, 26315, 26321, 26323, 26336, 26176, 24437, 24387, 26179, 25631, 24343, 24339, 26159, 42953, 24280, 24120, 28477, 24293, 24423, 24190, 24301, 24296, 24281, 24217, 28579, 28595, 25208, 25157, 25158, 25235, 25147, 25180, 25182, 25127, 25134, 25163, 24338, 24409, 24410, 47738, 46884, 34230, 33923, 9779, 11687, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +250: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 31406, 13688, 35707, 36094, 45807, 13452, 8060, 15313, 40508, 20540, 20347, 23383, 38573, 18347, 48576, 48576, 47193, 48576, 31649, 48576, 48576, 38851, 47402, 43014, 24276, 33925, 39747, 15265, 21409, 21309, 44399, 48576, 31825, 48576, 47425, 48576, 48576, 43053, 13483, 48576, 48576, 48576, 14592, 35028, 16646, 17752, 23719, 24482, 38526, 33344, 27480, 27487, 31523, 8079, 17566, 36019, 30798, 30127, 27919, 9717, 10314, 18939, 22403, 45606, 10617, 27694, 19756, 34584, 26959, 17135, 47505, 17347, 47510, 46114, 48512, 8095, 33791, 46809, 30502, 44155, 48363, 47554, 19263, 46359, 16442, 36995, 20941, 24800, 21250, 14517, 34588, 46281, 11122, 9642, 9642, 46315, 17724, 34341, 42504, 21178, 8941, 45629, 11554, 43053, 28265, 39787, 30055, 18988, 48578, 16644, 63011, 63011, 9039, 23109, 32190, 40514, 10917, 19856, 43885, 33712, 17566, 36206, 18997, 37503, 47193, 14869, 41733, 8197, 8451, 11651, 7535, 43132, 9439, 42211, 37741, 33983, 44568, 45606, 7604, 10617, 12318, 44275, 35136, 9020, 7527, 31649, 23762, 37775, 46066, 12251, 33361, 25467, 43419, 48000, 17347, 21425, 47510, 31335, 22201, 14557, 47402, 46473, 11639, 18461, 16611, 38164, 43014, 34074, 46719, 22023, 46314, 36543, 36679, 20941, 24044, 36167, 24800, 30132, 46281, 18710, 18421, 45075, 31244, 15513, 34341, 13172, 47425, 31677, 42504, 29157, 44638, 21178, 8759, 45629, 34542, 10746, 35163, 40537, 47504, 28265, 21409, 7803, 39787, 14123, 30055, 46434, 16798, 48578, 48578, 48578, 17645, 40099, 20925, 48578, 31098, 8298, 14285, 29416, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64014, 64015, 0, 64017, 0, 64019, 64020, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64031, 0, 64033, 0, 64035, 64036, 0, 0, 64039, 64040, 64041, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49902, 0, 64110, 64111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43082, 43076, 46037, 0, 0, 0, 53833, 0, 0, 0, 0, 64218, 64219, 64220, 64221, 64222, 64223, 64224, 64225, 64226, 64227, 64228, 64229, 64230, 64231, 64232, 64233, 64234, 64235, 64236, 64237, 64238, 64239, 64240, 64241, 64242, 64243, 64244, 64245, 64246, 64247, 64248, 64249, 64250, 64251, 64252, 64253, 64254, 64255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +251: 2, 2, 2, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 48738, 48738, 48738, 48738, 48738, 49134, 49134, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 50208, 50208, 50208, 50218, 50208, 63011, 63011, 63011, 63011, 63011, 50237, 0, 50237, 50243, 50228, 50231, 50232, 50238, 50239, 50240, 50247, 50249, 1558, 50248, 50248, 50248, 50248, 50228, 50228, 50228, 50229, 50230, 50231, 50232, 50233, 50234, 63011, 50236, 50237, 50238, 50238, 50239, 63011, 50240, 63011, 50241, 50242, 63011, 50244, 50244, 63011, 50245, 50246, 50247, 50248, 50249, 50233, 50229, 50238, 50244, 50228, 50302, 50302, 50315, 50315, 50315, 50315, 50316, 50316, 50316, 50316, 50317, 50317, 50317, 50317, 50333, 50333, 50333, 50333, 50336, 50336, 50336, 50336, 50332, 50332, 50332, 50332, 50424, 50424, 50424, 50424, 50427, 50427, 50427, 50427, 50340, 50340, 50340, 50340, 50339, 50339, 50339, 50339, 50341, 50341, 50341, 50341, 50343, 50343, 50343, 50343, 50363, 50363, 50362, 50362, 50365, 50365, 50358, 50358, 50380, 50380, 50373, 50373, 50437, 50437, 50437, 50437, 50445, 50445, 50445, 50445, 50450, 50450, 50450, 50450, 50448, 50448, 50448, 50448, 50469, 50469, 50471, 50471, 50471, 50471, 50483, 50483, 50480, 50480, 50480, 50480, 50479, 50479, 50479, 50479, 50513, 50513, 50513, 50513, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 50442, 50442, 50442, 50442, 50488, 50488, 50487, 50487, 50489, 50489, 50488, 50492, 50492, 50486, 50486, 50490, 50490, 50503, 50503, 50503, 50503, 50498, 50498, 50308, 50308, 50308, 50308, 50308, 50308, 50308, 50308, 50308, 50308, 50308, 50308, 50308, 50308, 50308, 50308, 50308, 50308, 50500, 50500, 50500, 50500, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 25, 2, 2, 2, 2, 2, 2, 2, 2, 25, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 26, 25, 26, 25, 23, 24, 26, 25, 23, 24, 26, 25, 23, 24, 26, 25, 23, 24, 26, 25, 23, 24, 26, 25, 23, 24, 26, 25, 23, 24, 26, 25, 23, 24, 26, 25, 23, 24, 26, 25, 23, 24, 26, 25, 23, 24, 26, 25, 23, 24, 26, 25, 26, 25, 26, 25, 26, 25, 26, 25, 26, 25, 26, 25, 23, 24, 26, 25, 23, 24, 26, 25, 23, 24, 26, 25, 23, 24, 26, 25, 26, 25, 23, 24, 26, 25, 26, 25, 23, 24, 26, 25, 23, 24, 26, 25, 26, 25, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 26, 25, 23, 24, 26, 25, 26, 25, 26, 25, 26, 26, 25, 26, 25, 26, 25, 26, 25, 23, 24, 23, 24, 26, 25, 26, 25, 26, 25, 26, 25, 26, 25, 26, 25, 26, 25, 23, 26, 25, 23, 26, 25, 23, 24, 48738, 48815, 48884, 48738, 48738, 0, 49170, 64263, 64264, 64265, 64266, 64267, 64268, 64269, 64270, 64271, 64272, 64273, 64274, 50210, 50193, 50199, 50210, 50201, 64280, 64281, 64282, 64283, 64284, 0, 0, 50237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64311, 0, 0, 0, 0, 0, 64317, 0, 64319, 0, 0, 64322, 0, 0, 64325, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64450, 64451, 64452, 64453, 64454, 64455, 64456, 64457, 64458, 64459, 64460, 64461, 64462, 64463, 64464, 64465, 64466, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50298, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50312, 50312, 50483, 50483, 50484, 50484, 50488, 50488, 50487, 50487, 50489, 50489, 50503, 50503, 50503, 50498, 50498, 50498, 0, 0, 0, 0, 32, 32, 32, 32, 32, 273, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 86, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 93, 95, 95, 89, 90, 95, 95, 95, 95, 95, 95, 95, 0, 95, 95, 95, 95, 95, 0, 95, 0, 95, 95, 0, 95, 95, 0, 95, 95, 95, 95, 95, 91, 96, 96, 96, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 131, 131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 131, 131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 2, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 0, 2, 0, 2, 2, 0, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 25, 26, 25, 26, 25, 26, 25, 26, 25, 26, 25, 26, 25, 23, 26, 25, 23, 0, 0, 0, 0, 0, 0, 0, 48815, 48884, 49170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 4, 0, 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, 2, 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 +252: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 50308, 50308, 50308, 50308, 50308, 50314, 50314, 50314, 50314, 50314, 50314, 50330, 50330, 50330, 50330, 50330, 50330, 50331, 50331, 50331, 50331, 50338, 50338, 50345, 50345, 50346, 50346, 50346, 50390, 50390, 50390, 50390, 50401, 50401, 50402, 50402, 50402, 50402, 50407, 50407, 50408, 50411, 50411, 50412, 50412, 50419, 50419, 50419, 50419, 50419, 50419, 50431, 50431, 50431, 50431, 50436, 50436, 50436, 50436, 50436, 50436, 50436, 50436, 50457, 50457, 50457, 50457, 50457, 50457, 50464, 50464, 50464, 50464, 50464, 50464, 50468, 50468, 50468, 50468, 50468, 50468, 50478, 50478, 50478, 50478, 50499, 50499, 50499, 50499, 50499, 50499, 50357, 50371, 50498, 0, 0, 0, 0, 0, 0, 50308, 50308, 50308, 50308, 50308, 50308, 50314, 50314, 50314, 50314, 50314, 50314, 50330, 50330, 50330, 50330, 50330, 50330, 50331, 50331, 50331, 50331, 50331, 50331, 50419, 50419, 50431, 50431, 50436, 50436, 50436, 50436, 50436, 50457, 50457, 50457, 50464, 50464, 50468, 50468, 50468, 50468, 50468, 50468, 50498, 50499, 50499, 50499, 50499, 50499, 50499, 50308, 50308, 50308, 50308, 50308, 50314, 50314, 50314, 50314, 50314, 50330, 50330, 50330, 50330, 50330, 50331, 50338, 50338, 50345, 50345, 50346, 50346, 50390, 50390, 50390, 50390, 50401, 50401, 50401, 50402, 50402, 50402, 50402, 50407, 50408, 50411, 50411, 50412, 50412, 50419, 50419, 50419, 50419, 50431, 50431, 50436, 50436, 50436, 50436, 50436, 50457, 50457, 50457, 50457, 50457, 50464, 50464, 50464, 50464, 50468, 50468, 50468, 50468, 50468, 50478, 50478, 50478, 50499, 50499, 50499, 50499, 50499, 50308, 50308, 50314, 50314, 50330, 50330, 50331, 50331, 50390, 50390, 50391, 50391, 50436, 50436, 50457, 50468, 50468, 50499, 50499, 0, 0, 0, 50407, 50407, 50411, 50411, 50412, 50412, 50390, 50390, 50391, 50391, 50345, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 112, 115, 118, 122, 125, 128, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 122, 125, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 50338, 50345, 50464, 50498, 50499, 50338, 50345, 50346, 50464, 50498, 50499, 50338, 50345, 50346, 50464, 50498, 50499, 50338, 50464, 50498, 50499, 50345, 50464, 50338, 50464, 50338, 50345, 50464, 50338, 50345, 50346, 50464, 50345, 50464, 50338, 50345, 50346, 50464, 50345, 50464, 50464, 50338, 50464, 50338, 50464, 50338, 50345, 50346, 50464, 50498, 50499, 50345, 50464, 50498, 50499, 50312, 50338, 50345, 50346, 50457, 50464, 50498, 50499, 50338, 50345, 50346, 50464, 50498, 50499, 50338, 50345, 50346, 50464, 50498, 50499, 50338, 50345, 50346, 50464, 50498, 50499, 50338, 50464, 50498, 50499, 50338, 50345, 50346, 50464, 50498, 50499, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50371, 50372, 50464, 50468, 50498, 50499, 50371, 50372, 50464, 50468, 50498, 50499, 50371, 50372, 50464, 50468, 50498, 50499, 50371, 50372, 50464, 50468, 50498, 50499, 50498, 50499, 50498, 50499, 50312, 50457, 50464, 50498, 50499, 50464, 50498, 50499, 50312, 50464, 50371, 50372, 50464, 50468, 50498, 50499, 0, 50371, 50372, 50464, 50468, 50498, 50499, 50338, 50345, 50346, 50464, 50478, 50338, 50345, 50346, 50464, 50478, 50338, 50345, 50346, 50464, 50478, 50464, 50345, 50464, 50338, 50464, 50338, 50464, 50338, 50345, 50346, 50464, 50345, 50346, 50464, 50338, 50345, 50346, 50464, 50345, 50464, 50338, 50464, 50338, 50464, 50338, 50345, 50346, 50464, 50345, 50464, 50338, 50345, 50346, 50457, 50464, 50338, 50345, 50346, 50464, 50478, 50338, 50345, 50346, 50464, 50338, 50345, 50346, 50464, 50478, 50338, 50464, 0, 50338, 50345, 50346, 50464, 50478, 50464, 50478, 50464, 50478, 50464, 50478, 50464, 50478, 50464, 50478, 50464, 50478, 50457, 50464, 50464, 50464, 50478, 50464, 50478, 0, 0, 0, 50498, 50499, 50498, 50499, 50498, 50499, 50498, 50499, 50498, 50499, 50498, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 152, 152, 152, 128, 128, 128, 128, 128, 152, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 152, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 152, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 128, 128, 128, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26 +253: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 4, 4, 4, 4, 4, 4, 4, 3, 8, 8, 4, 1, 2, 2, 50345, 50338, 50338, 50346, 50346, 50401, 50401, 50402, 50402, 50391, 50391, 50391, 50391, 50391, 50390, 50401, 50402, 50407, 50407, 50411, 50411, 50412, 50412, 50390, 50390, 50391, 50391, 50345, 50345, 50338, 50338, 50346, 50346, 50401, 50401, 50402, 50402, 50391, 50391, 50391, 50391, 50391, 50390, 50401, 50402, 50391, 50391, 50391, 50391, 50390, 50391, 50407, 50390, 50390, 50390, 50391, 50391, 50391, 50407, 50408, 50312, 50312, 897, 898, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 50330, 50330, 50330, 50330, 50330, 50330, 50330, 50330, 50338, 50338, 50345, 50345, 50390, 50390, 50390, 50390, 50390, 50390, 50390, 50390, 50401, 50401, 50401, 50391, 50391, 50391, 50391, 50391, 50391, 50391, 50402, 50402, 50402, 50407, 50407, 50407, 50407, 50411, 50411, 50411, 50411, 50412, 50412, 50412, 50419, 50419, 50431, 50431, 50457, 50457, 50457, 50457, 50457, 50457, 50457, 50457, 50457, 50464, 50464, 50464, 50464, 50464, 50464, 50464, 63011, 63011, 50464, 50478, 50478, 50468, 50468, 50468, 50468, 50468, 50468, 50468, 50499, 50499, 50314, 50330, 50330, 50330, 50330, 50330, 50330, 50338, 50338, 50338, 50390, 50401, 50391, 50402, 50457, 50457, 50499, 50499, 50499, 50464, 50431, 50468, 50431, 50457, 50411, 50436, 50468, 50464, 50457, 50436, 50457, 50468, 50338, 50345, 50464, 50419, 50314, 50436, 50411, 50401, 50390, 50468, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 50401, 50431, 50312, 50312, 50464, 50401, 50371, 50411, 50484, 50401, 50401, 50338, 50371, 1281, 63011, 63011, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 25, 26, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 23, 25, 23, 23, 23, 23, 23, 23, 25, 23, 25, 25, 23, 23, 25, 25, 23, 23, 25, 23, 25, 23, 25, 25, 23, 25, 25, 23, 25, 23, 25, 25, 23, 25, 23, 23, 25, 25, 25, 23, 25, 25, 25, 25, 25, 23, 25, 25, 25, 25, 25, 23, 25, 25, 23, 25, 23, 23, 23, 25, 23, 23, 23, 23, 2, 2, 23, 23, 23, 23, 25, 25, 23, 25, 25, 25, 25, 23, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 23, 23, 25, 25, 23, 25, 23, 25, 25, 25, 25, 25, 25, 25, 25, 23, 23, 23, 25, 25, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 2, 2, 2, 50499, 50498, 50499, 50498, 50499, 50498, 50499, 50498, 50499, 50338, 50345, 50346, 50464, 50371, 50371, 50371, 50371, 50498, 50499, 50498, 50499, 50498, 50499, 50498, 50499, 50498, 50499, 50498, 50499, 50498, 50499, 50498, 50499, 50498, 50499, 50498, 50499, 50338, 50345, 50346, 50464, 50371, 50371, 50371, 50371, 50338, 50345, 50346, 50464, 50478, 50478, 50464, 50338, 50345, 50346, 50338, 50345, 50346, 50464, 50464, 0, 0, 0, 0, 64832, 64833, 64834, 64835, 64836, 64837, 64838, 64839, 64840, 64841, 64842, 64843, 64844, 64845, 64846, 64847, 50338, 50345, 50345, 50345, 50346, 50464, 50464, 50464, 50464, 50464, 50464, 50464, 50345, 50338, 50338, 50464, 50464, 50464, 50464, 50464, 50345, 50345, 50464, 50345, 50345, 50338, 50464, 50464, 50464, 50464, 50345, 50346, 50346, 50464, 50464, 50464, 50464, 50338, 50464, 50464, 50464, 50464, 50464, 50464, 50346, 50346, 50464, 50464, 50345, 50345, 50345, 50338, 50338, 50346, 50346, 50464, 50464, 50345, 50345, 50345, 50338, 50338, 50346, 50346, 64912, 64913, 50338, 50464, 50464, 50345, 50345, 50338, 50338, 50338, 50464, 50464, 50464, 50464, 50346, 50338, 50338, 50346, 50346, 50464, 50464, 50464, 50345, 50464, 50346, 50345, 50345, 50345, 50338, 50464, 50345, 50338, 50464, 50464, 50464, 50345, 50464, 50345, 50464, 50464, 50338, 50346, 50338, 50464, 50338, 50338, 50345, 50338, 50338, 50464, 50345, 50464, 50338, 50464, 50346, 50338, 64968, 64969, 64970, 64971, 64972, 64973, 64974, 64975, 64976, 64977, 64978, 64979, 64980, 64981, 64982, 64983, 64984, 64985, 64986, 64987, 64988, 64989, 64990, 64991, 64992, 64993, 64994, 64995, 64996, 64997, 64998, 64999, 65000, 65001, 65002, 65003, 65004, 65005, 65006, 65007, 50457, 50457, 50457, 50436, 50345, 50457, 50390, 50457, 50390, 50457, 50457, 50457, 50500, 0, 65022, 65023, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 109, 109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 25, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 25, 23, 23, 23, 23, 23, 23, 25, 23, 25, 25, 23, 23, 25, 25, 23, 23, 25, 23, 25, 23, 25, 25, 23, 25, 25, 23, 25, 23, 25, 25, 23, 25, 23, 23, 25, 25, 25, 23, 25, 25, 25, 25, 25, 23, 25, 25, 25, 25, 25, 23, 25, 25, 23, 25, 23, 23, 23, 25, 23, 23, 23, 23, 0, 0, 23, 23, 23, 23, 25, 25, 23, 25, 25, 25, 25, 23, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 23, 23, 25, 25, 23, 25, 23, 25, 25, 25, 25, 25, 25, 25, 25, 23, 23, 23, 25, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50464, 50338, 50338, 50464, 50464, 50338, 50345, 50346, 50345, 50345, 50499, 50498, 50338, 50345, 50498, 50345, 50345, 50338, 50464, 50464, 50345, 50345, 50464, 50464, 50464, 50499, 50346, 50346, 50464, 50464, 50498, 50464, 50464, 50345, 50345, 50464, 50499, 50464, 50464, 50464, 50498, 50464, 50499, 50498, 50464, 50464, 50345, 50464, 50464, 50499, 50498, 50338, 50338, 50464, 50464, 50345, 50345, 50338, 50464, 50499, 50345, 50464, 50338, 50464, 0, 0, 50346, 50338, 50464, 50464, 50498, 50464, 50464, 50498, 50499, 50498, 50464, 50464, 50499, 50499, 50498, 50499, 50498, 50499, 50498, 50499, 50498, 50498, 50498, 50499, 50499, 50499, 50499, 50499, 50499, 50499, 50499, 50499, 50499, 50499, 50345, 50464, 50499, 50499, 50345, 50499, 50464, 50464, 50464, 50345, 50499, 50499, 50499, 50499, 50499, 50464, 50464, 50464, 50499, 50499, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50513, 50513, 50457, 50314, 50464, 50411, 50484, 50499, 50457, 50498, 50498, 521, 50312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 25, 23, 23, 23, 23, 23, 23, 25, 23, 25, 25, 23, 23, 25, 25, 23, 23, 25, 23, 25, 23, 25, 25, 23, 25, 25, 23, 25, 23, 25, 25, 23, 25, 23, 23, 25, 25, 25, 23, 25, 25, 25, 25, 25, 23, 25, 25, 25, 25, 25, 23, 25, 25, 23, 25, 23, 23, 23, 25, 23, 23, 23, 23, 0, 0, 23, 23, 23, 23, 25, 25, 23, 25, 25, 25, 25, 23, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 23, 23, 25, 25, 23, 25, 23, 25, 25, 25, 25, 25, 25, 25, 25, 23, 23, 23, 25, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50478, 50371, 50356, 50464, 50457, 50478, 50464, 0, 521, 50338, 50457, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 26, 26, 26, 26, 26, 26, 0, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50312, 50457, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50457, 50312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50457, 50457, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50478, 50478, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 26, 0, 0, 0, 0 +254: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 546, 561, 650, 569, 564, 608, 614, 891, 892, 631, 63011, 63011, 63011, 63011, 63011, 63011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 631, 534, 533, 523, 523, 791, 792, 795, 796, 889, 890, 887, 888, 881, 882, 879, 880, 883, 884, 885, 886, 562, 563, 793, 794, 522, 522, 522, 522, 523, 523, 523, 546, 561, 631, 63011, 564, 569, 614, 608, 534, 791, 792, 795, 796, 889, 890, 920, 918, 911, 1558, 525, 1562, 1564, 1563, 63011, 917, 7186, 921, 910, 63011, 63011, 63011, 63011, 0, 0, 0, 0, 0, 63011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50298, 50299, 50299, 50300, 50300, 50303, 50303, 50304, 50304, 50308, 50308, 50308, 50308, 50312, 50312, 50314, 50314, 50314, 50314, 50329, 50329, 50330, 50330, 50330, 50330, 50331, 50331, 50331, 50331, 50338, 50338, 50338, 50338, 50345, 50345, 50345, 50345, 50346, 50346, 50346, 50346, 50356, 50356, 50357, 50357, 50371, 50371, 50372, 50372, 50390, 50390, 50390, 50390, 50391, 50391, 50391, 50391, 50401, 50401, 50401, 50401, 50402, 50402, 50402, 50402, 50407, 50407, 50407, 50407, 50408, 50408, 50408, 50408, 50411, 50411, 50411, 50411, 50412, 50412, 50412, 50412, 50419, 50419, 50419, 50419, 50431, 50431, 50431, 50431, 50436, 50436, 50436, 50436, 50457, 50457, 50457, 50457, 50464, 50464, 50464, 50464, 50468, 50468, 50468, 50468, 50478, 50478, 50478, 50478, 50484, 50484, 50498, 50498, 50499, 50499, 50499, 50499, 50457, 50457, 50457, 50457, 50457, 50457, 50457, 50457, 63011, 63011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 79, 0, 78, 0, 0, 0, 0, 52, 0, 78, 0, 0, 0, 0, 80, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 109, 109, 112, 0, 115, 32, 118, 118, 122, 122, 125, 125, 128, 128, 129, 129, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 2, 0, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 2, 2, 22, 22, 4, 4, 4, 4, 4, 4, 4, 15, 15, 15, 2, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 2, 15, 15, 15, 15, 2, 2, 2, 2, 26, 24, 26, 0, 26, 2, 26, 24, 26, 24, 26, 24, 26, 24, 26, 24, 26, 26, 25, 26, 25, 26, 25, 26, 25, 26, 25, 23, 24, 26, 25, 26, 25, 23, 24, 26, 25, 26, 25, 23, 24, 26, 25, 23, 24, 26, 25, 23, 24, 26, 25, 23, 24, 26, 25, 23, 24, 26, 25, 26, 25, 26, 25, 26, 25, 26, 25, 23, 24, 26, 25, 23, 24, 26, 25, 23, 24, 26, 25, 23, 24, 26, 25, 23, 24, 26, 25, 23, 24, 26, 25, 23, 24, 26, 25, 23, 24, 26, 25, 23, 24, 26, 25, 23, 24, 26, 25, 23, 24, 26, 25, 23, 24, 26, 25, 23, 24, 26, 25, 23, 24, 26, 25, 23, 24, 26, 25, 26, 25, 26, 25, 23, 24, 26, 25, 26, 25, 26, 25, 26, 25, 2, 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, 631, 65050, 65051, 65052, 65053, 65054, 65055, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 631, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65127, 0, 0, 0, 0, 65132, 65133, 65134, 65135, 0, 0, 0, 0, 0, 65141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50299, 50299, 50300, 50300, 50304, 50304, 50312, 50312, 65277, 65278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 25, 26, 25, 26, 25, 26, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 631, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +255: 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 63011, 608, 780, 920, 7186, 921, 918, 773, 791, 792, 911, 1558, 546, 525, 631, 916, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 569, 564, 1562, 1563, 1564, 614, 910, 48580, 48605, 48631, 48652, 48679, 48738, 48753, 48789, 48815, 48841, 48866, 48884, 48935, 48950, 48986, 49033, 49054, 49072, 49134, 49170, 49202, 49248, 49266, 49276, 49288, 49310, 793, 917, 794, 1157, 523, 1154, 48580, 48605, 48631, 48652, 48679, 48738, 48753, 48789, 48815, 48841, 48866, 48884, 48935, 48950, 48986, 49033, 49054, 49072, 49134, 49170, 49202, 49248, 49266, 49276, 49288, 49310, 795, 1566, 796, 1568, 813, 814, 650, 883, 884, 561, 545, 57095, 57047, 57048, 57049, 57051, 57052, 57083, 57084, 57086, 57065, 7182, 57047, 57048, 57049, 57051, 57052, 57053, 57054, 57055, 57056, 57057, 57058, 57059, 57060, 57061, 57062, 57063, 57064, 57065, 57066, 57067, 57068, 57069, 57070, 57071, 57072, 57073, 57074, 57075, 57076, 57077, 57078, 57079, 57080, 57081, 57082, 57083, 57084, 57086, 57087, 57088, 57089, 57090, 57091, 57092, 57096, 0, 0, 56815, 56690, 56691, 56912, 56692, 56914, 56915, 56693, 56694, 56695, 56918, 56919, 56920, 56921, 56922, 56923, 56716, 56696, 56697, 56698, 56723, 56699, 56700, 56701, 56702, 56703, 56704, 56705, 56706, 56707, 56708, 63011, 63011, 63011, 56816, 56817, 56818, 56819, 56820, 56821, 63011, 63011, 56822, 56823, 56824, 56825, 56826, 56827, 63011, 63011, 56828, 56829, 56830, 56831, 56832, 56833, 63011, 63011, 56834, 56835, 56836, 63011, 63011, 63011, 7185, 7187, 1565, 1158, 1567, 7188, 7207, 63011, 2074, 1436, 1438, 1437, 1439, 2232, 2275, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 63011, 0, 0, 0, 6805, 64095, 63011, 63011, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 55, 56, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 32, 32, 32, 32, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 18, 18, 18, 18, 18, 18, 16, 16, 16, 16, 16, 16, 16, 16, 16, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 2, 2, 2, 18, 18, 18, 18, 18, 18, 2, 2, 18, 18, 18, 18, 18, 18, 2, 2, 18, 18, 18, 18, 18, 18, 2, 2, 18, 18, 18, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 2, 18, 18, 18, 18, 18, 18, 18, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 2, 2, 2, 65280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65471, 65472, 65473, 0, 0, 0, 0, 0, 0, 65480, 65481, 0, 0, 0, 0, 0, 0, 65488, 65489, 0, 0, 0, 0, 0, 0, 65496, 65497, 0, 0, 0, 65501, 65502, 65503, 0, 0, 0, 0, 0, 0, 0, 65511, 0, 0, 0, 0, 0, 0, 0, 65519, 65520, 65521, 65522, 65523, 65524, 65525, 65526, 65527, 65528, 0, 0, 0, 0, 0, 65534, 65535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +256: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 59236, 59237, 59238, 59239, 59240, 59241, 59242, 59243, 59244, 59245, 59246, 59247, 63012, 59248, 59249, 59250, 59251, 59252, 59253, 59254, 59255, 59256, 59257, 59258, 59259, 59260, 59261, 59262, 59263, 59264, 59265, 59266, 59267, 59268, 59269, 59270, 59271, 59272, 59273, 63012, 59274, 59275, 59276, 59277, 59278, 59279, 59280, 59281, 59282, 59283, 59284, 59285, 59286, 59287, 59288, 59289, 59290, 59291, 59292, 63012, 59293, 59294, 63012, 59295, 59296, 59297, 59298, 59299, 59300, 59301, 59302, 59303, 59304, 59305, 59306, 59307, 59308, 59309, 63012, 63012, 59310, 59311, 59312, 59313, 59314, 59315, 59316, 59317, 59318, 59319, 59320, 59321, 59322, 59323, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 59324, 59325, 59326, 59327, 59328, 59329, 59330, 59331, 59332, 59333, 59334, 59335, 59336, 59337, 59338, 59339, 59340, 59341, 59342, 59343, 59344, 59345, 59346, 59347, 59348, 59349, 59350, 59351, 59352, 59353, 59354, 59355, 59356, 59357, 59358, 59359, 59360, 59361, 59362, 59363, 59364, 59365, 59366, 59367, 59368, 59369, 59370, 59371, 59372, 59373, 59374, 59375, 59376, 59377, 59378, 59379, 59380, 59381, 59382, 59383, 59384, 59385, 59386, 59387, 59388, 59389, 59390, 59391, 59392, 59393, 59394, 59395, 59396, 59397, 59398, 59399, 59400, 59401, 59402, 59403, 59404, 59405, 59406, 59407, 59408, 59409, 59410, 59411, 59412, 59413, 59414, 59415, 59416, 59417, 59418, 59419, 59420, 59421, 59422, 59423, 59424, 59425, 59426, 59427, 59428, 59429, 59430, 59431, 59432, 59433, 59434, 59435, 59436, 59437, 59438, 59439, 59440, 59441, 59442, 59443, 59444, 59445, 59446, 63012, 63012, 63012, 63012, 63012, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32780, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32807, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32827, 0, 0, 32830, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32846, 32847, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32862, 32863, 32864, 32865, 32866, 32867, 32868, 32869, 32870, 32871, 32872, 32873, 32874, 32875, 32876, 32877, 32878, 32879, 32880, 32881, 32882, 32883, 32884, 32885, 32886, 32887, 32888, 32889, 32890, 32891, 32892, 32893, 32894, 32895, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33019, 33020, 33021, 33022, 33023, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +257: 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 762, 763, 764, 63012, 63012, 63012, 63012, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 6889, 6890, 6891, 6892, 6893, 6894, 6895, 6896, 6897, 6898, 6899, 6900, 6901, 6902, 6903, 6904, 6905, 6906, 6907, 6908, 6909, 6910, 6911, 6912, 6913, 6914, 6915, 6916, 6917, 6918, 6919, 6920, 6921, 6922, 6923, 6924, 63012, 63012, 63012, 3960, 3961, 3962, 3963, 3964, 3965, 3966, 3967, 3968, 6925, 6926, 7230, 7234, 6927, 6928, 6929, 6930, 7234, 6931, 6932, 6933, 6934, 6935, 6936, 7234, 6937, 6938, 6939, 6940, 6941, 6942, 6943, 6944, 7230, 7230, 7230, 7231, 7231, 7231, 7231, 7234, 6945, 6946, 6947, 6948, 6949, 6950, 6951, 6952, 6953, 6954, 6955, 6956, 6957, 6958, 6959, 6960, 6961, 6962, 6963, 7234, 6964, 6965, 6966, 6967, 6968, 3969, 3970, 3971, 3972, 3973, 3974, 3975, 3976, 3977, 3978, 3979, 3980, 3981, 3982, 3983, 3984, 3985, 7229, 6969, 3986, 3987, 3988, 63012, 3989, 3990, 3991, 3992, 3993, 3994, 3995, 3996, 3997, 3998, 3999, 4000, 63012, 63012, 63012, 63012, 4001, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 4002, 4003, 4004, 4005, 4006, 4007, 4008, 4009, 4010, 4011, 4012, 4013, 4014, 4015, 4016, 4017, 4018, 4019, 4020, 4021, 4022, 4023, 4024, 4025, 4026, 4027, 4028, 4029, 4030, 4031, 4032, 4033, 4034, 4035, 4036, 4037, 4038, 4039, 4040, 4041, 4042, 4043, 4044, 4045, 4046, 0, 63012, 63012, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 271, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 33027, 33028, 33029, 33030, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33076, 33077, 33078, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33180, 33181, 33182, 33183, 0, 33185, 33186, 33187, 33188, 33189, 33190, 33191, 33192, 33193, 33194, 33195, 33196, 33197, 33198, 33199, 33200, 33201, 33202, 33203, 33204, 33205, 33206, 33207, 33208, 33209, 33210, 33211, 33212, 33213, 33214, 33215, 33216, 33217, 33218, 33219, 33220, 33221, 33222, 33223, 33224, 33225, 33226, 33227, 33228, 33229, 33230, 33231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33278, 33279, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +258: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 58668, 58669, 58670, 58671, 58672, 58673, 58674, 58675, 58676, 58677, 58678, 58679, 58680, 58681, 58682, 58683, 58684, 58685, 58686, 58687, 58688, 58689, 58690, 58691, 58692, 58693, 58694, 58695, 58696, 63012, 63012, 63012, 58697, 58698, 58699, 58700, 58701, 58702, 58703, 58704, 58705, 58706, 58707, 58708, 58709, 58710, 58711, 58712, 58713, 58714, 58715, 58716, 58717, 58718, 58719, 58720, 58721, 58722, 58723, 58724, 58725, 58726, 58727, 58728, 58729, 58730, 58731, 58732, 58733, 58734, 58735, 58736, 58737, 58738, 58739, 58740, 58741, 58742, 58743, 58744, 58745, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 0, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 6970, 6971, 6972, 6973, 6974, 6975, 6976, 6977, 6978, 6979, 6980, 6981, 6982, 6983, 6984, 6985, 6986, 6987, 63012, 63012, 63012, 63012, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 33280, 33281, 33282, 33283, 33284, 33285, 33286, 33287, 33288, 33289, 33290, 33291, 33292, 33293, 33294, 33295, 33296, 33297, 33298, 33299, 33300, 33301, 33302, 33303, 33304, 33305, 33306, 33307, 33308, 33309, 33310, 33311, 33312, 33313, 33314, 33315, 33316, 33317, 33318, 33319, 33320, 33321, 33322, 33323, 33324, 33325, 33326, 33327, 33328, 33329, 33330, 33331, 33332, 33333, 33334, 33335, 33336, 33337, 33338, 33339, 33340, 33341, 33342, 33343, 33344, 33345, 33346, 33347, 33348, 33349, 33350, 33351, 33352, 33353, 33354, 33355, 33356, 33357, 33358, 33359, 33360, 33361, 33362, 33363, 33364, 33365, 33366, 33367, 33368, 33369, 33370, 33371, 33372, 33373, 33374, 33375, 33376, 33377, 33378, 33379, 33380, 33381, 33382, 33383, 33384, 33385, 33386, 33387, 33388, 33389, 33390, 33391, 33392, 33393, 33394, 33395, 33396, 33397, 33398, 33399, 33400, 33401, 33402, 33403, 33404, 33405, 33406, 33407, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33437, 33438, 33439, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33489, 33490, 33491, 33492, 33493, 33494, 33495, 33496, 33497, 33498, 33499, 33500, 33501, 33502, 33503, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33532, 33533, 33534, 33535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +259: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 58772, 58773, 58774, 58775, 58776, 58777, 58778, 58779, 58780, 58781, 58782, 58783, 58784, 58785, 58786, 58788, 58789, 58790, 58791, 58792, 58793, 58794, 58795, 58796, 58797, 58798, 58799, 58800, 58801, 58802, 58803, 58787, 7230, 7234, 6883, 6884, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 58804, 58805, 58806, 58807, 58808, 58809, 58810, 58811, 58812, 58813, 58814, 58815, 58816, 58817, 58818, 58819, 58820, 58821, 58822, 58823, 58824, 58825, 58826, 58827, 58828, 58829, 58830, 63012, 63012, 63012, 63012, 63012, 50065, 50066, 50067, 50068, 50069, 50070, 50071, 50072, 50073, 50074, 50075, 50076, 50077, 50078, 50079, 50080, 50081, 50082, 50083, 50084, 50085, 50086, 50087, 50088, 50089, 50090, 50091, 50092, 50093, 50094, 50095, 50096, 50097, 50098, 50099, 50100, 50101, 50102, 50065, 50068, 50072, 50078, 50082, 63012, 63012, 63012, 63012, 63012, 60136, 60137, 60138, 60139, 60140, 60141, 60142, 60143, 60144, 60145, 60146, 60147, 60148, 60149, 60150, 60151, 60152, 60153, 60154, 60155, 60156, 60157, 60158, 60159, 60160, 60161, 60162, 60163, 60164, 60165, 63012, 765, 60166, 60167, 60168, 60169, 60170, 60171, 60172, 60173, 60174, 60175, 60176, 60177, 60178, 60179, 60180, 60181, 60182, 60183, 60184, 60185, 60186, 60187, 60188, 60189, 60190, 60191, 60192, 60193, 60194, 60195, 60196, 60197, 60198, 60199, 60200, 60201, 63012, 63012, 63012, 63012, 60202, 60203, 60204, 60205, 60206, 60207, 60208, 60209, 766, 7230, 7231, 6988, 6989, 6990, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 33572, 33573, 33574, 33575, 33576, 33577, 33578, 33579, 33580, 33581, 33582, 33583, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33611, 33612, 33613, 33614, 33615, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33659, 33660, 33661, 33662, 33663, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33694, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33732, 33733, 33734, 33735, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33750, 33751, 33752, 33753, 33754, 33755, 33756, 33757, 33758, 33759, 33760, 33761, 33762, 33763, 33764, 33765, 33766, 33767, 33768, 33769, 33770, 33771, 33772, 33773, 33774, 33775, 33776, 33777, 33778, 33779, 33780, 33781, 33782, 33783, 33784, 33785, 33786, 33787, 33788, 33789, 33790, 33791, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +260: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 58831, 58832, 58833, 58834, 58835, 58836, 58837, 58838, 58839, 58840, 58841, 58842, 58843, 58844, 58845, 58846, 58847, 58848, 58849, 58850, 58851, 58852, 58853, 58854, 58855, 58856, 58857, 58858, 58859, 58860, 58861, 58862, 58863, 58864, 58865, 58866, 58867, 58868, 58869, 58870, 58831, 58832, 58833, 58834, 58835, 58836, 58837, 58838, 58839, 58840, 58841, 58842, 58843, 58844, 58845, 58846, 58847, 58848, 58849, 58850, 58851, 58852, 58853, 58854, 58855, 58856, 58857, 58858, 58859, 58860, 58861, 58862, 58863, 58864, 58865, 58866, 58867, 58868, 58869, 58870, 58871, 58872, 58873, 58874, 58875, 58876, 58877, 58878, 58879, 58880, 58881, 58882, 58883, 58884, 58885, 58886, 58887, 58888, 58889, 58890, 58891, 58892, 58893, 58894, 58895, 58896, 58897, 58898, 58899, 58900, 58901, 58902, 58903, 58904, 58905, 58906, 58907, 58908, 58909, 58910, 58911, 58912, 58913, 58914, 58915, 58916, 58917, 58918, 59058, 59059, 59060, 59061, 59062, 59063, 59064, 59065, 59066, 59067, 59068, 59069, 59070, 59071, 59072, 59073, 59074, 59075, 59076, 59077, 59078, 59079, 59080, 59081, 59082, 59083, 59084, 59085, 59086, 59087, 63012, 63012, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 63012, 63012, 63012, 63012, 63012, 63012, 54610, 54611, 54612, 54613, 54614, 54615, 54616, 54617, 54618, 54619, 54620, 54621, 54622, 54623, 54624, 54625, 54626, 54627, 54628, 54629, 54630, 54631, 54632, 54633, 54634, 54635, 54636, 54637, 54638, 54639, 54640, 54641, 54642, 54643, 54644, 54645, 63012, 63012, 63012, 63012, 54610, 54611, 54612, 54613, 54614, 54615, 54616, 54617, 54618, 54619, 54620, 54621, 54622, 54623, 54624, 54625, 54626, 54627, 54628, 54629, 54630, 54631, 54632, 54633, 54634, 54635, 54636, 54637, 54638, 54639, 54640, 54641, 54642, 54643, 54644, 54645, 63012, 63012, 63012, 63012, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 33950, 33951, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33962, 33963, 33964, 33965, 33966, 33967, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34004, 34005, 34006, 34007, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34044, 34045, 34046, 34047, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +261: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 59088, 59089, 59090, 59091, 59092, 59093, 59094, 59095, 59096, 59097, 59098, 59099, 59100, 59101, 59102, 59103, 59104, 59105, 59106, 59107, 59108, 59109, 59110, 59111, 59112, 59113, 59114, 59115, 59116, 59117, 59118, 59119, 59120, 59121, 59122, 59123, 59124, 59125, 59126, 59127, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 59128, 59129, 59130, 59131, 59132, 59133, 59134, 59135, 59136, 59137, 59138, 59139, 59140, 59141, 59142, 59143, 59144, 59145, 59146, 59147, 59148, 59149, 59150, 59151, 59152, 59153, 59154, 59155, 59156, 59157, 59158, 59159, 59160, 59161, 59162, 59163, 59164, 59165, 59166, 59167, 59168, 59169, 59170, 59171, 59172, 59173, 59174, 59175, 59176, 59177, 59178, 59179, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 1074, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 34088, 34089, 34090, 34091, 34092, 34093, 34094, 34095, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34148, 34149, 34150, 34151, 34152, 34153, 34154, 34155, 34156, 34157, 34158, 0, 34160, 34161, 34162, 34163, 34164, 34165, 34166, 34167, 34168, 34169, 34170, 34171, 34172, 34173, 34174, 34175, 34176, 34177, 34178, 34179, 34180, 34181, 34182, 34183, 34184, 34185, 34186, 34187, 34188, 34189, 34190, 34191, 34192, 34193, 34194, 34195, 34196, 34197, 34198, 34199, 34200, 34201, 34202, 34203, 34204, 34205, 34206, 34207, 34208, 34209, 34210, 34211, 34212, 34213, 34214, 34215, 34216, 34217, 34218, 34219, 34220, 34221, 34222, 34223, 34224, 34225, 34226, 34227, 34228, 34229, 34230, 34231, 34232, 34233, 34234, 34235, 34236, 34237, 34238, 34239, 34240, 34241, 34242, 34243, 34244, 34245, 34246, 34247, 34248, 34249, 34250, 34251, 34252, 34253, 34254, 34255, 34256, 34257, 34258, 34259, 34260, 34261, 34262, 34263, 34264, 34265, 34266, 34267, 34268, 34269, 34270, 34271, 34272, 34273, 34274, 34275, 34276, 34277, 34278, 34279, 34280, 34281, 34282, 34283, 34284, 34285, 34286, 34287, 34288, 34289, 34290, 34291, 34292, 34293, 34294, 34295, 34296, 34297, 34298, 34299, 34300, 34301, 34302, 34303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +262: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 59447, 59448, 59449, 59450, 59451, 59452, 59453, 59454, 59455, 59456, 59457, 59458, 59459, 59460, 59461, 59462, 59463, 59464, 59465, 59466, 59467, 59468, 59469, 59470, 59471, 59472, 59473, 59474, 59475, 59476, 59477, 59478, 59479, 59480, 59481, 59482, 59483, 59484, 59485, 59486, 59487, 59488, 59489, 59490, 59491, 59492, 59493, 59494, 59495, 59496, 59497, 59498, 59499, 59500, 59501, 59502, 59503, 59504, 59505, 59506, 59507, 59508, 59509, 59510, 59511, 59512, 59513, 59514, 59515, 59516, 59517, 59518, 59519, 59520, 59521, 59522, 59523, 59524, 59525, 59526, 59527, 59528, 59529, 59530, 59531, 59532, 59533, 59534, 59535, 59536, 59537, 59538, 59539, 59540, 59541, 59542, 59543, 59544, 59545, 59546, 59547, 59548, 59549, 59550, 59551, 59552, 59553, 59554, 59555, 59556, 59557, 59558, 59559, 59560, 59561, 59562, 59563, 59564, 59565, 59566, 59567, 59568, 59569, 59570, 59571, 59572, 59573, 59574, 59575, 59576, 59577, 59578, 59579, 59580, 59581, 59582, 59583, 59584, 59585, 59586, 59587, 59588, 59589, 59590, 59591, 59592, 59593, 59594, 59595, 59596, 59597, 59598, 59599, 59600, 59601, 59602, 59603, 59604, 59605, 59606, 59607, 59608, 59609, 59610, 59611, 59612, 59613, 59614, 59615, 59616, 59617, 59618, 59619, 59620, 59621, 59622, 59623, 59624, 59625, 59626, 59627, 59628, 59629, 59630, 59631, 59632, 59633, 59634, 59635, 59636, 59637, 59638, 59639, 59640, 59641, 59642, 59643, 59644, 59645, 59646, 59647, 59648, 59649, 59650, 59651, 59652, 59653, 59654, 59655, 59656, 59657, 59658, 59659, 59660, 59661, 59662, 59663, 59664, 59665, 59666, 59667, 59668, 59669, 59670, 59671, 59672, 59673, 59674, 59675, 59676, 59677, 59678, 59679, 59680, 59681, 59682, 59683, 59684, 59685, 59686, 59687, 59688, 59689, 59690, 59691, 59692, 59693, 59694, 59695, 59696, 59697, 59698, 59699, 59700, 59701, 59702, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +263: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 59703, 59704, 59705, 59706, 59707, 59708, 59709, 59710, 59711, 59712, 59713, 59714, 59715, 59716, 59717, 59718, 59719, 59720, 59721, 59722, 59723, 59724, 59725, 59726, 59727, 59728, 59729, 59730, 59731, 59732, 59733, 59734, 59735, 59736, 59737, 59738, 59739, 59740, 59741, 59742, 59743, 59744, 59745, 59746, 59747, 59748, 59749, 59750, 59751, 59752, 59753, 59754, 59755, 59756, 59757, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 59758, 59759, 59760, 59761, 59762, 59763, 59764, 59765, 59766, 59767, 59768, 59769, 59770, 59771, 59772, 59773, 59774, 59775, 59776, 59777, 59778, 59779, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 59780, 59781, 59782, 59783, 59784, 59785, 59786, 59787, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 34615, 34616, 34617, 34618, 34619, 34620, 34621, 34622, 34623, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34646, 34647, 34648, 34649, 34650, 34651, 34652, 34653, 34654, 34655, 0, 0, 0, 0, 0, 0, 0, 0, 34664, 34665, 34666, 34667, 34668, 34669, 34670, 34671, 34672, 34673, 34674, 34675, 34676, 34677, 34678, 34679, 34680, 34681, 34682, 34683, 34684, 34685, 34686, 34687, 34688, 34689, 34690, 34691, 34692, 34693, 34694, 34695, 34696, 34697, 34698, 34699, 34700, 34701, 34702, 34703, 34704, 34705, 34706, 34707, 34708, 34709, 34710, 34711, 34712, 34713, 34714, 34715, 34716, 34717, 34718, 34719, 34720, 34721, 34722, 34723, 34724, 34725, 34726, 34727, 34728, 34729, 34730, 34731, 34732, 34733, 34734, 34735, 34736, 34737, 34738, 34739, 34740, 34741, 34742, 34743, 34744, 34745, 34746, 34747, 34748, 34749, 34750, 34751, 34752, 34753, 34754, 34755, 34756, 34757, 34758, 34759, 34760, 34761, 34762, 34763, 34764, 34765, 34766, 34767, 34768, 34769, 34770, 34771, 34772, 34773, 34774, 34775, 34776, 34777, 34778, 34779, 34780, 34781, 34782, 34783, 34784, 34785, 34786, 34787, 34788, 34789, 34790, 34791, 34792, 34793, 34794, 34795, 34796, 34797, 34798, 34799, 34800, 34801, 34802, 34803, 34804, 34805, 34806, 34807, 34808, 34809, 34810, 34811, 34812, 34813, 34814, 34815, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +264: 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 59788, 59789, 59790, 59791, 59792, 59793, 63012, 63012, 59794, 63012, 59795, 59796, 59797, 59798, 59799, 59800, 59801, 59802, 59803, 59804, 59805, 59806, 59807, 59808, 59809, 59810, 59811, 59812, 59813, 59814, 59815, 59816, 59817, 59818, 59819, 59820, 59821, 59822, 59823, 59824, 59825, 59826, 59827, 59828, 59829, 59830, 59831, 59832, 59833, 59834, 59835, 59836, 59837, 59838, 63012, 59839, 59840, 63012, 63012, 63012, 59841, 63012, 63012, 59842, 60019, 60020, 60021, 60022, 60023, 60024, 60025, 60026, 60027, 60028, 60029, 60030, 60031, 60032, 60033, 60034, 60035, 60036, 60037, 60038, 60039, 60040, 63012, 729, 7230, 7231, 7232, 7006, 7007, 7008, 7009, 7010, 59954, 59955, 59956, 59957, 59958, 59959, 59960, 59961, 59962, 59963, 59964, 59965, 59966, 59967, 59967, 59968, 59969, 59970, 59971, 59972, 59973, 59974, 59975, 4047, 4048, 7230, 7231, 7232, 7233, 7234, 6991, 6992, 59976, 59976, 59977, 59977, 59978, 59979, 59980, 59980, 59981, 59982, 59983, 59984, 59985, 59985, 59986, 59986, 59987, 59987, 59988, 59988, 59989, 59989, 59990, 59991, 59992, 59993, 59994, 59995, 59996, 59996, 59997, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 7230, 7231, 7232, 7233, 7233, 7234, 6993, 6994, 6995, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 59998, 59999, 60000, 60001, 60002, 60003, 60004, 60005, 60006, 60007, 60008, 60009, 60010, 60011, 60012, 60013, 60014, 60015, 60016, 63012, 60017, 60018, 63012, 63012, 63012, 63012, 63012, 7230, 7234, 6996, 6997, 6998, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 25, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 25, 2, 25, 2, 2, 2, 25, 2, 2, 2, 2, 2, 25, 2, 25, 2, 25, 2, 25, 2, 25, 2, 2, 2, 2, 2, 2, 2, 25, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 34822, 34823, 0, 34825, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34870, 0, 0, 34873, 34874, 34875, 0, 34877, 34878, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34902, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34975, 34976, 34977, 34978, 34979, 34980, 34981, 34982, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34992, 34993, 34994, 34995, 34996, 34997, 34998, 34999, 35000, 35001, 35002, 35003, 35004, 35005, 35006, 35007, 35008, 35009, 35010, 35011, 35012, 35013, 35014, 35015, 35016, 35017, 35018, 35019, 35020, 35021, 35022, 35023, 35024, 35025, 35026, 35027, 35028, 35029, 35030, 35031, 35032, 35033, 35034, 35035, 35036, 35037, 35038, 35039, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35059, 0, 0, 35062, 35063, 35064, 35065, 35066, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +265: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 50250, 50251, 50252, 50253, 50254, 50255, 50256, 50257, 50258, 50259, 50260, 50261, 50262, 50263, 50264, 50265, 50266, 50267, 50268, 50269, 50270, 50271, 7230, 7003, 7004, 7005, 7231, 7232, 63012, 63012, 63012, 767, 58746, 58747, 58748, 58749, 58750, 58751, 58752, 58753, 58754, 58755, 58756, 58757, 58758, 58759, 58760, 58761, 58762, 58763, 58764, 58765, 58766, 58767, 58768, 58769, 58770, 58771, 63012, 63012, 63012, 63012, 63012, 761, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 62399, 62400, 62401, 62402, 62403, 62404, 62405, 62405, 62406, 62407, 62408, 62408, 62409, 62409, 62410, 62410, 62411, 62412, 62413, 62414, 62414, 62415, 62416, 62417, 62418, 62418, 62419, 62419, 62420, 62421, 62424, 62425, 62399, 62400, 62401, 62402, 62403, 62404, 62405, 62406, 62407, 62408, 62409, 62410, 62411, 62412, 62413, 62414, 62414, 62415, 62416, 62417, 62418, 62419, 62420, 62421, 63012, 63012, 63012, 63012, 7133, 7122, 62422, 62423, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7079, 7080, 7081, 7082, 7083, 7084, 7085, 63012, 63012, 7086, 7087, 7088, 7089, 7090, 7091, 7092, 7093, 7094, 7095, 7096, 7097, 7098, 7099, 7100, 7101, 7102, 7103, 7104, 7105, 7106, 7107, 7108, 7109, 7110, 7111, 7112, 7113, 7114, 7115, 7116, 7117, 7118, 7119, 7120, 7121, 7123, 7124, 7125, 7126, 7127, 7128, 7129, 7130, 7131, 7132, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 35100, 35101, 35102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35130, 35131, 35132, 35133, 35134, 0, 35136, 35137, 35138, 35139, 35140, 35141, 35142, 35143, 35144, 35145, 35146, 35147, 35148, 35149, 35150, 35151, 35152, 35153, 35154, 35155, 35156, 35157, 35158, 35159, 35160, 35161, 35162, 35163, 35164, 35165, 35166, 35167, 35168, 35169, 35170, 35171, 35172, 35173, 35174, 35175, 35176, 35177, 35178, 35179, 35180, 35181, 35182, 35183, 35184, 35185, 35186, 35187, 35188, 35189, 35190, 35191, 35192, 35193, 35194, 35195, 35196, 35197, 35198, 35199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35256, 35257, 35258, 35259, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35280, 35281, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 272, 272, 272, 272, 272, 272, 272, 273, 272, 272, 272, 273, 272, 273, 272, 273, 272, 272, 272, 273, 274, 272, 272, 272, 272, 273, 272, 273, 272, 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +266: 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 52874, 52875, 52876, 52877, 63012, 52878, 52879, 63012, 63012, 63012, 63012, 63012, 52880, 0, 0, 0, 52881, 52882, 52883, 52884, 63012, 52885, 52886, 52887, 63012, 52888, 52889, 52890, 52891, 52892, 52893, 52894, 52895, 52896, 52897, 52898, 52899, 52900, 52901, 52902, 52903, 52904, 52905, 52906, 52907, 52908, 52909, 52910, 52911, 52912, 52913, 52914, 63012, 63012, 63012, 63012, 0, 0, 0, 63012, 63012, 63012, 63012, 52915, 7230, 7231, 7232, 7233, 7038, 7039, 7040, 7041, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 1080, 1081, 1082, 1083, 1084, 1085, 682, 683, 1086, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 59843, 59844, 59845, 59846, 59847, 59848, 59849, 59850, 59851, 59852, 59853, 59854, 59855, 59856, 59857, 59858, 59859, 59860, 59861, 59862, 59863, 59864, 59865, 59866, 59867, 59868, 59869, 59870, 59871, 7230, 6999, 7000, 59872, 59873, 59874, 59875, 59876, 59877, 59878, 59879, 59880, 59881, 59882, 59883, 59884, 59885, 59886, 59887, 59888, 59889, 59890, 59891, 59892, 59893, 59894, 59895, 59896, 59897, 59898, 59899, 59900, 7230, 7001, 7002, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 60100, 60101, 60102, 60103, 60104, 60105, 60106, 60107, 60107, 60108, 60109, 60110, 60111, 60112, 60113, 60114, 60115, 60116, 60117, 60118, 60119, 60120, 60121, 60122, 60123, 60124, 60125, 60126, 60127, 60128, 60129, 60130, 60131, 60132, 60133, 60134, 60135, 0, 0, 63012, 63012, 63012, 63012, 7230, 7234, 7011, 7012, 7013, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 52, 196, 197, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 204, 205, 206, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 51, 52, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 35332, 0, 0, 35335, 35336, 35337, 35338, 35339, 0, 0, 0, 0, 0, 0, 0, 0, 35348, 0, 0, 0, 35352, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35380, 35381, 35382, 35383, 0, 0, 0, 35387, 35388, 35389, 35390, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35400, 35401, 35402, 35403, 35404, 35405, 35406, 35407, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35417, 35418, 35419, 35420, 35421, 35422, 35423, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35488, 35489, 35490, 35491, 35492, 35493, 35494, 35495, 35496, 35497, 35498, 35499, 35500, 35501, 35502, 35503, 35504, 35505, 35506, 35507, 35508, 35509, 35510, 35511, 35512, 35513, 35514, 35515, 35516, 35517, 35518, 35519, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35559, 35560, 35561, 35562, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35575, 35576, 35577, 35578, 35579, 35580, 35581, 35582, 35583, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +267: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 59901, 59902, 59903, 59904, 59905, 59906, 59907, 59908, 59909, 59910, 59911, 59912, 59913, 59914, 59915, 59916, 59917, 59918, 59919, 59920, 59921, 59922, 59923, 59924, 59925, 59926, 59927, 59928, 59929, 59930, 59931, 59932, 59933, 59934, 59935, 59936, 59937, 59938, 59939, 59940, 59941, 59942, 59943, 59944, 59945, 59946, 59946, 59947, 59948, 59949, 59950, 59951, 59952, 59953, 63012, 63012, 63012, 1090, 730, 731, 732, 733, 734, 735, 60041, 60042, 60043, 60044, 60045, 60046, 60047, 60048, 60049, 60050, 60051, 60052, 60053, 60054, 60055, 60056, 60057, 60058, 60059, 60060, 60061, 60062, 63012, 63012, 7230, 7231, 7232, 7233, 7014, 7015, 7016, 7017, 60063, 60064, 60065, 60066, 60067, 60068, 60069, 60070, 60071, 60072, 60073, 60074, 60075, 60076, 60077, 60078, 60079, 60080, 60081, 63012, 63012, 63012, 63012, 63012, 7230, 7231, 7232, 7233, 7018, 7019, 7020, 7021, 60082, 60083, 60084, 60085, 60086, 60087, 60088, 60089, 60090, 60091, 60092, 60093, 60094, 60095, 60096, 60097, 60098, 60099, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 1098, 1099, 1100, 1101, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 7230, 7231, 7232, 7233, 7022, 7023, 7024, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 35638, 35639, 35640, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35670, 35671, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35699, 35700, 35701, 35702, 35703, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35730, 35731, 35732, 35733, 35734, 35735, 35736, 0, 0, 0, 0, 35741, 35742, 35743, 35744, 35745, 35746, 35747, 35748, 35749, 35750, 35751, 35752, 0, 0, 0, 0, 0, 0, 0, 35760, 35761, 35762, 35763, 35764, 35765, 35766, 35767, 35768, 35769, 35770, 35771, 35772, 35773, 35774, 35775, 35776, 35777, 35778, 35779, 35780, 35781, 35782, 35783, 35784, 35785, 35786, 35787, 35788, 35789, 35790, 35791, 35792, 35793, 35794, 35795, 35796, 35797, 35798, 35799, 35800, 35801, 35802, 35803, 35804, 35805, 35806, 35807, 35808, 35809, 35810, 35811, 35812, 35813, 35814, 35815, 35816, 35817, 35818, 35819, 35820, 35821, 35822, 35823, 35824, 35825, 35826, 35827, 35828, 35829, 35830, 35831, 35832, 35833, 35834, 35835, 35836, 35837, 35838, 35839, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +268: 1, 2, 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 55466, 55466, 55467, 55468, 55468, 55469, 55470, 55471, 55471, 55472, 55472, 55473, 55473, 55474, 55474, 55475, 55475, 55476, 55476, 55477, 55478, 55478, 55479, 55479, 55480, 55480, 55481, 55481, 55482, 55482, 55483, 55483, 55484, 55485, 55486, 55487, 55488, 55488, 55489, 55489, 55490, 55490, 55491, 55491, 55492, 55493, 55493, 55494, 55495, 55496, 55497, 55497, 55498, 55498, 55499, 55499, 55500, 55500, 55501, 55501, 55502, 55503, 55504, 55505, 55505, 55506, 55506, 55507, 55507, 55508, 55508, 55509, 55510, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 55425, 55425, 55426, 55427, 55428, 55429, 55430, 55431, 55432, 55433, 55433, 55433, 55434, 55435, 55436, 55437, 55438, 55438, 55439, 55440, 55441, 55442, 55443, 55444, 55445, 55446, 55447, 55448, 55448, 55449, 55449, 55449, 55450, 55451, 55452, 55452, 55453, 55454, 55455, 55456, 55457, 55458, 55459, 55459, 55460, 55460, 55461, 55462, 55463, 55464, 55465, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 55425, 55425, 55426, 55427, 55428, 55429, 55430, 55431, 55432, 55433, 55433, 55433, 55434, 55435, 55436, 55437, 55438, 55438, 55439, 55440, 55441, 55442, 55443, 55444, 55445, 55446, 55447, 55448, 55448, 55449, 55449, 55449, 55450, 55451, 55452, 55452, 55453, 55454, 55455, 55456, 55457, 55458, 55459, 55459, 55460, 55460, 55461, 55462, 55463, 55464, 55465, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 7230, 7234, 6885, 6886, 6887, 6888, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 4, 2, 2, 4, 2, 2, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 4, 2, 4, 2, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 2, 2, 2, 4, 2, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 8, 10, 8, 8, 8, 8, 8, 8, 8, 8, 10, 10, 8, 8, 8, 8, 8, 10, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 10, 8, 10, 10, 8, 8, 8, 10, 8, 8, 8, 8, 8, 8, 8, 10, 8, 10, 8, 8, 8, 8, 8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 35913, 35914, 35915, 35916, 35917, 35918, 35919, 35920, 35921, 35922, 35923, 35924, 35925, 35926, 35927, 35928, 35929, 35930, 35931, 35932, 35933, 35934, 35935, 35936, 35937, 35938, 35939, 35940, 35941, 35942, 35943, 35944, 35945, 35946, 35947, 35948, 35949, 35950, 35951, 35952, 35953, 35954, 35955, 35956, 35957, 35958, 35959, 35960, 35961, 35962, 35963, 35964, 35965, 35966, 35967, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36019, 36020, 36021, 36022, 36023, 36024, 36025, 36026, 36027, 36028, 36029, 36030, 36031, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36083, 36084, 36085, 36086, 36087, 36088, 36089, 0, 0, 0, 0, 0, 0, 0, 272, 0, 0, 272, 0, 0, 0, 272, 0, 272, 0, 272, 0, 272, 0, 272, 0, 272, 0, 0, 272, 0, 272, 0, 272, 0, 272, 0, 272, 0, 272, 0, 0, 0, 0, 0, 272, 0, 272, 0, 272, 0, 272, 0, 0, 272, 0, 0, 0, 0, 272, 0, 272, 0, 272, 0, 272, 0, 272, 0, 0, 0, 0, 272, 0, 272, 0, 272, 0, 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 272, 0, 0, 0, 0, 0, 0, 0, 0, 272, 273, 0, 0, 0, 0, 0, 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 272, 0, 272, 273, 0, 0, 0, 272, 0, 0, 0, 0, 0, 0, 0, 272, 0, 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 272, 0, 0, 0, 0, 0, 0, 0, 0, 272, 273, 0, 0, 0, 0, 0, 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 272, 0, 272, 273, 0, 0, 0, 272, 0, 0, 0, 0, 0, 0, 0, 272, 0, 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 4, 0, 0, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 0, 0, 0, 0, 4, 0, 4, 0, 4, 0, 4, 0, 0, 4, 0, 0, 0, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 0, 0, 0, 4, 0, 4, 0, 4, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 4, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 4, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 4, 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, 4, 4, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 4, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +270: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 6860, 6861, 6862, 6863, 6864, 6865, 6866, 6867, 6868, 6869, 6870, 6871, 6872, 6873, 6874, 6875, 6876, 6877, 6878, 6879, 6880, 6881, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 36352, 36353, 36354, 36355, 36356, 36357, 36358, 36359, 36360, 36361, 36362, 36363, 36364, 36365, 36366, 36367, 36368, 36369, 36370, 36371, 36372, 36373, 36374, 36375, 36376, 36377, 36378, 36379, 36380, 36381, 36382, 36383, 36384, 36385, 36386, 36387, 36388, 36389, 36390, 36391, 36392, 36393, 36394, 36395, 36396, 36397, 36398, 36399, 36400, 36401, 36402, 36403, 36404, 36405, 36406, 36407, 36408, 36409, 36410, 36411, 36412, 36413, 36414, 36415, 36416, 36417, 36418, 36419, 36420, 36421, 36422, 36423, 36424, 36425, 36426, 36427, 36428, 36429, 36430, 36431, 36432, 36433, 36434, 36435, 36436, 36437, 36438, 36439, 36440, 36441, 36442, 36443, 36444, 36445, 36446, 36447, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36479, 36480, 36481, 36482, 36483, 36484, 36485, 36486, 36487, 36488, 36489, 36490, 36491, 36492, 36493, 36494, 36495, 36496, 36497, 36498, 36499, 36500, 36501, 36502, 36503, 36504, 36505, 36506, 36507, 36508, 36509, 36510, 36511, 36512, 36513, 36514, 36515, 36516, 36517, 36518, 36519, 36520, 36521, 36522, 36523, 36524, 36525, 36526, 36527, 36528, 36529, 36530, 36531, 36532, 36533, 36534, 36535, 36536, 36537, 36538, 36539, 36540, 36541, 36542, 36543, 36544, 36545, 36546, 36547, 36548, 36549, 36550, 36551, 36552, 36553, 36554, 36555, 36556, 36557, 36558, 36559, 36560, 36561, 36562, 36563, 36564, 36565, 36566, 36567, 36568, 36569, 36570, 36571, 36572, 36573, 36574, 36575, 36576, 36577, 36578, 36579, 36580, 36581, 36582, 36583, 36584, 36585, 36586, 36587, 36588, 36589, 36590, 36591, 36592, 36593, 36594, 36595, 36596, 36597, 36598, 36599, 36600, 36601, 36602, 36603, 36604, 36605, 36606, 36607, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +272: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 0, 0, 0, 52852, 52853, 52805, 52806, 52807, 52808, 52809, 52810, 52811, 52812, 52813, 52814, 52815, 52816, 52817, 52818, 52819, 52820, 52821, 52822, 52823, 52824, 52825, 52826, 52827, 52828, 52829, 52830, 52831, 52832, 52833, 52834, 52835, 52836, 52837, 52838, 52839, 52840, 52841, 52842, 52843, 52844, 52845, 52846, 52847, 52848, 52849, 52850, 52851, 52854, 52855, 52856, 52857, 52858, 52859, 52860, 52861, 52862, 52863, 52864, 52865, 52866, 52867, 52868, 52869, 52870, 52871, 52872, 684, 685, 1075, 1076, 1077, 1078, 1079, 63012, 63012, 63012, 63012, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7027, 7028, 7029, 7030, 7031, 7032, 7033, 7034, 7035, 7036, 7037, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 52873, 0, 0, 0, 52035, 52036, 52037, 52038, 52039, 52040, 52041, 52042, 52043, 52044, 52045, 52046, 52047, 52048, 52049, 52050, 52051, 52052, 52053, 52054, 52055, 52056, 52057, 52057, 52058, 52058, 52059, 52060, 52061, 52062, 52063, 52064, 52065, 52066, 52067, 52068, 52069, 52070, 52071, 52072, 52067, 52073, 52074, 52075, 52076, 52077, 52078, 52079, 52080, 52081, 52082, 52083, 52084, 52085, 52086, 0, 1102, 1103, 0, 736, 737, 686, 687, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 59180, 59181, 59182, 59183, 59184, 59185, 59186, 59187, 59188, 59189, 59190, 59191, 59192, 59193, 59194, 59195, 59196, 59197, 59198, 59199, 59200, 59201, 59202, 59203, 59204, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 63012, 63012, 63012, 63012, 63012, 63012, 195, 196, 197, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 195, 196, 197, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 194, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 36942, 36943, 36944, 36945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36976, 36977, 36978, 36979, 36980, 36981, 36982, 36983, 36984, 36985, 36986, 36987, 36988, 36989, 36990, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37058, 37059, 37060, 37061, 37062, 37063, 37064, 37065, 37066, 37067, 37068, 37069, 37070, 37071, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37097, 37098, 37099, 37100, 37101, 37102, 37103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37114, 37115, 37116, 37117, 37118, 37119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 194, 0, 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 2, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +273: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 53857, 53858, 53859, 53860, 53861, 53862, 53863, 53864, 53865, 53866, 53867, 53868, 53869, 53870, 53871, 53872, 53873, 53874, 53875, 53876, 53877, 53878, 53879, 53880, 53881, 53882, 53883, 53884, 53885, 53886, 53887, 53888, 53889, 53890, 53891, 53892, 53893, 53894, 53895, 53896, 53897, 53898, 53899, 53900, 53901, 53902, 53903, 53904, 53905, 53906, 63012, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 738, 688, 689, 627, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 52087, 52088, 52089, 52090, 52091, 52092, 52093, 52094, 52095, 52096, 52097, 52098, 52099, 52100, 52101, 52102, 52103, 52104, 52105, 52106, 52107, 52108, 52109, 52110, 52111, 52112, 52113, 52114, 52115, 52116, 52117, 52118, 52120, 52121, 52122, 0, 1104, 1105, 52119, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 0, 0, 0, 52125, 52126, 52127, 52128, 52129, 52130, 52131, 52132, 52133, 52134, 52135, 52136, 52137, 52138, 52139, 52140, 52141, 52142, 52143, 52144, 52145, 52146, 52147, 52148, 52149, 52150, 52151, 52152, 52153, 52154, 52155, 52156, 52157, 52158, 52159, 52160, 52161, 52162, 52163, 52164, 52165, 52166, 52167, 52168, 52169, 52170, 52171, 52172, 52177, 52178, 52179, 52180, 52181, 52182, 52183, 52184, 52185, 52186, 52187, 52188, 52189, 52190, 52173, 52174, 52175, 52123, 690, 691, 1107, 739, 1108, 0, 0, 0, 1106, 63012, 63012, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 52124, 1109, 52176, 1110, 740, 741, 63012, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7052, 7053, 7054, 7055, 7056, 7057, 7058, 7059, 7060, 7061, 7062, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 195, 196, 197, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 194, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 195, 196, 197, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 194, 207, 208, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 37173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37188, 37189, 37190, 37191, 37192, 37193, 37194, 37195, 37196, 37197, 37198, 37199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37239, 37240, 37241, 37242, 37243, 37244, 37245, 37246, 37247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37326, 37327, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37344, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37365, 37366, 37367, 37368, 37369, 37370, 37371, 37372, 37373, 37374, 37375, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +274: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 52191, 52192, 52193, 52194, 52195, 52196, 52197, 52198, 52199, 52200, 52201, 52202, 52203, 52204, 52205, 52206, 52207, 52208, 63012, 52209, 52210, 52211, 52212, 52213, 52214, 52215, 52216, 52217, 52218, 52219, 52220, 52221, 52222, 52223, 52224, 52225, 52226, 52227, 52228, 52229, 52230, 52231, 52232, 52233, 52234, 52235, 52236, 52237, 52238, 52239, 52240, 52241, 0, 52242, 0, 0, 692, 693, 1111, 1112, 1113, 1114, 0, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 52300, 52301, 52302, 52303, 52306, 52307, 52308, 63012, 52309, 63012, 52310, 52311, 52312, 52313, 63012, 52314, 52315, 52316, 52317, 52318, 52319, 52320, 52321, 52322, 52323, 52324, 52325, 52326, 52327, 52328, 63012, 52329, 52330, 52331, 52332, 52333, 52334, 52304, 52305, 52335, 52336, 742, 63012, 63012, 63012, 63012, 63012, 63012, 52243, 52244, 52245, 52246, 52247, 52248, 52249, 52250, 52251, 52252, 52253, 52254, 52255, 52256, 52257, 52258, 52259, 52260, 52261, 52262, 52263, 52264, 52265, 52266, 52267, 52268, 52269, 52270, 52271, 52272, 52273, 52274, 52275, 52276, 52277, 52278, 52279, 52280, 52281, 52282, 52283, 52284, 52285, 52286, 52287, 52288, 52289, 0, 52290, 52291, 52292, 52293, 52294, 52295, 52296, 52297, 52298, 0, 52299, 63012, 63012, 63012, 63012, 63012, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 63012, 63012, 63012, 63012, 63012, 63012, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 196, 32, 194, 128, 32, 32, 32, 32, 32, 32, 129, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 196, 32, 32, 32, 32, 32, 32, 32, 32, 32, 194, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37394, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37439, 37440, 37441, 37442, 37443, 37444, 37445, 37446, 37447, 37448, 37449, 37450, 37451, 37452, 37453, 37454, 37455, 37456, 37457, 37458, 37459, 37460, 37461, 37462, 37463, 37464, 37465, 37466, 37467, 37468, 37469, 37470, 37471, 37472, 37473, 37474, 37475, 37476, 37477, 37478, 37479, 37480, 37481, 37482, 37483, 37484, 37485, 37486, 37487, 37488, 37489, 37490, 37491, 37492, 37493, 37494, 37495, 37496, 37497, 37498, 37499, 37500, 37501, 37502, 37503, 0, 0, 0, 0, 0, 0, 0, 37511, 0, 37513, 0, 0, 0, 0, 37518, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37534, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37546, 37547, 37548, 37549, 37550, 37551, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37611, 37612, 37613, 37614, 37615, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37626, 37627, 37628, 37629, 37630, 37631, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +275: 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 63012, 52338, 52339, 52340, 52341, 52342, 52343, 52344, 52346, 63012, 63012, 52348, 52349, 63012, 63012, 52350, 52351, 52352, 52353, 52354, 52355, 52356, 52357, 52358, 52359, 52360, 52361, 52362, 52363, 52364, 52365, 52366, 52367, 52368, 52369, 52370, 52371, 63012, 52372, 52373, 52374, 52375, 52376, 52377, 52378, 63012, 52379, 52380, 63012, 52381, 52382, 52383, 52384, 52385, 63012, 63012, 0, 52386, 52389, 52390, 52391, 52392, 52393, 52394, 52395, 63012, 63012, 52398, 52399, 63012, 63012, 52400, 52401, 52402, 63012, 63012, 52337, 63012, 63012, 63012, 63012, 63012, 63012, 52403, 63012, 63012, 63012, 63012, 63012, 52404, 52387, 52388, 52345, 52347, 52396, 52397, 63012, 63012, 0, 0, 0, 0, 0, 0, 0, 63012, 63012, 63012, 0, 0, 0, 0, 0, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 196, 195, 196, 197, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 194, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 37636, 0, 0, 0, 0, 0, 0, 0, 0, 37645, 37646, 0, 0, 37649, 37650, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37673, 0, 0, 0, 0, 0, 0, 0, 37681, 0, 0, 37684, 0, 0, 0, 0, 0, 37690, 37691, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37701, 37702, 0, 0, 37705, 37706, 0, 0, 0, 37710, 37711, 0, 37713, 37714, 37715, 37716, 37717, 37718, 0, 37720, 37721, 37722, 37723, 37724, 0, 0, 0, 0, 0, 0, 0, 37732, 37733, 0, 0, 0, 0, 0, 0, 0, 37741, 37742, 37743, 0, 0, 0, 0, 0, 37749, 37750, 37751, 37752, 37753, 37754, 37755, 37756, 37757, 37758, 37759, 37760, 37761, 37762, 37763, 37764, 37765, 37766, 37767, 37768, 37769, 37770, 37771, 37772, 37773, 37774, 37775, 37776, 37777, 37778, 37779, 37780, 37781, 37782, 37783, 37784, 37785, 37786, 37787, 37788, 37789, 37790, 37791, 37792, 37793, 37794, 37795, 37796, 37797, 37798, 37799, 37800, 37801, 37802, 37803, 37804, 37805, 37806, 37807, 37808, 37809, 37810, 37811, 37812, 37813, 37814, 37815, 37816, 37817, 37818, 37819, 37820, 37821, 37822, 37823, 37824, 37825, 37826, 37827, 37828, 37829, 37830, 37831, 37832, 37833, 37834, 37835, 37836, 37837, 37838, 37839, 37840, 37841, 37842, 37843, 37844, 37845, 37846, 37847, 37848, 37849, 37850, 37851, 37852, 37853, 37854, 37855, 37856, 37857, 37858, 37859, 37860, 37861, 37862, 37863, 37864, 37865, 37866, 37867, 37868, 37869, 37870, 37871, 37872, 37873, 37874, 37875, 37876, 37877, 37878, 37879, 37880, 37881, 37882, 37883, 37884, 37885, 37886, 37887, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +276: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 52407, 52408, 52409, 52410, 52411, 52412, 52413, 52414, 52415, 52416, 52417, 52418, 52419, 52420, 52421, 52422, 52423, 52424, 52425, 52426, 52427, 52428, 52429, 52430, 52431, 52432, 52433, 52434, 52435, 52436, 52437, 52438, 52439, 52440, 52441, 52442, 52443, 52444, 52445, 52446, 52447, 52448, 52449, 52450, 52451, 52452, 52453, 52454, 52455, 52456, 52457, 52458, 52459, 52462, 52463, 52464, 52465, 52466, 52467, 52468, 52469, 52470, 52471, 52472, 52473, 52474, 52475, 0, 0, 0, 0, 52460, 52461, 52405, 52406, 694, 695, 1115, 1116, 1117, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 63012, 1118, 63012, 1119, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 52477, 52478, 52479, 52480, 52481, 52482, 52483, 52484, 52485, 52486, 52487, 52488, 52489, 52490, 52491, 52492, 52493, 52494, 52495, 52496, 52497, 52498, 52499, 52500, 52501, 52502, 52503, 52504, 52505, 52506, 52507, 52508, 52509, 52510, 52511, 52512, 52513, 52514, 52515, 52516, 52517, 52518, 52519, 52520, 52521, 52522, 52523, 52524, 52527, 52528, 52529, 52530, 52531, 52532, 52533, 52534, 52535, 52536, 52537, 52538, 52539, 52540, 52541, 0, 0, 0, 52542, 0, 52525, 52526, 1120, 52476, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 195, 196, 197, 194, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 195, 196, 197, 32, 194, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 37978, 0, 37980, 0, 37982, 37983, 37984, 37985, 37986, 37987, 37988, 37989, 37990, 37991, 37992, 37993, 37994, 37995, 37996, 37997, 37998, 37999, 38000, 38001, 38002, 38003, 38004, 38005, 38006, 38007, 38008, 38009, 38010, 38011, 38012, 38013, 38014, 38015, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38088, 38089, 38090, 38091, 38092, 38093, 38094, 38095, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38106, 38107, 38108, 38109, 38110, 38111, 38112, 38113, 38114, 38115, 38116, 38117, 38118, 38119, 38120, 38121, 38122, 38123, 38124, 38125, 38126, 38127, 38128, 38129, 38130, 38131, 38132, 38133, 38134, 38135, 38136, 38137, 38138, 38139, 38140, 38141, 38142, 38143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +277: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 52543, 52544, 52545, 52546, 52547, 52548, 52549, 52550, 52551, 52552, 52553, 52554, 52555, 52556, 52557, 52558, 52559, 52560, 52561, 52562, 52563, 52564, 52565, 52566, 52567, 52568, 52569, 52570, 52571, 52572, 52573, 52574, 52575, 52576, 52577, 52578, 52579, 52580, 52581, 52582, 52583, 52584, 52585, 52586, 52587, 52588, 52589, 52590, 52591, 52592, 52593, 52594, 52595, 52596, 63012, 63012, 52597, 52598, 52599, 52600, 0, 0, 0, 52601, 0, 1121, 696, 697, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 52545, 52545, 52546, 52547, 52593, 52594, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 195, 196, 197, 32, 194, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 38144, 38145, 38146, 38147, 38148, 38149, 38150, 38151, 38152, 38153, 38154, 38155, 38156, 38157, 38158, 38159, 38160, 38161, 38162, 38163, 38164, 38165, 38166, 38167, 38168, 38169, 38170, 38171, 38172, 38173, 38174, 38175, 38176, 38177, 38178, 38179, 38180, 38181, 38182, 38183, 38184, 38185, 38186, 38187, 38188, 38189, 38190, 38191, 38192, 38193, 38194, 38195, 38196, 38197, 38198, 38199, 38200, 38201, 38202, 38203, 38204, 38205, 38206, 38207, 38208, 38209, 38210, 38211, 38212, 38213, 38214, 38215, 38216, 38217, 38218, 38219, 38220, 38221, 38222, 38223, 38224, 38225, 38226, 38227, 38228, 38229, 38230, 38231, 38232, 38233, 38234, 38235, 38236, 38237, 38238, 38239, 38240, 38241, 38242, 38243, 38244, 38245, 38246, 38247, 38248, 38249, 38250, 38251, 38252, 38253, 38254, 38255, 38256, 38257, 38258, 38259, 38260, 38261, 38262, 38263, 38264, 38265, 38266, 38267, 38268, 38269, 38270, 38271, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38326, 38327, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38366, 38367, 38368, 38369, 38370, 38371, 38372, 38373, 38374, 38375, 38376, 38377, 38378, 38379, 38380, 38381, 38382, 38383, 38384, 38385, 38386, 38387, 38388, 38389, 38390, 38391, 38392, 38393, 38394, 38395, 38396, 38397, 38398, 38399, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 272, 273, 272, 272, 272, 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +278: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 52602, 52603, 52604, 52605, 52606, 52607, 52608, 52609, 52610, 52611, 52612, 52613, 52614, 52615, 52616, 52617, 52618, 52619, 52620, 52621, 52622, 52623, 52624, 52625, 52626, 52627, 52628, 52629, 52630, 52631, 52632, 52633, 52634, 52635, 52636, 52637, 52638, 52639, 52640, 52641, 52642, 52643, 52644, 52645, 52646, 52647, 52648, 52649, 52650, 52651, 52652, 52653, 52654, 52655, 52656, 52657, 52658, 52659, 52660, 52661, 52662, 0, 0, 52663, 0, 698, 699, 1142, 52664, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 63012, 63012, 63012, 63012, 63012, 63012, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 52665, 52666, 52667, 52668, 52669, 52670, 52671, 52672, 52673, 52674, 52678, 52679, 52680, 52681, 52682, 52683, 52684, 52685, 52686, 52687, 52688, 52689, 52690, 52691, 52692, 52693, 52694, 52695, 52696, 52697, 52698, 52699, 52700, 52701, 52702, 52703, 52704, 52705, 52706, 52676, 52675, 52677, 52707, 0, 0, 52708, 52709, 52710, 52711, 52712, 52713, 52714, 52715, 52716, 52717, 0, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 196, 197, 32, 195, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 196, 197, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 194, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 38469, 38470, 38471, 38472, 38473, 38474, 38475, 38476, 38477, 38478, 38479, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38490, 38491, 38492, 38493, 38494, 38495, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38509, 38510, 38511, 38512, 38513, 38514, 38515, 38516, 38517, 38518, 38519, 38520, 38521, 38522, 38523, 38524, 38525, 38526, 38527, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38584, 38585, 38586, 38587, 38588, 38589, 38590, 38591, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38602, 38603, 38604, 38605, 38606, 38607, 38608, 38609, 38610, 38611, 38612, 38613, 38614, 38615, 38616, 38617, 38618, 38619, 38620, 38621, 38622, 38623, 38624, 38625, 38626, 38627, 38628, 38629, 38630, 38631, 38632, 38633, 38634, 38635, 38636, 38637, 38638, 38639, 38640, 38641, 38642, 38643, 38644, 38645, 38646, 38647, 38648, 38649, 38650, 38651, 38652, 38653, 38654, 38655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +279: 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 52718, 52719, 52720, 52721, 52722, 52722, 52723, 52724, 52725, 52726, 52727, 52728, 52729, 52730, 52731, 52732, 52733, 52734, 52735, 52736, 52737, 52738, 52738, 52739, 52740, 52741, 63012, 63012, 63012, 52754, 52755, 52756, 52742, 52743, 52744, 52745, 52746, 52747, 52748, 52749, 52750, 52751, 52752, 52753, 63012, 63012, 63012, 63012, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7025, 7026, 700, 701, 743, 1360, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 38682, 38683, 38684, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38700, 38701, 38702, 38703, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38720, 38721, 38722, 38723, 38724, 38725, 38726, 38727, 38728, 38729, 38730, 38731, 38732, 38733, 38734, 38735, 38736, 38737, 38738, 38739, 38740, 38741, 38742, 38743, 38744, 38745, 38746, 38747, 38748, 38749, 38750, 38751, 38752, 38753, 38754, 38755, 38756, 38757, 38758, 38759, 38760, 38761, 38762, 38763, 38764, 38765, 38766, 38767, 38768, 38769, 38770, 38771, 38772, 38773, 38774, 38775, 38776, 38777, 38778, 38779, 38780, 38781, 38782, 38783, 38784, 38785, 38786, 38787, 38788, 38789, 38790, 38791, 38792, 38793, 38794, 38795, 38796, 38797, 38798, 38799, 38800, 38801, 38802, 38803, 38804, 38805, 38806, 38807, 38808, 38809, 38810, 38811, 38812, 38813, 38814, 38815, 38816, 38817, 38818, 38819, 38820, 38821, 38822, 38823, 38824, 38825, 38826, 38827, 38828, 38829, 38830, 38831, 38832, 38833, 38834, 38835, 38836, 38837, 38838, 38839, 38840, 38841, 38842, 38843, 38844, 38845, 38846, 38847, 38848, 38849, 38850, 38851, 38852, 38853, 38854, 38855, 38856, 38857, 38858, 38859, 38860, 38861, 38862, 38863, 38864, 38865, 38866, 38867, 38868, 38869, 38870, 38871, 38872, 38873, 38874, 38875, 38876, 38877, 38878, 38879, 38880, 38881, 38882, 38883, 38884, 38885, 38886, 38887, 38888, 38889, 38890, 38891, 38892, 38893, 38894, 38895, 38896, 38897, 38898, 38899, 38900, 38901, 38902, 38903, 38904, 38905, 38906, 38907, 38908, 38909, 38910, 38911, 0, 0, 0, 0, 0, 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +280: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 58489, 58490, 58491, 58492, 58493, 58494, 58495, 58496, 58497, 58498, 58499, 58500, 58501, 58502, 58503, 58504, 58505, 58506, 58507, 58508, 58509, 58510, 58511, 58512, 58513, 58514, 58515, 58516, 58517, 58518, 58519, 58520, 58489, 58490, 58491, 58492, 58493, 58494, 58495, 58496, 58497, 58498, 58499, 58500, 58501, 58502, 58503, 58504, 58505, 58506, 58507, 58508, 58509, 58510, 58511, 58512, 58513, 58514, 58515, 58516, 58517, 58518, 58519, 58520, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7063, 7064, 7065, 7066, 7067, 7068, 7069, 7070, 7071, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 58488, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 38912, 38913, 38914, 38915, 38916, 38917, 38918, 38919, 38920, 38921, 38922, 38923, 38924, 38925, 38926, 38927, 38928, 38929, 38930, 38931, 38932, 38933, 38934, 38935, 38936, 38937, 38938, 38939, 38940, 38941, 38942, 38943, 38944, 38945, 38946, 38947, 38948, 38949, 38950, 38951, 38952, 38953, 38954, 38955, 38956, 38957, 38958, 38959, 38960, 38961, 38962, 38963, 38964, 38965, 38966, 38967, 38968, 38969, 38970, 38971, 38972, 38973, 38974, 38975, 38976, 38977, 38978, 38979, 38980, 38981, 38982, 38983, 38984, 38985, 38986, 38987, 38988, 38989, 38990, 38991, 38992, 38993, 38994, 38995, 38996, 38997, 38998, 38999, 39000, 39001, 39002, 39003, 39004, 39005, 39006, 39007, 39008, 39009, 39010, 39011, 39012, 39013, 39014, 39015, 39016, 39017, 39018, 39019, 39020, 39021, 39022, 39023, 39024, 39025, 39026, 39027, 39028, 39029, 39030, 39031, 39032, 39033, 39034, 39035, 39036, 39037, 39038, 39039, 39040, 39041, 39042, 39043, 39044, 39045, 39046, 39047, 39048, 39049, 39050, 39051, 39052, 39053, 39054, 39055, 39056, 39057, 39058, 39059, 39060, 39061, 39062, 39063, 39064, 39065, 39066, 39067, 39068, 39069, 39070, 39071, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39155, 39156, 39157, 39158, 39159, 39160, 39161, 39162, 39163, 39164, 39165, 39166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +282: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 58528, 58529, 58530, 58531, 58532, 58533, 58534, 58535, 58536, 58537, 58538, 58539, 58540, 58541, 58542, 58543, 58544, 58545, 58546, 58547, 58548, 58521, 58522, 58523, 58524, 58525, 58526, 58527, 58549, 58550, 58556, 58551, 58552, 58553, 58554, 58555, 58557, 58563, 58561, 58575, 58564, 58562, 58576, 58571, 58569, 58572, 58570, 58558, 58577, 58560, 58559, 58567, 58565, 58573, 58568, 58566, 58574, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 39424, 39425, 39426, 39427, 39428, 39429, 39430, 39431, 39432, 39433, 39434, 39435, 39436, 39437, 39438, 39439, 39440, 39441, 39442, 39443, 39444, 39445, 39446, 39447, 39448, 39449, 39450, 39451, 39452, 39453, 39454, 39455, 39456, 39457, 39458, 39459, 39460, 39461, 39462, 39463, 39464, 39465, 39466, 39467, 39468, 39469, 39470, 39471, 39472, 39473, 39474, 39475, 39476, 39477, 39478, 39479, 39480, 39481, 39482, 39483, 39484, 39485, 39486, 39487, 39488, 39489, 39490, 39491, 39492, 39493, 39494, 39495, 39496, 39497, 39498, 39499, 39500, 39501, 39502, 39503, 39504, 39505, 39506, 39507, 39508, 39509, 39510, 39511, 39512, 39513, 39514, 39515, 39516, 39517, 39518, 39519, 39520, 39521, 39522, 39523, 39524, 39525, 39526, 39527, 39528, 39529, 39530, 39531, 39532, 39533, 39534, 39535, 39536, 39537, 39538, 39539, 39540, 39541, 39542, 39543, 39544, 39545, 39546, 39547, 39548, 39549, 39550, 39551, 39552, 39553, 39554, 39555, 39556, 39557, 39558, 39559, 39560, 39561, 39562, 39563, 39564, 39565, 39566, 39567, 39568, 39569, 39570, 39571, 39572, 39573, 39574, 39575, 39576, 39577, 39578, 39579, 39580, 39581, 39582, 39583, 39584, 39585, 39586, 39587, 39588, 39589, 39590, 39591, 39592, 39593, 39594, 39595, 39596, 39597, 39598, 39599, 39600, 39601, 39602, 39603, 39604, 39605, 39606, 39607, 39608, 39609, 39610, 39611, 39612, 39613, 39614, 39615, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39673, 39674, 39675, 39676, 39677, 39678, 39679, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +284: 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 52916, 52917, 52918, 52919, 52920, 52921, 52922, 52923, 52924, 63012, 52925, 52926, 52927, 52928, 52929, 52930, 52931, 52932, 52933, 52934, 52935, 52936, 52937, 52938, 52939, 52940, 52941, 52942, 52943, 52944, 52945, 52946, 52947, 52948, 52949, 52950, 52951, 52952, 52953, 52954, 52955, 52956, 52957, 52958, 52959, 52960, 52961, 52963, 52964, 52965, 52966, 52967, 52968, 52969, 52970, 63012, 52971, 52972, 52973, 52974, 0, 0, 0, 52975, 52962, 702, 703, 1087, 1088, 1089, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7042, 7043, 7044, 7045, 7046, 7047, 7048, 7049, 7050, 7051, 63012, 63012, 63012, 1033, 1034, 53251, 53253, 53255, 53257, 53259, 53261, 53263, 53265, 53267, 53269, 53271, 53273, 53275, 53277, 53279, 53281, 53283, 53285, 53287, 53289, 53291, 53293, 53295, 53296, 53298, 53300, 53302, 53304, 53306, 53308, 63012, 63012, 53252, 53254, 53256, 53258, 53260, 53262, 53264, 53266, 53268, 53270, 53272, 53274, 53276, 53278, 53280, 53282, 53284, 53286, 53288, 53290, 53292, 53294, 63012, 53297, 53299, 53301, 53303, 53305, 53307, 53309, 53310, 53311, 53312, 53313, 53314, 0, 0, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 195, 196, 197, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 196, 195, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39991, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40006, 40007, 40008, 40009, 40010, 40011, 40012, 40013, 40014, 40015, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40045, 40046, 40047, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40080, 40081, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40119, 40120, 40121, 40122, 40123, 40124, 40125, 40126, 40127, 40128, 40129, 40130, 40131, 40132, 40133, 40134, 40135, 40136, 40137, 40138, 40139, 40140, 40141, 40142, 40143, 40144, 40145, 40146, 40147, 40148, 40149, 40150, 40151, 40152, 40153, 40154, 40155, 40156, 40157, 40158, 40159, 40160, 40161, 40162, 40163, 40164, 40165, 40166, 40167, 40168, 40169, 40170, 40171, 40172, 40173, 40174, 40175, 40176, 40177, 40178, 40179, 40180, 40181, 40182, 40183, 40184, 40185, 40186, 40187, 40188, 40189, 40190, 40191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +288: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 60210, 60211, 60212, 60213, 60214, 60215, 60216, 60217, 60218, 60219, 60220, 60221, 60222, 60223, 60224, 60225, 60226, 60227, 60228, 60229, 60230, 60231, 60232, 60233, 60234, 60235, 60236, 60237, 60238, 60239, 60240, 60241, 60242, 60243, 60244, 60245, 60246, 60247, 60248, 60249, 60250, 60251, 60252, 60253, 60254, 60255, 60256, 60257, 60258, 60259, 60260, 60261, 60262, 60263, 60264, 60265, 60266, 60267, 60268, 60269, 60270, 60271, 60272, 60273, 60274, 60275, 60276, 60277, 60278, 60279, 60280, 60281, 60282, 60283, 60284, 60285, 60286, 60287, 60288, 60289, 60290, 60291, 60292, 60293, 60294, 60295, 60296, 60297, 60298, 60299, 60300, 60301, 60302, 60303, 60304, 60305, 60306, 60307, 60308, 60309, 60310, 60311, 60312, 60313, 60314, 60315, 60316, 60317, 60318, 60319, 60320, 60321, 60322, 60323, 60324, 60325, 60326, 60327, 60328, 60329, 60330, 60331, 60332, 60333, 60334, 60335, 60336, 60337, 60338, 60339, 60340, 60341, 60342, 60343, 60344, 60345, 60346, 60347, 60348, 60349, 60350, 60351, 60352, 60353, 60354, 60355, 60356, 60357, 60358, 60359, 60360, 60361, 60362, 60363, 60364, 60365, 60366, 60367, 60368, 60369, 60370, 60371, 60372, 60373, 60374, 60375, 60376, 60377, 60378, 60379, 60380, 60381, 60382, 60383, 60384, 60385, 60386, 60387, 60388, 60389, 60390, 60391, 60392, 60393, 60394, 60395, 60396, 60397, 60398, 60399, 60400, 60401, 60402, 60403, 60404, 60405, 60406, 60407, 60408, 60409, 60410, 60411, 60412, 60413, 60414, 60415, 60416, 60417, 60418, 60419, 60420, 60421, 60422, 60423, 60424, 60425, 60426, 60427, 60428, 60429, 60430, 60431, 60432, 60433, 60434, 60435, 60436, 60437, 60438, 60439, 60440, 60441, 60442, 60443, 60444, 60445, 60446, 60447, 60448, 60449, 60450, 60451, 60452, 60453, 60454, 60455, 60456, 60457, 60458, 60459, 60460, 60461, 60462, 60463, 60464, 60465, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +289: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 60466, 60467, 60468, 60469, 60470, 60471, 60472, 60473, 60474, 60475, 60476, 60477, 60478, 60479, 60480, 60481, 60482, 60483, 60484, 60485, 60486, 60487, 60488, 60489, 60490, 60491, 60492, 60493, 60494, 60495, 60496, 60497, 60498, 60499, 60500, 60501, 60502, 60503, 60504, 60505, 60506, 60507, 60508, 60509, 60510, 60511, 60512, 60513, 60514, 60515, 60516, 60517, 60518, 60519, 60520, 60521, 60522, 60523, 60524, 60525, 60526, 60527, 60528, 60529, 60530, 60531, 60532, 60533, 60534, 60535, 60536, 60537, 60538, 60539, 60540, 60541, 60542, 60543, 60544, 60545, 60546, 60547, 60548, 60549, 60550, 60551, 60552, 60553, 60554, 60555, 60556, 60557, 60558, 60559, 60560, 60561, 60562, 60563, 60564, 60565, 60566, 60567, 60568, 60569, 60570, 60571, 60572, 60573, 60574, 60575, 60576, 60577, 60578, 60579, 60580, 60581, 60582, 60583, 60584, 60585, 60586, 60587, 60588, 60589, 60590, 60591, 60592, 60593, 60594, 60595, 60596, 60597, 60598, 60599, 60600, 60601, 60602, 60603, 60604, 60605, 60606, 60607, 60608, 60609, 60610, 60611, 60612, 60613, 60614, 60615, 60616, 60617, 60618, 60619, 60620, 60621, 60622, 60623, 60624, 60625, 60626, 60627, 60628, 60629, 60630, 60631, 60632, 60633, 60634, 60635, 60636, 60637, 60638, 60639, 60640, 60641, 60642, 60643, 60644, 60645, 60646, 60647, 60648, 60649, 60650, 60651, 60652, 60653, 60654, 60655, 60656, 60657, 60658, 60659, 60660, 60661, 60662, 60663, 60664, 60665, 60666, 60667, 60668, 60669, 60670, 60671, 60672, 60673, 60674, 60675, 60676, 60677, 60678, 60679, 60680, 60681, 60682, 60683, 60684, 60685, 60686, 60687, 60688, 60689, 60690, 60691, 60692, 60693, 60694, 60695, 60696, 60697, 60698, 60699, 60700, 60701, 60702, 60703, 60704, 60705, 60706, 60707, 60708, 60709, 60710, 60711, 60712, 60713, 60714, 60715, 60716, 60717, 60718, 60719, 60720, 60721, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +290: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 60722, 60723, 60724, 60725, 60726, 60727, 60728, 60729, 60730, 60731, 60732, 60733, 60734, 60735, 60736, 60737, 60738, 60739, 60740, 60741, 60742, 60743, 60744, 60745, 60746, 60747, 60748, 60749, 60750, 60751, 60752, 60753, 60754, 60755, 60756, 60757, 60758, 60759, 60760, 60761, 60762, 60763, 60764, 60765, 60766, 60767, 60768, 60769, 60770, 60771, 60772, 60773, 60774, 60775, 60776, 60777, 60778, 60779, 60780, 60781, 60782, 60783, 60784, 60785, 60786, 60787, 60788, 60789, 60790, 60791, 60792, 60793, 60794, 60795, 60796, 60797, 60798, 60799, 60800, 60801, 60802, 60803, 60804, 60805, 60806, 60807, 60808, 60809, 60810, 60811, 60812, 60813, 60814, 60815, 60816, 60817, 60818, 60819, 60820, 60823, 60824, 60825, 60826, 60827, 60828, 60829, 60830, 60831, 60832, 60833, 60834, 60835, 60836, 60837, 60838, 60839, 60840, 60841, 60842, 60843, 60844, 60845, 60846, 60847, 60848, 60849, 60850, 60851, 60852, 60853, 60854, 60855, 60856, 60857, 60858, 60859, 60860, 60861, 60862, 60863, 60864, 60865, 60866, 60867, 60868, 60869, 60870, 60871, 60872, 60873, 60874, 60875, 60876, 60877, 60878, 60879, 60880, 60881, 60882, 60883, 60884, 60885, 60886, 60887, 60888, 60889, 60890, 60891, 60892, 60893, 60894, 60895, 60896, 60897, 60898, 60899, 60900, 60901, 60902, 60903, 60904, 60905, 60906, 60907, 60908, 60909, 60910, 60911, 60912, 60913, 60914, 60915, 60916, 60917, 60918, 60919, 60920, 60921, 60922, 60923, 60924, 60925, 60926, 60927, 60928, 60929, 60930, 60931, 60932, 60933, 60934, 60935, 60821, 60822, 60936, 60937, 60938, 60939, 60940, 60941, 60942, 60943, 60944, 60945, 60946, 60947, 60948, 60949, 60950, 60951, 60952, 60953, 60954, 60955, 60956, 60957, 60958, 60959, 60960, 60961, 60962, 60963, 60964, 60965, 60966, 60967, 60968, 60969, 60970, 60971, 60972, 60973, 60974, 60975, 60976, 60977, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +291: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 60978, 60979, 60980, 60981, 60982, 60983, 60984, 60985, 60986, 60987, 60988, 60989, 60990, 60991, 60992, 60993, 60994, 60995, 60996, 60997, 60998, 60999, 61000, 61001, 61002, 61003, 61004, 61005, 61006, 61007, 61008, 61009, 61010, 61011, 61012, 61013, 61014, 61015, 61016, 61017, 61018, 61019, 61020, 61021, 61022, 61023, 61024, 61025, 61026, 61027, 61028, 61029, 61030, 61031, 61032, 61033, 61034, 61035, 61036, 61037, 61038, 61039, 61040, 61041, 61042, 61043, 61044, 61045, 61046, 61047, 61048, 61049, 61050, 61051, 61052, 61053, 61054, 61055, 61056, 61057, 61058, 61059, 61060, 61061, 61062, 61063, 61064, 61065, 61066, 61067, 61068, 61069, 61070, 61071, 61072, 61073, 61074, 61075, 61076, 61077, 61078, 61079, 61080, 61081, 61082, 61083, 61084, 61085, 61086, 61087, 61088, 61089, 61090, 61091, 61092, 61093, 61094, 61095, 61096, 61097, 61098, 61099, 61100, 61101, 61102, 61103, 61104, 61105, 61106, 61107, 61108, 61109, 61110, 61111, 61112, 61113, 61114, 61115, 61116, 61117, 61118, 61119, 61120, 61121, 61122, 61123, 61124, 61125, 61126, 61127, 61128, 61129, 61130, 61131, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 41882, 41883, 41884, 41885, 41886, 41887, 41888, 41889, 41890, 41891, 41892, 41893, 41894, 41895, 41896, 41897, 41898, 41899, 41900, 41901, 41902, 41903, 41904, 41905, 41906, 41907, 41908, 41909, 41910, 41911, 41912, 41913, 41914, 41915, 41916, 41917, 41918, 41919, 41920, 41921, 41922, 41923, 41924, 41925, 41926, 41927, 41928, 41929, 41930, 41931, 41932, 41933, 41934, 41935, 41936, 41937, 41938, 41939, 41940, 41941, 41942, 41943, 41944, 41945, 41946, 41947, 41948, 41949, 41950, 41951, 41952, 41953, 41954, 41955, 41956, 41957, 41958, 41959, 41960, 41961, 41962, 41963, 41964, 41965, 41966, 41967, 41968, 41969, 41970, 41971, 41972, 41973, 41974, 41975, 41976, 41977, 41978, 41979, 41980, 41981, 41982, 41983, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +292: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7233, 7234, 7235, 7236, 7237, 7238, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7230, 7231, 7232, 7233, 7234, 7231, 7232, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7230, 7231, 7232, 7232, 7233, 7234, 7134, 7135, 7230, 7231, 7232, 7232, 7233, 7234, 7232, 7232, 7233, 7233, 7233, 7233, 7235, 7236, 7236, 7236, 7237, 7237, 7238, 7238, 7238, 7238, 7231, 7232, 7233, 7234, 7235, 7230, 7231, 7232, 7233, 7233, 7234, 7234, 7231, 7232, 7230, 7231, 7136, 7137, 7138, 7139, 7140, 7141, 7142, 7143, 7144, 7145, 7146, 7147, 7148, 7149, 7150, 7233, 7234, 7235, 7236, 7237, 7238, 63012, 768, 769, 770, 771, 772, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 61132, 61133, 61134, 61135, 61136, 61137, 61138, 61139, 61140, 61141, 61142, 61143, 61144, 61145, 61146, 61147, 61148, 61149, 61150, 61151, 61152, 61153, 61154, 61155, 61156, 61157, 61158, 61159, 61160, 61161, 61162, 61163, 61164, 61165, 61166, 61167, 61168, 61169, 61170, 61171, 61172, 61173, 61174, 61175, 61176, 61177, 61178, 61179, 61180, 61181, 61182, 61183, 61184, 61185, 61186, 61187, 61188, 61189, 61190, 61191, 61192, 61193, 61194, 61195, 61196, 61197, 61198, 61199, 61200, 61201, 61202, 61203, 61204, 61205, 61206, 61207, 61208, 61209, 61210, 61211, 61212, 61213, 61214, 61215, 61216, 61217, 61218, 61219, 61220, 61221, 61222, 61223, 61224, 61225, 61226, 61227, 61228, 61229, 61230, 61231, 61232, 61233, 61234, 61235, 61236, 61237, 61238, 61239, 61240, 61241, 61242, 61243, 61244, 61245, 61246, 61247, 61248, 61249, 61250, 61251, 61252, 61253, 61254, 61255, 61256, 61257, 61258, 61259, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 42095, 0, 0, 0, 0, 0, 42101, 42102, 42103, 42104, 42105, 42106, 42107, 42108, 42109, 42110, 42111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +293: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 61260, 61261, 61262, 61263, 61264, 61265, 61266, 61267, 61268, 61269, 61270, 61271, 61272, 61273, 61274, 61275, 61276, 61277, 61278, 61279, 61280, 61281, 61282, 61283, 61284, 61285, 61286, 61287, 61288, 61289, 61290, 61291, 61292, 61293, 61294, 61295, 61296, 61297, 61298, 61299, 61300, 61301, 61302, 61303, 61304, 61305, 61306, 61307, 61308, 61309, 61310, 61311, 61312, 61313, 61314, 61315, 61316, 61317, 61318, 61319, 61320, 61321, 61322, 61323, 61324, 61325, 61326, 61327, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 42308, 42309, 42310, 42311, 42312, 42313, 42314, 42315, 42316, 42317, 42318, 42319, 42320, 42321, 42322, 42323, 42324, 42325, 42326, 42327, 42328, 42329, 42330, 42331, 42332, 42333, 42334, 42335, 42336, 42337, 42338, 42339, 42340, 42341, 42342, 42343, 42344, 42345, 42346, 42347, 42348, 42349, 42350, 42351, 42352, 42353, 42354, 42355, 42356, 42357, 42358, 42359, 42360, 42361, 42362, 42363, 42364, 42365, 42366, 42367, 42368, 42369, 42370, 42371, 42372, 42373, 42374, 42375, 42376, 42377, 42378, 42379, 42380, 42381, 42382, 42383, 42384, 42385, 42386, 42387, 42388, 42389, 42390, 42391, 42392, 42393, 42394, 42395, 42396, 42397, 42398, 42399, 42400, 42401, 42402, 42403, 42404, 42405, 42406, 42407, 42408, 42409, 42410, 42411, 42412, 42413, 42414, 42415, 42416, 42417, 42418, 42419, 42420, 42421, 42422, 42423, 42424, 42425, 42426, 42427, 42428, 42429, 42430, 42431, 42432, 42433, 42434, 42435, 42436, 42437, 42438, 42439, 42440, 42441, 42442, 42443, 42444, 42445, 42446, 42447, 42448, 42449, 42450, 42451, 42452, 42453, 42454, 42455, 42456, 42457, 42458, 42459, 42460, 42461, 42462, 42463, 42464, 42465, 42466, 42467, 42468, 42469, 42470, 42471, 42472, 42473, 42474, 42475, 42476, 42477, 42478, 42479, 42480, 42481, 42482, 42483, 42484, 42485, 42486, 42487, 42488, 42489, 42490, 42491, 42492, 42493, 42494, 42495, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +304: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 61328, 61329, 61330, 61331, 61332, 61333, 61334, 61335, 61336, 61337, 61338, 61339, 61340, 61341, 61342, 61343, 61344, 61345, 61346, 61347, 61348, 61349, 61350, 61351, 61352, 61353, 61354, 61355, 61356, 61357, 61358, 61359, 61360, 61361, 61362, 61363, 61364, 61365, 61366, 61367, 61368, 61369, 61370, 61371, 61372, 61373, 61374, 61375, 61376, 61377, 61378, 61379, 61380, 61381, 61382, 61383, 61384, 61385, 61386, 61387, 61388, 61389, 61390, 61391, 61392, 61393, 61394, 61395, 61396, 61397, 61398, 61399, 61400, 61401, 61402, 61403, 61404, 61405, 61406, 61407, 61408, 61409, 61410, 61411, 61412, 61413, 61414, 61415, 61416, 61417, 61418, 61419, 61420, 61421, 61422, 61423, 61424, 61425, 61426, 61427, 61428, 61429, 61430, 61431, 61432, 61433, 61434, 61435, 61436, 61437, 61438, 61439, 61440, 61441, 61442, 61443, 61444, 61445, 61446, 61447, 61448, 61449, 61450, 61451, 61452, 61453, 61454, 61455, 61456, 61457, 61458, 61459, 61460, 61461, 61462, 61463, 61464, 61465, 61466, 61467, 61468, 61469, 61470, 61471, 61472, 61473, 61474, 61475, 61476, 61477, 61478, 61479, 61480, 61481, 61482, 61483, 61484, 61485, 61486, 61487, 61488, 61489, 61490, 61491, 61492, 61493, 61494, 61495, 61496, 61497, 61498, 61499, 61500, 61501, 61502, 61503, 61504, 61505, 61506, 61507, 61508, 61509, 61510, 61511, 61512, 61513, 61514, 61515, 61516, 61517, 61518, 61519, 61520, 61521, 61522, 61523, 61524, 61525, 61526, 61527, 61528, 61529, 61530, 61531, 61532, 61533, 61534, 61535, 61536, 61537, 61538, 61539, 61540, 61541, 61542, 61543, 61544, 61545, 61546, 61547, 61548, 61549, 61550, 61551, 61552, 61553, 61554, 61555, 61556, 61557, 61558, 61559, 61560, 61561, 61562, 61563, 61564, 61565, 61566, 61567, 61568, 61569, 61570, 61571, 61572, 61573, 61574, 61575, 61576, 61577, 61578, 61579, 61580, 61581, 61582, 61583, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +305: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 61584, 61585, 61586, 61587, 61588, 61589, 61590, 61591, 61592, 61593, 61594, 61595, 61596, 61597, 61598, 61599, 61600, 61601, 61602, 61603, 61604, 61605, 61606, 61607, 61608, 61609, 61610, 61611, 61612, 61613, 61614, 61615, 61616, 61617, 61618, 61619, 61620, 61621, 61622, 61623, 61624, 61625, 61626, 61627, 61628, 61629, 61630, 61631, 61632, 61633, 61634, 61635, 61636, 61637, 61638, 61639, 61640, 61641, 61642, 61643, 61644, 61645, 61646, 61647, 61648, 61649, 61650, 61651, 61652, 61653, 61654, 61655, 61656, 61657, 61658, 61659, 61660, 61661, 61662, 61663, 61664, 61665, 61666, 61667, 61668, 61669, 61670, 61671, 61672, 61673, 61674, 61675, 61676, 61677, 61678, 61679, 61680, 61681, 61682, 61683, 61684, 61685, 61686, 61687, 61688, 61689, 61690, 61691, 61692, 61693, 61694, 61695, 61696, 61697, 61698, 61699, 61700, 61701, 61702, 61703, 61704, 61705, 61706, 61707, 61708, 61709, 61710, 61711, 61712, 61713, 61714, 61715, 61716, 61717, 61718, 61719, 61720, 61721, 61722, 61723, 61724, 61725, 61726, 61727, 61728, 61729, 61730, 61731, 61732, 61733, 61734, 61735, 61736, 61737, 61738, 61739, 61740, 61741, 61742, 61743, 61744, 61745, 61746, 61747, 61748, 61749, 61750, 61751, 61752, 61753, 61754, 61755, 61756, 61757, 61758, 61759, 61760, 61761, 61762, 61763, 61764, 61765, 61766, 61767, 61768, 61769, 61770, 61771, 61772, 61773, 61774, 61775, 61776, 61777, 61778, 61779, 61780, 61781, 61782, 61783, 61784, 61785, 61786, 61787, 61788, 61789, 61790, 61791, 61792, 61793, 61794, 61795, 61796, 61797, 61798, 61799, 61800, 61801, 61802, 61803, 61804, 61805, 61806, 61807, 61808, 61809, 61810, 61811, 61812, 61813, 61814, 61815, 61816, 61817, 61818, 61819, 61820, 61821, 61822, 61823, 61824, 61825, 61826, 61827, 61828, 61829, 61830, 61831, 61832, 61833, 61834, 61835, 61836, 61837, 61838, 61839, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +306: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 61840, 61841, 61842, 61843, 61844, 61845, 61846, 61847, 61848, 61849, 61850, 61851, 61852, 61853, 61854, 61855, 61856, 61857, 61858, 61859, 61860, 61861, 61862, 61863, 61864, 61865, 61866, 61867, 61868, 61869, 61870, 61871, 61872, 61873, 61874, 61875, 61876, 61877, 61878, 61879, 61880, 61881, 61882, 61883, 61884, 61885, 61886, 61887, 61888, 61889, 61890, 61891, 61892, 61893, 61894, 61895, 61896, 61897, 61898, 61899, 61900, 61901, 61902, 61903, 61904, 61905, 61906, 61907, 61908, 61909, 61910, 61911, 61912, 61913, 61914, 61915, 61916, 61917, 61918, 61919, 61920, 61921, 61922, 61923, 61924, 61925, 61926, 61927, 61928, 61929, 61930, 61931, 61932, 61933, 61934, 61935, 61936, 61937, 61938, 61939, 61940, 61941, 61942, 61943, 61944, 61945, 61946, 61947, 61948, 61949, 61950, 61951, 61952, 61953, 61954, 61955, 61956, 61957, 61958, 61959, 61960, 61961, 61962, 61963, 61964, 61965, 61966, 61967, 61968, 61969, 61970, 61971, 61972, 61973, 61974, 61975, 61976, 61977, 61978, 61979, 61980, 61981, 61982, 61983, 61984, 61985, 61986, 61987, 61988, 61989, 61990, 61991, 61992, 61993, 61994, 61995, 61996, 61997, 61998, 61999, 62000, 62001, 62002, 62003, 62004, 62005, 62006, 62007, 62008, 62009, 62010, 62011, 62012, 62013, 62014, 62015, 62016, 62017, 62018, 62019, 62020, 62021, 62022, 62023, 62024, 62025, 62026, 62027, 62028, 62029, 62030, 62031, 62032, 62033, 62034, 62035, 62036, 62037, 62038, 62039, 62040, 62041, 62042, 62043, 62044, 62045, 62046, 62047, 62048, 62049, 62050, 62051, 62052, 62053, 62054, 62055, 62056, 62057, 62058, 62059, 62060, 62061, 62062, 62063, 62064, 62065, 62066, 62067, 62068, 62069, 62070, 62071, 62072, 62073, 62074, 62075, 62076, 62077, 62078, 62079, 62080, 62081, 62082, 62083, 62084, 62085, 62086, 62087, 62088, 62089, 62090, 62091, 62092, 62093, 62094, 62095, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +307: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 62096, 62097, 62098, 62099, 62100, 62101, 62102, 62103, 62104, 62105, 62106, 62107, 62108, 62109, 62110, 62111, 62112, 62113, 62114, 62115, 62116, 62117, 62118, 62119, 62120, 62121, 62122, 62123, 62124, 62125, 62126, 62127, 62128, 62129, 62130, 62131, 62132, 62133, 62134, 62135, 62136, 62137, 62138, 62139, 62140, 62141, 62142, 62143, 62144, 62145, 62146, 62147, 62148, 62149, 62150, 62151, 62152, 62153, 62154, 62155, 62156, 62157, 62158, 62159, 62160, 62161, 62162, 62163, 62164, 62165, 62166, 62167, 62168, 62169, 62170, 62171, 62172, 62173, 62174, 62175, 62176, 62177, 62178, 62179, 62180, 62181, 62182, 62183, 62184, 62185, 62186, 62187, 62188, 62189, 62190, 62191, 62192, 62193, 62194, 62195, 62196, 62197, 62198, 62199, 62200, 62201, 62202, 62203, 62204, 62205, 62206, 62207, 62208, 62209, 62210, 62211, 62212, 62213, 62214, 62215, 62216, 62217, 62218, 62219, 62220, 62221, 62222, 62223, 62224, 62225, 62226, 62227, 62228, 62229, 62230, 62231, 62232, 62233, 62234, 62235, 62236, 62237, 62238, 62239, 62240, 62241, 62242, 62243, 62244, 62245, 62246, 62247, 62248, 62249, 62250, 62251, 62252, 62253, 62254, 62255, 62256, 62257, 62258, 62259, 62260, 62261, 62262, 62263, 62264, 62265, 62266, 62267, 62268, 62269, 62270, 62271, 62272, 62273, 62274, 62275, 62276, 62277, 62278, 62279, 62280, 62281, 62282, 62283, 62284, 62285, 62286, 62287, 62288, 62289, 62290, 62291, 62292, 62293, 62294, 62295, 62296, 62297, 62298, 62299, 62300, 62301, 62302, 62303, 62304, 62305, 62306, 62307, 62308, 62309, 62310, 62311, 62312, 62313, 62314, 62315, 62316, 62317, 62318, 62319, 62320, 62321, 62322, 62323, 62324, 62325, 62326, 62327, 62328, 62329, 62330, 62331, 62332, 62333, 62334, 62335, 62336, 62337, 62338, 62339, 62340, 62341, 62342, 62343, 62344, 62345, 62346, 62347, 62348, 62349, 62350, 62351, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +308: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 62352, 62353, 62354, 62355, 62356, 62357, 62358, 62359, 62360, 62361, 62362, 62363, 62364, 62365, 62366, 62367, 62368, 62369, 62370, 62371, 62372, 62373, 62374, 62375, 62376, 62377, 62378, 62379, 62380, 62381, 62382, 62383, 62384, 62385, 62386, 62387, 62388, 62389, 62390, 62391, 62392, 62393, 62394, 62395, 62396, 62397, 62398, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 46127, 46128, 46129, 46130, 46131, 46132, 46133, 46134, 46135, 46136, 46137, 46138, 46139, 46140, 46141, 46142, 46143, 46144, 46145, 46146, 46147, 46148, 46149, 46150, 46151, 46152, 46153, 46154, 46155, 46156, 46157, 46158, 46159, 46160, 46161, 46162, 46163, 46164, 46165, 46166, 46167, 46168, 46169, 46170, 46171, 46172, 46173, 46174, 46175, 46176, 46177, 46178, 46179, 46180, 46181, 46182, 46183, 46184, 46185, 46186, 46187, 46188, 46189, 46190, 46191, 46192, 46193, 46194, 46195, 46196, 46197, 46198, 46199, 46200, 46201, 46202, 46203, 46204, 46205, 46206, 46207, 46208, 46209, 46210, 46211, 46212, 46213, 46214, 46215, 46216, 46217, 46218, 46219, 46220, 46221, 46222, 46223, 46224, 46225, 46226, 46227, 46228, 46229, 46230, 46231, 46232, 46233, 46234, 46235, 46236, 46237, 46238, 46239, 46240, 46241, 46242, 46243, 46244, 46245, 46246, 46247, 46248, 46249, 46250, 46251, 46252, 46253, 46254, 46255, 46256, 46257, 46258, 46259, 46260, 46261, 46262, 46263, 46264, 46265, 46266, 46267, 46268, 46269, 46270, 46271, 46272, 46273, 46274, 46275, 46276, 46277, 46278, 46279, 46280, 46281, 46282, 46283, 46284, 46285, 46286, 46287, 46288, 46289, 46290, 46291, 46292, 46293, 46294, 46295, 46296, 46297, 46298, 46299, 46300, 46301, 46302, 46303, 46304, 46305, 46306, 46307, 46308, 46309, 46310, 46311, 46312, 46313, 46314, 46315, 46316, 46317, 46318, 46319, 46320, 46321, 46322, 46323, 46324, 46325, 46326, 46327, 46328, 46329, 46330, 46331, 46332, 46333, 46334, 46335, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +324: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 62426, 62427, 62428, 62429, 62430, 62431, 62432, 62433, 62434, 62435, 62436, 62437, 62438, 62439, 62440, 62441, 62442, 62443, 62444, 62445, 62446, 62447, 62448, 62449, 62450, 62451, 62452, 62453, 62454, 62455, 62456, 62457, 62458, 62459, 62460, 62461, 62462, 62463, 62464, 62465, 62466, 62467, 62468, 62469, 62470, 62471, 62472, 62473, 62474, 62475, 62476, 62477, 62478, 62479, 62480, 62481, 62482, 62483, 62484, 62485, 62486, 62487, 62488, 62489, 62490, 62491, 62492, 62493, 62494, 62495, 62496, 62497, 62498, 62499, 62500, 62501, 62502, 62503, 62504, 62505, 62506, 62507, 62508, 62509, 62510, 62511, 62512, 62513, 62514, 62515, 62516, 62517, 62518, 62519, 62520, 62521, 62522, 62523, 62524, 62525, 62526, 62527, 62528, 62529, 62530, 62531, 62532, 62533, 62534, 62535, 62536, 62537, 62538, 62539, 62540, 62541, 62542, 62543, 62544, 62545, 62546, 62547, 62548, 62549, 62550, 62551, 62552, 62553, 62554, 62555, 62556, 62557, 62558, 62559, 62560, 62561, 62562, 62563, 62564, 62565, 62566, 62567, 62568, 62569, 62570, 62571, 62572, 62573, 62574, 62575, 62576, 62577, 62578, 62579, 62580, 62581, 62582, 62583, 62584, 62585, 62586, 62587, 62588, 62589, 62590, 62591, 62592, 62593, 62594, 62595, 62596, 62597, 62598, 62599, 62600, 62601, 62602, 62603, 62604, 62605, 62606, 62607, 62608, 62609, 62610, 62611, 62612, 62613, 62614, 62615, 62616, 62617, 62618, 62619, 62620, 62621, 62622, 62623, 62624, 62625, 62626, 62627, 62628, 62629, 62630, 62631, 62632, 62633, 62634, 62635, 62636, 62637, 62638, 62639, 62640, 62641, 62642, 62643, 62644, 62645, 62646, 62647, 62648, 62649, 62650, 62651, 62652, 62653, 62654, 62655, 62656, 62657, 62658, 62659, 62660, 62661, 62662, 62663, 62664, 62665, 62666, 62667, 62668, 62669, 62670, 62671, 62672, 62673, 62674, 62675, 62676, 62677, 62678, 62679, 62680, 62681, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +325: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 62682, 62683, 62684, 62685, 62686, 62687, 62688, 62689, 62690, 62691, 62692, 62693, 62694, 62695, 62696, 62697, 62698, 62699, 62700, 62701, 62702, 62703, 62704, 62705, 62706, 62707, 62708, 62709, 62710, 62711, 62712, 62713, 62714, 62715, 62716, 62717, 62718, 62719, 62720, 62721, 62722, 62723, 62724, 62725, 62726, 62727, 62728, 62729, 62730, 62731, 62732, 62733, 62734, 62735, 62736, 62737, 62738, 62739, 62740, 62741, 62742, 62743, 62744, 62745, 62746, 62747, 62748, 62749, 62750, 62751, 62752, 62753, 62754, 62755, 62756, 62757, 62758, 62759, 62760, 62761, 62762, 62763, 62764, 62765, 62766, 62767, 62768, 62769, 62770, 62771, 62772, 62773, 62774, 62775, 62776, 62777, 62778, 62779, 62780, 62781, 62782, 62783, 62784, 62785, 62786, 62787, 62788, 62789, 62790, 62791, 62792, 62793, 62794, 62795, 62796, 62797, 62798, 62799, 62800, 62801, 62802, 62803, 62804, 62805, 62806, 62807, 62808, 62809, 62810, 62811, 62812, 62813, 62814, 62815, 62816, 62817, 62818, 62819, 62820, 62821, 62822, 62823, 62824, 62825, 62826, 62827, 62828, 62829, 62830, 62831, 62832, 62833, 62834, 62835, 62836, 62837, 62838, 62839, 62840, 62841, 62842, 62843, 62844, 62845, 62846, 62847, 62848, 62849, 62850, 62851, 62852, 62853, 62854, 62855, 62856, 62857, 62858, 62859, 62860, 62861, 62862, 62863, 62864, 62865, 62866, 62867, 62868, 62869, 62870, 62871, 62872, 62873, 62874, 62875, 62876, 62877, 62878, 62879, 62880, 62881, 62882, 62883, 62884, 62885, 62886, 62887, 62888, 62889, 62890, 62891, 62892, 62893, 62894, 62895, 62896, 62897, 62898, 62899, 62900, 62901, 62902, 62903, 62904, 62905, 62906, 62907, 62908, 62909, 62910, 62911, 62912, 62913, 62914, 62915, 62916, 62917, 62918, 62919, 62920, 62921, 62922, 62923, 62924, 62925, 62926, 62927, 62928, 62929, 62930, 62931, 62932, 62933, 62934, 62935, 62936, 62937, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +326: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 62938, 62939, 62940, 62941, 62942, 62943, 62944, 62945, 62946, 62947, 62948, 62949, 62950, 62951, 62952, 62953, 62954, 62955, 62956, 62957, 62958, 62959, 62960, 62961, 62962, 62963, 62964, 62965, 62966, 62967, 62968, 62969, 62970, 62971, 62972, 62973, 62974, 62975, 62976, 62977, 62978, 62979, 62980, 62981, 62982, 62983, 62984, 62985, 62986, 62987, 62988, 62989, 62990, 62991, 62992, 62993, 62994, 62995, 62996, 62997, 62998, 62999, 63000, 63001, 63002, 63003, 63004, 63005, 63006, 63007, 63008, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 50759, 50760, 50761, 50762, 50763, 50764, 50765, 50766, 50767, 50768, 50769, 50770, 50771, 50772, 50773, 50774, 50775, 50776, 50777, 50778, 50779, 50780, 50781, 50782, 50783, 50784, 50785, 50786, 50787, 50788, 50789, 50790, 50791, 50792, 50793, 50794, 50795, 50796, 50797, 50798, 50799, 50800, 50801, 50802, 50803, 50804, 50805, 50806, 50807, 50808, 50809, 50810, 50811, 50812, 50813, 50814, 50815, 50816, 50817, 50818, 50819, 50820, 50821, 50822, 50823, 50824, 50825, 50826, 50827, 50828, 50829, 50830, 50831, 50832, 50833, 50834, 50835, 50836, 50837, 50838, 50839, 50840, 50841, 50842, 50843, 50844, 50845, 50846, 50847, 50848, 50849, 50850, 50851, 50852, 50853, 50854, 50855, 50856, 50857, 50858, 50859, 50860, 50861, 50862, 50863, 50864, 50865, 50866, 50867, 50868, 50869, 50870, 50871, 50872, 50873, 50874, 50875, 50876, 50877, 50878, 50879, 50880, 50881, 50882, 50883, 50884, 50885, 50886, 50887, 50888, 50889, 50890, 50891, 50892, 50893, 50894, 50895, 50896, 50897, 50898, 50899, 50900, 50901, 50902, 50903, 50904, 50905, 50906, 50907, 50908, 50909, 50910, 50911, 50912, 50913, 50914, 50915, 50916, 50917, 50918, 50919, 50920, 50921, 50922, 50923, 50924, 50925, 50926, 50927, 50928, 50929, 50930, 50931, 50932, 50933, 50934, 50935, 50936, 50937, 50938, 50939, 50940, 50941, 50942, 50943, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +360: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 55860, 55861, 55862, 55863, 55864, 55865, 55866, 55867, 55868, 55869, 55870, 55871, 55872, 55873, 55874, 55875, 55876, 55877, 55878, 55879, 55880, 55881, 55882, 55883, 55884, 55885, 55886, 55887, 55888, 55889, 55890, 55891, 55892, 55893, 55894, 55895, 55896, 55897, 55898, 55899, 55900, 55901, 55902, 55903, 55904, 55905, 55906, 55907, 55908, 55909, 55910, 55911, 55912, 55913, 55914, 55915, 55916, 55917, 55918, 55919, 55920, 55921, 55922, 55923, 55924, 55925, 55926, 55927, 55928, 55929, 55930, 55931, 55932, 55933, 55934, 55935, 55936, 55937, 55938, 55939, 55940, 55941, 55942, 55943, 55944, 55945, 55946, 55947, 55948, 55949, 55950, 55951, 55952, 55953, 55954, 55955, 55956, 55957, 55958, 55959, 55960, 55961, 55962, 55963, 55964, 55965, 55966, 55967, 55968, 55969, 55970, 55971, 55972, 55973, 55974, 55975, 55976, 55977, 55978, 55979, 55980, 55981, 55982, 55983, 55984, 55985, 55986, 55987, 55988, 55989, 55990, 55991, 55992, 55993, 55994, 55995, 55996, 55997, 55998, 55999, 56000, 56001, 56002, 56003, 56004, 56005, 56006, 56007, 56008, 56009, 56010, 56011, 56012, 56013, 56014, 56015, 56016, 56017, 56018, 56019, 56020, 56021, 56022, 56023, 56024, 56025, 56026, 56027, 56028, 56029, 56030, 56031, 56032, 56033, 56034, 56035, 56036, 56037, 56038, 56039, 56040, 56041, 56042, 56043, 56044, 56045, 56046, 56047, 56048, 56049, 56050, 56051, 56052, 56053, 56054, 56055, 56056, 56057, 56058, 56059, 56060, 56061, 56062, 56063, 56064, 56065, 56066, 56067, 56068, 56069, 56070, 56071, 56072, 56073, 56074, 56075, 56076, 56077, 56078, 56079, 56080, 56081, 56082, 56083, 56084, 56085, 56086, 56087, 56088, 56089, 56090, 56091, 56092, 56093, 56094, 56095, 56096, 56097, 56098, 56099, 56100, 56101, 56102, 56103, 56104, 56105, 56106, 56107, 56108, 56109, 56110, 56111, 56112, 56113, 56114, 56115, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +361: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 56116, 56117, 56118, 56119, 56120, 56121, 56122, 56123, 56124, 56125, 56126, 56127, 56128, 56129, 56130, 56131, 56132, 56133, 56134, 56135, 56136, 56137, 56138, 56139, 56140, 56141, 56142, 56143, 56144, 56145, 56146, 56147, 56148, 56149, 56150, 56151, 56152, 56153, 56154, 56155, 56156, 56157, 56158, 56159, 56160, 56161, 56162, 56163, 56164, 56165, 56166, 56167, 56168, 56169, 56170, 56171, 56172, 56173, 56174, 56175, 56176, 56177, 56178, 56179, 56180, 56181, 56182, 56183, 56184, 56185, 56186, 56187, 56188, 56189, 56190, 56191, 56192, 56193, 56194, 56195, 56196, 56197, 56198, 56199, 56200, 56201, 56202, 56203, 56204, 56205, 56206, 56207, 56208, 56209, 56210, 56211, 56212, 56213, 56214, 56215, 56216, 56217, 56218, 56219, 56220, 56221, 56222, 56223, 56224, 56225, 56226, 56227, 56228, 56229, 56230, 56231, 56232, 56233, 56234, 56235, 56236, 56237, 56238, 56239, 56240, 56241, 56242, 56243, 56244, 56245, 56246, 56247, 56248, 56249, 56250, 56251, 56252, 56253, 56254, 56255, 56256, 56257, 56258, 56259, 56260, 56261, 56262, 56263, 56264, 56265, 56266, 56267, 56268, 56269, 56270, 56271, 56272, 56273, 56274, 56275, 56276, 56277, 56278, 56279, 56280, 56281, 56282, 56283, 56284, 56285, 56286, 56287, 56288, 56289, 56290, 56291, 56292, 56293, 56294, 56295, 56296, 56297, 56298, 56299, 56300, 56301, 56302, 56303, 56304, 56305, 56306, 56307, 56308, 56309, 56310, 56311, 56312, 56313, 56314, 56315, 56316, 56317, 56318, 56319, 56320, 56321, 56322, 56323, 56324, 56325, 56326, 56327, 56328, 56329, 56330, 56331, 56332, 56333, 56334, 56335, 56336, 56337, 56338, 56339, 56340, 56341, 56342, 56343, 56344, 56345, 56346, 56347, 56348, 56349, 56350, 56351, 56352, 56353, 56354, 56355, 56356, 56357, 56358, 56359, 56360, 56361, 56362, 56363, 56364, 56365, 56366, 56367, 56368, 56369, 56370, 56371, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +362: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 56372, 56373, 56374, 56375, 56376, 56377, 56378, 56379, 56380, 56381, 56382, 56383, 56384, 56385, 56386, 56387, 56388, 56389, 56390, 56391, 56392, 56393, 56394, 56395, 56396, 56397, 56398, 56399, 56400, 56401, 56402, 56403, 56404, 56405, 56406, 56407, 56408, 56409, 56410, 56411, 56412, 56413, 56414, 56415, 56416, 56417, 56418, 56419, 56420, 56421, 56422, 56423, 56424, 56425, 56426, 56427, 56428, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 59205, 59206, 59207, 59208, 59209, 59210, 59211, 59212, 59213, 59214, 59215, 59216, 59217, 59218, 59219, 59220, 59221, 59222, 59223, 59224, 59225, 59226, 59227, 59228, 59229, 59230, 59231, 59232, 59233, 59234, 59235, 63012, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 63012, 63012, 63012, 63012, 704, 705, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 56429, 56430, 56431, 56432, 56433, 56434, 56435, 56436, 56437, 56438, 56439, 56440, 56441, 56442, 56443, 56444, 56445, 56446, 56447, 56448, 56449, 56450, 56451, 56452, 56453, 56454, 56455, 56456, 56457, 56458, 63012, 63012, 0, 0, 0, 0, 0, 648, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 184, 185, 186, 187, 188, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 59961, 59962, 59963, 59964, 59965, 59966, 59967, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59999, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60010, 60011, 60012, 60013, 0, 0, 60016, 60017, 60018, 60019, 60020, 60021, 60022, 60023, 60024, 60025, 60026, 60027, 60028, 60029, 60030, 60031, 60032, 60033, 60034, 60035, 60036, 60037, 60038, 60039, 60040, 60041, 60042, 60043, 60044, 60045, 60046, 60047, 60048, 60049, 60050, 60051, 60052, 60053, 60054, 60055, 60056, 60057, 60058, 60059, 60060, 60061, 60062, 60063, 60064, 60065, 60066, 60067, 60068, 60069, 60070, 60071, 60072, 60073, 60074, 60075, 60076, 60077, 60078, 60079, 60080, 60081, 60082, 60083, 60084, 60085, 60086, 60087, 60088, 60089, 60090, 60091, 60092, 60093, 60094, 60095, 60096, 60097, 60098, 60099, 60100, 60101, 60102, 60103, 60104, 60105, 60106, 60107, 60108, 60109, 60110, 60111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60142, 60143, 0, 0, 0, 0, 0, 0, 60150, 60151, 60152, 60153, 60154, 60155, 60156, 60157, 60158, 60159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +363: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 58578, 58579, 58580, 58581, 58582, 58583, 58584, 58585, 58586, 58587, 58588, 58589, 58590, 58591, 58592, 58593, 58594, 58595, 58596, 58597, 58598, 58599, 58600, 58601, 58602, 58603, 58604, 58605, 58606, 58607, 58608, 58609, 58610, 58611, 58612, 58613, 58614, 58615, 58616, 58617, 58618, 58619, 58620, 58621, 58622, 58623, 58624, 58625, 0, 0, 0, 0, 0, 0, 0, 1143, 1144, 1145, 1146, 1147, 4049, 4050, 4051, 4052, 58626, 58627, 7173, 7174, 1148, 4053, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 63012, 7072, 7073, 7074, 7075, 7076, 7077, 7078, 63012, 58628, 58629, 58630, 58631, 58632, 58633, 58634, 58635, 58636, 58637, 58638, 58639, 58640, 58641, 58642, 58643, 58644, 58645, 58646, 58647, 58648, 63012, 63012, 63012, 63012, 63012, 58649, 58650, 58651, 58652, 58653, 58654, 58655, 58656, 58657, 58658, 58659, 58660, 58661, 58662, 58663, 58664, 58665, 58666, 58667, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 244, 245, 246, 247, 248, 249, 250, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 60230, 60231, 60232, 60233, 60234, 60235, 60236, 60237, 60238, 60239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60250, 0, 0, 0, 0, 0, 0, 0, 60258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60280, 60281, 60282, 60283, 60284, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60304, 60305, 60306, 60307, 60308, 60309, 60310, 60311, 60312, 60313, 60314, 60315, 60316, 60317, 60318, 60319, 60320, 60321, 60322, 60323, 60324, 60325, 60326, 60327, 60328, 60329, 60330, 60331, 60332, 60333, 60334, 60335, 60336, 60337, 60338, 60339, 60340, 60341, 60342, 60343, 60344, 60345, 60346, 60347, 60348, 60349, 60350, 60351, 60352, 60353, 60354, 60355, 60356, 60357, 60358, 60359, 60360, 60361, 60362, 60363, 60364, 60365, 60366, 60367, 60368, 60369, 60370, 60371, 60372, 60373, 60374, 60375, 60376, 60377, 60378, 60379, 60380, 60381, 60382, 60383, 60384, 60385, 60386, 60387, 60388, 60389, 60390, 60391, 60392, 60393, 60394, 60395, 60396, 60397, 60398, 60399, 60400, 60401, 60402, 60403, 60404, 60405, 60406, 60407, 60408, 60409, 60410, 60411, 60412, 60413, 60414, 60415, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +367: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 58359, 58360, 58361, 58362, 58363, 58364, 58363, 58365, 58366, 58367, 58368, 58369, 58370, 58371, 58372, 58373, 58374, 58375, 58376, 58374, 58377, 58378, 58379, 58380, 58381, 58382, 58383, 58384, 58385, 58386, 58387, 58388, 58389, 58390, 58391, 58392, 58393, 58392, 58394, 58395, 58396, 58397, 58398, 58399, 58400, 58401, 58402, 58403, 58404, 58405, 58406, 58407, 58408, 58409, 58410, 58411, 58412, 58413, 58414, 58415, 58416, 58417, 58418, 58417, 58419, 58420, 58421, 58422, 58423, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 58424, 58425, 58426, 58427, 58428, 58429, 58430, 58431, 58432, 58433, 58434, 58435, 58436, 58437, 58438, 58439, 58440, 58441, 58442, 58443, 58444, 58445, 58446, 58447, 58448, 58449, 58450, 58451, 58452, 58453, 58454, 58455, 58456, 58457, 58458, 58459, 58460, 58461, 58462, 58463, 58464, 58465, 58466, 58467, 58468, 58469, 58470, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 58471, 58472, 58473, 58474, 58475, 58476, 58477, 58478, 58479, 58480, 58481, 58482, 58483, 58484, 58485, 58486, 58487, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 7177, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 63012, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 61253, 61254, 61255, 61256, 61257, 61258, 61259, 61260, 61261, 61262, 61263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61311, 61312, 61313, 61314, 61315, 61316, 61317, 61318, 61319, 61320, 61321, 61322, 61323, 61324, 61325, 61326, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61344, 61345, 61346, 61347, 61348, 61349, 61350, 61351, 61352, 61353, 61354, 61355, 61356, 61357, 61358, 61359, 61360, 61361, 61362, 61363, 61364, 61365, 61366, 61367, 61368, 61369, 61370, 61371, 61372, 61373, 61374, 61375, 61376, 61377, 61378, 61379, 61380, 61381, 61382, 61383, 61384, 61385, 61386, 61387, 61388, 61389, 61390, 61391, 61392, 61393, 61394, 61395, 61396, 61397, 61398, 61399, 61400, 61401, 61402, 61403, 61404, 61405, 61406, 61407, 0, 61409, 61410, 61411, 61412, 61413, 61414, 61415, 61416, 61417, 61418, 61419, 61420, 61421, 61422, 61423, 61424, 61425, 61426, 61427, 61428, 61429, 61430, 61431, 61432, 61433, 61434, 61435, 61436, 61437, 61438, 61439, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +432: 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 57050, 57085, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 17, 14, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 45058, 45059, 45060, 45061, 45062, 45063, 45064, 45065, 45066, 45067, 45068, 45069, 45070, 45071, 45072, 45073, 45074, 45075, 45076, 45077, 45078, 45079, 45080, 45081, 45082, 45083, 45084, 45085, 45086, 45087, 45088, 45089, 45090, 45091, 45092, 45093, 45094, 45095, 45096, 45097, 45098, 45099, 45100, 45101, 45102, 45103, 45104, 45105, 45106, 45107, 45108, 45109, 45110, 45111, 45112, 45113, 45114, 45115, 45116, 45117, 45118, 45119, 45120, 45121, 45122, 45123, 45124, 45125, 45126, 45127, 45128, 45129, 45130, 45131, 45132, 45133, 45134, 45135, 45136, 45137, 45138, 45139, 45140, 45141, 45142, 45143, 45144, 45145, 45146, 45147, 45148, 45149, 45150, 45151, 45152, 45153, 45154, 45155, 45156, 45157, 45158, 45159, 45160, 45161, 45162, 45163, 45164, 45165, 45166, 45167, 45168, 45169, 45170, 45171, 45172, 45173, 45174, 45175, 45176, 45177, 45178, 45179, 45180, 45181, 45182, 45183, 45184, 45185, 45186, 45187, 45188, 45189, 45190, 45191, 45192, 45193, 45194, 45195, 45196, 45197, 45198, 45199, 45200, 45201, 45202, 45203, 45204, 45205, 45206, 45207, 45208, 45209, 45210, 45211, 45212, 45213, 45214, 45215, 45216, 45217, 45218, 45219, 45220, 45221, 45222, 45223, 45224, 45225, 45226, 45227, 45228, 45229, 45230, 45231, 45232, 45233, 45234, 45235, 45236, 45237, 45238, 45239, 45240, 45241, 45242, 45243, 45244, 45245, 45246, 45247, 45248, 45249, 45250, 45251, 45252, 45253, 45254, 45255, 45256, 45257, 45258, 45259, 45260, 45261, 45262, 45263, 45264, 45265, 45266, 45267, 45268, 45269, 45270, 45271, 45272, 45273, 45274, 45275, 45276, 45277, 45278, 45279, 45280, 45281, 45282, 45283, 45284, 45285, 45286, 45287, 45288, 45289, 45290, 45291, 45292, 45293, 45294, 45295, 45296, 45297, 45298, 45299, 45300, 45301, 45302, 45303, 45304, 45305, 45306, 45307, 45308, 45309, 45310, 45311, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +444: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 58919, 58920, 58921, 58922, 58923, 58924, 58925, 58926, 58927, 58928, 58929, 58930, 58931, 58932, 58933, 58934, 58935, 58936, 58937, 58938, 58939, 58940, 58941, 58942, 58943, 58944, 58945, 58946, 58947, 58948, 58949, 58950, 58951, 58952, 58953, 58954, 58955, 58956, 58957, 58958, 58959, 58960, 58961, 58962, 58963, 58964, 58965, 58966, 58967, 58968, 58969, 58970, 58971, 58972, 58973, 58974, 58975, 58976, 58977, 58978, 58979, 58980, 58981, 58982, 58983, 58984, 58985, 58986, 58987, 58988, 58989, 58990, 58991, 58992, 58993, 58994, 58995, 58996, 58997, 58998, 58999, 59000, 59001, 59002, 59003, 59004, 59005, 59006, 59007, 59008, 59009, 59010, 59011, 59012, 59013, 59014, 59015, 59016, 59017, 59018, 59019, 59020, 59021, 59022, 59023, 59024, 59025, 63013, 63013, 63013, 63013, 63013, 59026, 59027, 59028, 59029, 59030, 59031, 59032, 59033, 59034, 59035, 59036, 59037, 59038, 63013, 63013, 63013, 59039, 59040, 59041, 59042, 59043, 59044, 59045, 59046, 59047, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 59048, 59049, 59050, 59051, 59052, 59053, 59054, 59055, 59056, 59057, 63013, 63013, 4550, 0, 0, 649, 0, 0, 0, 0, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 51, 53, 32, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 48235, 48236, 48237, 48238, 48239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48253, 48254, 48255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48265, 48266, 48267, 48268, 48269, 48270, 48271, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48282, 48283, 0, 0, 0, 0, 0, 0, 0, 0, 48292, 48293, 48294, 48295, 48296, 48297, 48298, 48299, 48300, 48301, 48302, 48303, 48304, 48305, 48306, 48307, 48308, 48309, 48310, 48311, 48312, 48313, 48314, 48315, 48316, 48317, 48318, 48319, 48320, 48321, 48322, 48323, 48324, 48325, 48326, 48327, 48328, 48329, 48330, 48331, 48332, 48333, 48334, 48335, 48336, 48337, 48338, 48339, 48340, 48341, 48342, 48343, 48344, 48345, 48346, 48347, 48348, 48349, 48350, 48351, 48352, 48353, 48354, 48355, 48356, 48357, 48358, 48359, 48360, 48361, 48362, 48363, 48364, 48365, 48366, 48367, 48368, 48369, 48370, 48371, 48372, 48373, 48374, 48375, 48376, 48377, 48378, 48379, 48380, 48381, 48382, 48383, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +464: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4054, 4055, 4056, 4057, 4058, 4059, 4060, 4061, 4062, 4063, 4064, 4065, 4066, 4067, 4068, 4069, 4070, 4071, 4072, 4073, 4074, 4075, 4076, 4077, 4078, 4079, 4080, 4081, 4082, 4083, 4084, 4085, 4086, 4087, 4088, 4089, 4090, 4091, 4092, 4093, 4094, 4095, 4096, 4097, 4098, 4099, 4100, 4101, 4102, 4103, 4104, 4105, 4106, 4107, 4108, 4109, 4110, 4111, 4112, 4113, 4114, 4115, 4116, 4117, 4118, 4119, 4120, 4121, 4122, 4123, 4124, 4125, 4126, 4127, 4128, 4129, 4130, 4131, 4132, 4133, 4134, 4135, 4136, 4137, 4138, 4139, 4140, 4141, 4142, 4143, 4144, 4145, 4146, 4147, 4148, 4149, 4150, 4151, 4152, 4153, 4154, 4155, 4156, 4157, 4158, 4159, 4160, 4161, 4162, 4163, 4164, 4165, 4166, 4167, 4168, 4169, 4170, 4171, 4172, 4173, 4174, 4175, 4176, 4177, 4178, 4179, 4180, 4181, 4182, 4183, 4184, 4185, 4186, 4187, 4188, 4189, 4190, 4191, 4192, 4193, 4194, 4195, 4196, 4197, 4198, 4199, 4200, 4201, 4202, 4203, 4204, 4205, 4206, 4207, 4208, 4209, 4210, 4211, 4212, 4213, 4214, 4215, 4216, 4217, 4218, 4219, 4220, 4221, 4222, 4223, 4224, 4225, 4226, 4227, 4228, 4229, 4230, 4231, 4232, 4233, 4234, 4235, 4236, 4237, 4238, 4239, 4240, 4241, 4242, 4243, 4244, 4245, 4246, 4247, 4248, 4249, 4250, 4251, 4252, 4253, 4254, 4255, 4256, 4257, 4258, 4259, 4260, 4261, 4262, 4263, 4264, 4265, 4266, 4267, 4268, 4269, 4270, 4271, 4272, 4273, 4274, 4275, 4276, 4277, 4278, 4279, 4280, 4281, 4282, 4283, 4284, 4285, 4286, 4287, 4288, 4289, 4290, 4291, 4292, 4293, 4294, 4295, 4296, 4297, 4298, 4299, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53494, 53495, 53496, 53497, 53498, 53499, 53500, 53501, 53502, 53503, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +465: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4300, 4301, 4302, 4303, 4304, 4305, 4306, 4307, 4308, 4309, 4310, 4311, 4312, 4313, 4314, 4315, 4316, 4317, 4318, 4319, 4320, 4321, 4322, 4323, 4324, 4325, 4326, 4327, 4328, 4329, 4330, 4331, 4332, 4333, 4334, 4335, 4336, 4337, 4338, 63013, 63013, 4358, 4342, 4343, 4344, 4345, 4346, 4347, 4348, 4349, 4350, 4351, 4352, 4353, 4354, 4355, 4356, 4357, 4359, 4360, 4361, 4362, 4363, 4364, 4365, 4366, 4367, 4368, 4369, 4370, 4371, 4372, 4373, 4374, 4375, 4376, 4377, 4378, 4379, 4380, 4381, 4382, 4383, 4384, 4385, 4386, 4387, 4388, 4389, 4390, 4391, 4392, 4393, 4394, 4388, 4389, 4389, 4389, 4389, 4389, 4389, 0, 0, 0, 0, 0, 4395, 4396, 4397, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4398, 4399, 0, 0, 0, 0, 0, 0, 0, 4400, 4401, 4402, 4403, 4404, 4405, 4406, 4407, 4408, 4409, 4410, 4411, 4412, 4413, 4414, 4415, 4416, 4417, 4418, 4419, 4420, 4421, 4422, 4423, 4424, 4425, 4426, 4427, 4428, 4429, 0, 0, 0, 0, 4430, 4431, 4432, 4433, 4434, 4435, 4436, 4437, 4438, 4439, 4440, 4441, 4442, 4441, 4442, 4441, 4442, 4441, 4442, 4443, 4444, 4445, 4446, 4447, 4448, 4449, 4450, 4451, 4452, 4453, 4454, 4455, 4456, 4457, 4458, 4459, 4460, 4461, 4462, 4463, 4464, 4465, 4466, 4467, 4468, 4469, 4470, 4471, 4472, 4473, 4474, 4475, 4476, 4477, 4478, 4479, 4480, 4481, 4482, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 53543, 53544, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53737, 53738, 53739, 53740, 53741, 53742, 53743, 53744, 53745, 53746, 53747, 53748, 53749, 53750, 53751, 53752, 53753, 53754, 53755, 53756, 53757, 53758, 53759, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +466: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4483, 4484, 4485, 4486, 4487, 4488, 4489, 4490, 4491, 4492, 4493, 4494, 4495, 4496, 4497, 4498, 4499, 4500, 4501, 4502, 4503, 4504, 4505, 4506, 4507, 4508, 4509, 4510, 4511, 4512, 4513, 4514, 4515, 4516, 4517, 4518, 4519, 4520, 4521, 4522, 4523, 4524, 4525, 4526, 4527, 4528, 4529, 4530, 4531, 4532, 4533, 4534, 4535, 4536, 4537, 4538, 4539, 4540, 4541, 4542, 4543, 4544, 4545, 4546, 4547, 4548, 0, 0, 0, 4549, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 53830, 53831, 53832, 53833, 53834, 53835, 53836, 53837, 53838, 53839, 53840, 53841, 53842, 53843, 53844, 53845, 53846, 53847, 53848, 53849, 53850, 53851, 53852, 53853, 53854, 53855, 53856, 53857, 53858, 53859, 53860, 53861, 53862, 53863, 53864, 53865, 53866, 53867, 53868, 53869, 53870, 53871, 53872, 53873, 53874, 53875, 53876, 53877, 53878, 53879, 53880, 53881, 53882, 53883, 53884, 53885, 53886, 53887, 53888, 53889, 53890, 53891, 53892, 53893, 53894, 53895, 53896, 53897, 53898, 53899, 53900, 53901, 53902, 53903, 53904, 53905, 53906, 53907, 53908, 53909, 53910, 53911, 53912, 53913, 53914, 53915, 53916, 53917, 53918, 53919, 53920, 53921, 53922, 53923, 53924, 53925, 53926, 53927, 53928, 53929, 53930, 53931, 53932, 53933, 53934, 53935, 53936, 53937, 53938, 53939, 53940, 53941, 53942, 53943, 53944, 53945, 53946, 53947, 53948, 53949, 53950, 53951, 53952, 53953, 53954, 53955, 53956, 53957, 53958, 53959, 53960, 53961, 53962, 53963, 53964, 53965, 53966, 53967, 53968, 53969, 53970, 53971, 53972, 53973, 53974, 53975, 53976, 53977, 53978, 53979, 53980, 53981, 53982, 53983, 53984, 53985, 53986, 53987, 53988, 53989, 53990, 53991, 53992, 53993, 53994, 53995, 53996, 53997, 53998, 53999, 54000, 54001, 54002, 54003, 54004, 54005, 54006, 54007, 54008, 54009, 54010, 54011, 54012, 54013, 54014, 54015, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +467: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3818, 3819, 3820, 3821, 3822, 3823, 3824, 3825, 3826, 3827, 3828, 3829, 3830, 3831, 3832, 3833, 3834, 3835, 3836, 3837, 3838, 3839, 3840, 3841, 3842, 3843, 3844, 3845, 3846, 3847, 3848, 3849, 3850, 3851, 3852, 3853, 3854, 3855, 3856, 3857, 3858, 3859, 3860, 3861, 3862, 3863, 3864, 3865, 3866, 3867, 3868, 3869, 3870, 3871, 3872, 3873, 3874, 3875, 3876, 3877, 3878, 3879, 3880, 3881, 3882, 3883, 3884, 3885, 3886, 3887, 3888, 3889, 3890, 3891, 3892, 3893, 3894, 3895, 3896, 3897, 3898, 3899, 3900, 3901, 3902, 3903, 3904, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7151, 7152, 7153, 7154, 7155, 7156, 7157, 7158, 7159, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 54103, 54104, 54105, 54106, 54107, 54108, 54109, 54110, 54111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54130, 54131, 54132, 54133, 54134, 54135, 54136, 54137, 54138, 54139, 54140, 54141, 54142, 54143, 54144, 54145, 54146, 54147, 54148, 54149, 54150, 54151, 54152, 54153, 54154, 54155, 54156, 54157, 54158, 54159, 54160, 54161, 54162, 54163, 54164, 54165, 54166, 54167, 54168, 54169, 54170, 54171, 54172, 54173, 54174, 54175, 54176, 54177, 54178, 54179, 54180, 54181, 54182, 54183, 54184, 54185, 54186, 54187, 54188, 54189, 54190, 54191, 54192, 54193, 54194, 54195, 54196, 54197, 54198, 54199, 54200, 54201, 54202, 54203, 54204, 54205, 54206, 54207, 54208, 54209, 54210, 54211, 54212, 54213, 54214, 54215, 54216, 54217, 54218, 54219, 54220, 54221, 54222, 54223, 54224, 54225, 54226, 54227, 54228, 54229, 54230, 54231, 54232, 54233, 54234, 54235, 54236, 54237, 54238, 54239, 54240, 54241, 54242, 54243, 54244, 54245, 54246, 54247, 54248, 54249, 54250, 54251, 54252, 54253, 54254, 54255, 54256, 54257, 54258, 54259, 54260, 54261, 54262, 54263, 54264, 54265, 54266, 54267, 54268, 54269, 54270, 54271, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +468: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 48580, 48605, 48631, 48652, 48679, 48738, 48753, 48789, 48815, 48841, 48866, 48884, 48935, 48950, 48986, 49033, 49054, 49072, 49134, 49170, 49202, 49248, 49266, 49276, 49288, 49310, 48580, 48605, 48631, 48652, 48679, 48738, 48753, 48789, 48815, 48841, 48866, 48884, 48935, 48950, 48986, 49033, 49054, 49072, 49134, 49170, 49202, 49248, 49266, 49276, 49288, 49310, 48580, 48605, 48631, 48652, 48679, 48738, 48753, 48789, 48815, 48841, 48866, 48884, 48935, 48950, 48986, 49033, 49054, 49072, 49134, 49170, 49202, 49248, 49266, 49276, 49288, 49310, 48580, 48605, 48631, 48652, 48679, 48738, 48753, 63013, 48815, 48841, 48866, 48884, 48935, 48950, 48986, 49033, 49054, 49072, 49134, 49170, 49202, 49248, 49266, 49276, 49288, 49310, 48580, 48605, 48631, 48652, 48679, 48738, 48753, 48789, 48815, 48841, 48866, 48884, 48935, 48950, 48986, 49033, 49054, 49072, 49134, 49170, 49202, 49248, 49266, 49276, 49288, 49310, 48580, 48605, 48631, 48652, 48679, 48738, 48753, 48789, 48815, 48841, 48866, 48884, 48935, 48950, 48986, 49033, 49054, 49072, 49134, 49170, 49202, 49248, 49266, 49276, 49288, 49310, 48580, 63013, 48631, 48652, 63013, 63013, 48753, 63013, 63013, 48841, 48866, 63013, 63013, 48950, 48986, 49033, 49054, 63013, 49134, 49170, 49202, 49248, 49266, 49276, 49288, 49310, 48580, 48605, 48631, 48652, 63013, 48738, 63013, 48789, 48815, 48841, 48866, 48884, 48935, 48950, 63013, 49033, 49054, 49072, 49134, 49170, 49202, 49248, 49266, 49276, 49288, 49310, 48580, 48605, 48631, 48652, 48679, 48738, 48753, 48789, 48815, 48841, 48866, 48884, 48935, 48950, 48986, 49033, 49054, 49072, 49134, 49170, 49202, 49248, 49266, 49276, 49288, 49310, 48580, 48605, 48631, 48652, 48679, 48738, 48753, 48789, 48815, 48841, 48866, 48884, 48935, 48950, 48986, 49033, 49054, 49072, 49134, 49170, 49202, 49248, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 5, 5, 5, 5, 5, 5, 5, 2, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 11, 2, 11, 11, 2, 2, 11, 2, 2, 11, 11, 2, 2, 11, 11, 11, 11, 2, 11, 11, 11, 11, 11, 11, 11, 11, 5, 5, 5, 5, 2, 5, 2, 5, 5, 5, 5, 5, 5, 5, 2, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54357, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54429, 0, 0, 54432, 54433, 0, 54435, 54436, 0, 0, 54439, 54440, 0, 0, 0, 0, 54445, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54458, 0, 54460, 0, 0, 0, 0, 0, 0, 0, 54468, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +469: 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 49266, 49276, 49288, 49310, 48580, 48605, 63013, 48652, 48679, 48738, 48753, 63013, 63013, 48841, 48866, 48884, 48935, 48950, 48986, 49033, 49054, 63013, 49134, 49170, 49202, 49248, 49266, 49276, 49288, 63013, 48580, 48605, 48631, 48652, 48679, 48738, 48753, 48789, 48815, 48841, 48866, 48884, 48935, 48950, 48986, 49033, 49054, 49072, 49134, 49170, 49202, 49248, 49266, 49276, 49288, 49310, 48580, 48605, 63013, 48652, 48679, 48738, 48753, 63013, 48815, 48841, 48866, 48884, 48935, 63013, 48986, 63013, 63013, 63013, 49134, 49170, 49202, 49248, 49266, 49276, 49288, 63013, 48580, 48605, 48631, 48652, 48679, 48738, 48753, 48789, 48815, 48841, 48866, 48884, 48935, 48950, 48986, 49033, 49054, 49072, 49134, 49170, 49202, 49248, 49266, 49276, 49288, 49310, 48580, 48605, 48631, 48652, 48679, 48738, 48753, 48789, 48815, 48841, 48866, 48884, 48935, 48950, 48986, 49033, 49054, 49072, 49134, 49170, 49202, 49248, 49266, 49276, 49288, 49310, 48580, 48605, 48631, 48652, 48679, 48738, 48753, 48789, 48815, 48841, 48866, 48884, 48935, 48950, 48986, 49033, 49054, 49072, 49134, 49170, 49202, 49248, 49266, 49276, 49288, 49310, 48580, 48605, 48631, 48652, 48679, 48738, 48753, 48789, 48815, 48841, 48866, 48884, 48935, 48950, 48986, 49033, 49054, 49072, 49134, 49170, 49202, 49248, 49266, 49276, 49288, 49310, 48580, 48605, 48631, 48652, 48679, 48738, 48753, 48789, 48815, 48841, 48866, 48884, 48935, 48950, 48986, 49033, 49054, 49072, 49134, 49170, 49202, 49248, 49266, 49276, 49288, 49310, 48580, 48605, 48631, 48652, 48679, 48738, 48753, 48789, 48815, 48841, 48866, 48884, 48935, 48950, 48986, 49033, 49054, 49072, 49134, 49170, 49202, 49248, 49266, 49276, 49288, 49310, 48580, 48605, 48631, 48652, 48679, 48738, 48753, 48789, 48815, 48841, 48866, 48884, 48935, 48950, 48986, 49033, 49054, 49072, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 5, 5, 5, 5, 11, 11, 2, 11, 11, 11, 11, 2, 2, 11, 11, 11, 11, 11, 11, 11, 11, 2, 11, 11, 11, 11, 11, 11, 11, 2, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 11, 11, 2, 11, 11, 11, 11, 2, 11, 11, 11, 11, 11, 2, 11, 2, 2, 2, 11, 11, 11, 11, 11, 11, 11, 2, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 54534, 0, 0, 0, 0, 54539, 54540, 0, 0, 0, 0, 0, 0, 0, 0, 54549, 0, 0, 0, 0, 0, 0, 0, 54557, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54586, 0, 0, 0, 0, 54591, 0, 0, 0, 0, 0, 54597, 0, 54599, 54600, 54601, 0, 0, 0, 0, 0, 0, 0, 54609, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +470: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 49134, 49170, 49202, 49248, 49266, 49276, 49288, 49310, 48580, 48605, 48631, 48652, 48679, 48738, 48753, 48789, 48815, 48841, 48866, 48884, 48935, 48950, 48986, 49033, 49054, 49072, 49134, 49170, 49202, 49248, 49266, 49276, 49288, 49310, 48580, 48605, 48631, 48652, 48679, 48738, 48753, 48789, 48815, 48841, 48866, 48884, 48935, 48950, 48986, 49033, 49054, 49072, 49134, 49170, 49202, 49248, 49266, 49276, 49288, 49310, 48580, 48605, 48631, 48652, 48679, 48738, 48753, 48789, 48815, 48841, 48866, 48884, 48935, 48950, 48986, 49033, 49054, 49072, 49134, 49170, 49202, 49248, 49266, 49276, 49288, 49310, 48580, 48605, 48631, 48652, 48679, 48738, 48753, 48789, 48815, 48841, 48866, 48884, 48935, 48950, 48986, 49033, 49054, 49072, 49134, 49170, 49202, 49248, 49266, 49276, 49288, 49310, 48580, 48605, 48631, 48652, 48679, 48738, 48753, 48789, 48815, 48841, 48866, 48884, 48935, 48950, 48986, 49033, 49054, 49072, 49134, 49170, 49202, 49248, 49266, 49276, 49288, 49310, 48580, 48605, 48631, 48652, 48679, 48738, 48753, 48789, 48815, 48841, 48866, 48884, 48935, 48950, 48986, 49033, 49054, 49072, 49134, 49170, 49202, 49248, 49266, 49276, 49288, 49310, 48819, 48845, 63013, 63013, 49462, 49463, 49464, 49466, 49467, 49471, 49473, 49474, 49475, 49477, 49478, 49480, 49481, 49482, 49483, 49484, 49489, 49474, 49492, 49496, 49497, 49498, 49499, 49500, 49502, 1548, 49462, 49463, 49464, 49466, 49467, 49471, 49473, 49474, 49475, 49477, 49478, 49480, 49481, 49482, 49483, 49484, 49489, 49492, 49492, 49496, 49497, 49498, 49499, 49500, 49502, 1544, 49467, 49474, 49477, 49498, 49489, 49484, 49462, 49463, 49464, 49466, 49467, 49471, 49473, 49474, 49475, 49477, 49478, 49480, 49481, 49482, 49483, 49484, 49489, 49474, 49492, 49496, 49497, 49498, 49499, 49500, 49502, 1548, 49462, 49463, 49464, 49466, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 5, 5, 5, 5, 5, 5, 5, 5, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 2, 2, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54950, 54951, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +471: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 49467, 49471, 49473, 49474, 49475, 49477, 49478, 49480, 49481, 49482, 49483, 49484, 49489, 49492, 49492, 49496, 49497, 49498, 49499, 49500, 49502, 1544, 49467, 49474, 49477, 49498, 49489, 49484, 49462, 49463, 49464, 49466, 49467, 49471, 49473, 49474, 49475, 49477, 49478, 49480, 49481, 49482, 49483, 49484, 49489, 49474, 49492, 49496, 49497, 49498, 49499, 49500, 49502, 1548, 49462, 49463, 49464, 49466, 49467, 49471, 49473, 49474, 49475, 49477, 49478, 49480, 49481, 49482, 49483, 49484, 49489, 49492, 49492, 49496, 49497, 49498, 49499, 49500, 49502, 1544, 49467, 49474, 49477, 49498, 49489, 49484, 49462, 49463, 49464, 49466, 49467, 49471, 49473, 49474, 49475, 49477, 49478, 49480, 49481, 49482, 49483, 49484, 49489, 49474, 49492, 49496, 49497, 49498, 49499, 49500, 49502, 1548, 49462, 49463, 49464, 49466, 49467, 49471, 49473, 49474, 49475, 49477, 49478, 49480, 49481, 49482, 49483, 49484, 49489, 49492, 49492, 49496, 49497, 49498, 49499, 49500, 49502, 1544, 49467, 49474, 49477, 49498, 49489, 49484, 49462, 49463, 49464, 49466, 49467, 49471, 49473, 49474, 49475, 49477, 49478, 49480, 49481, 49482, 49483, 49484, 49489, 49474, 49492, 49496, 49497, 49498, 49499, 49500, 49502, 1548, 49462, 49463, 49464, 49466, 49467, 49471, 49473, 49474, 49475, 49477, 49478, 49480, 49481, 49482, 49483, 49484, 49489, 49492, 49492, 49496, 49497, 49498, 49499, 49500, 49502, 1544, 49467, 49474, 49477, 49498, 49489, 49484, 49468, 49468, 63013, 63013, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 11, 5, 2, 2, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55244, 55245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +472: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6207, 6208, 6209, 6210, 6211, 6212, 6213, 6214, 6215, 6216, 6217, 6218, 6219, 6220, 6221, 6222, 6223, 6224, 6225, 6226, 6227, 6228, 6229, 6230, 6231, 6232, 6233, 6234, 6235, 6236, 6237, 6238, 6239, 6240, 6241, 6242, 6243, 6244, 6245, 6246, 6247, 6248, 6249, 6250, 6251, 6252, 6253, 6254, 6255, 6256, 6257, 6258, 6259, 6260, 6261, 6262, 6263, 6264, 6265, 6266, 6267, 6268, 6269, 6270, 6271, 6272, 6273, 6274, 6275, 6276, 6277, 6278, 6279, 6280, 6281, 6282, 6283, 6284, 6285, 6286, 6287, 6288, 6289, 6290, 6291, 6292, 6293, 6294, 6295, 6296, 6297, 6298, 6299, 6300, 6301, 6302, 6303, 6304, 6305, 6306, 6307, 6308, 6309, 6310, 6311, 6312, 6313, 6314, 6315, 6316, 6317, 6318, 6319, 6320, 6321, 6322, 6323, 6324, 6325, 6326, 6327, 6328, 6329, 6330, 6331, 6332, 6333, 6334, 6335, 6336, 6337, 6338, 6339, 6340, 6341, 6342, 6343, 6344, 6345, 6346, 6347, 6348, 6349, 6350, 6351, 6352, 6353, 6354, 6355, 6356, 6357, 6358, 6359, 6360, 6361, 6362, 6363, 6364, 6365, 6366, 6367, 6368, 6369, 6370, 6371, 6372, 6373, 6374, 6375, 6376, 6377, 6378, 6379, 6380, 6381, 6382, 6383, 6384, 6385, 6386, 6387, 6388, 6389, 6390, 6391, 6392, 6393, 6394, 6395, 6396, 6397, 6398, 6399, 6400, 6401, 6402, 6403, 6404, 6405, 6406, 6407, 6408, 6409, 6410, 6411, 6412, 6413, 6414, 6415, 6416, 6417, 6418, 6419, 6420, 6421, 6422, 6423, 6424, 6425, 6426, 6427, 6428, 6429, 6430, 6431, 6432, 6433, 6434, 6435, 6436, 6437, 6438, 6439, 6440, 6441, 6442, 6443, 6444, 6445, 6446, 6447, 6448, 6449, 6450, 6451, 6452, 6453, 6454, 6455, 6456, 6457, 6458, 6459, 6460, 6461, 6462, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +473: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6463, 6464, 6465, 6466, 6467, 6468, 6469, 6470, 6471, 6472, 6473, 6474, 6475, 6476, 6477, 6478, 6479, 6480, 6481, 6482, 6483, 6484, 6485, 6486, 6487, 6488, 6489, 6490, 6491, 6492, 6493, 6494, 6495, 6496, 6497, 6498, 6499, 6500, 6501, 6502, 6503, 6504, 6505, 6506, 6507, 6508, 6509, 6510, 6511, 6512, 6513, 6514, 6515, 6516, 6517, 6518, 6519, 6520, 6521, 6522, 6523, 6524, 6525, 6526, 6527, 6528, 6529, 6530, 6531, 6532, 6533, 6534, 6535, 6536, 6537, 6538, 6539, 6540, 6541, 6542, 6543, 6544, 6545, 6546, 6547, 6548, 6549, 6550, 6551, 6552, 6553, 6554, 6555, 6556, 6557, 6558, 6559, 6560, 6561, 6562, 6563, 6564, 6565, 6566, 6567, 6568, 6569, 6570, 6571, 6572, 6573, 6574, 6575, 6576, 6577, 6578, 6579, 6580, 6581, 6582, 6583, 6584, 6585, 6586, 6587, 6588, 6589, 6590, 6591, 6592, 6593, 6594, 6595, 6596, 6597, 6598, 6599, 6600, 6601, 6602, 6603, 6604, 6605, 6606, 6607, 6608, 6609, 6610, 6611, 6612, 6613, 6614, 6615, 6616, 6617, 6618, 6619, 6620, 6621, 6622, 6623, 6624, 6625, 6626, 6627, 6628, 6629, 6630, 6631, 6632, 6633, 6634, 6635, 6636, 6637, 6638, 6639, 6640, 6641, 6642, 6643, 6644, 6645, 6646, 6647, 6648, 6649, 6650, 6651, 6652, 6653, 6654, 6655, 6656, 6657, 6658, 6659, 6660, 6661, 6662, 6663, 6664, 6665, 6666, 6667, 6668, 6669, 6670, 6671, 6672, 6673, 6674, 6675, 6676, 6677, 6678, 6679, 6680, 6681, 6682, 6683, 6684, 6685, 6686, 6687, 6688, 6689, 6690, 6691, 6692, 6693, 6694, 6695, 6696, 6697, 6698, 6699, 6700, 6701, 6702, 6703, 6704, 6705, 6706, 6707, 6708, 6709, 6710, 6711, 6712, 6713, 6714, 6715, 6716, 6717, 6718, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +474: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 6719, 6720, 6721, 6722, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6723, 6724, 6725, 6726, 6727, 6728, 6729, 6730, 0, 6731, 6732, 6733, 6734, 6735, 6736, 6737, 6738, 6739, 6740, 6741, 6742, 6743, 6744, 0, 6745, 6746, 1149, 1150, 1151, 1152, 1153, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 0, 0, 0, 0, 0, 63013, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 2, 2, 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, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 55948, 55949, 55950, 55951, 55952, 55953, 55954, 55955, 55956, 55957, 55958, 55959, 55960, 55961, 55962, 0, 0, 0, 0, 0, 55968, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55984, 55985, 55986, 55987, 55988, 55989, 55990, 55991, 55992, 55993, 55994, 55995, 55996, 55997, 55998, 55999, 56000, 56001, 56002, 56003, 56004, 56005, 56006, 56007, 56008, 56009, 56010, 56011, 56012, 56013, 56014, 56015, 56016, 56017, 56018, 56019, 56020, 56021, 56022, 56023, 56024, 56025, 56026, 56027, 56028, 56029, 56030, 56031, 56032, 56033, 56034, 56035, 56036, 56037, 56038, 56039, 56040, 56041, 56042, 56043, 56044, 56045, 56046, 56047, 56048, 56049, 56050, 56051, 56052, 56053, 56054, 56055, 56056, 56057, 56058, 56059, 56060, 56061, 56062, 56063, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +480: 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 50018, 50019, 50020, 50021, 50022, 50023, 50024, 63013, 50026, 50027, 50028, 50029, 50030, 50031, 50032, 50033, 50034, 50035, 50036, 50037, 50038, 50039, 50040, 50041, 50042, 63013, 63013, 50045, 50046, 50047, 50048, 50049, 50050, 50051, 63013, 50053, 50054, 63013, 50056, 50057, 50058, 50059, 50060, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 4, 4, 4, 4, 4, 4, 4, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 4, 4, 4, 4, 4, 4, 4, 2, 4, 4, 2, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 57351, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57369, 57370, 0, 0, 0, 0, 0, 0, 0, 57378, 0, 0, 57381, 0, 0, 0, 0, 0, 57387, 57388, 57389, 57390, 57391, 57392, 57393, 57394, 57395, 57396, 57397, 57398, 57399, 57400, 57401, 57402, 57403, 57404, 57405, 57406, 57407, 57408, 57409, 57410, 57411, 57412, 57413, 57414, 57415, 57416, 57417, 57418, 57419, 57420, 57421, 57422, 57423, 57424, 57425, 57426, 57427, 57428, 57429, 57430, 57431, 57432, 57433, 57434, 57435, 57436, 57437, 57438, 57439, 57440, 57441, 57442, 57443, 57444, 57445, 57446, 57447, 57448, 57449, 57450, 57451, 57452, 57453, 57454, 57455, 57456, 57457, 57458, 57459, 57460, 57461, 57462, 57463, 57464, 57465, 57466, 57467, 57468, 57469, 57470, 57471, 57472, 57473, 57474, 57475, 57476, 57477, 57478, 57479, 57480, 57481, 57482, 57483, 57484, 57485, 57486, 57487, 57488, 57489, 57490, 57491, 57492, 57493, 57494, 57495, 57496, 57497, 57498, 57499, 57500, 57501, 57502, 57503, 57504, 57505, 57506, 57507, 57508, 57509, 57510, 57511, 57512, 57513, 57514, 57515, 57516, 57517, 57518, 57519, 57520, 57521, 57522, 57523, 57524, 57525, 57526, 57527, 57528, 57529, 57530, 57531, 57532, 57533, 57534, 57535, 57536, 57537, 57538, 57539, 57540, 57541, 57542, 57543, 57544, 57545, 57546, 57547, 57548, 57549, 57550, 57551, 57552, 57553, 57554, 57555, 57556, 57557, 57558, 57559, 57560, 57561, 57562, 57563, 57564, 57565, 57566, 57567, 57568, 57569, 57570, 57571, 57572, 57573, 57574, 57575, 57576, 57577, 57578, 57579, 57580, 57581, 57582, 57583, 57584, 57585, 57586, 57587, 57588, 57589, 57590, 57591, 57592, 57593, 57594, 57595, 57596, 57597, 57598, 57599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +488: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 56459, 56460, 56461, 56462, 56463, 56464, 56465, 56466, 56467, 56468, 56469, 56470, 56471, 56472, 56473, 56474, 56475, 56476, 56477, 56478, 56479, 56480, 56481, 56482, 56483, 56484, 56485, 56486, 56487, 56488, 56489, 56490, 56491, 56492, 56493, 56494, 56495, 56496, 56497, 56498, 56499, 56500, 56501, 56502, 56503, 56504, 56505, 56506, 56507, 56508, 56509, 56510, 56511, 56512, 56513, 56514, 56515, 56516, 56517, 56518, 56519, 56520, 56521, 56522, 56523, 56524, 56525, 56526, 56527, 56528, 56529, 56530, 56531, 56532, 56533, 56534, 56535, 56536, 56537, 56538, 56539, 56540, 56541, 56542, 56543, 56544, 56545, 56546, 56547, 56548, 56549, 56550, 56551, 56552, 56553, 56554, 56555, 56556, 56557, 56558, 56559, 56560, 56561, 56562, 56563, 56564, 56565, 56566, 56567, 56568, 56569, 56570, 56571, 56572, 56573, 56574, 56575, 56576, 56577, 56578, 56579, 56580, 56581, 56582, 56583, 56584, 56585, 56586, 56587, 56588, 56589, 56590, 56591, 56592, 56593, 56594, 56595, 56596, 56597, 56598, 56599, 56600, 56601, 56602, 56603, 56604, 56605, 56606, 56607, 56608, 56609, 56610, 56611, 56612, 56613, 56614, 56615, 56616, 56617, 56618, 56619, 56620, 56621, 56622, 56623, 56624, 56625, 56626, 56627, 56628, 56629, 56630, 56631, 56632, 56633, 56634, 56635, 56636, 56637, 56638, 56639, 56640, 56641, 56642, 56643, 56644, 56645, 56646, 56647, 56648, 56649, 56650, 56651, 56652, 56653, 56654, 56655, 63013, 63013, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 0, 0, 0, 0, 0, 0, 0, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 59589, 59590, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59607, 59608, 59609, 59610, 59611, 59612, 59613, 59614, 59615, 59616, 59617, 59618, 59619, 59620, 59621, 59622, 59623, 59624, 59625, 59626, 59627, 59628, 59629, 59630, 59631, 59632, 59633, 59634, 59635, 59636, 59637, 59638, 59639, 59640, 59641, 59642, 59643, 59644, 59645, 59646, 59647, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +489: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 56656, 56657, 56658, 56659, 56660, 56661, 56662, 56663, 56664, 56665, 56666, 56667, 56668, 56669, 56670, 56671, 56672, 56673, 56674, 56675, 56676, 56677, 56678, 56679, 56680, 56681, 56682, 56683, 56684, 56685, 56686, 56687, 56688, 56689, 56656, 56657, 56658, 56659, 56660, 56661, 56662, 56663, 56664, 56665, 56666, 56667, 56668, 56669, 56670, 56671, 56672, 56673, 56674, 56675, 56676, 56677, 56678, 56679, 56680, 56681, 56682, 56683, 56684, 56685, 56686, 56687, 56688, 56689, 0, 0, 0, 0, 0, 0, 0, 63013, 63013, 63013, 63013, 63013, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 63013, 63013, 63013, 63013, 613, 628, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 189, 189, 189, 191, 192, 193, 190, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 59723, 59724, 59725, 59726, 59727, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59738, 59739, 59740, 59741, 0, 0, 59744, 59745, 59746, 59747, 59748, 59749, 59750, 59751, 59752, 59753, 59754, 59755, 59756, 59757, 59758, 59759, 59760, 59761, 59762, 59763, 59764, 59765, 59766, 59767, 59768, 59769, 59770, 59771, 59772, 59773, 59774, 59775, 59776, 59777, 59778, 59779, 59780, 59781, 59782, 59783, 59784, 59785, 59786, 59787, 59788, 59789, 59790, 59791, 59792, 59793, 59794, 59795, 59796, 59797, 59798, 59799, 59800, 59801, 59802, 59803, 59804, 59805, 59806, 59807, 59808, 59809, 59810, 59811, 59812, 59813, 59814, 59815, 59816, 59817, 59818, 59819, 59820, 59821, 59822, 59823, 59824, 59825, 59826, 59827, 59828, 59829, 59830, 59831, 59832, 59833, 59834, 59835, 59836, 59837, 59838, 59839, 59840, 59841, 59842, 59843, 59844, 59845, 59846, 59847, 59848, 59849, 59850, 59851, 59852, 59853, 59854, 59855, 59856, 59857, 59858, 59859, 59860, 59861, 59862, 59863, 59864, 59865, 59866, 59867, 59868, 59869, 59870, 59871, 59872, 59873, 59874, 59875, 59876, 59877, 59878, 59879, 59880, 59881, 59882, 59883, 59884, 59885, 59886, 59887, 59888, 59889, 59890, 59891, 59892, 59893, 59894, 59895, 59896, 59897, 59898, 59899, 59900, 59901, 59902, 59903, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +494: 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 50312, 50314, 50338, 50356, 63013, 50484, 50372, 50345, 50407, 50499, 50436, 50457, 50464, 50468, 50390, 50411, 50419, 50401, 50431, 50371, 50391, 50330, 50331, 50346, 50357, 50402, 50408, 50412, 50313, 50469, 50420, 50430, 63013, 50314, 50338, 63013, 50478, 63013, 63013, 50345, 63013, 50499, 50436, 50457, 50464, 50468, 50390, 50411, 50419, 50401, 50431, 63013, 50391, 50330, 50331, 50346, 63013, 50402, 63013, 50412, 63013, 63013, 63013, 63013, 63013, 63013, 50338, 63013, 63013, 63013, 63013, 50345, 63013, 50499, 63013, 50457, 63013, 50468, 50390, 50411, 63013, 50401, 50431, 63013, 50391, 63013, 63013, 50346, 63013, 50402, 63013, 50412, 63013, 50469, 63013, 50430, 63013, 50314, 50338, 63013, 50478, 63013, 63013, 50345, 50407, 50499, 50436, 63013, 50464, 50468, 50390, 50411, 50419, 50401, 50431, 63013, 50391, 50330, 50331, 50346, 63013, 50402, 50408, 50412, 50313, 63013, 50420, 63013, 50312, 50314, 50338, 50356, 50478, 50484, 50372, 50345, 50407, 50499, 63013, 50457, 50464, 50468, 50390, 50411, 50419, 50401, 50431, 50371, 50391, 50330, 50331, 50346, 50357, 50402, 50408, 50412, 63013, 63013, 63013, 63013, 63013, 50314, 50338, 50356, 63013, 50484, 50372, 50345, 50407, 50499, 63013, 50457, 50464, 50468, 50390, 50411, 50419, 50401, 50431, 50371, 50391, 50330, 50331, 50346, 50357, 50402, 50408, 50412, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 1275, 1276, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 5, 5, 5, 5, 2, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 2, 5, 5, 2, 5, 2, 2, 5, 2, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 2, 5, 5, 5, 5, 2, 5, 2, 5, 2, 2, 2, 2, 2, 2, 5, 2, 2, 2, 2, 5, 2, 5, 2, 5, 2, 5, 5, 5, 2, 5, 5, 2, 5, 2, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5, 5, 2, 5, 2, 2, 5, 5, 5, 5, 2, 5, 5, 5, 5, 5, 5, 5, 2, 5, 5, 5, 5, 2, 5, 5, 5, 5, 2, 5, 2, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 2, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 2, 2, 2, 2, 2, 5, 5, 5, 2, 5, 5, 5, 5, 5, 2, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 60932, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60960, 0, 0, 60963, 0, 60965, 60966, 0, 60968, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60979, 0, 0, 0, 0, 60984, 0, 60986, 0, 60988, 60989, 60990, 60991, 60992, 60993, 0, 60995, 60996, 60997, 60998, 0, 61000, 0, 61002, 0, 61004, 0, 0, 0, 61008, 0, 0, 61011, 0, 61013, 61014, 0, 61016, 0, 61018, 0, 61020, 0, 61022, 0, 61024, 0, 0, 61027, 0, 61029, 61030, 0, 0, 0, 0, 61035, 0, 0, 0, 0, 0, 0, 0, 61043, 0, 0, 0, 0, 61048, 0, 0, 0, 0, 61053, 0, 61055, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61066, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61084, 61085, 61086, 61087, 61088, 0, 0, 0, 61092, 0, 0, 0, 0, 0, 61098, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61116, 61117, 61118, 61119, 61120, 61121, 61122, 61123, 61124, 61125, 61126, 61127, 61128, 61129, 61130, 61131, 61132, 61133, 61134, 61135, 61136, 61137, 61138, 61139, 61140, 61141, 61142, 61143, 61144, 61145, 61146, 61147, 61148, 61149, 61150, 61151, 61152, 61153, 61154, 61155, 61156, 61157, 61158, 61159, 61160, 61161, 61162, 61163, 61164, 61165, 61166, 61167, 0, 0, 61170, 61171, 61172, 61173, 61174, 61175, 61176, 61177, 61178, 61179, 61180, 61181, 61182, 61183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +496: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4551, 4552, 4553, 4554, 4555, 4556, 4557, 4558, 4559, 4560, 4561, 4562, 4563, 4564, 4565, 4566, 4567, 4568, 4569, 4570, 4571, 4572, 4573, 4574, 4575, 4576, 4577, 4578, 4579, 4580, 4581, 4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4591, 4592, 4593, 4594, 63013, 63013, 63013, 63013, 4595, 4596, 4597, 4598, 4599, 4600, 4601, 4602, 4603, 4604, 4605, 4606, 4607, 4608, 4609, 4610, 4611, 4612, 4613, 4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625, 4626, 4627, 4628, 4629, 4630, 4631, 4632, 4633, 4634, 4635, 4636, 4637, 4638, 4639, 4640, 4641, 4642, 4643, 4644, 4645, 4646, 4647, 4648, 4649, 4650, 4651, 4652, 4653, 4654, 4655, 4656, 4657, 4658, 4659, 4660, 4661, 4662, 4663, 4664, 4665, 4666, 4667, 4668, 4669, 4670, 4671, 4672, 4673, 4674, 4675, 4676, 4677, 4678, 4679, 4680, 4681, 4682, 4683, 4684, 4685, 4686, 4687, 4688, 4689, 4690, 4691, 4692, 4693, 4694, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 4695, 4696, 4697, 4698, 4699, 4700, 4701, 4702, 4703, 4704, 4705, 4706, 4707, 4708, 4709, 63013, 63013, 4710, 4711, 4712, 4713, 4714, 4715, 4716, 4717, 4718, 4719, 4720, 4721, 4722, 4723, 4724, 63013, 4725, 4726, 4727, 4728, 4729, 4730, 4731, 4732, 4733, 4734, 4735, 4736, 4737, 4738, 4739, 63013, 4740, 4741, 4742, 4743, 4744, 4745, 4746, 4747, 4748, 4749, 4750, 4751, 4752, 4753, 4754, 4755, 4756, 4757, 4758, 4759, 4760, 4761, 4762, 4763, 4764, 4765, 4766, 4767, 4768, 4769, 4770, 4771, 4772, 4773, 4774, 4775, 4776, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 61484, 61485, 61486, 61487, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61588, 61589, 61590, 61591, 61592, 61593, 61594, 61595, 61596, 61597, 61598, 61599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61615, 61616, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61632, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61686, 61687, 61688, 61689, 61690, 61691, 61692, 61693, 61694, 61695, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +497: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 3, 2, 2, 3, 3, 2, 2, 7, 2, 2, 2, 3, 3, 4, 3, 4, 1, 2, 3, 6, 8, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 7229, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7229, 7229, 63013, 63013, 63013, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 889, 48631, 49072, 48631, 49266, 63013, 48580, 48605, 48631, 48652, 48679, 48738, 48753, 48789, 48815, 48841, 48866, 48884, 48935, 48950, 48986, 49033, 49054, 49072, 49134, 49170, 49202, 49248, 49266, 49276, 49288, 49310, 48789, 48935, 49134, 49134, 49033, 49266, 48580, 48605, 48631, 48652, 48679, 48738, 48753, 48789, 48815, 48841, 48866, 48884, 48935, 48950, 48986, 49033, 49054, 49072, 49134, 49170, 49202, 49248, 49266, 49276, 49288, 49310, 48935, 48935, 63013, 63013, 63013, 63013, 48580, 48605, 48631, 48652, 48679, 48738, 48753, 48789, 48815, 48841, 48866, 48884, 48935, 48950, 48986, 49033, 49054, 49072, 49134, 49170, 49202, 49248, 49266, 49276, 49288, 49310, 49033, 48815, 49033, 49134, 48580, 49266, 48652, 48631, 48631, 48738, 48815, 48950, 48950, 48986, 49134, 49202, 49248, 7232, 7231, 7231, 7233, 7237, 7234, 7236, 7231, 7235, 7230, 48652, 48789, 48789, 48789, 48884, 49134, 49202, 49248, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 2567, 2568, 2569, 2570, 2571, 2572, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 2584, 2585, 2586, 2587, 2588, 2589, 2590, 2591, 2592, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6, 6, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 12, 12, 12, 12, 2, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 20, 20, 2, 2, 2, 2, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 631, 546, 546, 546, 546, 546, 546, 546, 546, 546, 546, 0, 0, 61709, 61710, 61711, 48580, 48605, 48631, 48652, 48679, 48738, 48753, 48789, 48815, 48841, 48866, 48884, 48935, 48950, 48986, 49033, 49054, 49072, 49134, 49170, 49202, 49248, 49266, 49276, 49288, 49310, 49134, 0, 0, 48652, 49310, 61743, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49248, 49248, 48652, 49134, 49033, 48631, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48631, 48652, 61804, 61805, 61806, 61807, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48631, 48580, 48580, 48605, 48631, 48841, 48884, 48986, 49072, 48652, 48679, 48753, 48866, 48986, 49033, 49134, 48652, 48950, 48866, 48866, 48866, 631, 631, 7231, 7229, 7231, 0, 48631, 48652, 48815, 48986, 48789, 48789, 48986, 61869, 61870, 61871, 61872, 61873, 61874, 61875, 61876, 61877, 61878, 61879, 61880, 61881, 61882, 61883, 61884, 61885, 61886, 61887, 61888, 61889, 61890, 61891, 61892, 61893, 61894, 61895, 61896, 61897, 61898, 61899, 61900, 61901, 61902, 61903, 61904, 61905, 61906, 61907, 61908, 61909, 61910, 61911, 61912, 61913, 61914, 61915, 61916, 61917, 61918, 61919, 61920, 61921, 61922, 61923, 61924, 61925, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 29, 29, 29, 29, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 28, 29, 29, 29, 28, 28, 28, 28, 28, 0, 28, 28, 28, 28, 29, 29, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 890, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48986, 48679, 0, 49266, 0, 0, 49134, 608, 0, 0, 48652, 0, 0, 0, 7230, 7230, 631, 49033, 7229, 0, 0, 49072, 521, 49134, 49248, 48652, 48652, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 0, 32, 0, 0, 32, 32, 0, 0, 32, 0, 0, 0, 32, 32, 32, 32, 32, 0, 0, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 29, 0, 29, 0, 0, 29, 28, 0, 0, 28, 0, 0, 0, 28, 28, 28, 29, 28, 0, 0, 29, 28, 28, 29, 29, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48884, 48679, 0, 0, 0, 0, 0, 0, 0, 0, 521, 0, 0, 0, 0, 0, 7231, 0, 49033, 0, 0, 0, 49072, 49134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 32, 0, 32, 0, 0, 0, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 29, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 28, 0, 29, 0, 0, 0, 29, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48679, 48884, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48631, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49134, 48679, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49072, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +498: 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 57077, 57057, 57058, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 34435, 48117, 34744, 57066, 14377, 13921, 21028, 36490, 20577, 43780, 38472, 24993, 31007, 18054, 45302, 40398, 11131, 47162, 33999, 14586, 34004, 11434, 41788, 36948, 9318, 42558, 33117, 44032, 48530, 47136, 44134, 46814, 48288, 12226, 21223, 22793, 17579, 26679, 44077, 44950, 33842, 15897, 43671, 29546, 63013, 63013, 63013, 63013, 889, 889, 889, 889, 889, 889, 889, 889, 889, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 12681, 22656, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 28, 28, 28, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 28, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 57053, 57057, 0, 61955, 61956, 61957, 61958, 61959, 61960, 61961, 61962, 61963, 61964, 61965, 61966, 61967, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62012, 62013, 62014, 62015, 8208, 33117, 14377, 7375, 13017, 12226, 12639, 34077, 7786, 62025, 62026, 62027, 62028, 62029, 62030, 62031, 0, 0, 62034, 62035, 62036, 62037, 62038, 62039, 62040, 62041, 62042, 62043, 62044, 62045, 62046, 62047, 62048, 62049, 62050, 62051, 62052, 62053, 62054, 62055, 62056, 62057, 62058, 62059, 62060, 62061, 62062, 62063, 62064, 62065, 62066, 62067, 62068, 62069, 62070, 62071, 62072, 62073, 62074, 62075, 62076, 62077, 62078, 62079, 62080, 62081, 62082, 62083, 62084, 62085, 62086, 62087, 62088, 62089, 62090, 62091, 62092, 62093, 62094, 62095, 62096, 62097, 62098, 62099, 62100, 62101, 62102, 62103, 62104, 62105, 62106, 62107, 62108, 62109, 62110, 62111, 62112, 62113, 62114, 62115, 62116, 62117, 62118, 62119, 62120, 62121, 62122, 62123, 62124, 62125, 62126, 62127, 62128, 62129, 62130, 62131, 62132, 62133, 62134, 62135, 62136, 62137, 62138, 62139, 62140, 62141, 62142, 62143, 62144, 62145, 62146, 62147, 62148, 62149, 62150, 62151, 62152, 62153, 62154, 62155, 62156, 62157, 62158, 62159, 62160, 62161, 62162, 62163, 62164, 62165, 62166, 62167, 62168, 62169, 62170, 62171, 62172, 62173, 62174, 62175, 62176, 62177, 62178, 62179, 62180, 62181, 62182, 62183, 62184, 62185, 62186, 62187, 62188, 62189, 62190, 62191, 62192, 62193, 62194, 62195, 62196, 62197, 62198, 62199, 62200, 62201, 62202, 62203, 62204, 62205, 62206, 62207, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 33, 33, 28, 36, 33, 33, 34, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 34, 33, 33, 33, 33, 33, 33, 36, 35, 33, 34, 35, 34, 33, 34, 33, 33, 33, 33, 33, 34, 35, 33, 33, 33, 33, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 33, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 890, 890, 890, 890, 890, 890, 890, 890, 890, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 2, 2, 2, 2, 2, 2, 2, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 33, 33, 33, 33, 33, 33, 33, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +499: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4777, 4778, 4779, 4780, 4781, 4782, 4783, 4784, 4785, 4786, 4787, 4788, 4789, 4790, 4791, 4792, 4793, 4794, 4795, 4796, 4797, 4798, 4799, 4800, 4801, 4802, 4803, 4804, 4805, 4806, 4807, 4808, 4809, 4810, 4811, 4812, 4813, 4814, 4815, 4816, 4817, 4818, 4819, 4820, 4821, 4822, 4823, 4824, 4825, 4826, 4827, 4828, 4829, 4830, 4831, 4832, 4833, 4834, 4835, 4836, 4837, 4838, 4839, 4840, 4841, 4842, 4843, 4844, 4845, 4846, 4847, 4848, 4849, 4850, 4851, 4852, 4853, 4854, 4855, 4856, 4857, 4858, 4859, 4860, 4861, 4862, 4863, 4864, 4865, 4866, 4867, 4868, 4869, 4870, 4871, 4872, 4873, 4874, 4875, 4876, 4877, 4878, 4879, 4880, 4881, 4882, 4883, 4884, 4885, 4886, 4887, 4888, 4889, 4890, 4891, 4892, 4893, 4894, 4895, 4896, 4897, 4898, 4899, 4900, 4901, 4902, 4903, 4904, 4905, 4906, 4907, 4908, 4909, 4910, 4911, 4912, 4913, 4914, 4915, 4916, 4917, 4918, 4919, 4920, 4921, 4922, 4923, 4924, 4925, 4926, 4927, 4928, 4929, 4930, 4931, 4932, 4933, 4934, 4935, 4936, 4937, 4938, 4939, 4940, 4941, 4942, 4943, 4944, 4945, 4946, 4947, 4948, 4949, 4950, 4951, 4952, 4953, 4954, 4955, 4956, 4957, 4958, 4959, 4960, 4961, 4962, 4963, 4964, 4965, 4966, 4967, 4968, 4969, 4970, 4971, 4972, 4973, 4974, 4975, 4976, 4977, 4978, 4979, 4980, 4981, 4982, 4983, 4984, 4985, 4986, 4987, 4988, 4989, 4990, 4991, 4992, 4993, 4994, 4995, 4996, 4997, 4998, 4999, 5000, 5001, 5002, 5003, 5004, 5005, 5006, 5007, 5008, 5009, 5010, 5011, 5012, 5013, 5014, 5015, 5016, 5017, 5018, 5019, 5020, 5021, 5022, 5023, 5024, 5025, 5026, 5027, 5028, 5029, 5030, 5031, 5032, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +500: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5033, 5034, 5035, 5036, 5037, 5038, 5039, 5040, 5041, 5042, 5043, 5044, 5045, 5046, 5047, 5048, 5049, 5050, 5051, 5052, 5053, 5054, 5055, 5056, 5057, 5058, 5059, 5060, 5061, 5062, 5063, 5064, 5065, 5066, 5067, 5068, 5069, 5070, 5071, 5072, 5073, 5074, 5075, 5076, 5077, 5078, 5079, 5080, 5081, 5082, 5083, 5084, 5085, 5086, 5087, 5088, 5089, 5090, 5091, 5092, 5093, 5094, 5095, 5096, 5097, 5098, 5099, 5100, 5101, 5102, 5103, 5104, 5105, 5106, 5107, 5108, 5109, 5110, 5111, 5112, 5113, 5114, 5115, 5116, 5117, 5118, 5119, 5120, 5121, 5122, 5123, 5124, 5125, 5126, 5127, 5128, 5129, 5130, 5131, 5132, 5133, 5134, 5135, 5136, 5137, 5138, 5139, 5140, 5141, 5142, 5143, 5144, 5145, 5146, 5147, 5148, 5149, 5150, 5151, 5152, 5153, 5154, 5155, 5156, 5157, 5158, 5159, 5160, 5161, 5162, 5163, 5164, 5165, 5166, 5167, 5168, 5169, 5170, 5171, 5172, 5173, 5174, 5175, 5176, 5177, 5178, 5179, 5180, 5181, 5182, 5183, 5184, 5185, 5186, 5187, 5188, 5189, 5190, 5191, 5192, 5193, 5194, 5195, 5196, 5197, 5198, 5199, 5200, 5201, 5202, 5203, 5204, 5205, 5206, 5207, 5208, 5209, 5210, 5211, 5212, 5213, 5214, 5215, 5216, 5217, 5218, 5219, 5220, 5221, 5222, 5223, 5224, 5225, 5226, 5227, 5228, 5229, 5230, 5231, 5232, 5233, 5234, 5235, 5236, 5237, 5238, 5239, 5240, 5241, 5242, 5243, 5244, 5245, 5246, 5247, 5248, 5249, 5250, 5251, 5252, 5253, 5254, 5255, 5256, 5257, 5258, 5259, 5260, 5261, 5262, 5263, 5264, 5265, 5266, 5267, 5268, 5269, 5270, 5271, 5272, 5273, 5274, 5275, 5276, 5277, 5278, 5279, 5280, 5281, 5282, 5283, 5284, 5285, 5286, 5287, 5288, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +501: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5289, 5290, 5291, 5292, 5293, 5294, 5295, 5296, 5297, 5298, 5299, 5300, 5301, 5302, 5303, 5304, 5305, 5306, 5307, 5308, 5309, 5310, 5311, 5312, 5313, 5314, 5315, 5316, 5317, 5318, 5319, 5320, 5321, 5322, 5323, 5324, 5325, 5326, 5327, 5328, 5329, 5330, 5331, 5332, 5333, 5334, 5335, 5336, 5337, 5338, 5339, 5340, 5341, 5342, 5343, 5344, 5345, 5346, 5347, 5348, 5349, 5350, 5351, 5352, 5353, 5354, 5355, 5356, 5357, 5358, 5359, 5360, 5361, 5362, 5363, 5364, 5365, 5366, 5367, 5368, 5369, 5370, 5371, 5372, 5373, 5374, 5375, 5376, 5377, 5378, 5379, 5380, 5381, 5382, 5383, 5384, 5385, 5386, 5387, 5388, 5389, 5390, 5391, 5392, 5393, 5394, 5395, 5396, 5397, 5398, 5399, 5400, 5401, 5402, 5403, 5404, 5405, 5406, 5407, 5408, 5409, 5410, 5411, 5412, 5413, 5414, 5415, 5416, 5417, 5418, 5419, 5420, 5421, 5422, 5423, 5424, 5425, 5426, 5427, 5428, 5429, 5430, 5431, 5432, 5433, 5434, 5435, 5436, 5437, 5438, 5439, 5440, 5441, 5442, 5443, 5444, 5445, 5446, 5447, 5448, 5449, 5450, 5451, 5452, 5453, 5454, 5455, 5456, 5457, 5458, 5459, 5460, 5461, 5462, 5463, 5464, 5465, 5466, 5467, 5468, 5469, 5470, 5471, 5472, 5473, 5474, 5475, 5476, 5477, 5478, 5479, 5480, 5481, 5482, 5483, 5484, 5485, 5486, 5487, 5488, 5489, 5490, 5491, 5492, 5493, 5494, 5495, 5496, 5497, 5498, 5499, 5500, 5501, 5502, 5503, 5504, 5505, 5506, 5507, 5508, 5509, 5510, 5511, 5512, 5513, 5514, 5515, 5516, 5517, 5518, 5519, 5520, 5521, 5522, 5523, 5524, 5525, 5526, 5527, 5528, 5529, 5530, 5531, 5532, 5533, 5534, 5535, 5536, 5537, 5538, 5539, 5540, 5541, 5542, 5543, 5544, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +502: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5627, 5628, 5629, 5630, 5631, 5632, 5633, 5634, 5635, 5636, 5637, 5638, 5639, 5640, 5641, 5642, 5643, 5644, 5645, 5646, 5647, 5648, 5649, 5650, 5651, 5652, 5653, 5654, 5655, 5656, 5657, 5658, 5659, 5660, 5661, 5662, 5663, 5664, 5665, 5666, 5667, 5668, 5669, 5670, 5671, 5672, 5673, 5674, 5675, 5676, 5677, 5678, 5679, 5680, 5681, 5682, 5683, 5684, 5685, 5686, 5687, 5688, 5689, 5690, 5691, 5692, 5693, 5694, 5695, 5696, 5697, 5698, 5699, 5700, 5701, 5702, 5703, 5704, 5705, 5706, 5707, 5708, 5709, 5710, 5711, 5712, 5713, 5714, 5715, 5716, 5717, 5718, 5719, 5720, 5721, 5722, 5723, 5724, 5725, 5726, 5727, 5728, 5729, 5730, 5731, 5732, 5733, 5734, 5735, 5736, 5737, 5738, 5739, 5740, 5741, 5742, 5743, 5744, 5745, 5746, 5747, 5748, 5749, 5750, 5751, 5752, 5753, 5754, 5755, 5756, 5757, 5758, 5759, 5760, 5761, 5762, 5763, 5764, 5765, 5766, 5767, 5768, 5769, 5770, 5771, 5772, 5773, 5774, 5775, 5776, 5777, 5778, 5779, 5780, 5781, 5782, 5783, 5784, 5785, 5786, 5787, 5788, 5789, 5790, 5791, 5792, 5793, 5794, 5795, 5796, 5797, 5798, 5799, 5800, 5801, 5802, 5803, 5804, 5805, 5806, 5807, 5808, 5809, 5810, 5811, 5812, 5813, 5814, 5815, 5816, 5817, 5818, 5819, 5820, 5821, 5822, 5823, 5824, 5825, 5826, 5827, 5828, 5829, 5830, 5831, 5832, 5833, 5834, 5835, 5836, 5837, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 5838, 5839, 5840, 5841, 5842, 5843, 5844, 5845, 5846, 5847, 5848, 5849, 5850, 63013, 63013, 63013, 5851, 5852, 5853, 5854, 5855, 5856, 5857, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 63187, 63188, 63189, 63190, 63191, 63192, 63193, 63194, 63195, 63196, 63197, 63198, 63199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63213, 63214, 63215, 0, 0, 0, 0, 0, 0, 0, 63223, 63224, 63225, 63226, 63227, 63228, 63229, 63230, 63231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +503: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5858, 5859, 5860, 5861, 5862, 5863, 5864, 5865, 5866, 5867, 5868, 5869, 5870, 5871, 5872, 5873, 5874, 5875, 5876, 5877, 5878, 5879, 5880, 5881, 5882, 5883, 5884, 5885, 5886, 5887, 5888, 5889, 5890, 5891, 5892, 5893, 5894, 5895, 5896, 5897, 5898, 5899, 5900, 5901, 5902, 5903, 5904, 5905, 5906, 5907, 5908, 5909, 5910, 5911, 5912, 5913, 5914, 5915, 5916, 5917, 5918, 5919, 5920, 5921, 5922, 5923, 5924, 5925, 5926, 5927, 5928, 5929, 5930, 5931, 5932, 5933, 5934, 5935, 5936, 5937, 5938, 5939, 5940, 5941, 5942, 5943, 5944, 5945, 5946, 5947, 5948, 5949, 5950, 5951, 5952, 5953, 5954, 5955, 5956, 5957, 5958, 5959, 5960, 5961, 5962, 5963, 5964, 5965, 5966, 5967, 5968, 5969, 5970, 5971, 5972, 5973, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 5974, 5975, 5976, 5977, 5978, 5979, 5980, 5981, 5982, 5983, 5984, 5985, 5986, 5987, 5988, 5989, 5990, 5991, 5992, 5993, 5994, 5995, 5996, 5997, 5998, 5999, 6000, 6001, 6002, 6003, 6004, 6005, 6006, 6007, 6008, 6009, 6010, 6011, 6012, 6013, 6014, 6015, 6016, 6017, 6018, 6019, 6020, 6021, 6022, 6023, 6024, 6025, 6026, 6027, 6028, 6029, 6030, 6031, 6032, 6033, 6034, 6035, 6036, 6037, 6038, 6039, 6040, 6041, 6042, 6043, 6044, 6045, 6046, 6047, 6048, 6049, 6050, 6051, 6052, 6053, 6054, 6055, 6056, 6057, 6058, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 63348, 63349, 63350, 63351, 63352, 63353, 63354, 63355, 63356, 63357, 63358, 63359, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63445, 63446, 63447, 63448, 63449, 63450, 63451, 63452, 63453, 63454, 63455, 63456, 63457, 63458, 63459, 63460, 63461, 63462, 63463, 63464, 63465, 63466, 63467, 63468, 63469, 63470, 63471, 63472, 63473, 63474, 63475, 63476, 63477, 63478, 63479, 63480, 63481, 63482, 63483, 63484, 63485, 63486, 63487, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +504: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6059, 6060, 6061, 6062, 6063, 6064, 6065, 6066, 6067, 6068, 6069, 6070, 63013, 63013, 63013, 63013, 6071, 6072, 6073, 6074, 6075, 6076, 6077, 6078, 6079, 6080, 6081, 6082, 6083, 6084, 6085, 6086, 6087, 6088, 6089, 6090, 6091, 6092, 6093, 6094, 6095, 6096, 6097, 6098, 6099, 6100, 6101, 6102, 6103, 6104, 6105, 6106, 6107, 6108, 6109, 6110, 6111, 6112, 6113, 6114, 6115, 6116, 6117, 6118, 6119, 6120, 6121, 6122, 6123, 6124, 6125, 6126, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 6127, 6128, 6129, 6130, 6131, 6132, 6133, 6134, 6135, 6136, 63013, 63013, 63013, 63013, 63013, 63013, 6137, 6138, 6139, 6140, 6141, 6142, 6143, 6144, 6145, 6146, 6147, 6148, 6149, 6150, 6151, 6152, 6153, 6154, 6155, 6156, 6157, 6158, 6159, 6160, 6161, 6162, 6163, 6164, 6165, 6166, 6167, 6168, 6169, 6170, 6171, 6172, 6173, 6174, 6175, 6176, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 6177, 6178, 6179, 6180, 6181, 6182, 6183, 6184, 6185, 6186, 6187, 6188, 6189, 6190, 6191, 6192, 6193, 6194, 6195, 6196, 6197, 6198, 6199, 6200, 6201, 6202, 6203, 6204, 6205, 6206, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63500, 63501, 63502, 63503, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63560, 63561, 63562, 63563, 63564, 63565, 63566, 63567, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63578, 63579, 63580, 63581, 63582, 63583, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63624, 63625, 63626, 63627, 63628, 63629, 63630, 63631, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63662, 63663, 63664, 63665, 63666, 63667, 63668, 63669, 63670, 63671, 63672, 63673, 63674, 63675, 63676, 63677, 63678, 63679, 63680, 63681, 63682, 63683, 63684, 63685, 63686, 63687, 63688, 63689, 63690, 63691, 63692, 63693, 63694, 63695, 63696, 63697, 63698, 63699, 63700, 63701, 63702, 63703, 63704, 63705, 63706, 63707, 63708, 63709, 63710, 63711, 63712, 63713, 63714, 63715, 63716, 63717, 63718, 63719, 63720, 63721, 63722, 63723, 63724, 63725, 63726, 63727, 63728, 63729, 63730, 63731, 63732, 63733, 63734, 63735, 63736, 63737, 63738, 63739, 63740, 63741, 63742, 63743, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +505: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 5545, 5546, 5547, 5548, 5549, 5550, 5551, 5552, 5553, 5554, 5555, 5556, 5557, 5558, 5559, 63013, 5560, 5561, 5562, 5563, 5564, 5565, 5566, 5567, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 5568, 63013, 63013, 5569, 5570, 5571, 5572, 5573, 5574, 5575, 5576, 5577, 5578, 5579, 5580, 63013, 5581, 5582, 5583, 5584, 5585, 5586, 5587, 5588, 5589, 5590, 5591, 5592, 63013, 63013, 63013, 63013, 5593, 5594, 5595, 5596, 5597, 5598, 5599, 5600, 5601, 5602, 5603, 5604, 5605, 5606, 5607, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 5608, 5609, 5610, 5611, 5612, 5613, 5614, 5615, 5616, 5617, 5618, 5619, 5620, 5621, 5622, 5623, 5624, 5625, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 5626, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 63013, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 63744, 63745, 63746, 63747, 63748, 63749, 63750, 63751, 63752, 63753, 63754, 63755, 63756, 63757, 63758, 63759, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63775, 0, 0, 0, 0, 0, 0, 0, 0, 63784, 63785, 63786, 63787, 63788, 63789, 63790, 63791, 0, 63793, 63794, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63807, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63820, 63821, 63822, 63823, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63839, 63840, 63841, 63842, 63843, 63844, 63845, 63846, 63847, 63848, 63849, 63850, 63851, 63852, 63853, 63854, 63855, 63856, 63857, 63858, 63859, 63860, 63861, 63862, 63863, 63864, 63865, 63866, 63867, 63868, 63869, 63870, 63871, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63890, 63891, 63892, 63893, 63894, 63895, 63896, 63897, 63898, 63899, 63900, 63901, 63902, 63903, 63904, 63905, 63906, 63907, 63908, 63909, 63910, 63911, 63912, 63913, 63914, 63915, 63916, 63917, 63918, 63919, 63920, 63921, 63922, 63923, 63924, 63925, 63926, 63927, 63928, 63929, 63930, 63931, 63932, 63933, 63934, 63935, 0, 63937, 63938, 63939, 63940, 63941, 63942, 63943, 63944, 63945, 63946, 63947, 63948, 63949, 63950, 63951, 63952, 63953, 63954, 63955, 63956, 63957, 63958, 63959, 63960, 63961, 63962, 63963, 63964, 63965, 63966, 63967, 63968, 63969, 63970, 63971, 63972, 63973, 63974, 63975, 63976, 63977, 63978, 63979, 63980, 63981, 63982, 63983, 63984, 63985, 63986, 63987, 63988, 63989, 63990, 63991, 63992, 63993, 63994, 63995, 63996, 63997, 63998, 63999, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +512: 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 17555, 30402, 48578, 31404, 48578, 17145, 48578, 48578, 48578, 31788, 9596, 48578, 48578, 34276, 48578, 48578, 48578, 48578, 48578, 34884, 22074, 48578, 48578, 48578, 48578, 48578, 48578, 44482, 48578, 22792, 48578, 48578, 48578, 48578, 47964, 48578, 48578, 48578, 40510, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 27993, 48578, 48578, 48578, 48578, 48578, 19359, 42443, 22277, 48578, 48578, 31009, 25964, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 11136, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 34394, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 31464, 48578, 48578, 48578, 48578, 15544, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 30504, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 10031, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 18538, 48578, 42886, 48529, 20855, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48259, 48578, 48578, 48074, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 21093, 48578, 48578, 29289, 48578, 13771, 11791, 48578, 33968, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 18729, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 43458, 48578, 16943, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 21491, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 33846, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 21577, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 32770, 0, 32772, 0, 32774, 32775, 32776, 0, 0, 32779, 32780, 0, 32782, 32783, 32784, 32785, 32786, 0, 0, 32789, 32790, 32791, 32792, 32793, 32794, 0, 32796, 0, 32798, 32799, 32800, 32801, 0, 32803, 32804, 32805, 0, 32807, 32808, 32809, 32810, 32811, 32812, 32813, 32814, 32815, 32816, 0, 32818, 32819, 32820, 32821, 32822, 0, 0, 0, 32826, 32827, 0, 0, 32830, 32831, 32832, 32833, 32834, 32835, 32836, 32837, 32838, 32839, 32840, 0, 32842, 32843, 32844, 32845, 32846, 32847, 32848, 32849, 32850, 32851, 32852, 32853, 32854, 0, 32856, 32857, 32858, 32859, 32860, 32861, 32862, 32863, 0, 32865, 32866, 32867, 32868, 0, 32870, 32871, 32872, 32873, 32874, 32875, 32876, 0, 32878, 32879, 32880, 32881, 32882, 32883, 32884, 32885, 32886, 0, 32888, 32889, 32890, 32891, 32892, 32893, 32894, 32895, 32896, 32897, 32898, 32899, 0, 32901, 0, 0, 0, 32905, 32906, 32907, 32908, 32909, 32910, 32911, 32912, 0, 32914, 32915, 0, 32917, 32918, 32919, 32920, 32921, 32922, 32923, 32924, 32925, 32926, 0, 32928, 32929, 0, 32931, 0, 0, 32934, 0, 32936, 32937, 32938, 32939, 32940, 32941, 32942, 32943, 32944, 32945, 32946, 32947, 32948, 32949, 32950, 32951, 0, 32953, 32954, 32955, 32956, 32957, 32958, 32959, 32960, 32961, 32962, 32963, 32964, 32965, 32966, 32967, 32968, 32969, 0, 32971, 0, 32973, 32974, 32975, 32976, 32977, 32978, 32979, 32980, 32981, 0, 32983, 32984, 32985, 32986, 32987, 32988, 32989, 32990, 32991, 32992, 32993, 32994, 32995, 32996, 32997, 32998, 32999, 33000, 33001, 33002, 0, 33004, 33005, 33006, 33007, 33008, 33009, 33010, 33011, 33012, 33013, 33014, 33015, 33016, 33017, 0, 33019, 33020, 33021, 33022, 33023, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +513: 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 48578, 48578, 48578, 48578, 48578, 42474, 48578, 48578, 48578, 13472, 48578, 48578, 22069, 20856, 48578, 13135, 48578, 22070, 11438, 48578, 48578, 48578, 25250, 48578, 48578, 48578, 36736, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 16041, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 41502, 48578, 48578, 42665, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 37876, 48578, 48578, 20862, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 42653, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 13300, 48578, 48578, 30510, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 7969, 48578, 48578, 48578, 48578, 40245, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 46075, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 43830, 48578, 48578, 48578, 40958, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 13302, 48578, 12377, 48578, 48578, 48578, 38039, 48578, 48578, 48578, 16534, 48578, 48578, 48578, 48578, 48578, 14555, 48578, 48578, 48578, 48578, 27836, 48578, 48578, 38677, 41723, 48578, 48578, 28473, 12421, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 12386, 48578, 48578, 48578, 36153, 48578, 48578, 16126, 48578, 48578, 48578, 48578, 22962, 11222, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32148, 48578, 27838, 48578, 34098, 48578, 15668, 48578, 34002, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 33024, 33025, 33026, 33027, 33028, 0, 33030, 33031, 33032, 0, 33034, 33035, 0, 0, 33038, 0, 33040, 0, 0, 33043, 33044, 33045, 0, 33047, 33048, 33049, 0, 33051, 33052, 33053, 33054, 33055, 33056, 33057, 33058, 0, 33060, 33061, 33062, 33063, 33064, 33065, 33066, 33067, 33068, 33069, 0, 33071, 33072, 0, 33074, 33075, 33076, 33077, 33078, 33079, 33080, 33081, 33082, 33083, 33084, 33085, 33086, 0, 33088, 33089, 0, 33091, 33092, 33093, 33094, 33095, 33096, 33097, 33098, 33099, 0, 33101, 33102, 33103, 33104, 33105, 33106, 33107, 33108, 33109, 33110, 0, 33112, 33113, 0, 33115, 33116, 33117, 33118, 33119, 33120, 33121, 33122, 33123, 33124, 33125, 33126, 33127, 33128, 33129, 33130, 33131, 0, 33133, 33134, 33135, 33136, 0, 33138, 33139, 33140, 33141, 33142, 33143, 33144, 0, 33146, 33147, 33148, 33149, 33150, 33151, 33152, 33153, 33154, 33155, 33156, 33157, 33158, 33159, 33160, 33161, 33162, 33163, 0, 33165, 33166, 33167, 0, 33169, 33170, 33171, 33172, 33173, 33174, 33175, 33176, 0, 33178, 0, 33180, 33181, 33182, 0, 33184, 33185, 33186, 0, 33188, 33189, 33190, 33191, 33192, 0, 33194, 33195, 33196, 33197, 0, 33199, 33200, 0, 0, 33203, 33204, 0, 0, 33207, 33208, 33209, 33210, 33211, 33212, 33213, 33214, 33215, 33216, 33217, 33218, 33219, 33220, 33221, 33222, 33223, 33224, 33225, 33226, 0, 33228, 33229, 33230, 0, 33232, 33233, 0, 33235, 33236, 33237, 33238, 0, 0, 33241, 33242, 33243, 33244, 33245, 33246, 33247, 33248, 33249, 33250, 33251, 33252, 33253, 33254, 33255, 33256, 33257, 33258, 33259, 33260, 33261, 33262, 0, 33264, 0, 33266, 0, 33268, 0, 33270, 0, 33272, 33273, 33274, 33275, 33276, 33277, 33278, 33279, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +514: 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 1, 2, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 48578, 37299, 48578, 48578, 48578, 34430, 48578, 48578, 48578, 48578, 28750, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 45166, 16540, 48578, 48578, 48578, 48578, 48578, 48578, 39841, 23800, 48578, 48578, 12429, 35559, 48578, 48578, 48578, 26780, 42666, 48578, 36250, 48578, 8425, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 35708, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 26443, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 38998, 19122, 12183, 48578, 48578, 21864, 48578, 13596, 48578, 48578, 7428, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 27038, 48578, 48578, 32409, 48578, 7265, 44504, 48578, 48578, 20357, 48578, 30746, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 27691, 48578, 48578, 48578, 47340, 46901, 47188, 28368, 9049, 48578, 47678, 34636, 41381, 22116, 31075, 48578, 48578, 16544, 48578, 37002, 48578, 48578, 48578, 43782, 46922, 48578, 48578, 48578, 48578, 48578, 48578, 23177, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 10466, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 24781, 41425, 48578, 48578, 48578, 48578, 17096, 27553, 33771, 44413, 48578, 35010, 35185, 48578, 46923, 48578, 48578, 31396, 48578, 15431, 48578, 48578, 21721, 8149, 48578, 8467, 48578, 48578, 35606, 48578, 48578, 31080, 27764, 10024, 48578, 48578, 33208, 19381, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 33280, 0, 33282, 33283, 33284, 0, 33286, 33287, 33288, 33289, 0, 33291, 33292, 33293, 33294, 33295, 33296, 33297, 33298, 33299, 33300, 33301, 33302, 33303, 33304, 33305, 33306, 33307, 33308, 33309, 33310, 33311, 33312, 33313, 33314, 33315, 0, 0, 33318, 33319, 33320, 33321, 33322, 33323, 0, 0, 33326, 33327, 0, 0, 33330, 33331, 33332, 0, 0, 33335, 0, 33337, 0, 33339, 33340, 33341, 33342, 33343, 33344, 33345, 0, 33347, 33348, 33349, 33350, 33351, 33352, 33353, 33354, 33355, 33356, 33357, 33358, 33359, 33360, 33361, 33362, 33363, 33364, 33365, 33366, 0, 33368, 33369, 33370, 33371, 33372, 33373, 33374, 33375, 33376, 33377, 0, 0, 0, 33381, 33382, 0, 33384, 0, 33386, 33387, 0, 33389, 33390, 33391, 33392, 33393, 33394, 33395, 33396, 33397, 33398, 33399, 33400, 33401, 33402, 33403, 33404, 33405, 33406, 33407, 33408, 33409, 33410, 33411, 33412, 33413, 33414, 33415, 33416, 0, 33418, 33419, 0, 33421, 0, 0, 33424, 33425, 0, 33427, 0, 33429, 33430, 33431, 33432, 33433, 33434, 33435, 33436, 33437, 33438, 0, 33440, 33441, 33442, 0, 0, 0, 0, 0, 33448, 0, 0, 0, 0, 0, 33454, 33455, 0, 33457, 0, 33459, 33460, 33461, 0, 0, 33464, 33465, 33466, 33467, 33468, 33469, 0, 33471, 33472, 33473, 33474, 33475, 33476, 33477, 0, 33479, 33480, 33481, 33482, 33483, 33484, 33485, 33486, 33487, 33488, 33489, 33490, 33491, 33492, 33493, 0, 0, 33496, 33497, 33498, 33499, 0, 0, 0, 0, 33504, 0, 0, 33507, 0, 33509, 33510, 0, 33512, 0, 33514, 33515, 0, 0, 33518, 0, 33520, 33521, 0, 33523, 33524, 0, 0, 0, 33528, 33529, 0, 0, 33532, 33533, 33534, 33535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +515: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 1, 1, 1, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 16222, 31731, 48578, 48578, 48578, 32768, 48578, 48578, 48578, 35189, 35191, 42199, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 11014, 48578, 48578, 34715, 46173, 24432, 15601, 35401, 45856, 48578, 47745, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 15454, 48578, 48578, 48578, 48578, 48578, 19397, 13489, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 19007, 48578, 48578, 20259, 41776, 46981, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 27015, 42342, 12784, 42736, 48578, 48578, 48578, 8897, 48578, 48578, 32054, 43128, 48578, 42121, 48578, 48578, 48578, 45696, 48578, 48578, 48578, 33428, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 23521, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 22156, 48578, 30437, 48578, 48578, 44309, 48578, 48578, 45295, 33062, 33282, 48578, 48578, 13913, 48578, 48578, 48578, 21031, 22631, 48578, 48578, 44940, 48578, 48578, 48578, 20279, 42232, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 39369, 48578, 40035, 31279, 48578, 48578, 48578, 44607, 32060, 48578, 48578, 48578, 48578, 48578, 39368, 26472, 48578, 16729, 48578, 48578, 10511, 11419, 42772, 48578, 46585, 48578, 48249, 13826, 48578, 45821, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 14731, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 33536, 33537, 33538, 33539, 33540, 33541, 33542, 33543, 33544, 33545, 33546, 33547, 33548, 33549, 33550, 33551, 33552, 33553, 33554, 33555, 33556, 0, 0, 33559, 33560, 33561, 0, 33563, 33564, 33565, 0, 0, 0, 33569, 33570, 33571, 33572, 33573, 33574, 33575, 33576, 33577, 0, 33579, 33580, 0, 0, 0, 0, 0, 0, 33587, 0, 33589, 33590, 33591, 33592, 33593, 33594, 33595, 33596, 0, 33598, 33599, 33600, 33601, 33602, 0, 0, 33605, 33606, 33607, 33608, 33609, 33610, 33611, 33612, 33613, 33614, 33615, 33616, 33617, 33618, 33619, 33620, 33621, 33622, 0, 33624, 33625, 0, 0, 0, 33629, 33630, 33631, 33632, 33633, 33634, 33635, 33636, 33637, 33638, 33639, 0, 0, 0, 0, 33644, 33645, 33646, 0, 33648, 33649, 0, 0, 33652, 0, 33654, 33655, 33656, 0, 33658, 33659, 33660, 0, 33662, 33663, 33664, 33665, 33666, 33667, 33668, 33669, 33670, 33671, 33672, 33673, 33674, 33675, 33676, 33677, 33678, 33679, 33680, 33681, 33682, 33683, 33684, 33685, 33686, 33687, 33688, 0, 33690, 33691, 33692, 33693, 33694, 33695, 33696, 33697, 33698, 33699, 33700, 33701, 33702, 33703, 33704, 33705, 33706, 33707, 33708, 33709, 0, 33711, 0, 33713, 33714, 0, 33716, 33717, 0, 0, 0, 33721, 33722, 0, 33724, 33725, 33726, 0, 0, 33729, 33730, 0, 33732, 33733, 33734, 0, 0, 33737, 33738, 33739, 33740, 33741, 33742, 33743, 33744, 33745, 33746, 0, 33748, 0, 0, 33751, 33752, 33753, 0, 0, 33756, 33757, 33758, 33759, 33760, 0, 0, 33763, 0, 33765, 33766, 0, 0, 0, 33770, 0, 33772, 0, 0, 33775, 0, 33777, 33778, 33779, 33780, 33781, 33782, 33783, 33784, 33785, 33786, 33787, 33788, 33789, 33790, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +516: 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 1, 42773, 27132, 48578, 48578, 48578, 48578, 48578, 48578, 8653, 20980, 34681, 24934, 8389, 35235, 48578, 48578, 48578, 12967, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 8185, 38255, 48578, 48578, 48578, 48578, 27151, 48578, 10050, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 12625, 48578, 48578, 48578, 48578, 30058, 20310, 25232, 16925, 30469, 17857, 48578, 48578, 48578, 19660, 40329, 46565, 10058, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 42262, 10066, 48578, 48578, 48578, 48578, 48578, 48578, 13003, 11009, 28430, 28431, 48578, 48578, 45837, 8664, 48578, 10069, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 39951, 48578, 48578, 48578, 48578, 11921, 40412, 21370, 30998, 48578, 31640, 48578, 48578, 48578, 48578, 16383, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 38592, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 44885, 9016, 48578, 48578, 48578, 48578, 37589, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 28718, 48578, 48578, 48578, 48578, 24799, 48578, 48578, 32515, 48578, 48578, 48578, 48578, 48578, 14601, 12833, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 18897, 43247, 39492, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 23639, 15530, 48578, 40630, 48578, 48578, 24852, 36150, 19510, 48578, 48578, 48578, 21035, 45678, 34099, 48578, 48578, 48578, 48578, 48578, 30506, 8671, 48578, 23655, 25187, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 46982, 8489, 34083, 48578, 48578, 48578, 48578, 34089, 48578, 31555, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 33794, 33795, 33796, 33797, 33798, 33799, 0, 0, 0, 0, 0, 0, 33806, 33807, 33808, 0, 33810, 33811, 33812, 33813, 33814, 33815, 33816, 33817, 33818, 33819, 33820, 33821, 33822, 33823, 33824, 0, 0, 33827, 33828, 33829, 33830, 0, 33832, 0, 33834, 33835, 33836, 33837, 33838, 33839, 33840, 33841, 33842, 33843, 33844, 0, 33846, 33847, 33848, 33849, 0, 0, 0, 0, 0, 0, 33856, 33857, 33858, 0, 0, 0, 0, 33863, 33864, 33865, 33866, 33867, 33868, 33869, 33870, 33871, 0, 0, 33874, 33875, 33876, 33877, 33878, 33879, 0, 0, 0, 0, 33884, 33885, 0, 0, 33888, 0, 33890, 33891, 33892, 33893, 33894, 33895, 33896, 33897, 0, 33899, 33900, 33901, 33902, 0, 0, 0, 0, 33907, 0, 33909, 33910, 33911, 33912, 0, 33914, 33915, 33916, 33917, 33918, 33919, 33920, 33921, 33922, 33923, 0, 33925, 33926, 33927, 33928, 33929, 33930, 33931, 33932, 33933, 33934, 33935, 33936, 33937, 33938, 33939, 33940, 33941, 33942, 33943, 33944, 33945, 33946, 33947, 0, 0, 33950, 33951, 33952, 33953, 0, 33955, 33956, 33957, 33958, 33959, 33960, 33961, 33962, 33963, 33964, 33965, 33966, 33967, 0, 33969, 33970, 33971, 33972, 0, 33974, 33975, 0, 33977, 33978, 33979, 33980, 33981, 0, 0, 33984, 33985, 33986, 33987, 33988, 33989, 33990, 33991, 33992, 33993, 0, 0, 0, 33997, 33998, 33999, 34000, 34001, 34002, 34003, 34004, 34005, 0, 0, 34008, 0, 34010, 34011, 0, 0, 0, 34015, 34016, 34017, 0, 0, 0, 34021, 34022, 34023, 34024, 34025, 0, 0, 34028, 0, 0, 34031, 34032, 34033, 34034, 34035, 34036, 34037, 0, 0, 0, 34041, 34042, 34043, 34044, 0, 34046, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +517: 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 48578, 48578, 8763, 38675, 48578, 48578, 48578, 48578, 48578, 22002, 48578, 19351, 48578, 38689, 31559, 48578, 48578, 17150, 48578, 48578, 48578, 26314, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 44988, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 24666, 48578, 48578, 48578, 48578, 48578, 48578, 7823, 48578, 48578, 17798, 48578, 48578, 48578, 30466, 48578, 48578, 48578, 30975, 46621, 26854, 48578, 48578, 48578, 48578, 11790, 48578, 48578, 28123, 48578, 48578, 48578, 48578, 48578, 36789, 48578, 48151, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 21439, 46117, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 28652, 10560, 48578, 48578, 30870, 48578, 48578, 44565, 20688, 48578, 48578, 48578, 48578, 48578, 46160, 48578, 48578, 48578, 48578, 48578, 12798, 21492, 48578, 48578, 48578, 35434, 48578, 48578, 42142, 48578, 48578, 48578, 37700, 48578, 48578, 24897, 48578, 36842, 48578, 27224, 48578, 48578, 48578, 48578, 44086, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 34905, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 25819, 48578, 48578, 48578, 43359, 48578, 48578, 48578, 48578, 48578, 10995, 48578, 48578, 48578, 48578, 48578, 15697, 21490, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 31585, 21454, 48578, 40087, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 17708, 48578, 48578, 48578, 36154, 48578, 31854, 40090, 21378, 28649, 21379, 48578, 48578, 19533, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 36562, 48578, 11999, 13206, 48578, 31668, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 30161, 30120, 48578, 13217, 25817, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 24755, 17240, 29385, 36059, 48578, 48578, 48578, 42737, 41067, 35658, 25480, 34769, 33981, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 34048, 34049, 0, 0, 34052, 34053, 34054, 34055, 34056, 0, 34058, 0, 34060, 0, 0, 34063, 34064, 0, 34066, 34067, 34068, 0, 34070, 34071, 34072, 34073, 34074, 34075, 34076, 34077, 34078, 34079, 0, 34081, 34082, 34083, 34084, 34085, 34086, 34087, 0, 34089, 34090, 34091, 34092, 34093, 34094, 0, 34096, 34097, 0, 34099, 34100, 34101, 0, 34103, 34104, 34105, 0, 0, 0, 34109, 34110, 34111, 34112, 0, 34114, 34115, 0, 34117, 34118, 34119, 34120, 34121, 0, 34123, 0, 34125, 34126, 34127, 34128, 34129, 34130, 34131, 34132, 0, 0, 34135, 34136, 34137, 34138, 34139, 34140, 34141, 34142, 0, 0, 34145, 34146, 0, 34148, 34149, 0, 0, 34152, 34153, 34154, 34155, 34156, 0, 34158, 34159, 34160, 34161, 34162, 0, 0, 34165, 34166, 34167, 0, 34169, 34170, 0, 34172, 34173, 34174, 0, 34176, 34177, 0, 34179, 0, 34181, 0, 34183, 34184, 34185, 34186, 0, 34188, 34189, 34190, 34191, 34192, 34193, 34194, 0, 34196, 34197, 34198, 34199, 34200, 34201, 34202, 0, 34204, 34205, 34206, 0, 34208, 34209, 34210, 34211, 34212, 0, 34214, 34215, 34216, 34217, 34218, 0, 0, 34221, 34222, 34223, 34224, 34225, 34226, 34227, 34228, 34229, 0, 0, 34232, 0, 34234, 34235, 34236, 34237, 34238, 34239, 34240, 34241, 0, 34243, 34244, 34245, 0, 34247, 0, 0, 0, 0, 0, 34253, 34254, 0, 34256, 34257, 34258, 34259, 34260, 34261, 34262, 34263, 0, 34265, 0, 0, 34268, 0, 34270, 34271, 34272, 34273, 34274, 34275, 34276, 0, 0, 34279, 0, 0, 34282, 34283, 34284, 34285, 34286, 34287, 34288, 34289, 34290, 0, 0, 0, 0, 34295, 34296, 34297, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +518: 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 1, 2, 1, 1, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 1, 1, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 48578, 9372, 35142, 48578, 48578, 31531, 33949, 48578, 48578, 48578, 29015, 36816, 20488, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 38852, 47073, 48578, 48578, 48578, 48578, 48578, 48578, 23556, 24510, 24511, 48578, 48578, 17690, 20791, 48578, 41702, 48578, 34483, 48578, 48578, 34238, 48578, 48578, 48578, 48578, 48578, 48578, 46391, 48578, 43939, 48578, 48578, 48578, 48578, 48578, 48578, 35656, 38451, 48578, 48578, 48578, 48578, 48578, 10137, 11794, 48578, 48578, 48578, 21850, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 34491, 48578, 48578, 48578, 48578, 48578, 21579, 37854, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 19248, 48578, 48578, 48578, 48578, 48578, 20833, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 45448, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 29208, 48578, 48578, 48578, 48578, 48578, 16537, 48578, 48578, 48578, 48578, 48578, 48578, 17453, 24277, 46868, 39583, 48578, 48578, 9296, 10191, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 45063, 17615, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 36181, 48578, 48578, 48578, 8813, 48578, 48578, 48578, 48578, 13095, 48578, 14378, 21493, 48578, 48578, 48578, 48578, 12891, 42893, 23289, 48578, 46181, 48578, 23367, 47237, 21837, 48578, 48578, 48578, 33564, 33408, 13097, 7806, 19343, 48578, 48578, 47138, 48578, 48578, 42639, 48578, 22829, 38404, 48578, 48578, 48578, 15877, 7636, 48578, 48578, 16237, 48578, 48578, 39416, 16498, 25555, 10765, 16562, 11327, 48578, 24105, 11874, 34695, 48578, 48578, 48578, 48578, 48578, 48578, 8355, 48578, 48578, 48578, 8999, 24344, 48578, 48578, 21551, 36614, 13967, 48578, 41549, 32169, 48578, 48578, 25021, 48578, 22676, 48578, 16031, 46322, 48578, 14847, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 34304, 0, 0, 34307, 34308, 0, 0, 34311, 34312, 34313, 0, 0, 0, 34317, 34318, 34319, 34320, 34321, 34322, 34323, 34324, 0, 0, 34327, 34328, 34329, 34330, 34331, 34332, 0, 0, 0, 34336, 34337, 0, 0, 34340, 0, 34342, 0, 34344, 34345, 0, 34347, 34348, 34349, 34350, 34351, 34352, 0, 34354, 0, 34356, 34357, 34358, 34359, 34360, 34361, 0, 0, 34364, 34365, 34366, 34367, 34368, 0, 0, 34371, 34372, 34373, 0, 34375, 34376, 34377, 34378, 34379, 34380, 34381, 0, 34383, 34384, 34385, 34386, 34387, 0, 0, 34390, 34391, 34392, 34393, 34394, 34395, 34396, 34397, 0, 34399, 34400, 34401, 34402, 34403, 0, 34405, 34406, 34407, 34408, 34409, 34410, 34411, 0, 34413, 34414, 34415, 34416, 34417, 34418, 34419, 34420, 34421, 0, 34423, 34424, 34425, 34426, 34427, 0, 34429, 34430, 34431, 34432, 34433, 34434, 0, 0, 0, 0, 34439, 34440, 0, 0, 34443, 34444, 34445, 34446, 34447, 34448, 34449, 34450, 0, 0, 34453, 34454, 34455, 34456, 34457, 34458, 34459, 0, 34461, 34462, 34463, 0, 34465, 34466, 34467, 34468, 0, 34470, 0, 0, 34473, 34474, 34475, 34476, 0, 0, 0, 34480, 0, 34482, 0, 0, 0, 34486, 34487, 34488, 0, 0, 0, 0, 0, 34494, 34495, 0, 34497, 34498, 0, 34500, 0, 0, 34503, 34504, 34505, 0, 0, 34508, 34509, 0, 34511, 34512, 0, 0, 0, 0, 0, 0, 34519, 0, 0, 0, 34523, 34524, 34525, 34526, 34527, 34528, 0, 34530, 34531, 34532, 0, 0, 34535, 34536, 0, 0, 0, 34540, 0, 0, 34543, 34544, 0, 34546, 0, 34548, 0, 0, 34551, 0, 34553, 34554, 34555, 34556, 34557, 34558, 34559, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +519: 2, 1, 2, 1, 1, 1, 2, 2, 1, 1, 2, 1, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 1, 1, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 48578, 42655, 48578, 21569, 40862, 20661, 48578, 48578, 26174, 21552, 48578, 11105, 48578, 48578, 39589, 48578, 23008, 13811, 48578, 48578, 48578, 48578, 26352, 38707, 31593, 9351, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 30854, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 29702, 41420, 8244, 17068, 16504, 48578, 48578, 48578, 21716, 48578, 48578, 30835, 48578, 22109, 48578, 48578, 48578, 48578, 48578, 24381, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 18394, 20590, 48578, 48578, 48578, 48578, 48578, 48578, 30858, 48578, 45684, 30836, 48578, 46211, 9747, 43742, 48578, 48578, 41557, 48578, 10929, 48578, 48578, 48578, 10783, 48578, 37543, 48578, 35131, 48578, 48578, 48578, 48578, 48578, 22461, 44815, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 11039, 48578, 35607, 37005, 48578, 48578, 46219, 36313, 48578, 38425, 48578, 12146, 24418, 9749, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32667, 16223, 32322, 48578, 24128, 48578, 48578, 48578, 48578, 36166, 48578, 48578, 48578, 48578, 48578, 24419, 48578, 48578, 27270, 48578, 10858, 48578, 48578, 16975, 25760, 11416, 35612, 20690, 21216, 48578, 48578, 48578, 14426, 45790, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 21217, 12015, 48578, 48578, 9729, 48487, 48578, 46149, 48578, 48578, 30016, 45919, 38810, 42345, 15377, 10936, 48578, 48578, 48578, 48578, 48578, 12019, 48578, 48578, 48578, 16519, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 19413, 48578, 48578, 33283, 45865, 25451, 33284, 42486, 48578, 48578, 48578, 48578, 48578, 21681, 48578, 48578, 48578, 48578, 48578, 37018, 48578, 48578, 48578, 32839, 45534, 18590, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 34560, 0, 34562, 0, 0, 0, 34566, 34567, 0, 0, 34570, 0, 34572, 34573, 0, 34575, 0, 0, 34578, 34579, 34580, 34581, 0, 0, 0, 0, 34586, 34587, 34588, 34589, 34590, 34591, 34592, 34593, 34594, 34595, 0, 34597, 34598, 34599, 34600, 34601, 34602, 34603, 34604, 34605, 34606, 34607, 34608, 0, 0, 0, 0, 0, 34614, 34615, 34616, 0, 34618, 34619, 0, 34621, 0, 34623, 34624, 34625, 34626, 34627, 0, 34629, 34630, 34631, 34632, 34633, 34634, 34635, 34636, 34637, 34638, 34639, 0, 0, 34642, 34643, 34644, 34645, 34646, 34647, 0, 34649, 0, 0, 34652, 0, 0, 0, 34656, 34657, 0, 34659, 0, 34661, 34662, 34663, 0, 34665, 0, 34667, 0, 34669, 34670, 34671, 34672, 34673, 0, 0, 34676, 34677, 34678, 34679, 34680, 34681, 34682, 34683, 34684, 0, 34686, 0, 0, 34689, 34690, 0, 0, 34693, 0, 34695, 0, 0, 0, 34699, 34700, 34701, 34702, 34703, 34704, 34705, 34706, 34707, 34708, 0, 0, 0, 34712, 0, 34714, 34715, 34716, 34717, 0, 34719, 34720, 34721, 34722, 34723, 0, 34725, 34726, 0, 34728, 0, 34730, 34731, 0, 0, 0, 0, 0, 0, 34738, 34739, 34740, 0, 0, 34743, 34744, 34745, 34746, 34747, 34748, 34749, 0, 0, 34752, 34753, 0, 0, 34756, 0, 34758, 34759, 0, 0, 0, 0, 0, 0, 34766, 34767, 34768, 34769, 34770, 0, 34772, 34773, 34774, 0, 34776, 34777, 34778, 34779, 34780, 34781, 34782, 34783, 34784, 34785, 34786, 0, 34788, 34789, 0, 0, 0, 0, 0, 34795, 34796, 34797, 34798, 34799, 0, 34801, 34802, 34803, 34804, 34805, 0, 34807, 34808, 34809, 0, 0, 0, 34813, 34814, 34815, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +520: 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 48578, 39546, 48578, 30960, 46161, 48578, 48578, 48578, 48578, 48578, 48578, 9510, 48578, 48578, 23393, 24491, 32790, 48578, 48578, 48578, 13622, 48578, 48578, 25075, 48578, 48578, 48578, 48578, 43624, 24512, 48578, 48578, 13625, 48578, 25369, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 37557, 48578, 48578, 48578, 48578, 13287, 48578, 48578, 48578, 21494, 48578, 24331, 22880, 22756, 48578, 46393, 48578, 48578, 48578, 48578, 48578, 48578, 17706, 48578, 8401, 48578, 29682, 48578, 48578, 48578, 48578, 48578, 17396, 48578, 48578, 48578, 48578, 48578, 48578, 47859, 13796, 48578, 42942, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 22677, 42943, 27853, 48578, 48578, 9490, 48578, 16076, 22682, 34308, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 25274, 8245, 48578, 48578, 13745, 48578, 48578, 48578, 48578, 21957, 28369, 48096, 48578, 48578, 48240, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 36056, 48578, 48578, 39235, 17329, 48578, 48578, 48578, 48578, 26284, 31020, 48578, 48578, 48578, 48578, 48578, 27888, 29179, 17461, 48578, 48578, 48578, 45691, 22029, 11806, 48578, 48578, 48578, 48578, 24448, 45697, 44111, 13067, 22161, 8165, 48578, 48578, 48578, 42302, 30017, 48578, 48578, 48578, 48578, 48578, 48578, 21236, 22413, 33285, 42100, 21237, 48578, 48578, 48578, 22724, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 9915, 48578, 48578, 28675, 48578, 37696, 26221, 48578, 48578, 48578, 48578, 48578, 45086, 42143, 7960, 48578, 48578, 22271, 41055, 48578, 47242, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 23242, 15042, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32035, 33739, 35542, 48578, 48578, 48578, 13578, 48578, 22992, 29478, 48578, 48578, 48578, 48578, 48578, 48578, 8051, 48578, 48578, 48578, 15460, 21597, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 34816, 0, 34818, 0, 0, 34821, 34822, 34823, 34824, 34825, 34826, 0, 34828, 34829, 0, 0, 0, 34833, 34834, 34835, 0, 34837, 34838, 0, 34840, 34841, 34842, 34843, 0, 0, 34846, 34847, 0, 34849, 0, 34851, 34852, 34853, 34854, 34855, 34856, 34857, 0, 34859, 34860, 34861, 34862, 0, 34864, 34865, 34866, 0, 34868, 0, 0, 0, 34872, 0, 34874, 34875, 34876, 34877, 34878, 34879, 0, 34881, 0, 34883, 0, 34885, 34886, 34887, 34888, 34889, 0, 34891, 34892, 34893, 34894, 34895, 34896, 0, 0, 34899, 0, 34901, 34902, 34903, 34904, 34905, 34906, 34907, 0, 0, 0, 34911, 34912, 0, 34914, 0, 0, 0, 34918, 34919, 34920, 34921, 34922, 34923, 34924, 0, 0, 34927, 34928, 0, 34930, 34931, 34932, 34933, 0, 0, 0, 34937, 34938, 0, 34940, 34941, 34942, 34943, 34944, 34945, 34946, 0, 34948, 34949, 0, 0, 34952, 34953, 34954, 34955, 0, 0, 34958, 34959, 34960, 34961, 34962, 0, 0, 0, 34966, 34967, 34968, 0, 0, 0, 34972, 34973, 34974, 34975, 0, 0, 0, 0, 0, 0, 34982, 34983, 34984, 0, 0, 34987, 34988, 34989, 34990, 34991, 34992, 0, 0, 0, 0, 0, 34998, 34999, 35000, 0, 35002, 35003, 35004, 35005, 35006, 35007, 35008, 35009, 35010, 35011, 0, 35013, 35014, 0, 35016, 0, 0, 35019, 35020, 35021, 35022, 35023, 0, 0, 0, 35027, 35028, 0, 0, 35031, 0, 35033, 35034, 35035, 35036, 35037, 35038, 35039, 0, 0, 35042, 35043, 35044, 35045, 35046, 35047, 35048, 35049, 0, 0, 0, 35053, 35054, 35055, 0, 35057, 0, 0, 35060, 35061, 35062, 35063, 35064, 35065, 0, 35067, 35068, 35069, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +521: 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 2, 2, 1, 1, 2, 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 32417, 48578, 48578, 48578, 21689, 48578, 48578, 48578, 48578, 48578, 31770, 48578, 48578, 47297, 18453, 7993, 48578, 48578, 48578, 48578, 48578, 42646, 48578, 42667, 42668, 48578, 48578, 48578, 48578, 26881, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32921, 48578, 48578, 48578, 48578, 11661, 48578, 48578, 17208, 48578, 11792, 48578, 48578, 48578, 39052, 48578, 48578, 48578, 48578, 32193, 36631, 48578, 13149, 48578, 17217, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 42421, 48578, 48578, 48578, 48578, 48578, 14061, 37858, 48578, 9570, 13162, 48578, 48578, 48578, 14179, 12938, 48578, 35376, 32235, 48578, 48578, 14224, 29184, 41071, 48578, 48578, 48578, 38561, 48578, 48578, 48578, 43248, 48578, 27992, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 18080, 48578, 48578, 48578, 17218, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 34172, 48578, 48578, 48578, 33045, 48578, 48578, 48578, 48578, 8396, 48578, 17209, 21371, 39050, 48578, 31586, 12089, 11681, 48578, 7807, 48578, 48578, 48578, 48578, 13772, 48578, 48578, 48578, 48578, 39056, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 46656, 26272, 48578, 18096, 19555, 16566, 48578, 48578, 48578, 48578, 48578, 29386, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 47423, 48578, 48578, 48578, 48578, 8390, 48578, 44343, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 30664, 48578, 48578, 17578, 11196, 48578, 48578, 33734, 10818, 9120, 48578, 48578, 48578, 32629, 43996, 48578, 48578, 48578, 28200, 48578, 48578, 48578, 48578, 18977, 36636, 7849, 48578, 48578, 48578, 48578, 40731, 48578, 48578, 48578, 44008, 10837, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 17795, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 35073, 35074, 35075, 0, 35077, 35078, 35079, 35080, 35081, 0, 35083, 35084, 0, 0, 0, 35088, 35089, 35090, 35091, 35092, 0, 35094, 0, 0, 35097, 35098, 35099, 35100, 0, 35102, 35103, 35104, 35105, 35106, 35107, 35108, 35109, 0, 35111, 35112, 35113, 35114, 0, 35116, 35117, 0, 35119, 0, 35121, 35122, 35123, 0, 35125, 35126, 35127, 35128, 0, 0, 35131, 0, 35133, 0, 35135, 35136, 35137, 35138, 35139, 35140, 35141, 35142, 0, 35144, 35145, 35146, 35147, 35148, 0, 0, 35151, 0, 0, 35154, 35155, 35156, 0, 0, 35159, 0, 0, 35162, 35163, 0, 0, 0, 35167, 35168, 35169, 0, 35171, 35172, 35173, 0, 35175, 0, 35177, 35178, 35179, 35180, 35181, 35182, 35183, 0, 35185, 35186, 35187, 0, 35189, 35190, 35191, 35192, 35193, 35194, 35195, 35196, 35197, 35198, 0, 35200, 35201, 35202, 0, 35204, 35205, 35206, 35207, 0, 35209, 0, 0, 0, 35213, 0, 0, 0, 35217, 0, 35219, 35220, 35221, 35222, 0, 35224, 35225, 35226, 35227, 0, 35229, 35230, 35231, 35232, 35233, 35234, 35235, 35236, 35237, 35238, 0, 0, 35241, 0, 0, 0, 35245, 35246, 35247, 35248, 35249, 0, 35251, 35252, 35253, 35254, 35255, 35256, 35257, 35258, 35259, 35260, 35261, 35262, 35263, 0, 35265, 35266, 35267, 35268, 0, 35270, 0, 35272, 35273, 35274, 35275, 35276, 35277, 35278, 35279, 35280, 35281, 0, 35283, 35284, 0, 0, 35287, 35288, 0, 0, 0, 35292, 35293, 35294, 0, 0, 35297, 35298, 35299, 0, 35301, 35302, 35303, 35304, 0, 0, 0, 35308, 35309, 35310, 35311, 0, 35313, 35314, 35315, 0, 0, 35318, 35319, 35320, 35321, 35322, 35323, 35324, 35325, 35326, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +522: 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 48578, 48578, 48578, 37532, 48578, 48578, 40265, 48578, 48578, 48578, 22171, 48578, 35420, 31611, 47676, 48578, 48578, 48578, 48578, 48578, 48578, 19731, 48578, 48578, 8402, 48578, 38708, 48578, 48578, 48578, 48578, 48578, 19565, 48578, 22329, 48578, 48578, 24908, 43963, 48578, 48578, 48578, 48578, 48578, 48578, 21705, 48578, 48578, 48578, 48578, 44951, 48578, 48578, 7927, 48578, 48578, 29748, 48578, 48578, 45566, 48578, 48578, 42904, 12859, 48578, 48578, 31407, 48578, 35594, 48578, 11685, 48578, 47536, 44956, 48578, 48578, 48578, 48578, 48578, 20580, 48578, 48578, 48578, 48578, 34184, 48578, 48578, 42669, 39213, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 44802, 48578, 48578, 48578, 48578, 17027, 48578, 22686, 48578, 48578, 12000, 43000, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 24382, 48578, 13018, 48578, 48578, 38738, 48578, 48578, 48578, 48578, 8491, 48578, 48578, 8675, 26958, 24400, 48578, 48578, 35188, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 25473, 16894, 22705, 48578, 48578, 48578, 48578, 42738, 48578, 39016, 43425, 48578, 48578, 48578, 48578, 22710, 48578, 48578, 48578, 33813, 48578, 48578, 48578, 38339, 48578, 48578, 48578, 48578, 48578, 48578, 29882, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 45008, 17939, 48578, 48578, 24471, 15490, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 22208, 39386, 48578, 48578, 48578, 48578, 13004, 48578, 48578, 24609, 48578, 48578, 48578, 48578, 48578, 48578, 36987, 48578, 48578, 48578, 48578, 20093, 48578, 48578, 7763, 12892, 46046, 48578, 48578, 48578, 48578, 48578, 44480, 48578, 48578, 48578, 48578, 13806, 48578, 48578, 48578, 48578, 9466, 37028, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 35884, 19535, 30507, 33571, 28634, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 35328, 35329, 35330, 0, 35332, 35333, 0, 35335, 35336, 35337, 0, 35339, 0, 0, 0, 35343, 35344, 35345, 35346, 35347, 35348, 0, 35350, 35351, 0, 35353, 0, 35355, 35356, 35357, 35358, 35359, 0, 35361, 0, 35363, 35364, 0, 0, 35367, 35368, 35369, 35370, 35371, 35372, 0, 35374, 35375, 35376, 35377, 0, 35379, 35380, 0, 35382, 35383, 0, 35385, 35386, 0, 35388, 35389, 0, 0, 35392, 35393, 0, 35395, 0, 35397, 0, 35399, 0, 0, 35402, 35403, 35404, 35405, 35406, 0, 35408, 35409, 35410, 35411, 0, 35413, 35414, 0, 0, 35417, 35418, 35419, 35420, 35421, 35422, 35423, 0, 35425, 35426, 35427, 35428, 0, 35430, 0, 35432, 35433, 0, 0, 35436, 35437, 35438, 35439, 35440, 35441, 35442, 35443, 35444, 0, 35446, 0, 35448, 35449, 0, 35451, 35452, 35453, 35454, 0, 35456, 35457, 0, 0, 0, 35461, 35462, 0, 35464, 35465, 35466, 35467, 35468, 35469, 35470, 35471, 0, 0, 0, 35475, 35476, 35477, 35478, 0, 35480, 0, 0, 35483, 35484, 35485, 35486, 0, 35488, 35489, 35490, 0, 35492, 35493, 35494, 0, 35496, 35497, 35498, 35499, 35500, 35501, 0, 35503, 35504, 35505, 35506, 35507, 35508, 35509, 0, 0, 35512, 35513, 0, 0, 35516, 35517, 35518, 35519, 35520, 35521, 35522, 0, 0, 35525, 35526, 35527, 35528, 0, 35530, 35531, 0, 35533, 35534, 35535, 35536, 35537, 35538, 0, 35540, 35541, 35542, 35543, 0, 35545, 35546, 0, 0, 0, 35550, 35551, 35552, 35553, 35554, 0, 35556, 35557, 35558, 35559, 0, 35561, 35562, 35563, 35564, 0, 0, 35567, 35568, 35569, 35570, 35571, 35572, 35573, 0, 0, 0, 0, 0, 35579, 35580, 35581, 35582, 35583, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +523: 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 48578, 48578, 48578, 48578, 48578, 48578, 16664, 48578, 8378, 48578, 48578, 40475, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 46429, 48578, 48578, 48578, 48578, 48578, 33032, 48578, 27835, 48578, 15156, 48578, 48578, 48578, 48578, 36151, 7926, 48578, 48578, 48578, 48578, 48578, 48578, 8846, 48578, 38680, 48578, 20865, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 21186, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 30906, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 34998, 21347, 48578, 10775, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 21350, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 35458, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 45648, 24137, 48578, 48578, 48578, 47841, 48578, 48578, 48578, 48578, 8733, 48578, 48578, 48578, 48578, 48578, 37268, 48578, 48578, 48578, 8535, 48578, 48578, 14773, 48578, 48578, 48578, 12695, 48578, 47473, 48578, 48578, 48578, 48578, 21698, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 42819, 48578, 48578, 41489, 48578, 48578, 10814, 16538, 46788, 48578, 48578, 48578, 48578, 48578, 48578, 32622, 48578, 48578, 43941, 48578, 9118, 48578, 19685, 30071, 48578, 48578, 43569, 41983, 26804, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 25727, 28096, 33091, 11326, 48578, 11613, 38514, 32573, 48578, 48578, 48578, 12260, 19515, 48578, 42823, 48578, 32402, 48578, 48578, 19233, 16499, 48578, 46184, 29857, 48578, 48578, 45219, 7864, 20871, 48578, 48578, 17989, 48578, 48578, 39585, 18841, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 45635, 12246, 15881, 48578, 29858, 48578, 29953, 34179, 24856, 44957, 18305, 8701, 48578, 48578, 32626, 48578, 32627, 48578, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 35584, 35585, 35586, 35587, 35588, 35589, 0, 35591, 0, 35593, 35594, 0, 35596, 35597, 35598, 35599, 35600, 35601, 35602, 0, 35604, 35605, 35606, 35607, 35608, 0, 35610, 0, 35612, 0, 35614, 35615, 35616, 35617, 0, 0, 35620, 35621, 35622, 35623, 35624, 35625, 0, 35627, 0, 35629, 0, 35631, 35632, 35633, 35634, 35635, 35636, 35637, 0, 35639, 35640, 35641, 35642, 35643, 35644, 35645, 0, 35647, 35648, 35649, 35650, 35651, 35652, 35653, 35654, 35655, 0, 0, 35658, 0, 35660, 35661, 35662, 35663, 35664, 35665, 35666, 35667, 35668, 35669, 35670, 0, 35672, 35673, 35674, 35675, 35676, 35677, 35678, 35679, 35680, 35681, 35682, 35683, 35684, 0, 35686, 35687, 35688, 35689, 35690, 35691, 35692, 35693, 35694, 0, 0, 35697, 35698, 35699, 0, 35701, 35702, 35703, 35704, 0, 35706, 35707, 35708, 35709, 35710, 0, 35712, 35713, 35714, 0, 35716, 35717, 0, 35719, 35720, 35721, 0, 35723, 0, 35725, 35726, 35727, 35728, 0, 35730, 35731, 35732, 35733, 35734, 35735, 35736, 0, 35738, 35739, 0, 35741, 35742, 0, 0, 0, 35746, 35747, 35748, 35749, 35750, 35751, 0, 35753, 35754, 0, 35756, 0, 35758, 0, 0, 35761, 35762, 0, 0, 0, 35766, 35767, 35768, 35769, 35770, 35771, 35772, 0, 0, 0, 0, 35777, 0, 0, 0, 35781, 35782, 35783, 0, 0, 35786, 0, 35788, 0, 35790, 35791, 0, 0, 35794, 0, 0, 35797, 35798, 0, 0, 0, 35802, 35803, 0, 35805, 35806, 0, 0, 35809, 35810, 35811, 35812, 35813, 35814, 35815, 35816, 0, 0, 0, 35820, 0, 35822, 0, 0, 0, 0, 0, 0, 35829, 35830, 0, 35832, 0, 35834, 35835, 35836, 35837, 35838, 35839, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +524: 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, 2, 1, 1, 1, 2, 1, 2, 1, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 1, 2, 1, 48578, 48578, 48578, 48578, 42567, 46628, 48578, 21097, 38260, 10215, 48578, 31793, 48578, 47498, 48578, 45679, 30209, 7445, 48578, 17584, 48578, 11132, 41616, 48578, 48578, 48578, 34299, 18313, 14144, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 34185, 48578, 48578, 48578, 48578, 37304, 12265, 37529, 30166, 32734, 21629, 48578, 9069, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 44405, 13481, 48578, 16826, 34450, 48578, 48578, 35560, 28574, 47244, 25729, 9006, 48493, 42445, 32445, 48578, 25264, 33050, 48578, 48578, 23987, 14150, 48578, 47212, 19693, 48578, 48578, 14151, 48578, 48578, 48578, 48547, 48578, 48578, 28137, 45134, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 40215, 48423, 34626, 13375, 14451, 32553, 48578, 7892, 17219, 17881, 42573, 48578, 42574, 48578, 48578, 22594, 42971, 18916, 46505, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 21385, 48578, 48578, 15934, 48578, 48578, 29018, 31416, 48578, 13207, 48578, 19770, 43002, 42692, 48578, 15208, 34848, 34849, 43888, 22740, 18419, 17966, 48578, 48578, 48578, 17605, 48578, 48578, 17563, 31072, 30859, 48578, 35005, 48578, 7895, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 21285, 22687, 48578, 48578, 48578, 48578, 48578, 7250, 25749, 48578, 36997, 48578, 48578, 11400, 48578, 48578, 35115, 10553, 48578, 37785, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 35840, 35841, 35842, 35843, 0, 0, 35846, 0, 0, 0, 35850, 0, 35852, 0, 35854, 0, 0, 0, 35858, 0, 35860, 0, 0, 35863, 35864, 35865, 0, 0, 0, 35869, 35870, 35871, 35872, 35873, 35874, 35875, 35876, 35877, 35878, 35879, 35880, 35881, 35882, 35883, 35884, 35885, 35886, 35887, 35888, 35889, 35890, 35891, 0, 35893, 35894, 35895, 35896, 0, 0, 0, 0, 0, 0, 35903, 0, 35905, 35906, 35907, 35908, 35909, 35910, 35911, 35912, 35913, 35914, 35915, 35916, 35917, 35918, 35919, 0, 0, 35922, 0, 0, 35925, 35926, 0, 0, 0, 0, 0, 0, 0, 0, 35935, 0, 0, 35938, 35939, 0, 0, 35942, 0, 0, 35945, 35946, 0, 35948, 35949, 35950, 0, 35952, 35953, 0, 0, 35956, 35957, 35958, 35959, 35960, 35961, 35962, 35963, 35964, 35965, 35966, 35967, 35968, 35969, 35970, 35971, 35972, 35973, 35974, 35975, 35976, 35977, 0, 0, 0, 0, 0, 0, 35984, 0, 0, 0, 0, 35989, 0, 35991, 35992, 0, 0, 0, 0, 35997, 35998, 35999, 36000, 36001, 36002, 36003, 36004, 36005, 36006, 36007, 36008, 36009, 36010, 36011, 36012, 36013, 0, 36015, 36016, 0, 36018, 36019, 0, 0, 36022, 0, 36024, 0, 0, 0, 36028, 0, 0, 0, 0, 0, 0, 0, 36036, 36037, 36038, 0, 36040, 36041, 0, 0, 0, 36045, 0, 36047, 0, 36049, 36050, 36051, 36052, 36053, 36054, 36055, 36056, 36057, 36058, 36059, 36060, 36061, 36062, 36063, 36064, 36065, 36066, 36067, 36068, 36069, 36070, 36071, 36072, 36073, 36074, 36075, 0, 0, 36078, 36079, 36080, 36081, 36082, 0, 0, 36085, 0, 36087, 36088, 0, 36090, 36091, 0, 0, 36094, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +525: 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 1, 48578, 48578, 29062, 48578, 21555, 48578, 48578, 8926, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 40014, 34020, 18044, 48578, 48578, 47559, 48578, 16601, 19374, 48578, 19782, 48578, 38740, 48578, 33796, 29214, 18163, 35717, 39967, 48578, 45471, 48578, 48578, 9283, 30755, 37455, 37314, 12636, 48578, 28149, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 45786, 48578, 48578, 41511, 48578, 48578, 38533, 46389, 12701, 17565, 48578, 7484, 29772, 33269, 14898, 16508, 48578, 48578, 48578, 30215, 48578, 48578, 48578, 41125, 17185, 15755, 7663, 48155, 27226, 48578, 19250, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 12981, 38741, 48578, 48578, 12234, 28316, 48578, 48578, 48578, 13109, 26453, 22693, 48578, 48578, 48578, 48578, 43058, 22135, 17633, 48578, 19567, 48578, 48578, 17716, 28783, 32990, 31021, 12298, 33691, 22701, 47463, 48578, 34117, 26181, 19969, 29925, 18060, 19383, 35726, 11047, 38317, 21400, 30179, 45788, 40394, 48578, 48578, 8723, 48578, 48578, 40903, 48578, 48578, 48578, 48578, 16349, 21067, 48578, 48578, 39452, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 14084, 48578, 9163, 29960, 48578, 48578, 48578, 45271, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 36096, 36097, 0, 36099, 0, 36101, 36102, 0, 36104, 36105, 36106, 36107, 36108, 36109, 36110, 36111, 36112, 36113, 36114, 36115, 36116, 36117, 36118, 36119, 36120, 36121, 36122, 36123, 36124, 36125, 36126, 36127, 36128, 0, 0, 0, 36132, 36133, 0, 36135, 0, 0, 36138, 0, 36140, 0, 36142, 0, 0, 0, 0, 0, 36148, 0, 36150, 36151, 0, 0, 0, 0, 0, 36157, 0, 36159, 36160, 36161, 36162, 36163, 36164, 36165, 36166, 36167, 36168, 36169, 36170, 36171, 36172, 36173, 36174, 36175, 36176, 36177, 36178, 36179, 36180, 36181, 36182, 36183, 36184, 36185, 36186, 36187, 36188, 36189, 36190, 36191, 0, 36193, 36194, 0, 36196, 36197, 0, 0, 0, 0, 36202, 0, 0, 0, 0, 0, 36208, 36209, 36210, 0, 36212, 36213, 36214, 0, 0, 0, 0, 0, 0, 36221, 0, 36223, 36224, 36225, 36226, 36227, 36228, 36229, 36230, 36231, 36232, 36233, 36234, 36235, 36236, 36237, 36238, 36239, 36240, 36241, 36242, 36243, 36244, 36245, 36246, 36247, 36248, 36249, 36250, 36251, 36252, 36253, 36254, 36255, 36256, 36257, 36258, 36259, 36260, 36261, 36262, 0, 0, 36265, 36266, 0, 0, 36269, 36270, 36271, 0, 0, 0, 36275, 36276, 36277, 36278, 0, 0, 0, 36282, 0, 36284, 36285, 0, 0, 0, 0, 0, 0, 0, 0, 36294, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36308, 36309, 0, 36311, 36312, 0, 36314, 36315, 36316, 36317, 0, 0, 36320, 36321, 0, 36323, 36324, 36325, 36326, 36327, 36328, 36329, 36330, 36331, 36332, 36333, 36334, 36335, 36336, 36337, 36338, 36339, 36340, 36341, 36342, 36343, 0, 36345, 0, 0, 36348, 36349, 36350, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +526: 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48578, 29297, 37006, 48578, 43583, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 39767, 48578, 48578, 29144, 15898, 9164, 40244, 48578, 48578, 48578, 46350, 44291, 28591, 48578, 48578, 48578, 48578, 48578, 41388, 37504, 48578, 7507, 17336, 17835, 12358, 48578, 29119, 48578, 9634, 19581, 28468, 43905, 39883, 48578, 11302, 42343, 48578, 15958, 36065, 8052, 10028, 48578, 40919, 48578, 48578, 17122, 48578, 11052, 48578, 20260, 48501, 48578, 48578, 48578, 38073, 12150, 29716, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 18668, 48578, 38789, 48578, 29571, 25456, 28033, 27581, 23782, 37218, 7818, 48578, 48578, 15903, 48578, 22948, 48578, 48578, 19976, 9096, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 18669, 48578, 48323, 26463, 48578, 48578, 48578, 48578, 48578, 48578, 24158, 48578, 17659, 27790, 48578, 34814, 33897, 22543, 10866, 25330, 26422, 48578, 48578, 41785, 46150, 11304, 16430, 31573, 48578, 35931, 14917, 37067, 48578, 48578, 48578, 48578, 25331, 48578, 48578, 23770, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 36352, 0, 0, 36355, 0, 36357, 36358, 36359, 36360, 36361, 36362, 36363, 36364, 36365, 36366, 36367, 36368, 36369, 36370, 36371, 36372, 36373, 36374, 36375, 36376, 36377, 36378, 36379, 36380, 36381, 36382, 36383, 36384, 36385, 36386, 36387, 36388, 36389, 36390, 36391, 36392, 36393, 36394, 36395, 36396, 36397, 0, 36399, 36400, 0, 0, 0, 0, 36405, 36406, 36407, 0, 0, 0, 36411, 36412, 36413, 36414, 36415, 0, 0, 36418, 0, 0, 0, 0, 36423, 0, 36425, 0, 0, 0, 0, 0, 36431, 0, 0, 36434, 0, 0, 0, 0, 36439, 0, 36441, 36442, 0, 36444, 0, 36446, 0, 0, 36449, 36450, 36451, 0, 0, 0, 36455, 36456, 36457, 36458, 36459, 36460, 36461, 36462, 36463, 36464, 36465, 36466, 36467, 36468, 36469, 36470, 36471, 36472, 36473, 36474, 36475, 36476, 36477, 36478, 36479, 36480, 36481, 36482, 36483, 36484, 36485, 36486, 36487, 36488, 36489, 36490, 36491, 36492, 36493, 36494, 36495, 0, 36497, 0, 36499, 0, 0, 0, 0, 0, 0, 0, 36507, 36508, 0, 36510, 0, 36512, 36513, 0, 0, 36516, 36517, 36518, 36519, 36520, 36521, 36522, 36523, 36524, 36525, 36526, 36527, 36528, 36529, 36530, 36531, 36532, 36533, 36534, 36535, 36536, 36537, 36538, 36539, 36540, 36541, 36542, 36543, 36544, 36545, 36546, 36547, 36548, 36549, 36550, 36551, 36552, 36553, 36554, 36555, 36556, 0, 36558, 0, 0, 36561, 36562, 36563, 36564, 36565, 36566, 0, 36568, 0, 0, 36571, 0, 0, 0, 0, 0, 0, 36578, 36579, 0, 0, 0, 0, 0, 36585, 0, 0, 0, 36589, 36590, 36591, 36592, 0, 36594, 36595, 0, 36597, 36598, 36599, 36600, 36601, 36602, 36603, 36604, 36605, 36606, 36607, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +527: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 2, 1, 2, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 1, 2, 1, 2, 1, 1, 1, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 23592, 45353, 38635, 48578, 48578, 48578, 48578, 24159, 7242, 26292, 46845, 11062, 20553, 48578, 20147, 48578, 48578, 48578, 48578, 26329, 42753, 48578, 33642, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 19414, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 43130, 28881, 48578, 48578, 48578, 19036, 48578, 45657, 48578, 48578, 17283, 48578, 43488, 8536, 7401, 39197, 28509, 48578, 48578, 48578, 12790, 20280, 29331, 48578, 48578, 44609, 11316, 45230, 48578, 9801, 48578, 46235, 33286, 48578, 29560, 16361, 46236, 48578, 48578, 48578, 48578, 48578, 24172, 13495, 48578, 11066, 48578, 48429, 30253, 48578, 48578, 33762, 25640, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 34668, 48578, 21238, 25340, 48578, 48578, 22520, 23456, 48578, 40774, 21239, 48578, 11334, 48578, 48578, 48578, 45009, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 26596, 40294, 21529, 19858, 48578, 45014, 48578, 48578, 48578, 20169, 48578, 17259, 48578, 33066, 19051, 31379, 48578, 33294, 48431, 48578, 48578, 25925, 18494, 11141, 33557, 38382, 19625, 47914, 39469, 42607, 17047, 23268, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 36608, 36609, 36610, 36611, 36612, 36613, 36614, 36615, 36616, 36617, 36618, 36619, 36620, 36621, 36622, 36623, 36624, 36625, 36626, 36627, 36628, 36629, 0, 0, 0, 36633, 36634, 36635, 36636, 0, 0, 0, 0, 0, 0, 36643, 0, 36645, 36646, 36647, 36648, 0, 0, 36651, 0, 36653, 36654, 36655, 36656, 36657, 36658, 36659, 36660, 36661, 36662, 36663, 36664, 36665, 36666, 0, 36668, 36669, 36670, 36671, 36672, 36673, 36674, 36675, 36676, 36677, 36678, 36679, 36680, 36681, 36682, 36683, 36684, 36685, 36686, 36687, 36688, 36689, 36690, 36691, 36692, 36693, 36694, 36695, 36696, 36697, 36698, 36699, 0, 0, 36702, 36703, 36704, 0, 36706, 0, 36708, 36709, 0, 36711, 0, 0, 0, 0, 0, 36717, 36718, 36719, 0, 0, 0, 36723, 36724, 0, 0, 0, 36728, 0, 36730, 0, 0, 36733, 0, 0, 0, 36737, 36738, 36739, 36740, 36741, 0, 0, 36744, 0, 36746, 0, 0, 36749, 36750, 0, 0, 36753, 36754, 36755, 36756, 36757, 36758, 36759, 36760, 36761, 36762, 36763, 36764, 36765, 36766, 36767, 36768, 36769, 0, 36771, 0, 0, 36774, 36775, 0, 0, 36778, 0, 0, 36781, 0, 36783, 36784, 36785, 0, 36787, 36788, 36789, 36790, 36791, 36792, 36793, 36794, 36795, 36796, 36797, 36798, 36799, 36800, 36801, 36802, 36803, 36804, 36805, 0, 0, 0, 0, 36810, 0, 36812, 36813, 36814, 0, 36816, 0, 36818, 0, 0, 0, 36822, 0, 0, 36825, 36826, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36838, 36839, 36840, 36841, 36842, 36843, 36844, 36845, 36846, 36847, 36848, 36849, 36850, 36851, 36852, 36853, 36854, 36855, 36856, 36857, 36858, 36859, 36860, 36861, 36862, 36863, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +528: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 47283, 48578, 48578, 26025, 48578, 9106, 34224, 43791, 22914, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 47052, 40149, 48578, 48578, 42511, 14252, 26202, 17370, 42512, 48578, 48578, 48578, 48578, 26478, 11582, 14602, 46764, 43794, 38239, 37469, 7346, 44344, 48578, 48578, 18407, 48578, 25076, 21315, 45256, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 45396, 13830, 48578, 19873, 48578, 48578, 48578, 38326, 48578, 19638, 38874, 48578, 45988, 37135, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 44345, 48578, 48578, 48578, 48578, 25086, 48578, 48578, 47092, 34157, 48578, 23868, 23557, 38018, 29465, 10755, 43763, 13560, 48578, 13561, 48578, 8070, 31455, 34685, 48578, 46768, 48578, 48578, 48578, 48578, 48578, 25087, 48578, 29641, 48578, 46179, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 29195, 48578, 48578, 40319, 19652, 23558, 43711, 9713, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 23895, 48578, 48578, 48578, 48578, 48578, 48578, 26350, 48578, 48578, 48578, 25654, 39157, 48578, 48578, 48578, 25233, 48578, 48578, 16803, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 40503, 48578, 48578, 48578, 24222, 11610, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 36864, 36865, 36866, 36867, 36868, 36869, 36870, 36871, 36872, 36873, 36874, 36875, 36876, 36877, 36878, 36879, 36880, 0, 36882, 36883, 0, 36885, 0, 0, 0, 0, 36890, 36891, 36892, 36893, 36894, 36895, 36896, 36897, 36898, 36899, 36900, 36901, 36902, 36903, 36904, 36905, 36906, 36907, 36908, 36909, 36910, 36911, 36912, 36913, 36914, 36915, 36916, 36917, 36918, 36919, 36920, 0, 0, 36923, 36924, 0, 0, 0, 0, 0, 36930, 36931, 36932, 36933, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36943, 36944, 0, 36946, 0, 0, 0, 36950, 36951, 36952, 36953, 36954, 36955, 36956, 36957, 36958, 36959, 36960, 36961, 36962, 36963, 36964, 36965, 36966, 0, 0, 36969, 0, 36971, 36972, 36973, 0, 36975, 0, 0, 36978, 0, 0, 36981, 36982, 36983, 36984, 36985, 36986, 36987, 36988, 36989, 36990, 36991, 36992, 36993, 36994, 36995, 36996, 36997, 36998, 36999, 37000, 37001, 0, 37003, 37004, 37005, 37006, 0, 37008, 37009, 0, 0, 37012, 0, 0, 0, 0, 0, 0, 0, 37020, 0, 37022, 0, 0, 0, 37026, 0, 37028, 37029, 37030, 37031, 37032, 0, 37034, 0, 37036, 0, 37038, 37039, 37040, 37041, 37042, 37043, 37044, 37045, 37046, 37047, 37048, 37049, 37050, 37051, 37052, 37053, 37054, 0, 37056, 37057, 0, 0, 0, 0, 0, 37063, 37064, 37065, 37066, 37067, 37068, 37069, 37070, 37071, 37072, 37073, 37074, 37075, 37076, 37077, 0, 37079, 37080, 37081, 37082, 37083, 37084, 0, 37086, 37087, 37088, 0, 0, 37091, 37092, 37093, 0, 37095, 37096, 0, 37098, 37099, 37100, 37101, 37102, 37103, 37104, 37105, 37106, 0, 37108, 37109, 37110, 0, 0, 37113, 37114, 37115, 37116, 37117, 37118, 37119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +529: 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 1, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 31682, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 20200, 12666, 20316, 31706, 40345, 43799, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 17107, 48578, 46316, 33766, 27301, 18611, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 11919, 32856, 33040, 19320, 42625, 48578, 12797, 48578, 26278, 48578, 43276, 48578, 48578, 48578, 48578, 48578, 48578, 9292, 29418, 35971, 14115, 45399, 11824, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 45800, 48578, 39041, 26802, 48578, 23484, 45214, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 14276, 48578, 48578, 48578, 13282, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 16624, 48578, 48578, 48578, 18698, 48578, 48578, 48578, 34420, 20331, 48578, 48578, 45897, 19675, 18699, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 37697, 26437, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 13571, 48578, 48578, 48578, 48578, 48578, 24820, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 28752, 28269, 21564, 44952, 48578, 48578, 42145, 11382, 48578, 48578, 48578, 9522, 24278, 13888, 28270, 28271, 48578, 48578, 48578, 48578, 48578, 32639, 48578, 48578, 48578, 48578, 44958, 48578, 48578, 43987, 48578, 43318, 48578, 17023, 48578, 48578, 48578, 12544, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 46323, 27253, 13196, 48578, 48578, 46324, 48578, 48578, 48578, 22963, 48578, 17220, 35112, 17591, 19360, 46199, 48578, 48578, 48578, 9012, 48578, 37855, 36938, 48578, 37031, 48578, 48578, 15752, 25750, 32201, 19174, 47664, 32318, 48578, 17904, 48578, 12550, 17617, 35866, 16567, 48578, 44515, 48578, 41523, 48578, 48578, 37546, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 37120, 37121, 37122, 37123, 37124, 37125, 37126, 0, 37128, 37129, 37130, 37131, 37132, 37133, 37134, 37135, 37136, 0, 0, 0, 0, 0, 0, 37143, 37144, 37145, 37146, 37147, 37148, 37149, 37150, 0, 37152, 0, 0, 0, 0, 37157, 37158, 37159, 37160, 37161, 37162, 37163, 37164, 37165, 37166, 37167, 37168, 0, 0, 0, 0, 0, 37174, 0, 37176, 0, 37178, 0, 37180, 37181, 37182, 37183, 37184, 37185, 0, 0, 0, 0, 0, 0, 37192, 37193, 37194, 37195, 37196, 37197, 37198, 37199, 37200, 37201, 37202, 0, 37204, 0, 0, 37207, 0, 0, 37210, 37211, 37212, 37213, 37214, 37215, 37216, 0, 37218, 37219, 37220, 0, 37222, 37223, 37224, 37225, 37226, 37227, 37228, 0, 37230, 37231, 37232, 0, 37234, 37235, 37236, 0, 0, 37239, 37240, 0, 0, 0, 37244, 37245, 37246, 37247, 37248, 37249, 37250, 37251, 37252, 0, 0, 37255, 37256, 37257, 37258, 37259, 37260, 37261, 37262, 0, 37264, 37265, 37266, 37267, 37268, 0, 37270, 37271, 37272, 37273, 37274, 37275, 37276, 37277, 37278, 37279, 37280, 37281, 37282, 0, 0, 0, 0, 37287, 37288, 0, 0, 37291, 37292, 37293, 0, 0, 0, 0, 0, 37299, 37300, 37301, 37302, 37303, 0, 37305, 37306, 37307, 37308, 0, 37310, 37311, 0, 37313, 0, 37315, 0, 37317, 37318, 37319, 0, 37321, 37322, 37323, 37324, 37325, 37326, 37327, 37328, 0, 0, 0, 37332, 37333, 0, 37335, 37336, 37337, 0, 37339, 0, 0, 0, 0, 0, 37345, 37346, 37347, 0, 37349, 0, 0, 37352, 0, 37354, 37355, 0, 0, 0, 0, 0, 0, 37362, 0, 37364, 0, 0, 0, 0, 37369, 0, 37371, 0, 37373, 37374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +530: 1, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 32383, 48578, 48578, 48578, 48578, 22136, 29178, 48578, 48578, 32179, 46742, 48578, 48578, 25315, 38429, 40446, 12199, 48578, 44762, 44914, 48578, 48578, 48578, 27899, 48578, 44042, 48578, 48578, 48578, 48578, 38545, 48578, 46016, 48578, 48578, 41020, 48578, 48578, 32514, 16963, 44610, 48578, 48578, 48578, 48578, 48578, 39266, 8690, 44063, 48578, 43373, 48578, 41082, 44070, 23956, 48578, 48578, 48578, 48578, 48578, 36788, 48578, 48578, 46317, 48578, 48578, 48578, 48578, 45301, 15534, 23424, 48578, 48578, 32308, 48578, 48578, 48578, 48578, 21706, 48578, 11469, 12141, 37248, 7246, 48578, 48578, 48578, 48078, 48578, 48578, 18727, 42922, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 8034, 10704, 48578, 48578, 32640, 48578, 48578, 48578, 48578, 48578, 48578, 25839, 48578, 48578, 20872, 34291, 48578, 48381, 48578, 48578, 48578, 48578, 48578, 48578, 42923, 48578, 48578, 14904, 14905, 48578, 48578, 48578, 27841, 48578, 48578, 48578, 34619, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 7526, 48578, 29835, 30104, 30168, 20003, 47301, 48578, 31795, 48578, 48578, 48578, 44084, 35914, 48578, 48578, 32735, 48578, 27369, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 42946, 48578, 32738, 48578, 48578, 25024, 31717, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 18917, 19752, 48578, 48578, 48578, 48578, 15857, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 44002, 9740, 12676, 43322, 48578, 44497, 8132, 48578, 9138, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 37377, 37378, 37379, 37380, 0, 0, 37383, 37384, 0, 0, 37387, 37388, 0, 0, 0, 0, 37393, 0, 0, 37396, 37397, 37398, 0, 37400, 0, 37402, 37403, 37404, 37405, 0, 37407, 0, 37409, 37410, 0, 37412, 37413, 0, 0, 0, 37417, 37418, 37419, 37420, 37421, 0, 0, 0, 37425, 0, 37427, 0, 0, 0, 37431, 37432, 37433, 37434, 37435, 0, 37437, 37438, 0, 37440, 37441, 37442, 37443, 0, 0, 0, 37447, 37448, 0, 37450, 37451, 37452, 37453, 0, 37455, 0, 0, 0, 0, 37460, 37461, 37462, 0, 37464, 37465, 0, 0, 37468, 37469, 37470, 37471, 37472, 37473, 37474, 37475, 37476, 37477, 37478, 37479, 37480, 0, 0, 37483, 37484, 0, 37486, 37487, 37488, 37489, 37490, 37491, 0, 37493, 37494, 0, 0, 37497, 0, 37499, 37500, 37501, 37502, 37503, 37504, 0, 37506, 37507, 0, 0, 37510, 37511, 37512, 0, 37514, 37515, 37516, 0, 37518, 37519, 37520, 37521, 37522, 37523, 37524, 37525, 37526, 37527, 37528, 37529, 37530, 0, 37532, 0, 0, 0, 0, 0, 37538, 0, 37540, 37541, 37542, 0, 0, 37545, 37546, 0, 37548, 0, 37550, 37551, 37552, 37553, 37554, 37555, 37556, 37557, 0, 37559, 0, 37561, 37562, 0, 0, 37565, 37566, 37567, 37568, 37569, 37570, 37571, 37572, 37573, 37574, 37575, 37576, 37577, 37578, 37579, 37580, 37581, 37582, 37583, 37584, 37585, 37586, 37587, 37588, 37589, 37590, 37591, 37592, 0, 0, 37595, 37596, 37597, 37598, 0, 37600, 37601, 37602, 37603, 37604, 37605, 37606, 0, 0, 0, 0, 37611, 0, 0, 37614, 0, 37616, 37617, 37618, 37619, 37620, 37621, 37622, 37623, 37624, 37625, 37626, 37627, 37628, 37629, 37630, 37631, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +531: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 31256, 48578, 48578, 48578, 48578, 48578, 9817, 48578, 40383, 48578, 10716, 48578, 48578, 48578, 48578, 45466, 23174, 48578, 14757, 48578, 48578, 35673, 16588, 48578, 48578, 13929, 48578, 48578, 48578, 48578, 16765, 48578, 46727, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 10016, 28373, 48578, 48578, 18164, 48578, 36207, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 43029, 48578, 48578, 28784, 45826, 18575, 48578, 13697, 48578, 30762, 9661, 48578, 48578, 11447, 48578, 48578, 48578, 12148, 48578, 48578, 48578, 46956, 16109, 48578, 48578, 48578, 38300, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 13698, 48578, 48578, 48578, 10724, 48578, 48578, 48578, 7461, 23377, 48578, 38361, 48578, 48578, 48578, 43584, 48578, 29949, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 45689, 47633, 48578, 35276, 48578, 48578, 48578, 48578, 28592, 48578, 48578, 48578, 48578, 48578, 48578, 47464, 9931, 48578, 48578, 8295, 28502, 46743, 19009, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 39299, 48578, 46983, 38790, 48578, 48578, 20517, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 13781, 15120, 48578, 48578, 20606, 10241, 7793, 48578, 48578, 48578, 48578, 48578, 25066, 48578, 48578, 48578, 48578, 48578, 48578, 7540, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 37632, 37633, 37634, 37635, 37636, 37637, 37638, 37639, 37640, 37641, 37642, 37643, 37644, 37645, 37646, 37647, 37648, 37649, 37650, 37651, 0, 37653, 37654, 37655, 37656, 37657, 0, 37659, 0, 37661, 0, 37663, 37664, 37665, 37666, 0, 0, 37669, 0, 37671, 37672, 0, 0, 37675, 37676, 0, 37678, 37679, 37680, 37681, 0, 37683, 0, 37685, 37686, 37687, 37688, 37689, 37690, 37691, 37692, 37693, 37694, 37695, 37696, 37697, 37698, 37699, 37700, 37701, 37702, 37703, 37704, 37705, 37706, 37707, 0, 0, 37710, 37711, 0, 37713, 0, 37715, 37716, 37717, 37718, 37719, 37720, 37721, 37722, 37723, 37724, 37725, 37726, 37727, 37728, 0, 37730, 37731, 0, 0, 0, 37735, 0, 37737, 0, 0, 37740, 37741, 0, 37743, 37744, 37745, 0, 37747, 37748, 37749, 0, 0, 37752, 37753, 37754, 0, 37756, 37757, 37758, 37759, 37760, 37761, 37762, 37763, 37764, 37765, 37766, 37767, 37768, 0, 37770, 37771, 37772, 0, 37774, 37775, 37776, 0, 0, 37779, 0, 37781, 37782, 37783, 0, 37785, 0, 37787, 37788, 37789, 37790, 37791, 37792, 37793, 37794, 37795, 37796, 37797, 37798, 37799, 37800, 37801, 37802, 0, 0, 37805, 0, 37807, 37808, 37809, 37810, 0, 37812, 37813, 37814, 37815, 37816, 37817, 0, 0, 37820, 37821, 0, 0, 0, 0, 37826, 37827, 37828, 37829, 37830, 37831, 37832, 37833, 37834, 37835, 37836, 37837, 37838, 37839, 37840, 37841, 37842, 37843, 37844, 37845, 37846, 37847, 0, 37849, 0, 0, 37852, 37853, 0, 37855, 37856, 37857, 37858, 37859, 37860, 37861, 37862, 37863, 37864, 0, 0, 37867, 37868, 0, 0, 0, 37872, 37873, 37874, 37875, 37876, 0, 37878, 37879, 37880, 37881, 37882, 37883, 0, 37885, 37886, 37887, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +532: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 45419, 11268, 48578, 48578, 37416, 48578, 48578, 17466, 22514, 43426, 48578, 39643, 48578, 48578, 48578, 48578, 48578, 48578, 15461, 8867, 48578, 23158, 48578, 48578, 48578, 31446, 33063, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 12158, 42427, 48578, 48578, 48578, 46052, 48578, 24839, 48578, 13799, 48578, 48578, 48578, 48578, 23817, 41267, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 47026, 48578, 22913, 48578, 48578, 48578, 35482, 38325, 48578, 48578, 48578, 22915, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 20284, 48578, 48578, 48578, 48578, 48578, 48578, 20525, 48578, 48578, 48578, 48578, 47798, 48578, 34774, 44334, 48578, 48578, 33067, 48578, 44630, 23667, 48578, 48578, 48578, 48578, 48578, 44647, 48578, 31096, 21928, 48578, 25077, 48578, 48578, 34570, 39667, 48578, 48578, 15611, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 35844, 48578, 48578, 48578, 48578, 36596, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 27233, 48578, 12840, 48578, 27463, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 18898, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 14051, 48578, 48578, 48578, 25088, 48578, 48578, 48578, 48578, 23561, 43447, 23673, 48578, 20640, 48578, 19304, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 17017, 48578, 48578, 45995, 48578, 48578, 48578, 48578, 48578, 48578, 27357, 48578, 48578, 23166, 48578, 48578, 48578, 48578, 48578, 48578, 14056, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 43451, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 37888, 37889, 37890, 37891, 37892, 37893, 37894, 37895, 37896, 37897, 37898, 0, 0, 37901, 37902, 0, 37904, 37905, 0, 0, 0, 37909, 0, 37911, 37912, 37913, 37914, 37915, 37916, 0, 0, 37919, 0, 37921, 37922, 37923, 0, 0, 37926, 37927, 37928, 37929, 37930, 37931, 37932, 37933, 37934, 37935, 37936, 37937, 37938, 37939, 37940, 37941, 37942, 37943, 37944, 37945, 37946, 37947, 37948, 37949, 37950, 0, 0, 37953, 37954, 37955, 0, 37957, 0, 37959, 0, 37961, 37962, 37963, 37964, 0, 0, 37967, 37968, 37969, 37970, 37971, 37972, 37973, 37974, 37975, 0, 37977, 0, 37979, 37980, 37981, 0, 0, 37984, 37985, 37986, 0, 37988, 37989, 37990, 37991, 37992, 37993, 37994, 37995, 37996, 37997, 37998, 0, 38000, 38001, 38002, 38003, 38004, 38005, 0, 38007, 38008, 38009, 38010, 0, 38012, 0, 0, 38015, 38016, 0, 38018, 0, 0, 38021, 38022, 38023, 38024, 38025, 0, 38027, 0, 0, 38030, 0, 38032, 38033, 0, 0, 38036, 38037, 0, 38039, 38040, 38041, 38042, 38043, 38044, 38045, 38046, 38047, 38048, 38049, 0, 38051, 38052, 38053, 38054, 0, 38056, 38057, 38058, 38059, 38060, 38061, 38062, 0, 38064, 0, 38066, 0, 38068, 38069, 38070, 38071, 38072, 38073, 38074, 38075, 38076, 38077, 0, 38079, 38080, 38081, 38082, 38083, 38084, 38085, 38086, 38087, 38088, 0, 38090, 38091, 38092, 0, 38094, 38095, 38096, 38097, 0, 0, 0, 38101, 0, 38103, 0, 38105, 38106, 38107, 38108, 38109, 38110, 38111, 38112, 38113, 38114, 0, 38116, 38117, 0, 38119, 38120, 38121, 38122, 38123, 38124, 0, 38126, 38127, 0, 38129, 38130, 38131, 38132, 38133, 38134, 0, 38136, 38137, 38138, 38139, 38140, 38141, 38142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +533: 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 24074, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 16232, 48578, 48578, 48578, 48578, 48578, 36791, 42177, 48578, 37728, 48578, 48578, 48578, 48578, 20898, 48578, 48578, 48578, 48578, 40640, 48578, 34637, 48578, 48578, 48578, 48578, 48578, 48578, 38060, 48578, 48578, 44566, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 45877, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 7486, 48578, 48578, 48578, 48578, 48578, 33202, 11096, 48578, 22982, 48578, 48578, 48578, 21796, 17148, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 27483, 48578, 48578, 48578, 48578, 17435, 48578, 48578, 11040, 48578, 48578, 48578, 25316, 48578, 48171, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 23290, 48578, 48578, 47141, 48578, 46090, 48578, 13298, 16269, 45101, 12343, 29131, 48578, 48578, 48578, 48578, 48578, 48578, 9013, 48578, 32413, 9902, 48578, 48578, 48578, 32743, 43336, 9903, 48578, 48578, 46957, 48578, 48578, 16590, 29117, 33881, 48578, 48578, 35277, 48578, 48578, 38337, 10795, 48578, 48578, 48578, 48578, 48578, 48578, 27595, 46748, 48578, 48578, 30439, 48578, 48578, 16254, 48578, 48578, 48578, 48578, 25812, 48578, 48048, 48578, 48578, 48578, 48578, 12531, 48578, 39578, 48578, 32802, 48578, 48578, 48578, 48578, 48578, 29662, 48578, 48578, 48578, 48578, 48578, 48578, 38683, 48578, 48578, 48578, 22961, 48578, 16870, 11495, 21037, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 21038, 38690, 48578, 22882, 48578, 16330, 45751, 14565, 48578, 48578, 40206, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 38144, 38145, 38146, 38147, 38148, 38149, 38150, 0, 38152, 38153, 38154, 38155, 38156, 38157, 38158, 38159, 38160, 38161, 38162, 38163, 38164, 0, 38166, 38167, 38168, 38169, 38170, 0, 0, 38173, 0, 38175, 38176, 38177, 38178, 0, 38180, 38181, 38182, 38183, 0, 38185, 0, 38187, 38188, 38189, 38190, 38191, 38192, 0, 38194, 38195, 0, 38197, 38198, 38199, 38200, 38201, 38202, 38203, 38204, 38205, 38206, 38207, 38208, 0, 38210, 38211, 38212, 38213, 38214, 38215, 38216, 0, 38218, 38219, 38220, 38221, 38222, 0, 0, 38225, 0, 38227, 38228, 38229, 0, 0, 38232, 38233, 38234, 38235, 38236, 38237, 38238, 38239, 38240, 38241, 0, 38243, 38244, 38245, 38246, 0, 38248, 38249, 0, 38251, 38252, 38253, 0, 38255, 0, 38257, 38258, 38259, 38260, 38261, 38262, 38263, 38264, 38265, 38266, 38267, 38268, 38269, 38270, 38271, 38272, 38273, 38274, 38275, 38276, 38277, 38278, 38279, 38280, 0, 38282, 38283, 0, 38285, 0, 38287, 0, 0, 0, 0, 0, 38293, 38294, 38295, 38296, 38297, 38298, 0, 38300, 0, 0, 38303, 38304, 38305, 0, 0, 0, 38309, 38310, 0, 38312, 38313, 0, 0, 0, 38317, 38318, 0, 38320, 38321, 0, 0, 38324, 38325, 38326, 38327, 38328, 38329, 0, 0, 38332, 38333, 0, 38335, 38336, 0, 38338, 38339, 38340, 38341, 0, 38343, 0, 38345, 38346, 38347, 38348, 0, 38350, 0, 38352, 0, 38354, 38355, 38356, 38357, 38358, 0, 38360, 38361, 38362, 38363, 38364, 38365, 0, 38367, 38368, 38369, 0, 38371, 0, 0, 0, 38375, 38376, 38377, 38378, 38379, 38380, 38381, 38382, 38383, 38384, 38385, 0, 0, 38388, 0, 38390, 0, 0, 0, 38394, 38395, 0, 38397, 38398, 38399, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +534: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 18565, 48578, 28707, 39067, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 11857, 48578, 16944, 48578, 48578, 48578, 38721, 48578, 48578, 48578, 48578, 48578, 30844, 48578, 48578, 26728, 48578, 48578, 46201, 48578, 48578, 22008, 48578, 48578, 48578, 8856, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 8857, 48578, 48578, 48578, 48578, 32208, 48578, 48578, 48578, 48578, 48578, 39089, 48578, 48578, 20680, 48578, 32218, 46833, 36500, 22380, 48578, 48578, 48578, 48578, 33139, 48578, 48578, 48006, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 20930, 48578, 48578, 48578, 48578, 48578, 48578, 8894, 48578, 13550, 48413, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 41786, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 8537, 48578, 48578, 48578, 22996, 48578, 41916, 37890, 48578, 18543, 48578, 17538, 48578, 48578, 48578, 48578, 16176, 48578, 48578, 27140, 48578, 48578, 24010, 48578, 12973, 48578, 9036, 18551, 48578, 48578, 37475, 22240, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 10815, 48578, 48578, 48578, 48578, 7634, 21544, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 12893, 48578, 46063, 48578, 12230, 34180, 17499, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 42434, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 8405, 29832, 42276, 48578, 48578, 12767, 9539, 30046, 44964, 31394, 29687, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 37405, 40207, 48578, 48578, 48578, 48578, 48578, 48578, 42440, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 38400, 38401, 38402, 38403, 38404, 38405, 38406, 38407, 38408, 38409, 38410, 38411, 38412, 0, 38414, 0, 0, 38417, 38418, 38419, 38420, 38421, 38422, 38423, 38424, 38425, 38426, 0, 38428, 0, 38430, 38431, 38432, 0, 38434, 38435, 38436, 38437, 38438, 0, 38440, 38441, 0, 38443, 38444, 0, 38446, 38447, 0, 38449, 38450, 38451, 0, 38453, 38454, 38455, 38456, 38457, 38458, 38459, 38460, 38461, 38462, 38463, 0, 38465, 38466, 38467, 38468, 0, 38470, 38471, 38472, 38473, 38474, 0, 38476, 38477, 0, 38479, 0, 0, 0, 0, 38484, 38485, 38486, 38487, 0, 38489, 38490, 0, 38492, 38493, 38494, 38495, 38496, 38497, 38498, 0, 38500, 38501, 38502, 38503, 38504, 38505, 0, 38507, 0, 0, 38510, 38511, 38512, 38513, 38514, 38515, 38516, 38517, 0, 38519, 38520, 38521, 38522, 38523, 38524, 38525, 38526, 38527, 38528, 0, 38530, 38531, 38532, 0, 38534, 0, 0, 38537, 0, 38539, 0, 38541, 38542, 38543, 38544, 0, 38546, 38547, 0, 38549, 38550, 0, 38552, 0, 38554, 0, 0, 38557, 38558, 0, 0, 38561, 38562, 38563, 38564, 38565, 38566, 38567, 0, 38569, 38570, 38571, 38572, 0, 0, 38575, 38576, 38577, 38578, 38579, 38580, 38581, 38582, 0, 38584, 0, 38586, 0, 0, 0, 38590, 38591, 38592, 38593, 38594, 38595, 38596, 38597, 38598, 38599, 38600, 38601, 38602, 38603, 0, 38605, 38606, 38607, 38608, 38609, 38610, 38611, 38612, 38613, 38614, 0, 0, 0, 38618, 38619, 0, 0, 0, 0, 0, 0, 38626, 38627, 38628, 38629, 38630, 38631, 38632, 38633, 38634, 38635, 38636, 38637, 38638, 38639, 38640, 38641, 38642, 38643, 38644, 0, 0, 38647, 38648, 38649, 38650, 38651, 38652, 0, 38654, 38655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +535: 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 2, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 14566, 16501, 18320, 32865, 48578, 48578, 48578, 48578, 48578, 32446, 15073, 18708, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32812, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 26865, 48578, 48578, 13775, 18979, 39068, 40637, 48578, 48578, 32447, 42576, 48578, 48578, 46202, 48578, 19771, 15860, 44159, 48578, 30304, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 11237, 11858, 46203, 28708, 48578, 31418, 48578, 48578, 9780, 48578, 28709, 35393, 48578, 48578, 48578, 48578, 48578, 9781, 10555, 42189, 13690, 37705, 48578, 28687, 27258, 48578, 48578, 48578, 48578, 48578, 29032, 39083, 48578, 42153, 48578, 9904, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 40232, 27588, 22791, 48578, 11883, 48578, 34054, 29369, 18344, 48578, 22702, 39623, 48578, 18001, 31732, 48161, 48578, 48578, 15245, 28221, 48578, 28588, 48578, 22929, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 28457, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 15899, 48578, 48578, 48578, 18002, 48578, 7256, 48578, 34118, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 40649, 11734, 20594, 48578, 45690, 39873, 24787, 32137, 48578, 48578, 33545, 40258, 48578, 16225, 27590, 9868, 48578, 14298, 48578, 48578, 48578, 13545, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 38660, 38661, 38662, 38663, 38664, 0, 0, 0, 38668, 38669, 38670, 38671, 38672, 38673, 38674, 38675, 38676, 38677, 38678, 38679, 38680, 38681, 0, 38683, 38684, 38685, 38686, 38687, 38688, 38689, 0, 38691, 38692, 0, 0, 0, 0, 38697, 38698, 0, 0, 38701, 38702, 0, 38704, 0, 0, 0, 38708, 0, 38710, 38711, 38712, 38713, 38714, 38715, 38716, 38717, 38718, 38719, 38720, 38721, 38722, 38723, 38724, 38725, 38726, 38727, 0, 0, 0, 0, 38732, 0, 38734, 38735, 0, 38737, 0, 0, 38740, 38741, 38742, 38743, 38744, 0, 0, 0, 0, 0, 38750, 0, 0, 38753, 38754, 38755, 38756, 38757, 0, 0, 38760, 0, 38762, 0, 38764, 38765, 38766, 38767, 38768, 38769, 38770, 38771, 38772, 38773, 38774, 38775, 38776, 38777, 38778, 38779, 38780, 38781, 38782, 38783, 38784, 38785, 38786, 38787, 38788, 38789, 38790, 38791, 38792, 38793, 38794, 38795, 38796, 38797, 38798, 38799, 38800, 38801, 38802, 38803, 38804, 38805, 38806, 38807, 0, 0, 0, 38811, 0, 38813, 0, 0, 0, 38817, 0, 0, 38820, 0, 0, 0, 38824, 38825, 0, 0, 38828, 0, 38830, 0, 38832, 38833, 38834, 38835, 38836, 38837, 38838, 38839, 38840, 38841, 38842, 38843, 38844, 38845, 0, 38847, 38848, 38849, 38850, 38851, 38852, 38853, 38854, 38855, 38856, 38857, 38858, 38859, 38860, 0, 38862, 38863, 38864, 0, 38866, 0, 38868, 0, 38870, 38871, 38872, 38873, 38874, 38875, 38876, 38877, 0, 0, 0, 38881, 0, 0, 0, 0, 38886, 38887, 0, 0, 38890, 0, 0, 0, 38894, 0, 38896, 38897, 38898, 0, 38900, 38901, 38902, 38903, 38904, 38905, 38906, 38907, 38908, 38909, 38910, 38911, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +536: 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 48578, 48578, 48578, 48578, 48578, 48578, 22861, 48578, 48578, 48578, 36646, 34126, 48578, 48578, 48578, 33180, 48578, 48578, 16607, 48578, 48578, 48578, 17531, 47006, 42130, 36833, 8514, 48578, 27791, 48578, 15282, 48578, 48578, 48578, 48578, 48578, 48578, 31216, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 47007, 48578, 48578, 35149, 48578, 48578, 28715, 22037, 48578, 42122, 48578, 18723, 48578, 48578, 48578, 8264, 27792, 10242, 48578, 48578, 48578, 26154, 33702, 9325, 45605, 34930, 48578, 48452, 44941, 45320, 26270, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32061, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 27558, 48578, 48578, 48578, 48578, 48578, 47691, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 12565, 48578, 44774, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 21822, 48578, 48578, 18949, 30799, 48578, 45194, 48578, 26713, 48578, 27828, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 29967, 48578, 21246, 48578, 48578, 48578, 48578, 48578, 42169, 48578, 48578, 48578, 48578, 48578, 48578, 10886, 28608, 35159, 48578, 48578, 48578, 48578, 48578, 34682, 48578, 48578, 29968, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 17371, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 42172, 48578, 28429, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 34408, 48578, 44781, 48578, 9458, 20992, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 40321, 48578, 48578, 48578, 41687, 39932, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 38912, 38913, 38914, 38915, 38916, 38917, 0, 38919, 38920, 38921, 0, 0, 38924, 38925, 38926, 0, 38928, 38929, 0, 38931, 38932, 38933, 0, 0, 0, 0, 0, 38939, 0, 38941, 0, 38943, 38944, 38945, 38946, 38947, 38948, 0, 38950, 38951, 38952, 38953, 38954, 38955, 38956, 38957, 38958, 38959, 38960, 38961, 38962, 38963, 38964, 38965, 38966, 38967, 38968, 0, 38970, 38971, 0, 38973, 38974, 0, 0, 38977, 0, 38979, 0, 38981, 38982, 38983, 0, 0, 0, 38987, 38988, 38989, 0, 0, 0, 0, 0, 38995, 0, 0, 0, 0, 39000, 39001, 39002, 39003, 39004, 39005, 39006, 39007, 39008, 39009, 39010, 39011, 39012, 0, 39014, 39015, 39016, 39017, 39018, 39019, 39020, 39021, 39022, 39023, 39024, 39025, 39026, 39027, 39028, 39029, 39030, 39031, 39032, 39033, 0, 39035, 39036, 39037, 39038, 39039, 0, 39041, 39042, 39043, 39044, 39045, 39046, 39047, 0, 39049, 0, 39051, 39052, 39053, 39054, 39055, 39056, 39057, 0, 39059, 39060, 0, 0, 39063, 0, 39065, 0, 39067, 0, 39069, 39070, 39071, 39072, 39073, 39074, 39075, 39076, 39077, 39078, 39079, 39080, 39081, 39082, 39083, 39084, 39085, 39086, 39087, 39088, 0, 39090, 0, 39092, 39093, 39094, 39095, 39096, 0, 39098, 39099, 39100, 39101, 39102, 39103, 0, 0, 0, 39107, 39108, 39109, 39110, 39111, 0, 39113, 39114, 0, 39116, 39117, 39118, 39119, 39120, 39121, 39122, 39123, 0, 39125, 39126, 39127, 39128, 39129, 39130, 39131, 39132, 39133, 39134, 39135, 0, 39137, 0, 39139, 39140, 39141, 39142, 39143, 39144, 39145, 0, 39147, 0, 39149, 0, 0, 39152, 39153, 39154, 39155, 39156, 39157, 39158, 39159, 39160, 0, 39162, 39163, 39164, 0, 0, 39167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +537: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 40330, 24533, 48578, 14605, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 47614, 48578, 28182, 48578, 47673, 48578, 48578, 23164, 48578, 48578, 48578, 26385, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 30842, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 37560, 48578, 48578, 48578, 48578, 48578, 48578, 34577, 48578, 10637, 48578, 42895, 48578, 48578, 48578, 48578, 17493, 48578, 20754, 48578, 48578, 18974, 48578, 40008, 11615, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 19753, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 28531, 48578, 28534, 36416, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 21883, 48578, 27772, 48578, 48578, 48578, 48578, 24130, 48578, 47221, 48578, 40906, 48578, 31744, 15262, 48578, 8968, 48578, 48578, 48578, 19811, 48578, 48578, 30556, 39099, 48578, 48578, 48578, 48578, 48578, 12739, 14335, 48578, 48578, 48578, 48578, 48578, 34564, 36893, 39980, 48578, 29805, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 12405, 48578, 19653, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 40049, 48578, 48578, 48578, 11827, 48578, 48578, 48578, 8918, 32732, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 27517, 48578, 48578, 48578, 48578, 27518, 48578, 34487, 39960, 7995, 37494, 48578, 29472, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 15577, 48578, 18083, 17788, 48578, 47447, 16564, 48578, 48578, 48578, 16879, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 12274, 48578, 48578, 8924, 18805, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 39168, 39169, 39170, 39171, 39172, 39173, 39174, 39175, 39176, 39177, 39178, 0, 0, 39181, 0, 39183, 39184, 39185, 39186, 39187, 39188, 39189, 39190, 0, 39192, 0, 39194, 0, 39196, 39197, 0, 39199, 39200, 39201, 0, 39203, 39204, 39205, 39206, 39207, 39208, 39209, 39210, 0, 39212, 39213, 39214, 39215, 39216, 39217, 39218, 39219, 39220, 39221, 0, 39223, 39224, 39225, 39226, 39227, 39228, 0, 39230, 0, 39232, 0, 39234, 39235, 39236, 39237, 0, 39239, 0, 39241, 39242, 0, 39244, 0, 0, 39247, 39248, 39249, 39250, 39251, 39252, 39253, 39254, 39255, 39256, 39257, 39258, 39259, 39260, 39261, 0, 39263, 39264, 39265, 39266, 39267, 39268, 39269, 0, 39271, 0, 0, 39274, 39275, 39276, 39277, 39278, 39279, 39280, 39281, 39282, 39283, 39284, 39285, 0, 39287, 0, 39289, 39290, 39291, 39292, 0, 39294, 0, 39296, 0, 39298, 0, 0, 39301, 0, 39303, 39304, 39305, 0, 39307, 39308, 0, 0, 39311, 39312, 39313, 39314, 39315, 0, 0, 39318, 39319, 39320, 39321, 39322, 0, 0, 0, 39326, 0, 39328, 39329, 39330, 39331, 39332, 39333, 39334, 39335, 0, 39337, 0, 39339, 39340, 39341, 39342, 39343, 39344, 39345, 39346, 0, 39348, 39349, 39350, 0, 39352, 39353, 39354, 0, 0, 39357, 39358, 39359, 39360, 39361, 39362, 39363, 39364, 39365, 39366, 39367, 39368, 39369, 39370, 39371, 39372, 0, 39374, 39375, 39376, 39377, 0, 39379, 0, 0, 0, 0, 39384, 0, 39386, 39387, 39388, 39389, 39390, 39391, 39392, 39393, 39394, 0, 39396, 0, 0, 39399, 0, 0, 39402, 39403, 39404, 0, 39406, 39407, 39408, 39409, 39410, 39411, 39412, 39413, 39414, 39415, 39416, 0, 39418, 39419, 0, 0, 39422, 39423, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +538: 1, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 9782, 48578, 48578, 48578, 39295, 21717, 48578, 42285, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 14895, 45467, 48578, 48578, 48578, 14954, 48578, 48578, 48578, 48578, 48578, 48578, 21652, 44519, 48578, 48578, 48578, 48578, 48578, 19125, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 20907, 40615, 48578, 28218, 48578, 48578, 48578, 48578, 48578, 29033, 48578, 34055, 48578, 44541, 48578, 48578, 18577, 16091, 37618, 48578, 37363, 31264, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 43532, 48578, 19970, 48578, 48578, 48578, 48578, 48578, 48578, 35614, 48578, 20931, 38792, 38284, 48578, 48578, 48578, 26765, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 42045, 48578, 42209, 48578, 48578, 48578, 48578, 26768, 29181, 48578, 48578, 7422, 48578, 48578, 48578, 25821, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 14215, 48111, 48578, 48578, 48578, 48578, 14216, 48578, 7466, 48578, 48578, 48578, 48578, 19270, 48578, 9716, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 40621, 19847, 48578, 48521, 48578, 30590, 48578, 48578, 48578, 48578, 46552, 48578, 48578, 48578, 48578, 48578, 19438, 30457, 21991, 28906, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 33311, 48578, 48578, 48578, 48578, 48578, 17742, 32762, 31579, 48578, 48578, 48578, 48578, 21699, 48578, 48578, 24534, 48578, 48578, 48578, 48578, 48578, 34228, 48578, 48578, 28618, 39496, 15152, 48578, 48578, 32872, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 39425, 39426, 39427, 0, 0, 39430, 0, 39432, 39433, 39434, 39435, 39436, 39437, 39438, 39439, 39440, 39441, 39442, 39443, 39444, 39445, 0, 0, 39448, 39449, 39450, 0, 39452, 39453, 39454, 39455, 39456, 39457, 0, 0, 39460, 39461, 39462, 39463, 39464, 0, 39466, 39467, 39468, 39469, 39470, 39471, 39472, 39473, 0, 0, 39476, 0, 39478, 39479, 39480, 39481, 39482, 0, 39484, 0, 39486, 0, 39488, 39489, 0, 0, 0, 39493, 0, 0, 39496, 39497, 39498, 39499, 39500, 39501, 39502, 39503, 39504, 39505, 39506, 39507, 39508, 39509, 39510, 39511, 0, 39513, 0, 39515, 39516, 39517, 39518, 39519, 39520, 0, 39522, 0, 0, 0, 39526, 39527, 39528, 0, 39530, 39531, 39532, 39533, 39534, 39535, 39536, 39537, 39538, 39539, 39540, 39541, 0, 39543, 0, 39545, 39546, 39547, 39548, 0, 0, 39551, 39552, 0, 39554, 39555, 39556, 0, 39558, 39559, 39560, 39561, 39562, 39563, 39564, 39565, 39566, 39567, 39568, 0, 0, 39571, 39572, 39573, 39574, 0, 39576, 0, 39578, 39579, 39580, 39581, 0, 39583, 0, 39585, 39586, 39587, 39588, 39589, 39590, 39591, 39592, 39593, 39594, 39595, 39596, 39597, 39598, 39599, 0, 0, 39602, 0, 39604, 0, 39606, 39607, 39608, 39609, 0, 39611, 39612, 39613, 39614, 39615, 0, 0, 0, 0, 39620, 39621, 39622, 39623, 39624, 39625, 39626, 39627, 39628, 39629, 39630, 39631, 39632, 39633, 39634, 39635, 39636, 39637, 39638, 39639, 39640, 39641, 39642, 39643, 39644, 39645, 39646, 0, 39648, 39649, 39650, 39651, 39652, 0, 0, 0, 39656, 39657, 39658, 39659, 0, 39661, 39662, 0, 39664, 39665, 39666, 39667, 39668, 0, 39670, 39671, 0, 0, 0, 39675, 39676, 0, 39678, 39679, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +539: 2, 1, 1, 2, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 48578, 40629, 16933, 48578, 19913, 48578, 27222, 15154, 48578, 33116, 44704, 20800, 27242, 25694, 31206, 48578, 27323, 48578, 48578, 42813, 48578, 25698, 17206, 28624, 23892, 33347, 48578, 48578, 25207, 48578, 44483, 48578, 48578, 48578, 48578, 48578, 48578, 29110, 48578, 48578, 48578, 48578, 48578, 38598, 48578, 48578, 48578, 8676, 48578, 48578, 8677, 41003, 48578, 20123, 48578, 48578, 8679, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 12691, 48578, 48578, 48578, 48578, 47649, 48578, 48578, 48578, 32756, 48578, 48578, 48578, 48578, 34740, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 19935, 48578, 48578, 18938, 48578, 48578, 45839, 48578, 48578, 48578, 7777, 25019, 48578, 40060, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 20231, 34440, 48578, 48578, 48578, 48578, 22577, 48578, 48578, 48578, 16600, 26273, 48578, 48578, 48578, 48578, 48578, 29034, 10178, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 24830, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 28225, 32868, 48578, 48578, 48578, 47008, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 9613, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 24472, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 23611, 48578, 48578, 48578, 9917, 48578, 37698, 48578, 48578, 24335, 48578, 48578, 38577, 29440, 44135, 48578, 15616, 48578, 48578, 48578, 7376, 40633, 34794, 32952, 48578, 48578, 48578, 48578, 48578, 7843, 43989, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 19212, 48578, 48578, 18851, 48578, 48578, 48551, 39854, 48578, 27446, 48578, 48578, 48578, 48578, 15548, 44884, 48578, 9284, 10282, 37204, 48578, 9285, 48578, 48578, 48578, 48578, 48578, 15549, 48578, 36621, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 39680, 0, 0, 39683, 0, 39685, 0, 0, 39688, 0, 0, 0, 0, 0, 0, 39695, 0, 39697, 39698, 0, 39700, 0, 0, 0, 0, 0, 39706, 39707, 0, 39709, 0, 39711, 39712, 39713, 39714, 39715, 39716, 0, 39718, 39719, 39720, 39721, 39722, 0, 39724, 39725, 39726, 0, 39728, 39729, 0, 0, 39732, 0, 39734, 39735, 0, 39737, 39738, 39739, 39740, 39741, 39742, 39743, 39744, 39745, 0, 39747, 39748, 39749, 39750, 0, 39752, 39753, 39754, 0, 39756, 39757, 39758, 39759, 0, 39761, 39762, 39763, 39764, 39765, 39766, 39767, 0, 39769, 39770, 0, 39772, 39773, 0, 39775, 39776, 39777, 0, 0, 39780, 0, 39782, 39783, 39784, 39785, 39786, 39787, 39788, 0, 0, 39791, 39792, 39793, 39794, 0, 39796, 39797, 39798, 0, 0, 39801, 39802, 39803, 39804, 39805, 0, 0, 39808, 39809, 39810, 39811, 39812, 39813, 39814, 39815, 39816, 39817, 39818, 39819, 39820, 39821, 0, 39823, 39824, 39825, 39826, 39827, 39828, 39829, 39830, 39831, 39832, 0, 0, 39835, 39836, 39837, 0, 39839, 39840, 39841, 39842, 39843, 39844, 39845, 0, 39847, 39848, 39849, 39850, 39851, 39852, 39853, 39854, 39855, 0, 39857, 39858, 39859, 39860, 39861, 39862, 39863, 39864, 39865, 39866, 0, 39868, 39869, 39870, 0, 39872, 0, 39874, 39875, 0, 39877, 39878, 0, 0, 0, 39882, 0, 39884, 39885, 39886, 0, 0, 0, 0, 39891, 39892, 39893, 39894, 39895, 0, 0, 39898, 39899, 39900, 39901, 39902, 39903, 39904, 39905, 0, 39907, 39908, 0, 39910, 39911, 0, 0, 39914, 0, 39916, 39917, 39918, 39919, 0, 0, 39922, 0, 0, 0, 39926, 0, 39928, 39929, 39930, 39931, 39932, 0, 39934, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +540: 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1, 2, 1, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 28105, 48578, 48578, 48578, 48578, 18186, 28793, 48578, 48578, 48578, 48578, 18932, 25804, 48578, 36362, 48578, 31376, 31324, 47202, 48578, 48578, 48578, 12791, 48578, 48578, 48578, 25154, 48578, 48578, 32253, 47659, 48578, 23965, 48578, 40188, 48578, 48578, 32533, 48578, 48578, 12495, 48578, 13574, 28648, 48578, 48578, 48578, 34244, 48578, 48578, 39414, 48578, 48578, 48578, 48578, 48578, 48578, 46715, 48578, 48578, 48578, 7307, 11593, 30324, 48578, 34248, 48578, 48578, 48578, 31955, 34579, 12979, 48578, 39987, 34797, 48578, 18566, 48578, 48578, 48578, 42674, 21955, 48578, 48578, 46812, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 46130, 48578, 48578, 48578, 48578, 48578, 48578, 40881, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 25733, 48578, 47556, 48578, 35599, 48578, 48578, 48578, 13208, 48578, 48578, 32039, 48578, 22695, 18098, 21653, 48578, 31670, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 8991, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 36444, 48578, 22137, 48578, 48578, 31891, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 20547, 48578, 48578, 48578, 48578, 48578, 48578, 45176, 48578, 48578, 27047, 29717, 48578, 32053, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 27393, 48578, 48578, 36450, 48578, 48578, 22429, 48578, 8380, 48578, 31986, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 36628, 48578, 11274, 48578, 48578, 48578, 48578, 48578, 48578, 21753, 48578, 38835, 48578, 48578, 48578, 25221, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 10807, 19478, 48578, 48578, 48578, 48578, 48578, 25878, 48578, 48578, 48578, 24590, 48578, 48578, 48578, 48578, 48578, 22073, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 39937, 39938, 39939, 39940, 0, 0, 39943, 39944, 39945, 39946, 0, 0, 39949, 0, 39951, 0, 0, 0, 39955, 39956, 39957, 0, 39959, 39960, 39961, 0, 39963, 39964, 0, 0, 39967, 0, 39969, 0, 39971, 39972, 0, 39974, 39975, 0, 39977, 0, 0, 39980, 39981, 39982, 0, 39984, 39985, 0, 39987, 39988, 39989, 39990, 39991, 39992, 0, 39994, 39995, 39996, 0, 0, 0, 40000, 0, 40002, 40003, 40004, 0, 0, 0, 40008, 0, 0, 40011, 0, 40013, 40014, 40015, 0, 0, 40018, 40019, 0, 40021, 40022, 40023, 40024, 40025, 40026, 40027, 0, 40029, 40030, 40031, 40032, 40033, 40034, 0, 40036, 40037, 40038, 40039, 40040, 40041, 40042, 40043, 40044, 40045, 40046, 0, 40048, 0, 40050, 0, 40052, 40053, 40054, 0, 40056, 40057, 0, 40059, 0, 0, 0, 40063, 0, 40065, 40066, 40067, 40068, 40069, 40070, 40071, 40072, 40073, 40074, 40075, 40076, 0, 40078, 40079, 40080, 40081, 40082, 40083, 40084, 0, 40086, 0, 40088, 40089, 0, 40091, 40092, 40093, 40094, 40095, 40096, 40097, 40098, 0, 40100, 40101, 40102, 40103, 40104, 40105, 0, 40107, 40108, 0, 0, 40111, 0, 40113, 40114, 40115, 40116, 40117, 40118, 40119, 40120, 40121, 40122, 40123, 0, 40125, 40126, 0, 40128, 40129, 0, 40131, 0, 40133, 0, 40135, 40136, 40137, 40138, 40139, 40140, 40141, 40142, 0, 40144, 0, 40146, 40147, 40148, 40149, 40150, 40151, 0, 40153, 0, 40155, 40156, 40157, 0, 40159, 40160, 40161, 40162, 40163, 40164, 40165, 40166, 40167, 40168, 40169, 40170, 40171, 40172, 0, 0, 40175, 40176, 40177, 40178, 40179, 0, 40181, 40182, 40183, 0, 40185, 40186, 40187, 40188, 40189, 0, 40191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +541: 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1, 1, 1, 2, 2, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 2, 1, 48578, 48578, 48578, 48578, 48578, 47388, 25954, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 28758, 48578, 48578, 48578, 48578, 48578, 32197, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 41491, 48578, 14131, 48578, 18297, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 26733, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 38582, 48578, 48578, 9734, 48578, 48578, 48578, 48578, 31472, 20867, 17869, 48578, 12335, 14301, 45567, 18306, 7502, 21041, 15404, 43929, 48578, 14943, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 28048, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 33263, 11795, 48578, 48578, 48578, 22504, 48578, 48578, 48578, 48578, 48578, 48578, 42324, 7309, 7964, 48578, 30211, 48578, 34249, 14567, 48578, 21710, 29753, 48578, 38048, 22886, 31401, 15626, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 23112, 35447, 8242, 19943, 41503, 48578, 48578, 48578, 22486, 28759, 48578, 40517, 48578, 39069, 48578, 25211, 13973, 48578, 10010, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 34310, 48578, 48578, 13812, 48578, 20472, 44406, 25962, 14303, 48578, 48578, 16392, 48578, 37942, 10296, 18646, 8889, 48578, 48578, 17308, 37168, 28143, 30682, 48578, 36949, 44746, 37717, 48578, 38460, 15862, 48578, 48578, 22764, 48578, 42694, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 39855, 48578, 16837, 41509, 35452, 35090, 48578, 47867, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 40192, 40193, 40194, 40195, 40196, 0, 0, 40199, 40200, 40201, 40202, 40203, 40204, 40205, 0, 40207, 40208, 40209, 40210, 40211, 0, 40213, 40214, 40215, 40216, 40217, 40218, 40219, 40220, 40221, 40222, 40223, 40224, 40225, 40226, 40227, 40228, 40229, 40230, 40231, 40232, 40233, 40234, 40235, 40236, 0, 40238, 0, 40240, 0, 40242, 40243, 40244, 40245, 40246, 40247, 40248, 40249, 40250, 40251, 40252, 40253, 40254, 40255, 0, 40257, 40258, 40259, 40260, 40261, 40262, 40263, 40264, 0, 40266, 40267, 0, 40269, 40270, 40271, 40272, 0, 0, 0, 40276, 0, 0, 0, 0, 0, 0, 0, 0, 40285, 0, 40287, 40288, 40289, 40290, 40291, 40292, 40293, 40294, 40295, 40296, 40297, 40298, 40299, 0, 40301, 40302, 40303, 40304, 40305, 40306, 40307, 40308, 40309, 0, 0, 40312, 40313, 40314, 0, 40316, 40317, 40318, 40319, 40320, 40321, 0, 0, 0, 40325, 0, 40327, 0, 0, 40330, 0, 0, 40333, 0, 0, 0, 0, 40338, 40339, 40340, 40341, 40342, 40343, 40344, 40345, 40346, 40347, 40348, 40349, 40350, 40351, 40352, 40353, 0, 0, 0, 0, 0, 40359, 40360, 40361, 0, 0, 40364, 0, 40366, 0, 40368, 0, 0, 40371, 0, 40373, 40374, 40375, 40376, 40377, 40378, 40379, 40380, 40381, 40382, 40383, 40384, 40385, 40386, 40387, 40388, 40389, 40390, 40391, 0, 40393, 40394, 0, 40396, 0, 0, 0, 0, 40401, 40402, 0, 40404, 0, 0, 0, 0, 40409, 40410, 0, 0, 0, 0, 40415, 0, 0, 0, 40419, 0, 0, 40422, 40423, 0, 40425, 0, 40427, 40428, 40429, 40430, 40431, 40432, 40433, 40434, 40435, 40436, 40437, 40438, 40439, 0, 40441, 0, 0, 0, 0, 40446, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +542: 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 1, 1, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48578, 48578, 36998, 39520, 48578, 48578, 48578, 48578, 45572, 24385, 48578, 48578, 47557, 48578, 20899, 48578, 48578, 36439, 48578, 48578, 40111, 31725, 48578, 41513, 21655, 48578, 48578, 43408, 46728, 48578, 22463, 47984, 48578, 22608, 48578, 28772, 31209, 37607, 45502, 48578, 21656, 48578, 48131, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 41514, 48578, 48578, 25133, 48578, 30529, 48578, 48578, 48578, 48578, 18927, 48578, 48578, 48578, 48578, 30756, 48578, 42034, 35456, 48578, 30688, 16766, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 31597, 14065, 48578, 48557, 48578, 48578, 45574, 30757, 19568, 48578, 37364, 13223, 48578, 18998, 26828, 48578, 40831, 48578, 48578, 18003, 41760, 39750, 11735, 18177, 48578, 48578, 7462, 48578, 9019, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 13981, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 47508, 13224, 43953, 30692, 34206, 41261, 43954, 22446, 31352, 48578, 48578, 31168, 29564, 48578, 48578, 32220, 48578, 43677, 48578, 48578, 48578, 48578, 48578, 33373, 48578, 48578, 48578, 36171, 48578, 17971, 29841, 42210, 48578, 48578, 48578, 48578, 37056, 9869, 48578, 39300, 30557, 48578, 31745, 48578, 48578, 21219, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 46352, 48578, 48578, 48578, 47413, 48578, 38794, 48578, 38265, 47195, 48578, 48578, 48578, 35463, 48578, 48578, 22623, 23387, 22544, 48578, 48578, 10243, 8515, 27900, 47593, 17343, 44446, 42754, 26510, 48578, 48578, 30780, 16978, 26700, 24911, 25142, 48324, 23998, 18355, 11417, 30781, 23929, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 40448, 40449, 0, 0, 40452, 40453, 40454, 40455, 0, 0, 40458, 40459, 0, 40461, 0, 40463, 40464, 0, 40466, 40467, 0, 0, 40470, 0, 0, 40473, 40474, 0, 0, 40477, 0, 0, 40480, 0, 40482, 0, 0, 0, 0, 40487, 0, 40489, 0, 40491, 40492, 40493, 40494, 40495, 40496, 40497, 40498, 40499, 40500, 40501, 40502, 40503, 40504, 40505, 40506, 40507, 40508, 40509, 40510, 40511, 40512, 40513, 40514, 40515, 0, 40517, 40518, 0, 40520, 0, 40522, 40523, 40524, 40525, 0, 40527, 40528, 40529, 40530, 0, 40532, 0, 0, 40535, 0, 0, 40538, 40539, 40540, 40541, 40542, 40543, 40544, 40545, 0, 0, 40548, 0, 40550, 40551, 0, 0, 0, 40555, 0, 0, 40558, 0, 0, 40561, 0, 40563, 40564, 0, 0, 0, 0, 0, 40570, 40571, 0, 40573, 0, 40575, 40576, 40577, 40578, 40579, 40580, 40581, 40582, 0, 40584, 40585, 40586, 40587, 40588, 40589, 40590, 40591, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40601, 40602, 0, 0, 40605, 40606, 0, 40608, 0, 40610, 40611, 40612, 40613, 40614, 0, 40616, 40617, 40618, 0, 40620, 0, 0, 0, 40624, 40625, 40626, 40627, 0, 0, 40630, 0, 0, 40633, 0, 40635, 40636, 0, 40638, 40639, 40640, 40641, 40642, 40643, 40644, 40645, 40646, 40647, 0, 40649, 40650, 40651, 0, 40653, 0, 40655, 0, 0, 40658, 40659, 40660, 0, 40662, 40663, 0, 0, 0, 40667, 40668, 0, 0, 0, 0, 0, 0, 0, 0, 40677, 40678, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40690, 40691, 40692, 40693, 40694, 40695, 40696, 40697, 40698, 40699, 40700, 40701, 40702, 40703, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +543: 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 1, 2, 2, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 48578, 10674, 48578, 30197, 13247, 48578, 48578, 48578, 48578, 48578, 23999, 48578, 48578, 48578, 42861, 48578, 48578, 48578, 48578, 13072, 48578, 48578, 13864, 15806, 18126, 48578, 39905, 15542, 29597, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 33951, 48578, 48578, 48578, 48578, 37883, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 13824, 10246, 43493, 23026, 22916, 48578, 48457, 16445, 48578, 48578, 45195, 47053, 48578, 48578, 19874, 10516, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 40297, 48578, 48578, 48578, 48578, 48433, 7424, 17449, 48578, 48578, 30222, 48578, 12835, 42513, 48578, 48578, 48578, 28353, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 20981, 7953, 23670, 9584, 48578, 8576, 48578, 48578, 48578, 48578, 45934, 30810, 48578, 48578, 48578, 48578, 48578, 28354, 48578, 48578, 26206, 48578, 23135, 48578, 27809, 48578, 24011, 29466, 48578, 48578, 48578, 48578, 48578, 24513, 9725, 48578, 12578, 24012, 48578, 48578, 14263, 48578, 8311, 22217, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 41083, 28838, 48578, 17170, 48578, 48578, 48578, 48578, 48578, 39559, 48578, 20317, 27303, 28844, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 9585, 35108, 45621, 43278, 48578, 48578, 48578, 10985, 48578, 9588, 48578, 48578, 48578, 48578, 24029, 29127, 24591, 48578, 48578, 24247, 26386, 48578, 48578, 48578, 36136, 48578, 48578, 28863, 28864, 48578, 19503, 48578, 24035, 48578, 28319, 48578, 48578, 25184, 25408, 48578, 48578, 39511, 44728, 48578, 45272, 32268, 25017, 48578, 48578, 48578, 48578, 48578, 44489, 18703, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 28366, 48578, 41374, 48578, 21724, 19251, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 40704, 0, 40706, 0, 0, 40709, 40710, 40711, 40712, 40713, 0, 40715, 40716, 40717, 0, 40719, 40720, 40721, 40722, 0, 40724, 40725, 0, 0, 0, 40729, 0, 0, 0, 40733, 40734, 40735, 40736, 40737, 40738, 40739, 40740, 40741, 40742, 40743, 40744, 40745, 40746, 40747, 0, 40749, 40750, 40751, 40752, 0, 40754, 40755, 40756, 40757, 40758, 40759, 40760, 40761, 40762, 0, 0, 0, 0, 0, 40768, 0, 0, 40771, 40772, 0, 0, 40775, 40776, 0, 0, 40779, 40780, 40781, 40782, 40783, 40784, 40785, 40786, 40787, 40788, 40789, 0, 40791, 40792, 40793, 40794, 0, 0, 0, 40798, 40799, 0, 40801, 0, 0, 40804, 40805, 40806, 0, 40808, 40809, 40810, 40811, 40812, 40813, 40814, 40815, 40816, 0, 0, 0, 0, 40821, 0, 40823, 40824, 40825, 40826, 0, 0, 40829, 40830, 40831, 40832, 40833, 0, 40835, 40836, 0, 40838, 0, 40840, 0, 40842, 0, 0, 40845, 40846, 40847, 40848, 40849, 0, 0, 40852, 0, 0, 40855, 40856, 0, 40858, 0, 0, 40861, 40862, 40863, 40864, 40865, 40866, 40867, 40868, 0, 0, 40871, 0, 40873, 40874, 40875, 40876, 40877, 0, 40879, 0, 0, 0, 40883, 40884, 40885, 40886, 40887, 40888, 40889, 40890, 0, 0, 0, 0, 40895, 40896, 40897, 0, 40899, 0, 40901, 40902, 40903, 40904, 0, 0, 0, 40908, 40909, 0, 0, 40912, 40913, 40914, 0, 40916, 40917, 0, 0, 40920, 0, 40922, 0, 40924, 0, 40926, 40927, 0, 0, 40930, 40931, 0, 0, 40934, 0, 0, 0, 40938, 40939, 40940, 40941, 40942, 0, 0, 40945, 40946, 40947, 40948, 40949, 40950, 40951, 40952, 40953, 0, 40955, 0, 40957, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +544: 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 48578, 43061, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 38901, 33323, 20745, 43857, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 34095, 21272, 37661, 42417, 21496, 48578, 48578, 16188, 48578, 48578, 48578, 48578, 18853, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 14369, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 17296, 48578, 48578, 48578, 48578, 48578, 48578, 15210, 48578, 48578, 48578, 15223, 47876, 19376, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 7909, 48578, 48578, 30485, 34240, 48578, 13137, 29531, 39512, 33119, 48578, 48578, 48578, 48578, 10135, 44933, 48578, 16127, 48578, 38406, 48578, 14807, 48578, 48578, 10005, 48578, 28447, 22081, 48578, 46115, 48578, 31001, 48578, 48578, 7572, 48578, 48578, 48578, 48578, 37729, 47143, 48578, 18704, 48578, 9344, 47500, 8415, 10216, 46500, 15173, 22833, 48578, 48504, 41111, 48578, 15409, 48578, 48578, 48578, 42277, 48578, 48578, 9071, 48578, 8119, 40094, 34311, 42676, 48578, 17884, 11996, 48578, 42975, 47642, 48578, 48578, 48578, 48578, 10829, 48578, 48578, 48578, 48578, 48578, 48578, 30172, 48578, 48578, 48578, 43392, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 44904, 48578, 48578, 48578, 48578, 21443, 48578, 48578, 26887, 31113, 48578, 43005, 48578, 48578, 48578, 38461, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 8084, 19252, 11800, 22798, 48578, 48578, 48578, 48578, 35720, 48578, 17317, 31116, 48578, 48578, 48578, 46729, 48578, 48578, 48578, 48578, 48578, 33270, 48578, 48578, 30926, 17069, 48578, 48578, 16946, 48578, 48578, 20124, 47163, 27498, 16848, 34350, 27972, 14185, 7708, 23439, 48578, 48578, 48578, 47349, 48578, 19569, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 40960, 0, 40962, 40963, 40964, 40965, 40966, 40967, 40968, 40969, 0, 0, 0, 0, 40974, 40975, 40976, 40977, 40978, 40979, 40980, 0, 0, 0, 0, 0, 40986, 40987, 0, 40989, 40990, 40991, 40992, 0, 40994, 40995, 40996, 40997, 40998, 40999, 41000, 41001, 0, 41003, 41004, 41005, 41006, 41007, 41008, 41009, 41010, 41011, 41012, 0, 41014, 41015, 41016, 41017, 41018, 41019, 0, 41021, 41022, 41023, 0, 0, 0, 41027, 41028, 41029, 41030, 41031, 41032, 41033, 41034, 41035, 41036, 41037, 41038, 0, 41040, 41041, 0, 0, 41044, 0, 0, 0, 0, 41049, 41050, 41051, 41052, 0, 0, 41055, 0, 41057, 0, 41059, 0, 41061, 41062, 0, 41064, 0, 0, 41067, 0, 41069, 0, 41071, 41072, 0, 41074, 41075, 41076, 41077, 0, 0, 41080, 0, 41082, 0, 0, 0, 0, 0, 0, 0, 41090, 0, 0, 41093, 0, 41095, 41096, 41097, 0, 41099, 41100, 0, 41102, 0, 0, 0, 0, 41107, 0, 0, 41110, 0, 0, 41113, 41114, 41115, 41116, 0, 41118, 41119, 41120, 41121, 41122, 41123, 0, 41125, 41126, 41127, 0, 41129, 41130, 41131, 41132, 41133, 41134, 41135, 41136, 0, 41138, 41139, 41140, 41141, 0, 41143, 41144, 0, 0, 41147, 0, 41149, 41150, 41151, 0, 41153, 41154, 41155, 41156, 41157, 41158, 41159, 41160, 41161, 41162, 41163, 41164, 0, 0, 0, 0, 41169, 41170, 41171, 41172, 0, 41174, 0, 0, 41177, 41178, 41179, 0, 41181, 41182, 41183, 41184, 41185, 0, 41187, 41188, 0, 0, 41191, 41192, 0, 41194, 41195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41205, 41206, 41207, 0, 41209, 0, 41211, 41212, 41213, 41214, 41215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +545: 1, 2, 2, 2, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 1, 2, 1, 1, 2, 2, 1, 1, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 45446, 48578, 48578, 48578, 45645, 43063, 48578, 16277, 48578, 48578, 16778, 43591, 33456, 17642, 7940, 27892, 27112, 48578, 48578, 38630, 12303, 48578, 48578, 21472, 48578, 48578, 48578, 48578, 17337, 48578, 48578, 36834, 22836, 24162, 47009, 19025, 45336, 48578, 13141, 11888, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 47010, 48578, 22979, 48578, 39818, 18488, 24923, 12025, 31281, 20706, 48578, 40776, 14396, 48578, 37323, 35938, 47028, 48578, 48578, 48578, 48578, 48578, 48578, 28392, 26927, 12956, 9719, 48578, 48578, 20717, 24698, 48578, 33392, 12459, 48578, 48578, 35483, 24699, 17100, 48578, 48578, 8839, 48578, 11711, 13076, 26198, 28548, 41806, 23603, 48578, 48578, 15612, 11179, 48578, 48578, 48578, 8593, 48342, 19084, 48578, 23542, 39491, 14930, 17747, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 42368, 45946, 48578, 28432, 48578, 26433, 48578, 44878, 48578, 28467, 48578, 48578, 48578, 48578, 48578, 48578, 32549, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 15945, 48578, 20261, 30136, 48578, 48578, 48578, 8915, 48578, 48578, 20411, 48578, 48578, 9058, 48578, 48578, 48578, 48578, 48578, 27365, 18291, 48578, 48578, 48578, 13136, 48578, 43942, 42147, 8239, 48578, 10394, 19355, 48578, 42148, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 16602, 41870, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 10806, 48578, 33409, 41726, 42907, 42908, 10315, 48578, 48578, 17300, 18702, 48578, 48578, 48578, 48578, 34801, 35446, 32536, 35912, 46799, 48578, 14561, 15031, 48578, 48578, 48578, 48578, 35913, 48578, 27251, 29754, 9345, 28132, 36513, 7680, 42948, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 41217, 41218, 41219, 0, 0, 41222, 0, 41224, 41225, 0, 0, 0, 0, 0, 0, 0, 41233, 41234, 0, 0, 41237, 41238, 0, 41240, 41241, 41242, 41243, 0, 41245, 41246, 0, 0, 0, 0, 0, 0, 41253, 0, 0, 41256, 41257, 41258, 41259, 41260, 41261, 41262, 41263, 41264, 0, 41266, 0, 41268, 0, 0, 0, 0, 0, 0, 41275, 0, 0, 41278, 0, 0, 0, 41282, 41283, 41284, 41285, 41286, 41287, 0, 0, 0, 0, 41292, 41293, 0, 0, 41296, 0, 0, 41299, 41300, 0, 0, 0, 41304, 41305, 0, 41307, 0, 0, 0, 0, 0, 0, 41314, 41315, 0, 0, 41318, 41319, 41320, 0, 0, 0, 41324, 0, 0, 0, 0, 41329, 41330, 41331, 41332, 41333, 41334, 41335, 41336, 0, 0, 41339, 0, 41341, 0, 41343, 0, 41345, 0, 41347, 41348, 41349, 41350, 41351, 41352, 0, 41354, 41355, 41356, 41357, 41358, 41359, 41360, 41361, 41362, 41363, 41364, 41365, 41366, 41367, 41368, 41369, 41370, 41371, 0, 41373, 0, 0, 41376, 41377, 41378, 0, 41380, 41381, 0, 41383, 41384, 0, 41386, 41387, 41388, 41389, 41390, 0, 0, 41393, 41394, 41395, 0, 41397, 0, 0, 0, 41401, 0, 0, 41404, 0, 41406, 41407, 41408, 41409, 41410, 41411, 41412, 41413, 41414, 0, 0, 41417, 41418, 41419, 41420, 41421, 41422, 41423, 41424, 41425, 41426, 41427, 41428, 0, 41430, 0, 0, 0, 0, 0, 41436, 41437, 0, 0, 41440, 41441, 41442, 41443, 0, 0, 0, 0, 0, 41449, 0, 0, 41452, 41453, 41454, 41455, 0, 41457, 0, 0, 0, 0, 0, 0, 0, 41465, 41466, 41467, 41468, 41469, 41470, 41471, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +546: 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 1, 48578, 48578, 41734, 48578, 36615, 48578, 42180, 33936, 22595, 36851, 48578, 41091, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 44151, 48578, 7783, 48578, 48578, 48578, 39221, 26137, 23359, 45385, 31867, 48578, 48578, 11877, 48407, 25799, 48578, 39222, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 33867, 48578, 48578, 30327, 48578, 21289, 31163, 43030, 48578, 28773, 13778, 48578, 20909, 35457, 45965, 11839, 48578, 48578, 8249, 16603, 33785, 48578, 21208, 12917, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 12349, 48578, 28206, 48578, 29019, 48578, 19557, 41634, 48578, 29037, 48578, 13699, 38062, 29912, 48578, 48578, 48578, 18178, 48578, 20082, 42459, 22303, 23587, 23440, 43347, 48578, 48578, 48578, 37170, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 28379, 48578, 48578, 48578, 48578, 48368, 48578, 48578, 48578, 48578, 26555, 34913, 46986, 48578, 48578, 18869, 47783, 48578, 19011, 48578, 48578, 48578, 48578, 48578, 11159, 48578, 10335, 48578, 48578, 40652, 23590, 48578, 11746, 33991, 27901, 42600, 42219, 39018, 48426, 9055, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 44310, 48578, 26009, 48578, 48578, 48578, 48578, 37181, 37990, 48578, 14871, 33952, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 24924, 48578, 48578, 48578, 48578, 48578, 48578, 34592, 12406, 21992, 44336, 40453, 42241, 35219, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 19221, 48578, 30964, 48578, 48578, 48578, 48578, 48578, 26519, 48578, 48578, 22415, 48578, 48578, 48578, 25933, 48578, 43966, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 39677, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 38502, 48578, 43507, 38913, 48578, 48578, 45799, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 41472, 41473, 0, 41475, 0, 41477, 0, 0, 0, 0, 41482, 0, 41484, 41485, 41486, 41487, 41488, 41489, 41490, 0, 41492, 0, 41494, 41495, 41496, 0, 0, 0, 0, 0, 41502, 41503, 0, 0, 0, 41507, 0, 41509, 41510, 41511, 41512, 41513, 41514, 41515, 41516, 41517, 41518, 0, 41520, 41521, 0, 41523, 0, 0, 0, 41527, 0, 0, 41530, 0, 0, 0, 0, 41535, 41536, 0, 0, 0, 41540, 0, 0, 41543, 41544, 41545, 41546, 41547, 41548, 41549, 41550, 41551, 41552, 0, 41554, 0, 41556, 0, 41558, 0, 0, 41561, 0, 41563, 0, 0, 0, 41567, 41568, 41569, 0, 41571, 0, 0, 0, 0, 0, 0, 41578, 41579, 41580, 0, 41582, 41583, 41584, 41585, 41586, 41587, 41588, 0, 41590, 41591, 41592, 41593, 0, 41595, 41596, 41597, 41598, 0, 0, 0, 41602, 41603, 0, 0, 41606, 0, 41608, 41609, 41610, 41611, 41612, 0, 41614, 0, 41616, 41617, 0, 0, 41620, 0, 0, 0, 0, 0, 0, 0, 0, 41629, 41630, 41631, 41632, 41633, 41634, 41635, 41636, 41637, 41638, 0, 41640, 0, 41642, 41643, 41644, 41645, 0, 0, 41648, 0, 0, 41651, 41652, 41653, 41654, 41655, 41656, 41657, 41658, 0, 41660, 41661, 41662, 41663, 41664, 41665, 0, 0, 0, 0, 0, 0, 0, 41673, 41674, 41675, 41676, 41677, 41678, 41679, 41680, 41681, 0, 41683, 0, 41685, 41686, 41687, 41688, 41689, 0, 41691, 41692, 0, 41694, 41695, 41696, 0, 41698, 0, 41700, 41701, 41702, 41703, 41704, 41705, 41706, 41707, 41708, 41709, 0, 41711, 41712, 41713, 41714, 41715, 41716, 41717, 41718, 41719, 41720, 0, 41722, 0, 0, 41725, 41726, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +547: 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 40346, 48578, 48578, 48578, 32098, 48578, 48578, 48578, 24249, 48578, 48578, 48578, 48578, 30991, 48578, 48578, 48578, 48578, 48578, 48578, 25409, 26259, 48578, 48578, 48578, 48578, 9893, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 46595, 48578, 41635, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 43519, 23172, 48578, 48578, 48578, 31949, 48578, 15166, 48578, 44492, 48578, 48578, 48578, 48578, 48578, 30497, 48578, 48578, 48578, 48578, 30738, 19755, 44744, 48578, 48578, 48578, 48578, 48578, 15863, 22009, 48578, 30513, 48578, 15578, 48578, 32290, 48578, 48578, 48578, 48578, 38063, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 47011, 48578, 48578, 48578, 20270, 48578, 35029, 48578, 48578, 43185, 30961, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 24333, 48578, 48578, 45383, 42924, 48578, 9424, 42925, 15884, 48578, 13199, 48578, 46642, 42978, 48578, 45279, 12284, 48578, 35266, 48578, 48578, 48578, 48578, 48578, 20983, 10474, 32099, 48578, 17295, 39413, 48578, 48578, 48578, 48578, 48578, 48578, 32188, 20861, 48578, 48578, 48578, 22001, 48578, 48578, 48578, 48578, 12419, 48578, 48578, 21095, 48578, 48578, 48578, 48578, 48578, 48578, 8988, 18146, 48578, 48578, 48578, 22082, 48578, 44216, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 24279, 31208, 34795, 22887, 48578, 46395, 48578, 48578, 48578, 48578, 15174, 33851, 48578, 48578, 48578, 11441, 48578, 48578, 36852, 48578, 42979, 48578, 42023, 48578, 48578, 37345, 47245, 19538, 48578, 48578, 48578, 48578, 48578, 41375, 48578, 33939, 40996, 48578, 48578, 48578, 48578, 48578, 25466, 44751, 18166, 46597, 48578, 48578, 29584, 48578, 48578, 48578, 22118, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 41729, 41730, 41731, 0, 41733, 41734, 41735, 0, 41737, 41738, 41739, 41740, 0, 41742, 41743, 41744, 41745, 41746, 41747, 0, 0, 41750, 41751, 41752, 41753, 0, 41755, 41756, 41757, 41758, 41759, 41760, 41761, 41762, 41763, 41764, 41765, 0, 41767, 0, 41769, 41770, 41771, 41772, 41773, 41774, 41775, 41776, 41777, 0, 0, 41780, 41781, 41782, 0, 41784, 0, 41786, 0, 41788, 41789, 41790, 41791, 41792, 0, 41794, 41795, 41796, 41797, 0, 0, 0, 41801, 41802, 41803, 41804, 41805, 0, 0, 41808, 0, 41810, 0, 41812, 0, 41814, 41815, 41816, 41817, 0, 41819, 41820, 41821, 41822, 41823, 41824, 41825, 41826, 41827, 41828, 41829, 41830, 0, 41832, 41833, 41834, 0, 41836, 0, 41838, 41839, 0, 0, 41842, 41843, 41844, 41845, 41846, 41847, 41848, 41849, 41850, 41851, 0, 41853, 41854, 0, 0, 41857, 0, 0, 0, 41861, 0, 41863, 0, 0, 41866, 0, 0, 41869, 0, 41871, 41872, 41873, 41874, 41875, 0, 0, 0, 41879, 0, 0, 41882, 41883, 41884, 41885, 41886, 41887, 0, 0, 41890, 41891, 41892, 0, 41894, 41895, 41896, 41897, 0, 41899, 41900, 0, 41902, 41903, 41904, 41905, 41906, 41907, 0, 0, 41910, 41911, 41912, 0, 41914, 0, 41916, 41917, 41918, 41919, 41920, 41921, 41922, 0, 0, 0, 0, 41927, 0, 41929, 41930, 41931, 41932, 0, 0, 41935, 41936, 41937, 0, 41939, 41940, 0, 41942, 0, 41944, 0, 41946, 41947, 0, 0, 0, 41951, 41952, 41953, 41954, 41955, 0, 41957, 0, 0, 41960, 41961, 41962, 41963, 41964, 0, 0, 0, 0, 41969, 41970, 0, 41972, 41973, 41974, 0, 41976, 41977, 41978, 41979, 41980, 41981, 41982, 41983, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +548: 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 48578, 48578, 46960, 29913, 44911, 48578, 20125, 48578, 48578, 48578, 29407, 48578, 48578, 48578, 47683, 48578, 39454, 48578, 8265, 48578, 11747, 48578, 27902, 48578, 48578, 48578, 17037, 48578, 48578, 48578, 10600, 31282, 48578, 48578, 48578, 48578, 48578, 48578, 8562, 48578, 48578, 31242, 48578, 47284, 48578, 48578, 48578, 48578, 48578, 48578, 14521, 8874, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 9244, 32765, 48578, 48578, 48578, 48578, 48578, 13340, 32254, 21621, 42266, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 39207, 48578, 48578, 45439, 48578, 48578, 48578, 48578, 48578, 48578, 12344, 48578, 38535, 37358, 48578, 18105, 48578, 48578, 48578, 48578, 38795, 48578, 48578, 48578, 48578, 23522, 48578, 14686, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 18252, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 39325, 48578, 48578, 33532, 48578, 48578, 48578, 14742, 48578, 48578, 12123, 48578, 15211, 48578, 11244, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 13376, 23695, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 39019, 48578, 48578, 48578, 48578, 48578, 8786, 44631, 35484, 39027, 48578, 48578, 48578, 48578, 30287, 48578, 33560, 48578, 48578, 48578, 48578, 20751, 48578, 42910, 48578, 48578, 37568, 19688, 48578, 37575, 37212, 48578, 48578, 48578, 7503, 48578, 36492, 10706, 48578, 48578, 48578, 32404, 48578, 33047, 43385, 29688, 11670, 36846, 43466, 48578, 48578, 15929, 36617, 46508, 47335, 48578, 42677, 22983, 35054, 48578, 48578, 48578, 12907, 48578, 48578, 48578, 48578, 40100, 48578, 39857, 16738, 37407, 14957, 38462, 48578, 48578, 40698, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 44011, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 41984, 41985, 0, 0, 0, 41989, 0, 41991, 41992, 41993, 0, 41995, 41996, 41997, 0, 41999, 0, 42001, 0, 42003, 0, 42005, 0, 42007, 42008, 42009, 0, 42011, 42012, 42013, 0, 0, 42016, 42017, 42018, 42019, 42020, 42021, 0, 42023, 42024, 0, 42026, 0, 42028, 42029, 42030, 42031, 42032, 42033, 0, 0, 42036, 42037, 42038, 42039, 42040, 42041, 42042, 42043, 42044, 42045, 0, 0, 42048, 42049, 42050, 42051, 42052, 0, 0, 0, 0, 42057, 42058, 42059, 42060, 42061, 42062, 42063, 42064, 42065, 42066, 0, 42068, 42069, 0, 42071, 42072, 42073, 42074, 42075, 42076, 0, 42078, 0, 0, 42081, 0, 42083, 42084, 42085, 42086, 0, 42088, 42089, 42090, 42091, 0, 42093, 0, 42095, 42096, 42097, 42098, 42099, 42100, 42101, 42102, 42103, 42104, 0, 42106, 42107, 42108, 42109, 42110, 42111, 42112, 42113, 42114, 42115, 42116, 42117, 0, 42119, 42120, 0, 42122, 42123, 42124, 0, 42126, 42127, 0, 42129, 0, 42131, 0, 42133, 42134, 42135, 42136, 42137, 42138, 42139, 42140, 0, 0, 42143, 42144, 42145, 42146, 42147, 42148, 42149, 42150, 42151, 42152, 0, 42154, 42155, 42156, 42157, 42158, 0, 0, 0, 0, 42163, 42164, 42165, 42166, 0, 42168, 0, 42170, 42171, 42172, 42173, 0, 42175, 0, 42177, 42178, 0, 0, 42181, 0, 0, 42184, 42185, 42186, 0, 42188, 0, 0, 42191, 42192, 42193, 0, 42195, 0, 0, 0, 0, 0, 0, 42202, 42203, 0, 0, 0, 0, 42208, 0, 0, 0, 42212, 42213, 42214, 0, 42216, 42217, 42218, 42219, 0, 42221, 0, 0, 0, 0, 0, 42227, 42228, 0, 42230, 42231, 42232, 42233, 42234, 42235, 42236, 42237, 42238, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +549: 2, 1, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 48578, 25287, 41871, 48578, 48578, 13395, 30758, 36208, 17233, 48578, 10720, 35060, 48578, 48578, 48578, 48578, 48578, 32276, 48578, 48578, 17318, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32799, 30766, 22381, 44271, 9752, 10640, 44544, 48578, 9052, 48578, 11736, 47408, 48578, 44557, 48578, 48578, 48578, 48578, 22138, 25587, 33213, 44567, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 34716, 48578, 48578, 48578, 48578, 48578, 44915, 48578, 48578, 46014, 48578, 48578, 34717, 48578, 11205, 46019, 33142, 39363, 48578, 11962, 27209, 12820, 48578, 48578, 48578, 47012, 7607, 48578, 48578, 48578, 48578, 48578, 48578, 40655, 48578, 29934, 48578, 20783, 23051, 33064, 39648, 45774, 13073, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 42763, 48578, 48578, 19054, 33596, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 10978, 42778, 40299, 47054, 36689, 48578, 30098, 39486, 48578, 48578, 39379, 35344, 48578, 11934, 48578, 48578, 48578, 48578, 48578, 35105, 48578, 48578, 48578, 17765, 48578, 39683, 48578, 44071, 48578, 44694, 48578, 48578, 35851, 48578, 22242, 28320, 48578, 12977, 48578, 42896, 8395, 48578, 48578, 48578, 48578, 48578, 48578, 40721, 42912, 32877, 48578, 16128, 48578, 48578, 42913, 48578, 48578, 48578, 48578, 46869, 40370, 48578, 19732, 48578, 39291, 48578, 48578, 48578, 46087, 28418, 40204, 48578, 48578, 48578, 42927, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 15343, 48578, 33790, 48578, 44799, 14548, 48578, 15088, 38586, 38692, 17953, 48578, 48578, 48578, 19737, 10193, 48578, 48578, 48578, 48578, 27844, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 42240, 0, 0, 42243, 42244, 0, 0, 0, 0, 42249, 0, 0, 42252, 42253, 42254, 42255, 42256, 0, 42258, 42259, 0, 42261, 42262, 42263, 42264, 42265, 42266, 42267, 42268, 42269, 42270, 0, 0, 0, 0, 0, 0, 0, 42278, 0, 42280, 0, 0, 42283, 0, 42285, 42286, 42287, 42288, 0, 0, 0, 0, 42293, 42294, 42295, 42296, 42297, 42298, 42299, 42300, 42301, 42302, 42303, 42304, 42305, 42306, 42307, 42308, 0, 42310, 42311, 42312, 42313, 42314, 0, 42316, 42317, 0, 42319, 42320, 0, 42322, 0, 0, 0, 0, 42327, 0, 0, 0, 42331, 42332, 42333, 0, 0, 42336, 42337, 42338, 42339, 42340, 42341, 0, 42343, 0, 42345, 0, 0, 0, 0, 0, 0, 42352, 42353, 42354, 42355, 42356, 42357, 42358, 0, 42360, 42361, 0, 0, 42364, 42365, 42366, 42367, 42368, 42369, 42370, 42371, 0, 0, 0, 0, 0, 42377, 0, 0, 42380, 42381, 0, 0, 42384, 0, 42386, 42387, 42388, 42389, 42390, 0, 42392, 42393, 42394, 0, 42396, 0, 42398, 0, 42400, 0, 42402, 42403, 0, 42405, 0, 0, 42408, 0, 42410, 0, 0, 42413, 42414, 42415, 42416, 42417, 42418, 0, 0, 0, 42422, 0, 42424, 42425, 0, 42427, 42428, 42429, 42430, 0, 0, 42433, 0, 42435, 0, 42437, 42438, 42439, 0, 0, 0, 42443, 42444, 42445, 0, 42447, 42448, 42449, 42450, 42451, 42452, 42453, 42454, 42455, 42456, 42457, 42458, 42459, 42460, 42461, 42462, 42463, 42464, 42465, 42466, 42467, 42468, 42469, 42470, 42471, 42472, 42473, 42474, 0, 42476, 0, 42478, 0, 0, 42481, 0, 0, 0, 0, 42486, 42487, 42488, 0, 0, 42491, 42492, 42493, 42494, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +550: 1, 2, 2, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2, 1, 2, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 29538, 48578, 48578, 28002, 31847, 26878, 48578, 12175, 48578, 39210, 33852, 36249, 17876, 8419, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 28527, 48578, 31309, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32906, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 20541, 9741, 27337, 48578, 48578, 42980, 48578, 35561, 48578, 38599, 40994, 48578, 48578, 38946, 48578, 42834, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 28332, 48578, 48578, 38050, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 22488, 48578, 48578, 25736, 26138, 47733, 48578, 48578, 48578, 48578, 48578, 48578, 46905, 48578, 40560, 48578, 16081, 21196, 39608, 19772, 12124, 48578, 23806, 14896, 21867, 48578, 48578, 48578, 48578, 27571, 39223, 48578, 48578, 48578, 48578, 35247, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 46906, 48578, 18328, 22854, 48578, 35600, 28580, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 36264, 47558, 48578, 48578, 48578, 48578, 48578, 12188, 48578, 31879, 41515, 48578, 39434, 48578, 48578, 28449, 48578, 48578, 48578, 46824, 8891, 48578, 48578, 48578, 10990, 23585, 13396, 32384, 39804, 48578, 39969, 37609, 32880, 37774, 28585, 48578, 7752, 41516, 48578, 48578, 48578, 48578, 48578, 34906, 43471, 48578, 44523, 48578, 48578, 48578, 48578, 48578, 24118, 19253, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 42497, 42498, 0, 0, 0, 42502, 0, 42504, 0, 0, 0, 0, 0, 42510, 42511, 42512, 42513, 42514, 42515, 42516, 42517, 42518, 42519, 42520, 42521, 42522, 42523, 42524, 0, 42526, 0, 42528, 42529, 42530, 42531, 42532, 42533, 42534, 0, 42536, 42537, 42538, 42539, 42540, 42541, 42542, 42543, 42544, 42545, 42546, 42547, 42548, 42549, 42550, 42551, 0, 0, 0, 42555, 42556, 0, 42558, 0, 42560, 0, 0, 42563, 42564, 0, 42566, 0, 42568, 42569, 42570, 42571, 42572, 42573, 42574, 42575, 0, 42577, 42578, 0, 42580, 42581, 42582, 42583, 42584, 42585, 42586, 42587, 42588, 42589, 42590, 42591, 42592, 42593, 42594, 42595, 42596, 42597, 42598, 42599, 42600, 42601, 42602, 42603, 42604, 42605, 0, 42607, 42608, 0, 0, 0, 42612, 42613, 42614, 42615, 42616, 42617, 0, 42619, 0, 42621, 0, 0, 0, 0, 0, 42627, 0, 0, 0, 42631, 42632, 42633, 42634, 0, 0, 42637, 42638, 42639, 42640, 0, 42642, 42643, 42644, 42645, 42646, 42647, 42648, 42649, 42650, 42651, 42652, 42653, 42654, 42655, 42656, 42657, 42658, 42659, 42660, 42661, 42662, 42663, 0, 42665, 0, 0, 42668, 0, 0, 42671, 42672, 42673, 42674, 42675, 42676, 42677, 42678, 42679, 42680, 42681, 0, 0, 42684, 42685, 42686, 42687, 42688, 0, 42690, 0, 0, 42693, 0, 42695, 42696, 0, 42698, 42699, 42700, 0, 0, 42703, 42704, 42705, 0, 0, 0, 0, 0, 42711, 0, 0, 0, 0, 0, 42717, 0, 0, 42720, 42721, 42722, 42723, 42724, 0, 0, 42727, 0, 42729, 42730, 42731, 42732, 42733, 0, 0, 42736, 42737, 42738, 42739, 42740, 42741, 42742, 42743, 42744, 42745, 42746, 42747, 42748, 42749, 42750, 42751, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +551: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 1, 1, 2, 1, 2, 2, 1, 1, 1, 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 2, 1, 2, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 7932, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 38746, 48578, 21515, 48578, 48578, 40248, 30931, 29146, 40543, 13949, 19705, 38538, 28004, 41878, 30767, 28106, 10849, 18005, 48578, 33246, 48578, 28340, 48578, 48578, 10631, 10632, 23230, 48578, 20083, 37048, 17826, 13603, 48578, 48578, 39237, 47222, 19259, 10972, 12194, 48578, 48578, 26903, 42338, 48578, 48578, 48578, 48578, 48578, 21966, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 34353, 48578, 48578, 43413, 48578, 48578, 48578, 16413, 38621, 48578, 48578, 48578, 17099, 36446, 48578, 17827, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32523, 48578, 42722, 48578, 37281, 48578, 48578, 48578, 31746, 17162, 48578, 30774, 48578, 48578, 19265, 36451, 29718, 48578, 48578, 16093, 48578, 40260, 48578, 27395, 15867, 35676, 39772, 48578, 34524, 48578, 48578, 15263, 48578, 48578, 48578, 48578, 48578, 47645, 25588, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 44034, 48578, 48578, 48578, 48578, 10635, 13783, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 24163, 42123, 24164, 48578, 48578, 25917, 28035, 35470, 7330, 48578, 48578, 22863, 48578, 46229, 7331, 36277, 48578, 26189, 37176, 8327, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 19026, 18587, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 42752, 42753, 42754, 42755, 42756, 42757, 42758, 42759, 42760, 42761, 42762, 42763, 42764, 42765, 42766, 42767, 42768, 42769, 42770, 42771, 42772, 42773, 42774, 0, 42776, 42777, 42778, 42779, 42780, 42781, 42782, 42783, 42784, 42785, 42786, 0, 42788, 0, 42790, 42791, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42805, 0, 42807, 0, 42809, 42810, 0, 0, 0, 42814, 0, 0, 0, 0, 42819, 42820, 0, 0, 0, 0, 0, 42826, 42827, 0, 0, 42830, 42831, 42832, 42833, 42834, 0, 42836, 42837, 42838, 42839, 42840, 42841, 42842, 42843, 42844, 42845, 42846, 42847, 42848, 42849, 42850, 42851, 42852, 42853, 42854, 42855, 42856, 42857, 42858, 42859, 0, 42861, 42862, 0, 42864, 42865, 42866, 0, 0, 42869, 42870, 42871, 0, 0, 42874, 0, 42876, 42877, 42878, 42879, 42880, 42881, 42882, 42883, 42884, 42885, 42886, 0, 42888, 0, 42890, 0, 42892, 42893, 42894, 0, 0, 42897, 0, 42899, 42900, 0, 0, 0, 42904, 42905, 0, 42907, 0, 42909, 0, 0, 0, 0, 42914, 0, 42916, 42917, 0, 42919, 42920, 42921, 42922, 42923, 0, 0, 42926, 42927, 42928, 42929, 42930, 42931, 42932, 42933, 42934, 42935, 42936, 42937, 42938, 42939, 42940, 42941, 42942, 42943, 42944, 42945, 42946, 42947, 42948, 0, 42950, 42951, 42952, 42953, 0, 0, 42956, 42957, 42958, 42959, 42960, 42961, 42962, 42963, 42964, 42965, 42966, 42967, 42968, 42969, 42970, 42971, 42972, 42973, 42974, 42975, 42976, 42977, 0, 0, 0, 42981, 42982, 0, 0, 0, 0, 42987, 42988, 0, 42990, 0, 0, 0, 42994, 0, 0, 0, 42998, 42999, 43000, 43001, 43002, 43003, 43004, 43005, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +552: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 2, 2, 2, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 23388, 48578, 40400, 48578, 48578, 48578, 33247, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 34661, 32338, 7672, 37222, 48578, 48578, 48578, 15475, 8869, 48578, 36130, 48578, 39819, 48578, 34932, 9196, 48578, 26584, 12566, 48578, 16902, 17761, 38837, 12567, 43154, 48578, 8329, 48578, 16363, 12026, 33287, 48578, 48578, 48578, 15972, 44612, 28120, 48578, 24457, 47030, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 46157, 48578, 48578, 48578, 19422, 32924, 48578, 48578, 48578, 11005, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 20960, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 10207, 46237, 48578, 48578, 48578, 48578, 35314, 43833, 48578, 48578, 30801, 47915, 48578, 48578, 22434, 48578, 42499, 48578, 30802, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 40625, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 42609, 11114, 48578, 48578, 48578, 37153, 7348, 30038, 48578, 48578, 25078, 27461, 7349, 48578, 27830, 38106, 43795, 28549, 48578, 48578, 48578, 9222, 48578, 25595, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32982, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 26122, 9809, 48578, 48578, 11287, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 43008, 43009, 43010, 43011, 43012, 43013, 43014, 43015, 43016, 43017, 43018, 43019, 43020, 43021, 43022, 43023, 43024, 43025, 43026, 43027, 43028, 43029, 43030, 43031, 43032, 43033, 43034, 0, 43036, 0, 43038, 43039, 43040, 0, 43042, 43043, 43044, 43045, 43046, 43047, 43048, 43049, 43050, 0, 0, 0, 0, 43055, 43056, 43057, 0, 0, 43060, 0, 43062, 0, 43064, 0, 0, 43067, 0, 0, 43070, 0, 0, 0, 0, 0, 43076, 0, 43078, 0, 0, 0, 43082, 43083, 43084, 0, 0, 0, 43088, 0, 0, 43091, 43092, 43093, 43094, 43095, 43096, 43097, 43098, 43099, 43100, 43101, 43102, 43103, 43104, 43105, 43106, 43107, 43108, 43109, 43110, 43111, 43112, 43113, 43114, 43115, 43116, 43117, 43118, 43119, 0, 43121, 43122, 43123, 0, 0, 43126, 43127, 43128, 0, 43130, 43131, 43132, 43133, 43134, 43135, 43136, 43137, 0, 43139, 43140, 43141, 43142, 43143, 43144, 43145, 43146, 43147, 0, 0, 43150, 43151, 43152, 43153, 0, 0, 43156, 43157, 0, 0, 43160, 43161, 0, 43163, 0, 43165, 0, 43167, 43168, 43169, 43170, 43171, 43172, 43173, 43174, 43175, 43176, 43177, 43178, 43179, 43180, 43181, 43182, 43183, 43184, 43185, 43186, 43187, 43188, 43189, 43190, 43191, 43192, 0, 43194, 43195, 43196, 43197, 43198, 43199, 43200, 43201, 43202, 43203, 43204, 43205, 43206, 43207, 43208, 0, 0, 43211, 43212, 43213, 0, 0, 0, 43217, 43218, 0, 0, 0, 43222, 0, 0, 0, 0, 43227, 43228, 43229, 0, 43231, 0, 43233, 43234, 43235, 43236, 43237, 43238, 43239, 43240, 43241, 43242, 43243, 43244, 43245, 43246, 43247, 43248, 43249, 43250, 0, 43252, 43253, 43254, 43255, 43256, 43257, 43258, 0, 0, 43261, 43262, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +553: 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 48578, 33254, 24210, 48578, 35083, 48578, 24514, 48578, 48578, 48578, 48578, 39151, 48578, 41597, 12086, 48578, 25521, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 27152, 48578, 45990, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 47750, 48578, 48578, 27565, 48578, 24536, 48578, 21826, 48578, 48578, 48578, 40331, 40332, 25721, 25657, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 36293, 47612, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 9974, 39560, 48578, 48578, 43721, 29555, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 40178, 48578, 20799, 48578, 48578, 48578, 10957, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 17575, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 37285, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 17964, 48578, 48578, 26674, 48578, 21142, 48578, 32028, 13507, 31841, 45273, 48578, 34000, 45274, 48578, 48578, 42824, 48578, 48578, 48578, 48578, 18459, 48578, 48578, 48578, 48578, 22440, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 44969, 28575, 34899, 48578, 38330, 48578, 48578, 48578, 9492, 48578, 20111, 48578, 27584, 33718, 48578, 32744, 15642, 48578, 48578, 48578, 48578, 31211, 48578, 34560, 47883, 48578, 48578, 48578, 48578, 48578, 48578, 34119, 48578, 36447, 48578, 48578, 48578, 48578, 45692, 45857, 48578, 48578, 48578, 48578, 48578, 14914, 27591, 48578, 45579, 48578, 48578, 48578, 47013, 30947, 17344, 15964, 48578, 48578, 48578, 48578, 48578, 48578, 9500, 48578, 17039, 20607, 48578, 43825, 7547, 48578, 48578, 48578, 48578, 48578, 48578, 45700, 48578, 39119, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 43264, 0, 0, 43267, 0, 43269, 0, 43271, 43272, 43273, 43274, 0, 43276, 0, 0, 43279, 0, 43281, 43282, 43283, 43284, 43285, 43286, 43287, 0, 43289, 0, 43291, 43292, 43293, 43294, 43295, 43296, 43297, 43298, 43299, 0, 43301, 43302, 0, 43304, 0, 43306, 0, 43308, 43309, 43310, 0, 0, 0, 0, 43315, 43316, 43317, 43318, 43319, 43320, 43321, 43322, 43323, 43324, 43325, 43326, 43327, 43328, 43329, 0, 0, 43332, 43333, 43334, 43335, 43336, 43337, 43338, 0, 0, 43341, 43342, 0, 0, 43345, 43346, 43347, 43348, 43349, 43350, 43351, 0, 43353, 0, 43355, 43356, 43357, 0, 43359, 43360, 43361, 43362, 43363, 43364, 43365, 43366, 43367, 43368, 43369, 43370, 43371, 43372, 43373, 43374, 43375, 43376, 43377, 43378, 0, 43380, 43381, 43382, 43383, 43384, 43385, 43386, 43387, 43388, 0, 43390, 43391, 43392, 43393, 43394, 43395, 43396, 0, 43398, 43399, 0, 43401, 0, 43403, 0, 0, 0, 0, 43408, 0, 0, 43411, 43412, 0, 43414, 43415, 43416, 43417, 0, 43419, 43420, 43421, 43422, 0, 43424, 43425, 43426, 43427, 43428, 43429, 43430, 43431, 43432, 43433, 43434, 43435, 43436, 43437, 43438, 43439, 0, 0, 0, 43443, 0, 43445, 43446, 43447, 0, 43449, 0, 43451, 0, 0, 43454, 0, 0, 43457, 43458, 43459, 43460, 0, 43462, 0, 0, 43465, 43466, 43467, 43468, 43469, 43470, 0, 43472, 0, 43474, 43475, 43476, 43477, 0, 0, 43480, 43481, 43482, 43483, 43484, 0, 0, 43487, 0, 43489, 43490, 43491, 0, 0, 0, 0, 43496, 43497, 43498, 43499, 43500, 43501, 0, 43503, 0, 0, 43506, 0, 0, 43509, 43510, 43511, 43512, 43513, 43514, 0, 43516, 0, 43518, 43519, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +554: 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 1, 1, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 1, 48578, 40777, 38552, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 22193, 19436, 48578, 10887, 48578, 37648, 48578, 27603, 45587, 48578, 48578, 48578, 48578, 21006, 34229, 48578, 38914, 48578, 14274, 48578, 48578, 48578, 18298, 18302, 48578, 24340, 48578, 48578, 11224, 48578, 48578, 42569, 26863, 40726, 47147, 48578, 42952, 48578, 48578, 48578, 48578, 48578, 48578, 24900, 48578, 48578, 48578, 48578, 20109, 20232, 21713, 48578, 48578, 47549, 48578, 48578, 48578, 38530, 48578, 48578, 48578, 48578, 48578, 48578, 22696, 22663, 24421, 8374, 15947, 48578, 40748, 33377, 25317, 22624, 48578, 48578, 48578, 48578, 48578, 9197, 8652, 34732, 30619, 33628, 48578, 48578, 48578, 19335, 48578, 31348, 48578, 48578, 48578, 48578, 48578, 42914, 22077, 46047, 48578, 40428, 48578, 48578, 48578, 48578, 37296, 17147, 39292, 48578, 37331, 42643, 48578, 48578, 48578, 48578, 48578, 48578, 11875, 48578, 48578, 48578, 20467, 28237, 48578, 48578, 29663, 48578, 20874, 41164, 18149, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 44080, 29059, 42435, 48578, 48578, 43520, 48578, 22816, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 39844, 39700, 48578, 48578, 48578, 48578, 28330, 48578, 46067, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 20880, 48578, 48578, 29061, 33568, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 20004, 48578, 48578, 48578, 48578, 47311, 32739, 48578, 48578, 25963, 33051, 29069, 48578, 9132, 46193, 48578, 31562, 48578, 11595, 48311, 48578, 38331, 38528, 48578, 48578, 28747, 48578, 48578, 48578, 39336, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 43520, 0, 0, 43523, 43524, 43525, 43526, 43527, 43528, 43529, 43530, 43531, 43532, 43533, 43534, 0, 0, 43537, 0, 43539, 0, 43541, 0, 0, 43544, 43545, 43546, 43547, 0, 0, 43550, 0, 43552, 0, 43554, 43555, 43556, 0, 0, 43559, 0, 43561, 43562, 0, 43564, 43565, 0, 0, 0, 0, 43570, 0, 43572, 43573, 43574, 43575, 43576, 43577, 0, 43579, 43580, 43581, 43582, 0, 0, 0, 43586, 43587, 0, 43589, 43590, 43591, 0, 43593, 43594, 43595, 43596, 43597, 43598, 0, 0, 0, 0, 0, 43604, 0, 0, 0, 0, 43609, 43610, 43611, 43612, 43613, 0, 0, 0, 0, 0, 43619, 43620, 43621, 0, 43623, 0, 43625, 43626, 43627, 43628, 43629, 0, 0, 0, 43633, 0, 43635, 43636, 43637, 43638, 0, 0, 0, 43642, 0, 0, 43645, 43646, 43647, 43648, 43649, 43650, 0, 43652, 43653, 43654, 0, 0, 43657, 43658, 0, 43660, 0, 0, 0, 43664, 43665, 43666, 43667, 43668, 43669, 43670, 43671, 43672, 43673, 43674, 43675, 43676, 43677, 43678, 43679, 43680, 43681, 43682, 43683, 43684, 0, 0, 0, 43688, 43689, 0, 43691, 0, 43693, 43694, 43695, 43696, 43697, 43698, 43699, 43700, 43701, 0, 0, 43704, 43705, 43706, 43707, 0, 43709, 0, 43711, 43712, 43713, 43714, 43715, 43716, 43717, 43718, 43719, 43720, 43721, 43722, 43723, 43724, 43725, 43726, 43727, 0, 43729, 43730, 0, 0, 43733, 43734, 43735, 43736, 43737, 43738, 43739, 43740, 43741, 43742, 43743, 43744, 43745, 0, 43747, 43748, 43749, 43750, 0, 0, 43753, 43754, 0, 0, 0, 43758, 0, 0, 43761, 0, 43763, 0, 0, 43766, 0, 0, 43769, 43770, 0, 43772, 43773, 43774, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +555: 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 2, 17885, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 36821, 21150, 48578, 48578, 48578, 48578, 20900, 17712, 36999, 46205, 30035, 21197, 28290, 48578, 48578, 48578, 48578, 13898, 48578, 38726, 40226, 48578, 39077, 23807, 13739, 19773, 9744, 11012, 48578, 15753, 48578, 48578, 48578, 48578, 48578, 39745, 12608, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 8720, 39858, 40385, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 44424, 39435, 24119, 31076, 48578, 48578, 27011, 48578, 31258, 41518, 48578, 30838, 31786, 48578, 7933, 46522, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 45575, 34735, 48578, 48578, 33245, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 25975, 48578, 48578, 48578, 40112, 48578, 15364, 45824, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 45578, 48578, 13750, 48578, 12737, 44545, 48578, 26183, 48578, 37671, 41191, 20682, 44948, 46962, 37961, 48578, 15948, 21807, 48578, 41764, 12130, 26904, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 43777, 43778, 43779, 43780, 43781, 43782, 43783, 43784, 43785, 43786, 43787, 43788, 43789, 43790, 43791, 43792, 43793, 43794, 43795, 43796, 43797, 43798, 43799, 43800, 43801, 43802, 43803, 43804, 43805, 43806, 43807, 43808, 43809, 43810, 43811, 43812, 43813, 43814, 43815, 43816, 43817, 43818, 0, 0, 43821, 43822, 43823, 43824, 0, 0, 0, 0, 0, 0, 0, 43832, 43833, 43834, 43835, 0, 43837, 0, 0, 43840, 0, 0, 0, 0, 0, 0, 43847, 0, 43849, 43850, 43851, 43852, 43853, 0, 0, 43856, 43857, 43858, 43859, 43860, 43861, 43862, 43863, 43864, 43865, 43866, 43867, 43868, 43869, 43870, 43871, 43872, 43873, 43874, 43875, 43876, 0, 0, 0, 43880, 43881, 43882, 43883, 43884, 43885, 43886, 43887, 43888, 43889, 43890, 43891, 43892, 43893, 43894, 43895, 43896, 43897, 43898, 43899, 43900, 43901, 43902, 43903, 43904, 0, 0, 0, 0, 43909, 43910, 0, 43912, 0, 0, 43915, 0, 0, 43918, 0, 0, 43921, 43922, 43923, 43924, 43925, 43926, 43927, 43928, 43929, 0, 0, 43932, 43933, 0, 43935, 43936, 43937, 43938, 43939, 43940, 43941, 43942, 43943, 43944, 43945, 43946, 43947, 43948, 43949, 43950, 43951, 43952, 43953, 43954, 43955, 43956, 43957, 43958, 43959, 43960, 43961, 43962, 43963, 43964, 43965, 43966, 43967, 43968, 43969, 43970, 43971, 43972, 0, 43974, 43975, 43976, 0, 43978, 0, 0, 43981, 43982, 43983, 43984, 43985, 43986, 43987, 43988, 43989, 43990, 43991, 43992, 43993, 43994, 43995, 43996, 43997, 43998, 43999, 44000, 44001, 44002, 44003, 44004, 44005, 44006, 44007, 44008, 0, 44010, 0, 44012, 0, 0, 44015, 0, 44017, 0, 0, 0, 0, 0, 0, 44024, 0, 0, 44027, 0, 0, 0, 44031, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +556: 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 48578, 48578, 48578, 48578, 48578, 48578, 15247, 7257, 48578, 48578, 41007, 48578, 15760, 7391, 48578, 48578, 48578, 48578, 19572, 48578, 48578, 48578, 48578, 48578, 29780, 46834, 48578, 48578, 29118, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 29372, 48578, 42723, 48578, 48578, 20920, 48578, 47996, 48578, 20084, 37526, 48578, 48578, 20085, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 10029, 48578, 35615, 35616, 19585, 35098, 48578, 36316, 29720, 30195, 48578, 48578, 48578, 48578, 48578, 27397, 48578, 48578, 48578, 48578, 48578, 42466, 48578, 31603, 21221, 48578, 48578, 22060, 48578, 48578, 44763, 32898, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 7878, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 8933, 48578, 48578, 48578, 38079, 45478, 31439, 35151, 25918, 48578, 48578, 48578, 13248, 11309, 8518, 47467, 26505, 14769, 30019, 43542, 41138, 48578, 7608, 47899, 48325, 48578, 48578, 8381, 48578, 48578, 48578, 48578, 48578, 23785, 48578, 36455, 48578, 48578, 48578, 48578, 48578, 36677, 20148, 48578, 48578, 48578, 48578, 36929, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 13937, 13468, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 44032, 44033, 44034, 44035, 44036, 44037, 0, 0, 44040, 44041, 0, 44043, 0, 0, 44046, 44047, 44048, 44049, 0, 44051, 44052, 44053, 44054, 44055, 0, 0, 44058, 44059, 0, 44061, 44062, 44063, 44064, 44065, 44066, 44067, 44068, 44069, 44070, 44071, 44072, 44073, 44074, 44075, 44076, 44077, 44078, 44079, 44080, 44081, 44082, 44083, 44084, 44085, 44086, 44087, 44088, 44089, 44090, 44091, 44092, 44093, 44094, 0, 44096, 0, 44098, 44099, 0, 44101, 0, 44103, 0, 0, 44106, 44107, 0, 44109, 44110, 44111, 44112, 44113, 44114, 44115, 44116, 44117, 44118, 44119, 44120, 44121, 44122, 44123, 44124, 44125, 44126, 0, 44128, 0, 0, 0, 0, 44133, 0, 0, 0, 44137, 44138, 44139, 44140, 44141, 0, 44143, 44144, 44145, 44146, 44147, 0, 44149, 0, 0, 44152, 44153, 0, 44155, 44156, 0, 0, 44159, 44160, 44161, 44162, 44163, 44164, 44165, 44166, 44167, 44168, 44169, 44170, 44171, 44172, 44173, 44174, 44175, 44176, 44177, 44178, 44179, 0, 44181, 44182, 44183, 44184, 44185, 44186, 44187, 44188, 44189, 44190, 44191, 44192, 44193, 44194, 44195, 44196, 44197, 44198, 44199, 44200, 44201, 44202, 44203, 44204, 44205, 44206, 44207, 0, 44209, 44210, 44211, 0, 0, 0, 0, 0, 44217, 44218, 44219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44229, 0, 0, 0, 44233, 44234, 0, 44236, 44237, 44238, 44239, 44240, 0, 44242, 0, 44244, 44245, 44246, 44247, 44248, 0, 0, 44251, 44252, 44253, 44254, 0, 44256, 44257, 44258, 44259, 44260, 44261, 44262, 44263, 44264, 44265, 44266, 44267, 44268, 44269, 44270, 44271, 44272, 44273, 44274, 44275, 44276, 44277, 44278, 44279, 44280, 44281, 44282, 44283, 44284, 0, 0, 44287, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +557: 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 1, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 48578, 48578, 8682, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 47032, 48578, 14872, 48578, 48578, 48578, 22540, 47033, 45793, 8539, 23052, 48578, 7882, 22065, 31998, 48578, 30449, 23934, 40142, 36039, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 35154, 48578, 8176, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 42131, 20281, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 45479, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 47636, 48578, 48578, 14509, 48578, 33782, 48578, 31764, 48578, 30254, 48578, 36706, 33393, 45255, 48578, 48578, 48578, 28721, 16591, 11987, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 31381, 48578, 13260, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 30036, 11652, 48578, 7951, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 43560, 48578, 48578, 48578, 39550, 48578, 48578, 42871, 27561, 13742, 47372, 48578, 22812, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 46032, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 25522, 48578, 46858, 10052, 13627, 44867, 48578, 48578, 35662, 20995, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 44288, 44289, 0, 44291, 44292, 44293, 44294, 44295, 44296, 44297, 44298, 44299, 44300, 44301, 44302, 44303, 44304, 44305, 44306, 44307, 44308, 44309, 44310, 44311, 44312, 44313, 44314, 44315, 44316, 44317, 44318, 44319, 0, 44321, 0, 44323, 44324, 44325, 0, 0, 0, 0, 0, 44331, 0, 0, 0, 44335, 0, 0, 0, 0, 44340, 44341, 44342, 44343, 44344, 44345, 44346, 44347, 0, 44349, 0, 44351, 44352, 44353, 44354, 44355, 44356, 44357, 44358, 0, 0, 44361, 44362, 44363, 44364, 44365, 44366, 44367, 44368, 44369, 44370, 44371, 44372, 44373, 44374, 44375, 44376, 44377, 44378, 44379, 44380, 44381, 44382, 44383, 44384, 44385, 44386, 44387, 44388, 0, 44390, 44391, 44392, 44393, 44394, 44395, 44396, 44397, 44398, 44399, 44400, 44401, 44402, 44403, 44404, 44405, 44406, 44407, 44408, 44409, 44410, 44411, 44412, 44413, 44414, 44415, 0, 44417, 44418, 0, 44420, 0, 44422, 0, 44424, 0, 44426, 0, 0, 0, 44430, 44431, 44432, 0, 0, 0, 44436, 44437, 44438, 44439, 44440, 44441, 44442, 44443, 44444, 44445, 44446, 44447, 44448, 0, 44450, 0, 44452, 44453, 44454, 44455, 44456, 44457, 44458, 44459, 44460, 44461, 44462, 44463, 44464, 44465, 44466, 0, 0, 44469, 0, 44471, 44472, 44473, 44474, 44475, 44476, 44477, 44478, 44479, 44480, 44481, 44482, 44483, 44484, 44485, 44486, 44487, 44488, 44489, 44490, 44491, 44492, 0, 44494, 44495, 44496, 0, 44498, 44499, 0, 0, 0, 0, 44504, 0, 44506, 44507, 44508, 44509, 44510, 44511, 44512, 44513, 0, 44515, 44516, 44517, 44518, 44519, 44520, 44521, 44522, 44523, 44524, 44525, 44526, 44527, 44528, 44529, 44530, 44531, 44532, 44533, 0, 44535, 0, 0, 0, 0, 44540, 44541, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +558: 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 1, 24515, 16213, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 7913, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 17052, 24944, 33962, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 28731, 48578, 11948, 38029, 48578, 37326, 48578, 48578, 35224, 48578, 25658, 48578, 48578, 48578, 48578, 48578, 39933, 41820, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 31683, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 38915, 48578, 44370, 48578, 46618, 40348, 9858, 14932, 48578, 17057, 48578, 21367, 23704, 39397, 48578, 48578, 25376, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 24025, 48578, 48578, 48578, 22360, 40054, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 45262, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 16625, 31467, 26487, 42373, 26242, 35802, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 26488, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 7711, 10103, 48578, 47957, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 36681, 48578, 48578, 48578, 37561, 25411, 48578, 48578, 48578, 44729, 30717, 48578, 30498, 48578, 48578, 48578, 48578, 19746, 9125, 48578, 34107, 15355, 48578, 16758, 48578, 48578, 13019, 48578, 17442, 48578, 15579, 48578, 30533, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 10573, 19000, 48578, 48578, 39242, 34211, 46988, 30573, 48578, 17165, 48578, 48578, 20710, 24473, 48578, 24979, 48578, 31287, 48578, 48578, 48578, 33075, 48578, 30475, 34100, 48578, 48578, 20875, 48578, 48578, 48578, 48578, 48578, 48578, 8120, 8638, 7645, 22276, 29691, 48578, 48578, 12390, 48578, 48578, 36054, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 44546, 44547, 44548, 44549, 44550, 44551, 44552, 44553, 44554, 44555, 0, 44557, 44558, 44559, 44560, 44561, 44562, 44563, 44564, 44565, 44566, 0, 0, 0, 44570, 44571, 44572, 44573, 44574, 44575, 44576, 44577, 44578, 0, 44580, 0, 0, 44583, 0, 44585, 44586, 0, 44588, 0, 44590, 44591, 44592, 44593, 44594, 0, 0, 44597, 44598, 44599, 44600, 44601, 44602, 44603, 44604, 44605, 44606, 44607, 44608, 44609, 44610, 0, 44612, 44613, 44614, 44615, 44616, 44617, 44618, 44619, 44620, 0, 44622, 0, 44624, 0, 0, 0, 0, 44629, 0, 44631, 0, 0, 0, 44635, 44636, 0, 44638, 44639, 44640, 44641, 44642, 44643, 44644, 44645, 44646, 44647, 44648, 44649, 44650, 44651, 44652, 44653, 0, 44655, 44656, 44657, 0, 0, 44660, 44661, 44662, 44663, 44664, 44665, 44666, 44667, 0, 44669, 44670, 44671, 44672, 44673, 44674, 44675, 0, 0, 0, 0, 0, 0, 44682, 44683, 44684, 44685, 44686, 44687, 44688, 0, 44690, 44691, 44692, 44693, 44694, 44695, 44696, 44697, 44698, 44699, 44700, 44701, 0, 0, 44704, 0, 44706, 44707, 44708, 44709, 44710, 44711, 44712, 44713, 44714, 0, 44716, 44717, 44718, 0, 0, 44721, 44722, 44723, 0, 0, 44726, 0, 44728, 44729, 44730, 44731, 0, 0, 44734, 0, 0, 44737, 0, 44739, 44740, 0, 44742, 0, 44744, 0, 44746, 0, 44748, 44749, 44750, 44751, 44752, 44753, 44754, 0, 0, 44757, 44758, 0, 0, 0, 0, 44763, 0, 44765, 44766, 0, 0, 44769, 0, 44771, 0, 44773, 44774, 44775, 0, 44777, 0, 0, 44780, 44781, 0, 44783, 44784, 44785, 44786, 44787, 44788, 0, 0, 0, 0, 0, 44794, 44795, 0, 44797, 44798, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +559: 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 1, 1, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 23227, 22889, 48578, 22845, 48578, 48578, 48578, 48578, 48578, 34108, 34109, 19362, 8038, 48578, 48578, 48578, 22660, 23068, 48578, 48578, 48578, 48578, 27688, 48578, 48578, 24901, 14155, 15937, 48578, 48578, 48578, 37736, 13943, 48578, 48578, 30860, 18420, 48578, 17954, 48578, 48578, 29580, 48578, 20759, 48578, 48578, 48578, 48578, 31964, 48128, 47341, 23071, 48578, 33360, 48578, 19774, 37786, 30305, 41187, 48578, 33688, 48578, 48578, 48578, 48578, 48578, 23728, 46825, 36804, 48578, 48578, 12235, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 42035, 21209, 46826, 48578, 48578, 47884, 48578, 45245, 9925, 48578, 48578, 48578, 48578, 26905, 48578, 48578, 48578, 22801, 47265, 18106, 29590, 48578, 48578, 48578, 21589, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 11566, 27698, 48578, 48578, 48578, 48578, 40023, 48578, 13671, 37874, 48578, 9498, 44293, 13703, 22386, 29872, 48578, 48578, 10587, 48578, 48578, 48578, 11538, 48578, 33727, 41777, 23017, 48578, 44938, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 30574, 46545, 48578, 22711, 30575, 46846, 26012, 48578, 48578, 48578, 48578, 29724, 29152, 29470, 48578, 48578, 48578, 48578, 48578, 48578, 14724, 48578, 48578, 48578, 48578, 38195, 48578, 48578, 27120, 48578, 48578, 48578, 48578, 48578, 33554, 48578, 48578, 48578, 40623, 48578, 14045, 8850, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 43960, 48578, 26709, 48578, 24980, 48578, 48578, 40150, 26277, 31288, 12745, 48578, 10605, 10606, 48578, 48578, 48578, 48578, 48578, 11580, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 9685, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 44802, 0, 44804, 44805, 44806, 44807, 44808, 0, 0, 0, 0, 44813, 44814, 44815, 0, 0, 44818, 44819, 44820, 44821, 0, 44823, 44824, 0, 0, 0, 44828, 44829, 44830, 0, 0, 44833, 44834, 0, 0, 44837, 0, 44839, 44840, 0, 44842, 0, 44844, 44845, 44846, 44847, 0, 0, 0, 0, 44852, 0, 44854, 0, 0, 0, 0, 44859, 0, 44861, 44862, 44863, 44864, 44865, 0, 0, 0, 44869, 44870, 0, 44872, 44873, 44874, 44875, 44876, 44877, 44878, 44879, 44880, 44881, 44882, 44883, 44884, 0, 0, 0, 44888, 44889, 0, 44891, 0, 0, 44894, 44895, 44896, 44897, 0, 44899, 44900, 44901, 0, 0, 0, 0, 44906, 44907, 44908, 0, 44910, 44911, 44912, 44913, 44914, 44915, 44916, 44917, 44918, 44919, 0, 0, 44922, 44923, 44924, 44925, 0, 44927, 0, 0, 44930, 0, 0, 0, 0, 0, 44936, 44937, 0, 44939, 44940, 44941, 0, 44943, 0, 0, 0, 44947, 0, 44949, 44950, 44951, 44952, 44953, 44954, 44955, 44956, 44957, 44958, 44959, 44960, 44961, 44962, 44963, 44964, 44965, 0, 0, 44968, 0, 0, 0, 0, 44973, 44974, 44975, 44976, 0, 0, 0, 44980, 44981, 44982, 44983, 44984, 44985, 0, 44987, 44988, 44989, 44990, 0, 44992, 44993, 0, 44995, 44996, 44997, 44998, 44999, 0, 45001, 45002, 45003, 0, 45005, 0, 0, 45008, 45009, 45010, 45011, 45012, 45013, 45014, 45015, 45016, 45017, 0, 45019, 0, 45021, 0, 45023, 45024, 0, 0, 0, 0, 45029, 0, 0, 45032, 45033, 45034, 45035, 45036, 0, 45038, 45039, 45040, 45041, 45042, 45043, 45044, 45045, 45046, 45047, 0, 45049, 45050, 45051, 45052, 45053, 45054, 45055, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +560: 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 23942, 45935, 24311, 24709, 32399, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 10438, 48578, 10610, 16372, 48578, 48254, 11084, 11378, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 24067, 34875, 26208, 48578, 48578, 48578, 48578, 15335, 48578, 24553, 48578, 33174, 48578, 48578, 48578, 33132, 48578, 48578, 48578, 33086, 48578, 48578, 48578, 28853, 48578, 48578, 48384, 24324, 48578, 48578, 48578, 34613, 48578, 48578, 15338, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 8428, 48578, 48578, 48578, 12634, 48578, 48578, 48578, 48578, 34114, 48578, 48578, 48578, 15713, 36018, 48578, 48578, 48578, 48578, 26710, 48578, 48578, 24174, 48578, 48578, 8563, 48578, 48578, 48578, 29341, 48578, 43973, 48578, 48578, 48578, 48578, 21502, 48578, 16987, 24899, 48578, 48578, 38356, 30861, 13516, 48578, 25047, 48578, 20672, 48578, 25048, 48578, 48578, 48578, 48578, 48578, 36625, 48578, 48578, 16998, 48578, 29389, 31275, 48578, 12827, 45187, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 23905, 48578, 48578, 48578, 34893, 40376, 48578, 48578, 48578, 48578, 40386, 39800, 26415, 48578, 48578, 48578, 48578, 48578, 8252, 36622, 48578, 48578, 48578, 48578, 48578, 48578, 40024, 48578, 13490, 48578, 48578, 48578, 48578, 12557, 36767, 47684, 48578, 48578, 48578, 48578, 48578, 29185, 48578, 38380, 48578, 48578, 48578, 48578, 48578, 48578, 40408, 32928, 48578, 48578, 47926, 12574, 48578, 48578, 48578, 12040, 48578, 48578, 48578, 47939, 48578, 48578, 48578, 48578, 48578, 11793, 10006, 48578, 48578, 48578, 48578, 42082, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 41745, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 41750, 48578, 46459, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 29133, 41880, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 45061, 45062, 45063, 45064, 45065, 45066, 45067, 45068, 0, 45070, 0, 0, 45073, 0, 0, 0, 45077, 45078, 45079, 45080, 45081, 45082, 45083, 0, 0, 0, 45087, 45088, 45089, 45090, 0, 45092, 0, 45094, 0, 45096, 45097, 45098, 0, 45100, 45101, 45102, 0, 45104, 45105, 45106, 0, 45108, 45109, 0, 0, 45112, 45113, 45114, 0, 45116, 45117, 0, 45119, 45120, 45121, 45122, 45123, 45124, 45125, 45126, 45127, 45128, 0, 45130, 45131, 45132, 0, 45134, 45135, 45136, 45137, 0, 45139, 45140, 45141, 0, 0, 45144, 45145, 45146, 45147, 0, 45149, 45150, 0, 45152, 45153, 0, 45155, 45156, 45157, 0, 45159, 0, 45161, 45162, 45163, 45164, 0, 45166, 0, 0, 45169, 45170, 0, 0, 0, 45174, 0, 45176, 0, 45178, 0, 45180, 45181, 45182, 45183, 45184, 0, 45186, 45187, 0, 45189, 0, 0, 45192, 0, 0, 45195, 45196, 45197, 45198, 45199, 45200, 45201, 0, 45203, 45204, 45205, 0, 0, 45208, 45209, 45210, 45211, 0, 0, 0, 45215, 45216, 45217, 45218, 45219, 0, 0, 45222, 45223, 45224, 45225, 45226, 45227, 0, 45229, 0, 45231, 45232, 45233, 45234, 0, 0, 0, 45238, 45239, 45240, 45241, 45242, 0, 45244, 0, 45246, 45247, 45248, 45249, 45250, 45251, 0, 0, 45254, 45255, 0, 0, 45258, 45259, 45260, 0, 45262, 45263, 45264, 0, 45266, 45267, 45268, 45269, 45270, 0, 0, 45273, 45274, 45275, 45276, 0, 45278, 45279, 45280, 45281, 45282, 45283, 45284, 45285, 45286, 0, 45288, 45289, 45290, 45291, 45292, 45293, 45294, 45295, 45296, 45297, 45298, 0, 45300, 0, 45302, 45303, 45304, 45305, 45306, 45307, 45308, 0, 0, 45311, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +561: 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48578, 48578, 48578, 48578, 48578, 14655, 48578, 48578, 48578, 41778, 44295, 48578, 48578, 36354, 15462, 8215, 48578, 41787, 48578, 18878, 48578, 48578, 48578, 48578, 48578, 18821, 48578, 48578, 16910, 41928, 48578, 18243, 8803, 48578, 48578, 48578, 48578, 48578, 48578, 35526, 48578, 48578, 48578, 48578, 48578, 48578, 48121, 19739, 14120, 19775, 23228, 48578, 24880, 48578, 48578, 48578, 19266, 48578, 37891, 47827, 48578, 48578, 48578, 36792, 48578, 48578, 48578, 45290, 44138, 48578, 48578, 48578, 48578, 32582, 48578, 48578, 48578, 27519, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 28133, 48578, 48578, 36994, 48578, 12339, 48578, 22091, 48578, 48578, 40727, 12769, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 39795, 48578, 48578, 48578, 48578, 48578, 48578, 40612, 48578, 48578, 44087, 16542, 48578, 48578, 38712, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 17710, 48578, 48578, 48578, 48578, 13326, 48578, 48578, 25847, 48578, 40813, 48578, 47342, 39610, 18712, 9745, 34255, 15709, 29132, 7451, 48578, 48578, 48578, 40062, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 17510, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 31481, 16088, 33493, 15224, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 45576, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 12436, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 13022, 33877, 48578, 48366, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 8859, 48578, 48578, 48578, 11449, 46300, 12299, 48578, 48578, 38336, 31734, 48578, 48578, 48578, 25136, 48578, 19130, 19389, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 45312, 45313, 45314, 45315, 45316, 0, 45318, 45319, 45320, 0, 0, 45323, 45324, 0, 0, 0, 45328, 0, 45330, 0, 45332, 45333, 45334, 45335, 45336, 0, 45338, 45339, 0, 0, 45342, 0, 0, 45345, 45346, 45347, 45348, 45349, 45350, 0, 45352, 45353, 45354, 45355, 45356, 45357, 0, 0, 0, 0, 0, 45363, 0, 45365, 45366, 45367, 0, 45369, 0, 0, 45372, 45373, 45374, 0, 45376, 45377, 45378, 0, 0, 45381, 45382, 45383, 45384, 0, 45386, 45387, 45388, 0, 45390, 45391, 45392, 45393, 45394, 45395, 45396, 45397, 45398, 45399, 45400, 45401, 0, 45403, 45404, 0, 45406, 0, 45408, 0, 45410, 45411, 0, 0, 45414, 45415, 45416, 45417, 45418, 45419, 45420, 45421, 45422, 45423, 0, 45425, 45426, 45427, 45428, 45429, 45430, 0, 45432, 45433, 0, 0, 45436, 45437, 0, 45439, 45440, 45441, 45442, 45443, 45444, 45445, 45446, 45447, 0, 45449, 45450, 45451, 45452, 0, 45454, 45455, 0, 45457, 0, 45459, 0, 0, 0, 0, 0, 0, 0, 0, 45468, 45469, 45470, 0, 45472, 45473, 45474, 45475, 45476, 45477, 45478, 0, 45480, 45481, 45482, 45483, 45484, 45485, 45486, 45487, 45488, 45489, 0, 0, 0, 0, 45494, 45495, 45496, 45497, 45498, 45499, 45500, 0, 45502, 45503, 45504, 45505, 45506, 45507, 45508, 45509, 45510, 0, 45512, 45513, 45514, 45515, 45516, 45517, 45518, 45519, 45520, 45521, 45522, 45523, 45524, 45525, 0, 0, 45528, 0, 45530, 45531, 45532, 45533, 45534, 45535, 45536, 45537, 0, 45539, 45540, 45541, 0, 0, 0, 45545, 45546, 0, 0, 45549, 45550, 45551, 0, 45553, 0, 0, 45556, 45557, 45558, 45559, 45560, 45561, 45562, 45563, 45564, 45565, 45566, 45567, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +562: 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 48578, 48578, 48578, 48578, 48578, 9605, 48578, 48578, 48578, 48578, 28064, 48578, 48578, 13230, 38065, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 8726, 36418, 48578, 48578, 48578, 37057, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 16112, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 10731, 11844, 36420, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 19272, 30441, 33216, 33205, 41098, 7509, 28229, 48578, 42054, 34532, 33383, 48578, 48578, 48578, 48578, 36812, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 41536, 18816, 48578, 48578, 48578, 8937, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 29231, 9614, 48578, 7548, 48578, 26928, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 27125, 48578, 36505, 48578, 48578, 48578, 48578, 48578, 48578, 33206, 40959, 22495, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 23774, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 8872, 11815, 48578, 48578, 39470, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 37240, 48578, 48578, 48578, 48578, 44649, 12470, 43796, 48578, 46108, 48578, 30395, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 19071, 48578, 48578, 48578, 48578, 48578, 7356, 27832, 48578, 48578, 21319, 23612, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 25095, 29999, 48578, 9246, 31782, 48578, 48578, 8606, 48578, 48578, 48578, 48578, 48578, 43851, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 45568, 45569, 45570, 45571, 45572, 0, 45574, 45575, 45576, 45577, 0, 45579, 45580, 0, 0, 45583, 45584, 45585, 45586, 45587, 45588, 45589, 45590, 45591, 45592, 45593, 45594, 45595, 45596, 45597, 45598, 45599, 0, 0, 45602, 45603, 45604, 0, 45606, 45607, 45608, 45609, 45610, 45611, 45612, 45613, 45614, 45615, 45616, 45617, 45618, 45619, 45620, 45621, 0, 45623, 45624, 45625, 45626, 45627, 45628, 45629, 45630, 45631, 45632, 45633, 45634, 45635, 0, 0, 0, 45639, 45640, 45641, 45642, 45643, 45644, 45645, 45646, 45647, 45648, 45649, 0, 0, 0, 0, 0, 0, 0, 45657, 0, 0, 0, 45661, 45662, 45663, 45664, 0, 45666, 45667, 45668, 45669, 45670, 45671, 45672, 0, 0, 45675, 45676, 45677, 0, 45679, 45680, 45681, 45682, 45683, 45684, 45685, 45686, 45687, 45688, 45689, 45690, 45691, 45692, 45693, 0, 0, 45696, 0, 45698, 0, 45700, 45701, 45702, 45703, 45704, 45705, 45706, 45707, 45708, 45709, 45710, 45711, 45712, 45713, 45714, 45715, 0, 45717, 0, 45719, 45720, 45721, 45722, 45723, 45724, 0, 0, 0, 45728, 45729, 45730, 45731, 45732, 45733, 45734, 0, 45736, 45737, 45738, 45739, 45740, 45741, 45742, 45743, 45744, 45745, 45746, 45747, 45748, 45749, 0, 0, 45752, 45753, 0, 45755, 45756, 45757, 45758, 45759, 45760, 45761, 45762, 45763, 0, 45765, 45766, 45767, 45768, 0, 0, 0, 45772, 0, 45774, 0, 45776, 45777, 45778, 45779, 45780, 45781, 45782, 45783, 0, 45785, 45786, 45787, 45788, 45789, 0, 0, 45792, 45793, 0, 0, 45796, 45797, 45798, 45799, 45800, 45801, 45802, 45803, 45804, 45805, 45806, 45807, 45808, 45809, 0, 0, 45812, 0, 0, 45815, 45816, 0, 45818, 45819, 45820, 45821, 45822, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +563: 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 48578, 48578, 48578, 48578, 48578, 24554, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 28854, 48578, 12698, 48578, 48578, 48578, 18553, 48578, 48578, 48578, 45044, 48578, 48578, 11494, 48578, 24629, 48578, 46042, 25412, 11530, 48578, 48578, 48578, 48578, 48578, 48578, 9651, 41303, 48578, 48578, 48578, 21802, 19117, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 36829, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 28901, 21908, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 9841, 48578, 48578, 48578, 48578, 48578, 48578, 45431, 48578, 48578, 48578, 48578, 44724, 48578, 48578, 48578, 22735, 48578, 48578, 48578, 48578, 48578, 48578, 23116, 14712, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 45172, 31074, 48578, 48578, 48578, 32211, 48578, 48578, 48578, 30242, 48578, 29529, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 16113, 43101, 26464, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 23041, 48578, 41099, 28693, 48578, 48578, 48578, 48578, 48578, 18220, 21759, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 42522, 48578, 48578, 48578, 48578, 38917, 48578, 48578, 45040, 36139, 30075, 13882, 8112, 48578, 48578, 24967, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 43879, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 41412, 48578, 48578, 20653, 48578, 48578, 23358, 48578, 46444, 34620, 48578, 48578, 34189, 48578, 48578, 48578, 43997, 29291, 39961, 19529, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 30407, 17586, 48578, 48578, 22817, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 45824, 45825, 45826, 45827, 45828, 0, 45830, 45831, 45832, 45833, 45834, 45835, 45836, 0, 45838, 0, 45840, 45841, 45842, 0, 45844, 45845, 45846, 0, 45848, 45849, 0, 45851, 0, 45853, 0, 0, 0, 45857, 45858, 45859, 45860, 45861, 45862, 0, 0, 45865, 45866, 45867, 0, 0, 45870, 45871, 45872, 45873, 45874, 45875, 45876, 45877, 45878, 45879, 45880, 45881, 45882, 45883, 45884, 45885, 0, 45887, 45888, 45889, 45890, 45891, 45892, 45893, 0, 0, 45896, 45897, 45898, 45899, 45900, 45901, 45902, 0, 45904, 45905, 45906, 45907, 45908, 45909, 0, 45911, 45912, 45913, 45914, 0, 45916, 45917, 45918, 0, 45920, 45921, 45922, 45923, 45924, 45925, 0, 0, 45928, 45929, 45930, 45931, 45932, 45933, 45934, 0, 0, 45937, 45938, 45939, 0, 45941, 45942, 45943, 0, 45945, 0, 45947, 45948, 45949, 45950, 45951, 45952, 45953, 45954, 45955, 0, 0, 0, 45959, 45960, 45961, 45962, 45963, 45964, 45965, 45966, 45967, 45968, 0, 45970, 0, 0, 45973, 45974, 45975, 45976, 45977, 0, 0, 45980, 45981, 45982, 45983, 45984, 45985, 45986, 45987, 45988, 45989, 45990, 45991, 45992, 0, 45994, 45995, 45996, 45997, 0, 45999, 46000, 0, 0, 0, 0, 0, 46006, 46007, 0, 46009, 46010, 46011, 46012, 46013, 46014, 46015, 0, 46017, 46018, 46019, 46020, 46021, 46022, 46023, 46024, 46025, 46026, 46027, 46028, 46029, 0, 46031, 46032, 0, 46034, 46035, 0, 46037, 0, 0, 46040, 46041, 0, 46043, 46044, 46045, 0, 0, 0, 0, 46050, 46051, 46052, 46053, 46054, 46055, 46056, 46057, 46058, 46059, 46060, 46061, 46062, 46063, 46064, 46065, 46066, 46067, 46068, 46069, 0, 0, 46072, 46073, 0, 46075, 46076, 46077, 46078, 46079, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +564: 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48578, 48578, 42442, 10826, 48578, 48578, 48578, 48578, 48578, 48578, 22568, 44970, 48578, 48578, 37489, 28650, 48578, 11622, 48578, 42681, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 21625, 48578, 48578, 48578, 48578, 48578, 48578, 41989, 24108, 48578, 12247, 10967, 48578, 48578, 48578, 48578, 48578, 42700, 48578, 48578, 48578, 48578, 17311, 48578, 48578, 48578, 48578, 42580, 48578, 10998, 18329, 47632, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 31721, 14019, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 36858, 39340, 48578, 48578, 48578, 48578, 48578, 15226, 48578, 48578, 13053, 38952, 40063, 46460, 31365, 37004, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 17321, 23121, 35569, 48578, 34457, 36641, 48578, 48578, 48578, 46344, 48578, 48578, 28451, 48578, 31081, 43414, 48578, 24862, 33422, 48136, 29781, 15798, 48578, 48578, 21214, 44027, 48578, 33583, 48578, 27387, 29229, 48578, 18107, 48578, 48578, 48578, 44166, 48578, 27204, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 46080, 46081, 0, 0, 46084, 46085, 46086, 46087, 46088, 46089, 0, 0, 46092, 46093, 0, 0, 46096, 0, 46098, 0, 46100, 46101, 46102, 46103, 46104, 46105, 46106, 46107, 46108, 46109, 46110, 46111, 46112, 46113, 46114, 46115, 0, 46117, 46118, 46119, 46120, 46121, 46122, 0, 0, 46125, 0, 0, 46128, 46129, 46130, 46131, 46132, 0, 46134, 46135, 46136, 46137, 0, 46139, 46140, 46141, 46142, 0, 46144, 0, 0, 0, 46148, 46149, 46150, 46151, 46152, 46153, 46154, 46155, 46156, 46157, 46158, 46159, 46160, 46161, 46162, 46163, 46164, 46165, 46166, 46167, 46168, 46169, 46170, 46171, 46172, 46173, 46174, 46175, 46176, 46177, 46178, 46179, 46180, 46181, 0, 0, 46184, 46185, 46186, 46187, 46188, 46189, 46190, 46191, 46192, 46193, 46194, 46195, 46196, 46197, 46198, 46199, 0, 0, 46202, 46203, 46204, 46205, 46206, 0, 46208, 46209, 0, 0, 0, 0, 0, 0, 46216, 46217, 46218, 46219, 46220, 46221, 46222, 46223, 46224, 46225, 46226, 46227, 46228, 46229, 46230, 46231, 46232, 46233, 46234, 46235, 46236, 46237, 46238, 46239, 46240, 46241, 46242, 46243, 46244, 46245, 46246, 46247, 46248, 46249, 46250, 46251, 46252, 46253, 46254, 46255, 46256, 46257, 46258, 46259, 46260, 46261, 46262, 0, 0, 0, 46266, 0, 0, 46269, 46270, 46271, 0, 46273, 46274, 0, 46276, 0, 0, 46279, 0, 0, 0, 0, 0, 46285, 46286, 0, 0, 46289, 0, 46291, 0, 0, 46294, 0, 46296, 46297, 46298, 0, 46300, 0, 46302, 46303, 46304, 46305, 46306, 46307, 46308, 46309, 46310, 46311, 46312, 46313, 46314, 46315, 46316, 46317, 46318, 46319, 46320, 46321, 46322, 46323, 46324, 46325, 46326, 46327, 46328, 46329, 46330, 46331, 46332, 46333, 46334, 46335, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +565: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 1, 2, 1, 1, 1, 2, 1, 2, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 46835, 48578, 48578, 8376, 48578, 48578, 48578, 33883, 30769, 39350, 29323, 22542, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 34731, 29782, 48578, 45283, 47509, 48578, 35144, 21473, 48578, 48578, 9932, 14499, 39976, 43481, 18011, 26914, 37058, 48578, 19812, 48578, 48578, 48578, 42743, 48578, 44569, 21445, 29481, 48578, 39886, 48578, 16281, 48578, 48578, 16250, 35549, 39537, 47667, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 11054, 48578, 48578, 48578, 48578, 48578, 31267, 36355, 45114, 48578, 48578, 33500, 25061, 48578, 46841, 48578, 48578, 48578, 29271, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 21739, 23518, 48578, 48578, 48578, 48108, 48578, 32055, 16432, 22162, 46750, 7510, 31605, 29794, 48414, 48578, 31036, 48578, 12098, 48578, 19597, 36363, 32831, 48578, 17140, 41331, 48578, 8166, 46751, 48578, 13910, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 12527, 48578, 48578, 48578, 48578, 32634, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 15653, 48578, 48578, 15786, 35740, 48578, 37436, 42126, 22907, 47014, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 46336, 46337, 46338, 46339, 46340, 46341, 46342, 46343, 46344, 46345, 46346, 46347, 46348, 46349, 46350, 46351, 0, 46353, 46354, 0, 46356, 46357, 46358, 0, 0, 0, 0, 0, 46364, 46365, 46366, 46367, 46368, 46369, 46370, 46371, 46372, 46373, 46374, 46375, 46376, 46377, 46378, 0, 0, 46381, 0, 0, 46384, 0, 0, 46387, 46388, 0, 0, 0, 0, 0, 0, 0, 46396, 0, 46398, 46399, 46400, 0, 46402, 0, 0, 0, 46406, 0, 46408, 0, 46410, 46411, 0, 0, 0, 0, 46416, 46417, 46418, 46419, 46420, 46421, 46422, 46423, 46424, 46425, 46426, 46427, 46428, 46429, 46430, 46431, 46432, 46433, 46434, 46435, 46436, 46437, 46438, 46439, 46440, 46441, 46442, 46443, 46444, 46445, 46446, 46447, 46448, 46449, 46450, 46451, 46452, 46453, 46454, 46455, 46456, 46457, 46458, 46459, 46460, 46461, 0, 46463, 46464, 46465, 46466, 46467, 0, 0, 0, 46471, 46472, 0, 0, 46475, 0, 46477, 46478, 46479, 0, 46481, 46482, 46483, 46484, 46485, 46486, 46487, 46488, 46489, 46490, 46491, 46492, 46493, 46494, 46495, 46496, 46497, 46498, 0, 0, 46501, 46502, 46503, 0, 46505, 0, 0, 0, 0, 0, 0, 0, 0, 46514, 0, 46516, 0, 46518, 0, 0, 0, 46522, 0, 0, 46525, 0, 0, 46528, 0, 46530, 46531, 46532, 46533, 46534, 46535, 46536, 46537, 46538, 0, 46540, 46541, 46542, 46543, 0, 46545, 46546, 46547, 46548, 46549, 46550, 46551, 46552, 46553, 46554, 46555, 46556, 46557, 46558, 46559, 46560, 46561, 46562, 46563, 46564, 46565, 46566, 46567, 46568, 46569, 46570, 46571, 46572, 46573, 46574, 46575, 46576, 46577, 0, 46579, 46580, 0, 0, 46583, 0, 0, 0, 0, 46588, 46589, 46590, 46591, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +566: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 20152, 28604, 33902, 7947, 34719, 13496, 48578, 30957, 17255, 30841, 15683, 48578, 48578, 11518, 9802, 8543, 42605, 15130, 14125, 48578, 23820, 17473, 24175, 48578, 48578, 48578, 48578, 36258, 33903, 48578, 43435, 48578, 48578, 20153, 48578, 48578, 48578, 9803, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 28811, 11848, 48578, 48578, 42764, 48578, 48578, 48578, 36084, 48578, 48578, 22041, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 10878, 16282, 48578, 48578, 20961, 46238, 18206, 26771, 48578, 48578, 48578, 48274, 35038, 48578, 48578, 14780, 48035, 48036, 48578, 20974, 34942, 48578, 11484, 29484, 48578, 48578, 48578, 42409, 12792, 48578, 23939, 40786, 32840, 48578, 29261, 22044, 39131, 42500, 7404, 48578, 43189, 20170, 48578, 48578, 35076, 38343, 48578, 33297, 46854, 8334, 47696, 48578, 48578, 48578, 20558, 17540, 48578, 10888, 13915, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 9208, 19628, 11305, 48578, 26475, 48578, 48578, 32956, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 18222, 48578, 48578, 48578, 48578, 48578, 12471, 48578, 48578, 17285, 32356, 33395, 45936, 45545, 11353, 30461, 13267, 48578, 45778, 36986, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 46592, 46593, 46594, 46595, 46596, 46597, 46598, 46599, 46600, 46601, 46602, 46603, 46604, 46605, 46606, 46607, 46608, 46609, 46610, 46611, 46612, 46613, 0, 0, 0, 0, 0, 0, 46620, 0, 0, 0, 0, 46625, 46626, 0, 0, 0, 0, 0, 0, 46633, 0, 0, 0, 46637, 46638, 46639, 46640, 0, 0, 46643, 0, 46645, 46646, 0, 46648, 46649, 46650, 0, 46652, 46653, 46654, 46655, 46656, 46657, 46658, 46659, 46660, 46661, 46662, 46663, 46664, 46665, 46666, 46667, 46668, 46669, 46670, 46671, 46672, 46673, 46674, 46675, 46676, 46677, 46678, 0, 0, 46681, 46682, 0, 46684, 46685, 46686, 0, 46688, 46689, 0, 46691, 46692, 46693, 46694, 46695, 46696, 46697, 46698, 46699, 46700, 46701, 46702, 46703, 0, 0, 46706, 46707, 0, 0, 0, 0, 46712, 46713, 46714, 0, 0, 46717, 46718, 0, 0, 0, 46722, 0, 0, 46725, 0, 0, 46728, 46729, 46730, 0, 0, 46733, 0, 0, 0, 46737, 0, 0, 0, 0, 0, 46743, 0, 0, 46746, 46747, 0, 0, 46750, 0, 0, 0, 0, 46755, 46756, 46757, 0, 0, 46760, 0, 0, 46763, 46764, 46765, 46766, 46767, 46768, 46769, 46770, 46771, 46772, 46773, 46774, 46775, 46776, 46777, 46778, 46779, 46780, 46781, 46782, 46783, 46784, 46785, 46786, 46787, 46788, 46789, 46790, 46791, 46792, 46793, 46794, 46795, 46796, 46797, 46798, 46799, 46800, 46801, 46802, 0, 0, 0, 46806, 0, 46808, 46809, 0, 46811, 46812, 46813, 46814, 46815, 46816, 46817, 46818, 46819, 46820, 46821, 46822, 46823, 46824, 46825, 46826, 0, 46828, 46829, 46830, 46831, 46832, 0, 46834, 46835, 0, 0, 0, 0, 0, 0, 0, 0, 46844, 0, 0, 46847, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +567: 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 2, 1, 1, 2, 2, 48578, 11608, 33076, 48578, 26372, 48578, 48578, 19639, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 26426, 31550, 48578, 48578, 48578, 31771, 22047, 48578, 48578, 48578, 7351, 20291, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 36472, 38209, 48578, 48578, 31295, 48578, 48578, 48578, 29282, 19161, 48578, 48578, 7357, 48578, 34872, 24719, 13838, 48578, 35777, 21176, 8594, 41813, 15873, 29985, 44666, 33827, 48578, 48578, 20186, 48578, 18244, 48578, 48578, 25090, 48578, 8752, 35345, 20634, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 47805, 48578, 48578, 48578, 48578, 17204, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 13918, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 40200, 27163, 15148, 26087, 36028, 48578, 48578, 25533, 39389, 33199, 48578, 48578, 11854, 47731, 48578, 10389, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 24811, 48578, 48578, 48578, 24225, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 29676, 37423, 48578, 48578, 37441, 48578, 24956, 40052, 11468, 18529, 28732, 30983, 24556, 48578, 48578, 29438, 36665, 25534, 38504, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 43772, 48578, 45717, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 44376, 48578, 39566, 41085, 34733, 38924, 48578, 48578, 27002, 33342, 24816, 48578, 21534, 23891, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 46848, 0, 0, 46851, 0, 46853, 46854, 0, 46856, 46857, 46858, 46859, 46860, 46861, 46862, 46863, 46864, 46865, 46866, 46867, 46868, 46869, 46870, 46871, 46872, 46873, 46874, 46875, 46876, 46877, 46878, 46879, 46880, 46881, 0, 0, 46884, 46885, 46886, 0, 0, 46889, 46890, 46891, 0, 0, 46894, 46895, 46896, 46897, 46898, 46899, 46900, 46901, 46902, 46903, 46904, 0, 0, 46907, 46908, 0, 46910, 46911, 46912, 0, 0, 46915, 46916, 0, 46918, 0, 0, 0, 46922, 0, 0, 0, 0, 0, 0, 0, 0, 46931, 46932, 0, 46934, 0, 46936, 46937, 0, 46939, 0, 0, 0, 46943, 46944, 46945, 46946, 46947, 46948, 46949, 46950, 46951, 46952, 46953, 46954, 46955, 46956, 46957, 46958, 46959, 46960, 46961, 46962, 46963, 46964, 46965, 46966, 46967, 0, 46969, 46970, 46971, 46972, 0, 46974, 46975, 46976, 46977, 46978, 46979, 46980, 46981, 46982, 0, 46984, 46985, 46986, 46987, 46988, 46989, 46990, 46991, 0, 0, 0, 0, 0, 46997, 46998, 0, 0, 0, 47002, 47003, 0, 0, 47006, 0, 47008, 47009, 47010, 47011, 47012, 47013, 47014, 47015, 47016, 47017, 47018, 47019, 47020, 47021, 47022, 47023, 0, 47025, 47026, 47027, 0, 47029, 47030, 47031, 47032, 47033, 47034, 47035, 47036, 47037, 47038, 47039, 0, 0, 47042, 47043, 0, 47045, 0, 0, 0, 0, 0, 0, 0, 47053, 47054, 0, 0, 0, 0, 47059, 47060, 47061, 47062, 47063, 47064, 47065, 47066, 47067, 47068, 47069, 47070, 47071, 47072, 47073, 47074, 47075, 0, 47077, 0, 47079, 47080, 47081, 47082, 47083, 47084, 47085, 47086, 47087, 0, 47089, 0, 0, 0, 0, 47094, 47095, 0, 0, 0, 47099, 0, 0, 47102, 47103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +568: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 2, 2, 1, 2, 1, 1, 1, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 39945, 48283, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 25548, 48578, 46171, 48578, 46273, 48578, 24030, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 13743, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 20332, 34734, 48525, 31470, 48578, 23872, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 44710, 43296, 28564, 48578, 48578, 9710, 48578, 48578, 48578, 48578, 48578, 48578, 41968, 48578, 32939, 48578, 48578, 48578, 48578, 48578, 48578, 41712, 13290, 27476, 48578, 48578, 48578, 48578, 48578, 48578, 23977, 48578, 37563, 48578, 48578, 48578, 48578, 48578, 48578, 28122, 48578, 48578, 48578, 48578, 48578, 41716, 48578, 48578, 48578, 24040, 48578, 48578, 33404, 18144, 48578, 48578, 38694, 38695, 48578, 44081, 17180, 48578, 17110, 48578, 37448, 40865, 29692, 35881, 38699, 38700, 8922, 31473, 38701, 44226, 39060, 48578, 11689, 31109, 39183, 48578, 48578, 37479, 14156, 44088, 40556, 28478, 17221, 8430, 34013, 48578, 48578, 45843, 13047, 44408, 48578, 29212, 48578, 16839, 37737, 30918, 42701, 48578, 48578, 48313, 48578, 30919, 13350, 22767, 48578, 11239, 42581, 48578, 48578, 17186, 23047, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 13057, 39091, 47998, 25305, 48137, 48578, 44549, 19132, 48578, 34977, 22466, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 7464, 48578, 44102, 19587, 19179, 30840, 18012, 18013, 48578, 13059, 48578, 48578, 48578, 48578, 48578, 40070, 48578, 48578, 48578, 33808, 33426, 48578, 48578, 48578, 40134, 42224, 12237, 48578, 40270, 10675, 44112, 17569, 33429, 48578, 48578, 48578, 48578, 35833, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 47104, 47105, 47106, 47107, 47108, 47109, 47110, 47111, 47112, 47113, 47114, 47115, 47116, 47117, 0, 0, 47120, 47121, 47122, 47123, 47124, 47125, 47126, 47127, 47128, 47129, 0, 47131, 0, 47133, 0, 47135, 0, 47137, 47138, 47139, 47140, 47141, 47142, 47143, 47144, 47145, 47146, 47147, 47148, 0, 47150, 47151, 47152, 47153, 47154, 47155, 47156, 47157, 47158, 0, 0, 0, 0, 47163, 0, 47165, 47166, 47167, 47168, 47169, 47170, 47171, 47172, 47173, 47174, 47175, 47176, 0, 0, 0, 47180, 47181, 0, 47183, 47184, 47185, 47186, 47187, 47188, 0, 47190, 0, 47192, 47193, 47194, 47195, 47196, 47197, 0, 0, 0, 47201, 47202, 47203, 47204, 47205, 47206, 0, 47208, 0, 47210, 47211, 47212, 47213, 47214, 47215, 0, 47217, 47218, 47219, 47220, 47221, 0, 47223, 47224, 47225, 0, 47227, 47228, 0, 0, 47231, 47232, 0, 0, 47235, 0, 0, 47238, 0, 47240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47252, 0, 0, 0, 47256, 47257, 0, 0, 0, 0, 0, 0, 0, 0, 47266, 47267, 0, 0, 0, 47271, 0, 47273, 0, 0, 0, 0, 47278, 47279, 0, 47281, 0, 0, 0, 47285, 0, 0, 47288, 47289, 0, 0, 47292, 47293, 47294, 47295, 47296, 47297, 47298, 47299, 47300, 47301, 47302, 47303, 0, 0, 0, 0, 0, 47309, 0, 0, 47312, 0, 0, 47315, 47316, 47317, 47318, 47319, 47320, 47321, 0, 47323, 0, 0, 0, 0, 0, 0, 47330, 0, 47332, 47333, 47334, 47335, 47336, 0, 47338, 47339, 47340, 0, 0, 47343, 47344, 47345, 0, 0, 0, 47349, 0, 0, 0, 0, 0, 47355, 47356, 47357, 47358, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +569: 2, 1, 2, 1, 2, 2, 2, 1, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 1, 1, 1, 48578, 47468, 48578, 7292, 48578, 48578, 48578, 32341, 45526, 48578, 23418, 25826, 11317, 48578, 44116, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 36459, 48578, 34149, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 40039, 39140, 48578, 48578, 48578, 48578, 48578, 19294, 10901, 43231, 48578, 48578, 48578, 48578, 34573, 45026, 9975, 14270, 38918, 38925, 43775, 48353, 45235, 48578, 48578, 45238, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 35706, 37662, 48578, 48578, 48578, 40432, 48578, 48578, 37770, 15345, 48578, 48578, 48578, 48578, 25908, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 20229, 48578, 48578, 41619, 48578, 8431, 22739, 16654, 48578, 48578, 47978, 48578, 48578, 48578, 48578, 48578, 23229, 47313, 46910, 48578, 48578, 37044, 48578, 48578, 48578, 35722, 48578, 11251, 10499, 10633, 47577, 48578, 12236, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 8494, 48578, 20064, 48578, 48578, 43102, 48578, 48578, 44996, 15766, 48578, 48578, 48578, 48578, 48578, 15656, 48578, 48578, 48578, 48578, 48578, 31290, 48578, 48578, 48578, 11177, 11180, 8578, 48578, 48578, 48578, 16921, 48578, 48578, 16456, 9035, 43565, 47807, 16462, 48578, 24593, 48578, 48578, 48578, 48578, 48578, 14132, 12252, 48578, 48578, 48578, 48578, 48578, 9488, 48578, 48578, 48578, 48578, 48578, 36428, 13681, 42930, 48578, 48578, 48578, 13192, 48578, 28957, 48578, 41222, 28420, 16876, 22566, 48578, 48578, 11357, 48578, 48578, 48578, 45681, 43998, 48578, 7780, 34190, 13044, 29240, 31856, 48578, 48578, 48578, 41224, 48578, 27857, 22597, 44089, 20664, 9133, 48578, 48578, 48578, 48578, 40688, 48578, 48578, 48578, 48578, 48578, 27340, 26450, 48578, 41227, 48578, 14021, 48578, 14386, 33489, 48578, 23245, 28406, 27491, 24389, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 47360, 0, 47362, 0, 47364, 47365, 47366, 0, 0, 47369, 0, 0, 0, 47373, 0, 47375, 47376, 47377, 47378, 47379, 47380, 47381, 0, 47383, 0, 47385, 47386, 47387, 47388, 47389, 47390, 47391, 47392, 0, 0, 47395, 47396, 47397, 47398, 47399, 0, 0, 0, 47403, 47404, 47405, 47406, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47416, 47417, 0, 47419, 47420, 47421, 47422, 47423, 47424, 47425, 0, 0, 47428, 47429, 47430, 0, 47432, 47433, 0, 0, 47436, 47437, 47438, 47439, 0, 47441, 47442, 47443, 47444, 47445, 47446, 47447, 47448, 47449, 47450, 47451, 47452, 47453, 0, 47455, 47456, 0, 47458, 0, 0, 0, 47462, 47463, 0, 47465, 47466, 47467, 47468, 47469, 0, 0, 0, 47473, 47474, 0, 47476, 47477, 47478, 0, 47480, 0, 0, 0, 0, 47485, 0, 47487, 47488, 47489, 47490, 47491, 47492, 47493, 47494, 0, 47496, 0, 47498, 47499, 0, 47501, 47502, 0, 0, 47505, 47506, 47507, 47508, 47509, 0, 47511, 47512, 47513, 47514, 47515, 0, 47517, 47518, 47519, 0, 0, 0, 47523, 47524, 47525, 0, 47527, 47528, 0, 0, 0, 0, 0, 47534, 0, 47536, 47537, 47538, 47539, 47540, 0, 0, 47543, 47544, 47545, 47546, 47547, 0, 47549, 47550, 47551, 47552, 47553, 0, 0, 0, 47557, 47558, 47559, 0, 47561, 0, 47563, 0, 0, 0, 0, 47568, 47569, 0, 47571, 47572, 47573, 0, 0, 47576, 0, 0, 0, 0, 0, 47582, 47583, 47584, 0, 47586, 0, 0, 0, 0, 0, 47592, 47593, 47594, 47595, 0, 47597, 47598, 47599, 47600, 47601, 0, 0, 47604, 0, 47606, 0, 47608, 0, 0, 47611, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +570: 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 1, 2, 1, 1, 1, 2, 2, 1, 2, 2, 1, 2, 1, 1, 2, 2, 1, 2, 2, 1, 1, 1, 2, 1, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 26274, 48578, 13210, 48578, 30862, 24047, 48578, 26897, 48578, 17784, 10328, 46930, 48578, 16406, 12075, 48578, 48578, 48578, 48578, 38614, 36245, 48578, 48578, 38768, 42160, 37962, 48578, 48320, 26553, 44431, 29667, 43069, 31600, 44989, 22268, 20548, 40908, 8253, 48578, 48578, 48578, 48578, 26417, 47759, 48578, 48578, 48578, 48578, 48578, 48578, 13704, 39813, 48578, 48578, 19017, 48578, 48578, 48578, 16423, 22574, 48578, 48578, 40477, 19150, 8644, 48578, 48578, 48578, 22712, 22575, 48578, 48578, 12099, 48578, 48578, 48578, 48578, 48578, 48578, 26028, 48578, 48453, 45424, 20711, 16674, 48578, 48578, 48578, 48578, 41583, 14338, 48578, 31656, 48578, 48578, 12746, 35039, 35486, 25001, 48578, 48578, 48578, 48578, 33602, 48578, 8580, 38107, 42517, 48578, 45835, 48578, 42412, 13182, 7358, 48578, 48578, 20564, 48578, 48578, 35225, 48578, 18530, 44692, 48578, 48578, 32489, 48578, 48578, 13009, 48385, 7810, 48578, 31505, 48578, 48578, 19950, 48578, 29765, 48578, 48578, 36951, 48578, 48578, 48578, 11042, 48578, 48578, 48578, 48578, 16843, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 19400, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 41238, 48578, 13061, 48578, 48578, 8735, 45297, 36885, 48578, 48578, 48578, 48578, 48578, 48578, 33555, 48578, 16491, 32347, 48578, 48578, 48578, 48578, 48578, 48578, 16446, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 18223, 22998, 48578, 48578, 16319, 48578, 35331, 48578, 11085, 48578, 22787, 48578, 13589, 48578, 48578, 48578, 48578, 43249, 48578, 48578, 12665, 31202, 48578, 48578, 48578, 48578, 48578, 25688, 48578, 24256, 48578, 24621, 31638, 48578, 37840, 48578, 27961, 48578, 48578, 48578, 48578, 30729, 48578, 20512, 40102, 48578, 48578, 48578, 48578, 12304, 48578, 25769, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 47617, 0, 47619, 0, 0, 47622, 0, 47624, 0, 0, 0, 47628, 0, 0, 47631, 47632, 47633, 47634, 0, 0, 47637, 47638, 0, 0, 0, 47642, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47654, 47655, 47656, 47657, 0, 0, 47660, 47661, 47662, 47663, 47664, 47665, 0, 0, 47668, 47669, 0, 47671, 47672, 47673, 0, 0, 47676, 47677, 0, 0, 0, 47681, 47682, 47683, 0, 0, 47686, 47687, 0, 47689, 47690, 47691, 47692, 47693, 47694, 0, 47696, 0, 0, 0, 0, 47701, 47702, 47703, 47704, 0, 0, 47707, 0, 47709, 47710, 0, 0, 0, 0, 47715, 47716, 47717, 47718, 0, 47720, 0, 0, 0, 47724, 0, 47726, 0, 0, 0, 47730, 47731, 0, 47733, 47734, 0, 47736, 0, 0, 47739, 47740, 0, 47742, 47743, 0, 0, 0, 47747, 0, 47749, 47750, 0, 47752, 0, 47754, 47755, 0, 47757, 47758, 47759, 0, 47761, 47762, 47763, 47764, 0, 47766, 47767, 47768, 47769, 47770, 47771, 47772, 47773, 47774, 47775, 0, 47777, 47778, 47779, 47780, 47781, 47782, 47783, 0, 47785, 0, 47787, 47788, 0, 0, 0, 47792, 47793, 47794, 47795, 47796, 47797, 0, 47799, 0, 0, 47802, 47803, 47804, 47805, 47806, 47807, 0, 47809, 47810, 47811, 47812, 47813, 47814, 47815, 0, 0, 47818, 47819, 0, 47821, 0, 47823, 0, 47825, 0, 47827, 0, 47829, 47830, 47831, 47832, 0, 47834, 47835, 0, 0, 47838, 47839, 47840, 47841, 47842, 0, 47844, 0, 47846, 0, 0, 47849, 0, 47851, 0, 47853, 47854, 47855, 47856, 0, 47858, 0, 0, 47861, 47862, 47863, 47864, 0, 47866, 0, 47868, 47869, 47870, 47871, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +571: 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 1, 1, 2, 2, 1, 1, 2, 1, 1, 2, 2, 2, 48578, 48578, 16653, 48578, 48578, 48578, 29506, 48578, 48578, 29766, 48578, 22015, 48578, 8092, 22163, 22039, 34378, 48578, 48578, 48578, 48578, 40198, 48578, 48578, 32951, 21432, 30269, 33118, 48578, 48578, 48578, 48578, 19346, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 14814, 8122, 21049, 33027, 48578, 29693, 48578, 48578, 48578, 48578, 48578, 12904, 26814, 7747, 7748, 36637, 25268, 34015, 46401, 29697, 38601, 48578, 45571, 8040, 48578, 48578, 48578, 48578, 48578, 48578, 26135, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 17440, 13512, 15193, 28479, 48578, 48578, 48578, 15940, 48578, 48578, 32816, 39524, 48578, 48578, 8441, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 26819, 48578, 48578, 48578, 32745, 31883, 48578, 48578, 48578, 9150, 48578, 17443, 28374, 41636, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 29453, 35398, 48578, 37430, 48578, 31977, 24132, 12687, 48578, 20921, 20922, 16950, 20126, 8473, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 33169, 7904, 11509, 48578, 48578, 48578, 28223, 7919, 48578, 48578, 32680, 19977, 35145, 48578, 48578, 48578, 12688, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 39353, 45858, 26916, 48578, 48578, 48008, 48578, 19829, 30577, 48578, 48578, 48578, 48578, 32889, 35578, 32751, 38637, 32687, 32688, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 35742, 48578, 35152, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 24176, 48578, 48578, 11980, 48184, 27075, 39025, 48578, 26793, 28812, 48578, 35407, 48578, 29523, 48578, 48578, 8544, 12958, 48578, 48578, 32068, 31330, 48578, 14838, 35317, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 47872, 47873, 0, 47875, 47876, 47877, 0, 47879, 47880, 0, 47882, 0, 47884, 0, 0, 0, 0, 47889, 47890, 47891, 47892, 0, 47894, 47895, 0, 0, 0, 0, 47900, 47901, 47902, 47903, 0, 47905, 47906, 47907, 47908, 47909, 47910, 47911, 47912, 0, 0, 0, 0, 47917, 0, 47919, 47920, 47921, 47922, 47923, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47934, 0, 0, 47937, 47938, 47939, 47940, 47941, 47942, 0, 47944, 47945, 47946, 47947, 47948, 47949, 47950, 47951, 47952, 47953, 47954, 47955, 47956, 47957, 0, 0, 0, 0, 47962, 47963, 47964, 0, 47966, 47967, 0, 0, 47970, 47971, 0, 47973, 47974, 47975, 47976, 47977, 47978, 47979, 47980, 47981, 0, 47983, 47984, 47985, 0, 0, 47988, 47989, 47990, 0, 47992, 0, 0, 0, 47996, 47997, 47998, 47999, 48000, 48001, 48002, 0, 0, 48005, 0, 48007, 0, 0, 0, 48011, 0, 0, 0, 0, 0, 48017, 48018, 48019, 48020, 48021, 48022, 48023, 48024, 48025, 48026, 48027, 48028, 48029, 48030, 48031, 0, 0, 0, 48035, 48036, 48037, 0, 0, 48040, 48041, 0, 0, 0, 48045, 48046, 48047, 0, 48049, 48050, 48051, 48052, 48053, 48054, 48055, 48056, 48057, 48058, 48059, 48060, 48061, 0, 0, 0, 48065, 48066, 0, 48068, 0, 0, 48071, 48072, 48073, 48074, 0, 0, 0, 0, 0, 0, 48081, 48082, 48083, 48084, 48085, 48086, 48087, 48088, 48089, 0, 48091, 0, 48093, 48094, 48095, 48096, 48097, 48098, 48099, 0, 48101, 48102, 0, 0, 0, 0, 48107, 0, 0, 48110, 0, 48112, 0, 48114, 48115, 0, 0, 48118, 48119, 0, 0, 48122, 0, 0, 48125, 48126, 48127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +572: 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1, 1, 2, 1, 2, 1, 1, 2, 2, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48578, 48578, 48578, 40787, 48578, 48578, 48578, 32758, 19440, 48578, 48578, 32080, 25079, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 33252, 48578, 48578, 23363, 48578, 12041, 42523, 9060, 48578, 20997, 48578, 32085, 32086, 48578, 48578, 48578, 27153, 32427, 48578, 8952, 10254, 48578, 48578, 13632, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32474, 39399, 48578, 48578, 36236, 32106, 28855, 48578, 48578, 34553, 25947, 48578, 23365, 48578, 48578, 48578, 48578, 48578, 27637, 27689, 48578, 48578, 48578, 12437, 48578, 48578, 43543, 48578, 48578, 40042, 48578, 48578, 48578, 19740, 48578, 48578, 48578, 48578, 43325, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 14832, 47225, 48578, 48578, 48578, 16440, 48578, 48578, 48578, 48578, 48578, 9773, 48578, 25460, 48578, 48578, 9313, 48578, 48578, 48578, 29237, 34981, 12592, 46392, 48578, 48578, 33472, 48578, 11312, 48578, 21547, 48578, 48578, 48578, 48578, 48578, 22673, 10702, 48578, 48578, 48578, 48578, 48578, 18311, 24349, 33351, 48578, 48578, 29290, 37847, 38520, 48578, 48578, 48578, 43664, 48578, 48578, 48578, 48578, 33352, 12765, 48578, 48578, 12336, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 36990, 17588, 30212, 48578, 46808, 28958, 28572, 48578, 48578, 48578, 48578, 48578, 32736, 16583, 48578, 46718, 48578, 48578, 19530, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 14568, 48578, 48578, 20882, 17134, 48578, 48578, 48578, 45960, 48578, 39073, 48578, 48578, 47975, 48578, 48578, 38947, 30003, 48578, 48578, 8199, 48578, 20234, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48128, 48129, 48130, 0, 48132, 48133, 48134, 0, 0, 48137, 48138, 0, 0, 48141, 48142, 48143, 48144, 48145, 48146, 48147, 48148, 0, 48150, 48151, 0, 48153, 0, 0, 0, 48157, 0, 48159, 0, 0, 48162, 48163, 48164, 0, 0, 48167, 0, 0, 48170, 48171, 0, 48173, 48174, 48175, 48176, 48177, 48178, 48179, 48180, 48181, 0, 0, 48184, 48185, 0, 0, 0, 48189, 48190, 0, 0, 48193, 0, 48195, 48196, 48197, 48198, 48199, 0, 0, 48202, 48203, 48204, 0, 48206, 48207, 0, 48209, 48210, 0, 48212, 48213, 48214, 0, 48216, 48217, 48218, 48219, 0, 48221, 48222, 48223, 48224, 48225, 48226, 48227, 48228, 48229, 0, 0, 48232, 48233, 48234, 0, 48236, 48237, 48238, 48239, 48240, 0, 48242, 0, 48244, 48245, 0, 48247, 48248, 48249, 0, 0, 0, 0, 48254, 48255, 0, 48257, 0, 48259, 0, 48261, 48262, 48263, 48264, 48265, 0, 0, 48268, 48269, 48270, 48271, 48272, 0, 0, 0, 48276, 48277, 0, 0, 0, 48281, 48282, 48283, 0, 48285, 48286, 48287, 48288, 0, 0, 48291, 48292, 0, 48294, 48295, 48296, 48297, 48298, 48299, 48300, 48301, 48302, 48303, 48304, 0, 0, 0, 48308, 0, 0, 0, 48312, 48313, 48314, 48315, 48316, 0, 0, 48319, 0, 48321, 48322, 0, 48324, 48325, 48326, 48327, 48328, 48329, 48330, 48331, 48332, 48333, 48334, 48335, 48336, 48337, 48338, 48339, 48340, 48341, 48342, 48343, 48344, 48345, 48346, 48347, 0, 48349, 48350, 0, 0, 48353, 48354, 48355, 0, 48357, 0, 48359, 48360, 0, 48362, 48363, 0, 0, 48366, 48367, 0, 48369, 0, 48371, 48372, 48373, 48374, 48375, 48376, 48377, 48378, 48379, 48380, 48381, 48382, 48383, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +573: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 20352, 48578, 48578, 45242, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 8221, 26888, 48578, 48578, 45468, 47740, 48578, 23093, 48578, 48578, 8342, 48578, 29295, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 26889, 36011, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 37280, 26414, 48578, 48578, 35887, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 7419, 48578, 48578, 48578, 48578, 48578, 17237, 47460, 48578, 14024, 14025, 15711, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 31787, 48578, 37743, 48578, 27873, 46297, 38225, 47741, 48578, 20815, 29479, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 35261, 48578, 48578, 48578, 48578, 21879, 48578, 48578, 30422, 9542, 48578, 37126, 33370, 48578, 37359, 48578, 48578, 18469, 48578, 43035, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 27646, 47161, 48578, 48578, 48578, 34854, 48578, 48578, 48578, 43036, 37744, 7528, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 35236, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 16851, 37413, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48384, 48385, 48386, 48387, 48388, 48389, 48390, 48391, 48392, 48393, 48394, 48395, 48396, 48397, 48398, 48399, 48400, 48401, 48402, 0, 48404, 48405, 0, 48407, 48408, 48409, 48410, 48411, 48412, 48413, 0, 0, 48416, 48417, 0, 0, 48420, 0, 48422, 48423, 0, 48425, 0, 48427, 48428, 48429, 48430, 48431, 48432, 48433, 48434, 48435, 48436, 48437, 48438, 48439, 48440, 48441, 48442, 48443, 0, 0, 48446, 48447, 48448, 48449, 48450, 48451, 48452, 48453, 48454, 48455, 48456, 48457, 48458, 48459, 48460, 48461, 48462, 48463, 48464, 48465, 48466, 48467, 48468, 48469, 48470, 48471, 48472, 48473, 48474, 48475, 48476, 48477, 0, 0, 48480, 48481, 0, 48483, 48484, 48485, 48486, 48487, 48488, 48489, 48490, 48491, 48492, 48493, 48494, 48495, 48496, 0, 48498, 48499, 48500, 48501, 48502, 0, 0, 48505, 0, 0, 0, 48509, 48510, 48511, 48512, 48513, 48514, 48515, 48516, 48517, 0, 48519, 0, 48521, 0, 0, 0, 0, 48526, 0, 0, 48529, 48530, 48531, 48532, 48533, 48534, 48535, 0, 48537, 48538, 48539, 48540, 0, 48542, 48543, 0, 0, 48546, 0, 0, 48549, 0, 48551, 48552, 0, 48554, 0, 48556, 48557, 48558, 48559, 48560, 48561, 48562, 48563, 48564, 48565, 48566, 48567, 48568, 48569, 48570, 48571, 48572, 48573, 48574, 48575, 48576, 48577, 48578, 48579, 48580, 48581, 48582, 48583, 48584, 48585, 48586, 48587, 48588, 48589, 48590, 48591, 48592, 48593, 48594, 48595, 48596, 48597, 48598, 48599, 48600, 48601, 48602, 48603, 48604, 48605, 48606, 48607, 0, 0, 48610, 48611, 48612, 0, 48614, 48615, 48616, 0, 0, 0, 48620, 48621, 48622, 48623, 48624, 48625, 48626, 48627, 48628, 48629, 0, 48631, 48632, 48633, 48634, 48635, 48636, 48637, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +574: 1, 2, 2, 1, 1, 2, 1, 1, 2, 1, 1, 1, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 2, 2, 1, 1, 2, 1, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 18942, 48578, 48578, 40910, 45335, 48578, 48105, 8728, 48578, 12195, 43337, 32278, 48578, 48578, 18524, 28107, 45248, 48578, 36341, 48578, 48578, 48578, 48578, 48578, 42725, 35895, 33776, 34856, 48578, 40530, 48578, 48578, 44104, 48578, 48578, 14862, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 22703, 48578, 48578, 48578, 15249, 48578, 48578, 48578, 48578, 48578, 48578, 27700, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 29867, 48578, 19578, 31371, 47197, 15717, 44765, 10733, 48578, 48578, 48578, 31122, 48578, 48515, 48578, 40127, 26831, 48578, 18188, 48578, 29873, 41389, 48578, 39245, 36356, 48578, 48578, 28164, 11303, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 38541, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 18720, 41239, 36246, 48578, 31372, 48578, 48578, 20600, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 12526, 7789, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 12561, 22865, 48578, 21677, 33385, 21307, 48578, 48578, 27795, 29022, 48578, 34862, 48578, 34665, 47728, 15284, 48578, 48578, 45391, 40135, 23786, 36835, 48578, 48578, 48578, 48578, 48578, 48578, 46231, 48578, 48578, 9547, 48578, 45000, 48578, 48578, 47356, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 48641, 48642, 0, 0, 48645, 0, 0, 48648, 0, 0, 0, 48652, 48653, 0, 0, 0, 48657, 0, 48659, 48660, 48661, 48662, 48663, 0, 0, 0, 0, 48668, 0, 48670, 48671, 0, 48673, 48674, 0, 48676, 48677, 48678, 48679, 48680, 48681, 48682, 48683, 48684, 48685, 48686, 48687, 48688, 48689, 48690, 48691, 48692, 48693, 48694, 48695, 48696, 48697, 48698, 48699, 48700, 48701, 48702, 48703, 48704, 48705, 48706, 48707, 48708, 48709, 48710, 0, 48712, 48713, 48714, 0, 48716, 48717, 48718, 48719, 48720, 48721, 0, 48723, 48724, 48725, 48726, 48727, 48728, 48729, 0, 48731, 0, 0, 0, 0, 0, 0, 48738, 48739, 48740, 0, 48742, 0, 48744, 0, 0, 48747, 0, 48749, 0, 0, 48752, 0, 0, 48755, 48756, 0, 0, 48759, 48760, 48761, 48762, 48763, 48764, 48765, 48766, 48767, 0, 48769, 48770, 48771, 48772, 48773, 48774, 48775, 48776, 48777, 48778, 48779, 48780, 48781, 48782, 48783, 48784, 48785, 48786, 48787, 48788, 48789, 48790, 48791, 48792, 48793, 48794, 48795, 48796, 48797, 48798, 48799, 48800, 48801, 48802, 48803, 48804, 48805, 48806, 48807, 48808, 48809, 48810, 48811, 0, 0, 0, 48815, 0, 48817, 48818, 0, 48820, 48821, 48822, 48823, 48824, 48825, 48826, 48827, 0, 0, 48830, 48831, 48832, 48833, 48834, 48835, 48836, 48837, 48838, 48839, 48840, 48841, 48842, 48843, 48844, 0, 0, 48847, 0, 0, 0, 48851, 48852, 0, 0, 48855, 0, 48857, 0, 0, 0, 48861, 48862, 0, 0, 0, 0, 48867, 48868, 48869, 48870, 48871, 48872, 0, 48874, 48875, 0, 48877, 0, 48879, 48880, 0, 48882, 48883, 48884, 48885, 48886, 48887, 48888, 48889, 48890, 48891, 48892, 48893, 48894, 48895, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +575: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 1, 1, 2, 1, 2, 2, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 35900, 48578, 48578, 48578, 41659, 26014, 41789, 48578, 48578, 48578, 48578, 48578, 45520, 34718, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 17006, 47470, 48578, 32834, 32835, 48578, 48578, 22474, 19849, 15808, 48578, 48578, 48578, 40287, 48578, 48578, 29232, 20154, 48578, 48578, 48578, 46758, 45701, 48578, 17959, 48578, 23053, 48578, 9198, 48578, 48578, 33289, 7469, 20399, 48578, 36280, 48578, 48578, 35074, 48578, 27231, 43437, 35901, 17007, 48578, 48578, 32902, 38085, 48578, 48578, 35033, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 30792, 48578, 46054, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 13434, 15306, 33957, 35319, 43195, 24803, 48578, 17671, 48578, 46378, 48578, 45537, 48578, 11988, 11989, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 15054, 24309, 22870, 48578, 48578, 48578, 40037, 44121, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48896, 48897, 48898, 48899, 48900, 48901, 48902, 48903, 48904, 48905, 48906, 48907, 48908, 48909, 48910, 48911, 48912, 48913, 48914, 48915, 48916, 48917, 48918, 48919, 48920, 48921, 0, 48923, 48924, 48925, 0, 0, 0, 48929, 48930, 48931, 48932, 48933, 0, 0, 48936, 48937, 48938, 48939, 48940, 48941, 48942, 48943, 48944, 48945, 48946, 48947, 48948, 48949, 48950, 48951, 48952, 48953, 48954, 48955, 48956, 48957, 48958, 48959, 48960, 48961, 48962, 48963, 48964, 0, 0, 48967, 0, 0, 48970, 48971, 0, 0, 0, 48975, 48976, 48977, 0, 48979, 48980, 0, 0, 48983, 48984, 48985, 0, 0, 48988, 0, 48990, 0, 48992, 0, 48994, 48995, 0, 0, 0, 48999, 0, 49001, 49002, 0, 49004, 0, 0, 0, 0, 49009, 49010, 0, 0, 49013, 49014, 0, 49016, 49017, 49018, 49019, 49020, 49021, 49022, 49023, 49024, 49025, 49026, 49027, 49028, 49029, 49030, 49031, 49032, 49033, 49034, 49035, 49036, 49037, 49038, 49039, 49040, 49041, 49042, 49043, 49044, 49045, 49046, 49047, 49048, 49049, 49050, 49051, 49052, 49053, 49054, 49055, 49056, 49057, 49058, 49059, 0, 49061, 0, 49063, 49064, 49065, 49066, 49067, 49068, 49069, 49070, 49071, 49072, 49073, 49074, 49075, 49076, 49077, 49078, 49079, 49080, 49081, 49082, 49083, 49084, 49085, 49086, 49087, 49088, 49089, 49090, 49091, 49092, 0, 0, 0, 0, 0, 0, 49099, 0, 49101, 0, 49103, 0, 49105, 0, 0, 49108, 49109, 49110, 49111, 49112, 49113, 49114, 49115, 49116, 0, 0, 0, 49120, 49121, 49122, 0, 0, 49125, 49126, 49127, 49128, 49129, 49130, 49131, 49132, 49133, 49134, 49135, 49136, 49137, 49138, 49139, 49140, 49141, 49142, 49143, 49144, 49145, 49146, 49147, 49148, 49149, 49150, 49151, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +576: 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 1, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 2, 48578, 48578, 48578, 17478, 48578, 48578, 48578, 48578, 48578, 17363, 22747, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 44633, 48578, 48578, 48578, 48578, 48578, 18631, 35587, 48578, 23461, 48578, 13558, 20418, 30189, 8691, 48578, 48578, 48578, 48578, 41246, 48578, 8749, 48578, 48578, 48578, 48578, 38108, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 12480, 20998, 7802, 48578, 28672, 39673, 33313, 48578, 48578, 18445, 11299, 48578, 48578, 29234, 25091, 12841, 9459, 48578, 45712, 48578, 26123, 48578, 48578, 48578, 19295, 48578, 48578, 24518, 43764, 48578, 38020, 8595, 17054, 48578, 29894, 48578, 48578, 8805, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 41814, 48578, 48578, 48578, 47702, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 17949, 48578, 48578, 48578, 25234, 14264, 48578, 43503, 23703, 48578, 42364, 48578, 48578, 41157, 24540, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 23705, 25377, 38919, 17858, 48578, 20741, 47944, 48578, 48578, 48578, 46775, 48578, 48578, 9256, 36269, 7442, 48578, 48578, 41354, 24022, 45398, 18963, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 49152, 49153, 49154, 0, 49156, 49157, 49158, 49159, 49160, 0, 0, 49163, 49164, 49165, 49166, 49167, 49168, 49169, 49170, 49171, 49172, 49173, 49174, 49175, 49176, 49177, 49178, 49179, 49180, 0, 49182, 49183, 49184, 49185, 49186, 0, 0, 49189, 0, 49191, 0, 0, 0, 0, 49196, 49197, 49198, 49199, 0, 49201, 0, 49203, 49204, 49205, 49206, 0, 49208, 49209, 49210, 49211, 49212, 49213, 49214, 49215, 49216, 49217, 49218, 49219, 49220, 49221, 49222, 49223, 49224, 49225, 49226, 49227, 49228, 49229, 49230, 49231, 49232, 49233, 49234, 49235, 49236, 49237, 49238, 49239, 49240, 49241, 49242, 49243, 49244, 49245, 49246, 49247, 49248, 0, 0, 0, 49252, 0, 0, 0, 49256, 49257, 0, 0, 49260, 49261, 0, 0, 0, 0, 49266, 0, 49268, 0, 49270, 49271, 49272, 0, 49274, 49275, 0, 0, 49278, 0, 0, 0, 49282, 0, 49284, 49285, 0, 49287, 49288, 49289, 49290, 49291, 49292, 49293, 49294, 49295, 49296, 49297, 49298, 49299, 49300, 49301, 49302, 49303, 49304, 49305, 49306, 49307, 49308, 49309, 49310, 49311, 0, 49313, 49314, 49315, 0, 49317, 49318, 49319, 49320, 49321, 49322, 49323, 49324, 49325, 49326, 49327, 49328, 49329, 0, 49331, 49332, 49333, 0, 0, 49336, 0, 0, 49339, 0, 49341, 49342, 0, 0, 49345, 49346, 49347, 49348, 49349, 49350, 49351, 49352, 49353, 49354, 49355, 49356, 49357, 49358, 49359, 49360, 49361, 49362, 49363, 49364, 49365, 49366, 49367, 49368, 49369, 49370, 49371, 49372, 49373, 49374, 49375, 49376, 49377, 49378, 49379, 49380, 49381, 49382, 49383, 0, 0, 0, 0, 49388, 0, 0, 49391, 49392, 49393, 0, 49395, 49396, 0, 0, 0, 49400, 49401, 0, 0, 0, 0, 49406, 49407, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +577: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 39168, 17951, 48578, 14606, 20324, 11826, 45263, 48578, 9405, 48578, 43975, 48578, 48578, 13849, 29318, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 35794, 48578, 29377, 48578, 48578, 48578, 14471, 38926, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 42374, 26388, 48578, 48578, 8666, 48578, 21268, 24594, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 41960, 13568, 48578, 48578, 26726, 48578, 16185, 32494, 9558, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 27084, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 16470, 34743, 48578, 48578, 48578, 48578, 48578, 41714, 8635, 48578, 48578, 48578, 48578, 48578, 48578, 8830, 10624, 23241, 48578, 19225, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 10821, 48578, 38349, 48578, 11841, 46875, 48578, 48578, 48578, 48578, 48578, 48578, 34796, 48578, 48578, 16548, 30301, 40867, 34895, 48578, 38524, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 15090, 48578, 34302, 48578, 48578, 18976, 18706, 29241, 48578, 48578, 48578, 48578, 48578, 48578, 47502, 48578, 42682, 48578, 48578, 48578, 48578, 24369, 33537, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 27638, 48578, 15889, 48578, 18093, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 14296, 14420, 48578, 48578, 40885, 42702, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 43781, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 49408, 49409, 49410, 49411, 49412, 49413, 49414, 49415, 49416, 49417, 49418, 49419, 49420, 49421, 0, 0, 49424, 0, 0, 0, 0, 49429, 0, 49431, 0, 49433, 49434, 0, 0, 49437, 49438, 49439, 49440, 49441, 49442, 49443, 49444, 0, 49446, 0, 49448, 49449, 49450, 0, 0, 49453, 49454, 49455, 49456, 49457, 49458, 49459, 49460, 49461, 0, 0, 49464, 49465, 0, 49467, 0, 0, 49470, 49471, 49472, 49473, 49474, 49475, 49476, 49477, 49478, 49479, 49480, 49481, 0, 0, 49484, 49485, 0, 49487, 0, 0, 0, 49491, 49492, 49493, 49494, 49495, 49496, 49497, 49498, 49499, 49500, 49501, 49502, 49503, 49504, 49505, 49506, 0, 49508, 49509, 49510, 49511, 49512, 49513, 49514, 49515, 49516, 49517, 49518, 49519, 49520, 0, 0, 49523, 49524, 49525, 49526, 49527, 0, 0, 49530, 49531, 49532, 49533, 49534, 49535, 0, 0, 0, 49539, 0, 49541, 49542, 49543, 49544, 49545, 49546, 49547, 49548, 0, 49550, 0, 49552, 0, 0, 49555, 49556, 49557, 49558, 49559, 49560, 0, 49562, 49563, 0, 0, 0, 0, 49568, 0, 49570, 49571, 49572, 49573, 49574, 49575, 49576, 49577, 49578, 49579, 49580, 49581, 0, 49583, 0, 49585, 49586, 0, 0, 0, 49590, 49591, 49592, 49593, 49594, 49595, 0, 49597, 0, 49599, 49600, 49601, 49602, 0, 0, 49605, 49606, 49607, 49608, 49609, 49610, 49611, 49612, 49613, 49614, 49615, 49616, 49617, 49618, 49619, 49620, 49621, 49622, 49623, 49624, 49625, 49626, 49627, 0, 49629, 0, 49631, 0, 49633, 49634, 49635, 49636, 49637, 49638, 49639, 49640, 49641, 49642, 49643, 49644, 49645, 49646, 0, 0, 49649, 49650, 0, 0, 49653, 49654, 49655, 49656, 49657, 49658, 49659, 49660, 49661, 0, 49663, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +578: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 10718, 48578, 48578, 48578, 48578, 42703, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 12811, 18941, 17621, 48578, 45726, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 45108, 39346, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 39436, 23877, 33743, 34339, 47880, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 8860, 21560, 38318, 20684, 15250, 48578, 39710, 22428, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 28383, 48578, 19267, 19588, 23446, 48578, 48578, 48578, 48578, 15066, 33549, 24997, 27594, 10336, 48578, 48578, 27788, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 25762, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 14031, 48578, 48578, 28384, 48578, 19401, 48578, 48578, 47587, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 49664, 49665, 49666, 49667, 49668, 49669, 49670, 49671, 49672, 49673, 49674, 49675, 49676, 49677, 49678, 49679, 49680, 49681, 49682, 49683, 0, 49685, 49686, 49687, 49688, 0, 49690, 49691, 49692, 49693, 49694, 49695, 49696, 49697, 49698, 49699, 49700, 0, 0, 0, 49704, 0, 49706, 49707, 49708, 49709, 49710, 49711, 49712, 49713, 49714, 49715, 49716, 49717, 0, 0, 49720, 49721, 49722, 49723, 49724, 49725, 49726, 49727, 49728, 49729, 49730, 49731, 49732, 49733, 49734, 49735, 49736, 49737, 49738, 49739, 0, 0, 0, 0, 0, 49745, 49746, 49747, 49748, 49749, 49750, 49751, 49752, 49753, 49754, 49755, 49756, 49757, 49758, 49759, 49760, 49761, 49762, 49763, 0, 0, 0, 0, 0, 49769, 0, 0, 49772, 49773, 49774, 49775, 49776, 49777, 49778, 49779, 49780, 49781, 49782, 49783, 49784, 49785, 49786, 49787, 49788, 49789, 49790, 49791, 49792, 49793, 49794, 49795, 49796, 49797, 49798, 49799, 49800, 49801, 49802, 49803, 49804, 49805, 49806, 49807, 49808, 49809, 49810, 49811, 49812, 49813, 49814, 49815, 49816, 49817, 49818, 49819, 49820, 49821, 49822, 49823, 49824, 49825, 49826, 49827, 49828, 49829, 49830, 49831, 49832, 49833, 49834, 49835, 49836, 49837, 49838, 49839, 49840, 49841, 0, 49843, 0, 0, 0, 49847, 49848, 49849, 49850, 0, 0, 0, 0, 0, 49856, 49857, 0, 49859, 49860, 49861, 49862, 49863, 49864, 49865, 49866, 49867, 49868, 49869, 49870, 0, 49872, 49873, 49874, 49875, 49876, 49877, 49878, 49879, 49880, 49881, 49882, 49883, 49884, 49885, 49886, 49887, 49888, 49889, 49890, 49891, 49892, 49893, 49894, 49895, 0, 49897, 49898, 0, 49900, 0, 49902, 49903, 0, 49905, 49906, 49907, 49908, 49909, 49910, 49911, 49912, 49913, 49914, 49915, 49916, 49917, 49918, 49919, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +579: 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 1, 48578, 48578, 35283, 14032, 48578, 48578, 48578, 21481, 48578, 48578, 45298, 18947, 43753, 18194, 25218, 38288, 17349, 48578, 48578, 48578, 28258, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 39109, 48578, 15719, 48578, 48578, 48578, 48578, 17723, 19417, 39774, 33386, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 37225, 48578, 46102, 34671, 48578, 44117, 20156, 48578, 48578, 48578, 48578, 48578, 45480, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 46028, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 33018, 48578, 48578, 48578, 48578, 48578, 48578, 41584, 48578, 48578, 48578, 48578, 48578, 48578, 12027, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 19613, 33651, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 14246, 23825, 35999, 48578, 47604, 48578, 48578, 48578, 48578, 48578, 25201, 48578, 45610, 48578, 21994, 18134, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 33958, 19282, 48578, 48578, 48578, 23270, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 11279, 47369, 48578, 48578, 48578, 7519, 48578, 47928, 48578, 48578, 48578, 48578, 40498, 48578, 27604, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 49920, 49921, 0, 0, 49924, 49925, 49926, 0, 49928, 49929, 0, 0, 0, 0, 0, 0, 0, 49937, 49938, 49939, 0, 49941, 49942, 49943, 49944, 49945, 49946, 49947, 49948, 49949, 49950, 49951, 49952, 49953, 49954, 49955, 49956, 49957, 49958, 49959, 49960, 49961, 49962, 49963, 49964, 49965, 49966, 49967, 49968, 49969, 49970, 49971, 49972, 49973, 49974, 0, 49976, 0, 49978, 49979, 49980, 49981, 0, 0, 0, 0, 49986, 49987, 49988, 49989, 49990, 49991, 49992, 49993, 49994, 49995, 49996, 49997, 49998, 49999, 0, 50001, 0, 0, 50004, 0, 0, 50007, 50008, 50009, 50010, 50011, 0, 50013, 50014, 50015, 50016, 50017, 50018, 50019, 0, 50021, 50022, 50023, 50024, 50025, 50026, 50027, 50028, 50029, 50030, 50031, 50032, 50033, 50034, 50035, 50036, 50037, 50038, 50039, 50040, 50041, 50042, 50043, 50044, 0, 50046, 50047, 50048, 50049, 50050, 50051, 0, 50053, 50054, 50055, 50056, 50057, 50058, 0, 50060, 50061, 50062, 50063, 50064, 50065, 50066, 50067, 50068, 50069, 50070, 0, 0, 50073, 50074, 50075, 50076, 50077, 50078, 50079, 50080, 50081, 50082, 0, 0, 0, 50086, 0, 50088, 50089, 50090, 50091, 50092, 0, 50094, 0, 50096, 0, 0, 50099, 50100, 50101, 50102, 50103, 50104, 50105, 50106, 50107, 50108, 50109, 50110, 50111, 50112, 50113, 50114, 50115, 50116, 50117, 50118, 50119, 50120, 50121, 50122, 50123, 50124, 50125, 50126, 50127, 50128, 50129, 50130, 50131, 50132, 50133, 50134, 0, 0, 50137, 50138, 50139, 0, 50141, 50142, 50143, 50144, 50145, 50146, 50147, 50148, 50149, 50150, 50151, 50152, 50153, 50154, 50155, 50156, 50157, 50158, 50159, 50160, 0, 0, 50163, 50164, 50165, 0, 50167, 0, 50169, 50170, 50171, 50172, 0, 50174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +580: 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 18139, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 35951, 48578, 48578, 48578, 48578, 8582, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 13338, 48578, 48578, 48578, 48578, 48578, 22435, 48578, 8806, 48578, 48578, 48578, 48578, 19296, 25092, 11946, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 39674, 32527, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 45027, 48578, 41280, 48578, 24983, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 33401, 48578, 48578, 34414, 48578, 48578, 48578, 40336, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 39942, 48578, 48578, 48578, 42413, 23678, 43268, 48578, 48578, 48578, 48578, 48578, 24771, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 9257, 9601, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 42369, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 24817, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 35803, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 19919, 48578, 48578, 38932, 47130, 48578, 48578, 48578, 48578, 38934, 48578, 48578, 45051, 48578, 48578, 48578, 48578, 48578, 48578, 39580, 48578, 47962, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 46044, 48578, 48578, 48578, 48578, 48578, 48356, 48578, 28098, 48578, 48578, 48578, 48578, 48578, 48578, 12632, 25028, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 50177, 50178, 50179, 50180, 50181, 50182, 50183, 50184, 50185, 50186, 50187, 50188, 50189, 50190, 50191, 50192, 50193, 50194, 50195, 0, 50197, 50198, 50199, 50200, 0, 50202, 50203, 50204, 50205, 50206, 50207, 50208, 50209, 50210, 0, 50212, 50213, 50214, 50215, 50216, 0, 50218, 0, 50220, 50221, 50222, 50223, 0, 0, 0, 50227, 50228, 50229, 50230, 50231, 50232, 50233, 50234, 50235, 50236, 50237, 50238, 50239, 50240, 50241, 50242, 0, 0, 50245, 50246, 50247, 50248, 50249, 50250, 50251, 50252, 50253, 50254, 50255, 50256, 50257, 50258, 0, 50260, 0, 50262, 0, 50264, 50265, 50266, 50267, 50268, 50269, 50270, 50271, 50272, 50273, 50274, 0, 50276, 50277, 0, 50279, 50280, 50281, 0, 50283, 50284, 50285, 50286, 50287, 50288, 50289, 50290, 0, 50292, 50293, 50294, 0, 0, 0, 50298, 50299, 50300, 50301, 50302, 0, 50304, 50305, 50306, 50307, 50308, 50309, 50310, 50311, 50312, 50313, 50314, 50315, 50316, 50317, 50318, 50319, 50320, 50321, 50322, 50323, 0, 0, 50326, 50327, 50328, 50329, 50330, 50331, 50332, 0, 50334, 50335, 50336, 50337, 50338, 50339, 50340, 50341, 0, 50343, 50344, 50345, 50346, 50347, 50348, 50349, 50350, 50351, 50352, 50353, 50354, 50355, 50356, 50357, 50358, 50359, 50360, 50361, 50362, 0, 50364, 50365, 50366, 50367, 50368, 50369, 50370, 50371, 50372, 50373, 50374, 50375, 50376, 50377, 50378, 50379, 50380, 50381, 50382, 50383, 50384, 0, 50386, 50387, 0, 0, 50390, 50391, 50392, 50393, 0, 50395, 50396, 0, 50398, 50399, 50400, 50401, 50402, 50403, 0, 50405, 0, 50407, 50408, 50409, 50410, 50411, 50412, 50413, 50414, 0, 50416, 50417, 50418, 50419, 50420, 0, 50422, 0, 50424, 50425, 50426, 50427, 50428, 50429, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +581: 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 2, 1, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 1, 1, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 1, 28100, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 29449, 48578, 21857, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 26418, 48578, 48578, 34700, 33680, 48578, 48578, 26419, 48578, 14833, 48578, 48578, 48578, 8055, 48578, 48578, 48578, 48578, 24458, 48578, 48578, 40624, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 12505, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 10645, 48578, 48578, 48578, 46059, 48578, 48578, 35205, 48578, 48578, 33929, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 16015, 48578, 48578, 48578, 48578, 48578, 44200, 48578, 18879, 10348, 48578, 20755, 47553, 34498, 48578, 48578, 39971, 48578, 48578, 48578, 28902, 48578, 48578, 48578, 48578, 48578, 48578, 20466, 48578, 20468, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 13150, 48578, 48578, 48578, 48578, 48578, 31212, 31884, 48578, 14962, 48578, 48578, 48578, 48578, 48578, 45972, 22612, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 13249, 45528, 48578, 48578, 16720, 33300, 14921, 48578, 48578, 20526, 48578, 41677, 47078, 48578, 48578, 48578, 24559, 48578, 48578, 48578, 25415, 48578, 48578, 48578, 42650, 48578, 32132, 29320, 16239, 48578, 20051, 17596, 48578, 29669, 48578, 21858, 48578, 10320, 48578, 48578, 25043, 34328, 30234, 39801, 48578, 29863, 26416, 11879, 48578, 44426, 48578, 48578, 48578, 22826, 40250, 48578, 48578, 48578, 48578, 37622, 41769, 29514, 48578, 48578, 48578, 10577, 48578, 48578, 48578, 48578, 36357, 10337, 8498, 24795, 20065, 48578, 36770, 48578, 48578, 48578, 36317, 48578, 48578, 48578, 48578, 48578, 13256, 48578, 34672, 24177, 26119, 39198, 48578, 11968, 48578, 48578, 48578, 9107, 37183, 30343, 48578, 25223, 14922, 48578, 9223, 10088, 48578, 48578, 12506, 35854, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 50433, 50434, 50435, 50436, 50437, 50438, 50439, 50440, 0, 50442, 0, 50444, 50445, 50446, 50447, 50448, 50449, 50450, 50451, 50452, 50453, 0, 50455, 50456, 0, 0, 50459, 50460, 0, 50462, 0, 50464, 50465, 50466, 0, 50468, 50469, 50470, 50471, 0, 50473, 50474, 0, 50476, 50477, 50478, 50479, 50480, 50481, 50482, 50483, 50484, 50485, 0, 50487, 50488, 50489, 50490, 50491, 50492, 50493, 50494, 50495, 0, 50497, 50498, 50499, 0, 50501, 50502, 0, 50504, 50505, 0, 50507, 50508, 50509, 50510, 50511, 50512, 50513, 0, 50515, 50516, 50517, 50518, 50519, 0, 50521, 0, 0, 50524, 0, 0, 0, 50528, 50529, 0, 50531, 50532, 50533, 0, 50535, 50536, 50537, 50538, 50539, 50540, 0, 50542, 0, 50544, 50545, 50546, 50547, 50548, 50549, 50550, 0, 50552, 50553, 50554, 50555, 50556, 0, 0, 50559, 0, 50561, 50562, 50563, 50564, 50565, 0, 0, 50568, 50569, 50570, 50571, 50572, 50573, 50574, 50575, 50576, 50577, 0, 0, 50580, 50581, 0, 0, 0, 50585, 50586, 0, 50588, 0, 0, 50591, 50592, 50593, 0, 50595, 50596, 50597, 0, 50599, 50600, 50601, 0, 50603, 0, 0, 0, 50607, 0, 0, 50610, 0, 50612, 0, 50614, 0, 50616, 50617, 0, 0, 0, 0, 50622, 0, 0, 0, 50626, 0, 50628, 50629, 50630, 0, 0, 50633, 50634, 50635, 50636, 0, 0, 0, 50640, 50641, 50642, 0, 50644, 50645, 50646, 50647, 0, 0, 0, 0, 0, 50653, 0, 50655, 50656, 50657, 0, 50659, 50660, 50661, 50662, 50663, 0, 50665, 0, 0, 0, 0, 50670, 0, 50672, 50673, 50674, 0, 0, 0, 50678, 0, 0, 50681, 0, 0, 50684, 50685, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +582: 1, 2, 2, 1, 2, 1, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 1, 1, 1, 2, 1, 2, 2, 1, 2, 1, 1, 1, 2, 1, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 2, 2, 1, 2, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 12662, 48578, 48578, 24560, 48578, 41448, 41451, 45845, 48578, 48578, 42714, 48578, 30429, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 18299, 48578, 36726, 48578, 22843, 48578, 48578, 11497, 44000, 14908, 48578, 29111, 36603, 21192, 29757, 10400, 29860, 48578, 21050, 16823, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 47737, 48578, 48578, 18151, 11108, 34622, 36157, 29762, 32740, 32741, 48578, 18043, 29578, 48578, 48578, 48578, 48578, 48578, 48578, 7785, 48578, 39217, 48578, 48578, 48578, 31563, 28533, 48578, 36158, 32154, 48578, 48578, 40103, 48578, 46135, 18397, 40388, 48578, 34431, 48578, 48578, 37045, 48578, 24829, 8455, 11134, 48578, 40471, 48578, 40390, 15110, 48578, 48578, 48578, 48578, 21063, 48578, 48578, 48578, 15365, 48578, 48578, 36255, 33803, 48578, 48578, 10224, 11436, 48578, 48578, 48578, 48578, 48578, 48578, 32416, 18047, 8254, 48578, 9444, 48578, 48578, 48578, 48578, 28005, 48578, 48578, 48578, 40751, 13231, 48578, 48578, 10030, 44302, 47226, 48578, 48578, 48578, 24140, 34434, 48578, 48578, 48578, 48578, 48578, 13608, 48578, 26808, 18750, 48578, 36217, 48578, 13705, 36358, 34029, 26976, 48578, 48578, 48578, 46356, 31533, 29878, 36078, 9575, 42225, 48578, 40708, 7907, 16433, 48578, 48578, 48578, 9378, 48578, 48578, 48578, 48578, 48578, 48578, 16310, 9186, 48578, 48578, 48578, 38254, 48578, 48578, 19833, 48578, 48578, 48578, 48578, 48578, 23419, 48578, 48578, 11969, 27712, 11873, 29189, 43828, 48578, 48578, 48578, 48578, 26840, 22714, 26729, 13336, 18540, 13995, 20490, 35307, 48578, 48578, 48578, 48578, 9721, 35762, 48578, 18768, 22196, 41345, 48578, 48578, 40626, 48578, 27420, 32398, 23826, 48578, 48578, 47079, 38011, 48578, 48578, 48578, 48578, 33309, 48578, 48578, 48578, 45397, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 50689, 50690, 0, 50692, 0, 0, 0, 50696, 50697, 0, 50699, 0, 50701, 50702, 50703, 50704, 50705, 50706, 50707, 0, 50709, 0, 50711, 0, 50713, 50714, 0, 0, 0, 50718, 0, 0, 0, 0, 0, 0, 50725, 0, 0, 50728, 50729, 50730, 50731, 50732, 50733, 50734, 50735, 50736, 50737, 0, 50739, 50740, 0, 0, 0, 0, 0, 0, 0, 50748, 0, 0, 50751, 50752, 50753, 50754, 50755, 50756, 0, 50758, 0, 50760, 50761, 50762, 0, 0, 50765, 0, 0, 50768, 50769, 0, 50771, 0, 0, 0, 50775, 0, 50777, 50778, 0, 50780, 0, 0, 0, 50784, 0, 50786, 0, 0, 50789, 50790, 50791, 50792, 0, 50794, 50795, 50796, 0, 50798, 50799, 0, 0, 50802, 50803, 0, 0, 50806, 50807, 50808, 50809, 50810, 50811, 0, 0, 0, 50815, 0, 50817, 50818, 50819, 50820, 0, 50822, 50823, 50824, 0, 0, 50827, 50828, 0, 0, 0, 50832, 50833, 50834, 0, 0, 50837, 50838, 50839, 50840, 50841, 0, 50843, 0, 0, 50846, 0, 50848, 0, 0, 0, 0, 50853, 50854, 50855, 0, 0, 0, 0, 0, 0, 50862, 0, 0, 0, 50866, 50867, 50868, 0, 50870, 50871, 50872, 50873, 50874, 50875, 0, 0, 50878, 50879, 50880, 0, 50882, 50883, 0, 50885, 50886, 50887, 50888, 50889, 0, 50891, 50892, 0, 0, 0, 0, 0, 50898, 50899, 50900, 50901, 0, 0, 0, 0, 0, 0, 0, 0, 50910, 50911, 50912, 50913, 0, 0, 50916, 0, 0, 0, 50920, 50921, 0, 50923, 0, 0, 0, 50927, 50928, 0, 0, 50931, 50932, 50933, 50934, 0, 50936, 50937, 50938, 0, 50940, 50941, 50942, 50943, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +583: 2, 1, 1, 2, 1, 2, 2, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1, 1, 2, 2, 2, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 1, 1, 48578, 7441, 38127, 48578, 18531, 48578, 48578, 46000, 48578, 43643, 15923, 19106, 48578, 32257, 48578, 48578, 48578, 48578, 48578, 25113, 21793, 7742, 23978, 48578, 26672, 25416, 48578, 48578, 24337, 19683, 48578, 48578, 48578, 18912, 40429, 34286, 46183, 48578, 48578, 9068, 48578, 48578, 48578, 9736, 48578, 48578, 48578, 9738, 21276, 7641, 8115, 48578, 48578, 41853, 48578, 18312, 48578, 44221, 48578, 8407, 11337, 48578, 19690, 48578, 48578, 48578, 28051, 48578, 26812, 47145, 48578, 42437, 13480, 42420, 48578, 48578, 48578, 32641, 43319, 48578, 17504, 48578, 28134, 36713, 15411, 28018, 45291, 48578, 18153, 48578, 10363, 37341, 48578, 48578, 11229, 15182, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 8037, 48578, 48578, 48578, 48578, 12870, 9434, 25955, 30213, 12179, 42448, 48578, 42835, 48578, 48578, 48578, 39744, 8317, 47396, 48578, 42684, 48578, 26177, 48578, 23070, 48578, 48578, 46897, 48578, 48578, 48578, 48578, 37480, 12771, 34629, 25029, 45442, 46898, 28334, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 9861, 48578, 48578, 39861, 45409, 48578, 48578, 44508, 13531, 9834, 40104, 42031, 48578, 39527, 8002, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 45785, 48578, 31871, 48578, 18159, 45307, 22112, 48578, 17184, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 7453, 45469, 48578, 48578, 33418, 48578, 39615, 10785, 41751, 48578, 7459, 48578, 48578, 48578, 46217, 22123, 48578, 48578, 24403, 48578, 23911, 48578, 48578, 9442, 48578, 25979, 48578, 19961, 48578, 48578, 39298, 40025, 41570, 40752, 48578, 13902, 43681, 18865, 36342, 29021, 39009, 48578, 48578, 37051, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 37519, 10369, 48578, 48578, 48578, 17831, 48578, 36343, 41008, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 50944, 0, 0, 50947, 0, 50949, 50950, 0, 50952, 0, 0, 0, 50956, 0, 50958, 50959, 50960, 50961, 50962, 0, 0, 0, 0, 50967, 0, 0, 50970, 50971, 0, 0, 50974, 50975, 50976, 0, 0, 0, 0, 50981, 50982, 0, 50984, 50985, 50986, 0, 50988, 50989, 50990, 0, 0, 0, 0, 50995, 50996, 0, 50998, 0, 51000, 0, 51002, 0, 0, 51005, 0, 51007, 51008, 51009, 0, 51011, 0, 0, 51014, 0, 0, 0, 51018, 51019, 51020, 0, 0, 51023, 0, 51025, 0, 0, 0, 0, 0, 51031, 0, 51033, 0, 0, 51036, 51037, 0, 0, 51040, 51041, 51042, 51043, 51044, 51045, 51046, 0, 51048, 51049, 51050, 51051, 0, 0, 0, 0, 0, 0, 51058, 0, 51060, 51061, 51062, 0, 0, 0, 51066, 0, 51068, 0, 51070, 0, 51072, 51073, 0, 51075, 51076, 51077, 51078, 0, 0, 0, 0, 0, 0, 0, 51086, 51087, 51088, 51089, 51090, 51091, 51092, 51093, 51094, 0, 51096, 51097, 0, 0, 51100, 51101, 0, 0, 0, 0, 0, 51107, 0, 0, 51110, 51111, 51112, 51113, 51114, 51115, 51116, 51117, 0, 51119, 0, 51121, 0, 0, 0, 51125, 0, 51127, 51128, 51129, 51130, 51131, 51132, 51133, 51134, 0, 0, 51137, 51138, 0, 51140, 0, 0, 0, 51144, 0, 51146, 51147, 51148, 0, 0, 51151, 51152, 0, 51154, 0, 51156, 51157, 0, 51159, 0, 51161, 0, 51163, 51164, 0, 0, 0, 0, 51169, 0, 0, 0, 0, 0, 0, 51176, 51177, 0, 51179, 51180, 51181, 51182, 51183, 51184, 51185, 51186, 51187, 51188, 51189, 51190, 0, 0, 51193, 51194, 51195, 0, 51197, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +584: 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 1, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 45249, 48578, 48578, 48578, 48578, 48578, 48578, 15949, 48578, 48578, 48578, 25756, 9866, 29327, 19589, 48578, 35731, 48578, 48578, 38799, 48578, 48578, 39887, 48578, 33215, 19979, 35284, 18721, 48578, 12077, 48578, 35732, 34706, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 15264, 24441, 48578, 33810, 48578, 36070, 48578, 48578, 48578, 48578, 48578, 48578, 12988, 48578, 48578, 48578, 8520, 48578, 16311, 11889, 48578, 30951, 48578, 48578, 23930, 35295, 48578, 48578, 48243, 17445, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 10868, 9610, 48578, 48578, 38375, 39898, 25067, 41579, 48578, 48578, 48578, 48578, 48578, 48578, 8521, 48578, 18679, 48578, 38820, 10676, 40779, 28349, 41665, 48578, 40288, 45702, 48578, 35476, 48578, 39122, 8267, 32421, 34867, 7824, 16905, 22389, 10382, 48578, 48578, 40950, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 14227, 24459, 38839, 18684, 35308, 48578, 10186, 48578, 48578, 48578, 48578, 48578, 26030, 41666, 48578, 48578, 12504, 12408, 42003, 48578, 45822, 21919, 48578, 13956, 33219, 23530, 35320, 48578, 48578, 48578, 48578, 48578, 48578, 45538, 48578, 48578, 48578, 8565, 48578, 48578, 43561, 48578, 17450, 48578, 25080, 48578, 48578, 17484, 42060, 48578, 48578, 48578, 48578, 48578, 34873, 7359, 31775, 48578, 48578, 24014, 40170, 48578, 34409, 48578, 48578, 48578, 48578, 48578, 48578, 25936, 48578, 32366, 24726, 48578, 48578, 48578, 48578, 48578, 40046, 48578, 43637, 48578, 48578, 40180, 48578, 48578, 48578, 48578, 48578, 48578, 25384, 43979, 48578, 48578, 48578, 48578, 12534, 23686, 39953, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 43136, 48578, 48578, 48578, 38411, 48578, 42931, 37301, 9314, 48578, 40433, 48578, 48578, 34889, 21098, 48578, 7642, 14439, 48578, 27849, 33004, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 51201, 51202, 51203, 51204, 51205, 51206, 0, 51208, 51209, 51210, 0, 0, 0, 0, 51215, 0, 51217, 51218, 0, 51220, 51221, 0, 51223, 0, 0, 0, 0, 51228, 0, 51230, 0, 0, 51233, 51234, 51235, 51236, 51237, 51238, 51239, 51240, 51241, 0, 0, 51244, 0, 51246, 0, 51248, 51249, 51250, 51251, 51252, 51253, 0, 51255, 51256, 51257, 0, 51259, 0, 0, 51262, 0, 51264, 51265, 0, 0, 51268, 51269, 0, 0, 51272, 51273, 51274, 51275, 51276, 51277, 51278, 0, 0, 51281, 51282, 0, 0, 0, 0, 51287, 51288, 51289, 51290, 51291, 51292, 0, 51294, 0, 51296, 0, 0, 0, 0, 0, 51302, 0, 0, 51305, 0, 51307, 0, 0, 0, 0, 0, 0, 0, 0, 51316, 51317, 0, 51319, 51320, 51321, 51322, 51323, 51324, 51325, 0, 0, 0, 0, 0, 51331, 0, 51333, 51334, 51335, 51336, 51337, 0, 0, 51340, 51341, 0, 0, 0, 51345, 0, 0, 51348, 0, 0, 0, 0, 51353, 51354, 51355, 51356, 51357, 51358, 0, 51360, 51361, 51362, 0, 51364, 51365, 0, 51367, 0, 51369, 0, 51371, 51372, 0, 0, 51375, 51376, 51377, 51378, 51379, 0, 0, 0, 51383, 51384, 0, 0, 51387, 0, 51389, 51390, 51391, 51392, 51393, 51394, 0, 51396, 0, 0, 51399, 51400, 51401, 51402, 51403, 0, 51405, 0, 51407, 51408, 0, 51410, 51411, 51412, 51413, 51414, 51415, 0, 0, 51418, 51419, 51420, 51421, 0, 0, 0, 51425, 51426, 51427, 51428, 51429, 51430, 51431, 0, 51433, 51434, 51435, 0, 51437, 0, 0, 0, 51441, 0, 51443, 51444, 0, 0, 51447, 0, 0, 51450, 0, 0, 51453, 51454, 51455, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +585: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 1, 2, 1, 2, 2, 1, 1, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 12232, 19748, 48578, 48578, 48578, 48578, 35245, 31719, 7651, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 36518, 44005, 48578, 37348, 48578, 37530, 44154, 48578, 13388, 48578, 48578, 39001, 22818, 48578, 48578, 48578, 31722, 13776, 14022, 48578, 43013, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 38731, 31478, 35250, 48578, 48578, 25471, 48578, 37585, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 10298, 47403, 48578, 26898, 48578, 48578, 48578, 48578, 48578, 48578, 32212, 48578, 48578, 48578, 48578, 48578, 44199, 48578, 43073, 27264, 48578, 48578, 23515, 46967, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 28496, 48578, 7817, 48578, 48578, 48578, 13402, 48578, 48578, 48578, 46968, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 43105, 48578, 48578, 25318, 44304, 11742, 12939, 46990, 48578, 48578, 48578, 32919, 48578, 48578, 20383, 48578, 48578, 48578, 48578, 48578, 37676, 48578, 21231, 48578, 29410, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 51456, 51457, 51458, 51459, 51460, 51461, 51462, 51463, 51464, 51465, 0, 0, 51468, 51469, 51470, 51471, 0, 0, 0, 51475, 51476, 51477, 51478, 51479, 51480, 51481, 51482, 51483, 51484, 51485, 51486, 51487, 51488, 51489, 51490, 51491, 51492, 51493, 0, 0, 51496, 0, 51498, 0, 0, 51501, 0, 51503, 51504, 0, 0, 51507, 51508, 51509, 0, 0, 0, 51513, 0, 51515, 51516, 51517, 51518, 51519, 51520, 51521, 51522, 51523, 51524, 51525, 51526, 51527, 51528, 51529, 51530, 51531, 51532, 51533, 51534, 51535, 51536, 51537, 0, 0, 0, 51541, 51542, 0, 51544, 0, 51546, 51547, 51548, 51549, 51550, 51551, 51552, 51553, 51554, 51555, 51556, 51557, 51558, 51559, 51560, 51561, 51562, 51563, 51564, 0, 0, 51567, 0, 51569, 51570, 51571, 51572, 51573, 51574, 0, 51576, 51577, 51578, 51579, 51580, 0, 51582, 0, 0, 51585, 51586, 0, 0, 51589, 51590, 51591, 51592, 51593, 51594, 51595, 51596, 51597, 51598, 51599, 51600, 51601, 51602, 51603, 51604, 51605, 51606, 51607, 51608, 51609, 51610, 51611, 51612, 51613, 51614, 51615, 51616, 51617, 51618, 51619, 0, 51621, 0, 51623, 51624, 51625, 0, 51627, 51628, 51629, 0, 51631, 51632, 51633, 51634, 51635, 51636, 51637, 51638, 51639, 51640, 51641, 51642, 51643, 51644, 51645, 51646, 51647, 51648, 51649, 51650, 51651, 51652, 51653, 51654, 51655, 51656, 51657, 51658, 51659, 51660, 51661, 51662, 51663, 51664, 51665, 51666, 51667, 51668, 0, 51670, 51671, 0, 0, 0, 0, 0, 51677, 51678, 51679, 0, 51681, 51682, 0, 51684, 51685, 51686, 51687, 51688, 0, 51690, 0, 51692, 0, 51694, 51695, 51696, 51697, 51698, 51699, 51700, 51701, 51702, 51703, 51704, 51705, 51706, 51707, 51708, 51709, 51710, 51711, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +586: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 26015, 32056, 48578, 39021, 12203, 48578, 48578, 48578, 48578, 18363, 26423, 48578, 23915, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 16208, 48578, 48578, 48578, 48578, 25452, 48578, 48578, 48578, 48578, 48578, 48578, 23827, 48578, 47697, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 45450, 17541, 39823, 48578, 48578, 17544, 24496, 48578, 48578, 13081, 15989, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 18602, 48578, 48578, 48578, 48578, 48578, 48578, 14253, 48578, 39267, 48578, 48578, 48578, 48578, 20188, 30622, 39272, 44127, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 46563, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 47704, 48578, 48578, 48578, 10090, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 40351, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 28362, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 19920, 36558, 48578, 48578, 48578, 48578, 41849, 48578, 48578, 48578, 17495, 40421, 25417, 48578, 7811, 8273, 48578, 48578, 48578, 48578, 16241, 25275, 48578, 48578, 23375, 30866, 20768, 48578, 14297, 42202, 13581, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 51712, 51713, 51714, 51715, 51716, 51717, 51718, 51719, 51720, 51721, 51722, 51723, 51724, 0, 0, 51727, 0, 0, 51730, 51731, 51732, 51733, 0, 0, 51736, 0, 51738, 51739, 51740, 51741, 51742, 51743, 51744, 51745, 51746, 51747, 51748, 51749, 51750, 51751, 51752, 51753, 51754, 51755, 51756, 51757, 51758, 51759, 51760, 51761, 51762, 51763, 51764, 51765, 0, 51767, 51768, 51769, 51770, 0, 51772, 51773, 51774, 51775, 51776, 51777, 0, 51779, 0, 51781, 51782, 51783, 51784, 51785, 51786, 51787, 51788, 51789, 51790, 51791, 51792, 51793, 51794, 51795, 51796, 51797, 51798, 51799, 51800, 51801, 51802, 51803, 51804, 51805, 51806, 51807, 51808, 51809, 51810, 51811, 51812, 51813, 51814, 51815, 0, 0, 0, 51819, 51820, 0, 0, 51823, 51824, 0, 0, 51827, 51828, 51829, 51830, 51831, 51832, 51833, 51834, 51835, 51836, 0, 51838, 51839, 51840, 51841, 51842, 51843, 0, 51845, 0, 51847, 51848, 51849, 51850, 0, 0, 0, 0, 51855, 51856, 51857, 51858, 51859, 51860, 51861, 51862, 51863, 51864, 51865, 51866, 51867, 51868, 51869, 51870, 51871, 51872, 0, 51874, 51875, 51876, 51877, 51878, 51879, 51880, 51881, 0, 51883, 51884, 51885, 0, 51887, 51888, 51889, 51890, 51891, 51892, 51893, 51894, 51895, 51896, 51897, 51898, 51899, 51900, 51901, 51902, 51903, 51904, 51905, 51906, 51907, 51908, 51909, 51910, 51911, 51912, 0, 51914, 51915, 51916, 51917, 51918, 51919, 51920, 51921, 51922, 51923, 51924, 0, 51926, 51927, 51928, 51929, 51930, 51931, 51932, 0, 0, 51935, 51936, 51937, 51938, 0, 51940, 51941, 51942, 0, 0, 0, 51946, 0, 0, 51949, 51950, 51951, 51952, 0, 0, 51955, 51956, 0, 0, 0, 51960, 0, 0, 0, 51964, 51965, 51966, 51967, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +587: 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 48578, 19230, 13672, 29501, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 44847, 48578, 48578, 25779, 40539, 48578, 48578, 24690, 42235, 38840, 42242, 48578, 38890, 48578, 48578, 25886, 48578, 41955, 48578, 48578, 32259, 48578, 48578, 48578, 48578, 32484, 37493, 48307, 14569, 42959, 13684, 35448, 48578, 29698, 48578, 17223, 48578, 40876, 48578, 16199, 48578, 12910, 48578, 28144, 48578, 48578, 48578, 48578, 48578, 48578, 14026, 37457, 48578, 48578, 28775, 48578, 48578, 48578, 48578, 48578, 13156, 18715, 48578, 48578, 36344, 14588, 48578, 48578, 48578, 38473, 7494, 48578, 30130, 48578, 48578, 48578, 48578, 17245, 48578, 15765, 24141, 48578, 13860, 15456, 28165, 48578, 9692, 48578, 48578, 48578, 48578, 20837, 48578, 31692, 48578, 43597, 39758, 48578, 48578, 48578, 48578, 18195, 48578, 48578, 35296, 48578, 48578, 48578, 48578, 48578, 48578, 15910, 14228, 40951, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 38862, 48578, 48578, 48578, 22525, 17048, 20845, 11350, 23944, 17805, 48476, 48578, 48578, 48578, 48578, 30032, 48578, 48578, 12719, 38891, 23947, 48578, 33613, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 25887, 48578, 13850, 22361, 48578, 48578, 10097, 48578, 40183, 37477, 46274, 48578, 47661, 48578, 48578, 48578, 25607, 23980, 48578, 48578, 48578, 12270, 15629, 48578, 48578, 48578, 48578, 48578, 48578, 34319, 48578, 48578, 41780, 48578, 48578, 48578, 48578, 15659, 48578, 48578, 48578, 41697, 48578, 48578, 48578, 48578, 48578, 35388, 48578, 48578, 48578, 47154, 48578, 34320, 48578, 48578, 48578, 48578, 34073, 48578, 48578, 48578, 10020, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 18776, 43562, 48578, 48578, 27217, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 51968, 0, 0, 0, 51972, 51973, 51974, 51975, 51976, 51977, 51978, 51979, 0, 51981, 51982, 0, 0, 51985, 51986, 0, 0, 0, 0, 51991, 0, 51993, 51994, 0, 51996, 0, 51998, 51999, 0, 52001, 52002, 52003, 52004, 0, 0, 0, 0, 0, 0, 0, 52012, 0, 52014, 0, 52016, 0, 52018, 0, 52020, 0, 52022, 0, 52024, 52025, 52026, 52027, 52028, 52029, 0, 0, 52032, 52033, 0, 52035, 52036, 52037, 52038, 52039, 0, 0, 52042, 52043, 0, 0, 52046, 52047, 52048, 0, 0, 52051, 0, 52053, 52054, 52055, 52056, 0, 52058, 0, 0, 52061, 0, 0, 0, 52065, 0, 52067, 52068, 52069, 52070, 0, 52072, 0, 52074, 0, 0, 52077, 52078, 52079, 52080, 0, 52082, 52083, 0, 52085, 52086, 52087, 52088, 52089, 52090, 0, 0, 0, 52094, 52095, 52096, 52097, 52098, 52099, 52100, 52101, 0, 52103, 52104, 52105, 0, 0, 0, 0, 0, 0, 0, 52113, 52114, 52115, 52116, 0, 52118, 52119, 0, 0, 0, 52123, 0, 52125, 52126, 52127, 52128, 52129, 52130, 52131, 52132, 52133, 52134, 0, 52136, 0, 0, 52139, 52140, 0, 52142, 0, 0, 0, 52146, 0, 52148, 52149, 52150, 0, 0, 52153, 52154, 52155, 0, 0, 52158, 52159, 52160, 52161, 52162, 52163, 0, 52165, 52166, 0, 52168, 52169, 52170, 52171, 0, 52173, 52174, 52175, 0, 52177, 52178, 52179, 52180, 52181, 0, 52183, 52184, 52185, 0, 52187, 0, 52189, 52190, 52191, 52192, 0, 52194, 52195, 52196, 0, 52198, 52199, 52200, 52201, 52202, 52203, 52204, 52205, 52206, 52207, 52208, 52209, 52210, 52211, 52212, 52213, 52214, 0, 0, 52217, 52218, 0, 52220, 52221, 52222, 52223, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +588: 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48578, 48578, 32477, 48578, 48578, 39740, 48578, 48578, 8144, 48578, 48578, 48578, 11348, 48578, 48578, 48578, 48578, 30362, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 22590, 23409, 48578, 48578, 32272, 48578, 17434, 10827, 26742, 48578, 48578, 48578, 48578, 45753, 48578, 48578, 48578, 14909, 48578, 10279, 48578, 48578, 48578, 48578, 48578, 48578, 21348, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 25030, 48578, 28139, 28140, 36854, 48578, 48578, 48578, 32406, 48365, 29704, 44094, 48578, 34504, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 25044, 34432, 37152, 48578, 15829, 33719, 37350, 48578, 28247, 48578, 48578, 48578, 37410, 16148, 13157, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 27202, 7900, 48578, 40115, 35012, 36805, 16884, 48578, 48578, 15251, 16888, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 16889, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 47513, 48578, 23519, 48578, 26341, 36579, 32455, 48578, 48578, 13404, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 22030, 41655, 48578, 48578, 32899, 12402, 48578, 48578, 26920, 48578, 48578, 48578, 48578, 48578, 26231, 48578, 40952, 48578, 38841, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 26514, 30451, 48578, 9839, 48578, 48578, 33653, 17364, 30149, 48578, 48578, 48578, 19443, 48578, 48578, 48578, 48578, 24498, 48578, 44650, 7834, 48578, 36267, 48578, 48578, 48578, 48578, 11078, 48578, 48578, 11079, 48578, 48578, 48578, 30468, 38892, 8188, 48578, 48578, 48578, 42533, 48578, 48578, 16732, 48578, 47613, 48578, 48578, 48578, 23957, 23958, 9770, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 52224, 52225, 0, 52227, 52228, 0, 52230, 52231, 0, 52233, 52234, 52235, 0, 52237, 52238, 52239, 52240, 0, 52242, 52243, 52244, 52245, 52246, 52247, 52248, 0, 0, 52251, 52252, 0, 52254, 0, 0, 0, 52258, 52259, 52260, 52261, 0, 52263, 52264, 52265, 0, 52267, 0, 52269, 52270, 52271, 52272, 52273, 52274, 0, 52276, 52277, 52278, 52279, 52280, 52281, 52282, 52283, 52284, 52285, 52286, 52287, 52288, 52289, 52290, 0, 52292, 0, 0, 0, 52296, 52297, 52298, 0, 0, 0, 0, 52303, 0, 52305, 52306, 52307, 52308, 52309, 52310, 52311, 52312, 52313, 52314, 0, 0, 0, 52318, 0, 0, 0, 52322, 0, 52324, 52325, 52326, 0, 0, 0, 52330, 52331, 52332, 52333, 52334, 52335, 52336, 52337, 52338, 52339, 0, 0, 52342, 0, 0, 0, 0, 52347, 52348, 0, 0, 52351, 52352, 52353, 52354, 52355, 52356, 52357, 52358, 52359, 52360, 0, 52362, 52363, 52364, 52365, 52366, 52367, 52368, 0, 52370, 0, 52372, 0, 0, 0, 52376, 52377, 0, 52379, 52380, 52381, 52382, 52383, 52384, 52385, 52386, 52387, 52388, 52389, 52390, 52391, 0, 0, 52394, 52395, 0, 0, 52398, 52399, 0, 52401, 52402, 52403, 52404, 52405, 0, 52407, 0, 52409, 0, 52411, 52412, 52413, 52414, 52415, 52416, 52417, 0, 0, 52420, 0, 52422, 52423, 0, 0, 0, 52427, 52428, 52429, 0, 52431, 52432, 52433, 52434, 0, 52436, 0, 0, 52439, 0, 52441, 52442, 52443, 52444, 0, 52446, 52447, 0, 52449, 52450, 52451, 0, 0, 0, 52455, 52456, 52457, 0, 52459, 52460, 0, 52462, 0, 52464, 52465, 52466, 0, 0, 0, 52470, 52471, 52472, 52473, 52474, 52475, 52476, 52477, 52478, 52479, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +589: 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 16734, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 13293, 48578, 48578, 48578, 48578, 48578, 41473, 48578, 48578, 48578, 48578, 28761, 34520, 48578, 46969, 48578, 48578, 48578, 47058, 48578, 48578, 47059, 29851, 48578, 21501, 21503, 42932, 44139, 48578, 21504, 48578, 48578, 48578, 48578, 18639, 48578, 13685, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 36201, 31414, 31506, 40435, 9898, 19759, 48578, 31594, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 13689, 46645, 48578, 48578, 29211, 48578, 38602, 48578, 38185, 48578, 48578, 48578, 48578, 48578, 8444, 48578, 48578, 8082, 48578, 28026, 21203, 36204, 24902, 48578, 48578, 48578, 48578, 9603, 45685, 48578, 48578, 48578, 48578, 48578, 10778, 41422, 23176, 43525, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 25626, 30867, 48578, 17398, 33678, 17157, 9748, 48578, 20673, 23855, 48578, 48578, 48578, 48578, 48578, 48578, 38756, 48578, 48578, 9156, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 46827, 48578, 37288, 15252, 48578, 18108, 48578, 28788, 43074, 47744, 48578, 48578, 48578, 9790, 48578, 48578, 48578, 35368, 48578, 48578, 45180, 48578, 48578, 48578, 48578, 48578, 48578, 13701, 48578, 38773, 11371, 40531, 20685, 33884, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 37706, 8089, 14704, 20384, 32230, 43107, 13405, 40924, 28166, 19590, 48578, 48578, 46420, 30559, 13785, 43420, 48578, 21593, 29790, 40447, 26328, 9446, 25449, 8862, 12645, 12689, 48578, 48578, 48578, 48578, 48578, 23490, 48578, 38800, 21890, 48578, 39977, 48578, 21302, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 37533, 48578, 28389, 39717, 32342, 31441, 37014, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 52481, 52482, 52483, 52484, 52485, 52486, 52487, 52488, 52489, 52490, 52491, 52492, 0, 52494, 52495, 52496, 52497, 52498, 0, 52500, 52501, 52502, 52503, 0, 0, 52506, 0, 52508, 52509, 52510, 0, 52512, 52513, 0, 0, 52516, 0, 0, 0, 0, 52521, 0, 52523, 52524, 52525, 52526, 0, 52528, 0, 52530, 52531, 52532, 52533, 52534, 52535, 52536, 52537, 52538, 0, 0, 0, 0, 0, 0, 52545, 0, 52547, 52548, 52549, 52550, 52551, 52552, 52553, 0, 0, 52556, 52557, 0, 52559, 0, 52561, 0, 52563, 52564, 52565, 52566, 52567, 0, 52569, 52570, 0, 52572, 0, 0, 0, 0, 52577, 52578, 52579, 52580, 0, 0, 52583, 52584, 52585, 52586, 52587, 0, 0, 0, 0, 52592, 52593, 52594, 52595, 52596, 52597, 52598, 52599, 0, 0, 52602, 0, 0, 0, 0, 52607, 0, 0, 52610, 52611, 52612, 52613, 52614, 52615, 0, 52617, 52618, 0, 52620, 52621, 52622, 52623, 52624, 52625, 52626, 0, 52628, 0, 0, 52631, 0, 52633, 0, 0, 0, 52637, 52638, 52639, 0, 52641, 52642, 52643, 0, 52645, 52646, 0, 52648, 52649, 52650, 52651, 52652, 52653, 0, 52655, 0, 0, 0, 0, 0, 52661, 52662, 52663, 52664, 52665, 52666, 52667, 52668, 52669, 52670, 52671, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52682, 52683, 0, 0, 0, 0, 52688, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52698, 52699, 52700, 52701, 52702, 0, 52704, 0, 0, 52707, 0, 52709, 0, 52711, 52712, 52713, 52714, 52715, 52716, 52717, 52718, 52719, 52720, 52721, 52722, 52723, 52724, 52725, 52726, 52727, 52728, 0, 52730, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +590: 1, 1, 2, 2, 2, 1, 1, 2, 1, 1, 1, 2, 2, 2, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 40837, 19029, 48578, 48578, 48578, 27664, 37984, 48578, 44043, 37177, 12308, 48578, 48578, 48578, 22669, 28174, 48578, 15463, 44590, 46848, 48578, 17194, 7260, 15464, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 41999, 48578, 48578, 34218, 48578, 9938, 48578, 48578, 48578, 10880, 45189, 34709, 48578, 35309, 33192, 48578, 14229, 46584, 7277, 35627, 9382, 48578, 32396, 43162, 41798, 48578, 28176, 38554, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 24460, 24461, 48578, 38844, 22179, 34141, 48578, 41485, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 10433, 43693, 8566, 10349, 48578, 48578, 45663, 37421, 18365, 36283, 43792, 8388, 28907, 24804, 40454, 44458, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 8183, 48578, 27802, 13790, 48578, 12619, 30601, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 34710, 48578, 48578, 39920, 47204, 47802, 48578, 8750, 48578, 38012, 38879, 48578, 12716, 48578, 40075, 29314, 28825, 48578, 48578, 8901, 33826, 14784, 27714, 30811, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 33608, 35635, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 19640, 48578, 48578, 12413, 22051, 26076, 48578, 7620, 48578, 48578, 48578, 43233, 34600, 35506, 38114, 37596, 11214, 48578, 48578, 48578, 48578, 38393, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 8607, 48578, 43504, 19222, 48578, 48578, 22437, 28916, 48578, 48578, 48578, 48578, 7365, 48578, 24543, 48578, 45796, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 26099, 48578, 48578, 48578, 48578, 8755, 29347, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 16930, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 52738, 52739, 52740, 0, 0, 52743, 0, 0, 0, 52747, 52748, 52749, 0, 0, 52752, 0, 0, 0, 52756, 0, 0, 0, 52760, 52761, 52762, 52763, 52764, 52765, 52766, 52767, 52768, 0, 52770, 52771, 0, 52773, 0, 52775, 52776, 52777, 0, 0, 0, 52781, 0, 0, 52784, 0, 0, 0, 0, 0, 52790, 0, 0, 0, 52794, 0, 0, 52797, 52798, 52799, 52800, 52801, 52802, 52803, 52804, 52805, 52806, 0, 0, 52809, 0, 0, 0, 52813, 0, 52815, 52816, 52817, 52818, 52819, 52820, 52821, 52822, 52823, 52824, 52825, 52826, 0, 0, 0, 0, 52831, 52832, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52843, 52844, 52845, 52846, 52847, 52848, 52849, 0, 52851, 0, 0, 52854, 0, 0, 52857, 52858, 52859, 52860, 52861, 52862, 52863, 0, 52865, 52866, 0, 0, 0, 52870, 0, 52872, 0, 0, 52875, 0, 52877, 0, 0, 0, 52881, 52882, 0, 0, 0, 0, 0, 52888, 52889, 52890, 52891, 52892, 52893, 52894, 52895, 52896, 52897, 52898, 52899, 52900, 52901, 52902, 52903, 52904, 52905, 0, 0, 52908, 52909, 52910, 52911, 52912, 52913, 52914, 52915, 52916, 52917, 52918, 0, 52920, 52921, 0, 0, 0, 52925, 0, 52927, 52928, 52929, 0, 0, 0, 0, 0, 0, 52936, 52937, 52938, 52939, 0, 52941, 52942, 52943, 52944, 52945, 52946, 52947, 52948, 52949, 0, 52951, 0, 0, 52954, 52955, 0, 0, 52958, 52959, 52960, 52961, 0, 52963, 0, 52965, 0, 52967, 52968, 52969, 52970, 52971, 52972, 52973, 52974, 52975, 52976, 0, 52978, 52979, 52980, 52981, 0, 0, 52984, 52985, 52986, 52987, 52988, 52989, 52990, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +591: 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 1, 1, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 35229, 27178, 39567, 25742, 48578, 30824, 48578, 48578, 48578, 48578, 48578, 10098, 43291, 17432, 48578, 24775, 16692, 48578, 38038, 48578, 48578, 48578, 48578, 22246, 23972, 26250, 24624, 48578, 29823, 48578, 48578, 48578, 48578, 48578, 18634, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 16767, 48578, 48578, 48578, 48578, 21742, 48578, 48578, 12710, 48578, 48578, 48578, 14781, 48578, 48578, 48578, 48578, 48578, 48578, 46631, 48578, 27031, 48578, 18640, 48578, 48578, 48578, 29243, 8362, 48578, 30173, 48578, 48578, 48578, 48578, 48578, 48578, 14320, 48578, 18644, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 10197, 48578, 26455, 15077, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 11050, 48578, 48321, 28253, 39992, 48578, 48578, 48578, 48578, 48578, 7790, 25997, 48578, 26465, 48578, 48578, 28689, 45512, 48578, 48578, 48578, 47588, 18191, 48578, 48578, 18881, 36129, 11063, 48578, 48578, 48578, 48578, 48578, 48578, 18756, 13492, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 27575, 48578, 9209, 48578, 48578, 12968, 48578, 12734, 30312, 48578, 35080, 11080, 48578, 48578, 48578, 48578, 42366, 27218, 25660, 48578, 48578, 48578, 48578, 24727, 48578, 48578, 8907, 48578, 48578, 48578, 48578, 26169, 48578, 48578, 48578, 48578, 33335, 48526, 48578, 48578, 48578, 12068, 25419, 46574, 29833, 7978, 48578, 48578, 32311, 48578, 48578, 29699, 28289, 29700, 9277, 8126, 14403, 48578, 27693, 27864, 37495, 46096, 46912, 11859, 48578, 48578, 48578, 48578, 41317, 19561, 16885, 48578, 10563, 48578, 48578, 48578, 17332, 40026, 32324, 48578, 11567, 48578, 15369, 48578, 48578, 48578, 48578, 48578, 31572, 25998, 32332, 13028, 30939, 48578, 48578, 48578, 48578, 10182, 35733, 8094, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 52996, 0, 52998, 52999, 53000, 53001, 53002, 0, 0, 0, 53006, 0, 0, 53009, 0, 53011, 53012, 53013, 53014, 0, 0, 0, 0, 53019, 0, 53021, 53022, 53023, 53024, 53025, 0, 53027, 53028, 53029, 53030, 53031, 53032, 53033, 53034, 53035, 53036, 53037, 0, 53039, 53040, 53041, 53042, 0, 53044, 53045, 0, 53047, 53048, 53049, 0, 53051, 53052, 53053, 53054, 53055, 53056, 0, 53058, 0, 53060, 0, 53062, 53063, 53064, 0, 0, 53067, 0, 53069, 53070, 53071, 53072, 53073, 53074, 0, 53076, 0, 53078, 53079, 53080, 53081, 53082, 53083, 53084, 53085, 53086, 53087, 53088, 53089, 53090, 0, 53092, 0, 0, 53095, 53096, 53097, 53098, 53099, 53100, 53101, 53102, 0, 53104, 0, 0, 0, 53108, 53109, 53110, 53111, 53112, 0, 0, 53115, 0, 53117, 53118, 0, 0, 53121, 53122, 53123, 0, 0, 53126, 53127, 0, 0, 0, 53131, 53132, 53133, 53134, 53135, 53136, 0, 0, 53139, 53140, 53141, 53142, 53143, 53144, 53145, 53146, 0, 53148, 0, 53150, 53151, 0, 53153, 0, 0, 53156, 0, 0, 53159, 53160, 53161, 53162, 0, 0, 0, 53166, 53167, 53168, 53169, 0, 53171, 53172, 0, 53174, 53175, 53176, 53177, 0, 53179, 53180, 53181, 53182, 0, 0, 53185, 53186, 53187, 0, 0, 0, 0, 0, 53193, 53194, 0, 53196, 53197, 0, 0, 0, 0, 0, 0, 53204, 0, 0, 0, 0, 0, 0, 53211, 53212, 53213, 53214, 0, 0, 0, 53218, 0, 53220, 53221, 53222, 0, 0, 0, 53226, 0, 53228, 0, 53230, 53231, 53232, 53233, 53234, 0, 0, 0, 0, 0, 53240, 53241, 53242, 53243, 0, 0, 0, 53247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +592: 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 48578, 13708, 8282, 18065, 48578, 48578, 48578, 48578, 45731, 45732, 48578, 48578, 48578, 48578, 32348, 26515, 17257, 48578, 48578, 25497, 26050, 48578, 48038, 48578, 29848, 47370, 48578, 45426, 48578, 28974, 48578, 48578, 19076, 48578, 48578, 41200, 48578, 23463, 48578, 48578, 48578, 48578, 48578, 29024, 41821, 32464, 28401, 48578, 23473, 16733, 13639, 48578, 48578, 25889, 48578, 48578, 48578, 20336, 40360, 30830, 48578, 48578, 39838, 48578, 48578, 17067, 20884, 26805, 48578, 48578, 39185, 23153, 48578, 48578, 48578, 48578, 48578, 48578, 43932, 48578, 17136, 27378, 42333, 48578, 48578, 38153, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 24407, 22017, 38423, 31313, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 13164, 11253, 48578, 48578, 35570, 48578, 48578, 10931, 48578, 48578, 32181, 33812, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 27206, 21899, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 37077, 48578, 48578, 48578, 48578, 48578, 48578, 28988, 27803, 48578, 48578, 48578, 48578, 48578, 14923, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 7551, 17010, 18224, 9512, 13871, 17143, 20727, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 16371, 48578, 48578, 48578, 48578, 21129, 48578, 48578, 42064, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 9843, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 18905, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32107, 22649, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 31639, 43306, 48578, 48578, 22420, 20651, 48578, 48578, 11010, 9315, 16043, 20579, 46632, 48578, 48578, 38246, 48578, 8921, 48578, 48578, 48578, 40611, 14570, 48578, 48578, 42660, 11368, 42326, 48578, 48578, 41988, 13686, 41735, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 53248, 0, 0, 0, 53252, 53253, 53254, 53255, 0, 0, 53258, 53259, 53260, 53261, 0, 0, 0, 53265, 53266, 0, 0, 53269, 0, 53271, 0, 0, 53274, 0, 53276, 0, 53278, 53279, 0, 53281, 53282, 0, 53284, 0, 53286, 53287, 53288, 53289, 53290, 0, 0, 0, 0, 53295, 0, 0, 0, 53299, 53300, 0, 53302, 53303, 53304, 0, 0, 0, 53308, 53309, 0, 53311, 53312, 0, 0, 0, 53316, 53317, 0, 0, 53320, 53321, 53322, 53323, 53324, 53325, 0, 53327, 0, 0, 0, 53331, 53332, 0, 53334, 53335, 53336, 53337, 53338, 53339, 53340, 53341, 53342, 0, 0, 0, 0, 53347, 53348, 53349, 53350, 53351, 53352, 53353, 53354, 53355, 53356, 53357, 0, 0, 53360, 53361, 0, 53363, 53364, 0, 53366, 53367, 0, 0, 53370, 53371, 53372, 53373, 53374, 53375, 53376, 53377, 0, 0, 53380, 53381, 53382, 53383, 53384, 53385, 53386, 0, 53388, 53389, 53390, 53391, 53392, 53393, 0, 0, 53396, 53397, 53398, 53399, 53400, 0, 53402, 53403, 53404, 53405, 53406, 53407, 53408, 53409, 0, 0, 0, 0, 0, 0, 0, 53417, 53418, 53419, 53420, 53421, 53422, 53423, 0, 53425, 53426, 53427, 53428, 0, 53430, 53431, 0, 53433, 53434, 53435, 53436, 53437, 53438, 53439, 0, 53441, 53442, 53443, 53444, 53445, 53446, 53447, 53448, 53449, 53450, 53451, 0, 53453, 53454, 53455, 53456, 53457, 53458, 53459, 0, 0, 53462, 53463, 53464, 53465, 53466, 53467, 53468, 53469, 53470, 0, 0, 53473, 53474, 0, 0, 53477, 53478, 0, 0, 0, 0, 0, 53484, 53485, 0, 53487, 0, 53489, 53490, 53491, 0, 0, 53494, 53495, 0, 0, 0, 53499, 53500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +593: 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 48578, 27103, 48578, 48578, 48578, 48578, 48578, 10650, 28055, 20586, 48578, 29082, 48578, 17029, 41225, 48578, 48578, 15200, 41166, 15096, 29542, 27860, 38714, 38355, 33538, 48578, 48578, 38715, 30740, 27521, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 12393, 48578, 11110, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 14754, 27582, 48578, 41228, 40887, 34903, 21806, 26867, 8042, 48578, 42706, 16506, 28582, 48578, 42707, 48578, 48553, 48578, 48578, 29063, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 13049, 14576, 43015, 34332, 48578, 48578, 11860, 46407, 48578, 48578, 48578, 48578, 48578, 34340, 20675, 18058, 14327, 48578, 48578, 48578, 48578, 24051, 41230, 16107, 48578, 34433, 48578, 21963, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 20912, 37862, 48578, 34443, 21395, 48578, 40814, 10999, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 20479, 28000, 48578, 48578, 44527, 48578, 48578, 22142, 48578, 48578, 48578, 48578, 36822, 48578, 48578, 39876, 48578, 13486, 48578, 17033, 26763, 37707, 40911, 37776, 35572, 22024, 44990, 48578, 17246, 48578, 33885, 48578, 40119, 25475, 32987, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 8477, 48578, 48578, 28409, 48578, 48578, 48578, 37672, 21591, 32299, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 28590, 48578, 27265, 35573, 48578, 31238, 48578, 48578, 17338, 47893, 27271, 40925, 48578, 23768, 20939, 13358, 10203, 46991, 14681, 20026, 22332, 19268, 30432, 21671, 47816, 48578, 13063, 20694, 41432, 48578, 45918, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 46681, 48578, 26612, 18114, 40263, 34213, 16780, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 40926, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 53504, 0, 53506, 53507, 53508, 53509, 53510, 0, 0, 0, 53514, 0, 53516, 0, 0, 53519, 53520, 0, 0, 0, 0, 0, 0, 0, 0, 53529, 53530, 0, 0, 0, 53534, 53535, 53536, 53537, 53538, 53539, 53540, 53541, 0, 53543, 0, 53545, 53546, 53547, 53548, 53549, 53550, 53551, 53552, 0, 0, 53555, 0, 0, 0, 0, 0, 0, 53562, 0, 0, 0, 53566, 0, 53568, 0, 53570, 53571, 0, 53573, 53574, 53575, 53576, 53577, 53578, 53579, 53580, 53581, 53582, 53583, 53584, 0, 0, 0, 0, 53589, 53590, 0, 0, 53593, 53594, 53595, 53596, 53597, 0, 0, 0, 0, 53602, 53603, 53604, 53605, 0, 0, 0, 53609, 0, 53611, 0, 53613, 53614, 53615, 53616, 53617, 53618, 53619, 0, 0, 53622, 0, 0, 53625, 0, 0, 53628, 53629, 53630, 53631, 53632, 53633, 53634, 53635, 53636, 0, 0, 53639, 53640, 0, 53642, 53643, 0, 53645, 53646, 53647, 53648, 0, 53650, 53651, 0, 53653, 0, 53655, 0, 0, 0, 0, 0, 0, 0, 0, 53664, 0, 53666, 0, 53668, 0, 0, 0, 53672, 53673, 53674, 53675, 53676, 53677, 53678, 0, 53680, 53681, 0, 53683, 53684, 53685, 0, 0, 0, 53689, 53690, 53691, 53692, 53693, 53694, 53695, 53696, 53697, 53698, 53699, 0, 53701, 0, 0, 53704, 0, 53706, 53707, 0, 0, 0, 0, 53712, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53725, 0, 0, 0, 53729, 0, 53731, 53732, 53733, 53734, 53735, 53736, 53737, 53738, 53739, 53740, 0, 53742, 0, 0, 0, 0, 0, 53748, 53749, 53750, 53751, 53752, 53753, 53754, 53755, 53756, 53757, 53758, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +594: 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 48578, 48578, 19599, 48578, 11432, 48578, 26922, 32900, 40766, 18681, 33430, 21817, 48578, 48578, 48578, 23129, 48578, 18020, 16609, 16520, 48578, 27274, 13250, 8523, 24865, 23450, 33552, 26016, 39111, 48578, 48578, 35193, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 29183, 48578, 24088, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 22908, 16785, 48578, 48578, 38821, 29333, 33291, 22269, 17979, 16675, 21909, 48578, 28231, 18435, 15974, 24462, 16315, 36461, 48578, 26566, 36281, 12206, 48578, 48578, 48578, 30452, 44614, 20712, 27597, 16097, 27232, 38088, 48578, 36373, 30592, 48578, 48578, 10434, 13497, 48578, 29334, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 17358, 48578, 48578, 48578, 27421, 26516, 26051, 30458, 22782, 48578, 13263, 30803, 20622, 22526, 31292, 27422, 33516, 48578, 48578, 48578, 48578, 48578, 48578, 20157, 24184, 22721, 40960, 48578, 48578, 48578, 48578, 48578, 48578, 26646, 15055, 10087, 18951, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 22871, 48578, 48578, 38013, 16678, 19641, 48497, 19290, 40160, 48578, 48578, 48578, 48578, 35494, 48578, 32932, 48578, 36261, 48578, 48578, 48578, 46613, 23325, 39782, 27462, 48578, 39141, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 33031, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 14260, 27609, 47523, 48279, 27216, 48578, 38893, 48578, 36106, 48578, 20092, 10166, 19654, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 47933, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 17748, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 53760, 53761, 0, 53763, 0, 53765, 0, 0, 0, 0, 0, 0, 53772, 53773, 53774, 0, 53776, 0, 0, 0, 53780, 0, 0, 0, 0, 0, 0, 0, 0, 53789, 53790, 0, 53792, 53793, 53794, 53795, 53796, 53797, 53798, 53799, 53800, 53801, 53802, 53803, 0, 53805, 0, 53807, 53808, 53809, 53810, 53811, 53812, 53813, 53814, 0, 0, 53817, 53818, 0, 0, 0, 0, 0, 0, 0, 53826, 0, 0, 0, 0, 0, 0, 53833, 0, 0, 0, 53837, 53838, 53839, 0, 0, 0, 0, 0, 0, 0, 53847, 0, 0, 53850, 53851, 0, 0, 53854, 0, 53856, 53857, 53858, 53859, 53860, 53861, 53862, 53863, 53864, 53865, 53866, 53867, 53868, 53869, 53870, 53871, 0, 53873, 53874, 53875, 0, 0, 0, 0, 0, 53881, 0, 0, 0, 0, 0, 0, 0, 53889, 53890, 53891, 53892, 53893, 53894, 0, 0, 0, 0, 53899, 53900, 53901, 53902, 53903, 53904, 0, 0, 0, 0, 53909, 53910, 53911, 53912, 53913, 53914, 53915, 53916, 53917, 53918, 53919, 53920, 53921, 53922, 53923, 53924, 53925, 53926, 0, 53928, 53929, 0, 0, 0, 0, 0, 0, 53936, 53937, 53938, 53939, 0, 53941, 0, 53943, 0, 53945, 53946, 53947, 0, 0, 0, 0, 53952, 0, 53954, 53955, 53956, 53957, 53958, 53959, 53960, 53961, 53962, 53963, 0, 53965, 53966, 53967, 53968, 53969, 53970, 53971, 53972, 53973, 53974, 53975, 53976, 0, 0, 0, 0, 0, 53982, 0, 53984, 0, 53986, 0, 0, 0, 53990, 53991, 53992, 53993, 53994, 53995, 53996, 53997, 0, 53999, 54000, 54001, 54002, 54003, 54004, 54005, 54006, 54007, 54008, 54009, 54010, 54011, 54012, 54013, 54014, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +595: 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 9811, 30821, 27470, 46433, 22922, 42534, 47296, 48578, 20193, 48578, 29376, 48578, 48578, 18902, 48578, 27756, 25600, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 34819, 48578, 26622, 24233, 48578, 48578, 34878, 42802, 48578, 48578, 48578, 48578, 24564, 48578, 48578, 48578, 40079, 36263, 40680, 48578, 48578, 41160, 24578, 27179, 37915, 27180, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 42375, 23636, 25385, 43649, 43650, 24595, 20326, 16808, 48578, 48578, 48578, 16626, 40355, 48578, 48578, 33838, 48578, 48420, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 22502, 23979, 48578, 48578, 48578, 48578, 48578, 8760, 48578, 48578, 34578, 29081, 40877, 48578, 48578, 48578, 17512, 48578, 48578, 48578, 48578, 16844, 48578, 45827, 23736, 11925, 46971, 15017, 31485, 48578, 45510, 28167, 28971, 43109, 48578, 48578, 11749, 34136, 20275, 48178, 41790, 43600, 48578, 48578, 48578, 32922, 48578, 32694, 39123, 48578, 16612, 22433, 48578, 38641, 48578, 31545, 11770, 48578, 45541, 40323, 48578, 44652, 45360, 11395, 24314, 24315, 40970, 27296, 40972, 32937, 48578, 48578, 16926, 32764, 48578, 48578, 26851, 48578, 31556, 11949, 11950, 11953, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 38418, 48578, 14440, 7688, 48578, 48578, 48578, 48578, 48578, 48578, 30863, 46934, 36683, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 46935, 46732, 48578, 18656, 11043, 48578, 46936, 48578, 48578, 48578, 43746, 48578, 48578, 48578, 38623, 8090, 48578, 17913, 33948, 48578, 22152, 23256, 48578, 48578, 42855, 41533, 48578, 48578, 8325, 48578, 48578, 48578, 22986, 30940, 48578, 48578, 46099, 48578, 22411, 33647, 48578, 48578, 7467, 46232, 47018, 48578, 48578, 48578, 48578, 48578, 48578, 47035, 48578, 20713, 48578, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 54023, 0, 54025, 0, 54027, 54028, 0, 54030, 0, 0, 54033, 54034, 54035, 54036, 54037, 54038, 54039, 0, 54041, 0, 0, 54044, 54045, 0, 0, 54048, 54049, 54050, 54051, 0, 54053, 54054, 54055, 0, 0, 0, 54059, 54060, 0, 0, 0, 0, 0, 54066, 54067, 54068, 54069, 54070, 54071, 54072, 54073, 0, 0, 0, 0, 0, 0, 0, 0, 54082, 54083, 54084, 0, 0, 54087, 54088, 0, 54090, 0, 54092, 54093, 54094, 54095, 54096, 54097, 54098, 0, 0, 54101, 54102, 54103, 54104, 54105, 0, 54107, 54108, 0, 0, 0, 54112, 54113, 54114, 0, 54116, 54117, 54118, 54119, 0, 54121, 0, 0, 0, 0, 0, 0, 54128, 0, 0, 0, 0, 54133, 54134, 0, 0, 0, 0, 0, 0, 54141, 54142, 54143, 0, 54145, 0, 0, 54148, 0, 0, 54151, 0, 54153, 0, 0, 54156, 0, 0, 54159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54169, 54170, 0, 0, 54173, 54174, 0, 54176, 0, 0, 0, 0, 54181, 54182, 54183, 54184, 54185, 54186, 54187, 54188, 54189, 0, 54191, 0, 0, 54194, 54195, 54196, 54197, 54198, 54199, 0, 0, 0, 54203, 54204, 54205, 54206, 54207, 54208, 54209, 54210, 54211, 0, 0, 54214, 0, 0, 54217, 0, 54219, 54220, 54221, 0, 54223, 54224, 54225, 0, 0, 54228, 0, 0, 54231, 0, 0, 54234, 54235, 0, 0, 54238, 54239, 0, 54241, 54242, 54243, 0, 0, 54246, 54247, 0, 54249, 0, 0, 54252, 54253, 0, 0, 0, 54257, 54258, 54259, 54260, 54261, 54262, 0, 54264, 0, 54266, 54267, 54268, 54269, 54270, 54271, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +596: 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 34946, 30349, 29225, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 47934, 48578, 48578, 48578, 48578, 48578, 48578, 43651, 48578, 18555, 48578, 41494, 48578, 48578, 34182, 29239, 30368, 48578, 48578, 48578, 26744, 9852, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 45097, 48578, 48578, 16395, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 12394, 48578, 28335, 48578, 46195, 48578, 18155, 48578, 48578, 48578, 48578, 48578, 22763, 48578, 13214, 36735, 48578, 48578, 16585, 48578, 48578, 31709, 34258, 20056, 7597, 28118, 30073, 20013, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 46294, 9360, 38333, 48578, 9818, 48578, 48578, 48578, 48578, 28337, 22458, 48578, 48578, 48578, 13599, 16586, 31723, 48578, 32665, 42846, 13779, 23991, 48578, 47260, 22965, 14066, 39347, 13055, 29142, 14171, 43811, 38616, 22770, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 46937, 48578, 48578, 48578, 46828, 41318, 48578, 48578, 46598, 48578, 48578, 42037, 48578, 19255, 19562, 28375, 48578, 48578, 48578, 48578, 41519, 25981, 48578, 48578, 15115, 33140, 11254, 37964, 48578, 15371, 22773, 35018, 22554, 48578, 43075, 18472, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 44433, 48578, 48578, 48578, 48578, 24424, 48578, 48578, 25190, 13669, 14190, 48578, 48578, 48578, 31239, 13609, 48578, 48578, 20940, 11571, 39632, 48578, 48578, 48578, 15834, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 12646, 48578, 48578, 48578, 17836, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48179, 48578, 48578, 30786, 37376, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 54275, 54276, 54277, 54278, 54279, 54280, 54281, 0, 54283, 54284, 54285, 54286, 54287, 54288, 0, 54290, 0, 54292, 0, 54294, 54295, 0, 0, 0, 54299, 54300, 54301, 0, 0, 54304, 54305, 54306, 54307, 54308, 54309, 54310, 54311, 54312, 0, 54314, 54315, 0, 54317, 54318, 54319, 54320, 54321, 54322, 54323, 54324, 54325, 54326, 54327, 54328, 0, 54330, 0, 54332, 0, 54334, 0, 54336, 54337, 54338, 54339, 54340, 0, 54342, 0, 0, 54345, 54346, 0, 54348, 54349, 0, 0, 0, 0, 0, 0, 0, 54357, 54358, 54359, 54360, 54361, 54362, 54363, 54364, 54365, 54366, 54367, 54368, 0, 0, 0, 54372, 0, 54374, 54375, 54376, 54377, 0, 0, 54380, 54381, 54382, 0, 0, 0, 54386, 0, 0, 0, 0, 54391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54402, 54403, 54404, 54405, 54406, 54407, 54408, 54409, 54410, 54411, 54412, 54413, 54414, 54415, 54416, 54417, 54418, 0, 54420, 54421, 54422, 0, 0, 54425, 54426, 0, 54428, 54429, 0, 54431, 0, 0, 0, 54435, 54436, 54437, 54438, 0, 0, 54441, 54442, 0, 0, 0, 0, 54447, 0, 0, 0, 0, 54452, 0, 0, 54455, 54456, 54457, 54458, 54459, 54460, 54461, 0, 54463, 54464, 54465, 54466, 0, 54468, 54469, 0, 0, 0, 54473, 54474, 54475, 0, 0, 54478, 54479, 0, 0, 0, 54483, 54484, 54485, 0, 54487, 54488, 54489, 54490, 54491, 54492, 54493, 54494, 54495, 54496, 54497, 54498, 54499, 54500, 54501, 54502, 54503, 54504, 54505, 54506, 54507, 0, 54509, 54510, 54511, 0, 54513, 54514, 54515, 54516, 54517, 54518, 54519, 54520, 54521, 54522, 0, 54524, 54525, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +597: 1, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 17839, 29842, 16115, 48578, 28803, 48578, 48578, 22807, 48578, 48578, 46849, 48578, 48578, 48578, 48578, 48578, 48578, 39995, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 33816, 44315, 20485, 48578, 48578, 48578, 48578, 48578, 30700, 10452, 33190, 48578, 35628, 31042, 19044, 48578, 33593, 14230, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 31810, 48578, 22715, 48578, 48578, 38270, 48030, 19615, 48578, 48578, 48578, 48578, 12227, 48578, 12137, 48578, 48578, 48578, 25810, 22527, 23390, 12830, 31397, 48578, 27921, 48578, 48578, 17083, 17846, 10251, 17764, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 9618, 46246, 48578, 48578, 16967, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 40790, 29637, 22202, 48578, 48578, 15688, 34947, 48578, 35495, 32359, 48578, 38492, 41678, 29675, 40003, 29315, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 23462, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 8308, 46432, 19655, 48578, 48578, 21177, 24720, 22750, 48578, 47307, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 45485, 48578, 23918, 30470, 9063, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 43505, 30040, 48578, 48578, 48578, 48578, 35204, 26211, 48578, 12849, 13640, 24987, 47946, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 10189, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 10478, 35795, 48578, 48578, 48578, 48578, 48578, 32372, 12670, 48578, 48578, 32492, 48578, 30267, 48578, 48578, 48578, 48578, 48578, 48578, 47183, 40080, 48578, 48578, 20507, 32113, 24034, 9414, 32306, 48578, 48578, 48578, 48578, 48578, 48578, 39837, 24078, 48578, 48578, 48578, 23714, 48578, 48578, 48578, 48578, 23434, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 54531, 0, 54533, 54534, 0, 54536, 54537, 0, 54539, 54540, 54541, 54542, 54543, 54544, 0, 54546, 54547, 54548, 54549, 54550, 54551, 54552, 54553, 54554, 54555, 54556, 54557, 54558, 54559, 54560, 0, 0, 0, 54564, 54565, 54566, 54567, 54568, 0, 0, 0, 54572, 0, 0, 0, 54576, 0, 0, 54579, 54580, 54581, 54582, 54583, 54584, 54585, 54586, 0, 54588, 0, 54590, 54591, 0, 0, 0, 54595, 54596, 54597, 54598, 0, 54600, 0, 54602, 54603, 54604, 0, 0, 0, 0, 0, 54610, 0, 54612, 54613, 0, 0, 0, 0, 54618, 54619, 54620, 54621, 54622, 54623, 54624, 54625, 0, 0, 54628, 54629, 0, 54631, 54632, 54633, 54634, 54635, 54636, 54637, 54638, 54639, 0, 0, 0, 54643, 54644, 0, 0, 54647, 0, 0, 54650, 0, 0, 0, 0, 0, 54656, 54657, 54658, 54659, 54660, 54661, 54662, 54663, 54664, 54665, 54666, 54667, 54668, 0, 54670, 54671, 54672, 54673, 54674, 54675, 54676, 54677, 54678, 0, 0, 0, 54682, 54683, 0, 0, 0, 54687, 0, 54689, 54690, 54691, 54692, 54693, 54694, 54695, 0, 54697, 0, 0, 0, 54701, 54702, 54703, 54704, 54705, 54706, 54707, 54708, 0, 0, 54711, 54712, 54713, 54714, 0, 0, 54717, 0, 0, 0, 0, 54722, 54723, 54724, 54725, 54726, 54727, 54728, 54729, 0, 54731, 54732, 54733, 54734, 54735, 54736, 54737, 0, 0, 54740, 54741, 54742, 54743, 54744, 0, 0, 54747, 54748, 0, 54750, 0, 54752, 54753, 54754, 54755, 54756, 54757, 0, 0, 54760, 54761, 0, 0, 0, 0, 0, 54767, 54768, 54769, 54770, 54771, 54772, 0, 0, 54775, 54776, 54777, 0, 54779, 54780, 54781, 54782, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +598: 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48578, 23435, 48578, 48578, 44734, 48578, 48578, 48578, 48578, 48578, 20752, 31499, 19348, 48578, 48578, 15669, 48578, 48578, 42933, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 42960, 46639, 48578, 48578, 8832, 34010, 21572, 48578, 48578, 48578, 48578, 17562, 15202, 48578, 21639, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48533, 42687, 48578, 48578, 48578, 48578, 39600, 42688, 48578, 35003, 48578, 11466, 48578, 48578, 27868, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 45848, 48578, 41314, 48578, 48578, 32817, 48578, 19245, 48578, 48578, 48578, 33690, 48578, 48578, 48578, 34459, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 44162, 44528, 48578, 48578, 22320, 48578, 48578, 48578, 48578, 48578, 48578, 48001, 25992, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 10791, 23306, 48578, 48578, 48578, 48578, 47825, 48578, 48578, 48578, 48578, 48578, 18014, 48578, 48578, 40834, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48174, 43787, 48578, 48578, 47414, 48578, 48578, 25589, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 29073, 48578, 48578, 48578, 48578, 48578, 48578, 8548, 48578, 10881, 48578, 48372, 15025, 26031, 30377, 48578, 48578, 48578, 48578, 48578, 47693, 48578, 46240, 34142, 44449, 26032, 24841, 48578, 48578, 48578, 22197, 25002, 8268, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 54784, 0, 54786, 54787, 0, 54789, 54790, 54791, 54792, 54793, 0, 0, 0, 54797, 54798, 0, 54800, 54801, 0, 54803, 54804, 54805, 54806, 54807, 54808, 54809, 54810, 54811, 54812, 54813, 54814, 54815, 0, 0, 54818, 54819, 0, 0, 0, 54823, 54824, 54825, 54826, 0, 0, 54829, 0, 54831, 54832, 54833, 54834, 54835, 54836, 54837, 54838, 54839, 54840, 54841, 54842, 54843, 54844, 54845, 54846, 54847, 0, 0, 54850, 54851, 54852, 54853, 0, 0, 54856, 0, 54858, 0, 54860, 54861, 0, 54863, 54864, 54865, 54866, 54867, 54868, 54869, 54870, 54871, 54872, 54873, 54874, 54875, 54876, 54877, 54878, 54879, 54880, 0, 54882, 0, 54884, 54885, 0, 54887, 0, 54889, 54890, 54891, 0, 54893, 54894, 54895, 0, 54897, 54898, 54899, 54900, 54901, 54902, 54903, 54904, 54905, 54906, 54907, 54908, 54909, 0, 0, 54912, 54913, 0, 54915, 54916, 54917, 54918, 54919, 54920, 0, 0, 54923, 54924, 54925, 54926, 54927, 54928, 54929, 54930, 54931, 54932, 54933, 54934, 54935, 54936, 54937, 0, 0, 54940, 54941, 54942, 54943, 0, 54945, 54946, 54947, 54948, 54949, 0, 54951, 54952, 0, 54954, 54955, 54956, 54957, 54958, 54959, 54960, 54961, 54962, 54963, 54964, 54965, 54966, 54967, 54968, 54969, 54970, 54971, 54972, 54973, 0, 0, 54976, 54977, 0, 54979, 54980, 0, 54982, 54983, 54984, 54985, 54986, 54987, 54988, 54989, 54990, 54991, 54992, 0, 54994, 54995, 54996, 54997, 54998, 54999, 0, 55001, 0, 55003, 0, 0, 0, 0, 55008, 55009, 55010, 55011, 55012, 0, 55014, 0, 0, 0, 0, 0, 55020, 55021, 55022, 0, 0, 0, 55026, 55027, 55028, 55029, 55030, 55031, 55032, 55033, 55034, 55035, 55036, 55037, 55038, 55039, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +599: 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 1, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 48578, 48578, 48578, 43218, 16614, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 7583, 48578, 48578, 16917, 27715, 48578, 41815, 23614, 48578, 48578, 9237, 48578, 48578, 45363, 44129, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 43279, 28557, 48578, 48578, 48578, 48578, 48578, 28560, 17092, 22364, 48578, 34164, 48578, 39572, 48578, 30994, 32373, 23224, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 33775, 48578, 19264, 48578, 37677, 48578, 48578, 48578, 48578, 48578, 14797, 14804, 48578, 44484, 48578, 48578, 48578, 46633, 16549, 48578, 20885, 26745, 17589, 48578, 44085, 48578, 48578, 48578, 48578, 48578, 48578, 13687, 34896, 48578, 24358, 48578, 48578, 20892, 28963, 7715, 44239, 48578, 48578, 48578, 48578, 48578, 46649, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 17599, 22601, 48578, 48578, 48578, 48578, 13691, 19959, 48578, 10365, 48578, 11467, 17611, 45814, 48578, 48578, 48578, 48578, 27040, 48578, 48578, 17612, 48098, 47457, 48578, 48578, 37355, 48578, 48578, 48578, 48578, 48578, 48495, 48578, 32821, 14027, 20545, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 17796, 48578, 8250, 27875, 48578, 48578, 48578, 48578, 48318, 48578, 48578, 8861, 48578, 22944, 20020, 48578, 48578, 48578, 48578, 47840, 48578, 40650, 48578, 48578, 48578, 48578, 48578, 48578, 17635, 48578, 31261, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 14722, 34030, 48578, 48578, 48578, 47787, 23050, 45580, 39354, 48578, 8502, 43110, 48578, 10204, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 26918, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 37631, 48578, 48578, 48578, 48578, 48578, 48578, 38433, 22909, 38340, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 55040, 55041, 55042, 0, 0, 55045, 55046, 55047, 55048, 55049, 55050, 55051, 0, 55053, 55054, 0, 0, 55057, 0, 0, 55060, 55061, 0, 55063, 55064, 0, 0, 55067, 55068, 55069, 55070, 55071, 55072, 55073, 55074, 55075, 55076, 0, 0, 55079, 55080, 55081, 55082, 55083, 0, 0, 0, 55087, 0, 55089, 0, 55091, 0, 0, 0, 55095, 55096, 55097, 55098, 55099, 55100, 55101, 55102, 55103, 0, 55105, 0, 55107, 0, 55109, 55110, 55111, 55112, 55113, 0, 0, 55116, 0, 55118, 55119, 55120, 0, 0, 55123, 0, 0, 0, 55127, 0, 55129, 55130, 55131, 55132, 55133, 55134, 0, 0, 55137, 0, 55139, 55140, 0, 0, 0, 0, 55145, 55146, 55147, 55148, 55149, 0, 55151, 55152, 55153, 55154, 55155, 55156, 55157, 55158, 55159, 0, 0, 55162, 55163, 55164, 55165, 0, 0, 55168, 0, 55170, 0, 0, 0, 55174, 55175, 55176, 55177, 0, 55179, 55180, 0, 0, 0, 55184, 55185, 0, 55187, 55188, 55189, 55190, 55191, 0, 55193, 0, 0, 0, 55197, 55198, 55199, 55200, 55201, 55202, 55203, 55204, 55205, 55206, 0, 55208, 0, 0, 55211, 55212, 55213, 55214, 0, 55216, 55217, 0, 55219, 0, 0, 55222, 55223, 55224, 55225, 0, 55227, 0, 55229, 55230, 55231, 55232, 55233, 55234, 0, 55236, 0, 55238, 55239, 55240, 55241, 55242, 55243, 55244, 0, 0, 55247, 55248, 55249, 0, 0, 0, 0, 55254, 0, 0, 55257, 0, 55259, 55260, 55261, 55262, 55263, 55264, 55265, 55266, 55267, 55268, 55269, 55270, 55271, 55272, 55273, 0, 55275, 55276, 55277, 55278, 55279, 55280, 55281, 55282, 55283, 55284, 55285, 0, 55287, 55288, 55289, 55290, 55291, 55292, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +600: 1, 1, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 40484, 22626, 48578, 21527, 13731, 18682, 48578, 48578, 47019, 9678, 32785, 19600, 48578, 42482, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 21308, 42128, 48578, 48578, 48578, 48578, 48225, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 9527, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 34936, 24463, 16443, 10208, 48578, 14728, 25499, 48578, 20963, 45074, 48578, 48578, 47037, 48578, 48578, 11067, 8870, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 19428, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 26370, 20172, 48578, 11392, 34775, 48578, 26199, 22347, 20789, 48578, 36467, 45665, 48578, 48578, 43199, 48578, 11771, 28439, 19988, 48578, 48578, 48578, 48578, 48578, 19862, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 7342, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 20286, 48578, 48578, 8236, 48578, 14516, 35497, 48498, 13082, 15813, 15847, 23830, 48578, 47930, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 18367, 48578, 48578, 37189, 48578, 48578, 48578, 8583, 21765, 48578, 48578, 48578, 48578, 48578, 48578, 18440, 48578, 48578, 48578, 10611, 48578, 48578, 48578, 23030, 12511, 15996, 40171, 48578, 21000, 48578, 9479, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48343, 48578, 30355, 48578, 48578, 34601, 9328, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 28917, 41822, 47377, 48578, 27164, 48578, 8696, 48578, 39830, 48578, 48578, 48578, 48578, 26088, 24227, 48578, 48578, 48578, 19902, 48578, 27615, 24069, 48578, 47118, 43974, 8697, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 28091, 32465, 32466, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 55298, 0, 0, 0, 55302, 55303, 0, 0, 0, 0, 55308, 0, 55310, 55311, 55312, 55313, 55314, 55315, 55316, 55317, 55318, 55319, 55320, 55321, 55322, 0, 0, 55325, 55326, 55327, 55328, 0, 55330, 55331, 55332, 55333, 55334, 55335, 55336, 0, 55338, 55339, 55340, 55341, 55342, 55343, 55344, 0, 0, 0, 0, 55349, 0, 0, 55352, 0, 0, 55355, 55356, 0, 55358, 55359, 0, 0, 55362, 55363, 55364, 55365, 55366, 55367, 55368, 55369, 55370, 55371, 55372, 55373, 55374, 55375, 55376, 55377, 0, 55379, 55380, 55381, 55382, 55383, 55384, 55385, 55386, 55387, 0, 0, 55390, 0, 0, 55393, 0, 0, 0, 55397, 0, 0, 55400, 55401, 0, 55403, 0, 0, 0, 55407, 55408, 55409, 55410, 55411, 0, 55413, 55414, 55415, 55416, 55417, 55418, 55419, 55420, 0, 55422, 55423, 55424, 55425, 55426, 55427, 55428, 55429, 55430, 0, 55432, 55433, 0, 55435, 0, 0, 0, 0, 0, 0, 0, 55443, 0, 55445, 55446, 55447, 55448, 55449, 55450, 55451, 55452, 55453, 55454, 0, 55456, 55457, 0, 55459, 55460, 55461, 0, 0, 55464, 55465, 55466, 55467, 55468, 55469, 0, 55471, 55472, 55473, 0, 55475, 55476, 55477, 0, 0, 0, 0, 55482, 0, 55484, 0, 55486, 55487, 55488, 55489, 55490, 55491, 55492, 55493, 0, 55495, 0, 55497, 55498, 0, 0, 55501, 55502, 55503, 55504, 55505, 55506, 55507, 55508, 55509, 55510, 0, 0, 0, 55514, 0, 55516, 0, 55518, 0, 55520, 55521, 55522, 55523, 0, 0, 55526, 55527, 55528, 0, 55530, 0, 0, 55533, 0, 0, 0, 55537, 55538, 55539, 55540, 55541, 55542, 55543, 0, 0, 0, 55547, 55548, 55549, 55550, 55551, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +601: 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 1, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 48578, 48578, 28734, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32260, 46275, 48578, 48578, 48578, 48578, 24077, 48578, 48578, 48578, 48578, 48578, 48578, 12538, 22253, 48578, 48578, 48578, 25403, 48578, 25421, 41717, 48578, 48578, 48578, 42275, 46441, 30405, 7308, 48578, 29052, 26779, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 22456, 48578, 21508, 41742, 27522, 48578, 43394, 37578, 42329, 37451, 29763, 35451, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 22819, 48578, 48578, 17897, 48578, 27763, 25280, 43017, 33871, 48578, 48554, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 37001, 48578, 43934, 48578, 37496, 16845, 17969, 48578, 48578, 48578, 34342, 48578, 40616, 48578, 7240, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 10565, 48578, 22771, 43040, 42115, 36763, 13543, 9791, 25584, 48578, 48578, 48578, 31899, 41096, 33886, 23038, 36934, 48578, 31083, 48578, 11123, 48578, 48578, 48578, 48578, 38229, 48578, 25739, 7434, 48578, 48578, 48578, 48578, 48578, 48578, 22467, 48578, 42296, 48578, 15253, 48578, 48578, 48578, 8296, 23662, 30873, 13064, 48578, 48578, 20772, 16781, 48578, 40619, 48578, 48578, 22708, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 39633, 38402, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 16207, 48578, 48578, 48578, 29218, 22627, 48578, 48578, 48578, 22910, 48578, 48578, 48578, 48578, 48578, 36545, 16317, 26539, 48578, 25591, 48578, 48578, 48578, 38089, 38236, 48578, 48578, 48578, 48578, 48578, 48578, 16227, 48578, 37078, 28903, 48578, 48578, 27414, 48578, 48578, 48578, 23750, 31093, 26648, 46247, 48578, 18495, 43836, 21249, 48578, 27057, 48578, 48578, 15307, 48578, 48578, 48578, 32070, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 55552, 55553, 0, 55555, 55556, 55557, 55558, 55559, 55560, 55561, 0, 0, 55564, 55565, 55566, 55567, 0, 55569, 55570, 55571, 55572, 55573, 55574, 0, 0, 55577, 55578, 55579, 0, 55581, 0, 0, 55584, 55585, 55586, 0, 0, 0, 0, 55591, 0, 0, 55594, 55595, 55596, 55597, 55598, 55599, 55600, 0, 55602, 0, 0, 0, 55606, 0, 0, 0, 0, 0, 0, 55613, 55614, 55615, 55616, 55617, 55618, 55619, 55620, 0, 55622, 55623, 0, 55625, 0, 0, 0, 0, 55630, 0, 55632, 55633, 55634, 55635, 55636, 55637, 55638, 55639, 55640, 55641, 55642, 0, 55644, 0, 55646, 0, 0, 0, 55650, 55651, 55652, 0, 55654, 0, 55656, 0, 55658, 55659, 55660, 55661, 55662, 55663, 55664, 0, 55666, 0, 0, 0, 0, 0, 0, 0, 55674, 55675, 55676, 0, 0, 0, 0, 0, 55682, 0, 55684, 0, 55686, 55687, 55688, 55689, 0, 55691, 0, 0, 55694, 55695, 55696, 55697, 55698, 55699, 0, 55701, 0, 55703, 0, 55705, 55706, 55707, 0, 0, 0, 0, 55712, 55713, 0, 0, 55716, 0, 55718, 55719, 0, 55721, 55722, 55723, 55724, 55725, 55726, 55727, 55728, 55729, 55730, 55731, 55732, 55733, 0, 0, 55736, 55737, 55738, 55739, 55740, 55741, 55742, 55743, 55744, 55745, 0, 55747, 55748, 55749, 0, 0, 55752, 55753, 55754, 0, 55756, 55757, 55758, 55759, 55760, 0, 0, 0, 55764, 0, 55766, 55767, 55768, 0, 0, 55771, 55772, 55773, 55774, 55775, 55776, 0, 55778, 0, 0, 55781, 55782, 0, 55784, 55785, 55786, 0, 0, 0, 0, 55791, 0, 0, 0, 55795, 0, 55797, 55798, 0, 55800, 55801, 55802, 0, 55804, 55805, 55806, 55807, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +602: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 25596, 15499, 12472, 48578, 16211, 48578, 12037, 48578, 48578, 40549, 48578, 48578, 48578, 48578, 48578, 48578, 37023, 34474, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 31783, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32724, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 24580, 48578, 48578, 48578, 19489, 37443, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 36918, 48578, 48578, 48578, 48578, 48578, 35976, 48578, 25422, 48578, 42934, 32908, 48578, 29263, 48578, 48578, 48578, 9410, 48578, 48578, 48578, 44974, 32317, 47566, 17156, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 14422, 17159, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 9302, 30087, 25057, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 23232, 15266, 36582, 38371, 48578, 21673, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 46371, 48578, 15286, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 25638, 48578, 48578, 48578, 39124, 36546, 48578, 48578, 48578, 19851, 48578, 48578, 48578, 42358, 48578, 11905, 48578, 48578, 29430, 31451, 48578, 48578, 48578, 48578, 48578, 25650, 19716, 48578, 48578, 48578, 48578, 48578, 36910, 42796, 48578, 10127, 48578, 48578, 48578, 48578, 48578, 16181, 48578, 48578, 13477, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 39735, 48578, 48578, 36796, 48578, 47639, 42830, 42987, 48092, 30679, 48578, 48578, 9816, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 13895, 48578, 48578, 10927, 25967, 13899, 48578, 14619, 34333, 36436, 19370, 31801, 34799, 10406, 48578, 48578, 18826, 34423, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 55808, 55809, 55810, 55811, 55812, 55813, 55814, 55815, 55816, 55817, 55818, 55819, 0, 0, 0, 55823, 0, 55825, 0, 55827, 55828, 0, 55830, 55831, 55832, 55833, 55834, 55835, 0, 0, 55838, 55839, 55840, 55841, 55842, 55843, 55844, 55845, 55846, 55847, 55848, 55849, 0, 55851, 55852, 55853, 55854, 55855, 55856, 55857, 55858, 0, 55860, 55861, 55862, 55863, 55864, 55865, 55866, 0, 55868, 55869, 55870, 0, 0, 55873, 55874, 55875, 55876, 55877, 55878, 55879, 55880, 55881, 55882, 55883, 0, 55885, 55886, 55887, 55888, 55889, 0, 55891, 0, 55893, 0, 0, 55896, 0, 55898, 55899, 55900, 0, 55902, 55903, 55904, 0, 0, 0, 0, 55909, 55910, 55911, 55912, 55913, 55914, 55915, 55916, 55917, 55918, 55919, 55920, 0, 0, 55923, 55924, 55925, 55926, 55927, 55928, 55929, 55930, 55931, 55932, 55933, 55934, 55935, 0, 0, 0, 55939, 55940, 55941, 55942, 55943, 55944, 55945, 0, 0, 0, 0, 55950, 0, 55952, 55953, 55954, 55955, 55956, 55957, 55958, 55959, 0, 55961, 0, 55963, 55964, 55965, 55966, 55967, 55968, 55969, 0, 55971, 55972, 55973, 0, 0, 55976, 55977, 55978, 0, 55980, 55981, 55982, 0, 55984, 0, 55986, 55987, 0, 0, 55990, 55991, 55992, 55993, 55994, 0, 0, 55997, 55998, 55999, 56000, 56001, 0, 0, 56004, 0, 56006, 56007, 56008, 56009, 56010, 0, 56012, 56013, 0, 56015, 56016, 56017, 56018, 56019, 56020, 56021, 0, 56023, 56024, 0, 56026, 0, 0, 0, 0, 0, 56032, 56033, 0, 56035, 56036, 56037, 56038, 56039, 56040, 56041, 56042, 56043, 0, 56045, 56046, 0, 0, 0, 56050, 0, 0, 0, 0, 0, 0, 0, 56058, 56059, 0, 0, 56062, 56063, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +603: 1, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 1, 1, 2, 1, 2, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 45104, 48578, 48578, 48578, 48578, 48578, 25624, 48578, 26677, 16243, 48578, 48578, 48578, 39348, 27876, 48578, 33945, 48578, 30177, 42337, 31969, 32451, 48578, 48578, 48578, 21880, 48578, 48578, 43472, 7761, 28777, 48578, 11015, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32672, 11360, 28789, 24425, 20481, 22572, 9667, 11002, 47626, 48106, 42042, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 38230, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 19802, 19803, 48578, 48578, 48578, 26188, 31906, 13908, 7983, 9907, 48578, 9174, 48578, 10671, 46301, 26806, 48578, 19814, 27573, 44918, 48578, 38477, 46994, 30090, 48578, 48578, 10935, 48578, 48578, 48578, 48578, 48578, 27272, 14705, 12079, 27116, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 43428, 26791, 13031, 13121, 48578, 31038, 48578, 48578, 17437, 46752, 21747, 28690, 48578, 48578, 48578, 27275, 16435, 48578, 48578, 48578, 48578, 48578, 47627, 28804, 47904, 48578, 42483, 11836, 48578, 40767, 48578, 39113, 48578, 48578, 9100, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 9528, 48578, 48578, 48578, 48578, 41791, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 21170, 48578, 48578, 21820, 12569, 13713, 48578, 42408, 21416, 22716, 26473, 37992, 37020, 44048, 29303, 48578, 29799, 13366, 48578, 37993, 10344, 20401, 48578, 34937, 47908, 35208, 48578, 32925, 48578, 44322, 48578, 48578, 48578, 48578, 14231, 48578, 48578, 22931, 48578, 47601, 48578, 48578, 48578, 48578, 48578, 39256, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 56065, 56066, 56067, 56068, 56069, 0, 56071, 0, 0, 56074, 56075, 56076, 0, 0, 56079, 0, 56081, 0, 0, 0, 0, 56086, 56087, 56088, 0, 56090, 56091, 0, 0, 0, 56095, 0, 56097, 56098, 56099, 56100, 56101, 56102, 56103, 56104, 56105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56117, 56118, 56119, 56120, 56121, 56122, 56123, 0, 56125, 56126, 56127, 56128, 56129, 56130, 56131, 56132, 56133, 56134, 56135, 56136, 56137, 56138, 0, 0, 56141, 56142, 56143, 0, 0, 0, 0, 0, 56149, 0, 56151, 0, 0, 0, 56155, 0, 0, 0, 56159, 0, 0, 0, 56163, 56164, 0, 56166, 56167, 56168, 56169, 56170, 0, 0, 0, 0, 56175, 56176, 56177, 56178, 56179, 56180, 56181, 56182, 56183, 56184, 56185, 56186, 56187, 56188, 56189, 56190, 56191, 56192, 56193, 56194, 56195, 56196, 56197, 56198, 56199, 56200, 56201, 56202, 56203, 56204, 0, 0, 0, 0, 56209, 0, 56211, 56212, 0, 0, 0, 0, 56217, 56218, 56219, 0, 0, 56222, 56223, 56224, 56225, 56226, 0, 0, 0, 56230, 0, 0, 56233, 0, 56235, 0, 56237, 56238, 0, 56240, 56241, 56242, 56243, 56244, 56245, 56246, 56247, 56248, 56249, 56250, 56251, 56252, 56253, 0, 56255, 56256, 56257, 56258, 0, 56260, 56261, 56262, 56263, 56264, 56265, 56266, 56267, 56268, 56269, 56270, 56271, 56272, 0, 56274, 56275, 0, 0, 0, 56279, 0, 0, 0, 0, 0, 0, 0, 0, 56288, 0, 0, 56291, 0, 0, 0, 56295, 0, 0, 0, 56299, 0, 56301, 0, 56303, 56304, 56305, 56306, 0, 56308, 56309, 0, 56311, 0, 56313, 56314, 56315, 56316, 56317, 0, 56319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +604: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 2, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 15308, 36226, 38864, 11025, 15687, 26121, 9686, 33603, 25508, 48578, 39133, 19446, 42868, 35947, 48578, 18225, 48578, 48578, 12083, 16019, 48578, 34398, 33220, 17981, 39661, 48578, 48578, 39260, 48578, 48578, 48578, 48578, 28084, 35632, 48578, 45833, 48578, 15137, 33303, 29056, 43201, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 31546, 31697, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 19078, 34777, 12410, 29192, 27929, 30965, 10898, 29281, 22048, 48578, 48578, 10253, 25081, 8995, 22874, 12473, 11081, 36836, 12474, 26689, 18369, 24938, 39485, 48578, 9622, 26063, 11377, 38493, 26653, 48578, 48578, 48578, 48115, 48578, 13718, 48578, 48578, 34786, 15500, 21930, 47373, 48578, 13177, 37779, 11396, 30966, 37228, 48578, 24712, 8799, 24196, 48578, 48578, 24197, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 8598, 15509, 12042, 13590, 48578, 45364, 25651, 41350, 31778, 19470, 31098, 48578, 20303, 33710, 14052, 34549, 9393, 40796, 13436, 48578, 32428, 48578, 42065, 32957, 25230, 20304, 12970, 14884, 13086, 48464, 48578, 28928, 48578, 48578, 48578, 48578, 35383, 36597, 7476, 48578, 48578, 9689, 13371, 33915, 13720, 36396, 20730, 48465, 46057, 20305, 12482, 12415, 35106, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 56320, 56321, 56322, 56323, 56324, 56325, 56326, 56327, 56328, 56329, 56330, 56331, 56332, 56333, 56334, 56335, 56336, 56337, 56338, 56339, 56340, 56341, 56342, 56343, 56344, 56345, 56346, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56356, 0, 0, 0, 0, 56361, 0, 56363, 56364, 0, 0, 56367, 0, 0, 0, 0, 56372, 56373, 0, 56375, 56376, 56377, 56378, 0, 0, 56381, 0, 56383, 0, 0, 0, 0, 56388, 56389, 56390, 56391, 56392, 56393, 56394, 56395, 56396, 56397, 56398, 56399, 56400, 56401, 56402, 56403, 56404, 56405, 56406, 56407, 56408, 56409, 56410, 56411, 56412, 56413, 56414, 56415, 56416, 56417, 56418, 56419, 56420, 56421, 56422, 0, 0, 56425, 56426, 56427, 56428, 56429, 56430, 56431, 56432, 56433, 56434, 56435, 56436, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56446, 56447, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56460, 0, 0, 0, 0, 0, 56466, 56467, 56468, 0, 56470, 0, 56472, 56473, 0, 0, 0, 0, 56478, 0, 0, 0, 0, 0, 56484, 0, 0, 0, 56488, 56489, 0, 56491, 56492, 56493, 56494, 56495, 56496, 56497, 56498, 56499, 56500, 56501, 56502, 56503, 56504, 56505, 56506, 56507, 56508, 56509, 56510, 56511, 56512, 56513, 56514, 56515, 56516, 56517, 0, 0, 0, 0, 56522, 0, 0, 0, 0, 0, 0, 56529, 0, 0, 0, 0, 0, 0, 0, 56537, 0, 56539, 0, 0, 0, 0, 0, 0, 0, 0, 56548, 0, 56550, 56551, 56552, 56553, 0, 0, 0, 56557, 56558, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56571, 56572, 56573, 56574, 56575, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +605: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 45940, 36780, 47095, 48578, 48578, 44065, 29285, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 24317, 48578, 48578, 31056, 48578, 35511, 21827, 7367, 15998, 21937, 37276, 8608, 30882, 9248, 19095, 48578, 20436, 48578, 48578, 16261, 35385, 48578, 48578, 48578, 48578, 11660, 31252, 48578, 48578, 48578, 41691, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 13088, 48578, 48578, 27612, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 30265, 25444, 21009, 47615, 16463, 48578, 48578, 13738, 46170, 48578, 33732, 31581, 27306, 48578, 30159, 11822, 11029, 48578, 48578, 33084, 48578, 48578, 48578, 48578, 48578, 48578, 36598, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 25542, 26125, 25944, 48284, 48578, 48578, 48578, 26215, 18633, 48578, 36667, 37199, 31247, 25238, 8103, 29467, 45892, 48578, 24581, 48578, 48578, 48578, 36411, 18262, 48578, 48578, 48578, 48578, 48578, 25105, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 18965, 32022, 41109, 48578, 21434, 13284, 35433, 48578, 38136, 48578, 41707, 41603, 7888, 48578, 20535, 28561, 24596, 18265, 30825, 47184, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 8627, 48578, 48578, 44385, 13285, 25243, 24611, 47954, 19921, 21703, 48578, 15000, 48578, 44712, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 25115, 45266, 31064, 20853, 16627, 48578, 47958, 48578, 48578, 15531, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 33336, 48578, 48578, 11923, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 56576, 56577, 56578, 56579, 56580, 56581, 56582, 56583, 56584, 56585, 56586, 56587, 56588, 56589, 56590, 56591, 0, 0, 0, 56595, 56596, 0, 0, 56599, 56600, 56601, 56602, 56603, 56604, 56605, 56606, 56607, 56608, 0, 56610, 56611, 0, 56613, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56624, 0, 56626, 56627, 0, 0, 56630, 56631, 56632, 56633, 0, 0, 56636, 56637, 56638, 0, 56640, 56641, 56642, 56643, 56644, 56645, 56646, 56647, 56648, 56649, 56650, 56651, 56652, 56653, 56654, 0, 56656, 56657, 0, 56659, 56660, 56661, 56662, 56663, 56664, 56665, 56666, 56667, 0, 0, 0, 0, 0, 56673, 56674, 0, 0, 56677, 0, 0, 0, 56681, 0, 0, 0, 56685, 56686, 0, 56688, 56689, 56690, 56691, 56692, 56693, 0, 56695, 56696, 56697, 56698, 56699, 56700, 56701, 56702, 56703, 56704, 56705, 56706, 56707, 56708, 0, 0, 0, 0, 56713, 56714, 56715, 0, 0, 56718, 0, 0, 0, 0, 0, 0, 0, 56726, 0, 56728, 56729, 56730, 0, 0, 56733, 56734, 56735, 56736, 56737, 0, 56739, 56740, 56741, 56742, 56743, 56744, 56745, 56746, 56747, 56748, 56749, 56750, 56751, 56752, 56753, 56754, 56755, 56756, 0, 0, 0, 56760, 0, 0, 0, 56764, 0, 56766, 0, 0, 0, 56770, 0, 0, 0, 0, 0, 0, 56777, 56778, 56779, 56780, 56781, 56782, 56783, 56784, 0, 56786, 56787, 0, 0, 0, 0, 0, 0, 0, 56795, 0, 56797, 0, 56799, 56800, 56801, 56802, 56803, 56804, 56805, 56806, 56807, 0, 0, 0, 0, 0, 56813, 0, 56815, 56816, 0, 56818, 56819, 56820, 56821, 56822, 56823, 56824, 0, 56826, 56827, 0, 56829, 56830, 56831, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +606: 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 48578, 48578, 48578, 18966, 48578, 48578, 48578, 48578, 12585, 25702, 43311, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 33043, 45059, 48578, 12858, 48578, 48578, 48578, 48578, 48578, 48578, 15701, 45328, 33636, 44732, 9275, 48578, 13348, 14486, 48578, 44494, 48578, 33864, 48578, 48578, 48578, 48578, 48578, 16138, 48578, 27586, 37256, 48578, 48578, 25045, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 45643, 29500, 48578, 27261, 48578, 27736, 14583, 48578, 28152, 35014, 42718, 19963, 47570, 48578, 48578, 48578, 48578, 48578, 7815, 44529, 48578, 30217, 48578, 48578, 48578, 18537, 9544, 20597, 48578, 48578, 48578, 35924, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 46973, 48578, 27347, 22573, 48578, 48578, 48578, 48578, 42154, 13820, 32280, 9375, 11262, 31354, 25484, 9175, 48578, 22510, 14915, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 12647, 48578, 48578, 48578, 13548, 15961, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 25333, 38967, 48578, 28602, 47274, 47275, 48578, 48578, 48578, 48578, 11021, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 28627, 19419, 48578, 31990, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 22390, 48578, 48578, 39652, 48578, 17668, 48578, 25151, 48578, 48031, 48578, 48578, 48578, 29221, 11897, 48578, 48578, 48578, 48578, 9805, 48578, 48578, 48578, 48578, 48578, 47227, 9309, 48578, 48578, 48578, 48578, 48578, 11026, 39134, 33070, 39473, 33304, 27529, 48578, 14513, 46699, 48578, 12032, 48578, 48578, 48578, 48578, 48578, 39305, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 29160, 24198, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 56832, 56833, 56834, 0, 56836, 56837, 56838, 56839, 0, 0, 0, 56843, 56844, 56845, 56846, 56847, 56848, 56849, 56850, 56851, 56852, 56853, 56854, 0, 0, 56857, 0, 56859, 56860, 56861, 56862, 56863, 56864, 0, 0, 0, 0, 0, 56870, 0, 0, 56873, 0, 56875, 0, 56877, 56878, 56879, 56880, 56881, 0, 56883, 0, 0, 56886, 56887, 0, 56889, 56890, 56891, 56892, 56893, 56894, 56895, 56896, 0, 0, 56899, 0, 56901, 0, 0, 56904, 0, 0, 0, 0, 0, 56910, 56911, 56912, 56913, 56914, 0, 0, 56917, 0, 56919, 56920, 56921, 0, 0, 0, 56925, 56926, 56927, 0, 56929, 56930, 56931, 56932, 56933, 56934, 56935, 56936, 0, 56938, 0, 0, 56941, 56942, 56943, 56944, 0, 0, 0, 0, 0, 0, 0, 0, 56953, 0, 0, 56956, 56957, 56958, 56959, 56960, 56961, 56962, 56963, 56964, 0, 56966, 56967, 56968, 0, 0, 56971, 56972, 56973, 56974, 56975, 56976, 56977, 56978, 56979, 56980, 56981, 56982, 56983, 56984, 0, 0, 56987, 0, 0, 0, 56991, 56992, 56993, 56994, 0, 56996, 56997, 56998, 56999, 57000, 57001, 57002, 57003, 57004, 57005, 57006, 57007, 57008, 57009, 57010, 57011, 0, 0, 57014, 0, 57016, 57017, 57018, 57019, 57020, 57021, 57022, 57023, 57024, 57025, 57026, 57027, 0, 57029, 57030, 0, 57032, 0, 57034, 0, 57036, 0, 57038, 57039, 57040, 0, 0, 57043, 57044, 57045, 57046, 0, 57048, 57049, 57050, 57051, 57052, 0, 0, 57055, 57056, 57057, 57058, 57059, 0, 0, 0, 0, 0, 0, 57066, 0, 0, 57069, 0, 57071, 57072, 57073, 57074, 57075, 0, 57077, 57078, 57079, 57080, 57081, 57082, 57083, 57084, 57085, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +607: 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 1, 2, 2, 1, 1, 1, 1, 2, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 1, 1, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 48336, 48578, 11975, 45547, 48578, 24199, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 30624, 48578, 47847, 12043, 30316, 48578, 14524, 35957, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48054, 48376, 47294, 32716, 25165, 35958, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 34415, 48578, 48578, 48578, 11992, 48060, 15149, 48578, 48578, 48578, 48578, 40047, 48578, 48578, 48578, 48578, 48578, 48578, 14990, 48578, 48578, 48578, 48578, 48578, 48578, 39687, 20442, 48578, 14934, 48578, 48578, 48578, 48578, 24582, 27946, 48578, 48578, 48578, 48578, 48578, 48578, 43976, 48578, 48578, 48578, 48578, 48578, 19325, 48578, 32023, 48578, 48578, 48578, 48578, 28701, 48578, 48578, 48578, 27319, 48578, 48578, 30828, 48578, 48578, 17703, 48578, 24819, 48578, 48578, 48578, 48578, 48578, 48578, 48572, 48578, 48578, 25426, 48578, 48578, 47450, 48578, 28705, 48578, 48578, 19691, 32630, 20893, 15673, 48578, 48578, 42988, 48578, 48578, 47303, 48578, 38603, 48578, 48578, 48578, 48578, 16084, 11878, 48578, 27587, 48578, 48578, 48578, 41315, 48578, 46662, 39964, 48578, 48578, 15215, 18160, 48578, 48578, 48578, 12772, 48578, 22113, 13152, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 34442, 48578, 48578, 37739, 48578, 48578, 48578, 48578, 48578, 48578, 28153, 12778, 34343, 11631, 34514, 48578, 37499, 10329, 14493, 48578, 16344, 44756, 48578, 48578, 16604, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 31429, 48578, 45910, 12291, 33755, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 47267, 39768, 27739, 48138, 18719, 27266, 48578, 39092, 46974, 29299, 13984, 48578, 48578, 48578, 11698, 27973, 48578, 10284, 48578, 43078, 16246, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 57089, 0, 0, 57092, 0, 57094, 57095, 57096, 57097, 57098, 57099, 57100, 57101, 57102, 57103, 57104, 57105, 57106, 57107, 57108, 57109, 57110, 57111, 0, 57113, 0, 0, 0, 57117, 0, 0, 57120, 57121, 57122, 57123, 57124, 57125, 57126, 57127, 57128, 0, 0, 0, 0, 0, 0, 57135, 57136, 57137, 57138, 57139, 57140, 57141, 0, 57143, 57144, 57145, 0, 0, 0, 57149, 57150, 57151, 57152, 0, 57154, 57155, 57156, 57157, 57158, 57159, 0, 57161, 57162, 57163, 57164, 57165, 57166, 0, 0, 57169, 0, 57171, 57172, 57173, 57174, 0, 0, 57177, 57178, 57179, 57180, 57181, 57182, 0, 57184, 57185, 57186, 57187, 57188, 0, 57190, 0, 57192, 57193, 57194, 57195, 0, 57197, 57198, 57199, 0, 57201, 57202, 0, 57204, 57205, 0, 57207, 0, 57209, 57210, 57211, 57212, 57213, 57214, 0, 57216, 57217, 0, 57219, 57220, 0, 57222, 0, 57224, 57225, 0, 0, 0, 0, 57230, 57231, 0, 57233, 57234, 0, 57236, 0, 57238, 57239, 57240, 57241, 0, 0, 57244, 0, 57246, 57247, 57248, 0, 57250, 0, 0, 57253, 57254, 0, 0, 57257, 57258, 57259, 0, 57261, 0, 0, 57264, 57265, 57266, 57267, 57268, 57269, 57270, 57271, 57272, 0, 57274, 57275, 0, 57277, 57278, 57279, 57280, 57281, 57282, 0, 0, 0, 0, 0, 57288, 0, 0, 0, 57292, 0, 0, 57295, 57296, 0, 57298, 57299, 57300, 57301, 57302, 57303, 57304, 57305, 0, 57307, 0, 0, 0, 57311, 57312, 57313, 57314, 57315, 57316, 57317, 0, 0, 0, 0, 0, 0, 57324, 0, 0, 0, 0, 57329, 57330, 57331, 0, 0, 57334, 0, 57336, 0, 0, 57339, 57340, 57341, 57342, 57343, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +608: 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 1, 1, 1, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 21299, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 45601, 30091, 42470, 20942, 48578, 29721, 48578, 48578, 33379, 47746, 21476, 48578, 48578, 25485, 44442, 48578, 21674, 48578, 48578, 48578, 48578, 29149, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 26919, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 10376, 48578, 47688, 28691, 22827, 20840, 18483, 48578, 48578, 40401, 48519, 41900, 22166, 48578, 48578, 48578, 48578, 18122, 47358, 33818, 48578, 41792, 48578, 40273, 13252, 48578, 48578, 10379, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 20277, 19838, 48578, 48578, 11575, 17933, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 12207, 48578, 48578, 48578, 22391, 40491, 19045, 20282, 47365, 45735, 15478, 10882, 8286, 29155, 48578, 48578, 48578, 19852, 31044, 48578, 37681, 29204, 8549, 34869, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 21311, 42492, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 14733, 48578, 48578, 24188, 48578, 48578, 24478, 29806, 48578, 48578, 48578, 48578, 48578, 48578, 35490, 25509, 17673, 19168, 36000, 34870, 47062, 9210, 48578, 48578, 48578, 39135, 48578, 48578, 48578, 30200, 32401, 48578, 28085, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 43837, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 57344, 57345, 57346, 57347, 57348, 57349, 57350, 0, 57352, 57353, 57354, 57355, 57356, 57357, 57358, 57359, 57360, 57361, 57362, 0, 0, 0, 0, 57367, 0, 57369, 57370, 0, 0, 0, 57374, 57375, 0, 0, 57378, 0, 57380, 57381, 57382, 57383, 0, 57385, 57386, 57387, 57388, 57389, 57390, 57391, 57392, 57393, 57394, 57395, 57396, 57397, 57398, 57399, 0, 57401, 57402, 57403, 57404, 57405, 57406, 57407, 57408, 57409, 57410, 57411, 0, 57413, 0, 0, 0, 0, 0, 57419, 57420, 0, 0, 0, 0, 57425, 57426, 57427, 57428, 0, 0, 0, 57432, 0, 57434, 0, 0, 57437, 57438, 0, 57440, 57441, 57442, 57443, 57444, 57445, 57446, 57447, 57448, 57449, 57450, 57451, 57452, 57453, 57454, 57455, 57456, 57457, 0, 0, 57460, 57461, 0, 0, 57464, 57465, 57466, 57467, 57468, 57469, 57470, 57471, 0, 57473, 57474, 57475, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57486, 57487, 57488, 0, 0, 57491, 0, 0, 0, 0, 57496, 57497, 57498, 57499, 57500, 57501, 57502, 57503, 0, 0, 57506, 57507, 57508, 57509, 57510, 57511, 57512, 57513, 57514, 57515, 57516, 57517, 57518, 57519, 57520, 57521, 57522, 57523, 57524, 57525, 57526, 57527, 57528, 57529, 57530, 57531, 57532, 57533, 57534, 57535, 57536, 57537, 57538, 57539, 0, 57541, 57542, 0, 57544, 57545, 0, 0, 57548, 57549, 57550, 57551, 57552, 57553, 0, 0, 0, 0, 0, 0, 0, 0, 57562, 57563, 57564, 0, 57566, 57567, 57568, 0, 0, 57571, 0, 57573, 57574, 57575, 57576, 57577, 57578, 57579, 57580, 57581, 57582, 57583, 57584, 57585, 57586, 57587, 57588, 57589, 57590, 57591, 57592, 57593, 57594, 57595, 57596, 0, 57598, 57599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +609: 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 1, 1, 2, 1, 1, 1, 2, 2, 1, 2, 1, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 48578, 48578, 12319, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 30712, 13144, 28826, 34778, 48578, 33708, 23355, 35500, 48578, 13501, 13268, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 16177, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 47670, 17049, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 40797, 32089, 48578, 48578, 41351, 48578, 48578, 20637, 46261, 48578, 13087, 33184, 8270, 48578, 35640, 31099, 48578, 48578, 48578, 40798, 48578, 41352, 48578, 48578, 27931, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 35512, 23467, 47524, 47379, 48578, 24546, 48578, 12380, 21775, 48578, 45209, 10059, 26377, 48578, 48578, 33319, 48578, 24729, 48578, 48393, 48578, 48578, 23565, 34782, 31462, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 13503, 48578, 48578, 48578, 48578, 48578, 38667, 27170, 48578, 19904, 48578, 48578, 10697, 48578, 28555, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 42263, 48578, 48578, 23479, 48578, 48578, 26216, 48578, 35523, 15153, 48578, 48578, 24027, 38034, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 11786, 48578, 48578, 48578, 48578, 48578, 24597, 48578, 30064, 48578, 22302, 21831, 48578, 23485, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 19922, 48578, 48578, 27623, 48578, 42376, 8668, 48578, 48578, 48578, 11832, 34969, 48578, 48578, 34970, 48578, 48578, 17704, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 57600, 57601, 0, 57603, 57604, 57605, 57606, 57607, 57608, 57609, 0, 0, 0, 0, 57614, 0, 0, 0, 57618, 0, 0, 57621, 57622, 57623, 57624, 57625, 57626, 57627, 0, 57629, 57630, 57631, 57632, 57633, 57634, 57635, 57636, 57637, 57638, 57639, 57640, 57641, 57642, 57643, 57644, 57645, 57646, 0, 0, 57649, 57650, 57651, 57652, 57653, 57654, 57655, 57656, 57657, 57658, 57659, 0, 0, 57662, 57663, 0, 57665, 57666, 0, 0, 57669, 0, 0, 0, 57673, 0, 0, 57676, 57677, 57678, 0, 57680, 0, 57682, 57683, 0, 57685, 57686, 57687, 57688, 57689, 57690, 57691, 57692, 57693, 57694, 57695, 57696, 57697, 57698, 57699, 57700, 57701, 57702, 57703, 57704, 57705, 57706, 57707, 57708, 57709, 57710, 57711, 57712, 57713, 57714, 57715, 57716, 0, 0, 0, 0, 57721, 0, 57723, 0, 0, 57726, 0, 0, 0, 57730, 57731, 0, 57733, 0, 57735, 0, 57737, 57738, 0, 0, 0, 57742, 57743, 57744, 57745, 57746, 57747, 57748, 57749, 57750, 57751, 0, 57753, 57754, 57755, 57756, 57757, 0, 0, 57760, 0, 57762, 57763, 0, 57765, 0, 57767, 57768, 57769, 57770, 57771, 57772, 57773, 57774, 57775, 57776, 57777, 57778, 57779, 57780, 57781, 57782, 57783, 0, 57785, 57786, 0, 57788, 57789, 0, 57791, 0, 0, 57794, 57795, 0, 0, 57798, 57799, 57800, 57801, 57802, 57803, 57804, 57805, 0, 57807, 57808, 57809, 57810, 57811, 0, 57813, 0, 57815, 0, 0, 57818, 0, 57820, 57821, 57822, 57823, 57824, 57825, 57826, 57827, 57828, 57829, 57830, 0, 57832, 57833, 0, 57835, 0, 0, 57838, 57839, 57840, 0, 0, 57843, 57844, 0, 57846, 57847, 0, 57849, 57850, 57851, 57852, 57853, 57854, 57855, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +610: 2, 2, 2, 1, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 48578, 48578, 48578, 28323, 48578, 13294, 48578, 48578, 10318, 45170, 48578, 40689, 34506, 48578, 10021, 27648, 24660, 43351, 40474, 37804, 16416, 36953, 35679, 14723, 12151, 28798, 11890, 48536, 20964, 41145, 9211, 21128, 43500, 40792, 48578, 44242, 40613, 48578, 30749, 8083, 40525, 16202, 48578, 48578, 48424, 48578, 48578, 48578, 20830, 48578, 22383, 48578, 48578, 40535, 8096, 34529, 44595, 48578, 47320, 45923, 48578, 48578, 48578, 48578, 48578, 48578, 47170, 48578, 48578, 48578, 9806, 48578, 11457, 25593, 48578, 48578, 48578, 48578, 35412, 48578, 47522, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 8754, 48578, 48578, 48578, 40458, 48578, 41541, 48578, 48578, 25390, 48578, 48578, 48578, 48578, 41543, 48578, 48578, 48578, 48578, 36729, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 12803, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 29764, 18324, 9696, 48578, 48578, 48578, 48578, 48578, 48578, 36495, 27996, 21984, 48578, 27997, 48578, 21871, 25561, 48578, 25439, 48578, 48578, 48578, 25562, 18334, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 15217, 18161, 48578, 48578, 14172, 16149, 16345, 48578, 48578, 48578, 48578, 16557, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 26283, 48578, 14494, 26185, 27109, 15256, 25477, 48578, 48578, 48578, 48578, 48578, 40130, 16356, 48578, 39635, 9176, 48578, 19817, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32182, 26003, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 34865, 48578, 48578, 27999, 44597, 17350, 48578, 48578, 48578, 48578, 48578, 45002, 12453, 48578, 48578, 48578, 48578, 44323, 20159, 48578, 48578, 15769, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 9620, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 57856, 57857, 57858, 0, 57860, 0, 57862, 57863, 0, 0, 57866, 0, 0, 57869, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57890, 0, 0, 57893, 0, 0, 0, 0, 57898, 57899, 0, 57901, 57902, 57903, 0, 57905, 0, 57907, 57908, 0, 0, 0, 0, 57913, 0, 0, 57916, 57917, 57918, 57919, 57920, 57921, 0, 57923, 57924, 57925, 0, 57927, 0, 0, 57930, 57931, 57932, 57933, 0, 57935, 0, 57937, 57938, 57939, 57940, 57941, 57942, 57943, 57944, 0, 57946, 57947, 57948, 0, 57950, 0, 57952, 57953, 0, 57955, 57956, 57957, 57958, 0, 57960, 57961, 57962, 57963, 0, 57965, 57966, 57967, 57968, 57969, 57970, 57971, 57972, 57973, 57974, 57975, 57976, 0, 57978, 57979, 57980, 57981, 57982, 57983, 57984, 0, 0, 0, 57988, 57989, 57990, 57991, 57992, 57993, 0, 0, 0, 57997, 0, 57999, 0, 0, 58002, 0, 58004, 58005, 58006, 0, 0, 58009, 58010, 58011, 58012, 58013, 58014, 58015, 58016, 58017, 58018, 58019, 58020, 58021, 0, 0, 58024, 58025, 0, 0, 0, 58029, 58030, 58031, 58032, 0, 58034, 58035, 58036, 58037, 58038, 58039, 58040, 0, 58042, 0, 0, 0, 0, 0, 58048, 58049, 58050, 58051, 58052, 0, 0, 58055, 0, 0, 58058, 0, 58060, 58061, 58062, 58063, 58064, 58065, 58066, 0, 0, 58069, 58070, 58071, 58072, 58073, 58074, 58075, 58076, 58077, 0, 58079, 58080, 0, 0, 0, 58084, 58085, 58086, 58087, 58088, 0, 0, 58091, 58092, 58093, 58094, 0, 0, 58097, 58098, 0, 58100, 58101, 58102, 58103, 58104, 58105, 58106, 58107, 58108, 58109, 58110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +611: 1, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 1, 2, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 33997, 25574, 48578, 48578, 48578, 48578, 20623, 48578, 48578, 35322, 35323, 47230, 48578, 48578, 48578, 48578, 48578, 48578, 25004, 48578, 41103, 26065, 48578, 19879, 48578, 48578, 41679, 48578, 48578, 48578, 48578, 26078, 48578, 27717, 36397, 48578, 48578, 48578, 18692, 48578, 48578, 43234, 36004, 48578, 38569, 48578, 48578, 48578, 19479, 48578, 48578, 48578, 48578, 48578, 48578, 13641, 23331, 48578, 22301, 48578, 48578, 48578, 48578, 34165, 28295, 30268, 48578, 48578, 34555, 32296, 48578, 48578, 48578, 48578, 48578, 48578, 32580, 48578, 48578, 14852, 48578, 48578, 35713, 37255, 48578, 42028, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 13932, 11598, 48578, 16408, 14858, 48578, 48578, 32775, 48578, 48578, 48578, 15795, 39748, 48578, 39749, 18046, 48578, 36165, 33578, 42043, 48139, 48578, 44823, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 35234, 48578, 48578, 11372, 39753, 48578, 7821, 48578, 26682, 48578, 15374, 23432, 24299, 48578, 20943, 43956, 48578, 48578, 48578, 48578, 44598, 48578, 10870, 48578, 11373, 43138, 33510, 48578, 48578, 48578, 19617, 41586, 48578, 48578, 38643, 11519, 26772, 48578, 48578, 48578, 48578, 15298, 19985, 16318, 16376, 20037, 48578, 48578, 48578, 39474, 48578, 21258, 48148, 25781, 48578, 48578, 16320, 48578, 48578, 48578, 32546, 48578, 33520, 48578, 48578, 22210, 36911, 44128, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 20189, 13636, 48578, 18254, 48578, 48578, 48578, 33228, 44693, 48578, 48578, 48578, 48578, 48578, 26624, 48578, 46706, 41600, 15820, 48578, 18532, 48578, 48578, 48578, 48578, 48578, 32265, 48578, 48578, 42110, 48578, 48422, 48578, 48578, 48578, 39849, 42990, 41743, 17891, 44243, 48578, 48578, 48578, 10834, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 58114, 58115, 58116, 58117, 0, 58119, 58120, 0, 0, 0, 58124, 58125, 58126, 58127, 58128, 58129, 0, 58131, 0, 0, 58134, 0, 58136, 58137, 0, 58139, 58140, 58141, 58142, 0, 58144, 0, 0, 58147, 58148, 58149, 0, 58151, 58152, 0, 0, 58155, 0, 58157, 58158, 58159, 0, 58161, 58162, 58163, 58164, 58165, 58166, 0, 0, 58169, 0, 58171, 58172, 58173, 58174, 0, 0, 0, 58178, 58179, 0, 0, 58182, 58183, 58184, 58185, 58186, 58187, 0, 58189, 58190, 0, 58192, 58193, 0, 0, 58196, 0, 58198, 58199, 58200, 58201, 58202, 58203, 58204, 58205, 58206, 58207, 58208, 58209, 58210, 58211, 58212, 58213, 0, 0, 58216, 0, 0, 58219, 58220, 0, 58222, 58223, 58224, 0, 0, 58227, 0, 0, 58230, 0, 0, 0, 0, 58235, 0, 58237, 58238, 58239, 58240, 58241, 58242, 58243, 0, 58245, 58246, 0, 0, 58249, 0, 58251, 0, 58253, 0, 0, 0, 58257, 0, 0, 58260, 58261, 58262, 58263, 0, 58265, 0, 58267, 0, 0, 0, 58271, 58272, 58273, 0, 0, 58276, 58277, 0, 0, 0, 58281, 58282, 58283, 58284, 0, 0, 0, 0, 0, 58290, 58291, 58292, 0, 58294, 0, 0, 0, 58298, 58299, 0, 58301, 58302, 58303, 0, 58305, 0, 58307, 58308, 0, 0, 0, 58312, 58313, 58314, 58315, 58316, 58317, 58318, 58319, 58320, 58321, 58322, 58323, 0, 0, 58326, 0, 58328, 58329, 58330, 0, 0, 58333, 58334, 58335, 58336, 58337, 0, 58339, 0, 0, 0, 58343, 0, 58345, 58346, 58347, 58348, 58349, 0, 58351, 58352, 0, 58354, 0, 58356, 58357, 58358, 0, 0, 0, 0, 0, 58364, 58365, 58366, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +612: 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 48578, 10714, 48578, 48578, 17414, 33267, 29245, 35716, 14822, 10655, 48578, 48578, 17900, 41229, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 46829, 48578, 48578, 48578, 48578, 32045, 48578, 48578, 48578, 48578, 38758, 15235, 48578, 34521, 17160, 48578, 30243, 48578, 11675, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 9881, 48578, 48578, 17833, 48578, 48578, 48578, 48578, 29469, 33891, 39889, 48578, 48578, 41014, 11677, 36771, 30249, 48578, 48578, 48578, 48578, 48578, 48578, 35746, 9759, 48578, 48578, 48328, 19273, 40942, 41901, 9883, 48578, 37374, 48578, 48578, 48578, 48578, 48578, 48578, 39465, 41027, 18025, 18629, 15976, 10991, 8551, 17841, 17842, 10743, 48578, 9807, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 45736, 48578, 45810, 35764, 48578, 48578, 30255, 35765, 48578, 44055, 15309, 11606, 12208, 35698, 48578, 25510, 48578, 48578, 11607, 48578, 17853, 48578, 17373, 23421, 48578, 34154, 48578, 48578, 48578, 48578, 36912, 19089, 17683, 30025, 44673, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 39390, 17289, 48578, 30260, 48578, 48578, 48578, 48578, 48578, 48578, 23480, 19326, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 35877, 48578, 48578, 48578, 23846, 48578, 34631, 48578, 48578, 48578, 12635, 13020, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 40627, 48578, 48578, 37782, 48578, 10313, 28212, 48578, 22079, 48578, 48578, 14328, 14332, 29075, 29090, 48578, 48578, 48578, 48578, 48578, 48578, 47669, 48578, 48578, 48578, 48578, 29167, 48578, 25018, 23985, 48578, 7648, 48578, 48578, 48578, 48578, 10496, 48578, 48578, 16776, 32225, 16027, 48578, 16203, 33749, 48578, 48578, 48578, 48578, 23525, 46549, 43139, 16959, 37815, 26345, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 58368, 0, 58370, 58371, 0, 0, 0, 0, 0, 0, 58378, 58379, 0, 0, 58382, 58383, 58384, 58385, 58386, 58387, 58388, 58389, 0, 58391, 58392, 58393, 58394, 0, 58396, 58397, 58398, 58399, 0, 0, 58402, 0, 0, 58405, 0, 58407, 0, 58409, 58410, 58411, 58412, 58413, 58414, 58415, 0, 58417, 58418, 0, 58420, 58421, 58422, 58423, 0, 0, 0, 58427, 58428, 0, 0, 0, 0, 58433, 58434, 58435, 58436, 58437, 58438, 0, 0, 58441, 58442, 0, 0, 0, 0, 0, 58448, 0, 58450, 58451, 58452, 58453, 58454, 58455, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58466, 0, 58468, 58469, 58470, 58471, 58472, 58473, 58474, 58475, 58476, 58477, 58478, 0, 58480, 0, 0, 58483, 58484, 0, 0, 58487, 0, 0, 0, 0, 0, 58493, 0, 58495, 58496, 0, 58498, 0, 58500, 0, 0, 58503, 0, 58505, 58506, 58507, 58508, 0, 0, 0, 0, 0, 58514, 58515, 58516, 58517, 58518, 58519, 58520, 58521, 58522, 58523, 0, 0, 58526, 0, 58528, 58529, 58530, 58531, 58532, 58533, 0, 0, 58536, 58537, 58538, 58539, 58540, 58541, 58542, 58543, 0, 58545, 58546, 58547, 0, 58549, 0, 58551, 58552, 58553, 0, 0, 58556, 58557, 58558, 58559, 58560, 58561, 58562, 58563, 58564, 58565, 58566, 58567, 0, 58569, 58570, 0, 58572, 0, 0, 58575, 0, 58577, 58578, 0, 0, 0, 0, 58583, 58584, 58585, 58586, 58587, 58588, 0, 58590, 58591, 58592, 58593, 0, 58595, 0, 0, 58598, 0, 58600, 58601, 58602, 58603, 0, 58605, 58606, 0, 0, 0, 58610, 0, 0, 58613, 58614, 58615, 58616, 0, 0, 0, 0, 0, 0, 58623, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +613: 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 1, 1, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 48578, 48578, 34222, 43609, 34062, 37079, 8552, 48578, 45529, 47228, 48578, 32759, 30602, 15493, 9687, 48578, 48578, 48578, 48578, 24200, 26655, 48578, 24713, 8800, 48578, 48578, 48578, 11407, 43235, 48578, 48578, 48578, 29306, 48578, 48578, 48578, 48578, 43254, 23033, 48578, 48578, 8817, 48578, 10913, 32117, 27957, 46187, 33410, 33411, 48578, 48578, 48578, 48578, 48578, 48578, 42152, 16140, 28216, 48578, 48578, 40228, 48578, 48578, 36604, 48578, 48578, 48578, 48578, 48578, 48578, 42397, 48578, 48578, 33365, 48578, 48578, 48578, 48578, 48578, 33243, 48578, 48578, 12983, 40897, 48578, 48578, 48578, 48578, 48578, 32046, 48578, 48578, 48578, 48578, 48578, 48578, 17834, 34078, 36823, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 14058, 48578, 48578, 48578, 48578, 24906, 48578, 17972, 24300, 48578, 39773, 48578, 48578, 33988, 48578, 48578, 15123, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 41794, 37759, 30445, 13992, 48578, 18484, 30953, 48578, 40274, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 11705, 34033, 48578, 48578, 48578, 14397, 48578, 40492, 48578, 37226, 41906, 48578, 25071, 48578, 48578, 27279, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48247, 48578, 48032, 48578, 18227, 43702, 24705, 12162, 36548, 36610, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32700, 48578, 7343, 48578, 48578, 7353, 46255, 17014, 26066, 46109, 27289, 24939, 46256, 48578, 48578, 48578, 32141, 11778, 48578, 48578, 36745, 48578, 35960, 45941, 18246, 48578, 30026, 48578, 12165, 32717, 48578, 48578, 48578, 48578, 48578, 28400, 48578, 48578, 48578, 48578, 28300, 12514, 20734, 48578, 48578, 48578, 48578, 48578, 21938, 14373, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 58624, 58625, 0, 0, 0, 0, 0, 58631, 0, 0, 58634, 0, 0, 0, 0, 58639, 58640, 58641, 58642, 0, 0, 58645, 0, 0, 58648, 58649, 58650, 0, 0, 58653, 58654, 58655, 0, 58657, 58658, 58659, 58660, 0, 0, 58663, 58664, 0, 58666, 0, 0, 0, 0, 0, 0, 58673, 58674, 58675, 58676, 58677, 58678, 0, 0, 0, 58682, 58683, 0, 58685, 58686, 0, 58688, 58689, 58690, 58691, 58692, 58693, 0, 58695, 58696, 0, 58698, 58699, 58700, 58701, 58702, 0, 58704, 58705, 0, 0, 58708, 58709, 58710, 58711, 58712, 0, 58714, 58715, 58716, 58717, 58718, 58719, 0, 0, 0, 58723, 58724, 58725, 58726, 58727, 58728, 58729, 58730, 58731, 58732, 58733, 58734, 58735, 0, 58737, 58738, 58739, 58740, 0, 58742, 0, 0, 58745, 0, 58747, 58748, 0, 58750, 58751, 0, 58753, 58754, 58755, 58756, 58757, 58758, 58759, 0, 0, 0, 0, 58764, 0, 0, 58767, 0, 58769, 58770, 58771, 58772, 58773, 58774, 58775, 58776, 58777, 58778, 58779, 58780, 0, 0, 58783, 58784, 58785, 0, 58787, 0, 58789, 0, 0, 58792, 0, 58794, 58795, 0, 58797, 58798, 58799, 58800, 58801, 58802, 58803, 58804, 58805, 58806, 58807, 0, 58809, 0, 58811, 0, 0, 0, 0, 0, 0, 58818, 58819, 58820, 58821, 58822, 58823, 58824, 58825, 58826, 0, 58828, 0, 58830, 58831, 0, 0, 0, 0, 0, 0, 0, 0, 58840, 58841, 58842, 0, 0, 58845, 58846, 0, 58848, 0, 0, 0, 58852, 0, 58854, 0, 0, 58857, 58858, 58859, 58860, 58861, 0, 58863, 58864, 58865, 58866, 0, 0, 0, 58870, 58871, 58872, 58873, 58874, 0, 0, 58877, 58878, 58879, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +614: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 24599, 48578, 17018, 37539, 48578, 48578, 48578, 48578, 28754, 48578, 21105, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 29829, 10817, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 29830, 42915, 13575, 37486, 41256, 48578, 30725, 33566, 48578, 48578, 40725, 48578, 48578, 17560, 29361, 48578, 29496, 48578, 40588, 48578, 10770, 35882, 48437, 48390, 30733, 13576, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 34798, 48578, 48578, 28116, 38705, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 10263, 42964, 48578, 48578, 46512, 48578, 48578, 21715, 12281, 48578, 33122, 48578, 48578, 47555, 37666, 48578, 48578, 33123, 7874, 20080, 26606, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 37427, 48578, 30743, 48578, 48578, 48578, 48578, 47718, 37349, 48578, 48578, 30115, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 29582, 23073, 42709, 48578, 40229, 44936, 17769, 48578, 17997, 46515, 11532, 34334, 37491, 48578, 40108, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 16106, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 14161, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 22925, 28147, 48578, 48578, 21646, 41128, 31971, 10331, 26147, 17625, 34075, 28291, 48578, 17626, 9786, 41564, 16090, 28778, 48578, 17032, 41639, 16633, 48578, 48578, 46945, 23893, 48578, 48578, 48578, 48578, 48578, 48578, 13666, 30760, 31972, 22124, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 58880, 58881, 58882, 58883, 58884, 58885, 58886, 58887, 58888, 58889, 0, 58891, 0, 0, 58894, 58895, 58896, 58897, 0, 58899, 0, 58901, 58902, 58903, 58904, 58905, 58906, 58907, 58908, 58909, 58910, 58911, 58912, 58913, 58914, 58915, 58916, 58917, 58918, 58919, 58920, 0, 0, 58923, 58924, 58925, 58926, 58927, 58928, 58929, 0, 0, 0, 0, 0, 58935, 0, 0, 58938, 58939, 0, 58941, 58942, 0, 0, 58945, 0, 58947, 0, 58949, 0, 0, 0, 0, 0, 0, 58956, 58957, 58958, 58959, 58960, 58961, 58962, 58963, 58964, 58965, 58966, 58967, 58968, 0, 58970, 58971, 0, 0, 58974, 58975, 58976, 58977, 58978, 58979, 58980, 58981, 58982, 0, 0, 58985, 58986, 0, 58988, 58989, 0, 0, 58992, 0, 58994, 58995, 0, 0, 58998, 58999, 0, 0, 0, 0, 59004, 59005, 59006, 59007, 59008, 59009, 59010, 59011, 59012, 59013, 59014, 59015, 0, 59017, 0, 59019, 59020, 59021, 59022, 0, 0, 59025, 59026, 0, 59028, 59029, 59030, 59031, 59032, 59033, 59034, 59035, 59036, 0, 0, 0, 59040, 0, 0, 0, 59044, 0, 0, 0, 0, 0, 59050, 0, 59052, 59053, 59054, 59055, 59056, 59057, 59058, 59059, 59060, 59061, 59062, 59063, 0, 59065, 59066, 59067, 59068, 59069, 59070, 59071, 59072, 59073, 59074, 59075, 59076, 0, 59078, 59079, 59080, 59081, 59082, 59083, 59084, 59085, 59086, 0, 0, 59089, 59090, 0, 0, 0, 0, 0, 0, 0, 0, 59099, 0, 0, 0, 0, 0, 59105, 0, 0, 0, 59109, 59110, 0, 0, 59113, 59114, 59115, 59116, 59117, 59118, 0, 0, 0, 0, 59123, 59124, 59125, 59126, 59127, 59128, 59129, 59130, 59131, 59132, 59133, 59134, 59135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +615: 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 1, 1, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 2, 1, 1, 2, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48578, 14964, 48578, 40898, 37217, 48578, 17247, 22901, 48578, 48578, 33887, 46975, 48578, 29428, 46535, 24426, 37626, 48578, 14554, 40445, 48578, 48578, 41529, 48578, 48578, 48578, 48578, 21664, 33980, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 26786, 48578, 37282, 47890, 38780, 43535, 21297, 37261, 48578, 48578, 16110, 19805, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 47666, 48578, 48578, 36698, 48578, 46673, 48578, 19579, 48578, 48578, 48578, 43687, 38076, 48578, 18676, 36772, 9935, 48578, 48578, 23197, 30874, 7879, 9757, 37415, 28280, 20835, 48578, 41575, 48578, 37063, 48578, 38233, 48578, 11743, 48578, 48578, 40928, 43539, 48578, 48578, 8297, 48578, 48578, 48578, 48578, 26115, 48578, 48578, 48578, 48578, 45286, 12153, 48578, 48578, 48578, 28799, 21814, 18015, 48578, 48578, 48578, 16114, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 18016, 22448, 16158, 48578, 18948, 40275, 48578, 48578, 39114, 17253, 27276, 48578, 38290, 19184, 33218, 40449, 46233, 19274, 48578, 16163, 48578, 48578, 33111, 21118, 37466, 48578, 48578, 48578, 13798, 10677, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 38823, 48578, 48578, 48578, 48578, 27277, 45392, 33191, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 37266, 46996, 38235, 48578, 48578, 43439, 37284, 48578, 10942, 45530, 48578, 39910, 27799, 11898, 48578, 48578, 8688, 40663, 48578, 48578, 42767, 48578, 48578, 48578, 48578, 48578, 48578, 18820, 48578, 45661, 35583, 19157, 21910, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 59136, 0, 59138, 0, 0, 59141, 0, 0, 59144, 59145, 0, 0, 59148, 0, 0, 0, 0, 59153, 0, 0, 59156, 59157, 0, 59159, 59160, 59161, 59162, 0, 0, 59165, 59166, 59167, 59168, 59169, 59170, 59171, 59172, 59173, 59174, 59175, 59176, 59177, 59178, 59179, 59180, 0, 59182, 0, 0, 0, 0, 0, 0, 59189, 59190, 0, 0, 59193, 59194, 59195, 59196, 59197, 59198, 59199, 59200, 59201, 59202, 59203, 59204, 59205, 59206, 59207, 59208, 59209, 59210, 59211, 59212, 59213, 59214, 0, 59216, 59217, 0, 59219, 0, 59221, 0, 59223, 59224, 59225, 0, 0, 59228, 0, 0, 0, 59232, 59233, 0, 0, 0, 0, 0, 0, 0, 59241, 0, 59243, 0, 59245, 0, 59247, 0, 59249, 59250, 0, 0, 59253, 59254, 0, 59256, 59257, 59258, 59259, 0, 59261, 59262, 59263, 59264, 0, 0, 59267, 59268, 59269, 0, 0, 0, 59273, 59274, 59275, 0, 59277, 59278, 59279, 59280, 59281, 59282, 59283, 59284, 0, 0, 0, 59288, 0, 0, 59291, 59292, 0, 0, 0, 59296, 0, 0, 0, 0, 0, 0, 59303, 0, 59305, 59306, 0, 0, 0, 59310, 59311, 59312, 0, 0, 59315, 59316, 59317, 59318, 59319, 59320, 59321, 59322, 59323, 59324, 0, 59326, 59327, 59328, 59329, 0, 0, 0, 59333, 59334, 59335, 59336, 59337, 59338, 59339, 59340, 59341, 59342, 59343, 59344, 59345, 59346, 0, 0, 0, 59350, 59351, 0, 0, 59354, 0, 0, 59357, 0, 0, 0, 59361, 59362, 0, 0, 59365, 59366, 0, 59368, 59369, 59370, 59371, 59372, 59373, 0, 59375, 0, 0, 0, 0, 59380, 59381, 59382, 59383, 59384, 59385, 59386, 59387, 59388, 59389, 59390, 59391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +616: 2, 1, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 2, 48578, 11899, 48578, 48578, 19447, 41347, 35555, 9722, 48578, 43203, 48578, 48578, 48578, 48578, 8793, 48578, 48578, 48578, 22198, 24479, 48578, 48578, 29485, 48578, 48578, 48578, 48578, 45232, 42502, 48578, 8570, 46305, 46306, 48578, 21609, 46248, 48578, 48578, 34676, 48578, 48578, 48578, 38867, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 40844, 28208, 39475, 16968, 38098, 48578, 48578, 19642, 33078, 48578, 48578, 13435, 29122, 13715, 46559, 22918, 48578, 48578, 27753, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 7989, 19072, 48578, 48578, 48195, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 33172, 48578, 36268, 42787, 48578, 44655, 48578, 48578, 48578, 42361, 28929, 48578, 11087, 19193, 48578, 13839, 48578, 30816, 43765, 9061, 28915, 18785, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 43766, 48578, 48578, 48578, 7990, 48578, 48578, 48578, 16744, 24020, 48491, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 10060, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 20311, 48578, 48578, 48578, 27171, 48578, 40053, 48578, 48578, 48578, 48578, 48578, 40459, 48578, 24234, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 31357, 48578, 48578, 48578, 48578, 38036, 28184, 48578, 29397, 48578, 23966, 48578, 48578, 26394, 48578, 48578, 48578, 26248, 48578, 16074, 48578, 26249, 48578, 48578, 32118, 48578, 48578, 48578, 26401, 48578, 28307, 48578, 48578, 26402, 45057, 48578, 48578, 48578, 48578, 48578, 34806, 48578, 48578, 27383, 37721, 9669, 20131, 37750, 48578, 48578, 48578, 48578, 48578, 19986, 48578, 48578, 48578, 48578, 18614, 48578, 48578, 48578, 24823, 48119, 7758, 34438, 48578, 48578, 37599, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 59392, 0, 59394, 59395, 0, 0, 0, 0, 59400, 0, 59402, 59403, 59404, 59405, 0, 59407, 59408, 59409, 0, 0, 59412, 59413, 0, 59415, 59416, 59417, 59418, 0, 0, 59421, 0, 0, 0, 59425, 0, 0, 59428, 59429, 0, 59431, 59432, 59433, 0, 59435, 59436, 59437, 59438, 59439, 59440, 59441, 59442, 59443, 59444, 59445, 59446, 0, 0, 0, 0, 0, 59452, 59453, 0, 0, 59456, 59457, 0, 0, 0, 0, 0, 59463, 59464, 0, 59466, 59467, 59468, 59469, 59470, 59471, 59472, 59473, 59474, 59475, 59476, 0, 0, 59479, 59480, 0, 59482, 59483, 59484, 59485, 59486, 59487, 59488, 59489, 59490, 59491, 59492, 59493, 59494, 59495, 0, 59497, 0, 0, 59500, 0, 59502, 59503, 59504, 0, 0, 59507, 0, 0, 59510, 0, 59512, 0, 0, 0, 0, 0, 59518, 59519, 59520, 59521, 59522, 59523, 59524, 59525, 0, 59527, 59528, 59529, 0, 59531, 59532, 59533, 0, 0, 0, 59537, 59538, 59539, 59540, 59541, 59542, 59543, 59544, 0, 59546, 59547, 59548, 59549, 59550, 59551, 59552, 59553, 59554, 0, 59556, 59557, 59558, 0, 59560, 0, 59562, 59563, 59564, 59565, 59566, 0, 59568, 0, 59570, 59571, 59572, 59573, 59574, 59575, 59576, 59577, 0, 59579, 59580, 59581, 59582, 0, 0, 59585, 0, 59587, 0, 59589, 59590, 0, 59592, 59593, 59594, 0, 59596, 0, 59598, 0, 59600, 59601, 0, 59603, 59604, 59605, 0, 59607, 0, 59609, 59610, 0, 0, 59613, 59614, 59615, 59616, 59617, 0, 59619, 59620, 0, 0, 0, 0, 0, 59626, 59627, 59628, 59629, 59630, 0, 59632, 59633, 59634, 59635, 0, 59637, 59638, 59639, 0, 0, 0, 0, 59644, 59645, 0, 59647, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +617: 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 48578, 48578, 34507, 48578, 48578, 48578, 48578, 16762, 38733, 48578, 32818, 42334, 48578, 48578, 15796, 48578, 48578, 48578, 48578, 48578, 48578, 45003, 48578, 48578, 43829, 37507, 9199, 48578, 48578, 48578, 48578, 40455, 48578, 48578, 29890, 9224, 48578, 48578, 17171, 45836, 38397, 48578, 42535, 8617, 17175, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 10835, 48578, 48578, 46946, 48578, 28491, 48578, 48578, 48578, 38478, 7293, 48578, 48578, 48578, 48578, 48578, 7291, 44459, 10890, 48578, 48578, 21422, 47082, 47096, 47097, 21707, 48578, 48578, 48578, 48578, 17215, 48578, 48578, 48578, 30082, 48578, 48578, 42291, 48578, 48578, 48578, 48578, 48578, 44015, 30086, 48578, 27879, 48578, 48578, 48578, 48578, 48578, 48560, 30244, 48578, 41193, 23097, 43081, 30245, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 47791, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 28506, 31934, 11849, 48578, 48578, 48578, 48578, 48578, 48578, 42310, 48578, 48578, 48578, 48578, 14880, 48578, 48578, 48578, 39262, 48578, 20494, 9764, 48578, 48578, 40041, 9765, 48578, 48578, 48578, 48578, 48578, 10615, 12045, 48578, 48578, 48578, 31779, 48578, 44685, 48578, 44364, 48578, 48578, 48578, 38257, 48578, 9771, 44473, 48578, 48578, 48578, 48578, 48578, 48578, 48524, 12628, 48578, 48578, 22057, 12629, 43660, 48578, 15038, 48578, 48578, 48578, 38306, 48578, 48578, 21204, 30750, 48578, 31596, 48578, 23372, 48578, 35889, 39342, 48578, 36498, 48578, 23376, 48578, 36608, 48578, 18183, 47411, 45853, 35728, 48578, 36503, 35736, 35747, 18431, 41795, 36716, 48578, 36717, 35748, 48578, 48578, 48578, 48578, 48578, 48578, 18525, 48578, 20038, 30807, 48578, 35770, 48578, 48578, 35907, 18499, 48578, 48578, 47706, 18412, 48578, 48578, 23643, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 59648, 59649, 0, 59651, 59652, 59653, 59654, 0, 0, 59657, 0, 0, 59660, 59661, 0, 59663, 59664, 59665, 59666, 59667, 59668, 0, 59670, 59671, 0, 0, 0, 59675, 59676, 59677, 59678, 0, 59680, 59681, 0, 0, 59684, 59685, 0, 0, 0, 59689, 0, 0, 0, 59693, 59694, 59695, 59696, 59697, 59698, 59699, 59700, 59701, 59702, 59703, 0, 59705, 59706, 0, 59708, 0, 59710, 59711, 59712, 0, 0, 59715, 59716, 59717, 59718, 59719, 0, 0, 0, 59723, 59724, 0, 0, 0, 0, 0, 59730, 59731, 59732, 59733, 0, 59735, 59736, 59737, 0, 59739, 59740, 0, 59742, 59743, 59744, 59745, 59746, 0, 0, 59749, 0, 59751, 59752, 59753, 59754, 59755, 0, 0, 59758, 0, 0, 0, 0, 59763, 59764, 59765, 59766, 59767, 59768, 59769, 59770, 0, 59772, 59773, 59774, 59775, 59776, 59777, 59778, 0, 0, 0, 59782, 59783, 59784, 59785, 59786, 59787, 0, 59789, 59790, 59791, 59792, 0, 59794, 59795, 59796, 0, 59798, 0, 0, 59801, 59802, 0, 0, 59805, 59806, 59807, 59808, 59809, 0, 0, 59812, 59813, 59814, 0, 59816, 0, 59818, 0, 59820, 59821, 59822, 0, 59824, 0, 0, 59827, 59828, 59829, 59830, 59831, 59832, 0, 0, 59835, 59836, 0, 0, 0, 59840, 0, 59842, 59843, 59844, 0, 59846, 59847, 0, 0, 59850, 0, 59852, 0, 59854, 0, 0, 59857, 0, 59859, 0, 59861, 0, 59863, 0, 0, 0, 0, 59868, 0, 0, 0, 0, 0, 0, 59875, 0, 0, 59878, 59879, 59880, 59881, 59882, 59883, 0, 59885, 0, 0, 59888, 0, 59890, 59891, 0, 0, 59894, 59895, 0, 0, 59898, 59899, 0, 59901, 59902, 59903, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +618: 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 2, 1, 1, 1, 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 48578, 48578, 48578, 48578, 48578, 48578, 48485, 42936, 15185, 38596, 48578, 15186, 48578, 13315, 35714, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 10281, 48578, 48578, 32644, 32275, 48578, 15893, 48578, 48578, 48578, 48578, 15237, 12924, 13113, 43897, 48578, 20081, 48578, 48578, 25629, 48578, 48578, 43898, 29775, 48578, 19217, 31740, 48578, 14497, 38479, 36872, 17424, 48578, 48578, 35896, 48578, 48578, 48578, 48578, 48578, 17786, 48578, 48578, 48578, 48578, 48578, 36626, 48578, 48578, 48578, 47270, 48578, 48578, 7795, 40276, 12599, 48578, 21119, 48578, 48578, 48578, 48578, 48578, 18123, 8098, 48578, 13363, 48578, 48578, 48578, 29120, 38091, 44326, 48578, 40493, 15299, 39654, 30793, 37021, 48578, 48578, 19618, 48578, 43789, 48578, 12744, 37821, 38847, 48578, 29279, 48578, 34043, 44120, 48578, 7279, 20412, 48578, 16258, 33020, 48578, 48578, 48578, 16228, 48578, 48578, 33435, 36096, 48578, 48578, 48578, 48578, 48578, 48578, 26067, 7556, 48578, 30814, 40669, 48578, 12250, 48578, 48578, 48578, 14436, 38115, 48578, 13919, 24947, 14467, 18786, 22211, 35779, 48499, 32508, 9481, 36290, 48578, 48578, 18500, 40799, 48578, 45881, 48578, 48578, 48578, 15691, 48578, 48578, 29651, 9484, 40076, 12218, 48578, 48578, 48578, 19905, 48578, 48578, 48578, 48578, 24320, 48578, 48578, 29350, 48578, 48578, 48578, 25684, 24600, 38990, 36301, 48578, 48578, 25391, 48578, 48578, 48578, 48578, 24328, 32436, 25427, 48578, 48578, 48578, 16951, 48578, 48578, 48578, 48578, 48578, 30178, 27880, 29270, 48578, 48578, 7720, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 30583, 48578, 48578, 41667, 48578, 48578, 48578, 48578, 48578, 37508, 7501, 48578, 27776, 27713, 41402, 27172, 48578, 48578, 16573, 48578, 48578, 20578, 48578, 48578, 48578, 48578, 15575, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 59904, 59905, 59906, 59907, 59908, 59909, 0, 0, 0, 0, 59914, 0, 59916, 0, 0, 59919, 59920, 59921, 59922, 59923, 59924, 59925, 0, 59927, 59928, 0, 0, 59931, 0, 59933, 59934, 59935, 59936, 0, 0, 0, 0, 59941, 0, 59943, 59944, 0, 59946, 59947, 0, 0, 59950, 0, 0, 59953, 0, 0, 0, 0, 59958, 59959, 0, 59961, 59962, 59963, 59964, 59965, 0, 59967, 59968, 59969, 59970, 59971, 0, 59973, 59974, 59975, 0, 59977, 59978, 0, 0, 0, 59982, 0, 59984, 59985, 59986, 59987, 59988, 0, 0, 59991, 0, 59993, 59994, 59995, 0, 0, 0, 59999, 0, 0, 0, 0, 0, 60005, 60006, 0, 60008, 0, 60010, 0, 0, 0, 60014, 0, 60016, 0, 0, 60019, 0, 0, 60022, 0, 0, 60025, 60026, 60027, 0, 60029, 60030, 0, 0, 60033, 60034, 60035, 60036, 60037, 60038, 0, 0, 60041, 0, 0, 60044, 0, 60046, 60047, 60048, 0, 0, 60051, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60062, 60063, 0, 0, 60066, 0, 60068, 60069, 60070, 0, 60072, 60073, 0, 0, 0, 0, 60078, 60079, 60080, 0, 60082, 60083, 60084, 60085, 0, 60087, 60088, 0, 60090, 60091, 60092, 0, 0, 0, 0, 60097, 60098, 0, 60100, 60101, 60102, 60103, 0, 0, 0, 60107, 60108, 60109, 0, 60111, 60112, 60113, 60114, 60115, 0, 0, 0, 60119, 60120, 0, 60122, 60123, 60124, 60125, 60126, 60127, 60128, 0, 60130, 60131, 0, 60133, 60134, 60135, 60136, 60137, 0, 0, 60140, 0, 0, 0, 0, 60145, 60146, 0, 60148, 60149, 0, 60151, 60152, 60153, 60154, 0, 60156, 60157, 60158, 60159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +619: 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48578, 9426, 38588, 46188, 32552, 22831, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 46119, 47152, 31850, 16988, 16135, 30302, 18319, 27485, 48578, 48578, 36493, 48578, 48578, 48578, 48578, 37734, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 47454, 12181, 40614, 28101, 48578, 48578, 21956, 48578, 48578, 28651, 48578, 48578, 48578, 48578, 48578, 48578, 18325, 33358, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 46652, 48578, 48578, 35670, 48578, 34900, 48578, 48578, 48578, 42991, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 31724, 46915, 26145, 32819, 48578, 30519, 44418, 47252, 42033, 39528, 27969, 11038, 18857, 21512, 21582, 29990, 48578, 48578, 48578, 48578, 20762, 48578, 16565, 48578, 27870, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 38734, 30328, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 19778, 48578, 48578, 48578, 48578, 48578, 48578, 38227, 8145, 42847, 15239, 34907, 21965, 19795, 48578, 28586, 48578, 8226, 48578, 48578, 48578, 48578, 40899, 48578, 48578, 31566, 9159, 48578, 48578, 37720, 46299, 48578, 38360, 33720, 45473, 42090, 48578, 48578, 35117, 28779, 48578, 48578, 48578, 48578, 8460, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 11871, 31165, 48578, 48578, 48578, 48578, 48578, 40020, 46667, 33772, 48578, 48578, 46947, 29589, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 60160, 0, 0, 0, 0, 0, 60166, 60167, 60168, 60169, 60170, 60171, 60172, 60173, 60174, 60175, 60176, 60177, 60178, 60179, 0, 0, 0, 0, 0, 0, 0, 0, 60188, 60189, 0, 60191, 60192, 60193, 60194, 0, 60196, 60197, 60198, 60199, 60200, 60201, 60202, 60203, 60204, 60205, 60206, 60207, 60208, 60209, 60210, 60211, 60212, 60213, 60214, 60215, 0, 0, 0, 0, 60220, 60221, 0, 60223, 60224, 0, 60226, 60227, 60228, 60229, 60230, 60231, 0, 0, 60234, 60235, 60236, 60237, 60238, 60239, 60240, 60241, 60242, 60243, 60244, 60245, 60246, 60247, 60248, 60249, 60250, 60251, 0, 60253, 60254, 0, 60256, 0, 60258, 60259, 60260, 0, 60262, 60263, 60264, 60265, 60266, 60267, 60268, 0, 0, 0, 0, 60273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60285, 60286, 60287, 60288, 0, 60290, 0, 60292, 0, 60294, 60295, 60296, 60297, 60298, 60299, 60300, 60301, 60302, 60303, 0, 0, 60306, 60307, 60308, 60309, 60310, 60311, 60312, 60313, 60314, 60315, 60316, 60317, 60318, 60319, 60320, 60321, 60322, 60323, 60324, 60325, 60326, 60327, 60328, 60329, 60330, 60331, 60332, 60333, 60334, 0, 60336, 60337, 60338, 60339, 60340, 60341, 0, 0, 0, 0, 0, 0, 0, 60349, 0, 60351, 0, 60353, 60354, 60355, 60356, 0, 60358, 60359, 0, 0, 60362, 60363, 0, 0, 60366, 0, 0, 0, 0, 60371, 60372, 0, 0, 60375, 60376, 60377, 60378, 0, 60380, 60381, 60382, 60383, 60384, 60385, 60386, 0, 0, 60389, 60390, 60391, 60392, 60393, 0, 0, 0, 60397, 60398, 0, 0, 60401, 60402, 60403, 60404, 60405, 60406, 60407, 60408, 60409, 60410, 60411, 60412, 60413, 60414, 60415, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +620: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 2, 2, 1, 1, 1, 2, 1, 1, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 1, 1, 2, 1, 1, 2, 2, 1, 1, 1, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 13158, 48578, 48578, 48578, 48578, 48578, 48578, 38369, 48578, 46830, 8461, 48578, 14859, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 7901, 48578, 48578, 48578, 48578, 31900, 28538, 9166, 13903, 48578, 34261, 40753, 10148, 40754, 42402, 27267, 48578, 48578, 48578, 40395, 47891, 15444, 48578, 48578, 29840, 41235, 48578, 44555, 39447, 44556, 44282, 48578, 21665, 35674, 22803, 48578, 48578, 46536, 27110, 15763, 48578, 48578, 48578, 48578, 48578, 28066, 39010, 8480, 48578, 15445, 48578, 48578, 48578, 48578, 48578, 40027, 48578, 48578, 48578, 21521, 48578, 48578, 16279, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 10726, 21522, 21523, 48578, 48578, 33376, 48578, 14679, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 15257, 48578, 48578, 48578, 37675, 40755, 9093, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 17524, 48578, 40131, 29931, 44444, 48578, 36536, 29791, 48578, 34263, 22994, 19405, 48578, 48578, 45651, 28228, 27998, 48578, 15270, 13706, 48578, 48578, 34058, 9794, 48578, 10734, 16855, 27661, 36035, 7792, 31175, 48578, 47897, 38077, 41327, 48578, 27557, 45287, 44037, 48578, 44169, 48578, 33501, 17649, 26153, 46745, 48578, 48578, 48578, 21408, 46360, 48578, 48578, 27117, 44038, 48578, 38373, 7696, 48578, 48578, 22033, 32829, 11846, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 60416, 60417, 60418, 60419, 60420, 60421, 60422, 60423, 60424, 60425, 60426, 60427, 60428, 60429, 60430, 0, 60432, 60433, 60434, 60435, 60436, 60437, 0, 60439, 0, 0, 60442, 0, 60444, 60445, 60446, 60447, 60448, 60449, 60450, 60451, 60452, 0, 60454, 60455, 60456, 60457, 0, 0, 0, 0, 60462, 0, 0, 0, 0, 0, 0, 60469, 60470, 60471, 0, 0, 0, 60475, 60476, 0, 0, 60479, 0, 0, 0, 0, 60484, 0, 0, 0, 60488, 60489, 0, 0, 0, 60493, 60494, 60495, 60496, 60497, 0, 0, 0, 60501, 0, 60503, 60504, 60505, 60506, 60507, 0, 60509, 60510, 60511, 0, 60513, 60514, 0, 60516, 60517, 60518, 60519, 60520, 60521, 60522, 60523, 60524, 60525, 60526, 60527, 0, 0, 0, 60531, 60532, 0, 60534, 0, 60536, 60537, 60538, 60539, 60540, 60541, 60542, 60543, 60544, 60545, 60546, 60547, 60548, 60549, 60550, 60551, 60552, 60553, 60554, 60555, 60556, 60557, 60558, 60559, 60560, 60561, 60562, 60563, 60564, 60565, 60566, 60567, 60568, 60569, 60570, 60571, 60572, 60573, 60574, 60575, 60576, 60577, 60578, 60579, 60580, 60581, 60582, 60583, 60584, 60585, 60586, 0, 60588, 60589, 60590, 0, 0, 0, 60594, 60595, 60596, 60597, 60598, 60599, 60600, 60601, 60602, 60603, 60604, 60605, 60606, 60607, 60608, 0, 60610, 0, 0, 0, 60614, 0, 0, 60617, 0, 0, 0, 60621, 60622, 0, 0, 0, 60626, 0, 0, 60629, 60630, 0, 0, 60633, 0, 0, 0, 0, 0, 0, 60640, 0, 0, 0, 60644, 0, 0, 0, 60648, 0, 60650, 0, 0, 0, 0, 60655, 60656, 60657, 0, 0, 60660, 60661, 0, 0, 60664, 0, 0, 60667, 60668, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +621: 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, 2, 1, 46686, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 18192, 41996, 48578, 22334, 33778, 22862, 48578, 48578, 31032, 48578, 48578, 27118, 48578, 48578, 48578, 48578, 48578, 36647, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 28800, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 10735, 48578, 40600, 48578, 19185, 48578, 48578, 12822, 23745, 48578, 45421, 9680, 35623, 48377, 35406, 48578, 39252, 48578, 40277, 48578, 48578, 20957, 44044, 48578, 16312, 16096, 48578, 48578, 48578, 22338, 18819, 19603, 30273, 38434, 48578, 43141, 48578, 48578, 28207, 48578, 32752, 28259, 48578, 30142, 33587, 13122, 19604, 18403, 13823, 22822, 35750, 48578, 17974, 48578, 34534, 48578, 48578, 48578, 17799, 14900, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 22866, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 28638, 48578, 48578, 48578, 11168, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 31251, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 39115, 18197, 35123, 38378, 48578, 17166, 32832, 27122, 48578, 33144, 48578, 38482, 48578, 44050, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 60673, 60674, 60675, 60676, 60677, 60678, 60679, 60680, 0, 0, 60683, 0, 0, 0, 60687, 60688, 0, 60690, 60691, 0, 60693, 60694, 60695, 60696, 60697, 0, 60699, 60700, 60701, 60702, 60703, 60704, 60705, 60706, 60707, 60708, 60709, 60710, 60711, 60712, 60713, 60714, 60715, 60716, 60717, 60718, 60719, 60720, 60721, 60722, 60723, 60724, 60725, 60726, 60727, 60728, 60729, 60730, 60731, 60732, 60733, 60734, 60735, 60736, 60737, 60738, 60739, 60740, 60741, 60742, 60743, 60744, 60745, 60746, 60747, 60748, 60749, 60750, 60751, 0, 60753, 60754, 60755, 60756, 60757, 60758, 60759, 60760, 60761, 60762, 60763, 60764, 60765, 60766, 0, 60768, 0, 60770, 0, 60772, 60773, 0, 0, 60776, 0, 0, 0, 0, 0, 60782, 0, 60784, 0, 60786, 60787, 0, 0, 60790, 0, 0, 60793, 60794, 60795, 0, 0, 0, 0, 0, 60801, 0, 60803, 60804, 0, 60806, 0, 0, 60809, 0, 0, 0, 0, 0, 0, 0, 0, 60818, 0, 60820, 0, 60822, 60823, 60824, 0, 0, 60827, 60828, 60829, 60830, 60831, 60832, 60833, 60834, 60835, 60836, 60837, 60838, 60839, 60840, 60841, 60842, 60843, 60844, 60845, 60846, 60847, 60848, 60849, 0, 60851, 60852, 60853, 60854, 60855, 60856, 60857, 60858, 60859, 60860, 60861, 60862, 60863, 60864, 60865, 60866, 60867, 60868, 60869, 60870, 60871, 60872, 60873, 60874, 60875, 60876, 60877, 60878, 60879, 60880, 60881, 60882, 60883, 60884, 60885, 60886, 60887, 60888, 0, 60890, 60891, 60892, 0, 60894, 60895, 60896, 60897, 60898, 60899, 60900, 60901, 0, 60903, 60904, 60905, 60906, 60907, 60908, 60909, 60910, 60911, 60912, 60913, 0, 0, 0, 0, 60918, 0, 0, 0, 60922, 0, 60924, 0, 60926, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +622: 2, 1, 1, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48578, 35903, 33904, 48578, 48578, 48578, 30704, 48578, 17045, 30877, 39372, 48578, 48578, 48578, 48578, 35409, 26034, 48578, 48578, 30453, 13124, 48578, 48578, 30595, 20033, 44051, 38972, 10250, 48578, 48578, 48578, 48578, 48578, 27415, 25827, 8385, 48578, 48578, 48578, 48578, 48578, 48578, 29524, 48578, 48578, 48578, 46375, 33905, 10042, 15479, 48578, 48578, 48578, 48578, 32000, 34939, 48578, 48578, 48415, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 46158, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 29800, 48578, 48578, 11850, 48578, 48578, 48578, 48578, 48578, 15812, 13617, 48578, 15140, 16613, 33240, 35197, 20287, 30284, 48578, 9507, 8303, 28001, 46106, 39982, 48578, 21761, 34541, 20288, 24193, 48578, 11375, 23886, 48578, 17734, 18228, 16367, 46055, 20975, 39824, 48578, 13586, 17260, 20039, 39825, 19631, 34593, 23789, 19448, 33517, 48578, 48578, 36186, 48039, 34739, 48578, 19632, 11280, 19864, 33909, 25226, 24933, 48578, 33147, 48578, 7439, 32929, 48578, 36382, 12465, 48578, 18596, 48578, 33071, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 60928, 0, 0, 60931, 60932, 60933, 0, 60935, 0, 0, 0, 60939, 60940, 60941, 60942, 0, 0, 60945, 60946, 0, 0, 60949, 60950, 0, 0, 0, 0, 0, 60956, 60957, 60958, 60959, 60960, 0, 0, 0, 60964, 60965, 60966, 60967, 60968, 60969, 0, 60971, 60972, 60973, 0, 0, 0, 0, 60978, 60979, 60980, 60981, 0, 0, 60984, 60985, 0, 60987, 60988, 60989, 60990, 60991, 60992, 60993, 60994, 60995, 60996, 60997, 60998, 60999, 61000, 61001, 61002, 61003, 61004, 61005, 61006, 61007, 61008, 61009, 61010, 61011, 61012, 61013, 61014, 61015, 61016, 61017, 61018, 61019, 61020, 61021, 61022, 61023, 61024, 61025, 61026, 61027, 61028, 61029, 61030, 61031, 61032, 61033, 61034, 0, 61036, 61037, 61038, 61039, 61040, 61041, 61042, 61043, 61044, 61045, 61046, 61047, 61048, 61049, 61050, 61051, 61052, 0, 61054, 61055, 0, 61057, 61058, 61059, 61060, 61061, 0, 0, 61064, 0, 0, 0, 0, 0, 0, 61071, 0, 0, 0, 0, 0, 61077, 0, 0, 0, 0, 61082, 0, 0, 61085, 0, 0, 0, 0, 0, 0, 61092, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61102, 61103, 0, 0, 0, 61107, 0, 0, 0, 0, 0, 0, 61114, 0, 61116, 0, 0, 61119, 0, 0, 61122, 0, 61124, 0, 61126, 61127, 61128, 61129, 61130, 61131, 61132, 61133, 61134, 61135, 61136, 61137, 61138, 61139, 61140, 61141, 61142, 61143, 61144, 61145, 61146, 61147, 61148, 61149, 61150, 61151, 61152, 61153, 61154, 61155, 61156, 61157, 61158, 61159, 61160, 61161, 61162, 61163, 61164, 61165, 61166, 61167, 61168, 61169, 61170, 61171, 61172, 61173, 61174, 61175, 61176, 61177, 61178, 61179, 61180, 61181, 61182, 61183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +623: 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48578, 48578, 48578, 48578, 48578, 48578, 32949, 38438, 21922, 18597, 24091, 26056, 48578, 48578, 35905, 45612, 48578, 48578, 48578, 31049, 48578, 48578, 48578, 38868, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 11679, 33783, 48578, 48578, 48578, 48578, 33072, 48578, 48578, 26935, 32082, 48578, 9225, 15689, 48578, 31452, 22050, 12508, 10164, 42061, 17680, 48578, 19461, 48578, 9031, 48578, 26993, 48578, 48578, 48578, 13874, 7584, 21316, 26068, 27532, 13083, 17738, 48578, 20178, 48578, 48578, 18442, 16259, 48578, 48578, 26069, 15320, 18958, 48578, 45588, 48578, 21259, 34948, 32386, 48578, 48578, 48578, 48578, 48578, 12475, 48578, 37687, 8692, 48578, 48578, 48578, 48578, 20042, 48578, 48578, 48578, 48578, 48578, 48578, 12412, 21531, 39476, 9226, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 39268, 48578, 8801, 48578, 48578, 48578, 30258, 48578, 48578, 33241, 8187, 33444, 38014, 48578, 9579, 26070, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 12476, 48578, 16460, 45233, 7924, 15725, 48578, 48578, 10231, 19887, 25009, 48578, 31780, 20430, 26079, 13736, 35372, 42256, 43502, 48578, 35780, 42257, 21320, 11183, 15325, 44868, 33731, 48578, 9062, 12581, 34412, 48578, 48578, 25867, 31456, 26375, 30261, 48578, 27159, 21002, 48578, 48578, 19472, 48578, 48578, 26080, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 61184, 61185, 61186, 61187, 61188, 61189, 0, 0, 0, 0, 0, 0, 61196, 61197, 0, 0, 61200, 61201, 61202, 0, 61204, 61205, 61206, 0, 61208, 61209, 61210, 61211, 61212, 61213, 61214, 61215, 61216, 0, 0, 61219, 61220, 61221, 61222, 0, 61224, 61225, 0, 0, 61228, 0, 0, 61231, 0, 0, 0, 0, 0, 0, 61238, 0, 61240, 0, 61242, 0, 61244, 61245, 61246, 0, 0, 0, 0, 0, 0, 0, 61254, 0, 61256, 61257, 0, 0, 61260, 61261, 0, 0, 0, 61265, 0, 61267, 0, 0, 0, 61271, 61272, 61273, 61274, 61275, 0, 61277, 0, 0, 61280, 61281, 61282, 61283, 0, 61285, 61286, 61287, 61288, 61289, 61290, 0, 0, 0, 0, 61295, 61296, 61297, 61298, 61299, 61300, 61301, 61302, 61303, 61304, 61305, 61306, 61307, 61308, 61309, 61310, 61311, 61312, 61313, 61314, 61315, 61316, 61317, 61318, 61319, 61320, 61321, 61322, 61323, 61324, 61325, 61326, 0, 61328, 0, 61330, 61331, 61332, 0, 61334, 61335, 0, 0, 0, 0, 61340, 0, 0, 61343, 61344, 61345, 61346, 61347, 61348, 61349, 61350, 61351, 61352, 0, 61354, 0, 0, 0, 0, 61359, 61360, 0, 0, 0, 61364, 0, 0, 0, 0, 0, 0, 0, 61372, 0, 0, 0, 0, 0, 0, 0, 61380, 0, 0, 0, 61384, 61385, 0, 0, 0, 0, 61390, 0, 0, 61393, 61394, 0, 61396, 61397, 0, 61399, 61400, 61401, 61402, 61403, 61404, 61405, 61406, 61407, 61408, 61409, 61410, 61411, 61412, 61413, 61414, 61415, 61416, 61417, 61418, 61419, 61420, 61421, 61422, 61423, 61424, 61425, 61426, 61427, 61428, 61429, 61430, 61431, 61432, 61433, 61434, 61435, 61436, 61437, 61438, 61439, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +624: 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48578, 48578, 48578, 48578, 10212, 27610, 27160, 20307, 48578, 48578, 9452, 48578, 35347, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 17745, 33082, 48578, 48055, 22788, 16102, 34951, 48578, 48578, 48578, 48578, 48578, 36404, 45992, 40340, 34791, 10808, 43971, 25942, 27238, 25099, 35045, 48578, 48578, 38903, 14526, 15150, 33965, 36405, 9886, 45029, 48578, 15151, 20437, 12974, 48578, 48578, 48578, 40174, 12382, 48578, 48578, 48578, 46772, 48578, 48578, 48578, 40973, 48578, 48578, 48578, 48578, 28840, 14604, 27166, 27718, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 25792, 13642, 48578, 45996, 20444, 17383, 12486, 33341, 20445, 35969, 20742, 30206, 48578, 30160, 48578, 47707, 48578, 24957, 48149, 48578, 47947, 48578, 18377, 48578, 48578, 48578, 48578, 39165, 48578, 27173, 21940, 27616, 39500, 48578, 23282, 27174, 20203, 48578, 48578, 48578, 29026, 48578, 12975, 33230, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 11290, 46778, 31061, 26170, 48578, 47949, 48578, 48578, 48578, 48570, 17271, 35441, 16324, 48578, 11120, 19910, 43281, 44377, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 29027, 28559, 33023, 48578, 48578, 48578, 25178, 48578, 48578, 28920, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 61440, 61441, 61442, 61443, 0, 0, 0, 0, 61448, 61449, 0, 61451, 0, 61453, 61454, 61455, 61456, 61457, 61458, 61459, 0, 0, 61462, 0, 0, 0, 0, 61467, 61468, 61469, 61470, 61471, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61482, 61483, 0, 0, 0, 0, 0, 0, 0, 61491, 0, 0, 0, 61495, 61496, 61497, 0, 0, 61500, 61501, 61502, 0, 61504, 61505, 61506, 0, 61508, 61509, 61510, 61511, 0, 0, 0, 0, 61516, 61517, 61518, 61519, 61520, 61521, 61522, 61523, 61524, 61525, 61526, 61527, 61528, 61529, 61530, 61531, 61532, 61533, 61534, 61535, 61536, 61537, 61538, 61539, 61540, 61541, 61542, 61543, 61544, 61545, 61546, 61547, 61548, 61549, 61550, 61551, 61552, 61553, 61554, 61555, 61556, 61557, 61558, 61559, 61560, 61561, 61562, 61563, 61564, 61565, 0, 0, 61568, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61578, 0, 61580, 0, 61582, 0, 0, 61585, 0, 61587, 0, 61589, 61590, 61591, 61592, 0, 61594, 0, 0, 0, 0, 61599, 0, 0, 0, 61603, 61604, 61605, 0, 61607, 0, 0, 61610, 61611, 61612, 61613, 61614, 61615, 61616, 61617, 61618, 61619, 61620, 61621, 61622, 61623, 61624, 61625, 61626, 61627, 61628, 61629, 61630, 61631, 61632, 61633, 61634, 61635, 61636, 61637, 61638, 61639, 61640, 61641, 61642, 61643, 61644, 61645, 61646, 0, 0, 0, 0, 61651, 0, 61653, 61654, 61655, 0, 0, 0, 0, 61660, 0, 0, 0, 0, 61665, 61666, 61667, 61668, 61669, 61670, 61671, 0, 0, 0, 61675, 61676, 61677, 0, 61679, 61680, 0, 61682, 61683, 61684, 61685, 61686, 61687, 61688, 61689, 61690, 61691, 61692, 61693, 61694, 61695, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +625: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 2, 2, 1, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 31345, 42270, 15528, 34755, 23285, 32110, 13439, 34609, 48578, 48578, 48578, 48578, 48578, 24250, 21789, 32961, 48578, 48578, 48578, 45719, 48578, 48578, 48578, 39948, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 27083, 34233, 13010, 24612, 12760, 45378, 48578, 26395, 9519, 48578, 48578, 7525, 48578, 48578, 20333, 48578, 13184, 48578, 48578, 43734, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 43302, 12537, 29030, 48578, 45045, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 24327, 24267, 18389, 48578, 44181, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 28321, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 10483, 48578, 48578, 48578, 48578, 48578, 48578, 15005, 8881, 48578, 48578, 48578, 48578, 26694, 15734, 19333, 48578, 11867, 48578, 44130, 48578, 48578, 44182, 48578, 48578, 48578, 40734, 48578, 48578, 48578, 48578, 40888, 18274, 25856, 48578, 39232, 43045, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 18278, 18338, 48101, 48578, 48578, 48578, 48578, 48578, 48578, 16153, 37162, 38426, 25320, 16357, 47166, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 25861, 48578, 48578, 48578, 48378, 48578, 48578, 48578, 36886, 39196, 17662, 48578, 48578, 48578, 48578, 45011, 48578, 48578, 48578, 48578, 48578, 28261, 9200, 18130, 30808, 34568, 31188, 47286, 42354, 16368, 48578, 48578, 48578, 7831, 22477, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 17675, 19866, 18229, 41680, 48578, 48578, 48578, 48578, 11488, 13339, 31819, 18031, 48578, 48578, 17546, 48578, 48578, 48380, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 61696, 61697, 61698, 61699, 61700, 61701, 61702, 61703, 61704, 61705, 61706, 61707, 61708, 0, 0, 0, 0, 0, 0, 0, 0, 61717, 61718, 61719, 61720, 61721, 0, 0, 0, 61725, 61726, 61727, 0, 61729, 61730, 61731, 0, 61733, 61734, 61735, 61736, 61737, 61738, 61739, 61740, 61741, 61742, 61743, 61744, 61745, 61746, 61747, 61748, 61749, 61750, 61751, 0, 0, 0, 0, 0, 0, 61758, 0, 0, 61761, 61762, 0, 61764, 61765, 0, 61767, 0, 61769, 61770, 0, 61772, 61773, 61774, 61775, 61776, 61777, 61778, 61779, 61780, 61781, 0, 0, 0, 61785, 0, 61787, 61788, 61789, 61790, 61791, 61792, 61793, 61794, 61795, 61796, 61797, 61798, 61799, 61800, 61801, 61802, 61803, 61804, 61805, 0, 0, 0, 61809, 0, 61811, 61812, 61813, 61814, 61815, 61816, 61817, 0, 61819, 61820, 61821, 61822, 61823, 61824, 61825, 0, 61827, 61828, 61829, 61830, 61831, 61832, 0, 0, 61835, 61836, 61837, 61838, 0, 0, 0, 61842, 0, 61844, 0, 61846, 61847, 0, 61849, 61850, 61851, 0, 61853, 61854, 61855, 61856, 0, 0, 0, 61860, 0, 0, 61863, 61864, 61865, 61866, 61867, 61868, 61869, 0, 0, 0, 61873, 61874, 61875, 61876, 61877, 61878, 0, 0, 0, 0, 0, 0, 61885, 61886, 61887, 61888, 61889, 61890, 61891, 0, 61893, 61894, 61895, 0, 61897, 61898, 61899, 0, 0, 0, 61903, 61904, 61905, 61906, 0, 61908, 61909, 61910, 61911, 61912, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61922, 61923, 61924, 0, 0, 61927, 61928, 61929, 61930, 61931, 61932, 61933, 0, 0, 0, 0, 61938, 61939, 61940, 61941, 0, 0, 0, 0, 61946, 61947, 0, 61949, 61950, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +626: 2, 1, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 2, 2, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48578, 39490, 48578, 48578, 39311, 39161, 48578, 48578, 33320, 48578, 48578, 48578, 16003, 39166, 48578, 48578, 48578, 16005, 48578, 48578, 26171, 48578, 16006, 22731, 48578, 34479, 47624, 48578, 36306, 41499, 28571, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 26442, 35389, 48578, 48578, 10012, 48578, 48578, 38604, 48578, 44194, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 45443, 48578, 43020, 38736, 17902, 32204, 37740, 10782, 39081, 36563, 45138, 48578, 42582, 19548, 18858, 15068, 48578, 15360, 48578, 48578, 19549, 41062, 48578, 48578, 35865, 48578, 13693, 48578, 48578, 48578, 44812, 48578, 48578, 48578, 12912, 48578, 48578, 47506, 35814, 48578, 32746, 41189, 44530, 14585, 8107, 48578, 32135, 48578, 9367, 19965, 45687, 48578, 29066, 33774, 48578, 48578, 48578, 24415, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 16846, 16577, 48578, 12294, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 15566, 48578, 48578, 11700, 48578, 41771, 35065, 34355, 48578, 22946, 46837, 36873, 32048, 14193, 48578, 40532, 32828, 44284, 48578, 48578, 43083, 43084, 40915, 15079, 15953, 48578, 48578, 48578, 48578, 17637, 43352, 48578, 17970, 48578, 13986, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 40533, 14498, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 30433, 33381, 48578, 13707, 12943, 24150, 43118, 38963, 16095, 36877, 22580, 17973, 23349, 28801, 10736, 36361, 48578, 36878, 48578, 48578, 48578, 48578, 48578, 24151, 28171, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 45859, 8108, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 61952, 0, 61954, 61955, 0, 0, 61958, 61959, 0, 61961, 61962, 61963, 0, 0, 61966, 61967, 61968, 0, 61970, 61971, 0, 61973, 0, 0, 61976, 0, 0, 61979, 0, 0, 0, 61983, 61984, 61985, 61986, 61987, 61988, 61989, 0, 0, 61992, 61993, 0, 61995, 61996, 0, 61998, 0, 62000, 62001, 62002, 62003, 62004, 62005, 62006, 62007, 62008, 0, 62010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62020, 0, 0, 0, 0, 62025, 0, 62027, 62028, 0, 0, 62031, 62032, 0, 62034, 0, 62036, 62037, 62038, 0, 62040, 62041, 62042, 0, 62044, 62045, 0, 0, 62048, 0, 0, 0, 0, 0, 62054, 0, 62056, 0, 0, 0, 62060, 0, 0, 62063, 62064, 62065, 0, 62067, 62068, 62069, 62070, 62071, 62072, 62073, 62074, 62075, 62076, 62077, 62078, 62079, 62080, 62081, 62082, 62083, 0, 0, 62086, 0, 62088, 62089, 62090, 62091, 62092, 62093, 62094, 0, 62096, 62097, 0, 62099, 0, 0, 0, 62103, 0, 0, 0, 0, 0, 62109, 0, 0, 0, 62113, 62114, 0, 0, 0, 0, 0, 62120, 62121, 62122, 62123, 0, 0, 62126, 0, 62128, 0, 62130, 62131, 62132, 62133, 62134, 62135, 62136, 62137, 62138, 62139, 62140, 0, 0, 62143, 62144, 62145, 62146, 62147, 62148, 62149, 62150, 62151, 62152, 0, 0, 62155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62169, 0, 62171, 62172, 62173, 62174, 62175, 0, 0, 62178, 62179, 62180, 62181, 62182, 62183, 62184, 62185, 62186, 62187, 62188, 62189, 62190, 62191, 62192, 0, 0, 62195, 62196, 62197, 62198, 62199, 62200, 62201, 62202, 62203, 62204, 62205, 62206, 62207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +627: 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 1, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 48578, 36650, 48578, 45228, 14218, 34468, 22809, 29625, 15466, 26022, 40278, 40279, 40659, 26023, 36584, 35751, 11707, 31993, 48578, 15467, 46691, 48578, 40280, 48290, 14771, 27668, 40485, 48578, 48578, 36887, 30563, 48578, 29964, 48578, 35472, 14367, 48578, 48578, 48578, 18285, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 35071, 48578, 8864, 13323, 7857, 34137, 40281, 39979, 14727, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 11363, 34720, 42166, 22182, 34063, 48578, 43961, 14600, 48578, 48578, 23203, 12962, 48578, 26842, 20966, 48578, 41669, 48578, 48578, 37823, 48578, 48578, 33182, 20967, 44329, 38093, 14233, 32239, 21484, 15026, 25642, 13259, 29937, 48578, 24801, 18210, 26197, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 13074, 48578, 48578, 48578, 12029, 27981, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 37722, 21972, 22638, 41670, 20714, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 16172, 48578, 32703, 35541, 33605, 48578, 48578, 10748, 48578, 30605, 35633, 48578, 42503, 45451, 32304, 45933, 7674, 48332, 35634, 46249, 39137, 48578, 11209, 20724, 48459, 15914, 38648, 48578, 48578, 26297, 19634, 48578, 48578, 40151, 40152, 48578, 48578, 13523, 48578, 48578, 48578, 48578, 31815, 48578, 48578, 48578, 48578, 48578, 30150, 48578, 25512, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 20976, 48578, 19064, 48578, 48578, 48578, 33441, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 46767, 7354, 40967, 8585, 48578, 42388, 28617, 47477, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 62208, 0, 62210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62226, 0, 0, 62229, 0, 0, 0, 0, 0, 62235, 62236, 0, 0, 62239, 0, 62241, 0, 0, 62244, 62245, 62246, 0, 62248, 62249, 62250, 62251, 62252, 62253, 62254, 62255, 62256, 62257, 62258, 62259, 62260, 62261, 62262, 62263, 62264, 62265, 62266, 0, 62268, 0, 0, 0, 0, 0, 0, 0, 62276, 62277, 62278, 62279, 62280, 62281, 62282, 62283, 62284, 62285, 62286, 62287, 62288, 62289, 0, 0, 0, 0, 0, 62295, 0, 0, 62298, 62299, 0, 0, 62302, 0, 0, 62305, 0, 62307, 62308, 0, 62310, 62311, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62323, 0, 0, 0, 62327, 62328, 62329, 62330, 62331, 62332, 62333, 62334, 0, 62336, 62337, 62338, 0, 0, 62341, 62342, 62343, 62344, 62345, 62346, 62347, 62348, 62349, 62350, 62351, 62352, 62353, 62354, 62355, 62356, 0, 0, 0, 0, 0, 62362, 62363, 62364, 62365, 62366, 62367, 62368, 0, 62370, 0, 0, 0, 62374, 62375, 0, 62377, 0, 0, 62380, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62390, 0, 0, 0, 0, 0, 62396, 62397, 0, 0, 62400, 62401, 0, 0, 62404, 62405, 0, 62407, 62408, 62409, 62410, 0, 62412, 62413, 62414, 62415, 62416, 0, 62418, 0, 62420, 62421, 62422, 62423, 62424, 62425, 62426, 62427, 62428, 62429, 62430, 62431, 62432, 62433, 62434, 62435, 62436, 0, 62438, 0, 62440, 62441, 62442, 0, 62444, 62445, 62446, 62447, 62448, 62449, 62450, 62451, 62452, 62453, 62454, 62455, 0, 0, 0, 0, 62460, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +628: 2, 1, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 1, 1, 2, 2, 1, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 48578, 35339, 48578, 40162, 44656, 32008, 48578, 48578, 48337, 46700, 46034, 26299, 38015, 10949, 27427, 48578, 19462, 48578, 35340, 42429, 38979, 37139, 24716, 41080, 48578, 38652, 48578, 48578, 48578, 48578, 48578, 26847, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 17946, 48578, 48578, 26300, 13629, 11819, 9955, 26072, 35341, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 26301, 48578, 48578, 48578, 48578, 48578, 47176, 24212, 14789, 48578, 21364, 23276, 43238, 18446, 12046, 48578, 44674, 8290, 37243, 34603, 12325, 38443, 11715, 28941, 12582, 48344, 17268, 48578, 29814, 11379, 48578, 48578, 13721, 29262, 48578, 48578, 47433, 48578, 40172, 46262, 31457, 41038, 48578, 33257, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 8600, 48578, 15512, 48578, 48578, 48578, 48578, 48578, 24523, 48578, 48578, 48578, 48578, 48578, 14108, 48578, 42391, 34606, 48578, 33321, 48578, 30471, 17101, 33322, 48578, 15517, 26848, 48578, 23954, 45884, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 9887, 48578, 48578, 48578, 48578, 38119, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 23955, 48578, 45591, 43628, 7368, 40078, 48578, 8610, 48578, 48578, 48578, 48578, 48578, 48578, 9978, 48578, 48578, 29818, 11823, 25102, 30644, 48578, 19907, 21329, 13421, 14710, 42804, 37146, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 27221, 9515, 41469, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 42109, 48578, 36786, 48578, 48578, 48578, 46779, 48578, 40352, 26217, 48578, 24584, 48578, 26852, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 62464, 0, 62466, 0, 0, 0, 62470, 62471, 0, 0, 0, 0, 0, 0, 0, 62479, 0, 62481, 0, 0, 0, 0, 0, 0, 62488, 0, 62490, 62491, 62492, 62493, 62494, 0, 62496, 62497, 62498, 62499, 62500, 62501, 62502, 62503, 62504, 62505, 62506, 62507, 0, 62509, 62510, 0, 0, 0, 0, 0, 0, 62517, 62518, 62519, 62520, 62521, 62522, 62523, 62524, 62525, 62526, 62527, 0, 62529, 62530, 62531, 62532, 62533, 0, 0, 0, 62537, 0, 0, 0, 0, 0, 62543, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62555, 0, 0, 62558, 62559, 0, 0, 62562, 62563, 0, 62565, 0, 0, 0, 0, 62570, 0, 62572, 62573, 62574, 62575, 62576, 62577, 62578, 62579, 62580, 62581, 62582, 62583, 62584, 62585, 62586, 62587, 62588, 62589, 62590, 62591, 0, 62593, 0, 62595, 62596, 62597, 62598, 62599, 0, 62601, 62602, 62603, 62604, 62605, 0, 62607, 0, 0, 62610, 0, 62612, 0, 0, 0, 62616, 0, 0, 62619, 0, 0, 62622, 62623, 62624, 62625, 62626, 62627, 62628, 62629, 62630, 62631, 0, 62633, 62634, 62635, 62636, 0, 62638, 62639, 62640, 62641, 62642, 62643, 62644, 62645, 62646, 62647, 62648, 62649, 62650, 62651, 62652, 0, 62654, 0, 0, 0, 0, 62659, 0, 62661, 62662, 62663, 62664, 62665, 62666, 0, 62668, 62669, 0, 0, 0, 0, 62674, 0, 0, 0, 0, 0, 0, 62681, 62682, 62683, 62684, 62685, 62686, 62687, 62688, 62689, 62690, 62691, 62692, 62693, 62694, 62695, 0, 0, 0, 62699, 62700, 62701, 62702, 62703, 62704, 62705, 0, 62707, 0, 62709, 62710, 62711, 0, 62713, 0, 0, 62716, 0, 62718, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +629: 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 2, 1, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 1, 1, 2, 2, 1, 2, 2, 1, 48578, 48578, 39280, 48578, 48578, 35210, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 35230, 41251, 48578, 48578, 48578, 48578, 48578, 24602, 44879, 48578, 48578, 45953, 48578, 35804, 41086, 38137, 42544, 29419, 26853, 36413, 30065, 48578, 13724, 31930, 42881, 48578, 48578, 48578, 48578, 37397, 9889, 48578, 48578, 21269, 48578, 48578, 48578, 48578, 14118, 48578, 48578, 48578, 48578, 48578, 48578, 9991, 43655, 25392, 48578, 39573, 48578, 30479, 48578, 45043, 26304, 43735, 32114, 48578, 48578, 48578, 14736, 48069, 48578, 48578, 48578, 48578, 48578, 31637, 48578, 48578, 48578, 28924, 38146, 34761, 48578, 15532, 48578, 48578, 27955, 27956, 37401, 9891, 45417, 48578, 48578, 48578, 48578, 48578, 24263, 24268, 48578, 39284, 21999, 48578, 28268, 27442, 48578, 48578, 18802, 48578, 34788, 48578, 40850, 48578, 48578, 14737, 48578, 40364, 48578, 48578, 48578, 48578, 35808, 43926, 48578, 45955, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 31232, 28308, 48578, 25248, 48578, 48578, 48578, 26264, 39581, 15339, 48578, 25429, 48578, 48578, 48578, 33235, 48578, 19116, 48578, 48578, 48578, 48578, 48578, 36753, 48578, 31644, 48578, 18713, 48578, 7455, 48578, 48578, 48578, 48578, 48578, 48578, 26683, 48578, 28598, 48578, 48578, 48578, 17043, 29219, 48578, 48578, 39816, 48578, 21124, 48578, 48578, 48578, 48578, 46556, 48578, 28097, 48578, 48578, 33173, 18370, 48578, 48345, 18960, 48578, 48578, 19473, 48578, 48578, 48578, 42538, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 40526, 48578, 48578, 23436, 44531, 22145, 48578, 48578, 48578, 48578, 48578, 34650, 46540, 48578, 43912, 48578, 15906, 48578, 20393, 40452, 48578, 48578, 18891, 48578, 48578, 34724, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 62720, 62721, 0, 62723, 62724, 0, 62726, 62727, 62728, 62729, 62730, 62731, 62732, 62733, 62734, 62735, 62736, 62737, 62738, 62739, 62740, 62741, 0, 0, 62744, 62745, 62746, 62747, 62748, 0, 0, 62751, 62752, 0, 62754, 0, 0, 0, 0, 0, 0, 0, 0, 62763, 0, 0, 0, 62767, 62768, 62769, 62770, 0, 0, 62773, 62774, 0, 62776, 62777, 62778, 62779, 0, 62781, 62782, 62783, 62784, 62785, 62786, 0, 0, 0, 62790, 0, 62792, 0, 62794, 0, 0, 0, 0, 62799, 62800, 62801, 0, 0, 62804, 62805, 62806, 62807, 62808, 0, 62810, 62811, 62812, 0, 0, 0, 62816, 0, 62818, 62819, 0, 0, 0, 0, 0, 62825, 62826, 62827, 62828, 62829, 0, 0, 62832, 0, 0, 62835, 0, 0, 62838, 62839, 0, 62841, 0, 62843, 0, 62845, 62846, 0, 62848, 0, 62850, 62851, 62852, 62853, 0, 0, 62856, 0, 62858, 62859, 62860, 62861, 62862, 62863, 62864, 0, 0, 62867, 0, 62869, 62870, 62871, 0, 0, 0, 62875, 0, 62877, 62878, 62879, 0, 62881, 0, 62883, 62884, 62885, 62886, 62887, 0, 62889, 0, 62891, 0, 62893, 0, 62895, 62896, 62897, 62898, 62899, 62900, 0, 62902, 0, 62904, 62905, 62906, 0, 0, 62909, 62910, 0, 62912, 0, 62914, 62915, 62916, 62917, 0, 62919, 0, 62921, 62922, 0, 0, 62925, 0, 0, 62928, 62929, 0, 62931, 62932, 62933, 0, 62935, 62936, 62937, 62938, 62939, 62940, 62941, 62942, 62943, 62944, 62945, 62946, 62947, 62948, 62949, 0, 62951, 62952, 0, 0, 0, 62956, 62957, 62958, 62959, 62960, 0, 0, 62963, 0, 62965, 0, 62967, 0, 0, 62970, 62971, 0, 62973, 62974, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +630: 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 1, 2, 2, 1, 2, 1, 1, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 2, 48578, 48578, 10953, 17430, 48578, 48578, 48578, 48578, 24969, 48578, 48578, 48578, 48578, 20469, 48578, 16136, 48578, 47863, 48578, 48578, 48578, 48578, 48578, 30678, 48578, 48578, 48578, 48578, 30911, 48578, 13513, 30174, 48578, 48578, 18326, 48578, 48578, 28964, 48578, 30745, 13104, 13105, 48578, 24374, 48578, 48578, 40592, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 28104, 48578, 46516, 23437, 46917, 48578, 14122, 9083, 30176, 40738, 43935, 11629, 24399, 48578, 48578, 29451, 48578, 48578, 40702, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 30388, 48578, 10303, 30761, 48578, 48578, 43046, 48578, 36336, 13978, 25630, 48578, 20370, 48578, 48578, 48578, 48578, 48578, 45969, 44908, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 44260, 48578, 16058, 48578, 18059, 48578, 48578, 48578, 30691, 48578, 28067, 18667, 25740, 39095, 14088, 23765, 14763, 37627, 48578, 12057, 48578, 29615, 48578, 48578, 48578, 12133, 38262, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 15832, 48578, 48578, 48578, 12018, 48578, 48578, 30778, 24152, 31435, 31125, 22806, 8280, 48578, 34463, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 37813, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 33503, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48023, 48578, 48578, 36457, 30954, 13612, 48578, 48578, 37072, 48578, 48578, 37817, 48578, 48578, 48578, 18199, 40486, 48578, 33511, 46851, 48578, 48578, 48578, 48578, 10798, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 47366, 38271, 10744, 35631, 40291, 48578, 22719, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 62976, 62977, 0, 0, 62980, 62981, 62982, 62983, 0, 62985, 62986, 62987, 62988, 0, 62990, 0, 62992, 0, 62994, 62995, 62996, 62997, 62998, 0, 63000, 63001, 63002, 63003, 0, 63005, 0, 0, 63008, 63009, 0, 63011, 63012, 0, 63014, 0, 0, 0, 63018, 0, 63020, 63021, 0, 63023, 63024, 63025, 63026, 63027, 63028, 63029, 63030, 63031, 63032, 63033, 63034, 63035, 63036, 0, 63038, 0, 0, 0, 63042, 0, 0, 0, 0, 0, 0, 0, 63050, 63051, 0, 63053, 63054, 0, 63056, 63057, 63058, 63059, 63060, 63061, 63062, 63063, 63064, 63065, 63066, 0, 63068, 0, 0, 63071, 63072, 0, 63074, 0, 0, 0, 63078, 0, 63080, 63081, 63082, 63083, 63084, 0, 0, 63087, 63088, 63089, 63090, 63091, 63092, 63093, 0, 63095, 0, 63097, 0, 63099, 63100, 63101, 0, 63103, 0, 0, 0, 0, 0, 0, 0, 0, 63112, 0, 63114, 0, 63116, 63117, 63118, 0, 0, 63121, 63122, 63123, 63124, 63125, 63126, 63127, 63128, 63129, 63130, 63131, 63132, 63133, 63134, 63135, 63136, 0, 63138, 63139, 63140, 0, 63142, 63143, 0, 0, 0, 0, 0, 0, 63150, 0, 63152, 63153, 63154, 63155, 63156, 63157, 63158, 0, 63160, 63161, 63162, 63163, 63164, 63165, 63166, 63167, 63168, 63169, 63170, 63171, 0, 63173, 63174, 63175, 63176, 63177, 63178, 63179, 63180, 63181, 63182, 0, 63184, 63185, 0, 0, 0, 63189, 63190, 0, 63192, 63193, 0, 63195, 63196, 63197, 0, 0, 63200, 0, 0, 63203, 63204, 63205, 63206, 0, 63208, 63209, 63210, 63211, 63212, 63213, 63214, 63215, 63216, 63217, 63218, 63219, 63220, 63221, 63222, 63223, 0, 0, 0, 0, 0, 63229, 0, 63231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +631: 2, 1, 1, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 2, 1, 1, 1, 2, 2, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 48578, 33461, 34145, 34469, 48578, 21078, 48578, 48578, 48578, 15843, 26161, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 40292, 48578, 48578, 48578, 48578, 48578, 46852, 48578, 48578, 48578, 26650, 48578, 34722, 22723, 48578, 13142, 42612, 48578, 35324, 11394, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 12034, 37438, 48578, 48578, 40306, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 41076, 48578, 48578, 48578, 48578, 17739, 22204, 48578, 48578, 36475, 14785, 48578, 46857, 34404, 37190, 48578, 48578, 10950, 48578, 36476, 45989, 17806, 48578, 32084, 37895, 48578, 13875, 8068, 48578, 48578, 48578, 24940, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 34949, 48578, 48578, 48578, 48578, 48578, 8843, 40316, 8902, 48578, 11834, 48578, 48578, 48578, 21933, 17684, 48578, 48578, 48578, 23278, 43845, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 34686, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 28841, 48578, 44365, 47940, 27168, 18255, 48578, 48578, 25100, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 20850, 40608, 48578, 48578, 48578, 48578, 41824, 48578, 48578, 48578, 48578, 48578, 21012, 23475, 34692, 21013, 23960, 48578, 48578, 48351, 48578, 34419, 48578, 48578, 48578, 48578, 48578, 37916, 13593, 35356, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 40184, 32479, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 26495, 48578, 48578, 48578, 48578, 30997, 48578, 48578, 48578, 48578, 48578, 48578, 28322, 25423, 48578, 48578, 19932, 48578, 48578, 48578, 27770, 48578, 48578, 16391, 48578, 48578, 48578, 48578, 41063, 48578, 48578, 48578, 40743, 48578, 48578, 48578, 48578, 9191, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 37828, 48578, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 63232, 0, 0, 0, 63236, 0, 63238, 63239, 63240, 0, 0, 63243, 63244, 63245, 63246, 63247, 63248, 63249, 63250, 63251, 0, 63253, 63254, 63255, 63256, 63257, 0, 63259, 63260, 63261, 0, 63263, 0, 0, 63266, 0, 0, 63269, 0, 0, 63272, 63273, 63274, 63275, 63276, 63277, 63278, 63279, 63280, 0, 0, 63283, 63284, 0, 63286, 63287, 63288, 63289, 63290, 63291, 63292, 0, 63294, 63295, 63296, 63297, 0, 0, 63300, 63301, 0, 0, 63304, 0, 0, 0, 63308, 63309, 0, 63311, 0, 0, 0, 63315, 0, 0, 63318, 0, 0, 63321, 63322, 63323, 0, 63325, 63326, 63327, 63328, 63329, 63330, 63331, 0, 63333, 63334, 63335, 63336, 63337, 0, 0, 0, 63341, 0, 63343, 63344, 63345, 0, 0, 63348, 63349, 63350, 0, 0, 63353, 63354, 63355, 63356, 63357, 63358, 63359, 0, 63361, 63362, 63363, 63364, 63365, 63366, 63367, 63368, 63369, 63370, 63371, 63372, 0, 63374, 0, 0, 0, 0, 63379, 63380, 0, 63382, 63383, 63384, 63385, 63386, 63387, 63388, 0, 0, 63391, 63392, 63393, 63394, 0, 63396, 63397, 63398, 63399, 63400, 0, 0, 0, 0, 0, 63406, 63407, 0, 63409, 0, 63411, 63412, 63413, 63414, 63415, 0, 0, 0, 63419, 63420, 63421, 63422, 63423, 63424, 63425, 63426, 0, 0, 63429, 63430, 63431, 63432, 63433, 63434, 63435, 0, 63437, 63438, 63439, 63440, 0, 63442, 63443, 63444, 63445, 63446, 63447, 0, 0, 63450, 63451, 0, 63453, 63454, 63455, 0, 63457, 63458, 0, 63460, 63461, 63462, 63463, 0, 63465, 63466, 63467, 0, 63469, 63470, 63471, 63472, 0, 63474, 63475, 63476, 63477, 63478, 63479, 63480, 63481, 63482, 63483, 0, 63485, 63486, 63487, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +632: 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 1, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 1, 1, 1, 1, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, 48578, 48578, 22923, 48578, 48578, 48578, 37598, 48578, 9833, 48578, 26893, 22691, 48578, 48578, 11696, 48578, 48578, 48578, 39620, 27882, 48578, 48578, 48578, 48578, 48578, 48578, 19128, 10083, 34124, 46415, 14194, 27269, 48578, 34125, 31982, 34523, 48578, 11601, 41772, 48578, 48578, 18115, 30435, 46998, 18722, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 46842, 48578, 44110, 48578, 48578, 48578, 48578, 48578, 15870, 42306, 30274, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 42756, 10641, 19840, 48578, 7296, 48578, 13469, 48578, 35478, 48578, 21605, 48578, 48578, 48578, 48578, 48578, 48578, 30795, 24696, 41100, 48578, 24978, 48578, 48578, 48578, 48578, 45198, 41102, 11840, 29918, 48578, 23204, 48578, 36383, 18630, 12373, 16912, 10387, 48578, 33668, 19867, 48578, 48578, 48578, 48578, 24805, 22450, 34088, 48578, 13502, 44064, 30613, 48578, 40004, 48578, 48578, 48578, 48578, 48578, 43239, 25785, 48578, 48578, 11397, 48578, 48578, 48578, 48578, 23888, 15817, 48578, 48578, 48578, 45618, 48578, 37912, 48578, 48578, 48578, 20204, 48578, 48578, 48578, 48578, 43646, 14539, 24603, 30986, 48578, 48578, 48578, 42378, 48578, 48578, 48578, 23171, 37923, 48578, 32376, 48578, 48578, 40006, 32377, 48578, 48578, 18145, 48578, 48578, 48578, 48578, 13926, 11235, 48578, 48578, 33873, 48578, 48578, 47882, 14081, 19796, 48578, 48578, 35921, 48578, 29248, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 21065, 31367, 48578, 48578, 48578, 48578, 31023, 21885, 48578, 48578, 31901, 37365, 48578, 48578, 48578, 29147, 35021, 48578, 48578, 48578, 42728, 48578, 16425, 19182, 29259, 48013, 48578, 20601, 48578, 48578, 39023, 33729, 48578, 42757, 47023, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 26348, 48578, 47279, 22183, 35941, 29156, 21911, 18212, 48578, 47041, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 63488, 63489, 0, 63491, 63492, 63493, 0, 63495, 0, 63497, 0, 0, 63500, 63501, 0, 63503, 63504, 63505, 0, 0, 63508, 63509, 63510, 63511, 63512, 63513, 0, 0, 0, 0, 0, 0, 63520, 0, 0, 0, 63524, 0, 0, 63527, 63528, 0, 0, 0, 0, 63533, 63534, 63535, 63536, 63537, 63538, 63539, 0, 63541, 0, 63543, 63544, 63545, 63546, 63547, 0, 0, 0, 63551, 63552, 63553, 63554, 63555, 63556, 63557, 63558, 0, 0, 0, 63562, 0, 63564, 0, 63566, 0, 63568, 0, 63570, 63571, 63572, 63573, 63574, 63575, 0, 0, 0, 63579, 0, 63581, 63582, 63583, 63584, 0, 0, 0, 0, 63589, 0, 63591, 0, 0, 0, 0, 0, 63597, 0, 0, 63600, 63601, 63602, 63603, 0, 0, 0, 63607, 0, 0, 0, 63611, 0, 63613, 63614, 63615, 63616, 63617, 0, 0, 63620, 63621, 0, 63623, 63624, 63625, 63626, 0, 0, 63629, 63630, 63631, 0, 63633, 0, 63635, 63636, 63637, 0, 63639, 63640, 63641, 63642, 0, 0, 0, 0, 63647, 63648, 63649, 0, 63651, 63652, 63653, 0, 0, 63656, 0, 63658, 63659, 0, 0, 63662, 63663, 0, 63665, 63666, 63667, 63668, 0, 0, 63671, 63672, 0, 63674, 63675, 0, 0, 0, 63679, 63680, 0, 63682, 0, 63684, 63685, 63686, 63687, 63688, 63689, 63690, 0, 0, 63693, 63694, 63695, 63696, 0, 0, 63699, 63700, 0, 0, 63703, 63704, 63705, 0, 0, 63708, 63709, 63710, 0, 63712, 0, 0, 0, 0, 63717, 0, 63719, 63720, 0, 0, 63723, 0, 0, 63726, 63727, 63728, 63729, 63730, 63731, 63732, 0, 63734, 0, 0, 0, 0, 0, 0, 63741, 0, 63743, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +633: 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, 1, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 2, 1, 1, 2, 2, 2, 1, 1, 1, 2, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 1, 1, 2, 1, 1, 1, 1, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 2, 48578, 48578, 48578, 8331, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 10891, 41032, 19635, 16547, 21762, 38384, 37386, 48578, 31922, 37829, 13734, 48578, 34472, 48578, 46431, 28425, 48578, 48578, 39144, 46258, 47085, 48578, 28112, 48578, 48578, 48578, 48578, 20179, 48578, 48578, 48578, 48578, 48578, 42247, 17055, 48578, 48578, 12889, 48578, 19299, 21321, 48578, 48578, 48578, 48578, 48578, 48578, 22219, 45030, 48578, 48578, 48578, 48578, 48578, 48578, 19663, 48578, 35352, 48578, 20209, 48578, 23333, 38398, 23144, 8825, 22239, 48578, 48578, 8632, 48578, 9994, 48578, 48070, 24638, 48578, 48578, 48578, 15065, 31068, 41730, 48578, 36009, 27851, 48578, 48578, 48578, 22855, 38737, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 18339, 18340, 48578, 15243, 48578, 48578, 42117, 17097, 48578, 32540, 43529, 14965, 22321, 48578, 45109, 48578, 48578, 41383, 48578, 39085, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 39190, 48578, 48578, 17420, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 18341, 48578, 48578, 18109, 30389, 14456, 48578, 48578, 48578, 48578, 19973, 48578, 48578, 42731, 48578, 48578, 48578, 48578, 48578, 37319, 28108, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 43416, 43536, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 19820, 37777, 34370, 13786, 14034, 48578, 37372, 37463, 24445, 48578, 48578, 48578, 32525, 48578, 48578, 11702, 40931, 47271, 48143, 48578, 48578, 48578, 48578, 48578, 48578, 37755, 41483, 48578, 19821, 10268, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 19593, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 33553, 37073, 48578, 8899, 39116, 29725, 45771, 48578, 48578, 19034, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 63744, 63745, 63746, 0, 63748, 63749, 63750, 63751, 63752, 63753, 63754, 63755, 63756, 0, 0, 0, 0, 0, 0, 0, 63764, 0, 0, 0, 63768, 0, 63770, 0, 0, 63773, 63774, 0, 0, 0, 63778, 0, 63780, 63781, 63782, 63783, 0, 63785, 63786, 63787, 63788, 63789, 0, 0, 63792, 63793, 0, 63795, 0, 0, 63798, 63799, 63800, 63801, 63802, 63803, 0, 0, 63806, 63807, 63808, 63809, 63810, 63811, 0, 63813, 0, 63815, 0, 63817, 0, 0, 0, 0, 0, 63823, 63824, 0, 63826, 0, 63828, 0, 0, 63831, 63832, 63833, 0, 0, 0, 63837, 0, 0, 63840, 63841, 63842, 0, 0, 63845, 63846, 63847, 63848, 63849, 63850, 63851, 63852, 63853, 0, 0, 63856, 0, 63858, 63859, 0, 0, 63862, 0, 0, 0, 0, 63867, 0, 63869, 63870, 0, 63872, 0, 63874, 63875, 63876, 63877, 63878, 63879, 63880, 63881, 63882, 63883, 63884, 63885, 0, 63887, 63888, 0, 63890, 63891, 63892, 63893, 63894, 63895, 63896, 63897, 0, 63899, 63900, 0, 0, 0, 63904, 63905, 63906, 63907, 0, 63909, 63910, 0, 63912, 63913, 63914, 63915, 63916, 0, 0, 63919, 63920, 63921, 63922, 63923, 63924, 63925, 63926, 63927, 0, 0, 63930, 63931, 63932, 63933, 63934, 63935, 63936, 63937, 63938, 0, 0, 0, 0, 0, 63944, 0, 0, 0, 63948, 63949, 63950, 0, 63952, 63953, 0, 0, 0, 0, 63958, 63959, 63960, 63961, 63962, 63963, 0, 0, 63966, 0, 0, 63969, 63970, 63971, 63972, 63973, 63974, 63975, 63976, 0, 63978, 63979, 63980, 63981, 63982, 63983, 63984, 63985, 63986, 63987, 63988, 0, 0, 63991, 0, 0, 0, 0, 63996, 63997, 0, 63999, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +634: 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, 1, 1, 2, 1, 2, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 35580, 48578, 17726, 48578, 44939, 48578, 38436, 48578, 25336, 48578, 45772, 18432, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 9941, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 14219, 48578, 10431, 48578, 48578, 48578, 48578, 48578, 35480, 48578, 36589, 48578, 48578, 48578, 48578, 48578, 48578, 47042, 36462, 7518, 47911, 48146, 22639, 48578, 33292, 36547, 26037, 48578, 48578, 48578, 48578, 33529, 45737, 48578, 48578, 48578, 10944, 48578, 41908, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 28038, 18131, 48578, 48578, 48578, 48578, 48578, 48578, 10682, 48578, 48578, 35311, 48578, 48578, 48578, 48578, 48578, 28394, 48578, 48578, 19636, 13957, 18068, 48578, 11837, 45666, 43441, 48578, 40000, 48578, 8743, 8304, 23460, 48578, 10684, 48578, 30879, 48578, 7407, 34151, 48578, 48578, 10892, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 29074, 48578, 19868, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 29224, 48578, 39201, 48578, 48578, 9884, 48578, 7281, 48578, 48578, 34090, 17681, 48578, 19645, 10687, 39146, 46560, 48578, 48578, 35684, 48578, 26571, 48578, 48578, 29740, 48578, 48578, 40793, 31097, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 39309, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 44657, 48578, 48578, 48578, 48578, 48578, 48578, 20986, 39312, 25937, 48578, 31458, 48578, 9844, 48578, 48578, 48578, 42135, 19888, 33407, 25831, 48578, 19474, 47098, 37780, 48578, 8601, 7410, 42620, 7411, 48578, 48578, 48578, 48578, 24213, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 39388, 48578, 48578, 48578, 48578, 21618, 36005, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 64001, 0, 64003, 0, 64005, 0, 64007, 0, 64009, 0, 0, 64012, 64013, 64014, 64015, 64016, 64017, 64018, 64019, 64020, 64021, 64022, 0, 64024, 64025, 64026, 64027, 64028, 64029, 64030, 0, 64032, 0, 64034, 64035, 64036, 64037, 64038, 0, 64040, 0, 64042, 64043, 64044, 64045, 64046, 64047, 0, 0, 0, 0, 0, 0, 64054, 0, 0, 0, 64058, 64059, 64060, 64061, 0, 0, 64064, 64065, 64066, 0, 64068, 0, 64070, 64071, 64072, 64073, 64074, 64075, 64076, 64077, 64078, 64079, 64080, 64081, 0, 0, 64084, 64085, 64086, 64087, 64088, 64089, 0, 64091, 64092, 0, 64094, 64095, 64096, 64097, 64098, 0, 64100, 64101, 0, 0, 0, 64105, 0, 0, 0, 64109, 0, 64111, 0, 0, 0, 64115, 0, 64117, 0, 64119, 0, 0, 64122, 64123, 0, 64125, 64126, 64127, 64128, 64129, 64130, 64131, 64132, 0, 64134, 0, 64136, 64137, 64138, 64139, 64140, 64141, 64142, 64143, 64144, 64145, 64146, 0, 64148, 0, 64150, 64151, 0, 64153, 0, 64155, 64156, 0, 0, 64159, 0, 0, 0, 0, 64164, 64165, 0, 64167, 0, 64169, 64170, 0, 64172, 64173, 0, 0, 64176, 64177, 64178, 64179, 64180, 64181, 64182, 64183, 64184, 0, 64186, 64187, 64188, 64189, 64190, 64191, 64192, 64193, 64194, 64195, 64196, 64197, 64198, 64199, 64200, 64201, 0, 64203, 64204, 64205, 64206, 64207, 64208, 0, 0, 0, 64212, 0, 64214, 0, 64216, 64217, 64218, 0, 0, 0, 0, 64223, 0, 0, 0, 64227, 0, 0, 0, 0, 64232, 64233, 64234, 64235, 0, 64237, 64238, 64239, 64240, 64241, 64242, 64243, 64244, 64245, 64246, 64247, 64248, 0, 64250, 64251, 64252, 64253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +635: 2, 1, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 1, 2, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 48578, 17549, 17749, 48578, 48578, 45668, 45944, 43257, 39162, 48578, 39163, 14450, 41692, 48578, 48578, 28039, 48578, 48578, 48578, 48578, 48578, 16374, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 45128, 48578, 48578, 48578, 48578, 48578, 47235, 48578, 10062, 11411, 19102, 45261, 16982, 20320, 41470, 48578, 48578, 48578, 39832, 17750, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 12489, 48578, 48578, 48578, 27473, 28921, 48578, 27181, 48578, 25106, 47382, 30318, 35816, 48578, 48578, 48578, 43729, 36296, 17060, 48578, 48578, 48578, 48578, 31230, 48578, 26218, 33089, 25107, 10760, 40201, 48578, 48578, 17063, 8074, 26489, 22055, 48578, 48578, 48578, 14277, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 17700, 48578, 27063, 48578, 48578, 40358, 30066, 48578, 17205, 10480, 33632, 19113, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 43657, 48578, 20337, 48578, 48578, 48578, 48578, 7417, 48578, 48578, 48578, 35805, 42632, 37201, 48578, 48578, 48578, 25553, 48578, 48527, 48578, 24272, 48578, 30070, 41254, 48578, 28462, 13572, 48578, 48578, 23693, 48578, 48578, 48578, 48578, 48578, 45840, 22088, 46339, 19551, 30922, 48578, 17188, 14860, 48578, 17189, 17918, 17651, 18017, 48578, 48578, 48578, 45981, 11068, 35874, 31137, 48578, 33823, 43612, 48578, 48578, 31492, 48578, 48578, 19292, 48578, 39147, 17741, 39153, 39203, 17451, 23889, 48578, 24548, 48578, 48578, 10526, 48578, 48578, 48578, 22362, 38939, 17294, 48578, 48578, 48578, 48578, 48578, 13539, 48578, 13487, 37549, 48578, 48578, 13488, 45310, 22034, 48578, 25802, 11269, 48578, 46550, 48578, 48578, 48578, 30597, 22494, 19279, 23527, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 15573, 48578, 34475, 48578, 13414, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 64256, 0, 0, 64259, 64260, 0, 0, 0, 0, 64265, 0, 0, 0, 64269, 64270, 0, 64272, 64273, 64274, 64275, 64276, 0, 64278, 64279, 64280, 64281, 64282, 64283, 64284, 64285, 0, 64287, 64288, 64289, 64290, 64291, 0, 64293, 0, 0, 0, 0, 0, 0, 0, 64301, 64302, 64303, 0, 0, 64306, 64307, 64308, 64309, 64310, 64311, 64312, 64313, 64314, 64315, 64316, 64317, 64318, 64319, 64320, 64321, 64322, 0, 64324, 64325, 64326, 0, 0, 64329, 0, 64331, 0, 0, 0, 0, 64336, 64337, 64338, 0, 0, 0, 64342, 64343, 64344, 64345, 0, 64347, 0, 0, 0, 0, 0, 64353, 64354, 0, 0, 0, 0, 64359, 64360, 64361, 0, 64363, 64364, 64365, 64366, 64367, 64368, 64369, 64370, 0, 64372, 0, 64374, 64375, 0, 0, 64378, 0, 0, 0, 0, 64383, 64384, 64385, 64386, 64387, 64388, 64389, 0, 64391, 0, 64393, 64394, 64395, 64396, 0, 64398, 64399, 64400, 0, 0, 0, 64404, 64405, 64406, 0, 64408, 0, 64410, 0, 64412, 0, 0, 64415, 0, 0, 64418, 64419, 0, 64421, 64422, 64423, 64424, 64425, 0, 0, 0, 0, 0, 64431, 0, 0, 64434, 0, 0, 0, 0, 64439, 64440, 64441, 0, 0, 0, 0, 64446, 0, 0, 64449, 64450, 0, 64452, 64453, 0, 64455, 0, 0, 0, 0, 0, 0, 64462, 0, 64464, 64465, 0, 64467, 64468, 64469, 0, 0, 0, 64473, 64474, 64475, 64476, 64477, 0, 64479, 0, 0, 64482, 64483, 0, 0, 0, 64487, 0, 0, 64490, 0, 64492, 64493, 64494, 0, 0, 0, 0, 64499, 64500, 64501, 64502, 64503, 64504, 64505, 0, 64507, 0, 64509, 0, 64511, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +636: 2, 2, 2, 1, 1, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 1, 2, 1, 1, 1, 1, 2, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 1, 1, 1, 1, 2, 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 48578, 48578, 48578, 25787, 37120, 48578, 48578, 44357, 38653, 48578, 36554, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 17058, 48578, 48578, 48578, 48578, 48578, 35972, 30654, 48578, 48578, 48578, 48578, 48578, 48578, 25116, 24631, 48578, 41290, 48578, 48578, 48578, 48578, 16105, 36733, 17315, 11241, 48578, 37257, 48578, 40604, 44024, 27883, 10788, 48578, 18279, 13582, 48578, 28030, 48578, 28159, 48578, 25309, 48578, 48578, 48578, 7326, 39355, 48578, 48578, 48578, 22471, 35024, 33128, 48578, 48578, 48578, 43122, 48578, 48578, 48578, 48578, 43145, 40034, 48578, 46692, 13552, 48578, 48578, 48578, 48578, 26616, 48578, 48578, 48578, 26334, 22185, 48578, 48578, 48578, 31185, 25341, 48578, 48578, 48578, 48578, 48578, 48578, 29941, 11851, 14049, 44460, 48578, 48578, 48578, 47844, 48578, 39148, 18527, 27755, 36101, 48578, 48578, 48578, 30313, 48578, 27434, 26658, 48578, 16572, 48578, 30974, 48578, 25171, 27719, 38030, 9727, 48578, 18379, 35431, 48578, 48578, 21941, 33446, 27182, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 37921, 38936, 25454, 48578, 48578, 8633, 38149, 48578, 48578, 48578, 24375, 46210, 48578, 43866, 18172, 37586, 7666, 20121, 48578, 48578, 48578, 48578, 48534, 45914, 9095, 31805, 41995, 48578, 48578, 13403, 32049, 48578, 48578, 48578, 48578, 29787, 45817, 48578, 48578, 33504, 16305, 8849, 42746, 15272, 48578, 40448, 34371, 36831, 48578, 48578, 13321, 48578, 48578, 37016, 39900, 38483, 29520, 18884, 48578, 48578, 48578, 48578, 23526, 48578, 48578, 48578, 35035, 11983, 33437, 47321, 46159, 37887, 23528, 8554, 48578, 48578, 13433, 48578, 48578, 28395, 40074, 32516, 37160, 38101, 44056, 26989, 44860, 47232, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 35165, 48578, 16378, 33752, 48578, 46123, 29811, 48578, 48578, 36837, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 64512, 64513, 64514, 0, 0, 64517, 64518, 0, 0, 64521, 0, 64523, 64524, 64525, 64526, 64527, 64528, 64529, 0, 64531, 64532, 64533, 64534, 64535, 0, 0, 64538, 64539, 64540, 64541, 64542, 64543, 0, 0, 64546, 0, 64548, 64549, 64550, 64551, 0, 0, 0, 0, 64556, 0, 64558, 0, 0, 0, 0, 64563, 0, 0, 64566, 0, 64568, 0, 64570, 0, 64572, 64573, 64574, 0, 0, 64577, 64578, 64579, 0, 0, 0, 64583, 64584, 64585, 0, 64587, 64588, 64589, 64590, 0, 0, 64593, 0, 0, 64596, 64597, 64598, 64599, 0, 64601, 64602, 64603, 0, 0, 64606, 64607, 64608, 0, 0, 64611, 64612, 64613, 64614, 64615, 64616, 0, 0, 0, 0, 64621, 64622, 64623, 0, 64625, 0, 0, 0, 0, 64630, 64631, 64632, 0, 64634, 0, 0, 64637, 0, 64639, 0, 64641, 0, 0, 0, 0, 64646, 0, 0, 64649, 64650, 0, 0, 0, 64654, 64655, 64656, 64657, 64658, 64659, 64660, 64661, 64662, 0, 0, 0, 64666, 64667, 0, 0, 64670, 64671, 64672, 0, 0, 64675, 0, 0, 0, 0, 0, 64681, 64682, 64683, 64684, 0, 0, 0, 0, 0, 64690, 64691, 0, 0, 64694, 64695, 64696, 64697, 0, 0, 64700, 64701, 0, 0, 0, 0, 0, 64707, 0, 0, 0, 64711, 64712, 0, 64714, 64715, 0, 0, 0, 0, 0, 64721, 64722, 64723, 64724, 0, 64726, 64727, 64728, 0, 0, 0, 0, 0, 0, 0, 0, 64737, 64738, 0, 64740, 64741, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64751, 64752, 64753, 64754, 64755, 64756, 64757, 0, 64759, 0, 0, 64762, 0, 0, 64765, 64766, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +637: 2, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 48578, 10690, 29644, 9962, 43846, 34781, 48578, 38567, 48578, 29815, 18694, 48578, 15332, 48578, 8852, 48578, 48578, 48578, 48578, 28359, 48578, 8853, 38131, 43852, 48578, 28403, 16593, 48578, 48578, 48578, 48578, 48578, 24614, 48578, 40463, 41715, 30231, 29507, 48578, 48578, 48578, 48578, 35602, 48578, 32599, 33540, 48578, 48578, 48578, 48578, 35603, 48578, 48578, 48578, 48578, 48578, 12351, 48578, 27090, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 34444, 48578, 48578, 48578, 48578, 16294, 48578, 17190, 34359, 42094, 48578, 16419, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 22614, 48578, 48578, 21666, 48578, 29302, 9671, 7970, 40599, 9430, 48578, 48578, 25192, 7327, 48578, 48578, 48578, 27401, 23540, 48578, 48578, 48578, 39890, 48578, 33779, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 19219, 28599, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 46604, 48578, 25220, 45699, 48578, 48578, 45120, 48578, 48578, 40944, 48578, 48578, 48578, 48578, 48578, 48578, 10595, 38341, 38827, 48578, 48578, 8172, 48578, 48578, 33652, 48578, 48578, 48578, 44619, 27416, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 13741, 48578, 48578, 9840, 48578, 45542, 10643, 48578, 36778, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 42786, 48578, 48578, 48578, 48578, 48578, 42170, 48578, 48578, 22919, 48578, 14882, 40163, 10644, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 23272, 48578, 48578, 48578, 8954, 48578, 25789, 48578, 48578, 48578, 43241, 27435, 40325, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 16801, 48578, 26376, 48578, 48578, 33617, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 21776, 13592, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 64768, 0, 0, 0, 0, 0, 64774, 0, 64776, 0, 0, 64779, 0, 64781, 0, 64783, 64784, 64785, 64786, 0, 64788, 0, 0, 0, 64792, 0, 0, 64795, 64796, 64797, 64798, 64799, 0, 64801, 0, 0, 0, 0, 64806, 64807, 64808, 64809, 0, 64811, 0, 0, 64814, 64815, 64816, 64817, 0, 64819, 64820, 64821, 64822, 64823, 0, 64825, 0, 64827, 64828, 64829, 64830, 64831, 64832, 64833, 64834, 0, 64836, 64837, 64838, 64839, 0, 64841, 0, 0, 0, 64845, 0, 64847, 64848, 64849, 64850, 64851, 64852, 64853, 64854, 64855, 64856, 64857, 64858, 0, 64860, 64861, 0, 64863, 0, 0, 0, 0, 0, 64869, 64870, 0, 0, 64873, 64874, 64875, 0, 0, 64878, 64879, 64880, 0, 64882, 0, 64884, 64885, 64886, 64887, 64888, 64889, 64890, 0, 0, 64893, 64894, 64895, 64896, 64897, 64898, 64899, 0, 64901, 0, 0, 64904, 64905, 0, 64907, 64908, 0, 64910, 64911, 64912, 64913, 64914, 64915, 0, 0, 0, 64919, 64920, 0, 64922, 64923, 0, 64925, 64926, 64927, 0, 0, 64930, 64931, 64932, 64933, 64934, 64935, 64936, 64937, 64938, 64939, 64940, 64941, 64942, 64943, 64944, 64945, 0, 64947, 64948, 0, 64950, 0, 0, 64953, 0, 64955, 64956, 64957, 64958, 64959, 64960, 64961, 64962, 64963, 64964, 0, 64966, 64967, 64968, 64969, 64970, 0, 64972, 64973, 0, 64975, 0, 0, 0, 64979, 64980, 64981, 64982, 64983, 64984, 64985, 64986, 0, 64988, 64989, 64990, 0, 64992, 0, 64994, 64995, 64996, 0, 0, 0, 65000, 65001, 65002, 65003, 65004, 65005, 65006, 65007, 65008, 0, 65010, 0, 65012, 65013, 0, 65015, 65016, 65017, 65018, 65019, 65020, 65021, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +638: 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 1, 1, 2, 1, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, 48578, 48578, 39391, 48578, 48578, 46862, 48578, 48578, 8977, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 46863, 47708, 41205, 24814, 35517, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 23709, 21949, 27474, 41403, 46001, 16984, 48578, 48578, 48578, 48578, 48578, 48578, 47126, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 38143, 32285, 9890, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 32635, 48578, 45046, 48578, 48071, 48578, 48578, 48578, 26498, 16878, 48578, 10568, 48578, 21667, 36578, 37682, 48578, 48578, 48578, 46668, 48578, 48578, 28277, 48578, 48578, 48578, 48578, 17197, 48578, 48578, 48578, 48578, 38848, 25152, 48578, 48578, 41589, 40963, 48578, 48578, 48578, 48578, 18371, 15724, 40968, 48578, 39154, 48578, 48578, 48578, 12048, 48578, 48578, 39170, 18263, 48578, 48578, 48578, 48578, 48578, 48578, 41604, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 42994, 10719, 22115, 48578, 48314, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 20763, 43052, 48578, 35985, 10844, 7690, 36981, 48157, 31887, 48578, 48578, 10845, 39005, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 28587, 48578, 11863, 48578, 38537, 48578, 11256, 35214, 43869, 21811, 7692, 48578, 11676, 12936, 29354, 10853, 48578, 31932, 48578, 41651, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 45818, 48578, 48578, 48578, 48578, 39639, 8298, 23080, 30779, 47272, 21744, 31436, 27897, 44841, 48578, 16896, 48411, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 31437, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 18202, 31914, 17123, 15472, 23787, 33434, 38828, 9305, 34381, 43914, 16716, 48578, 28805, 48578, 48578, 18048, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 65024, 65025, 0, 65027, 65028, 0, 65030, 65031, 0, 65033, 65034, 65035, 65036, 65037, 65038, 65039, 65040, 65041, 65042, 65043, 65044, 0, 0, 0, 0, 0, 65050, 65051, 65052, 65053, 65054, 65055, 65056, 65057, 65058, 65059, 65060, 65061, 0, 0, 0, 0, 0, 0, 65068, 65069, 65070, 65071, 65072, 65073, 0, 65075, 65076, 65077, 65078, 65079, 65080, 65081, 65082, 65083, 65084, 0, 0, 0, 65088, 65089, 65090, 65091, 65092, 65093, 65094, 65095, 0, 65097, 0, 65099, 0, 65101, 65102, 65103, 0, 0, 65106, 0, 65108, 0, 0, 0, 65112, 65113, 65114, 0, 65116, 65117, 0, 65119, 65120, 65121, 65122, 0, 65124, 65125, 65126, 65127, 0, 0, 65130, 65131, 0, 0, 65134, 65135, 65136, 65137, 0, 0, 0, 65141, 0, 65143, 65144, 65145, 0, 65147, 65148, 0, 0, 65151, 65152, 65153, 65154, 65155, 65156, 0, 65158, 65159, 65160, 65161, 65162, 65163, 65164, 65165, 0, 0, 0, 65169, 0, 65171, 65172, 65173, 65174, 65175, 65176, 65177, 65178, 65179, 0, 0, 65182, 0, 0, 0, 0, 0, 0, 65189, 65190, 0, 0, 65193, 65194, 65195, 65196, 65197, 65198, 65199, 0, 65201, 0, 65203, 0, 65205, 0, 0, 0, 0, 0, 65211, 0, 0, 0, 0, 65216, 0, 65218, 0, 65220, 65221, 65222, 65223, 65224, 65225, 65226, 65227, 65228, 0, 65230, 65231, 65232, 65233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65243, 0, 0, 65246, 65247, 65248, 65249, 65250, 65251, 65252, 65253, 65254, 0, 65256, 65257, 65258, 65259, 65260, 65261, 65262, 65263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65275, 0, 65277, 65278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +639: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 27409, 48578, 48578, 48578, 14234, 39468, 45152, 40955, 31575, 13409, 24089, 30796, 23597, 15301, 30705, 10992, 48578, 48578, 11900, 48578, 48578, 27922, 8099, 48578, 48578, 48578, 12655, 48578, 48578, 48578, 20977, 11007, 10893, 44639, 11973, 35325, 36469, 34677, 45703, 15311, 48578, 10352, 15064, 18029, 45704, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 20978, 45705, 45872, 48578, 48578, 41808, 17130, 38566, 18444, 12995, 42250, 35166, 30969, 19646, 40628, 30815, 22296, 48578, 17131, 48578, 48578, 48578, 48578, 48578, 48578, 48578, 41816, 21003, 11976, 48578, 37142, 46035, 29972, 26081, 46703, 11288, 27436, 31196, 48578, 24809, 48578, 48578, 48578, 48578, 48578, 48578, 24525, 48578, 48578, 48578, 14110, 35350, 22221, 48578, 48578, 21777, 35967, 24955, 33131, 13475, 48578, 45260, 46773, 48578, 48578, 48578, 41158, 25372, 48578, 48578, 12725, 48578, 48578, 45889, 41048, 31582, 20798, 29900, 48578, 48578, 17290, 48578, 48578, 48578, 48578, 48578, 44378, 17061, 48578, 41355, 48578, 48578, 41356, 9987, 21015, 21790, 41836, 13649, 48578, 17988, 39691, 41357, 48578, 48578, 48578, 48578, 25393, 21018, 43308, 32122, 15665, 15002, 48578, 22258, 32027, 48578, 48578, 48578, 48578, 21576, 48578, 19765, 19695, 48578, 48578, 48578, 48578, 48578, 48578, 38950, 29383, 48578, 23120, 22939, 48578, 22940, 45760, 48578, 48578, 7719, 48578, 48578, 10448, 18342, 29070, 14083, 40596, 13885, 34025, 37588, 14826, 48578, 48578, 38761, 47991, 48578, 18343, 48578, 48578, 48578, 48578, 8893, 48578, 37432, 7854, 15943, 48578, 22609, 48578, 48578, 48578, 48578, 48578, 48578, 47782, 15260, 27887, 20023, 37367, 44560, 48578, 28031, 22148, 21736, 16515, 30219, 48578, 48578, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 65280, 65281, 65282, 65283, 65284, 65285, 65286, 65287, 65288, 65289, 0, 65291, 65292, 65293, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65306, 65307, 0, 65309, 65310, 0, 0, 65313, 65314, 65315, 0, 65317, 65318, 65319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65330, 0, 0, 0, 0, 65335, 65336, 65337, 65338, 65339, 65340, 65341, 65342, 65343, 65344, 65345, 65346, 65347, 0, 0, 0, 65351, 65352, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65365, 0, 65367, 65368, 65369, 65370, 65371, 65372, 65373, 0, 0, 0, 65377, 0, 0, 0, 0, 0, 0, 0, 0, 65386, 0, 65388, 65389, 65390, 65391, 65392, 65393, 0, 65395, 65396, 65397, 0, 0, 0, 65401, 65402, 0, 0, 0, 0, 0, 65408, 0, 0, 65411, 65412, 65413, 0, 0, 65416, 65417, 0, 65419, 65420, 0, 0, 0, 0, 0, 65426, 65427, 0, 65429, 65430, 65431, 65432, 65433, 0, 0, 65436, 0, 65438, 65439, 0, 0, 0, 0, 0, 0, 65446, 0, 0, 0, 65450, 65451, 65452, 65453, 0, 0, 0, 0, 0, 0, 65460, 0, 0, 65463, 65464, 65465, 65466, 0, 65468, 0, 0, 65471, 65472, 65473, 65474, 65475, 65476, 0, 0, 65479, 0, 0, 65482, 0, 0, 65485, 65486, 0, 65488, 65489, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65499, 65500, 0, 0, 65503, 0, 65505, 65506, 65507, 65508, 0, 65510, 0, 0, 0, 65514, 0, 65516, 65517, 65518, 65519, 65520, 65521, 0, 0, 0, 0, 0, 0, 65528, 0, 0, 0, 0, 0, 65534, 65535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +640: 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 2, 2, 1, 1, 2, 1, 1, 2, 2, 1, 1, 2, 1, 1, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 28539, 48579, 48579, 48579, 37492, 41773, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 11112, 23081, 17163, 48579, 39757, 38806, 48579, 12067, 36832, 33014, 48579, 13953, 10338, 48579, 48579, 48579, 24054, 48018, 48579, 46579, 48535, 48579, 48579, 22511, 45311, 48579, 44769, 31752, 48579, 48579, 48579, 14427, 41329, 48579, 19822, 48579, 9758, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 34537, 41141, 40138, 36318, 17353, 39364, 33512, 37289, 17427, 23351, 9702, 13494, 29121, 41902, 10596, 30306, 30788, 45004, 15128, 48579, 48579, 48579, 48579, 36815, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 38342, 34034, 37419, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 35991, 48579, 41487, 47045, 26041, 41801, 21685, 48579, 48579, 12694, 48579, 11276, 48373, 14235, 46760, 29629, 48579, 8871, 48579, 12886, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 23529, 48579, 42493, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 17476, 29337, 36026, 22524, 40789, 48297, 19870, 38649, 48579, 48579, 11376, 48579, 48579, 30256, 41804, 37439, 48579, 13618, 48579, 29943, 10894, 19191, 30096, 48579, 11772, 45740, 48579, 48579, 48579, 48579, 37555, 48579, 48579, 48579, 48579, 37527, 48579, 48579, 48579, 14249, 38102, 7755, 48579, 20496, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 9808, 48579, 11285, 22990, 36288, 48278, 24501, 35772, 33079, 48579, 48579, 29339, 29340, 48579, 48579, 48579, 33253, 31297, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48338, 48579, 47086, 41809, 48579, 20987, 28466, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 32769, 32770, 32771, 0, 0, 32774, 32775, 32776, 32777, 32778, 32779, 32780, 32781, 32782, 32783, 32784, 32785, 32786, 32787, 0, 0, 0, 32791, 0, 0, 32794, 0, 0, 0, 32798, 0, 0, 32801, 32802, 32803, 0, 0, 32806, 0, 0, 32809, 32810, 0, 0, 32813, 0, 0, 32816, 32817, 32818, 0, 0, 32821, 0, 32823, 0, 32825, 32826, 32827, 32828, 32829, 32830, 32831, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32851, 32852, 32853, 32854, 0, 32856, 32857, 32858, 32859, 32860, 32861, 32862, 0, 0, 0, 32866, 32867, 32868, 32869, 32870, 32871, 32872, 32873, 32874, 32875, 32876, 32877, 32878, 32879, 32880, 32881, 32882, 32883, 0, 32885, 0, 0, 0, 0, 0, 32891, 32892, 0, 32894, 0, 0, 0, 0, 0, 32900, 0, 32902, 0, 32904, 32905, 32906, 32907, 32908, 32909, 32910, 32911, 0, 32913, 0, 32915, 32916, 32917, 32918, 32919, 32920, 32921, 32922, 32923, 0, 0, 0, 0, 0, 0, 0, 0, 32932, 32933, 0, 32935, 32936, 0, 0, 0, 32940, 0, 32942, 0, 0, 0, 0, 32947, 0, 0, 32950, 32951, 32952, 32953, 0, 32955, 32956, 32957, 32958, 0, 32960, 32961, 32962, 0, 0, 0, 32966, 0, 32968, 32969, 32970, 32971, 32972, 32973, 32974, 32975, 32976, 32977, 32978, 0, 32980, 0, 0, 0, 0, 0, 0, 0, 32988, 32989, 0, 0, 32992, 32993, 32994, 0, 0, 32997, 32998, 32999, 33000, 33001, 33002, 33003, 33004, 0, 33006, 0, 0, 33009, 0, 0, 33012, 33013, 33014, 33015, 33016, 33017, 33018, 33019, 33020, 33021, 33022, 33023, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +641: 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 1, 1, 1, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 48579, 48579, 48579, 48579, 26233, 32013, 48579, 12751, 24848, 10054, 31459, 25832, 13274, 11977, 48579, 48579, 19718, 48579, 48579, 10255, 34741, 48346, 48579, 22532, 48579, 48579, 31198, 24214, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 34711, 44675, 46036, 24017, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 30204, 48579, 48579, 48579, 48579, 46267, 40048, 48579, 36006, 12049, 23619, 48579, 40801, 34689, 45743, 9513, 48579, 48579, 8391, 29677, 48579, 48579, 48579, 48579, 10618, 48579, 48579, 48579, 48579, 48579, 31340, 19482, 48579, 48579, 48579, 48579, 48579, 45797, 48579, 23620, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 36599, 33085, 21136, 47616, 14054, 48579, 9846, 22053, 36116, 8313, 48579, 14533, 25103, 45592, 35518, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 33325, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 47120, 37197, 48579, 31635, 48579, 11587, 48579, 48579, 48579, 35798, 9065, 38241, 48579, 48579, 30223, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 27820, 9407, 48579, 48579, 23145, 48579, 12112, 32518, 8075, 23573, 48579, 48579, 48579, 48579, 48579, 48579, 28679, 24251, 48579, 48579, 48579, 48579, 48579, 48579, 20746, 25896, 24616, 25691, 16937, 48579, 48579, 48579, 10075, 48579, 48579, 48579, 48579, 48579, 48579, 39410, 48579, 10104, 48579, 40362, 46005, 48579, 48579, 48579, 48579, 48579, 34763, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 27362, 26257, 26499, 48579, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 33024, 33025, 33026, 33027, 0, 0, 33030, 0, 0, 0, 0, 0, 0, 0, 33038, 33039, 0, 33041, 33042, 0, 0, 0, 33046, 0, 33048, 33049, 0, 0, 33052, 33053, 33054, 33055, 33056, 33057, 33058, 33059, 33060, 33061, 33062, 33063, 33064, 33065, 33066, 33067, 33068, 33069, 0, 0, 0, 0, 33074, 33075, 33076, 33077, 33078, 33079, 33080, 33081, 33082, 33083, 33084, 33085, 33086, 33087, 33088, 33089, 33090, 33091, 33092, 0, 33094, 33095, 33096, 33097, 0, 0, 33100, 0, 0, 0, 33104, 0, 0, 0, 0, 33109, 33110, 0, 0, 33113, 33114, 33115, 33116, 0, 33118, 33119, 33120, 33121, 33122, 0, 0, 33125, 33126, 33127, 33128, 33129, 0, 33131, 0, 33133, 33134, 33135, 33136, 33137, 33138, 33139, 33140, 33141, 33142, 33143, 33144, 33145, 33146, 33147, 33148, 33149, 33150, 33151, 33152, 0, 0, 0, 0, 0, 33158, 0, 0, 0, 0, 33163, 0, 0, 0, 0, 33168, 33169, 33170, 33171, 33172, 33173, 33174, 33175, 33176, 0, 33178, 33179, 33180, 33181, 33182, 33183, 33184, 33185, 33186, 33187, 33188, 33189, 33190, 0, 0, 33193, 0, 33195, 0, 33197, 33198, 33199, 0, 0, 0, 33203, 33204, 0, 33206, 33207, 33208, 33209, 33210, 33211, 33212, 0, 0, 33215, 33216, 0, 33218, 0, 0, 0, 0, 33223, 33224, 33225, 33226, 33227, 33228, 0, 0, 33231, 33232, 33233, 33234, 33235, 33236, 0, 0, 0, 0, 0, 33242, 33243, 33244, 0, 33246, 33247, 33248, 33249, 33250, 33251, 0, 33253, 0, 33255, 0, 0, 33258, 33259, 33260, 33261, 33262, 0, 33264, 33265, 33266, 33267, 33268, 33269, 33270, 33271, 33272, 33273, 33274, 0, 0, 0, 33278, 33279, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +642: 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 1, 2, 13013, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 13295, 48579, 37565, 45061, 26266, 48579, 26268, 48579, 48579, 48579, 48579, 24081, 48579, 37524, 13303, 28456, 33726, 40241, 29779, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 26824, 48579, 43474, 48579, 9168, 48579, 47584, 48579, 48579, 10933, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 28032, 37368, 48579, 36928, 42406, 48579, 48579, 48579, 48579, 48579, 48579, 18831, 48579, 32613, 48579, 42471, 48579, 48579, 48579, 48579, 48579, 37377, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48383, 44620, 48579, 48579, 7243, 48579, 47281, 37554, 48579, 48579, 48579, 13996, 47233, 17105, 18774, 27530, 48579, 48579, 48579, 11486, 31449, 16173, 36779, 26990, 48579, 48579, 48579, 36149, 48579, 48579, 32710, 48579, 48579, 32711, 30614, 17056, 48579, 48579, 48579, 39829, 36552, 48579, 48579, 48579, 48579, 48579, 48579, 39937, 48579, 48579, 45885, 12050, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 23635, 48579, 48579, 48579, 33919, 48579, 24033, 24617, 48579, 9919, 28869, 26258, 48579, 36734, 18986, 48579, 48579, 48579, 48579, 16147, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 30752, 44253, 48579, 40393, 48579, 48579, 48579, 48579, 44985, 7667, 12297, 19378, 41130, 48579, 48579, 22131, 28968, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 13695, 19564, 48579, 48579, 48579, 48579, 48579, 48579, 29250, 16204, 8228, 48579, 22774, 42119, 25565, 28500, 45766, 43537, 28658, 29480, 48579, 16154, 9371, 17639, 32749, 16892, 48579, 48579, 48579, 8486, 38784, 21737, 19152, 8509, 48579, 36627, 46581, 48579, 17837, 43123, 11703, 48579, 9054, 48579, 48579, 48579, 48579, 16161, 48579, 48579, 14428, 48579, 48579, 42053, 40836, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 33281, 33282, 33283, 33284, 33285, 33286, 33287, 0, 33289, 0, 0, 0, 33293, 0, 33295, 33296, 33297, 33298, 0, 33300, 0, 0, 0, 0, 0, 0, 33307, 33308, 33309, 33310, 33311, 33312, 33313, 33314, 33315, 33316, 0, 33318, 0, 33320, 0, 33322, 0, 33324, 33325, 0, 33327, 33328, 33329, 33330, 33331, 33332, 33333, 0, 0, 33336, 0, 0, 33339, 33340, 33341, 33342, 33343, 33344, 0, 33346, 0, 33348, 0, 33350, 33351, 33352, 33353, 33354, 0, 33356, 33357, 33358, 33359, 33360, 33361, 33362, 33363, 33364, 33365, 0, 0, 33368, 33369, 0, 33371, 0, 0, 33374, 33375, 33376, 0, 0, 0, 0, 0, 33382, 33383, 33384, 0, 0, 0, 0, 0, 33390, 33391, 33392, 0, 33394, 33395, 0, 33397, 33398, 0, 0, 0, 33402, 33403, 33404, 0, 0, 33407, 33408, 33409, 33410, 33411, 33412, 0, 33414, 33415, 0, 0, 33418, 33419, 33420, 33421, 33422, 33423, 33424, 33425, 33426, 33427, 0, 33429, 33430, 33431, 0, 33433, 0, 0, 33436, 0, 0, 0, 33440, 0, 0, 33443, 33444, 33445, 33446, 0, 33448, 33449, 33450, 33451, 33452, 33453, 33454, 33455, 0, 0, 33458, 0, 33460, 33461, 33462, 33463, 0, 0, 0, 0, 0, 33469, 33470, 0, 0, 33473, 33474, 33475, 33476, 33477, 33478, 33479, 0, 0, 33482, 33483, 33484, 33485, 33486, 33487, 0, 0, 0, 33491, 0, 0, 0, 0, 0, 0, 0, 0, 33500, 0, 0, 0, 0, 0, 33506, 33507, 33508, 0, 0, 0, 0, 0, 33514, 0, 0, 33517, 0, 0, 0, 33521, 0, 33523, 33524, 33525, 33526, 0, 33528, 33529, 0, 33531, 33532, 0, 0, 33535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +643: 2, 1, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 1, 1, 2, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 1, 48579, 17838, 48579, 48579, 45413, 9870, 17934, 48579, 36542, 48579, 48579, 48579, 46693, 40488, 40817, 48579, 48579, 46477, 48579, 48579, 37639, 48579, 48579, 48579, 22340, 48579, 48579, 48579, 48579, 38379, 48579, 48579, 26043, 48579, 46554, 32753, 10604, 15302, 48579, 14236, 36182, 36090, 48579, 21973, 10285, 35758, 12887, 48579, 48192, 48579, 48579, 22779, 37165, 48579, 22780, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 32754, 45076, 17677, 48229, 11773, 31818, 48579, 48579, 48579, 28087, 13959, 40845, 22784, 39663, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 13619, 22478, 48579, 43613, 48579, 48579, 48579, 48043, 48579, 48579, 48579, 48579, 18775, 48579, 29638, 48579, 24502, 48579, 9229, 15991, 21766, 22641, 48579, 18237, 42252, 36103, 48579, 31773, 32760, 25575, 19080, 19464, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 47087, 48579, 36108, 46860, 22534, 48579, 48579, 48579, 48579, 48579, 48579, 42136, 48579, 36133, 17855, 48579, 48579, 48579, 24849, 48579, 9626, 48579, 48579, 48579, 28210, 48232, 48579, 12752, 48579, 20641, 29653, 48579, 16721, 14345, 20439, 20794, 29123, 45458, 48579, 48579, 48579, 48579, 29658, 12517, 48579, 32096, 24737, 28092, 23679, 48579, 48579, 48579, 48579, 14889, 48579, 48579, 48579, 19165, 48579, 48579, 48579, 23087, 48579, 43512, 34742, 20451, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 26490, 48579, 26105, 48579, 48579, 48579, 48579, 48579, 16011, 32493, 48579, 48579, 30067, 48579, 25692, 48579, 48579, 48579, 46438, 39692, 48579, 48579, 25245, 24747, 33528, 9270, 24625, 48579, 48579, 48579, 48579, 48579, 48579, 40190, 16013, 27724, 24749, 48579, 48579, 22260, 47300, 48579, 48579, 48579, 48579, 22651, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 33536, 0, 33538, 33539, 0, 0, 0, 33543, 0, 33545, 33546, 33547, 0, 0, 0, 33551, 33552, 0, 33554, 33555, 0, 33557, 33558, 33559, 0, 33561, 33562, 33563, 33564, 0, 33566, 33567, 0, 33569, 0, 0, 0, 0, 33574, 0, 0, 0, 33578, 0, 0, 0, 0, 33583, 0, 33585, 33586, 0, 0, 33589, 0, 33591, 33592, 33593, 33594, 33595, 33596, 33597, 33598, 33599, 33600, 33601, 33602, 33603, 33604, 0, 0, 0, 0, 0, 0, 33611, 33612, 33613, 0, 0, 0, 0, 0, 33619, 33620, 33621, 33622, 33623, 33624, 33625, 33626, 0, 0, 33629, 0, 33631, 33632, 33633, 0, 33635, 33636, 33637, 33638, 0, 33640, 0, 33642, 0, 33644, 0, 0, 0, 0, 33649, 0, 0, 0, 33653, 0, 0, 0, 0, 0, 33659, 33660, 33661, 33662, 33663, 33664, 33665, 33666, 33667, 33668, 33669, 33670, 33671, 33672, 0, 33674, 0, 0, 0, 33678, 33679, 33680, 33681, 33682, 33683, 0, 33685, 0, 0, 33688, 33689, 33690, 0, 33692, 0, 33694, 33695, 33696, 0, 0, 33699, 0, 33701, 0, 0, 33704, 0, 0, 0, 0, 0, 0, 33711, 33712, 33713, 33714, 0, 0, 33717, 0, 0, 0, 0, 33722, 33723, 33724, 33725, 0, 33727, 33728, 33729, 0, 33731, 33732, 33733, 0, 33735, 0, 0, 0, 33739, 33740, 33741, 33742, 33743, 33744, 33745, 0, 33747, 0, 33749, 33750, 33751, 33752, 33753, 0, 0, 33756, 33757, 0, 33759, 0, 33761, 33762, 33763, 0, 0, 33766, 33767, 0, 0, 0, 0, 0, 33773, 33774, 33775, 33776, 33777, 33778, 0, 0, 0, 0, 33783, 33784, 0, 0, 33787, 33788, 33789, 33790, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +644: 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 48579, 13296, 48579, 46279, 48579, 34495, 19357, 25620, 16713, 45452, 39688, 30905, 48579, 33874, 48579, 48579, 43475, 21066, 48579, 48579, 33894, 33895, 33036, 48579, 48579, 48579, 48579, 39117, 48579, 48579, 48579, 48579, 48579, 22954, 48579, 32072, 48579, 15988, 7885, 48579, 8587, 30970, 48579, 48579, 48579, 48579, 48579, 48579, 8955, 7886, 48579, 48569, 29895, 48579, 19312, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 7889, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 29000, 48579, 10445, 48579, 29572, 48579, 48579, 15340, 37026, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 29831, 30224, 48579, 48579, 10764, 48579, 48579, 41219, 30727, 38591, 48579, 48579, 46877, 12900, 11725, 43994, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 11726, 48579, 48579, 12901, 47858, 48579, 48289, 11796, 48579, 48579, 29362, 41736, 30734, 32737, 20006, 48579, 46887, 31852, 44967, 48579, 34305, 48579, 48579, 48579, 17456, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 37308, 48579, 48579, 8887, 48579, 22487, 48579, 48579, 48579, 11557, 48579, 11671, 48579, 43467, 34325, 28217, 32911, 48579, 42029, 10651, 48579, 11596, 48579, 48579, 16141, 27256, 48579, 19696, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 16045, 45463, 48579, 48579, 48579, 8274, 48579, 48579, 48579, 48579, 48579, 40423, 23373, 48579, 13216, 48579, 48579, 36758, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 34807, 48579, 48579, 48579, 12286, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 24291, 48579, 43893, 20593, 48579, 48579, 35686, 32136, 43411, 44757, 20914, 48579, 30928, 42157, 41522, 48579, 48579, 31625, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 29512, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 33792, 0, 33794, 0, 33796, 0, 0, 0, 0, 0, 0, 0, 33804, 0, 33806, 33807, 0, 0, 33810, 33811, 0, 0, 0, 33815, 33816, 33817, 33818, 0, 33820, 33821, 33822, 33823, 33824, 0, 33826, 0, 33828, 0, 0, 33831, 0, 0, 33834, 33835, 33836, 33837, 33838, 33839, 0, 0, 33842, 0, 0, 33845, 0, 33847, 33848, 33849, 33850, 33851, 33852, 33853, 0, 33855, 33856, 33857, 33858, 33859, 33860, 33861, 33862, 33863, 33864, 33865, 0, 33867, 0, 33869, 0, 33871, 33872, 0, 0, 33875, 33876, 33877, 33878, 33879, 33880, 33881, 33882, 33883, 0, 0, 33886, 33887, 0, 33889, 33890, 0, 0, 0, 33894, 33895, 0, 0, 0, 0, 33900, 33901, 33902, 33903, 33904, 33905, 33906, 33907, 33908, 33909, 33910, 33911, 33912, 0, 33914, 33915, 0, 0, 33918, 0, 0, 33921, 33922, 0, 0, 0, 0, 0, 33928, 0, 0, 0, 33932, 0, 33934, 33935, 33936, 0, 33938, 33939, 33940, 33941, 33942, 33943, 33944, 0, 33946, 33947, 0, 33949, 0, 33951, 33952, 33953, 0, 33955, 0, 33957, 0, 0, 0, 0, 33962, 0, 0, 33965, 0, 33967, 33968, 0, 0, 33971, 0, 33973, 33974, 33975, 33976, 33977, 33978, 33979, 0, 0, 33982, 33983, 33984, 0, 33986, 33987, 33988, 33989, 33990, 0, 0, 33993, 0, 33995, 33996, 0, 33998, 33999, 34000, 34001, 34002, 34003, 34004, 34005, 34006, 34007, 34008, 34009, 0, 34011, 34012, 34013, 0, 34015, 34016, 34017, 34018, 34019, 34020, 34021, 0, 34023, 0, 0, 34026, 34027, 0, 0, 0, 0, 0, 34033, 0, 0, 0, 34037, 34038, 0, 34040, 34041, 34042, 34043, 34044, 34045, 34046, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +645: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 19967, 48579, 36983, 48579, 36312, 48579, 48579, 48579, 48579, 48579, 13905, 10026, 19975, 10854, 20133, 34653, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 35729, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 46677, 48579, 44825, 48579, 48579, 18111, 48579, 25060, 48579, 48579, 48579, 45514, 48579, 11267, 48579, 48579, 48579, 31939, 8261, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 18585, 22970, 34031, 48579, 20947, 48579, 37756, 48579, 48579, 48579, 18116, 48579, 48579, 48579, 48579, 48579, 48579, 45524, 45337, 42129, 48579, 10799, 21600, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 24916, 44203, 48579, 48579, 48579, 48579, 8686, 48579, 23099, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 11127, 41466, 47905, 48579, 31444, 39646, 48579, 44772, 38556, 20715, 39821, 33438, 48579, 47046, 48579, 48579, 11006, 48579, 8651, 37825, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 12657, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 44623, 37182, 48579, 48579, 10286, 48579, 48579, 48579, 19066, 31095, 48579, 38004, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 44058, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 12966, 48579, 12238, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 34048, 34049, 34050, 34051, 34052, 34053, 34054, 34055, 34056, 34057, 34058, 34059, 34060, 34061, 34062, 34063, 34064, 34065, 34066, 34067, 34068, 34069, 34070, 0, 34072, 0, 34074, 0, 34076, 34077, 34078, 34079, 34080, 0, 0, 0, 0, 0, 0, 34087, 34088, 34089, 34090, 34091, 34092, 34093, 34094, 0, 34096, 34097, 34098, 34099, 34100, 34101, 34102, 34103, 34104, 34105, 34106, 34107, 34108, 34109, 34110, 34111, 34112, 34113, 34114, 34115, 34116, 34117, 34118, 34119, 34120, 34121, 34122, 34123, 34124, 34125, 34126, 34127, 34128, 34129, 34130, 34131, 34132, 0, 34134, 0, 34136, 34137, 0, 34139, 0, 34141, 34142, 34143, 0, 34145, 0, 34147, 34148, 34149, 0, 0, 34152, 34153, 34154, 34155, 34156, 34157, 34158, 34159, 34160, 34161, 34162, 34163, 34164, 34165, 34166, 34167, 34168, 0, 0, 0, 34172, 0, 34174, 0, 34176, 34177, 34178, 0, 34180, 34181, 34182, 34183, 34184, 34185, 0, 0, 0, 34189, 0, 0, 34192, 34193, 34194, 34195, 34196, 34197, 34198, 34199, 34200, 34201, 0, 0, 34204, 34205, 34206, 34207, 0, 34209, 0, 34211, 34212, 34213, 34214, 34215, 34216, 34217, 34218, 34219, 0, 0, 0, 34223, 0, 0, 34226, 0, 0, 0, 0, 0, 34232, 0, 34234, 34235, 0, 34237, 0, 0, 34240, 34241, 34242, 34243, 34244, 34245, 34246, 34247, 34248, 34249, 34250, 34251, 34252, 34253, 34254, 34255, 34256, 34257, 34258, 0, 34260, 34261, 34262, 34263, 34264, 34265, 34266, 34267, 34268, 0, 0, 34271, 34272, 0, 34274, 34275, 34276, 0, 0, 34279, 0, 34281, 34282, 34283, 34284, 34285, 34286, 34287, 0, 34289, 34290, 34291, 34292, 34293, 34294, 34295, 34296, 34297, 34298, 34299, 0, 34301, 0, 34303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +646: 2, 1, 1, 1, 1, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48579, 44059, 21610, 37185, 45340, 48579, 48579, 19081, 48579, 33445, 48579, 48579, 19293, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 42253, 48579, 48579, 48579, 48579, 39669, 48579, 48579, 48579, 48579, 39670, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 12971, 48579, 21616, 48579, 48579, 48579, 19091, 48579, 22587, 44066, 48579, 48579, 24549, 48579, 48579, 48579, 11354, 48579, 10758, 48579, 19313, 48579, 44072, 48579, 45033, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 35791, 45370, 48579, 48579, 48579, 28850, 47621, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 39575, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 34173, 48579, 22842, 30666, 37100, 14479, 12053, 48579, 48579, 37247, 9733, 9422, 39792, 29532, 21337, 30487, 33724, 28952, 28125, 48579, 31500, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 8398, 48579, 48579, 48579, 48579, 48579, 8410, 7962, 8707, 47967, 28130, 38046, 17455, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 21146, 48579, 46591, 48579, 48579, 48579, 31399, 48579, 48579, 48579, 48579, 48579, 48579, 17500, 36848, 45440, 34069, 12065, 18707, 32811, 45305, 28632, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 39335, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 32195, 19749, 43390, 24286, 26749, 33738, 17306, 12118, 22308, 19766, 9353, 25730, 15074, 44007, 23011, 48579, 48579, 48579, 48579, 48579, 39798, 48579, 48579, 48579, 48579, 45100, 48579, 31507, 18923, 30326, 48579, 48579, 48579, 48579, 48579, 24115, 29508, 34508, 21647, 42713, 46517, 10968, 48579, 38951, 48579, 18275, 32774, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 34304, 0, 0, 0, 0, 34309, 34310, 0, 34312, 0, 34314, 34315, 0, 34317, 34318, 34319, 34320, 34321, 34322, 34323, 0, 34325, 34326, 34327, 34328, 0, 34330, 34331, 34332, 34333, 0, 34335, 34336, 34337, 34338, 34339, 34340, 34341, 34342, 34343, 34344, 34345, 34346, 34347, 0, 34349, 0, 34351, 34352, 34353, 0, 34355, 0, 0, 34358, 34359, 0, 34361, 34362, 34363, 0, 34365, 0, 34367, 0, 34369, 0, 34371, 0, 34373, 34374, 34375, 34376, 34377, 34378, 34379, 34380, 34381, 0, 0, 34384, 34385, 34386, 0, 0, 34389, 34390, 34391, 34392, 34393, 34394, 34395, 34396, 34397, 34398, 34399, 34400, 0, 34402, 34403, 34404, 34405, 34406, 34407, 34408, 0, 34410, 0, 0, 0, 0, 0, 34416, 34417, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34428, 0, 34430, 34431, 34432, 34433, 34434, 34435, 34436, 34437, 34438, 34439, 34440, 34441, 34442, 34443, 34444, 0, 34446, 34447, 34448, 34449, 34450, 0, 0, 0, 0, 0, 0, 0, 34458, 34459, 34460, 34461, 34462, 34463, 34464, 0, 34466, 0, 34468, 34469, 34470, 0, 34472, 34473, 34474, 34475, 34476, 34477, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34487, 34488, 34489, 34490, 34491, 34492, 34493, 0, 34495, 34496, 34497, 34498, 34499, 34500, 34501, 34502, 34503, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34519, 34520, 34521, 34522, 34523, 0, 34525, 34526, 34527, 34528, 0, 34530, 0, 0, 0, 34534, 34535, 34536, 34537, 34538, 0, 0, 0, 0, 0, 0, 0, 34546, 0, 34548, 0, 0, 34551, 34552, 34553, 34554, 34555, 34556, 34557, 34558, 34559, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +647: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 2, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 18652, 31364, 46664, 43676, 39006, 31263, 19797, 46527, 18734, 48579, 44261, 48270, 26963, 48579, 48579, 48579, 34052, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 32216, 48579, 48579, 48579, 48579, 48579, 48579, 20480, 17631, 48579, 36874, 17640, 38156, 43089, 29405, 48579, 48579, 38263, 31024, 24430, 42734, 11430, 40917, 37967, 48579, 48579, 48579, 48579, 48579, 15901, 48579, 44435, 48579, 48579, 45829, 15650, 30942, 22512, 24154, 33896, 16667, 48579, 29980, 48579, 48579, 24155, 48579, 18282, 48579, 48579, 37065, 34834, 48579, 18351, 24156, 48579, 48579, 25820, 48579, 48579, 48579, 12558, 48579, 48564, 33505, 48579, 33820, 48579, 15024, 21902, 36888, 20701, 31320, 15805, 48024, 18759, 33513, 48579, 48579, 35933, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 37320, 48579, 25450, 48579, 10597, 38301, 48522, 44624, 48579, 47471, 48579, 32397, 39026, 32064, 48579, 15977, 48579, 48579, 48579, 48579, 48579, 48579, 30455, 40784, 48579, 48579, 48579, 48579, 15610, 32353, 11072, 27137, 48579, 48579, 48579, 48579, 48579, 48579, 33911, 32073, 48579, 48579, 31294, 9511, 48579, 48579, 24503, 48579, 37689, 23946, 40500, 23755, 48579, 48579, 34406, 46561, 14520, 48579, 48579, 48579, 48579, 48579, 47088, 48579, 48579, 48579, 48579, 43445, 48579, 24526, 48579, 48579, 48579, 48579, 27811, 38023, 48579, 43629, 32470, 48579, 48579, 48579, 48579, 48579, 32185, 48579, 48579, 48579, 48579, 26432, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 12287, 48579, 43530, 8373, 15895, 48579, 38251, 41757, 27496, 48579, 15777, 31888, 46669, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 34560, 34561, 34562, 34563, 34564, 34565, 34566, 34567, 34568, 34569, 34570, 34571, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34581, 0, 0, 0, 34585, 34586, 34587, 0, 34589, 34590, 34591, 34592, 34593, 34594, 34595, 34596, 34597, 34598, 34599, 34600, 0, 34602, 34603, 34604, 34605, 34606, 34607, 0, 0, 34610, 0, 0, 0, 0, 0, 34616, 34617, 0, 0, 0, 0, 0, 0, 0, 34625, 34626, 34627, 34628, 34629, 0, 34631, 0, 34633, 34634, 0, 0, 0, 0, 0, 0, 0, 34642, 0, 34644, 34645, 0, 34647, 0, 34649, 34650, 0, 0, 34653, 0, 0, 34656, 34657, 0, 34659, 34660, 34661, 0, 34663, 0, 0, 34666, 0, 34668, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34678, 34679, 0, 34681, 34682, 34683, 34684, 34685, 34686, 34687, 34688, 34689, 34690, 34691, 34692, 34693, 34694, 34695, 34696, 34697, 34698, 34699, 0, 34701, 0, 34703, 0, 0, 0, 0, 34708, 0, 34710, 0, 0, 0, 34714, 0, 34716, 34717, 34718, 34719, 34720, 34721, 0, 0, 34724, 34725, 34726, 34727, 0, 0, 0, 0, 34732, 34733, 34734, 34735, 34736, 34737, 0, 0, 34740, 34741, 0, 0, 34744, 34745, 0, 34747, 0, 0, 0, 0, 34752, 34753, 0, 0, 0, 34757, 34758, 34759, 34760, 34761, 0, 34763, 34764, 34765, 34766, 0, 34768, 0, 34770, 34771, 34772, 34773, 0, 0, 34776, 0, 0, 34779, 34780, 34781, 34782, 34783, 0, 34785, 34786, 34787, 34788, 0, 34790, 34791, 34792, 34793, 34794, 34795, 34796, 34797, 34798, 34799, 34800, 34801, 0, 34803, 0, 0, 0, 34807, 0, 0, 0, 34811, 0, 0, 0, 34815, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +648: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 16355, 36875, 48579, 25313, 36349, 11637, 42735, 14591, 30181, 8487, 48579, 8050, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 29592, 48579, 35369, 48579, 48579, 35068, 37875, 39978, 48579, 48579, 48579, 48579, 48579, 17526, 41784, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 42748, 45423, 43754, 28281, 48579, 48579, 48579, 48579, 48579, 45229, 48579, 36585, 38829, 20779, 41663, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 28428, 35994, 41910, 36592, 47047, 11022, 36224, 48579, 48579, 48579, 48579, 45775, 48579, 48579, 48579, 48579, 48579, 48579, 27510, 48579, 48579, 38557, 43492, 41911, 23863, 48579, 48579, 48579, 48579, 30188, 48579, 19192, 17142, 28008, 11774, 48579, 48579, 22955, 11027, 48579, 44122, 48579, 48579, 48579, 47919, 48579, 48579, 35162, 48579, 48579, 48579, 48579, 48579, 48579, 43554, 48579, 48579, 48463, 33183, 25597, 17376, 38111, 27146, 18238, 24504, 48579, 27430, 48579, 7912, 20298, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 32360, 48579, 48579, 48579, 27147, 48579, 28009, 17961, 18374, 27295, 33464, 48579, 48579, 33657, 10288, 48579, 47936, 48579, 46704, 28694, 48579, 48579, 48579, 48579, 48579, 19889, 48579, 48579, 22647, 46564, 48579, 48579, 48579, 48579, 48579, 12383, 24984, 45945, 16214, 23837, 18409, 11322, 48579, 20312, 23279, 48579, 48579, 48579, 48579, 33765, 48579, 48579, 48579, 48579, 48579, 48579, 10461, 36007, 48579, 18258, 27177, 29490, 45949, 10169, 48579, 15693, 48579, 48579, 43274, 48579, 35519, 48579, 48579, 48579, 40980, 19912, 23710, 48579, 48579, 48579, 42806, 48579, 48579, 27439, 48579, 27620, 48579, 48579, 48579, 11937, 48579, 48579, 23683, 48579, 48579, 41605, 48579, 48579, 27326, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 34816, 34817, 34818, 34819, 34820, 34821, 34822, 34823, 34824, 34825, 34826, 0, 0, 34829, 0, 0, 0, 0, 0, 0, 0, 34837, 0, 34839, 34840, 34841, 34842, 34843, 34844, 34845, 34846, 0, 34848, 0, 34850, 34851, 0, 0, 0, 34855, 34856, 34857, 34858, 34859, 0, 0, 34862, 34863, 34864, 34865, 34866, 34867, 34868, 34869, 0, 0, 0, 0, 34874, 34875, 34876, 34877, 34878, 0, 34880, 0, 0, 0, 0, 34885, 34886, 34887, 34888, 34889, 34890, 34891, 0, 0, 0, 0, 0, 0, 0, 34899, 34900, 34901, 34902, 0, 34904, 34905, 34906, 34907, 34908, 34909, 0, 34911, 34912, 0, 0, 0, 0, 34917, 34918, 34919, 34920, 0, 34922, 0, 0, 0, 0, 34927, 34928, 0, 0, 34931, 0, 34933, 34934, 34935, 0, 34937, 34938, 0, 34940, 34941, 34942, 34943, 34944, 34945, 0, 34947, 34948, 0, 0, 0, 0, 0, 0, 0, 0, 34957, 0, 34959, 0, 0, 34962, 34963, 34964, 34965, 34966, 34967, 34968, 34969, 34970, 34971, 0, 34973, 34974, 34975, 0, 34977, 0, 0, 0, 0, 0, 34983, 34984, 0, 0, 34987, 0, 34989, 0, 0, 34992, 34993, 34994, 34995, 34996, 0, 34998, 34999, 0, 0, 35002, 35003, 35004, 35005, 35006, 0, 0, 0, 0, 0, 0, 0, 35014, 0, 0, 35017, 35018, 35019, 35020, 0, 35022, 35023, 35024, 35025, 35026, 35027, 0, 0, 35030, 0, 0, 0, 0, 0, 35036, 0, 35038, 35039, 0, 35041, 0, 35043, 35044, 35045, 0, 0, 0, 35049, 35050, 35051, 0, 35053, 35054, 0, 35056, 0, 35058, 35059, 35060, 0, 35062, 35063, 0, 35065, 35066, 0, 35068, 35069, 0, 35071, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +649: 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48579, 48579, 43925, 9591, 20340, 48579, 48579, 35181, 48579, 48579, 48579, 48579, 48579, 48579, 41719, 48579, 48579, 22021, 48579, 48579, 48579, 14239, 48579, 48579, 14925, 48579, 14927, 48579, 48579, 48579, 48579, 48579, 48579, 16745, 26582, 48579, 25013, 48579, 48579, 48579, 48579, 10934, 48579, 24157, 48579, 48579, 48579, 48579, 48579, 46763, 48579, 48579, 40326, 48579, 48579, 11088, 48579, 19670, 48579, 48579, 48579, 29708, 48579, 48579, 48579, 48579, 20915, 48579, 48579, 48579, 48579, 47315, 48579, 48579, 48579, 48579, 48579, 40597, 48579, 48579, 48579, 23127, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 21353, 48579, 18346, 48579, 48579, 31026, 48579, 48579, 48579, 48579, 9700, 48579, 48579, 30565, 37632, 26832, 48579, 13520, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 22846, 48579, 12306, 48579, 28345, 48579, 17928, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 23541, 13994, 30955, 48579, 43431, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 25824, 18885, 48579, 48579, 48579, 15473, 26835, 48579, 47276, 48579, 48579, 43870, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 23822, 19622, 43168, 25500, 11768, 48579, 28286, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 37238, 39822, 48579, 48579, 48579, 8742, 11404, 38646, 48579, 21687, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 40073, 29736, 47920, 32981, 48579, 33250, 48147, 48579, 46610, 48579, 48579, 48334, 32005, 48579, 10895, 48579, 47064, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 35072, 35073, 0, 0, 0, 35077, 35078, 0, 35080, 35081, 35082, 35083, 35084, 35085, 0, 35087, 35088, 0, 35090, 35091, 35092, 0, 35094, 35095, 0, 35097, 0, 35099, 35100, 35101, 35102, 35103, 35104, 0, 0, 35107, 0, 35109, 35110, 35111, 35112, 0, 35114, 0, 35116, 35117, 35118, 35119, 35120, 0, 35122, 35123, 0, 35125, 35126, 0, 35128, 0, 35130, 35131, 35132, 0, 35134, 35135, 35136, 35137, 0, 35139, 35140, 35141, 35142, 0, 35144, 35145, 35146, 35147, 35148, 0, 35150, 35151, 35152, 0, 35154, 35155, 35156, 35157, 35158, 35159, 35160, 0, 35162, 0, 35164, 35165, 0, 35167, 35168, 35169, 35170, 0, 35172, 35173, 0, 0, 0, 35177, 0, 35179, 35180, 35181, 35182, 35183, 35184, 35185, 35186, 35187, 0, 35189, 0, 35191, 0, 35193, 0, 35195, 35196, 35197, 35198, 35199, 35200, 35201, 0, 0, 0, 35205, 0, 35207, 35208, 35209, 35210, 35211, 35212, 35213, 35214, 35215, 35216, 35217, 35218, 35219, 35220, 35221, 0, 0, 35224, 35225, 35226, 0, 0, 35229, 0, 35231, 35232, 0, 35234, 35235, 35236, 35237, 35238, 35239, 35240, 35241, 35242, 35243, 35244, 0, 0, 0, 0, 0, 35250, 0, 35252, 35253, 35254, 35255, 35256, 35257, 35258, 35259, 35260, 35261, 35262, 35263, 35264, 35265, 35266, 35267, 35268, 35269, 35270, 35271, 35272, 35273, 35274, 35275, 35276, 35277, 35278, 35279, 0, 0, 35282, 35283, 35284, 0, 0, 0, 35288, 0, 35290, 35291, 35292, 35293, 35294, 35295, 35296, 35297, 35298, 35299, 35300, 0, 0, 0, 0, 35305, 0, 0, 35308, 0, 35310, 35311, 0, 0, 35314, 0, 35316, 0, 35318, 35319, 35320, 35321, 35322, 35323, 35324, 35325, 35326, 35327, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +650: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 1, 2, 1, 1, 1, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 32294, 30963, 41437, 10287, 17678, 32870, 48579, 48579, 48579, 21690, 38650, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 10896, 23132, 48579, 11853, 32940, 23396, 10753, 48339, 20627, 48579, 44354, 37089, 27148, 12163, 34871, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 14985, 16283, 13415, 9820, 26936, 10049, 8657, 44659, 48579, 48579, 37595, 48340, 48579, 48050, 48579, 11335, 37649, 37470, 48579, 32184, 48579, 48579, 37650, 48579, 39310, 48579, 48579, 48579, 48579, 48579, 48579, 43797, 20424, 48579, 48579, 38024, 36399, 33226, 48579, 30626, 33396, 44677, 19657, 13562, 10056, 37143, 48579, 48579, 25528, 48579, 47806, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 32941, 48579, 48579, 41934, 16461, 48579, 24528, 9768, 48579, 48579, 48579, 12972, 25529, 45942, 30190, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 25834, 48579, 47112, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 35328, 35329, 35330, 35331, 35332, 35333, 35334, 35335, 35336, 35337, 35338, 35339, 35340, 35341, 35342, 35343, 35344, 35345, 35346, 35347, 35348, 35349, 35350, 0, 0, 0, 0, 0, 0, 35357, 35358, 35359, 0, 0, 35362, 35363, 35364, 35365, 35366, 35367, 35368, 35369, 35370, 35371, 0, 0, 35374, 0, 0, 0, 0, 0, 0, 35381, 0, 0, 0, 0, 0, 35387, 35388, 35389, 35390, 35391, 35392, 35393, 35394, 35395, 35396, 35397, 35398, 35399, 35400, 35401, 35402, 35403, 35404, 35405, 35406, 35407, 35408, 35409, 35410, 35411, 35412, 35413, 35414, 35415, 35416, 35417, 35418, 35419, 35420, 35421, 35422, 35423, 35424, 35425, 35426, 35427, 35428, 0, 0, 0, 0, 0, 0, 0, 0, 35437, 35438, 0, 0, 35441, 0, 35443, 0, 0, 0, 35447, 0, 35449, 35450, 0, 35452, 0, 35454, 35455, 35456, 35457, 35458, 35459, 0, 0, 35462, 35463, 0, 0, 0, 35467, 0, 0, 0, 0, 0, 0, 0, 35475, 35476, 0, 35478, 0, 35480, 35481, 35482, 35483, 35484, 35485, 35486, 35487, 35488, 35489, 35490, 35491, 35492, 35493, 35494, 35495, 35496, 35497, 35498, 35499, 35500, 35501, 35502, 35503, 35504, 35505, 35506, 0, 35508, 35509, 0, 0, 35512, 0, 0, 35515, 35516, 35517, 0, 0, 0, 0, 35522, 35523, 35524, 35525, 35526, 35527, 35528, 35529, 35530, 35531, 35532, 35533, 35534, 35535, 35536, 35537, 0, 35539, 0, 35541, 35542, 35543, 35544, 35545, 35546, 35547, 35548, 35549, 35550, 35551, 35552, 35553, 35554, 35555, 35556, 35557, 35558, 35559, 35560, 35561, 35562, 35563, 35564, 35565, 35566, 35567, 35568, 35569, 35570, 35571, 35572, 35573, 35574, 35575, 35576, 35577, 35578, 35579, 35580, 35581, 35582, 35583, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +651: 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 48579, 24731, 48579, 48579, 48579, 26430, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 14055, 48579, 48579, 22233, 24568, 23630, 48579, 32942, 16375, 9979, 40803, 48579, 48579, 46864, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 41250, 9112, 10531, 48579, 47617, 17766, 48579, 48579, 7838, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 13279, 48579, 48579, 45950, 17062, 48579, 48579, 8818, 23482, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 21140, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 15584, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 27240, 48579, 44707, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 39043, 48579, 29978, 34962, 48579, 48579, 48579, 48579, 48579, 48579, 12758, 48579, 48579, 48579, 11551, 12854, 19500, 9992, 48579, 48579, 48579, 47956, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 9461, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 20573, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 36962, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 24270, 48579, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 35584, 0, 35586, 35587, 35588, 0, 35590, 35591, 35592, 35593, 35594, 35595, 35596, 0, 35598, 35599, 0, 0, 0, 35603, 0, 0, 0, 0, 35608, 35609, 0, 35611, 35612, 35613, 35614, 35615, 35616, 35617, 35618, 35619, 35620, 35621, 35622, 35623, 35624, 35625, 35626, 35627, 35628, 35629, 35630, 35631, 35632, 35633, 35634, 35635, 35636, 35637, 35638, 35639, 35640, 35641, 35642, 35643, 35644, 35645, 35646, 35647, 35648, 0, 0, 0, 35652, 0, 0, 35655, 35656, 0, 35658, 35659, 35660, 35661, 35662, 35663, 35664, 35665, 35666, 0, 35668, 35669, 0, 0, 35672, 35673, 0, 0, 35676, 35677, 35678, 35679, 35680, 35681, 35682, 35683, 35684, 35685, 35686, 35687, 35688, 35689, 35690, 35691, 35692, 35693, 35694, 35695, 35696, 35697, 35698, 35699, 35700, 35701, 35702, 35703, 35704, 35705, 0, 35707, 35708, 35709, 35710, 35711, 35712, 35713, 0, 35715, 35716, 35717, 35718, 35719, 35720, 35721, 35722, 35723, 35724, 35725, 35726, 35727, 35728, 35729, 0, 35731, 0, 35733, 35734, 35735, 35736, 35737, 35738, 35739, 35740, 35741, 35742, 35743, 35744, 35745, 35746, 35747, 35748, 35749, 35750, 35751, 35752, 35753, 0, 35755, 0, 0, 35758, 35759, 35760, 35761, 35762, 35763, 0, 35765, 35766, 35767, 0, 0, 0, 0, 35772, 35773, 35774, 0, 35776, 35777, 35778, 35779, 35780, 35781, 35782, 35783, 35784, 35785, 35786, 35787, 35788, 35789, 35790, 35791, 35792, 35793, 35794, 0, 35796, 35797, 35798, 35799, 35800, 35801, 35802, 35803, 35804, 35805, 0, 35807, 35808, 35809, 35810, 35811, 35812, 35813, 35814, 35815, 35816, 35817, 35818, 35819, 35820, 35821, 35822, 35823, 35824, 35825, 0, 35827, 35828, 35829, 35830, 35831, 35832, 35833, 35834, 35835, 35836, 0, 35838, 35839, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +652: 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 1, 2, 2, 1, 1, 2, 2, 2, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1, 1, 2, 2, 1, 1, 1, 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 2, 2, 1, 2, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 1, 48579, 48579, 31150, 48579, 48579, 48579, 11552, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 35807, 48579, 13185, 48579, 20342, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 46866, 22255, 48579, 27825, 48579, 26404, 48579, 48579, 48579, 48579, 48579, 8029, 48579, 48579, 48579, 48579, 48579, 48579, 48401, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 46180, 48579, 48579, 44391, 48579, 48579, 8032, 48579, 48579, 26531, 39063, 18327, 42996, 14074, 16341, 37041, 46341, 48579, 31903, 35271, 24888, 31985, 25323, 16668, 23752, 36943, 12160, 25830, 18781, 34473, 20628, 48477, 15583, 37903, 48579, 48579, 23293, 13747, 35064, 30545, 42091, 48579, 48579, 48579, 34347, 48579, 15580, 48579, 48579, 12644, 42297, 48579, 48579, 48579, 31027, 48579, 33694, 10149, 27779, 48579, 27786, 48579, 48579, 48579, 28387, 48579, 48579, 11744, 48579, 28802, 46101, 9701, 48579, 48579, 35069, 28807, 11708, 48579, 48579, 22341, 48579, 33700, 48579, 47472, 13997, 7470, 8333, 48579, 48579, 36463, 48579, 29845, 39259, 31920, 34066, 48579, 48579, 48579, 36046, 48579, 48579, 48579, 26651, 29920, 48579, 36477, 32714, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 11783, 48579, 48579, 19476, 15029, 38660, 20796, 23838, 45620, 29654, 9534, 48579, 29003, 48579, 10067, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 26668, 16936, 28743, 10962, 10105, 48579, 48579, 48579, 28324, 48579, 48579, 39187, 21513, 19697, 46458, 48579, 48579, 48579, 48579, 36806, 48579, 48579, 27073, 44987, 48579, 47165, 37262, 32972, 40255, 38786, 48579, 36810, 28970, 48579, 37754, 20135, 48579, 14830, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 8732, 48579, 48579, 48579, 48579, 42749, 48579, 48579, 13244, 19409, 15680, 48579, 48579, 20146, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 35840, 35841, 0, 35843, 35844, 35845, 0, 35847, 35848, 35849, 35850, 35851, 35852, 35853, 35854, 0, 35856, 0, 35858, 0, 35860, 35861, 35862, 35863, 35864, 35865, 35866, 0, 0, 35869, 0, 35871, 0, 35873, 35874, 35875, 35876, 35877, 0, 35879, 35880, 35881, 35882, 35883, 35884, 0, 35886, 35887, 35888, 35889, 35890, 35891, 35892, 0, 35894, 35895, 0, 35897, 35898, 0, 35900, 35901, 0, 0, 0, 0, 0, 0, 0, 0, 35910, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35927, 35928, 0, 0, 0, 0, 0, 35934, 35935, 35936, 0, 35938, 0, 35940, 35941, 0, 0, 35944, 35945, 35946, 0, 35948, 0, 0, 0, 35952, 0, 35954, 35955, 35956, 0, 35958, 35959, 0, 35961, 0, 0, 0, 35965, 35966, 0, 0, 0, 35970, 35971, 0, 35973, 0, 35975, 0, 0, 0, 0, 35980, 35981, 0, 35983, 0, 0, 0, 0, 35988, 35989, 35990, 0, 35992, 35993, 35994, 0, 0, 35997, 0, 0, 36000, 36001, 36002, 36003, 36004, 36005, 36006, 0, 36008, 36009, 0, 0, 0, 0, 0, 0, 0, 0, 36018, 0, 36020, 0, 36022, 36023, 36024, 36025, 36026, 36027, 36028, 36029, 0, 0, 0, 0, 0, 36035, 36036, 36037, 0, 36039, 36040, 0, 0, 0, 0, 36045, 36046, 36047, 36048, 0, 36050, 36051, 0, 0, 36054, 0, 0, 0, 0, 0, 36060, 0, 0, 36063, 0, 0, 36066, 0, 36068, 36069, 36070, 36071, 36072, 36073, 36074, 36075, 36076, 36077, 36078, 36079, 36080, 36081, 0, 36083, 36084, 36085, 36086, 0, 36088, 36089, 0, 0, 0, 36093, 36094, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +653: 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 2, 1, 1, 1, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 21446, 48579, 48579, 48579, 48579, 48579, 22387, 48579, 48579, 48579, 32335, 48579, 28257, 27978, 40947, 35101, 33993, 23083, 32344, 37882, 48579, 48579, 48579, 13255, 28260, 48579, 33017, 16164, 13553, 48579, 28662, 48579, 48579, 10229, 17663, 41904, 48579, 48579, 48579, 48579, 48579, 37082, 9326, 48579, 18213, 43917, 48579, 34265, 11277, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 39912, 27077, 24305, 36379, 48579, 20163, 48579, 48579, 48579, 46853, 16524, 16643, 48579, 30797, 48579, 14687, 44462, 46251, 38005, 14126, 9913, 38872, 48579, 16450, 48579, 48579, 48579, 48579, 48579, 48579, 32354, 19067, 48579, 40156, 43615, 48579, 35768, 37520, 15314, 21084, 29885, 48579, 48579, 48579, 34067, 44355, 22972, 48579, 29892, 40164, 29108, 39672, 20425, 40969, 48579, 8588, 48579, 48579, 48579, 28264, 48579, 24845, 48579, 29945, 48579, 48579, 48579, 21427, 48579, 48579, 48579, 35699, 41935, 7363, 48579, 48579, 39929, 31200, 38568, 36110, 48579, 22352, 48579, 48579, 48579, 48579, 48579, 23402, 48579, 48579, 48579, 48579, 48579, 48579, 23791, 48579, 28469, 48579, 48579, 13565, 34574, 48579, 20737, 28842, 48579, 44366, 48579, 48579, 48579, 48579, 48579, 9691, 48579, 20738, 48579, 18503, 38214, 42392, 14113, 16723, 18411, 20643, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 24070, 48579, 33658, 43938, 48579, 12727, 16622, 28951, 48579, 35524, 39834, 48579, 33087, 10131, 48579, 48579, 48579, 48579, 48579, 48579, 33001, 48579, 45081, 48579, 14841, 20454, 40983, 48579, 48579, 48579, 39173, 34576, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 40186, 24627, 48579, 48579, 36963, 48579, 48579, 27361, 10077, 19210, 48579, 48579, 47674, 45052, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 23651, 48579, 41720, 12586, 39794, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 36097, 36098, 36099, 36100, 36101, 0, 36103, 36104, 36105, 0, 36107, 0, 0, 0, 0, 0, 0, 0, 0, 36116, 36117, 36118, 0, 0, 36121, 0, 0, 0, 36125, 0, 36127, 36128, 0, 0, 0, 36132, 36133, 36134, 36135, 36136, 0, 0, 36139, 0, 0, 36142, 0, 0, 36145, 36146, 36147, 36148, 36149, 36150, 36151, 36152, 0, 0, 0, 0, 36157, 0, 36159, 36160, 36161, 0, 0, 0, 36165, 0, 36167, 0, 0, 0, 0, 0, 0, 0, 36175, 0, 36177, 36178, 36179, 36180, 36181, 36182, 0, 0, 36185, 0, 0, 36188, 0, 0, 0, 0, 0, 36194, 36195, 36196, 0, 0, 0, 36200, 0, 0, 0, 0, 0, 0, 36207, 0, 36209, 36210, 36211, 0, 36213, 0, 36215, 0, 36217, 36218, 36219, 0, 36221, 36222, 36223, 0, 0, 0, 36227, 36228, 0, 0, 0, 0, 36233, 0, 36235, 36236, 36237, 36238, 36239, 0, 36241, 36242, 36243, 36244, 36245, 36246, 0, 36248, 0, 36250, 36251, 0, 0, 36254, 0, 0, 36257, 0, 36259, 36260, 36261, 36262, 36263, 0, 36265, 0, 36267, 0, 0, 0, 0, 0, 0, 0, 36275, 36276, 36277, 36278, 36279, 36280, 36281, 0, 36283, 0, 0, 36286, 0, 0, 0, 36290, 0, 0, 36293, 0, 0, 36296, 36297, 36298, 36299, 36300, 36301, 0, 36303, 0, 36305, 0, 0, 0, 36309, 36310, 36311, 0, 0, 36314, 36315, 36316, 36317, 36318, 36319, 36320, 36321, 36322, 36323, 36324, 0, 0, 36327, 36328, 0, 36330, 36331, 0, 0, 0, 36335, 36336, 0, 0, 36339, 36340, 36341, 36342, 36343, 36344, 36345, 36346, 0, 36348, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +654: 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 1, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 44955, 36793, 8240, 33161, 39601, 13205, 29869, 29928, 48579, 35691, 48579, 20617, 42387, 48579, 45034, 48579, 32621, 31346, 30483, 13096, 30484, 48579, 48579, 17298, 44794, 43985, 19521, 15590, 17109, 34288, 48579, 31944, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 38243, 48579, 48579, 46443, 30165, 41615, 16327, 21848, 36602, 48579, 48579, 48579, 48579, 48579, 14142, 48579, 48579, 41413, 25209, 8411, 48579, 48579, 48579, 48085, 17880, 48579, 13968, 48579, 13810, 41114, 48579, 33534, 48579, 33535, 42182, 32443, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 37343, 48579, 48579, 8990, 40879, 37232, 10551, 48579, 13527, 42997, 48579, 48579, 48579, 10321, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 21986, 19372, 48579, 46138, 8246, 48579, 36564, 48579, 48579, 48579, 48579, 29583, 48579, 48579, 48579, 48579, 15429, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 37408, 48579, 39429, 28583, 25625, 48579, 48579, 47872, 48579, 46529, 34827, 48158, 14966, 13748, 29865, 41758, 35187, 31890, 14177, 31019, 48579, 31079, 48579, 9399, 41384, 48579, 48579, 48579, 48579, 48579, 48579, 47777, 48579, 48579, 26870, 20679, 48579, 48579, 48579, 48579, 48579, 45911, 29788, 38787, 41886, 14766, 28790, 48579, 46979, 48579, 35610, 48579, 43091, 48579, 23995, 40918, 48579, 43092, 48579, 48579, 37807, 48579, 48579, 19396, 10373, 13239, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 44827, 48579, 38957, 48579, 25479, 35611, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 8262, 39302, 41894, 48579, 11958, 48579, 22513, 48579, 48579, 31627, 25763, 8326, 48579, 48579, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 36360, 0, 36362, 0, 0, 36365, 0, 36367, 0, 0, 0, 0, 0, 36373, 36374, 0, 0, 0, 0, 0, 0, 0, 36382, 0, 36384, 36385, 36386, 36387, 36388, 36389, 36390, 36391, 36392, 0, 36394, 36395, 0, 0, 0, 0, 0, 0, 36402, 36403, 36404, 36405, 36406, 0, 36408, 36409, 0, 0, 0, 36413, 36414, 36415, 0, 0, 36418, 0, 36420, 0, 0, 36423, 0, 36425, 0, 0, 0, 36429, 36430, 36431, 36432, 36433, 36434, 36435, 0, 36437, 36438, 0, 0, 0, 0, 36443, 0, 0, 36446, 36447, 36448, 0, 36450, 36451, 36452, 36453, 36454, 36455, 36456, 36457, 36458, 36459, 36460, 36461, 36462, 36463, 36464, 36465, 36466, 36467, 36468, 0, 0, 36471, 0, 0, 36474, 0, 36476, 36477, 36478, 36479, 0, 36481, 36482, 36483, 36484, 0, 36486, 36487, 36488, 36489, 36490, 36491, 36492, 36493, 36494, 36495, 36496, 36497, 36498, 36499, 36500, 36501, 0, 36503, 0, 0, 0, 36507, 36508, 0, 36510, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36522, 0, 36524, 0, 0, 36527, 36528, 36529, 36530, 36531, 36532, 0, 36534, 36535, 0, 0, 36538, 36539, 36540, 36541, 36542, 0, 0, 0, 0, 0, 0, 36549, 0, 36551, 0, 36553, 0, 36555, 0, 0, 36558, 0, 36560, 36561, 0, 36563, 36564, 0, 0, 0, 36568, 36569, 36570, 36571, 36572, 36573, 36574, 36575, 36576, 36577, 36578, 0, 36580, 0, 36582, 0, 0, 36585, 36586, 36587, 36588, 36589, 36590, 36591, 36592, 0, 0, 0, 36596, 0, 36598, 0, 36600, 36601, 0, 0, 0, 36605, 36606, 36607, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +655: 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 45974, 11941, 38484, 40768, 10381, 17469, 22169, 48579, 10470, 9800, 10036, 46753, 41333, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 15970, 10432, 42485, 48579, 48579, 48579, 48579, 11207, 32065, 40293, 48579, 45983, 22745, 48579, 22188, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 32066, 48579, 27138, 42508, 48276, 30346, 48579, 34402, 48579, 48579, 48579, 48579, 34596, 9953, 48579, 48579, 13624, 48579, 17016, 26073, 41594, 48579, 48579, 48579, 48579, 28728, 8956, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 37193, 48579, 48579, 48579, 48579, 48579, 48579, 28619, 18550, 31059, 48579, 48579, 48579, 48579, 48579, 48579, 39318, 48579, 48579, 25404, 48579, 48579, 48579, 48579, 24681, 48579, 43170, 48579, 24465, 35042, 48579, 48579, 12321, 48579, 48579, 38132, 48579, 48579, 11694, 48579, 48579, 48579, 21559, 17909, 48579, 44263, 48579, 23181, 48579, 48579, 48579, 17425, 15902, 14662, 48579, 48579, 23190, 48579, 48579, 16777, 10794, 48579, 48579, 21561, 48579, 48579, 35405, 48579, 48579, 13245, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 35435, 48579, 48579, 48579, 31528, 48579, 48579, 48579, 16787, 48579, 48579, 48579, 48579, 48579, 48579, 47762, 48579, 48579, 36688, 48579, 48579, 45006, 48579, 48579, 48579, 48579, 48579, 48427, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 38487, 11986, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 47049, 48579, 48579, 48579, 48579, 34816, 48579, 13410, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 37892, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 10994, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 36608, 36609, 36610, 36611, 36612, 36613, 36614, 36615, 0, 0, 0, 0, 0, 0, 0, 36623, 0, 0, 0, 0, 0, 36629, 36630, 36631, 36632, 36633, 36634, 36635, 36636, 36637, 36638, 36639, 36640, 36641, 36642, 0, 0, 0, 36646, 36647, 36648, 36649, 0, 0, 0, 36653, 0, 0, 36656, 0, 36658, 36659, 36660, 36661, 36662, 36663, 36664, 36665, 36666, 36667, 36668, 0, 36670, 0, 0, 0, 0, 36675, 0, 36677, 36678, 36679, 36680, 0, 0, 36683, 36684, 0, 36686, 0, 0, 0, 36690, 36691, 36692, 36693, 0, 0, 36696, 36697, 36698, 36699, 36700, 36701, 36702, 0, 36704, 36705, 36706, 36707, 36708, 36709, 0, 0, 0, 36713, 36714, 36715, 36716, 36717, 36718, 0, 36720, 36721, 0, 36723, 36724, 36725, 36726, 0, 36728, 0, 36730, 0, 0, 36733, 36734, 0, 36736, 36737, 0, 36739, 36740, 0, 36742, 36743, 36744, 0, 0, 36747, 0, 36749, 0, 36751, 36752, 36753, 0, 0, 0, 36757, 36758, 0, 36760, 36761, 0, 0, 36764, 36765, 0, 36767, 36768, 0, 36770, 36771, 0, 36773, 36774, 36775, 36776, 36777, 36778, 36779, 0, 36781, 36782, 36783, 0, 36785, 36786, 36787, 0, 36789, 36790, 36791, 36792, 36793, 36794, 0, 36796, 36797, 0, 36799, 36800, 0, 36802, 36803, 36804, 36805, 36806, 0, 36808, 36809, 36810, 36811, 36812, 36813, 36814, 0, 0, 36817, 36818, 36819, 36820, 36821, 36822, 36823, 36824, 36825, 36826, 0, 36828, 36829, 36830, 36831, 0, 36833, 0, 36835, 36836, 36837, 36838, 36839, 36840, 36841, 36842, 36843, 36844, 0, 36846, 36847, 36848, 36849, 36850, 36851, 36852, 36853, 36854, 36855, 36856, 36857, 36858, 36859, 36860, 36861, 36862, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +656: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1, 1, 2, 2, 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 1, 2, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 32989, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 19650, 48579, 48579, 48579, 48579, 48579, 13131, 48579, 9580, 48579, 22875, 48579, 48579, 37904, 48579, 48579, 48579, 9514, 48579, 48579, 26521, 29235, 48579, 48579, 48579, 48579, 48579, 48579, 33154, 48579, 48579, 48579, 37913, 48579, 48579, 48579, 48579, 48579, 33157, 48579, 48579, 21137, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 37917, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 9462, 24258, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 45055, 48579, 48579, 48579, 48579, 45082, 48579, 48579, 10494, 48579, 48579, 33496, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 18112, 33459, 37263, 48579, 15081, 48579, 31601, 40758, 48579, 48579, 48579, 11332, 15452, 48579, 48579, 48579, 43124, 13406, 15277, 15278, 45515, 30391, 48579, 25326, 48579, 48579, 48579, 33460, 29482, 48579, 48579, 48579, 43432, 26471, 18486, 43546, 8300, 44204, 33821, 48579, 40283, 11206, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 33822, 13070, 48579, 48579, 48579, 43171, 48579, 10346, 16099, 25643, 30147, 45153, 41912, 27916, 48579, 35410, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 21418, 48579, 35126, 29412, 48579, 41467, 33293, 14001, 48579, 48579, 11405, 40308, 48579, 37134, 16174, 41148, 48579, 23420, 48579, 25352, 48579, 12316, 45706, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 43368, 35078, 48579, 44463, 37387, 37388, 48579, 48579, 7729, 32463, 9230, 12322, 48579, 45710, 18033, 48579, 48579, 48579, 18961, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 36864, 36865, 36866, 36867, 36868, 36869, 36870, 36871, 36872, 36873, 36874, 0, 36876, 36877, 36878, 36879, 36880, 36881, 36882, 36883, 36884, 36885, 0, 36887, 36888, 36889, 36890, 36891, 0, 36893, 0, 36895, 0, 36897, 36898, 0, 36900, 36901, 36902, 0, 36904, 36905, 0, 0, 36908, 36909, 36910, 36911, 36912, 36913, 0, 36915, 36916, 36917, 0, 36919, 36920, 36921, 36922, 36923, 0, 36925, 36926, 0, 36928, 36929, 36930, 36931, 36932, 36933, 36934, 36935, 36936, 36937, 36938, 36939, 0, 36941, 36942, 36943, 36944, 36945, 36946, 36947, 36948, 36949, 36950, 36951, 36952, 36953, 36954, 36955, 36956, 36957, 0, 0, 36960, 36961, 36962, 36963, 36964, 36965, 36966, 36967, 36968, 36969, 36970, 36971, 36972, 36973, 36974, 0, 36976, 36977, 36978, 36979, 0, 36981, 36982, 0, 36984, 36985, 0, 36987, 36988, 36989, 36990, 36991, 36992, 36993, 0, 0, 0, 36997, 0, 36999, 0, 0, 37002, 37003, 37004, 0, 0, 37007, 37008, 37009, 0, 0, 0, 0, 0, 0, 37016, 0, 37018, 37019, 37020, 0, 0, 37023, 37024, 37025, 0, 0, 0, 0, 0, 0, 0, 37033, 0, 0, 37036, 37037, 37038, 37039, 37040, 37041, 37042, 37043, 0, 0, 37046, 37047, 37048, 0, 37050, 0, 0, 0, 0, 0, 0, 0, 37058, 0, 37060, 37061, 37062, 37063, 37064, 37065, 37066, 0, 37068, 0, 0, 37071, 0, 0, 0, 37075, 37076, 0, 0, 37079, 0, 0, 0, 37083, 0, 37085, 0, 37087, 0, 0, 37090, 37091, 37092, 37093, 37094, 37095, 37096, 37097, 37098, 37099, 0, 0, 37102, 0, 0, 0, 37106, 37107, 0, 0, 0, 0, 37112, 0, 0, 37115, 37116, 37117, 0, 37119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +657: 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 48579, 48579, 48579, 48579, 48579, 25865, 48579, 48579, 48579, 48579, 25453, 32847, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 12478, 27149, 39314, 38293, 17270, 48056, 46492, 33316, 12108, 24529, 48579, 12997, 24725, 16323, 48579, 48579, 48579, 29646, 48579, 48579, 48579, 43626, 48579, 18071, 48579, 13834, 38661, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 30012, 17746, 48579, 25652, 27936, 14735, 26167, 45554, 9251, 13089, 26799, 48579, 47751, 26092, 29394, 13842, 9396, 48579, 48579, 48579, 48579, 10390, 26723, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 38909, 48579, 48579, 48579, 48579, 48579, 48579, 7443, 47181, 48579, 28293, 37442, 17694, 48579, 48579, 13846, 37556, 47182, 9706, 24569, 34749, 48579, 48579, 48579, 9707, 48579, 34959, 48579, 13847, 48579, 19140, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 20210, 29005, 12490, 15526, 19324, 19108, 11665, 48579, 43924, 33088, 36787, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 25604, 48579, 48579, 35373, 25386, 26669, 13092, 48579, 48579, 48579, 29439, 48579, 25387, 48579, 48579, 24608, 48579, 29029, 48579, 48579, 48579, 25111, 33561, 48579, 14803, 48579, 48579, 48579, 48579, 33562, 48579, 48579, 25397, 46006, 48579, 8965, 24264, 48579, 48579, 34972, 32482, 20221, 47959, 48579, 48579, 25400, 25401, 27243, 48579, 34764, 48579, 48579, 48579, 48579, 25405, 48579, 48579, 19197, 48579, 48579, 48579, 48579, 48579, 48579, 25424, 20224, 32130, 48579, 48579, 48579, 29009, 21398, 10374, 48579, 48579, 48579, 48579, 48579, 46372, 31698, 48579, 31702, 14261, 48579, 48579, 33329, 48579, 48579, 48579, 48579, 48579, 8147, 48579, 14674, 48579, 48579, 14767, 14703, 48579, 48579, 48579, 48579, 14622, 22930, 48579, 48579, 48579, 48579, 45254, 19048, 48579, 14709, 48579, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 37120, 37121, 37122, 37123, 37124, 0, 37126, 37127, 37128, 37129, 0, 0, 37132, 37133, 37134, 37135, 37136, 37137, 37138, 37139, 37140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37151, 0, 0, 0, 37155, 37156, 37157, 0, 37159, 37160, 37161, 0, 37163, 0, 37165, 0, 0, 37168, 37169, 37170, 37171, 37172, 37173, 37174, 0, 0, 37177, 0, 0, 0, 0, 0, 0, 0, 0, 37186, 0, 0, 0, 0, 0, 37192, 37193, 37194, 37195, 0, 0, 37198, 37199, 37200, 37201, 37202, 37203, 37204, 37205, 0, 37207, 37208, 37209, 37210, 37211, 37212, 0, 0, 37215, 0, 0, 0, 37219, 37220, 0, 0, 0, 0, 0, 0, 37227, 37228, 37229, 0, 37231, 0, 37233, 0, 37235, 0, 37237, 37238, 37239, 37240, 37241, 37242, 37243, 0, 0, 0, 0, 0, 0, 0, 37251, 0, 0, 0, 37255, 37256, 37257, 37258, 37259, 37260, 37261, 0, 37263, 37264, 0, 0, 0, 0, 37269, 37270, 37271, 0, 37273, 0, 37275, 37276, 0, 37278, 0, 37280, 37281, 37282, 0, 0, 37285, 0, 37287, 37288, 37289, 37290, 0, 37292, 37293, 0, 0, 37296, 0, 0, 37299, 37300, 0, 0, 0, 0, 37305, 37306, 0, 0, 0, 37310, 0, 37312, 37313, 37314, 37315, 0, 37317, 37318, 0, 37320, 37321, 37322, 37323, 37324, 37325, 0, 0, 0, 37329, 37330, 37331, 0, 0, 0, 37335, 37336, 37337, 37338, 37339, 0, 0, 37342, 0, 0, 37345, 37346, 0, 37348, 37349, 37350, 37351, 37352, 0, 37354, 0, 37356, 37357, 0, 0, 37360, 37361, 37362, 37363, 0, 0, 37366, 37367, 37368, 37369, 0, 0, 37372, 0, 37374, 37375, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +658: 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 2, 1, 2, 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 2, 1, 1, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 1, 2, 1, 2, 1, 1, 1, 2, 1, 1, 1, 48579, 13848, 48579, 48579, 48579, 48579, 29251, 28972, 29429, 12450, 12361, 7328, 48579, 36586, 10271, 7582, 27050, 28282, 48579, 48579, 9286, 44605, 39366, 26614, 48579, 48579, 30094, 48579, 13788, 48579, 12656, 48579, 48579, 40572, 28612, 17200, 11281, 34701, 26688, 48579, 48579, 48579, 48579, 48579, 37690, 43226, 13180, 41595, 48579, 38391, 35384, 48579, 7440, 23615, 28287, 48579, 31937, 27533, 29136, 9516, 9535, 48579, 48579, 48579, 23706, 36600, 42542, 48579, 28677, 48579, 34703, 48579, 48579, 48579, 48579, 11666, 48579, 20335, 48579, 48579, 15729, 48579, 48579, 48579, 20461, 17064, 48579, 45901, 48579, 26439, 48579, 48579, 19379, 16893, 48579, 48579, 48579, 20029, 19709, 48579, 48579, 41137, 48579, 14976, 48579, 48579, 48579, 8512, 30568, 48579, 48579, 44842, 7508, 12787, 48579, 48579, 14212, 14866, 48579, 48579, 21903, 28542, 37378, 48579, 33901, 15288, 39254, 32059, 30251, 37640, 25337, 26563, 47361, 8057, 48579, 44606, 48579, 48579, 48579, 48579, 8284, 26615, 48579, 19984, 48579, 42101, 48579, 22980, 20785, 48579, 9028, 48579, 48579, 48579, 26474, 16863, 14047, 47050, 48579, 48579, 48579, 46482, 14240, 47427, 7701, 48579, 48579, 48579, 46483, 14983, 13556, 28668, 9387, 13828, 33394, 33306, 8574, 48579, 48579, 48579, 47067, 46252, 9388, 48579, 48579, 48579, 22199, 41399, 48579, 48579, 48579, 39149, 48579, 47931, 7799, 42254, 11116, 35774, 30971, 48579, 28412, 44660, 14255, 20180, 43227, 39926, 48579, 28828, 48579, 48579, 8996, 48579, 48579, 48579, 48579, 17086, 40165, 13181, 48579, 48579, 21695, 35639, 13269, 15326, 27514, 34413, 41155, 36400, 44678, 48579, 48579, 40173, 15327, 47100, 28554, 41156, 42066, 48579, 15036, 48255, 47376, 41039, 48579, 48579, 48579, 47434, 48579, 23492, 48579, 43798, 15874, 23404, 48579, 14101, 37905, 26996, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 37376, 0, 37378, 37379, 37380, 37381, 0, 0, 0, 0, 0, 0, 37388, 0, 0, 0, 0, 0, 37394, 37395, 0, 0, 0, 0, 37400, 37401, 0, 37403, 0, 37405, 0, 37407, 37408, 0, 0, 0, 0, 0, 0, 37415, 37416, 37417, 37418, 37419, 0, 0, 0, 0, 37424, 0, 0, 37427, 0, 0, 0, 37431, 0, 0, 0, 0, 0, 37437, 37438, 37439, 0, 0, 0, 37443, 0, 37445, 0, 37447, 37448, 37449, 37450, 0, 37452, 0, 37454, 37455, 0, 37457, 37458, 37459, 0, 0, 37462, 0, 37464, 0, 37466, 37467, 0, 0, 37470, 37471, 37472, 0, 0, 37475, 37476, 0, 37478, 0, 37480, 37481, 37482, 0, 0, 37485, 37486, 0, 0, 0, 37490, 37491, 0, 0, 37494, 37495, 0, 0, 0, 37499, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37510, 0, 37512, 37513, 37514, 37515, 0, 0, 37518, 0, 37520, 0, 37522, 0, 0, 37525, 0, 37527, 37528, 37529, 0, 0, 0, 0, 37534, 37535, 37536, 0, 0, 0, 0, 37541, 37542, 37543, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37553, 37554, 37555, 0, 0, 0, 37559, 37560, 37561, 0, 0, 37564, 37565, 37566, 0, 37568, 0, 0, 0, 0, 0, 0, 37575, 0, 0, 0, 0, 0, 0, 37582, 0, 37584, 37585, 0, 37587, 37588, 37589, 37590, 0, 0, 0, 37594, 37595, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37605, 37606, 0, 0, 0, 0, 0, 0, 37613, 0, 0, 0, 0, 37618, 37619, 37620, 0, 37622, 0, 37624, 0, 0, 0, 37628, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +659: 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 1, 1, 2, 1, 1, 1, 2, 2, 1, 1, 2, 1, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 1, 2, 2, 1, 1, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 2, 1, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 2, 2, 1, 2, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 48579, 48579, 48579, 18516, 11118, 48579, 35646, 35783, 35647, 35784, 41249, 48579, 16215, 20075, 48579, 9252, 35785, 44894, 48579, 48579, 48579, 48579, 48579, 48579, 35786, 48579, 48579, 48579, 48579, 11463, 48579, 48579, 40603, 17692, 35592, 48579, 48579, 48579, 48579, 27939, 10983, 35416, 45555, 26100, 46037, 26486, 40974, 20206, 33527, 48579, 40975, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 20534, 48579, 48579, 48579, 8073, 26590, 48579, 36913, 39171, 48579, 48579, 32727, 48579, 34048, 47383, 48579, 20211, 15527, 12755, 48579, 48579, 43858, 21702, 48579, 43292, 7916, 48579, 33330, 35527, 48579, 13964, 40356, 48579, 48579, 48579, 18618, 48579, 48579, 48579, 32874, 28563, 47385, 16938, 48579, 26492, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 46710, 40984, 48579, 46711, 48579, 22251, 21704, 48579, 48579, 44880, 25899, 48579, 48579, 9273, 48579, 48579, 32729, 40365, 48579, 48579, 48579, 48579, 48579, 39047, 26406, 48579, 48579, 48579, 16014, 48579, 48579, 48389, 17334, 48579, 20603, 33037, 31530, 32385, 29457, 45007, 10339, 15290, 29502, 48579, 48579, 27052, 48579, 48579, 36178, 48579, 22733, 39127, 48579, 48579, 48579, 48579, 48579, 14048, 48579, 43172, 48579, 48579, 35492, 48579, 39264, 21975, 48579, 37893, 48579, 43208, 48579, 44661, 48579, 7800, 37393, 35775, 29463, 48579, 48579, 48579, 9033, 48579, 48579, 45206, 45207, 13766, 32934, 37906, 48579, 48579, 48579, 48579, 48579, 38031, 16928, 48579, 12220, 39278, 48579, 48579, 19194, 21998, 35417, 48579, 35522, 48579, 48579, 25794, 7804, 44699, 46619, 16935, 48579, 23170, 15821, 12384, 48579, 48579, 48579, 39571, 45813, 33331, 48579, 22650, 9332, 9267, 48579, 48579, 35528, 48579, 44718, 9333, 21535, 21536, 48579, 22058, 22263, 48579, 28136, 45809, 36160, 37981, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 37632, 37633, 37634, 0, 0, 37637, 0, 0, 0, 0, 0, 37643, 0, 0, 37646, 0, 0, 0, 37650, 37651, 37652, 37653, 37654, 37655, 0, 37657, 37658, 37659, 37660, 0, 37662, 37663, 0, 0, 0, 37667, 37668, 37669, 37670, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37681, 0, 37683, 37684, 37685, 37686, 37687, 37688, 37689, 37690, 37691, 37692, 37693, 0, 37695, 37696, 37697, 0, 0, 37700, 0, 0, 37703, 37704, 0, 37706, 0, 0, 37709, 0, 0, 0, 37713, 37714, 0, 0, 37717, 0, 0, 37720, 0, 0, 37723, 0, 0, 37726, 37727, 37728, 0, 37730, 37731, 37732, 0, 0, 0, 0, 37737, 0, 37739, 37740, 37741, 37742, 37743, 37744, 37745, 0, 0, 37748, 0, 37750, 0, 0, 37753, 37754, 0, 0, 37757, 37758, 0, 37760, 37761, 0, 0, 37764, 37765, 37766, 37767, 37768, 0, 0, 37771, 37772, 37773, 0, 37775, 37776, 0, 0, 37779, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37789, 37790, 0, 37792, 37793, 0, 37795, 0, 0, 37798, 37799, 37800, 37801, 37802, 0, 37804, 0, 37806, 37807, 0, 37809, 0, 0, 37812, 0, 37814, 0, 37816, 0, 37818, 0, 0, 0, 0, 37823, 37824, 37825, 0, 37827, 37828, 0, 0, 0, 0, 0, 37834, 37835, 37836, 37837, 37838, 0, 0, 37841, 0, 0, 37844, 37845, 0, 0, 0, 37849, 0, 37851, 37852, 0, 0, 0, 0, 0, 37858, 0, 0, 0, 37862, 37863, 37864, 0, 0, 0, 37868, 0, 0, 0, 37872, 37873, 0, 37875, 0, 0, 0, 0, 37880, 0, 0, 37883, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +660: 1, 1, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 2, 1, 1, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 1, 1, 2, 1, 2, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 2, 1, 1, 1, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 1, 2, 1, 2, 2, 1, 1, 1, 2, 1, 2, 2, 1, 2, 1, 1, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 39250, 40264, 48579, 48579, 48579, 33080, 19466, 48579, 48579, 40343, 48579, 48579, 13852, 48116, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 44890, 31604, 15291, 29626, 29458, 48579, 43550, 48579, 17844, 48331, 48579, 16168, 13470, 17572, 38381, 48579, 29391, 48579, 48579, 35326, 22479, 28829, 17486, 15058, 14256, 42528, 48579, 48579, 36781, 13476, 46269, 33185, 48579, 48579, 48579, 27940, 35354, 48579, 23920, 48579, 30387, 14116, 47952, 42545, 48579, 48579, 48579, 39734, 16746, 32565, 25432, 48579, 48579, 7598, 48579, 48579, 9855, 48579, 13952, 31743, 22903, 40760, 18580, 42162, 46467, 36814, 8281, 48579, 48579, 7496, 48579, 22449, 48579, 22906, 29517, 44172, 7581, 27074, 27898, 48579, 48579, 48579, 48579, 48579, 15376, 31628, 23448, 13521, 35992, 48579, 48579, 31090, 42349, 38083, 18203, 27906, 17571, 41143, 48579, 8532, 30185, 48579, 12789, 48579, 46424, 48579, 34138, 22473, 9681, 48579, 48579, 40770, 46425, 48579, 47515, 48579, 48579, 48579, 48579, 19049, 10802, 48579, 48579, 17960, 29023, 28817, 41913, 48579, 10993, 15386, 16718, 30456, 48579, 16037, 36817, 48579, 48579, 48579, 35995, 31092, 48579, 48579, 21607, 40785, 30706, 48579, 46484, 48579, 48579, 48579, 31924, 48579, 14127, 48579, 48579, 19070, 17983, 31678, 48579, 10301, 48579, 48579, 15496, 48579, 17850, 38873, 38490, 26774, 48579, 48579, 36320, 48579, 48579, 17851, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 9217, 48579, 31577, 16038, 48579, 48579, 15315, 23237, 48579, 48579, 48579, 48579, 48579, 8903, 21428, 22480, 16795, 48579, 15849, 40794, 7473, 45020, 38656, 42791, 21317, 48579, 26075, 32245, 37191, 48579, 19882, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 21488, 22207, 30024, 23326, 48579, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 37890, 37891, 37892, 0, 0, 37895, 37896, 0, 37898, 37899, 0, 0, 37902, 37903, 37904, 37905, 37906, 37907, 37908, 37909, 37910, 37911, 0, 0, 0, 0, 0, 37917, 0, 37919, 0, 0, 37922, 0, 0, 0, 0, 37927, 0, 37929, 37930, 0, 0, 0, 0, 0, 0, 0, 37938, 37939, 0, 0, 0, 0, 37944, 37945, 37946, 0, 0, 37949, 0, 37951, 0, 0, 0, 0, 37956, 37957, 37958, 0, 0, 0, 0, 37963, 37964, 0, 37966, 37967, 0, 37969, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37979, 37980, 0, 37982, 0, 37984, 0, 0, 0, 0, 0, 0, 37991, 37992, 37993, 37994, 37995, 0, 0, 0, 0, 0, 38001, 38002, 0, 0, 0, 0, 0, 0, 0, 38010, 0, 0, 38013, 0, 38015, 0, 38017, 0, 0, 0, 38021, 38022, 0, 0, 38025, 0, 38027, 38028, 38029, 38030, 0, 0, 38033, 38034, 0, 0, 0, 0, 38039, 0, 0, 0, 0, 38044, 0, 0, 38047, 38048, 38049, 0, 0, 38052, 38053, 0, 0, 0, 38057, 0, 38059, 38060, 38061, 0, 38063, 0, 38065, 38066, 0, 0, 0, 38070, 0, 38072, 38073, 0, 38075, 0, 0, 0, 0, 38080, 38081, 0, 38083, 38084, 0, 38086, 38087, 38088, 38089, 38090, 38091, 38092, 38093, 38094, 38095, 0, 38097, 0, 0, 38100, 38101, 0, 0, 38104, 38105, 38106, 38107, 38108, 0, 0, 0, 0, 38113, 0, 0, 0, 0, 0, 0, 0, 38121, 0, 0, 0, 38125, 0, 38127, 38128, 38129, 38130, 38131, 38132, 38133, 38134, 38135, 38136, 38137, 0, 0, 0, 0, 38142, 38143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +661: 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 1, 2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 2, 2, 1, 1, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 2, 1, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 37534, 19092, 13920, 44893, 21004, 48579, 16924, 15852, 30263, 27081, 47703, 17439, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 43874, 31928, 48579, 24065, 7498, 29856, 38277, 48579, 48579, 31610, 48579, 31580, 27613, 13504, 27298, 45886, 48579, 31684, 42800, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 7837, 48579, 48579, 21978, 48579, 45556, 40976, 23631, 26522, 26523, 29200, 8102, 48579, 30288, 40977, 48579, 48579, 48579, 7624, 48579, 48579, 48579, 48579, 48579, 17962, 48579, 48579, 17963, 45951, 48579, 33343, 15853, 48579, 30207, 25006, 48579, 48579, 48579, 48579, 37537, 41051, 48579, 48579, 48579, 48579, 48579, 23218, 48579, 48579, 14278, 17391, 33332, 48579, 48579, 12492, 48579, 48579, 48579, 48579, 48579, 41052, 48579, 14283, 15614, 48579, 12600, 48579, 27223, 42630, 28931, 48579, 30068, 48579, 48579, 48579, 9583, 48579, 48579, 48579, 48579, 44930, 48579, 14287, 28866, 48579, 48579, 43514, 48579, 48579, 31305, 48579, 17860, 25406, 48579, 9920, 43778, 48579, 48579, 48579, 48579, 16630, 48579, 28736, 40771, 35934, 21265, 48579, 48579, 48579, 29616, 48579, 24905, 48579, 48579, 8156, 48579, 48579, 40417, 37267, 10228, 15651, 48579, 18117, 37757, 48579, 48579, 15280, 29551, 48579, 28346, 41326, 41242, 48579, 48579, 25569, 25338, 41244, 31995, 17470, 42759, 17354, 48579, 15292, 7698, 42760, 48579, 9192, 48579, 48579, 48579, 17845, 24467, 48579, 48579, 48579, 33065, 38849, 48579, 48579, 48579, 34391, 29965, 18493, 42770, 9205, 9218, 28440, 31925, 48579, 48579, 38006, 10354, 44060, 48579, 38103, 18953, 33074, 48579, 48579, 48579, 17984, 35164, 17369, 29461, 48579, 14635, 48579, 25517, 47374, 29812, 48579, 24506, 48579, 48579, 11461, 38888, 46562, 48579, 8306, 46587, 35503, 41811, 48579, 48579, 48579, 48579, 31633, 38657, 24872, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 38149, 0, 0, 0, 0, 0, 0, 38156, 38157, 38158, 38159, 38160, 38161, 38162, 38163, 0, 0, 38166, 0, 0, 0, 0, 38171, 38172, 0, 38174, 0, 0, 0, 0, 0, 38180, 0, 0, 38183, 38184, 38185, 38186, 38187, 38188, 38189, 0, 38191, 38192, 0, 38194, 0, 0, 0, 0, 0, 0, 0, 38202, 0, 0, 38205, 38206, 38207, 0, 38209, 38210, 38211, 38212, 38213, 0, 38215, 38216, 0, 0, 38219, 0, 0, 38222, 0, 0, 38225, 38226, 38227, 38228, 0, 0, 38231, 38232, 38233, 38234, 38235, 0, 38237, 38238, 0, 0, 0, 38242, 38243, 0, 38245, 38246, 38247, 38248, 38249, 0, 38251, 0, 0, 38254, 0, 38256, 0, 0, 0, 38260, 0, 38262, 38263, 38264, 0, 38266, 38267, 38268, 38269, 0, 38271, 0, 0, 38274, 38275, 0, 38277, 38278, 0, 38280, 0, 0, 38283, 0, 0, 38286, 38287, 38288, 38289, 0, 38291, 0, 0, 0, 0, 38296, 38297, 38298, 0, 38300, 0, 38302, 38303, 0, 38305, 38306, 0, 0, 0, 0, 38311, 0, 0, 38314, 38315, 0, 0, 38318, 0, 0, 0, 38322, 38323, 0, 0, 0, 0, 0, 0, 0, 38331, 0, 0, 0, 38335, 0, 38337, 38338, 38339, 0, 0, 38342, 38343, 38344, 0, 0, 38347, 38348, 38349, 0, 0, 0, 0, 0, 0, 0, 0, 38358, 38359, 0, 0, 0, 38363, 0, 0, 0, 38367, 38368, 38369, 0, 0, 0, 0, 38374, 0, 38376, 0, 0, 0, 38380, 0, 38382, 38383, 0, 0, 0, 38387, 0, 0, 0, 0, 38392, 38393, 38394, 38395, 0, 0, 0, 38399, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +662: 1, 1, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 1, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 1, 1, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 46165, 24846, 48579, 48579, 48579, 20848, 48579, 17856, 43968, 48579, 23464, 18072, 48579, 44927, 17950, 42529, 48579, 43767, 41105, 44067, 48579, 48579, 48579, 48579, 32247, 48579, 48579, 48579, 36114, 35648, 48579, 24550, 35174, 24551, 48579, 48579, 44686, 48579, 48579, 43260, 48579, 48579, 48579, 48579, 48579, 40681, 7563, 37147, 35355, 34725, 48579, 44700, 48579, 14993, 48579, 48579, 48579, 35357, 37200, 44701, 46569, 46570, 48579, 36237, 48579, 48579, 48579, 48579, 25544, 48579, 10621, 35432, 33233, 48579, 48579, 48579, 48579, 48579, 48579, 16466, 15001, 25118, 29979, 48579, 48579, 48579, 24632, 48579, 25700, 11145, 39955, 17861, 40366, 33839, 48579, 48579, 25707, 17993, 41088, 15007, 48579, 7687, 9136, 36214, 35272, 46143, 8777, 35146, 37175, 35625, 39902, 17803, 33224, 48579, 14683, 48579, 48579, 48579, 48579, 28978, 26800, 48579, 48579, 48579, 48579, 18619, 46713, 48579, 48579, 48579, 42998, 48579, 44513, 48579, 48579, 42721, 44937, 10723, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 43480, 28976, 32750, 48579, 48579, 48579, 28162, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 36532, 48579, 7668, 48579, 48579, 48579, 48579, 14365, 46543, 14213, 30282, 19410, 28504, 48579, 21477, 20030, 48579, 48579, 15652, 48579, 48579, 48579, 25327, 48579, 48448, 48579, 48579, 8164, 48579, 48579, 48579, 48579, 48579, 48579, 34531, 42857, 29272, 48579, 48579, 48579, 28391, 34384, 48579, 26685, 34385, 48579, 36369, 48579, 48579, 48579, 48579, 48579, 48579, 16165, 48579, 48579, 48579, 48579, 24060, 8018, 44777, 48502, 23753, 40664, 48579, 48579, 45315, 10642, 20164, 26931, 20036, 44626, 48579, 48579, 44627, 42771, 48579, 48579, 48579, 26730, 45316, 48579, 47797, 36381, 48579, 48579, 39128, 21763, 45359, 26060, 36229, 48579, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 38402, 38403, 38404, 0, 38406, 0, 0, 38409, 0, 0, 38412, 0, 0, 0, 38416, 0, 0, 0, 38420, 38421, 38422, 38423, 0, 38425, 38426, 38427, 0, 0, 38430, 0, 0, 0, 38434, 38435, 0, 38437, 38438, 0, 38440, 38441, 38442, 38443, 38444, 0, 0, 0, 0, 0, 38450, 0, 38452, 0, 38454, 38455, 38456, 0, 0, 0, 0, 0, 38462, 0, 38464, 38465, 38466, 38467, 0, 38469, 0, 0, 0, 38473, 38474, 38475, 38476, 38477, 38478, 0, 0, 0, 0, 38483, 38484, 38485, 0, 38487, 0, 0, 0, 0, 0, 0, 38494, 38495, 0, 0, 0, 0, 38500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38513, 0, 38515, 38516, 38517, 38518, 0, 0, 38521, 38522, 38523, 38524, 0, 0, 38527, 38528, 38529, 0, 38531, 0, 38533, 38534, 0, 0, 0, 38538, 38539, 38540, 38541, 38542, 38543, 38544, 38545, 38546, 38547, 38548, 0, 0, 0, 38552, 38553, 38554, 0, 38556, 38557, 38558, 38559, 38560, 38561, 38562, 0, 38564, 0, 38566, 38567, 38568, 38569, 0, 0, 0, 0, 0, 0, 38576, 0, 0, 38579, 38580, 0, 38582, 38583, 38584, 0, 38586, 0, 38588, 38589, 0, 38591, 38592, 38593, 38594, 38595, 38596, 0, 0, 0, 38600, 38601, 38602, 0, 0, 38605, 0, 0, 38608, 0, 38610, 38611, 38612, 38613, 38614, 38615, 0, 38617, 38618, 38619, 38620, 0, 0, 0, 0, 0, 0, 38627, 38628, 0, 0, 0, 0, 0, 0, 38635, 38636, 0, 0, 38639, 38640, 38641, 0, 0, 38644, 0, 0, 38647, 38648, 0, 0, 0, 0, 0, 38654, 38655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +663: 1, 1, 2, 1, 2, 2, 1, 1, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 1, 47801, 25353, 48579, 21925, 48579, 48579, 19453, 21997, 48579, 48579, 48045, 48579, 44943, 13411, 48579, 48579, 48579, 48579, 28311, 48579, 48579, 48579, 10979, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 7511, 48579, 48579, 48579, 16069, 48579, 9108, 13368, 38008, 48579, 48579, 48579, 48579, 32243, 22644, 48579, 48579, 29893, 22481, 15322, 43922, 48579, 37140, 36976, 44176, 42173, 48579, 42390, 48579, 48579, 41930, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 39487, 48579, 36393, 48579, 35504, 48579, 48579, 48579, 11657, 48579, 48579, 48579, 40849, 38658, 9478, 44662, 48579, 48579, 10057, 39276, 48579, 22588, 9581, 9769, 31936, 48579, 48579, 12166, 48579, 35349, 48579, 48579, 18408, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 38445, 44782, 48579, 48579, 48579, 48579, 20571, 39786, 45798, 33155, 27816, 48579, 33669, 9628, 35415, 11410, 27299, 47480, 10981, 19898, 10982, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 24734, 48579, 48579, 48579, 48579, 17172, 48579, 48579, 48579, 48579, 48579, 13879, 39788, 10533, 33670, 24570, 18793, 48579, 48579, 12754, 48579, 48579, 24850, 48579, 48579, 48579, 48579, 48579, 48579, 45236, 48579, 48579, 48579, 19319, 25176, 48579, 48579, 13645, 17387, 43855, 44929, 17102, 25383, 48579, 24774, 48579, 7626, 12519, 43284, 29006, 33629, 48579, 40462, 48579, 48579, 12223, 44702, 9486, 38399, 9813, 9265, 48579, 20330, 48579, 48579, 48579, 48579, 48579, 48579, 27190, 38037, 27822, 48579, 48579, 48579, 48579, 34821, 21016, 34880, 19327, 48579, 48579, 11591, 48579, 25697, 18534, 48579, 37328, 48579, 48579, 44388, 48579, 48579, 10106, 43864, 19332, 48579, 23691, 48579, 48579, 48579, 48579, 28131, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 38658, 0, 38660, 38661, 0, 0, 38664, 38665, 0, 38667, 0, 0, 38670, 38671, 38672, 38673, 0, 38675, 38676, 38677, 0, 38679, 38680, 38681, 38682, 38683, 38684, 38685, 38686, 0, 38688, 38689, 38690, 0, 38692, 0, 0, 0, 38696, 38697, 38698, 38699, 0, 0, 38702, 38703, 0, 0, 0, 0, 38708, 0, 0, 0, 0, 38713, 0, 38715, 38716, 0, 38718, 38719, 38720, 38721, 38722, 38723, 38724, 38725, 38726, 38727, 0, 38729, 0, 38731, 0, 38733, 38734, 38735, 0, 38737, 38738, 38739, 0, 0, 0, 0, 38744, 38745, 0, 0, 38748, 0, 0, 0, 0, 38753, 38754, 0, 38756, 0, 38758, 38759, 0, 38761, 38762, 38763, 38764, 38765, 38766, 38767, 38768, 38769, 38770, 38771, 38772, 38773, 38774, 0, 0, 38777, 38778, 38779, 38780, 0, 0, 0, 0, 0, 38786, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38796, 38797, 38798, 38799, 38800, 38801, 38802, 38803, 38804, 38805, 38806, 38807, 38808, 0, 38810, 38811, 38812, 38813, 0, 38815, 38816, 38817, 38818, 38819, 0, 0, 0, 0, 0, 0, 38826, 38827, 0, 38829, 38830, 0, 38832, 38833, 38834, 38835, 38836, 38837, 0, 38839, 38840, 38841, 0, 0, 38844, 38845, 0, 0, 0, 0, 0, 0, 38852, 0, 38854, 0, 0, 0, 0, 0, 38860, 0, 38862, 38863, 0, 0, 0, 0, 0, 0, 38870, 0, 38872, 38873, 38874, 38875, 38876, 38877, 0, 0, 0, 38881, 38882, 38883, 38884, 0, 0, 0, 0, 38889, 38890, 0, 38892, 0, 0, 38895, 0, 38897, 38898, 0, 38900, 38901, 0, 0, 0, 38905, 0, 38907, 38908, 38909, 38910, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +664: 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 1, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 2, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 1, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 7644, 15633, 42832, 20010, 48579, 12185, 13355, 41380, 32559, 21989, 37127, 40832, 35121, 48579, 9612, 10515, 48579, 13328, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 17125, 48579, 48579, 48579, 48579, 38558, 48579, 48579, 48579, 48579, 48579, 48579, 30711, 48579, 19467, 48579, 48579, 48579, 48579, 48579, 23212, 37909, 48579, 48579, 48579, 48579, 48579, 48579, 34447, 15337, 48579, 37150, 48579, 8896, 48579, 35930, 17401, 30020, 48579, 48579, 48579, 44319, 35935, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 39724, 48579, 40678, 48579, 48579, 48579, 48579, 38297, 17173, 29656, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 35973, 48579, 8909, 39731, 48579, 48579, 42882, 48579, 48579, 29989, 18572, 28028, 7669, 48579, 14594, 48579, 48579, 48579, 13320, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 14834, 48579, 48579, 21075, 48579, 48579, 48579, 35593, 48579, 48579, 48579, 48579, 48579, 37679, 15909, 48579, 48579, 14835, 48579, 37382, 48579, 38201, 16526, 13938, 48579, 46244, 11678, 42311, 48579, 7883, 9385, 27917, 48579, 30221, 48579, 48579, 15981, 48579, 48579, 25503, 48579, 48579, 32460, 48579, 48579, 48579, 48579, 48579, 48579, 15657, 48579, 18215, 27982, 48579, 48579, 40666, 18725, 15316, 18934, 48579, 32074, 20979, 37324, 44342, 27923, 47289, 21611, 48579, 34569, 23084, 31768, 25073, 15497, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 40964, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 25229, 48579, 28830, 48579, 29741, 48579, 15505, 9392, 43228, 48579, 48579, 9231, 48579, 14099, 48579, 48579, 48579, 48579, 48579, 46259, 48579, 24507, 48579, 48579, 37110, 12216, 48579, 26085, 41598, 13416, 31461, 37652, 27769, 48418, 15516, 32015, 8206, 7586, 31201, 48579, 48579, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 38916, 0, 0, 0, 0, 0, 0, 0, 0, 38925, 0, 0, 38928, 0, 38930, 38931, 38932, 38933, 38934, 38935, 38936, 38937, 0, 38939, 38940, 38941, 38942, 0, 38944, 38945, 38946, 38947, 38948, 38949, 0, 38951, 0, 38953, 38954, 38955, 38956, 38957, 0, 0, 38960, 38961, 38962, 38963, 38964, 38965, 0, 0, 38968, 0, 38970, 0, 38972, 0, 0, 0, 38976, 38977, 38978, 0, 0, 38981, 38982, 38983, 38984, 38985, 38986, 38987, 0, 38989, 0, 38991, 38992, 38993, 38994, 0, 0, 0, 38998, 38999, 39000, 39001, 39002, 39003, 39004, 0, 39006, 0, 0, 39009, 39010, 0, 39012, 39013, 0, 0, 0, 0, 39018, 0, 39020, 39021, 39022, 0, 39024, 39025, 39026, 39027, 39028, 39029, 39030, 0, 39032, 39033, 0, 39035, 39036, 39037, 0, 39039, 39040, 39041, 39042, 39043, 0, 0, 39046, 39047, 0, 39049, 0, 39051, 0, 0, 0, 39055, 0, 0, 0, 39059, 0, 0, 0, 39063, 0, 39065, 39066, 0, 39068, 39069, 0, 39071, 39072, 0, 39074, 39075, 39076, 39077, 39078, 39079, 0, 39081, 0, 0, 39084, 39085, 0, 0, 0, 0, 39090, 0, 0, 0, 0, 0, 0, 0, 39098, 0, 0, 0, 0, 0, 39104, 39105, 39106, 39107, 39108, 39109, 39110, 39111, 39112, 39113, 0, 39115, 39116, 39117, 39118, 39119, 39120, 39121, 39122, 39123, 39124, 39125, 0, 39127, 0, 39129, 0, 39131, 0, 0, 0, 39135, 39136, 0, 39138, 0, 39140, 39141, 39142, 39143, 39144, 0, 39146, 0, 39148, 39149, 0, 0, 39152, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39165, 39166, 39167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +665: 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 48579, 32387, 48579, 48579, 48579, 48579, 48579, 48579, 32365, 18448, 39675, 23364, 48579, 48579, 48579, 12047, 48579, 48579, 42798, 48579, 48579, 48579, 10691, 48257, 28402, 10619, 13737, 43875, 46288, 48579, 36027, 42070, 40176, 41046, 48579, 13767, 34702, 39493, 39494, 48579, 48579, 14112, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 23423, 48579, 48579, 48579, 48579, 48579, 38122, 43972, 44368, 48579, 48579, 36324, 48579, 21138, 48579, 36117, 30645, 48579, 13002, 36194, 26212, 45998, 38174, 19908, 7523, 29236, 30885, 48579, 48579, 48579, 34161, 35703, 48579, 48579, 27941, 48579, 48579, 48579, 44073, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 45718, 48579, 48579, 42265, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 10958, 24243, 44379, 10071, 42626, 48579, 48579, 10908, 48579, 24244, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 37095, 48579, 48352, 48579, 48579, 39505, 48579, 48579, 48579, 48579, 39176, 48579, 8910, 17272, 30655, 33186, 48579, 14697, 48579, 33631, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 18554, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 7957, 44386, 44387, 48579, 19674, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 22999, 48210, 48579, 48579, 48579, 48579, 48579, 48579, 39696, 27194, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 24633, 47134, 14543, 25120, 9463, 13659, 16724, 40631, 24271, 30829, 48579, 48579, 22256, 37330, 48579, 21952, 39956, 48579, 48579, 48579, 48579, 32127, 48579, 48579, 48579, 47675, 48579, 48579, 48579, 48579, 22264, 48579, 48579, 48579, 48579, 21046, 48579, 47332, 39594, 25614, 42080, 32444, 42967, 25033, 9075, 19143, 19767, 13455, 47249, 32174, 20896, 48579, 48579, 48579, 48579, 21720, 48579, 8202, 48579, 48579, 8321, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 39168, 0, 39170, 39171, 39172, 39173, 39174, 39175, 0, 0, 0, 0, 39180, 39181, 39182, 0, 39184, 39185, 0, 39187, 39188, 39189, 0, 0, 0, 0, 0, 0, 0, 39197, 0, 0, 0, 0, 39202, 0, 0, 0, 0, 39207, 39208, 0, 39210, 39211, 39212, 39213, 39214, 39215, 39216, 39217, 0, 39219, 39220, 39221, 39222, 39223, 0, 0, 0, 39227, 39228, 0, 39230, 0, 39232, 0, 0, 39235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39245, 39246, 39247, 0, 0, 39250, 39251, 0, 39253, 39254, 39255, 0, 39257, 39258, 39259, 39260, 39261, 39262, 39263, 0, 39265, 39266, 0, 39268, 39269, 39270, 39271, 39272, 39273, 39274, 0, 0, 0, 0, 0, 39280, 39281, 0, 39283, 0, 39285, 39286, 39287, 39288, 39289, 39290, 39291, 39292, 0, 39294, 0, 39296, 39297, 0, 39299, 39300, 39301, 39302, 0, 39304, 0, 0, 0, 0, 39309, 0, 39311, 0, 39313, 39314, 39315, 39316, 39317, 39318, 39319, 0, 39321, 39322, 39323, 39324, 39325, 39326, 39327, 0, 0, 0, 39331, 0, 39333, 39334, 39335, 39336, 39337, 39338, 39339, 39340, 39341, 39342, 39343, 39344, 0, 0, 39347, 39348, 39349, 39350, 39351, 39352, 0, 0, 39355, 39356, 39357, 39358, 39359, 39360, 39361, 39362, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39373, 39374, 0, 0, 39377, 0, 0, 39380, 39381, 39382, 39383, 0, 39385, 39386, 39387, 0, 39389, 39390, 39391, 39392, 0, 39394, 39395, 39396, 39397, 0, 39399, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39414, 39415, 39416, 39417, 0, 39419, 0, 39421, 39422, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +666: 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 1, 2, 1, 2, 2, 1, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 15956, 11536, 48579, 31029, 35148, 38071, 10584, 25758, 44287, 23416, 31030, 12989, 35692, 45975, 48579, 14508, 25094, 36739, 19380, 30930, 18185, 48579, 48579, 44289, 30773, 44290, 37460, 48579, 7724, 30571, 33038, 31271, 41535, 39541, 48579, 48579, 48579, 48579, 48579, 48579, 11603, 14595, 48579, 23350, 16962, 32302, 14221, 31756, 48579, 48579, 26564, 22912, 42307, 48579, 48579, 32303, 11139, 20072, 48579, 47516, 48579, 13789, 37481, 48579, 28393, 48579, 48579, 48579, 41672, 36897, 48579, 48579, 48579, 48579, 48579, 40542, 16969, 30097, 48579, 48579, 48579, 44464, 17735, 48579, 47921, 48579, 48579, 33764, 44467, 48579, 48579, 19883, 48579, 31195, 34818, 11583, 48341, 24095, 28516, 48579, 37472, 45711, 48579, 12479, 48579, 48579, 48579, 48579, 48579, 48579, 13722, 8753, 20849, 30881, 17688, 11008, 41684, 48579, 41938, 48579, 48579, 48579, 35087, 36292, 42319, 48579, 22562, 48579, 47766, 16929, 7283, 17174, 48579, 48579, 48579, 48579, 35649, 40978, 8816, 48579, 15059, 32019, 26801, 48579, 17059, 48579, 48579, 48579, 48579, 48579, 8623, 22238, 11413, 48579, 48579, 30361, 48579, 48579, 48579, 43285, 48579, 48579, 30987, 43294, 14279, 25388, 48579, 8628, 48579, 48579, 48579, 48579, 48579, 19328, 27834, 48579, 48579, 41289, 48579, 48579, 41970, 48579, 48579, 48579, 24634, 48579, 35977, 48579, 48579, 48579, 26262, 48579, 22431, 26926, 39903, 48579, 48579, 48579, 48579, 7295, 48579, 48579, 35695, 48579, 48579, 27056, 48579, 17012, 48579, 48579, 48579, 15846, 28352, 17487, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 32305, 48579, 48579, 48579, 48579, 9629, 33258, 48579, 48579, 48579, 48579, 29822, 48579, 48579, 48579, 48579, 48579, 48579, 40081, 39957, 21738, 48579, 48579, 48579, 48579, 10592, 28388, 48579, 48579, 48579, 48579, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 39426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39438, 0, 0, 0, 0, 0, 0, 39445, 39446, 0, 0, 0, 0, 39451, 0, 0, 0, 0, 0, 0, 39458, 39459, 39460, 39461, 39462, 39463, 0, 0, 39466, 0, 0, 0, 0, 0, 39472, 39473, 0, 0, 0, 39477, 39478, 0, 0, 0, 39482, 0, 39484, 0, 0, 39487, 0, 39489, 39490, 39491, 0, 0, 39494, 39495, 39496, 39497, 39498, 0, 0, 0, 39502, 39503, 39504, 0, 0, 39507, 0, 39509, 39510, 0, 0, 39513, 39514, 0, 39516, 0, 0, 0, 0, 0, 0, 39523, 0, 0, 39526, 0, 39528, 39529, 39530, 39531, 39532, 39533, 0, 0, 0, 0, 0, 0, 0, 39541, 0, 39543, 39544, 39545, 0, 0, 0, 39549, 0, 39551, 0, 0, 0, 0, 39556, 39557, 39558, 39559, 0, 0, 0, 39563, 0, 0, 0, 39567, 0, 39569, 39570, 39571, 39572, 39573, 0, 0, 0, 39577, 39578, 0, 39580, 39581, 39582, 0, 39584, 39585, 0, 0, 0, 0, 39590, 0, 39592, 39593, 39594, 39595, 39596, 0, 0, 39599, 39600, 0, 39602, 39603, 0, 39605, 39606, 39607, 0, 39609, 0, 39611, 39612, 39613, 0, 39615, 0, 0, 0, 39619, 39620, 39621, 39622, 0, 39624, 39625, 0, 39627, 39628, 0, 39630, 0, 39632, 39633, 39634, 0, 0, 0, 39638, 39639, 39640, 39641, 39642, 39643, 39644, 39645, 39646, 39647, 0, 39649, 39650, 39651, 39652, 0, 0, 39655, 39656, 39657, 39658, 0, 39660, 39661, 39662, 39663, 39664, 39665, 0, 0, 0, 39669, 39670, 39671, 39672, 0, 0, 39675, 39676, 39677, 39678, 39679, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +667: 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 28452, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 28037, 48579, 33701, 48579, 12993, 48579, 48579, 25345, 48579, 46428, 42312, 48579, 15487, 31047, 31761, 21758, 9057, 26844, 45777, 35815, 48579, 48579, 48579, 10945, 48579, 48579, 48579, 48579, 48579, 48579, 45820, 48579, 34146, 43936, 48579, 31769, 12660, 36470, 47771, 48579, 43555, 48579, 28396, 9109, 23086, 46855, 14002, 11775, 8021, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 24206, 48579, 48579, 21769, 38212, 25082, 48579, 48579, 38344, 34269, 28726, 26776, 21532, 48579, 48579, 48579, 48579, 40671, 48579, 48579, 48579, 48579, 38327, 48579, 12664, 48579, 38897, 7479, 12217, 48233, 17381, 11462, 8339, 48579, 13474, 48579, 46058, 48579, 48579, 48579, 41440, 48579, 48579, 12845, 19207, 48579, 48579, 48579, 27674, 48579, 48579, 15518, 48579, 8026, 22728, 26849, 32528, 48205, 30883, 39204, 35177, 40679, 28180, 48579, 48579, 48579, 26661, 48579, 48579, 48579, 48579, 45669, 9969, 33831, 38346, 48579, 48579, 48579, 48579, 7284, 7956, 17452, 48579, 33231, 35650, 36483, 41540, 48579, 9064, 32726, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 33402, 38298, 48579, 48579, 7565, 48579, 47732, 48579, 30013, 35418, 42627, 35178, 13505, 35179, 26384, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 14802, 48500, 48579, 28414, 12728, 46781, 12087, 24963, 19722, 9114, 11830, 10623, 9331, 48579, 33134, 45375, 48579, 48579, 48579, 48579, 48579, 20803, 48579, 48579, 42377, 25949, 48579, 9559, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 28565, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 21019, 30365, 47752, 45380, 48579, 48579, 48579, 48579, 48579, 48579, 24639, 48579, 48579, 23487, 48579, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 39681, 39682, 39683, 39684, 39685, 39686, 39687, 39688, 39689, 39690, 39691, 39692, 0, 39694, 0, 39696, 0, 39698, 39699, 0, 39701, 0, 0, 39704, 0, 0, 0, 0, 0, 0, 0, 0, 39713, 39714, 39715, 0, 39717, 39718, 39719, 39720, 39721, 39722, 0, 39724, 0, 0, 39727, 0, 0, 0, 0, 39732, 0, 39734, 0, 0, 0, 0, 0, 0, 0, 39742, 39743, 39744, 39745, 39746, 39747, 39748, 39749, 39750, 0, 39752, 39753, 0, 0, 0, 39757, 39758, 0, 0, 0, 0, 0, 39764, 39765, 39766, 39767, 0, 39769, 39770, 39771, 39772, 0, 39774, 0, 39776, 0, 0, 0, 0, 0, 0, 0, 39784, 0, 39786, 0, 39788, 39789, 39790, 0, 39792, 39793, 0, 0, 39796, 39797, 39798, 0, 39800, 39801, 0, 39803, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39814, 39815, 39816, 0, 39818, 39819, 39820, 39821, 0, 0, 0, 0, 39826, 39827, 39828, 39829, 0, 0, 0, 39833, 0, 0, 0, 0, 39838, 0, 0, 39841, 39842, 39843, 39844, 39845, 39846, 39847, 39848, 39849, 39850, 0, 0, 39853, 39854, 0, 39856, 0, 39858, 0, 0, 0, 0, 0, 0, 0, 39866, 39867, 39868, 39869, 39870, 39871, 39872, 39873, 39874, 0, 0, 39877, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39888, 0, 0, 39891, 39892, 39893, 39894, 39895, 0, 39897, 39898, 0, 0, 39901, 0, 39903, 39904, 39905, 39906, 39907, 39908, 39909, 39910, 39911, 0, 39913, 39914, 39915, 39916, 39917, 39918, 39919, 0, 0, 0, 0, 39924, 39925, 39926, 39927, 39928, 39929, 0, 39931, 39932, 0, 39934, 39935, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +668: 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 10964, 48579, 48579, 46008, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 8739, 38269, 48579, 48579, 48579, 48579, 17987, 48579, 48579, 48579, 30043, 48579, 33334, 48579, 48579, 48579, 48579, 28566, 14842, 40843, 48579, 34267, 48579, 21944, 48579, 48579, 48579, 22248, 48579, 44725, 48579, 17000, 17005, 48579, 18216, 48579, 48579, 24486, 40158, 14341, 44861, 17129, 48579, 48579, 21429, 48579, 22725, 48579, 48198, 14791, 48579, 29601, 16070, 48579, 20197, 28517, 48579, 39495, 24572, 10273, 48579, 14346, 16073, 44703, 18264, 14800, 7566, 48579, 48579, 48579, 14376, 48579, 48579, 48579, 48579, 22732, 22959, 9268, 48579, 48579, 42549, 20805, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 10276, 16075, 32894, 48579, 45056, 48579, 25185, 48579, 48579, 48579, 48579, 44727, 45062, 45804, 39958, 48579, 48579, 27628, 48579, 48579, 48579, 16847, 21517, 48579, 37434, 48579, 48579, 38958, 37970, 47892, 38072, 23192, 48579, 48579, 27046, 48579, 17528, 17400, 14623, 28949, 44173, 18477, 48579, 48579, 23784, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 47466, 16862, 8534, 20073, 36655, 48579, 26192, 22823, 48428, 25339, 30588, 48579, 47469, 48579, 48579, 48579, 48579, 16437, 48379, 48579, 42001, 35218, 48579, 23201, 48579, 10122, 48579, 42239, 48579, 48579, 44628, 48579, 48579, 48579, 48579, 48579, 48579, 34540, 23551, 43174, 13498, 48579, 48579, 48579, 38491, 43762, 15317, 47699, 15388, 48579, 35327, 24310, 42355, 37227, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 16913, 48579, 48579, 48579, 26200, 41931, 30615, 23790, 47478, 48579, 16866, 18141, 48579, 48579, 48579, 48579, 48579, 48579, 21318, 48579, 48579, 10805, 48579, 48579, 21772, 45713, 48579, 27546, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 39937, 39938, 0, 39940, 39941, 39942, 39943, 39944, 39945, 39946, 39947, 39948, 0, 0, 39951, 39952, 39953, 39954, 0, 39956, 39957, 39958, 0, 39960, 0, 39962, 39963, 39964, 39965, 0, 0, 0, 39969, 0, 39971, 0, 39973, 39974, 39975, 0, 39977, 0, 39979, 0, 0, 39982, 0, 39984, 39985, 0, 0, 0, 0, 0, 39991, 39992, 0, 39994, 0, 39996, 0, 0, 39999, 0, 0, 40002, 0, 0, 40005, 0, 0, 0, 40009, 0, 0, 0, 0, 0, 0, 40016, 40017, 40018, 0, 40020, 40021, 40022, 40023, 0, 0, 0, 40027, 40028, 0, 0, 40031, 40032, 40033, 40034, 40035, 40036, 40037, 0, 0, 0, 40041, 0, 40043, 0, 40045, 40046, 40047, 40048, 0, 0, 0, 0, 40053, 40054, 0, 40056, 40057, 40058, 0, 0, 40061, 0, 40063, 40064, 0, 0, 0, 0, 0, 40070, 40071, 0, 40073, 0, 0, 0, 0, 0, 0, 40080, 40081, 0, 40083, 40084, 40085, 40086, 40087, 40088, 40089, 40090, 40091, 40092, 40093, 40094, 40095, 0, 0, 0, 0, 0, 40101, 0, 0, 0, 0, 0, 40107, 0, 40109, 40110, 40111, 40112, 0, 0, 40115, 0, 0, 40118, 0, 40120, 0, 40122, 0, 40124, 40125, 0, 40127, 40128, 40129, 40130, 40131, 40132, 0, 0, 0, 0, 40137, 40138, 40139, 0, 0, 0, 0, 0, 40145, 0, 0, 0, 0, 40150, 40151, 40152, 40153, 40154, 40155, 40156, 0, 40158, 40159, 40160, 0, 0, 0, 0, 0, 40166, 0, 0, 40169, 40170, 40171, 40172, 40173, 40174, 0, 40176, 40177, 0, 40179, 40180, 0, 0, 40183, 0, 40185, 40186, 40187, 40188, 40189, 40190, 40191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +669: 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 1, 1, 2, 47435, 15662, 40602, 19659, 48579, 48579, 48579, 33465, 27061, 45212, 48579, 48579, 48579, 34478, 48579, 48579, 26213, 44179, 20572, 29124, 48579, 48579, 48579, 48579, 21945, 44180, 48579, 48579, 43286, 36297, 37919, 10312, 25241, 16496, 48579, 24586, 25007, 48579, 48579, 20646, 42073, 8824, 30648, 48579, 48579, 48579, 43295, 48579, 48579, 8964, 27192, 9848, 48579, 15664, 48579, 48579, 48579, 32115, 12855, 23974, 48579, 48579, 48579, 48579, 25407, 48579, 48579, 48579, 18559, 32126, 48579, 26407, 48579, 23226, 48579, 48579, 48579, 31910, 44445, 18478, 48579, 48579, 48579, 24055, 48579, 32616, 39996, 35031, 48579, 48579, 13711, 8866, 48579, 48579, 48579, 48579, 28950, 48579, 17729, 29504, 48579, 14778, 28082, 48579, 48579, 15133, 48579, 48579, 18218, 37723, 33390, 48579, 20618, 38559, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 15488, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 9030, 47608, 48579, 47475, 10685, 48579, 33959, 18137, 9306, 48579, 48579, 48579, 48579, 32462, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 28088, 48579, 24487, 48579, 48579, 19992, 48579, 48579, 26570, 48579, 48579, 27150, 27987, 47292, 39554, 18959, 16592, 21613, 48579, 28089, 48579, 32892, 48579, 38497, 48579, 32848, 48579, 45780, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 29135, 40166, 48579, 20562, 48579, 48579, 48579, 48579, 48579, 48579, 24313, 34546, 43244, 12846, 31661, 21773, 48579, 48579, 47101, 48579, 23758, 9394, 23100, 43245, 48579, 9241, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 10904, 48579, 48579, 48579, 48579, 48579, 20567, 48579, 38394, 41401, 48579, 48579, 48579, 48579, 37244, 26777, 48579, 14636, 47942, 48579, 30884, 48579, 35702, 30634, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 40196, 40197, 40198, 0, 0, 0, 40202, 40203, 40204, 0, 40206, 40207, 0, 0, 0, 0, 40212, 40213, 40214, 40215, 0, 0, 40218, 40219, 0, 0, 0, 0, 0, 0, 40226, 0, 0, 40229, 40230, 0, 0, 0, 0, 40235, 40236, 40237, 0, 40239, 40240, 0, 0, 0, 40244, 0, 40246, 40247, 40248, 0, 0, 0, 40252, 40253, 40254, 40255, 0, 40257, 40258, 40259, 0, 0, 40262, 0, 40264, 0, 40266, 40267, 40268, 0, 0, 0, 40272, 40273, 40274, 0, 40276, 0, 0, 0, 40280, 40281, 0, 0, 40284, 40285, 40286, 40287, 0, 40289, 0, 0, 40292, 0, 0, 40295, 40296, 0, 40298, 40299, 0, 0, 0, 40303, 0, 0, 40306, 40307, 40308, 40309, 40310, 40311, 40312, 0, 40314, 40315, 40316, 40317, 40318, 40319, 40320, 0, 0, 40323, 0, 0, 40326, 0, 0, 0, 40330, 40331, 40332, 40333, 0, 40335, 40336, 40337, 40338, 40339, 40340, 40341, 0, 40343, 0, 40345, 40346, 0, 40348, 40349, 0, 40351, 40352, 0, 0, 0, 0, 0, 0, 0, 40360, 0, 40362, 0, 40364, 0, 40366, 0, 40368, 0, 40370, 40371, 40372, 40373, 40374, 40375, 40376, 40377, 40378, 40379, 40380, 40381, 40382, 40383, 40384, 0, 0, 40387, 0, 40389, 40390, 40391, 40392, 40393, 40394, 0, 0, 0, 0, 0, 0, 40401, 40402, 0, 40404, 0, 0, 0, 0, 40409, 0, 40411, 40412, 40413, 40414, 40415, 40416, 40417, 40418, 40419, 40420, 40421, 40422, 0, 40424, 40425, 40426, 40427, 40428, 0, 40430, 0, 0, 40433, 40434, 40435, 40436, 0, 0, 40439, 0, 0, 40442, 0, 40444, 0, 0, 40447, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +670: 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 29678, 8875, 14931, 37111, 18501, 48579, 48579, 14266, 48579, 48579, 48579, 14267, 48579, 48579, 13372, 48579, 32853, 48579, 48579, 48579, 48579, 48579, 14268, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 41947, 35046, 48579, 48579, 48579, 48579, 48579, 43720, 28519, 28520, 42801, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 27300, 48579, 48579, 48579, 48579, 42414, 30192, 11855, 48579, 38133, 48579, 17176, 43641, 48579, 36785, 47121, 14696, 44074, 48579, 48579, 23214, 7480, 7736, 48579, 17386, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 28266, 28235, 48579, 48579, 21330, 48579, 48579, 37837, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 11291, 48579, 35652, 36195, 30650, 36118, 38035, 15695, 48579, 16008, 48579, 17388, 48579, 28183, 16009, 48579, 48579, 48579, 48579, 46571, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 35705, 48579, 48579, 48579, 34960, 48579, 28620, 33201, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 40182, 48579, 48579, 48579, 48354, 44383, 28621, 30476, 48579, 48579, 33921, 48579, 48579, 48579, 48579, 48579, 48579, 9307, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 23334, 24252, 48579, 16532, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 41838, 9398, 20457, 48579, 38506, 9709, 25181, 47713, 48579, 18908, 48579, 36916, 45746, 48579, 17767, 48579, 48579, 17093, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 21369, 48579, 48579, 48579, 13286, 48579, 43736, 48579, 48579, 48579, 48579, 47132, 48579, 48579, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 40453, 40454, 0, 40456, 40457, 40458, 0, 40460, 40461, 0, 40463, 0, 40465, 40466, 40467, 40468, 40469, 0, 40471, 40472, 40473, 40474, 40475, 40476, 40477, 0, 0, 40480, 40481, 40482, 40483, 40484, 0, 0, 0, 0, 40489, 40490, 40491, 40492, 40493, 40494, 40495, 40496, 40497, 40498, 40499, 40500, 40501, 40502, 40503, 40504, 0, 40506, 40507, 40508, 40509, 0, 0, 0, 40513, 0, 40515, 0, 0, 40518, 0, 0, 0, 0, 40523, 40524, 0, 0, 0, 40528, 0, 40530, 40531, 40532, 40533, 40534, 40535, 40536, 40537, 40538, 40539, 40540, 40541, 0, 0, 40544, 40545, 0, 40547, 40548, 0, 40550, 40551, 40552, 40553, 40554, 40555, 40556, 40557, 40558, 40559, 40560, 0, 40562, 0, 0, 0, 0, 0, 0, 40569, 0, 40571, 0, 40573, 0, 0, 40576, 40577, 40578, 40579, 0, 40581, 40582, 40583, 40584, 40585, 40586, 40587, 40588, 40589, 40590, 40591, 40592, 40593, 40594, 40595, 40596, 40597, 40598, 0, 40600, 40601, 40602, 0, 40604, 0, 0, 40607, 40608, 40609, 40610, 40611, 40612, 40613, 40614, 40615, 40616, 40617, 40618, 0, 40620, 40621, 40622, 0, 0, 0, 0, 40627, 40628, 0, 40630, 40631, 40632, 40633, 40634, 40635, 0, 40637, 40638, 40639, 40640, 40641, 40642, 40643, 40644, 40645, 40646, 40647, 40648, 40649, 40650, 0, 0, 40653, 0, 40655, 40656, 40657, 40658, 40659, 40660, 40661, 0, 0, 0, 40665, 0, 0, 0, 0, 40670, 0, 40672, 0, 0, 40675, 0, 40677, 40678, 0, 40680, 40681, 40682, 40683, 40684, 40685, 40686, 40687, 40688, 0, 40690, 40691, 40692, 0, 40694, 0, 40696, 40697, 40698, 40699, 0, 40701, 40702, 40703, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +671: 2, 2, 1, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 1, 48579, 48579, 38041, 48579, 19926, 32767, 48579, 48579, 7628, 12520, 26398, 42550, 37839, 48579, 48579, 48579, 48579, 48579, 31231, 48579, 48579, 48579, 48579, 48579, 48579, 16012, 19927, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48301, 48579, 42814, 48579, 48579, 45747, 48579, 25122, 48579, 48579, 48579, 48579, 48579, 48579, 42553, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 45900, 48579, 48579, 48579, 11101, 8828, 48579, 48579, 48579, 48579, 40986, 43981, 48579, 48579, 48579, 48579, 48579, 40367, 37924, 24642, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 9274, 20344, 9998, 23336, 48579, 48579, 31665, 48579, 48579, 48579, 48579, 48579, 34767, 38941, 32128, 48579, 48579, 48579, 48579, 48579, 48579, 26409, 48579, 48579, 12540, 28646, 24329, 48579, 7745, 48579, 14201, 15119, 15453, 19167, 45773, 7400, 48579, 48579, 31921, 11069, 27511, 41398, 37109, 28515, 18390, 34543, 48579, 40795, 47234, 22536, 48579, 48579, 48579, 48579, 48579, 39891, 39892, 11704, 10864, 48579, 13119, 43125, 48579, 13322, 48579, 48579, 17355, 37592, 48579, 42860, 8059, 43148, 48579, 48579, 48579, 48579, 41394, 48579, 48579, 48579, 48579, 39759, 48579, 48579, 48579, 48579, 48579, 48579, 8345, 48579, 48579, 20972, 15912, 45581, 48579, 46487, 18219, 38850, 40404, 39914, 15489, 47229, 48579, 26932, 40405, 31186, 48579, 48579, 48579, 14876, 7828, 18542, 48579, 48579, 48579, 48579, 48579, 48579, 20619, 48579, 8062, 41435, 42240, 48579, 48579, 48579, 48579, 48579, 39129, 48579, 21926, 48579, 32163, 45018, 35843, 36973, 27925, 45707, 32076, 48579, 15141, 48579, 32077, 10897, 48579, 44062, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 36389, 48579, 48579, 37468, 48579, 48579, 37392, 48579, 11178, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 40704, 40705, 0, 40707, 0, 0, 40710, 40711, 0, 0, 0, 0, 0, 40717, 40718, 40719, 40720, 40721, 0, 40723, 40724, 40725, 40726, 40727, 40728, 0, 0, 40731, 40732, 40733, 40734, 40735, 40736, 40737, 40738, 40739, 40740, 40741, 0, 40743, 0, 40745, 40746, 0, 40748, 0, 40750, 40751, 40752, 40753, 40754, 40755, 0, 40757, 40758, 40759, 40760, 40761, 40762, 40763, 0, 40765, 40766, 40767, 0, 0, 40770, 40771, 40772, 40773, 0, 0, 40776, 40777, 40778, 40779, 40780, 0, 0, 0, 40784, 40785, 40786, 40787, 40788, 40789, 40790, 40791, 40792, 40793, 40794, 0, 0, 0, 0, 40799, 40800, 0, 40802, 40803, 40804, 40805, 40806, 0, 0, 0, 40810, 40811, 40812, 40813, 40814, 40815, 0, 40817, 40818, 0, 0, 0, 40822, 0, 40824, 0, 0, 0, 0, 0, 0, 40831, 40832, 0, 0, 0, 0, 0, 0, 0, 0, 40841, 0, 0, 0, 40845, 40846, 40847, 40848, 40849, 0, 0, 0, 0, 40854, 0, 0, 40857, 0, 40859, 40860, 0, 0, 40863, 0, 0, 0, 40867, 40868, 40869, 40870, 0, 40872, 40873, 40874, 40875, 0, 40877, 40878, 40879, 40880, 40881, 40882, 0, 40884, 40885, 0, 0, 0, 40889, 0, 0, 0, 0, 0, 0, 0, 40897, 0, 0, 0, 40901, 40902, 40903, 0, 0, 0, 40907, 40908, 40909, 40910, 40911, 40912, 0, 40914, 0, 0, 0, 40918, 40919, 40920, 40921, 40922, 0, 40924, 0, 40926, 0, 0, 0, 0, 0, 0, 0, 40934, 0, 40936, 0, 0, 40939, 0, 40941, 40942, 40943, 40944, 40945, 40946, 40947, 40948, 40949, 40950, 0, 40952, 40953, 0, 40955, 40956, 0, 40958, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +672: 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 2, 1, 1, 1, 2, 2, 2, 1, 2, 1, 1, 1, 2, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 1, 1, 48579, 15917, 48579, 48579, 48579, 48579, 48579, 48579, 44780, 15918, 32078, 48579, 48579, 48579, 48579, 21927, 48579, 48579, 13271, 42793, 34156, 43230, 48579, 16867, 20563, 48579, 35082, 31774, 48579, 14258, 18726, 18936, 41348, 48579, 48579, 21771, 48579, 45812, 10899, 23867, 48579, 30616, 40674, 48579, 18896, 36909, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 15507, 48579, 48579, 41349, 20990, 27356, 44664, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 47749, 20631, 47102, 10616, 48579, 21005, 39930, 10440, 24220, 45025, 48579, 47103, 23835, 38395, 32090, 48579, 37708, 48579, 42622, 43246, 23759, 48579, 36958, 7412, 22215, 41940, 48579, 48579, 48579, 21935, 48579, 46493, 48579, 47104, 26798, 48579, 48579, 48579, 40715, 48579, 48579, 11408, 11143, 48579, 48579, 48579, 48579, 48579, 31204, 14694, 10168, 48579, 27471, 35351, 7588, 48579, 15394, 48579, 48579, 48579, 38124, 46705, 27675, 10129, 41694, 44688, 48579, 15519, 35787, 19720, 48579, 14795, 48579, 48579, 18257, 21701, 48579, 44472, 48579, 48579, 48579, 48579, 48579, 30638, 26997, 48579, 48579, 8878, 17088, 48579, 48579, 48579, 27777, 48579, 37653, 37654, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 21326, 44689, 39501, 48579, 48579, 11493, 19668, 48579, 39727, 29567, 15523, 48579, 48579, 48579, 25540, 48579, 33106, 41176, 48299, 48579, 21014, 48579, 48579, 45891, 48579, 44373, 44374, 27001, 27566, 26937, 13962, 15524, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 20448, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 27548, 48579, 7524, 48579, 48579, 48579, 48579, 22729, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 18038, 48579, 48579, 48579, 16325, 48579, 38929, 48579, 32728, 15924, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 40960, 0, 40962, 40963, 40964, 40965, 40966, 40967, 0, 0, 0, 40971, 40972, 40973, 40974, 0, 40976, 40977, 0, 0, 0, 0, 40982, 0, 0, 40985, 0, 0, 40988, 0, 0, 0, 0, 40993, 40994, 0, 40996, 0, 0, 0, 41000, 0, 0, 41003, 0, 0, 41006, 41007, 41008, 41009, 41010, 41011, 41012, 41013, 41014, 41015, 41016, 41017, 0, 41019, 41020, 0, 0, 0, 0, 41025, 41026, 41027, 41028, 41029, 41030, 41031, 0, 0, 0, 0, 41036, 0, 0, 0, 0, 0, 41042, 0, 0, 0, 0, 41047, 0, 41049, 0, 0, 0, 41053, 0, 0, 0, 0, 41058, 41059, 41060, 0, 41062, 0, 41064, 0, 0, 41067, 41068, 41069, 0, 41071, 41072, 0, 0, 41075, 41076, 41077, 41078, 41079, 0, 0, 0, 41083, 0, 0, 0, 41087, 0, 41089, 41090, 41091, 0, 0, 0, 0, 0, 0, 41098, 0, 0, 0, 41102, 0, 41104, 41105, 0, 0, 41108, 0, 41110, 41111, 41112, 41113, 41114, 0, 0, 41117, 41118, 0, 0, 41121, 41122, 41123, 0, 41125, 0, 0, 41128, 41129, 41130, 41131, 41132, 41133, 41134, 41135, 41136, 41137, 41138, 41139, 0, 0, 0, 41143, 41144, 0, 0, 41147, 0, 0, 0, 41151, 41152, 41153, 0, 41155, 0, 0, 0, 41159, 0, 41161, 41162, 0, 41164, 0, 0, 0, 0, 0, 0, 0, 41172, 41173, 41174, 41175, 41176, 41177, 41178, 0, 41180, 41181, 41182, 41183, 41184, 41185, 41186, 41187, 41188, 41189, 0, 41191, 0, 41193, 41194, 41195, 41196, 0, 41198, 41199, 41200, 41201, 41202, 41203, 41204, 41205, 0, 41207, 41208, 41209, 0, 41211, 0, 41213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +673: 1, 1, 1, 2, 2, 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 29351, 44877, 39317, 48579, 48579, 33403, 29746, 48579, 31663, 43856, 32102, 48579, 16231, 48579, 16010, 39402, 48579, 35358, 48579, 48579, 48579, 7839, 30651, 18073, 48579, 48579, 48579, 38930, 48579, 38447, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 30477, 18384, 16810, 48579, 12853, 33660, 26626, 27723, 19918, 38993, 39406, 19673, 10170, 22878, 10959, 48579, 48579, 48579, 48579, 48579, 48579, 46040, 30002, 35360, 26303, 24253, 27241, 10960, 36510, 48579, 25389, 48579, 10911, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 10961, 48579, 48579, 10912, 48579, 48579, 48579, 28735, 48579, 43877, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 27440, 48579, 34554, 48579, 39177, 48579, 14284, 48068, 48579, 48579, 21017, 19501, 17992, 34093, 24619, 48579, 30480, 48579, 47299, 34966, 32116, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 40187, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 34967, 48579, 48579, 48579, 40809, 48579, 48579, 48579, 48579, 15529, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 29007, 41542, 25552, 20076, 16811, 23222, 10915, 9560, 11194, 48579, 17019, 48579, 12418, 48579, 48579, 48579, 20459, 48579, 12521, 18075, 48579, 22879, 48579, 11293, 30996, 7373, 48579, 29905, 48579, 48579, 48579, 48579, 48579, 48579, 41407, 21334, 27244, 48579, 8966, 23649, 16469, 11100, 48579, 48579, 43863, 16533, 44390, 47387, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 9464, 48579, 25554, 9335, 26500, 21021, 46388, 27627, 16735, 48579, 20047, 48579, 23488, 48579, 48579, 48579, 48579, 48579, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 41219, 41220, 0, 0, 41223, 0, 0, 0, 41227, 0, 41229, 0, 0, 41232, 0, 41234, 41235, 41236, 0, 0, 0, 41240, 41241, 41242, 0, 41244, 0, 41246, 41247, 41248, 41249, 41250, 41251, 41252, 41253, 41254, 41255, 41256, 41257, 41258, 41259, 41260, 0, 0, 0, 41264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41276, 41277, 41278, 41279, 41280, 41281, 0, 0, 0, 0, 0, 0, 0, 0, 41290, 0, 41292, 0, 41294, 41295, 41296, 41297, 41298, 41299, 41300, 41301, 0, 41303, 41304, 0, 41306, 41307, 41308, 0, 41310, 0, 41312, 41313, 41314, 41315, 41316, 41317, 41318, 41319, 41320, 41321, 41322, 41323, 41324, 41325, 0, 41327, 0, 41329, 0, 41331, 0, 0, 41334, 41335, 0, 0, 0, 0, 0, 41341, 0, 41343, 0, 0, 0, 41347, 41348, 41349, 41350, 41351, 41352, 41353, 41354, 0, 41356, 41357, 41358, 41359, 41360, 41361, 41362, 41363, 41364, 41365, 41366, 0, 41368, 41369, 41370, 0, 41372, 41373, 41374, 41375, 0, 41377, 41378, 41379, 41380, 41381, 41382, 41383, 41384, 41385, 41386, 41387, 41388, 41389, 41390, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41400, 0, 41402, 0, 41404, 41405, 41406, 0, 41408, 0, 0, 41411, 0, 41413, 0, 0, 0, 41417, 0, 41419, 41420, 41421, 41422, 41423, 41424, 0, 0, 0, 41428, 0, 0, 0, 0, 41433, 41434, 0, 0, 0, 0, 41439, 41440, 41441, 41442, 41443, 41444, 41445, 41446, 41447, 41448, 41449, 41450, 41451, 41452, 0, 41454, 0, 0, 0, 0, 0, 0, 0, 41462, 0, 41464, 0, 41466, 41467, 41468, 41469, 41470, 41471, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +674: 1, 2, 2, 1, 2, 2, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 1, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 34480, 48579, 48579, 17020, 48579, 48579, 27245, 31065, 23575, 48579, 17705, 37151, 48579, 48579, 48579, 48579, 48579, 18909, 48579, 48579, 48579, 48579, 48579, 48579, 17862, 48579, 48579, 48579, 26172, 48579, 48579, 20048, 48579, 48579, 48579, 48579, 48579, 16812, 48579, 48579, 42633, 18560, 48579, 48579, 48579, 48579, 48579, 48579, 26410, 48579, 48579, 48579, 22265, 48579, 48579, 48579, 16698, 48579, 48579, 32267, 28737, 48579, 48579, 26675, 48579, 48579, 45171, 38187, 10840, 10846, 46670, 48579, 11633, 47743, 18425, 20916, 32052, 37012, 27663, 26985, 44320, 7550, 7829, 48579, 29732, 46386, 25921, 10876, 36956, 48579, 20844, 48579, 45876, 48579, 48579, 48579, 48579, 48579, 21133, 25938, 48579, 48579, 20441, 36029, 10130, 48579, 11717, 48579, 48579, 37522, 11856, 22500, 48579, 8757, 48579, 48579, 48579, 48579, 48579, 48579, 38177, 48579, 48579, 30990, 48579, 48579, 48579, 15730, 48579, 48579, 19114, 48579, 15700, 48579, 19929, 15732, 48579, 18521, 48579, 48579, 48579, 35032, 48579, 48579, 15135, 48579, 48579, 48579, 48579, 29802, 48579, 9400, 48579, 48579, 48579, 48579, 8234, 48579, 48579, 48579, 48579, 48579, 34268, 48579, 48579, 18606, 48579, 16797, 48579, 48579, 29226, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 29464, 48579, 43769, 36820, 40045, 48579, 47611, 48579, 44361, 48579, 48579, 48579, 48579, 48579, 20433, 48579, 48579, 32143, 37655, 23330, 47768, 48579, 44690, 17089, 30157, 48436, 48350, 48579, 47442, 29100, 47443, 48579, 48579, 48579, 48579, 29977, 27310, 48579, 48579, 48579, 48579, 8630, 35361, 48579, 48579, 48579, 30364, 27322, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 42552, 44476, 48579, 44719, 48579, 47529, 48579, 48579, 25402, 48579, 48579, 48579, 48579, 48579, 48579, 29048, 48579, 48579, 48579, 25328, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 41473, 41474, 0, 41476, 41477, 0, 0, 0, 41481, 0, 0, 41484, 41485, 41486, 41487, 41488, 0, 41490, 41491, 41492, 41493, 41494, 41495, 0, 41497, 41498, 41499, 0, 41501, 41502, 0, 41504, 41505, 41506, 41507, 41508, 0, 41510, 41511, 0, 0, 41514, 41515, 41516, 41517, 41518, 41519, 0, 41521, 41522, 41523, 0, 41525, 41526, 41527, 0, 41529, 41530, 0, 0, 41533, 41534, 0, 41536, 41537, 0, 0, 0, 0, 0, 41543, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41555, 0, 0, 0, 0, 0, 41561, 0, 41563, 0, 41565, 41566, 41567, 41568, 41569, 0, 0, 41572, 41573, 0, 0, 0, 41577, 0, 41579, 41580, 0, 0, 0, 41584, 0, 41586, 41587, 41588, 41589, 41590, 41591, 0, 41593, 41594, 0, 41596, 41597, 41598, 0, 41600, 41601, 0, 41603, 0, 41605, 0, 0, 41608, 0, 41610, 41611, 41612, 0, 41614, 41615, 0, 41617, 41618, 41619, 41620, 0, 41622, 0, 41624, 41625, 41626, 41627, 0, 41629, 41630, 41631, 41632, 41633, 0, 41635, 41636, 0, 41638, 0, 41640, 41641, 0, 41643, 41644, 41645, 41646, 41647, 41648, 41649, 41650, 0, 41652, 0, 0, 0, 41656, 0, 41658, 0, 41660, 41661, 41662, 41663, 41664, 0, 41666, 41667, 0, 0, 0, 0, 41672, 0, 0, 0, 0, 0, 41678, 0, 0, 0, 41682, 41683, 41684, 41685, 0, 0, 41688, 41689, 41690, 41691, 0, 0, 41694, 41695, 41696, 0, 0, 41699, 41700, 41701, 41702, 41703, 41704, 41705, 41706, 0, 0, 41709, 0, 41711, 0, 41713, 41714, 0, 41716, 41717, 41718, 41719, 41720, 41721, 0, 41723, 41724, 41725, 0, 41727, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +675: 1, 2, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 2, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 2, 2, 1, 24975, 48579, 37322, 48579, 8384, 28178, 32067, 48579, 29803, 13522, 28819, 37271, 48579, 19434, 48579, 25346, 48579, 48579, 48579, 22953, 35328, 48579, 48579, 48579, 36974, 48579, 48579, 48579, 48579, 48579, 28192, 45544, 48579, 48579, 36931, 15994, 13792, 48579, 48579, 20991, 48579, 36551, 36690, 10754, 32011, 48579, 33400, 48579, 9243, 24221, 48579, 26485, 48579, 24952, 34688, 12735, 48579, 10692, 27611, 48579, 36234, 19164, 48579, 28748, 48579, 22358, 18376, 48579, 26098, 42537, 48579, 27937, 10289, 48579, 48579, 48579, 35663, 48579, 22648, 15525, 48579, 10274, 48579, 48579, 35651, 48579, 48579, 31830, 48579, 48579, 48579, 35359, 48579, 45213, 48579, 35654, 22924, 9262, 48579, 25814, 27951, 48579, 24776, 41162, 35655, 26671, 8631, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 36487, 48579, 24745, 35975, 33635, 48579, 32121, 13658, 18624, 33260, 48579, 48579, 48579, 23148, 48579, 48579, 48579, 28875, 48579, 28876, 26411, 48528, 43025, 39622, 10265, 36714, 48579, 48579, 48579, 48579, 48579, 48579, 34866, 48579, 27353, 48579, 48579, 27281, 48579, 48579, 48579, 37647, 48579, 8235, 31190, 48579, 27831, 48579, 48579, 25532, 38396, 48579, 27026, 48579, 36960, 48579, 48579, 28041, 48579, 27003, 48579, 48579, 48579, 48579, 48573, 48579, 37269, 22557, 37272, 48579, 48579, 48579, 10355, 46614, 48579, 10951, 36508, 48579, 47090, 9958, 9963, 48579, 48579, 31634, 37245, 18962, 32368, 45887, 20199, 9970, 48579, 18791, 48579, 18904, 10759, 48579, 18792, 17812, 45156, 48579, 37121, 8663, 48579, 18798, 45157, 48579, 48579, 48579, 48579, 27952, 16182, 48579, 16183, 48579, 16940, 48579, 9993, 48579, 32374, 32986, 23149, 30014, 48579, 48579, 32869, 48579, 48579, 48579, 28975, 18366, 21173, 28614, 8069, 48579, 28552, 48579, 8591, 18242, 24207, 48579, 48579, 47436, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 41729, 0, 41731, 0, 0, 0, 41735, 0, 0, 0, 0, 41740, 0, 41742, 0, 41744, 41745, 41746, 0, 0, 41749, 41750, 41751, 0, 41753, 41754, 41755, 41756, 41757, 0, 0, 41760, 41761, 0, 0, 0, 41765, 41766, 0, 41768, 0, 0, 0, 0, 41773, 0, 41775, 0, 0, 41778, 0, 41780, 0, 0, 0, 41784, 0, 0, 41787, 0, 0, 41790, 0, 41792, 0, 0, 41795, 0, 0, 41798, 0, 0, 41801, 41802, 41803, 0, 41805, 0, 0, 41808, 0, 41810, 41811, 0, 41813, 41814, 0, 41816, 41817, 41818, 0, 41820, 0, 41822, 0, 0, 0, 41826, 0, 0, 41829, 0, 0, 0, 0, 0, 41835, 41836, 41837, 41838, 41839, 41840, 41841, 0, 41843, 0, 0, 0, 41847, 0, 0, 0, 0, 41852, 41853, 41854, 0, 41856, 41857, 41858, 0, 41860, 0, 0, 0, 0, 0, 0, 0, 41868, 41869, 41870, 41871, 41872, 41873, 0, 41875, 0, 41877, 41878, 0, 41880, 41881, 41882, 0, 41884, 0, 0, 41887, 0, 41889, 41890, 0, 0, 41893, 0, 41895, 0, 41897, 41898, 0, 41900, 0, 41902, 41903, 41904, 41905, 0, 41907, 0, 0, 0, 41911, 41912, 41913, 0, 0, 41916, 0, 0, 41919, 0, 0, 0, 41923, 41924, 0, 0, 0, 0, 0, 0, 0, 41932, 0, 41934, 0, 0, 41937, 0, 0, 0, 41941, 0, 0, 41944, 0, 0, 41947, 41948, 41949, 41950, 0, 0, 41953, 0, 41955, 0, 41957, 0, 41959, 0, 0, 0, 0, 41964, 41965, 0, 41967, 41968, 41969, 0, 0, 0, 0, 0, 41975, 0, 41977, 0, 0, 0, 41981, 41982, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +676: 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 1, 2, 2, 1, 1, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 1, 2, 2, 1, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 2, 1, 28121, 48579, 32283, 15037, 8392, 24235, 8908, 28645, 13438, 48579, 48579, 24742, 28623, 24746, 26525, 46277, 48579, 48579, 48579, 19998, 42815, 48579, 25726, 48579, 43127, 48579, 48579, 48579, 48579, 12315, 13714, 48579, 48579, 48579, 48579, 42865, 48579, 35876, 17402, 34680, 48579, 48579, 48579, 48579, 37594, 48579, 35329, 42316, 14399, 48579, 46489, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 13559, 20185, 48579, 48579, 48579, 29393, 18900, 48579, 9845, 33524, 25868, 48579, 44682, 48579, 41949, 37656, 31390, 26355, 44691, 48579, 48579, 37093, 38125, 48579, 37290, 48579, 48579, 19169, 8207, 31466, 48579, 21139, 23536, 48579, 46865, 44375, 48579, 11718, 48579, 48579, 48579, 48579, 48579, 48579, 42543, 13281, 9847, 13091, 26667, 48579, 12756, 37838, 28678, 24073, 8997, 38448, 48579, 46436, 48579, 48579, 32798, 37538, 27438, 21088, 48579, 18039, 48579, 45838, 32873, 48067, 29352, 48579, 27953, 48579, 27441, 48579, 30478, 27954, 48579, 48579, 46709, 7840, 48579, 27622, 48579, 26106, 48579, 30481, 10963, 48579, 24259, 43300, 48579, 48579, 12761, 12088, 48579, 13854, 26574, 41846, 48579, 45631, 41847, 13855, 30320, 48579, 48579, 45050, 48579, 48579, 48579, 19331, 26627, 20341, 29008, 31557, 48579, 31558, 48579, 48579, 42554, 48579, 35852, 48579, 48579, 48579, 48579, 20223, 48579, 48579, 9814, 48579, 12494, 36308, 24644, 48579, 48579, 28698, 9999, 45403, 48579, 48579, 48579, 48579, 44736, 48579, 48467, 8665, 48579, 48579, 11216, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 32425, 48579, 32431, 42006, 9280, 48579, 48579, 48579, 48579, 11914, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 27311, 48579, 22672, 48579, 11920, 48579, 48579, 48579, 48579, 48579, 48579, 38996, 48579, 26526, 48579, 34168, 13014, 48579, 48579, 34169, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 41985, 0, 0, 0, 0, 0, 0, 0, 41993, 41994, 0, 0, 0, 0, 0, 42000, 42001, 42002, 0, 0, 42005, 0, 42007, 0, 42009, 42010, 42011, 42012, 0, 0, 42015, 42016, 42017, 42018, 0, 42020, 0, 0, 0, 42024, 42025, 42026, 42027, 0, 42029, 0, 0, 0, 42033, 0, 42035, 42036, 42037, 42038, 42039, 42040, 42041, 0, 0, 42044, 42045, 42046, 0, 0, 42049, 0, 0, 0, 42053, 0, 42055, 0, 0, 0, 0, 0, 42061, 42062, 0, 0, 42065, 0, 42067, 42068, 0, 0, 0, 42072, 0, 0, 42075, 0, 0, 42078, 0, 42080, 42081, 42082, 42083, 42084, 42085, 0, 0, 0, 0, 0, 42091, 0, 0, 0, 0, 0, 0, 42098, 0, 42100, 42101, 0, 0, 0, 0, 42106, 0, 42108, 0, 0, 0, 0, 42113, 0, 42115, 0, 42117, 0, 0, 42120, 42121, 0, 0, 42124, 0, 42126, 0, 42128, 0, 0, 42131, 0, 0, 42134, 42135, 0, 0, 42138, 0, 0, 0, 42142, 0, 0, 0, 0, 42147, 42148, 0, 42150, 42151, 42152, 0, 0, 0, 0, 0, 42158, 0, 42160, 42161, 0, 42163, 0, 42165, 42166, 42167, 42168, 0, 42170, 42171, 0, 42173, 0, 0, 0, 42177, 42178, 0, 0, 0, 42182, 42183, 42184, 42185, 0, 42187, 0, 0, 42190, 42191, 0, 42193, 42194, 42195, 42196, 42197, 42198, 42199, 0, 42201, 0, 0, 0, 42205, 42206, 42207, 42208, 0, 42210, 42211, 42212, 42213, 42214, 42215, 42216, 42217, 42218, 42219, 0, 42221, 0, 42223, 0, 42225, 42226, 42227, 42228, 42229, 42230, 0, 42232, 0, 42234, 0, 0, 42237, 42238, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +677: 2, 2, 1, 1, 2, 1, 1, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 1, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, 1, 2, 48579, 48579, 13331, 21447, 48579, 44855, 15658, 48579, 48579, 48579, 19115, 19454, 48579, 29640, 48579, 12718, 48579, 8310, 48579, 48579, 29395, 35789, 48579, 44786, 15819, 44787, 48579, 48579, 48579, 48579, 48579, 19997, 48579, 48579, 48579, 22814, 48579, 48579, 13478, 48579, 48579, 39506, 30826, 48579, 33187, 48579, 48579, 48579, 43567, 48579, 48579, 25701, 48579, 48579, 36271, 25706, 48579, 48579, 32617, 48579, 48579, 43563, 30154, 30315, 44866, 32761, 48579, 14626, 48579, 48579, 48579, 17404, 27292, 18251, 48059, 48579, 25368, 21450, 32763, 48579, 48579, 48579, 30158, 16722, 14374, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 11917, 22359, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 40694, 48579, 14348, 36485, 48579, 42074, 48579, 7371, 18266, 38994, 48579, 18267, 48579, 34963, 24323, 48579, 43301, 16467, 48579, 36120, 48579, 48579, 48579, 48579, 48579, 48579, 32375, 48211, 24265, 48579, 20807, 48579, 48579, 14544, 30366, 34973, 48579, 21023, 25906, 24645, 10000, 48579, 42352, 48579, 48579, 48579, 48579, 18901, 48579, 48579, 48579, 17990, 13001, 31941, 22225, 48579, 29897, 48579, 48579, 48579, 23167, 48579, 48579, 39042, 36328, 48579, 48579, 40982, 48579, 48579, 48579, 48579, 48579, 8698, 48579, 48579, 17576, 24748, 48579, 48579, 35365, 25008, 48579, 48579, 48579, 48579, 21141, 48579, 48579, 48579, 48579, 24646, 10001, 48579, 48579, 30609, 30618, 48579, 48579, 48064, 48579, 48066, 48579, 30656, 48579, 30659, 48072, 48579, 45803, 45805, 29268, 48579, 21696, 48579, 48579, 41818, 48579, 48579, 17431, 28181, 48579, 48579, 48579, 48579, 48579, 48579, 41825, 48579, 45999, 34270, 46777, 48579, 48579, 48579, 48579, 45670, 48579, 48579, 48579, 48579, 48579, 48579, 32766, 45671, 48579, 43289, 27759, 41471, 48579, 47125, 48579, 23406, 39282, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 42240, 42241, 0, 0, 42244, 0, 0, 42247, 42248, 42249, 0, 0, 42252, 0, 42254, 0, 42256, 0, 42258, 42259, 0, 0, 42262, 0, 0, 0, 42266, 42267, 42268, 42269, 42270, 0, 42272, 42273, 42274, 0, 42276, 42277, 0, 42279, 42280, 0, 0, 42283, 0, 42285, 42286, 42287, 0, 42289, 42290, 0, 42292, 42293, 0, 0, 42296, 42297, 0, 42299, 42300, 0, 0, 0, 0, 0, 42306, 0, 42308, 42309, 42310, 0, 0, 0, 0, 42315, 0, 0, 0, 42319, 42320, 42321, 0, 0, 0, 42325, 42326, 42327, 42328, 42329, 42330, 42331, 42332, 0, 0, 42335, 42336, 42337, 42338, 42339, 42340, 42341, 0, 42343, 0, 0, 42346, 0, 42348, 0, 0, 0, 42352, 0, 42354, 0, 0, 42357, 0, 0, 42360, 0, 42362, 42363, 42364, 42365, 42366, 42367, 0, 0, 0, 42371, 0, 42373, 42374, 0, 0, 0, 42378, 0, 0, 0, 0, 42383, 0, 42385, 42386, 42387, 42388, 0, 42390, 42391, 42392, 0, 0, 0, 0, 42397, 0, 42399, 42400, 42401, 0, 42403, 42404, 0, 0, 42407, 42408, 0, 42410, 42411, 42412, 42413, 42414, 0, 42416, 42417, 0, 0, 42420, 42421, 0, 0, 42424, 42425, 42426, 42427, 0, 42429, 42430, 42431, 42432, 0, 0, 42435, 42436, 0, 0, 42439, 42440, 0, 42442, 0, 42444, 0, 42446, 0, 0, 42449, 0, 0, 0, 42453, 0, 42455, 42456, 0, 42458, 42459, 0, 0, 42462, 42463, 42464, 42465, 42466, 42467, 0, 42469, 0, 0, 0, 42473, 42474, 42475, 42476, 0, 42478, 42479, 42480, 42481, 42482, 42483, 0, 0, 42486, 0, 0, 0, 42490, 0, 42492, 0, 0, 42495, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +678: 1, 1, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 2, 2, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 29947, 35801, 48579, 42880, 48579, 48579, 40683, 45801, 48579, 14007, 14275, 48579, 48579, 48579, 43453, 48579, 14280, 35374, 7416, 12113, 48579, 37399, 48579, 37400, 39283, 48579, 48579, 11589, 48579, 35375, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 19923, 31104, 48355, 45802, 45160, 46004, 48579, 42809, 48579, 48579, 48579, 48579, 48579, 41472, 44946, 48579, 48579, 48579, 48579, 48579, 17702, 30887, 48579, 48579, 48579, 9772, 48579, 48579, 48579, 48579, 29207, 48579, 48579, 48579, 48579, 18268, 48579, 41971, 48579, 31471, 9272, 31205, 21089, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 28625, 48579, 48579, 10079, 31584, 48579, 45433, 48579, 48579, 43516, 40368, 48579, 30660, 20462, 48579, 48579, 40810, 48579, 45632, 48579, 14291, 48579, 48579, 48579, 48305, 42884, 48579, 48579, 48579, 48579, 46784, 24647, 48579, 48579, 24648, 43456, 48579, 48579, 24751, 48579, 10002, 48579, 22266, 48579, 45269, 48579, 48579, 48579, 48579, 48579, 48579, 45806, 29936, 48579, 25664, 48579, 25665, 48579, 48579, 48579, 48579, 25672, 48579, 48579, 48579, 48579, 25687, 48579, 48579, 25693, 48579, 26803, 48579, 48579, 46280, 48579, 48579, 48579, 48579, 48579, 48579, 15726, 16264, 32432, 11918, 20645, 48579, 48579, 48579, 48579, 48579, 48579, 9282, 48579, 47622, 31833, 42007, 48579, 48579, 48579, 48579, 40057, 48579, 18937, 32026, 48579, 48579, 48579, 48579, 25434, 48579, 43452, 48579, 48579, 48579, 29907, 48579, 48579, 48579, 24750, 48579, 48579, 48579, 48579, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 42498, 0, 42500, 42501, 0, 0, 42504, 0, 0, 42507, 42508, 42509, 0, 42511, 0, 0, 0, 0, 42516, 0, 42518, 0, 0, 42521, 42522, 0, 42524, 0, 42526, 42527, 42528, 42529, 42530, 42531, 42532, 0, 0, 0, 0, 0, 0, 42539, 0, 42541, 42542, 42543, 42544, 42545, 0, 0, 42548, 42549, 42550, 42551, 42552, 0, 0, 42555, 42556, 42557, 0, 42559, 42560, 42561, 42562, 0, 42564, 42565, 42566, 42567, 0, 42569, 0, 42571, 0, 0, 0, 0, 42576, 42577, 42578, 42579, 42580, 42581, 42582, 42583, 42584, 42585, 42586, 0, 42588, 42589, 0, 0, 42592, 0, 42594, 42595, 0, 0, 42598, 0, 0, 42601, 42602, 0, 42604, 0, 42606, 0, 42608, 42609, 42610, 0, 0, 42613, 42614, 42615, 42616, 0, 0, 42619, 42620, 0, 0, 42623, 42624, 0, 42626, 0, 42628, 0, 42630, 0, 42632, 42633, 42634, 42635, 42636, 42637, 0, 0, 42640, 0, 42642, 0, 42644, 42645, 42646, 42647, 0, 42649, 42650, 42651, 42652, 0, 42654, 42655, 0, 42657, 0, 42659, 42660, 0, 42662, 42663, 42664, 42665, 42666, 42667, 0, 0, 0, 0, 0, 42673, 42674, 42675, 42676, 42677, 42678, 0, 42680, 0, 0, 0, 42684, 42685, 42686, 42687, 0, 42689, 0, 0, 42692, 42693, 42694, 42695, 0, 42697, 0, 42699, 42700, 42701, 0, 42703, 42704, 42705, 0, 42707, 42708, 42709, 42710, 42711, 42712, 42713, 42714, 42715, 42716, 42717, 42718, 42719, 42720, 42721, 42722, 42723, 42724, 42725, 42726, 42727, 42728, 42729, 42730, 42731, 42732, 42733, 42734, 42735, 42736, 42737, 42738, 42739, 42740, 42741, 42742, 42743, 42744, 42745, 42746, 42747, 42748, 42749, 42750, 42751, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +679: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 13941, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 42752, 42753, 42754, 42755, 42756, 42757, 42758, 42759, 42760, 42761, 42762, 42763, 42764, 42765, 42766, 42767, 42768, 42769, 42770, 42771, 42772, 42773, 42774, 42775, 42776, 42777, 42778, 42779, 42780, 42781, 42782, 42783, 42784, 42785, 42786, 42787, 42788, 42789, 42790, 42791, 42792, 42793, 42794, 42795, 42796, 42797, 42798, 42799, 42800, 42801, 42802, 42803, 42804, 42805, 42806, 42807, 42808, 42809, 42810, 42811, 42812, 42813, 42814, 42815, 42816, 42817, 42818, 42819, 42820, 42821, 42822, 42823, 42824, 42825, 42826, 42827, 42828, 42829, 42830, 42831, 42832, 42833, 42834, 42835, 42836, 42837, 42838, 42839, 42840, 42841, 42842, 42843, 42844, 42845, 42846, 42847, 42848, 42849, 42850, 42851, 42852, 42853, 42854, 42855, 42856, 42857, 42858, 42859, 42860, 42861, 42862, 42863, 42864, 42865, 42866, 42867, 42868, 42869, 42870, 42871, 42872, 42873, 42874, 42875, 42876, 42877, 42878, 42879, 42880, 42881, 42882, 42883, 42884, 42885, 42886, 42887, 42888, 42889, 42890, 42891, 42892, 42893, 42894, 42895, 42896, 42897, 42898, 42899, 42900, 42901, 42902, 42903, 42904, 42905, 42906, 42907, 42908, 0, 42910, 42911, 42912, 42913, 42914, 42915, 42916, 42917, 42918, 42919, 42920, 42921, 42922, 42923, 42924, 42925, 42926, 42927, 42928, 42929, 42930, 42931, 42932, 42933, 42934, 42935, 42936, 42937, 42938, 42939, 42940, 42941, 42942, 42943, 42944, 42945, 42946, 42947, 42948, 42949, 42950, 42951, 42952, 42953, 42954, 42955, 42956, 42957, 42958, 42959, 42960, 42961, 42962, 42963, 42964, 42965, 42966, 42967, 42968, 42969, 42970, 42971, 42972, 42973, 42974, 42975, 42976, 42977, 42978, 42979, 42980, 42981, 42982, 42983, 42984, 42985, 42986, 42987, 42988, 42989, 42990, 42991, 42992, 42993, 42994, 42995, 42996, 42997, 42998, 42999, 43000, 43001, 43002, 43003, 43004, 43005, 43006, 43007, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +680: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 7759, 48579, 48579, 48579, 48579, 48579, 48579, 45867, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 26229, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 43008, 43009, 43010, 43011, 43012, 43013, 43014, 43015, 43016, 43017, 43018, 43019, 43020, 43021, 43022, 43023, 43024, 43025, 43026, 43027, 43028, 43029, 43030, 43031, 43032, 43033, 43034, 43035, 43036, 43037, 43038, 43039, 43040, 43041, 43042, 43043, 43044, 43045, 43046, 43047, 43048, 43049, 43050, 43051, 43052, 43053, 43054, 43055, 43056, 43057, 43058, 43059, 43060, 43061, 43062, 43063, 43064, 43065, 43066, 43067, 43068, 43069, 43070, 43071, 43072, 43073, 43074, 43075, 43076, 43077, 43078, 43079, 0, 43081, 43082, 43083, 43084, 43085, 43086, 0, 43088, 43089, 43090, 43091, 43092, 43093, 43094, 43095, 43096, 43097, 43098, 43099, 43100, 43101, 43102, 43103, 43104, 43105, 43106, 43107, 43108, 43109, 43110, 43111, 43112, 43113, 43114, 43115, 43116, 43117, 43118, 43119, 43120, 43121, 43122, 43123, 43124, 43125, 43126, 43127, 43128, 43129, 43130, 43131, 43132, 43133, 43134, 43135, 43136, 43137, 43138, 43139, 43140, 43141, 43142, 43143, 43144, 43145, 43146, 43147, 43148, 43149, 43150, 43151, 43152, 43153, 43154, 43155, 43156, 43157, 43158, 43159, 43160, 43161, 43162, 43163, 43164, 43165, 43166, 43167, 43168, 43169, 43170, 43171, 43172, 43173, 43174, 43175, 43176, 43177, 43178, 43179, 43180, 43181, 0, 43183, 43184, 43185, 43186, 43187, 43188, 43189, 43190, 43191, 43192, 43193, 43194, 43195, 43196, 43197, 43198, 43199, 43200, 43201, 43202, 43203, 43204, 43205, 43206, 43207, 43208, 43209, 43210, 43211, 43212, 43213, 43214, 43215, 43216, 43217, 43218, 43219, 43220, 43221, 43222, 43223, 43224, 43225, 43226, 43227, 43228, 43229, 43230, 43231, 43232, 43233, 43234, 43235, 43236, 43237, 43238, 43239, 43240, 43241, 43242, 43243, 43244, 43245, 43246, 43247, 43248, 43249, 43250, 43251, 43252, 43253, 43254, 43255, 43256, 43257, 43258, 43259, 43260, 43261, 43262, 43263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +682: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 35085, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 22059, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 43815, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 43520, 43521, 43522, 43523, 43524, 43525, 43526, 43527, 43528, 43529, 0, 43531, 43532, 43533, 43534, 43535, 43536, 43537, 43538, 43539, 43540, 43541, 43542, 0, 43544, 43545, 43546, 43547, 43548, 43549, 43550, 43551, 43552, 43553, 43554, 43555, 43556, 43557, 43558, 43559, 43560, 43561, 43562, 43563, 43564, 43565, 43566, 43567, 43568, 43569, 43570, 43571, 43572, 43573, 43574, 43575, 43576, 43577, 43578, 43579, 43580, 43581, 43582, 43583, 43584, 43585, 43586, 43587, 43588, 43589, 43590, 43591, 43592, 43593, 43594, 43595, 43596, 43597, 43598, 43599, 43600, 43601, 43602, 43603, 43604, 43605, 43606, 43607, 43608, 43609, 43610, 43611, 43612, 43613, 43614, 43615, 43616, 43617, 43618, 43619, 43620, 43621, 43622, 43623, 43624, 43625, 43626, 43627, 43628, 43629, 43630, 43631, 43632, 43633, 43634, 43635, 43636, 43637, 43638, 43639, 43640, 43641, 43642, 43643, 43644, 43645, 43646, 43647, 43648, 43649, 43650, 43651, 43652, 43653, 43654, 43655, 43656, 43657, 43658, 43659, 43660, 43661, 43662, 43663, 43664, 43665, 43666, 43667, 43668, 43669, 43670, 43671, 43672, 43673, 43674, 43675, 43676, 0, 43678, 43679, 43680, 43681, 43682, 43683, 43684, 43685, 43686, 43687, 43688, 43689, 43690, 43691, 43692, 43693, 43694, 43695, 43696, 43697, 43698, 43699, 43700, 43701, 43702, 43703, 43704, 43705, 43706, 43707, 43708, 43709, 43710, 43711, 43712, 43713, 43714, 43715, 43716, 43717, 43718, 43719, 43720, 43721, 43722, 43723, 43724, 43725, 43726, 43727, 43728, 43729, 43730, 43731, 43732, 43733, 43734, 43735, 43736, 43737, 43738, 43739, 43740, 43741, 43742, 43743, 43744, 43745, 43746, 43747, 43748, 43749, 43750, 43751, 43752, 43753, 43754, 43755, 43756, 43757, 43758, 43759, 43760, 43761, 43762, 43763, 43764, 43765, 43766, 43767, 43768, 43769, 43770, 43771, 43772, 43773, 43774, 43775, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +686: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 29067, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 11729, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 44544, 44545, 44546, 44547, 44548, 44549, 44550, 44551, 44552, 44553, 44554, 44555, 44556, 44557, 44558, 44559, 44560, 44561, 44562, 44563, 44564, 44565, 44566, 44567, 44568, 44569, 44570, 44571, 44572, 44573, 44574, 44575, 44576, 44577, 44578, 44579, 44580, 44581, 44582, 44583, 44584, 44585, 44586, 44587, 44588, 44589, 44590, 44591, 44592, 44593, 44594, 44595, 44596, 44597, 44598, 44599, 44600, 44601, 44602, 44603, 44604, 44605, 44606, 44607, 44608, 44609, 44610, 44611, 44612, 44613, 44614, 44615, 44616, 44617, 44618, 44619, 44620, 44621, 44622, 44623, 44624, 44625, 44626, 44627, 44628, 44629, 44630, 44631, 44632, 44633, 44634, 44635, 44636, 44637, 44638, 44639, 44640, 44641, 44642, 44643, 44644, 44645, 44646, 44647, 44648, 44649, 44650, 44651, 44652, 44653, 44654, 44655, 44656, 44657, 44658, 44659, 44660, 44661, 44662, 44663, 44664, 44665, 44666, 44667, 44668, 44669, 44670, 44671, 44672, 44673, 44674, 44675, 44676, 44677, 44678, 44679, 44680, 44681, 44682, 44683, 44684, 44685, 44686, 44687, 44688, 44689, 44690, 44691, 44692, 44693, 44694, 44695, 44696, 44697, 44698, 44699, 44700, 44701, 44702, 44703, 44704, 44705, 44706, 44707, 44708, 44709, 44710, 44711, 44712, 44713, 44714, 44715, 44716, 44717, 44718, 44719, 44720, 44721, 44722, 44723, 44724, 44725, 44726, 44727, 44728, 0, 44730, 44731, 44732, 44733, 44734, 44735, 44736, 44737, 44738, 44739, 44740, 44741, 44742, 44743, 44744, 44745, 44746, 44747, 44748, 44749, 44750, 44751, 0, 44753, 44754, 44755, 44756, 44757, 44758, 44759, 44760, 44761, 44762, 44763, 44764, 44765, 44766, 44767, 44768, 44769, 44770, 44771, 44772, 44773, 44774, 44775, 44776, 44777, 44778, 44779, 44780, 44781, 44782, 44783, 44784, 44785, 44786, 44787, 44788, 44789, 44790, 44791, 44792, 44793, 44794, 44795, 44796, 44797, 44798, 44799, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +687: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 39599, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 44800, 44801, 44802, 44803, 44804, 44805, 44806, 44807, 44808, 44809, 44810, 44811, 44812, 44813, 44814, 44815, 44816, 44817, 44818, 44819, 44820, 44821, 44822, 44823, 44824, 44825, 44826, 44827, 44828, 44829, 44830, 44831, 44832, 44833, 44834, 44835, 44836, 44837, 44838, 44839, 44840, 44841, 44842, 44843, 44844, 44845, 44846, 44847, 44848, 44849, 44850, 44851, 44852, 44853, 44854, 44855, 44856, 44857, 44858, 44859, 44860, 44861, 44862, 44863, 44864, 44865, 44866, 44867, 44868, 44869, 44870, 44871, 44872, 44873, 44874, 44875, 44876, 44877, 44878, 44879, 44880, 44881, 44882, 44883, 44884, 44885, 44886, 44887, 44888, 44889, 44890, 44891, 44892, 44893, 44894, 44895, 44896, 44897, 44898, 44899, 44900, 44901, 44902, 44903, 44904, 44905, 44906, 44907, 44908, 44909, 44910, 44911, 44912, 44913, 44914, 44915, 44916, 44917, 44918, 44919, 44920, 44921, 44922, 44923, 44924, 44925, 44926, 44927, 44928, 44929, 44930, 44931, 44932, 44933, 44934, 44935, 44936, 44937, 44938, 44939, 44940, 44941, 44942, 44943, 44944, 44945, 44946, 44947, 44948, 44949, 44950, 44951, 44952, 44953, 44954, 44955, 44956, 44957, 44958, 44959, 44960, 44961, 0, 44963, 44964, 44965, 44966, 44967, 44968, 44969, 44970, 44971, 44972, 44973, 44974, 44975, 44976, 44977, 44978, 44979, 44980, 44981, 44982, 44983, 44984, 44985, 44986, 44987, 44988, 44989, 44990, 44991, 44992, 44993, 44994, 44995, 44996, 44997, 44998, 44999, 45000, 45001, 45002, 45003, 45004, 45005, 45006, 45007, 45008, 45009, 45010, 45011, 45012, 45013, 45014, 45015, 45016, 45017, 45018, 45019, 45020, 45021, 45022, 45023, 45024, 45025, 45026, 45027, 45028, 45029, 45030, 45031, 45032, 45033, 45034, 45035, 45036, 45037, 45038, 45039, 45040, 45041, 45042, 45043, 45044, 45045, 45046, 45047, 45048, 45049, 45050, 45051, 45052, 45053, 45054, 45055, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +688: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 24396, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 14770, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 35335, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 22851, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 45056, 45057, 45058, 45059, 45060, 45061, 45062, 45063, 45064, 45065, 45066, 45067, 45068, 45069, 45070, 45071, 45072, 45073, 45074, 45075, 45076, 45077, 45078, 45079, 45080, 45081, 45082, 45083, 45084, 45085, 45086, 45087, 45088, 45089, 45090, 45091, 45092, 45093, 45094, 45095, 45096, 45097, 45098, 45099, 45100, 45101, 45102, 45103, 45104, 45105, 45106, 45107, 45108, 45109, 45110, 45111, 45112, 45113, 45114, 45115, 45116, 45117, 45118, 45119, 45120, 45121, 45122, 45123, 45124, 45125, 45126, 45127, 45128, 45129, 45130, 45131, 45132, 45133, 45134, 45135, 45136, 45137, 45138, 45139, 45140, 45141, 45142, 45143, 45144, 45145, 45146, 45147, 45148, 45149, 45150, 45151, 45152, 0, 45154, 45155, 45156, 45157, 45158, 45159, 45160, 45161, 45162, 45163, 45164, 45165, 45166, 45167, 45168, 45169, 45170, 45171, 45172, 45173, 45174, 45175, 45176, 45177, 45178, 45179, 45180, 45181, 45182, 45183, 45184, 45185, 45186, 45187, 45188, 45189, 45190, 45191, 0, 45193, 45194, 45195, 45196, 45197, 45198, 45199, 45200, 45201, 45202, 45203, 45204, 45205, 45206, 45207, 45208, 0, 45210, 45211, 45212, 45213, 45214, 45215, 45216, 45217, 45218, 45219, 45220, 45221, 45222, 45223, 45224, 45225, 45226, 45227, 45228, 45229, 45230, 45231, 45232, 45233, 45234, 45235, 45236, 45237, 45238, 45239, 45240, 45241, 45242, 45243, 45244, 45245, 45246, 45247, 45248, 45249, 45250, 45251, 45252, 45253, 45254, 45255, 45256, 45257, 45258, 45259, 45260, 45261, 45262, 45263, 45264, 45265, 45266, 45267, 45268, 45269, 45270, 45271, 45272, 45273, 45274, 45275, 0, 45277, 45278, 45279, 45280, 45281, 45282, 45283, 45284, 45285, 45286, 45287, 45288, 45289, 45290, 45291, 45292, 45293, 45294, 45295, 45296, 45297, 45298, 45299, 45300, 45301, 45302, 45303, 45304, 45305, 45306, 45307, 45308, 45309, 45310, 45311, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +689: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 10654, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 41274, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 45312, 45313, 45314, 45315, 45316, 45317, 45318, 45319, 45320, 45321, 45322, 45323, 45324, 45325, 45326, 45327, 45328, 45329, 45330, 45331, 45332, 45333, 45334, 45335, 45336, 45337, 45338, 45339, 45340, 45341, 45342, 45343, 45344, 45345, 45346, 45347, 45348, 45349, 45350, 45351, 0, 45353, 45354, 45355, 45356, 45357, 45358, 45359, 45360, 45361, 45362, 45363, 45364, 45365, 45366, 45367, 0, 45369, 45370, 45371, 45372, 45373, 45374, 45375, 45376, 45377, 45378, 45379, 45380, 45381, 45382, 45383, 45384, 45385, 45386, 45387, 45388, 45389, 45390, 45391, 45392, 45393, 45394, 45395, 45396, 45397, 45398, 45399, 45400, 45401, 45402, 45403, 45404, 45405, 45406, 45407, 45408, 45409, 45410, 45411, 45412, 45413, 45414, 45415, 45416, 45417, 45418, 45419, 45420, 45421, 45422, 45423, 45424, 45425, 45426, 45427, 45428, 45429, 45430, 45431, 45432, 45433, 45434, 45435, 45436, 45437, 45438, 45439, 45440, 45441, 45442, 45443, 45444, 45445, 45446, 45447, 45448, 45449, 45450, 45451, 45452, 45453, 45454, 45455, 45456, 45457, 45458, 45459, 45460, 45461, 45462, 45463, 45464, 45465, 45466, 45467, 45468, 45469, 45470, 45471, 45472, 45473, 45474, 45475, 45476, 45477, 45478, 45479, 45480, 45481, 45482, 45483, 45484, 45485, 45486, 45487, 45488, 45489, 45490, 45491, 45492, 45493, 45494, 45495, 45496, 45497, 45498, 45499, 45500, 45501, 45502, 45503, 45504, 45505, 45506, 45507, 45508, 45509, 45510, 45511, 45512, 45513, 45514, 45515, 45516, 45517, 45518, 45519, 45520, 45521, 45522, 45523, 45524, 45525, 45526, 45527, 45528, 45529, 45530, 45531, 45532, 45533, 45534, 45535, 45536, 45537, 45538, 45539, 45540, 45541, 45542, 45543, 45544, 45545, 45546, 45547, 45548, 45549, 45550, 45551, 45552, 45553, 45554, 45555, 45556, 45557, 45558, 45559, 45560, 45561, 45562, 45563, 45564, 45565, 45566, 45567, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +690: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 30872, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 16210, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 45568, 45569, 45570, 45571, 45572, 45573, 45574, 45575, 45576, 45577, 45578, 45579, 45580, 45581, 45582, 45583, 45584, 45585, 45586, 45587, 45588, 45589, 45590, 45591, 45592, 45593, 45594, 45595, 45596, 45597, 45598, 45599, 45600, 45601, 45602, 45603, 45604, 45605, 45606, 45607, 45608, 45609, 45610, 45611, 45612, 45613, 45614, 45615, 0, 45617, 45618, 45619, 45620, 45621, 45622, 45623, 45624, 45625, 45626, 45627, 45628, 45629, 45630, 45631, 45632, 45633, 45634, 45635, 45636, 45637, 45638, 45639, 45640, 45641, 45642, 45643, 45644, 45645, 45646, 45647, 45648, 45649, 45650, 45651, 45652, 45653, 45654, 45655, 45656, 45657, 45658, 45659, 45660, 45661, 45662, 45663, 45664, 45665, 45666, 45667, 45668, 45669, 45670, 45671, 45672, 45673, 45674, 45675, 45676, 45677, 45678, 45679, 45680, 45681, 45682, 45683, 45684, 45685, 45686, 45687, 45688, 45689, 45690, 45691, 45692, 45693, 45694, 45695, 45696, 45697, 45698, 45699, 45700, 45701, 45702, 45703, 45704, 45705, 45706, 45707, 45708, 45709, 45710, 45711, 45712, 45713, 45714, 45715, 45716, 45717, 45718, 45719, 45720, 45721, 45722, 45723, 45724, 45725, 45726, 45727, 45728, 45729, 45730, 45731, 45732, 45733, 45734, 45735, 45736, 45737, 45738, 45739, 45740, 45741, 45742, 45743, 45744, 45745, 45746, 45747, 45748, 45749, 45750, 45751, 45752, 45753, 45754, 45755, 45756, 45757, 45758, 45759, 45760, 45761, 45762, 45763, 45764, 45765, 45766, 45767, 45768, 45769, 45770, 45771, 45772, 45773, 45774, 45775, 0, 45777, 45778, 45779, 45780, 45781, 45782, 45783, 45784, 45785, 45786, 45787, 45788, 45789, 45790, 45791, 45792, 45793, 45794, 45795, 45796, 45797, 45798, 45799, 45800, 45801, 45802, 45803, 45804, 45805, 45806, 45807, 45808, 45809, 45810, 45811, 45812, 45813, 45814, 45815, 45816, 45817, 45818, 45819, 45820, 45821, 45822, 45823, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +691: 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 19406, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 26358, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 42900, 48579, 48579, 48579, 48579, 48579, 42652, 48579, 48579, 28331, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 39004, 48579, 39990, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 22061, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 45825, 45826, 45827, 45828, 45829, 45830, 45831, 45832, 45833, 45834, 45835, 45836, 45837, 45838, 45839, 45840, 45841, 45842, 45843, 45844, 45845, 45846, 45847, 45848, 45849, 45850, 45851, 45852, 45853, 45854, 45855, 45856, 45857, 45858, 45859, 45860, 45861, 45862, 45863, 0, 45865, 45866, 45867, 45868, 45869, 45870, 45871, 45872, 45873, 45874, 45875, 45876, 45877, 45878, 45879, 45880, 45881, 45882, 45883, 45884, 45885, 45886, 45887, 45888, 45889, 45890, 45891, 45892, 45893, 45894, 45895, 45896, 45897, 45898, 45899, 45900, 45901, 45902, 45903, 45904, 45905, 45906, 45907, 45908, 45909, 45910, 45911, 45912, 0, 45914, 45915, 45916, 45917, 45918, 0, 45920, 45921, 0, 45923, 45924, 45925, 45926, 45927, 45928, 45929, 45930, 45931, 45932, 45933, 45934, 45935, 0, 45937, 0, 45939, 45940, 45941, 45942, 45943, 45944, 45945, 45946, 45947, 45948, 45949, 45950, 45951, 45952, 45953, 45954, 45955, 45956, 45957, 45958, 45959, 45960, 45961, 45962, 45963, 45964, 45965, 45966, 45967, 45968, 45969, 45970, 45971, 45972, 45973, 45974, 45975, 45976, 45977, 45978, 45979, 45980, 45981, 45982, 45983, 45984, 45985, 45986, 45987, 45988, 45989, 45990, 45991, 45992, 45993, 45994, 45995, 45996, 45997, 45998, 45999, 46000, 46001, 46002, 46003, 46004, 46005, 46006, 46007, 46008, 46009, 46010, 46011, 46012, 46013, 46014, 46015, 46016, 46017, 46018, 46019, 46020, 46021, 46022, 46023, 46024, 46025, 46026, 0, 46028, 46029, 46030, 46031, 46032, 46033, 46034, 46035, 46036, 46037, 46038, 46039, 46040, 46041, 46042, 46043, 46044, 46045, 46046, 46047, 46048, 46049, 46050, 46051, 46052, 46053, 46054, 46055, 46056, 46057, 46058, 46059, 46060, 46061, 46062, 46063, 46064, 46065, 46066, 46067, 46068, 46069, 46070, 46071, 46072, 46073, 46074, 46075, 46076, 46077, 46078, 46079, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +692: 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48579, 48579, 48579, 48579, 44963, 48579, 23005, 48579, 48579, 25272, 48579, 48579, 48579, 48579, 48579, 48579, 28501, 48579, 48579, 9362, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 17264, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 15102, 48579, 11732, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 46080, 46081, 46082, 46083, 0, 46085, 0, 46087, 46088, 0, 46090, 46091, 46092, 46093, 46094, 46095, 0, 46097, 46098, 0, 46100, 46101, 46102, 46103, 46104, 46105, 46106, 46107, 46108, 46109, 46110, 46111, 46112, 46113, 46114, 46115, 46116, 46117, 46118, 46119, 46120, 46121, 46122, 46123, 46124, 46125, 46126, 46127, 46128, 46129, 46130, 46131, 46132, 46133, 46134, 46135, 46136, 46137, 46138, 46139, 46140, 46141, 46142, 46143, 46144, 46145, 46146, 46147, 46148, 46149, 46150, 46151, 46152, 46153, 46154, 46155, 46156, 46157, 46158, 46159, 46160, 46161, 46162, 46163, 46164, 46165, 46166, 46167, 46168, 46169, 46170, 46171, 46172, 46173, 46174, 46175, 46176, 46177, 46178, 46179, 46180, 46181, 46182, 46183, 46184, 46185, 46186, 46187, 46188, 46189, 46190, 46191, 46192, 46193, 46194, 46195, 46196, 46197, 46198, 46199, 46200, 46201, 46202, 46203, 46204, 46205, 46206, 46207, 46208, 46209, 46210, 46211, 46212, 46213, 46214, 46215, 46216, 46217, 46218, 46219, 46220, 46221, 46222, 46223, 46224, 46225, 46226, 46227, 46228, 46229, 46230, 46231, 46232, 46233, 46234, 46235, 46236, 46237, 46238, 46239, 46240, 46241, 46242, 46243, 46244, 46245, 46246, 46247, 46248, 46249, 46250, 46251, 46252, 46253, 46254, 46255, 46256, 46257, 46258, 46259, 46260, 46261, 0, 46263, 46264, 46265, 46266, 46267, 46268, 46269, 46270, 46271, 46272, 46273, 46274, 46275, 46276, 46277, 46278, 46279, 46280, 46281, 46282, 46283, 46284, 46285, 46286, 46287, 46288, 46289, 46290, 46291, 46292, 46293, 46294, 46295, 46296, 46297, 46298, 46299, 46300, 46301, 46302, 46303, 46304, 46305, 46306, 46307, 46308, 46309, 46310, 0, 46312, 0, 46314, 46315, 46316, 46317, 46318, 46319, 46320, 46321, 46322, 46323, 46324, 46325, 46326, 46327, 46328, 46329, 46330, 46331, 46332, 46333, 46334, 46335, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +693: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 22206, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 44924, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 46010, 48579, 48579, 48579, 48579, 48579, 9364, 35254, 48579, 48579, 48579, 48579, 48579, 48579, 18746, 48579, 48579, 48579, 48579, 48579, 45875, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 46336, 46337, 46338, 46339, 46340, 46341, 46342, 46343, 46344, 46345, 46346, 46347, 46348, 46349, 0, 46351, 46352, 46353, 46354, 46355, 46356, 46357, 46358, 46359, 46360, 46361, 46362, 46363, 46364, 46365, 46366, 46367, 46368, 46369, 46370, 46371, 46372, 46373, 46374, 46375, 46376, 46377, 46378, 46379, 46380, 46381, 46382, 46383, 46384, 46385, 46386, 46387, 46388, 46389, 46390, 46391, 46392, 46393, 46394, 46395, 46396, 46397, 46398, 46399, 46400, 46401, 46402, 46403, 46404, 46405, 46406, 46407, 46408, 46409, 46410, 46411, 46412, 46413, 46414, 46415, 46416, 46417, 46418, 46419, 46420, 46421, 46422, 46423, 46424, 46425, 46426, 46427, 46428, 46429, 46430, 46431, 46432, 46433, 46434, 46435, 46436, 46437, 46438, 46439, 46440, 46441, 46442, 46443, 46444, 46445, 46446, 46447, 46448, 46449, 46450, 46451, 46452, 46453, 46454, 46455, 46456, 46457, 46458, 46459, 46460, 46461, 46462, 46463, 46464, 46465, 46466, 46467, 46468, 46469, 46470, 46471, 46472, 46473, 46474, 46475, 46476, 46477, 46478, 46479, 46480, 46481, 46482, 46483, 46484, 46485, 46486, 46487, 46488, 46489, 46490, 46491, 46492, 46493, 46494, 46495, 46496, 46497, 46498, 46499, 46500, 46501, 46502, 46503, 46504, 46505, 46506, 46507, 46508, 46509, 46510, 46511, 46512, 46513, 46514, 46515, 46516, 46517, 46518, 46519, 0, 46521, 46522, 46523, 46524, 46525, 46526, 46527, 46528, 46529, 46530, 46531, 46532, 46533, 46534, 46535, 46536, 46537, 46538, 46539, 46540, 46541, 46542, 46543, 46544, 46545, 46546, 46547, 46548, 46549, 46550, 46551, 46552, 46553, 46554, 46555, 46556, 46557, 46558, 46559, 0, 46561, 46562, 46563, 46564, 46565, 0, 0, 46568, 46569, 46570, 46571, 46572, 46573, 0, 46575, 46576, 46577, 46578, 46579, 0, 46581, 46582, 46583, 46584, 46585, 46586, 46587, 46588, 46589, 46590, 46591, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +694: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 22090, 48579, 48579, 48579, 48579, 48579, 17316, 7266, 48579, 48579, 48579, 36350, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 40901, 17910, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 15221, 48579, 18933, 34139, 48579, 48579, 48579, 30310, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 25114, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 46654, 48579, 48579, 22107, 48579, 48579, 48579, 28892, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 10875, 48579, 36370, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 46592, 46593, 46594, 46595, 46596, 46597, 46598, 46599, 46600, 46601, 46602, 46603, 46604, 46605, 46606, 46607, 46608, 46609, 46610, 46611, 46612, 46613, 46614, 46615, 46616, 46617, 46618, 46619, 46620, 0, 46622, 46623, 46624, 46625, 46626, 0, 0, 46629, 46630, 46631, 0, 46633, 46634, 46635, 46636, 46637, 46638, 46639, 46640, 46641, 46642, 46643, 46644, 46645, 46646, 46647, 46648, 46649, 46650, 46651, 46652, 46653, 46654, 46655, 46656, 46657, 46658, 46659, 46660, 46661, 46662, 46663, 46664, 46665, 46666, 46667, 46668, 46669, 46670, 46671, 46672, 46673, 46674, 46675, 46676, 46677, 46678, 46679, 46680, 46681, 46682, 46683, 46684, 46685, 46686, 46687, 46688, 46689, 46690, 46691, 46692, 46693, 46694, 46695, 46696, 46697, 46698, 46699, 46700, 46701, 46702, 46703, 46704, 46705, 46706, 46707, 46708, 46709, 46710, 46711, 46712, 46713, 46714, 46715, 46716, 46717, 46718, 46719, 46720, 46721, 46722, 46723, 46724, 46725, 46726, 46727, 0, 0, 46730, 46731, 46732, 46733, 46734, 46735, 46736, 46737, 0, 46739, 0, 0, 46742, 46743, 46744, 0, 46746, 46747, 46748, 46749, 46750, 46751, 46752, 46753, 46754, 46755, 46756, 46757, 46758, 46759, 46760, 46761, 46762, 46763, 46764, 0, 46766, 46767, 46768, 46769, 46770, 46771, 46772, 46773, 46774, 46775, 46776, 46777, 46778, 46779, 46780, 46781, 46782, 46783, 46784, 46785, 46786, 46787, 46788, 46789, 46790, 46791, 46792, 46793, 46794, 46795, 46796, 46797, 46798, 46799, 46800, 46801, 46802, 46803, 46804, 46805, 46806, 46807, 46808, 46809, 46810, 0, 46812, 46813, 0, 46815, 46816, 46817, 0, 46819, 46820, 46821, 46822, 46823, 46824, 46825, 46826, 46827, 46828, 46829, 46830, 46831, 46832, 46833, 46834, 46835, 46836, 46837, 0, 46839, 0, 46841, 46842, 46843, 46844, 46845, 46846, 46847, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +696: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 63015, 63015, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 43314, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 47104, 47105, 47106, 47107, 47108, 47109, 47110, 47111, 47112, 47113, 47114, 47115, 47116, 47117, 47118, 47119, 47120, 47121, 47122, 47123, 47124, 47125, 47126, 47127, 47128, 47129, 47130, 47131, 47132, 47133, 47134, 47135, 47136, 47137, 47138, 47139, 47140, 47141, 47142, 47143, 47144, 47145, 47146, 47147, 47148, 47149, 47150, 47151, 47152, 47153, 47154, 47155, 47156, 47157, 47158, 47159, 47160, 47161, 47162, 47163, 47164, 47165, 47166, 47167, 47168, 47169, 47170, 47171, 47172, 47173, 47174, 47175, 47176, 47177, 47178, 47179, 47180, 47181, 47182, 47183, 47184, 0, 47186, 47187, 47188, 47189, 47190, 47191, 47192, 47193, 47194, 47195, 47196, 47197, 47198, 47199, 47200, 47201, 47202, 47203, 47204, 47205, 47206, 47207, 47208, 47209, 47210, 47211, 47212, 47213, 47214, 47215, 47216, 47217, 47218, 47219, 47220, 47221, 47222, 47223, 47224, 47225, 47226, 47227, 47228, 47229, 47230, 47231, 47232, 47233, 47234, 47235, 47236, 47237, 47238, 47239, 47240, 47241, 47242, 47243, 47244, 47245, 47246, 47247, 47248, 47249, 47250, 47251, 47252, 47253, 47254, 47255, 47256, 47257, 47258, 47259, 47260, 47261, 47262, 47263, 47264, 47265, 47266, 47267, 47268, 47269, 47270, 47271, 47272, 47273, 47274, 47275, 47276, 47277, 47278, 47279, 47280, 47281, 47282, 47283, 47284, 47285, 47286, 47287, 47288, 47289, 47290, 47291, 47292, 47293, 47294, 47295, 47296, 47297, 47298, 47299, 47300, 47301, 47302, 47303, 47304, 47305, 47306, 47307, 47308, 47309, 47310, 47311, 47312, 47313, 47314, 47315, 47316, 47317, 47318, 47319, 47320, 47321, 47322, 47323, 47324, 47325, 47326, 47327, 47328, 47329, 47330, 47331, 47332, 47333, 47334, 47335, 47336, 47337, 47338, 47339, 47340, 47341, 47342, 47343, 47344, 47345, 47346, 47347, 47348, 47349, 47350, 47351, 47352, 47353, 47354, 47355, 47356, 47357, 47358, 47359, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +708: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 37184, 48579, 48579, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 50176, 50177, 50178, 50179, 50180, 50181, 50182, 50183, 50184, 50185, 50186, 50187, 50188, 50189, 50190, 50191, 50192, 50193, 50194, 50195, 50196, 50197, 50198, 50199, 50200, 50201, 50202, 50203, 50204, 50205, 50206, 50207, 50208, 50209, 50210, 50211, 50212, 50213, 50214, 50215, 50216, 50217, 50218, 50219, 50220, 50221, 50222, 50223, 50224, 50225, 50226, 50227, 50228, 50229, 50230, 50231, 50232, 50233, 50234, 50235, 50236, 50237, 50238, 50239, 50240, 50241, 50242, 50243, 50244, 50245, 50246, 50247, 50248, 50249, 50250, 50251, 50252, 50253, 50254, 50255, 50256, 50257, 50258, 50259, 50260, 50261, 50262, 50263, 50264, 50265, 50266, 50267, 50268, 50269, 50270, 50271, 50272, 50273, 50274, 50275, 50276, 50277, 50278, 50279, 50280, 50281, 50282, 50283, 50284, 50285, 50286, 50287, 50288, 50289, 50290, 50291, 50292, 50293, 50294, 50295, 50296, 50297, 50298, 50299, 50300, 50301, 50302, 50303, 50304, 50305, 50306, 50307, 50308, 50309, 50310, 50311, 50312, 50313, 50314, 50315, 50316, 50317, 50318, 50319, 50320, 50321, 50322, 50323, 50324, 50325, 50326, 50327, 50328, 50329, 50330, 50331, 50332, 50333, 50334, 50335, 50336, 50337, 50338, 50339, 50340, 50341, 50342, 50343, 50344, 50345, 50346, 50347, 50348, 50349, 50350, 50351, 50352, 50353, 50354, 50355, 50356, 50357, 50358, 50359, 50360, 50361, 50362, 50363, 50364, 50365, 50366, 50367, 50368, 50369, 50370, 50371, 50372, 50373, 50374, 50375, 50376, 50377, 50378, 50379, 50380, 50381, 50382, 50383, 50384, 50385, 50386, 50387, 50388, 50389, 50390, 50391, 50392, 50393, 50394, 50395, 50396, 50397, 50398, 50399, 50400, 50401, 50402, 50403, 50404, 50405, 50406, 50407, 50408, 50409, 50410, 50411, 50412, 50413, 50414, 50415, 50416, 50417, 50418, 50419, 50420, 50421, 50422, 50423, 50424, 50425, 50426, 50427, 0, 50429, 50430, 50431, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +710: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 10368, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 50688, 50689, 50690, 50691, 50692, 50693, 50694, 50695, 50696, 50697, 50698, 50699, 50700, 50701, 50702, 50703, 50704, 50705, 50706, 50707, 50708, 50709, 50710, 50711, 50712, 50713, 50714, 50715, 50716, 50717, 50718, 50719, 50720, 50721, 50722, 50723, 50724, 50725, 50726, 50727, 50728, 50729, 50730, 50731, 50732, 0, 50734, 50735, 50736, 50737, 50738, 50739, 50740, 50741, 50742, 50743, 50744, 50745, 50746, 50747, 50748, 50749, 50750, 50751, 50752, 50753, 50754, 50755, 50756, 50757, 50758, 50759, 50760, 50761, 50762, 50763, 50764, 50765, 50766, 50767, 50768, 50769, 50770, 50771, 50772, 50773, 50774, 50775, 50776, 50777, 50778, 50779, 50780, 50781, 50782, 50783, 50784, 50785, 50786, 50787, 50788, 50789, 50790, 50791, 50792, 50793, 50794, 50795, 50796, 50797, 50798, 50799, 50800, 50801, 50802, 50803, 50804, 50805, 50806, 50807, 50808, 50809, 50810, 50811, 50812, 50813, 50814, 50815, 50816, 50817, 50818, 50819, 50820, 50821, 50822, 50823, 50824, 50825, 50826, 50827, 50828, 50829, 50830, 50831, 50832, 50833, 50834, 50835, 50836, 50837, 50838, 50839, 50840, 50841, 50842, 50843, 50844, 50845, 50846, 50847, 50848, 50849, 50850, 50851, 50852, 50853, 50854, 50855, 50856, 50857, 50858, 50859, 50860, 50861, 50862, 50863, 50864, 50865, 50866, 50867, 50868, 50869, 50870, 50871, 50872, 50873, 50874, 50875, 50876, 50877, 50878, 50879, 50880, 50881, 50882, 50883, 50884, 50885, 50886, 50887, 50888, 50889, 50890, 50891, 50892, 50893, 50894, 50895, 50896, 50897, 50898, 50899, 50900, 50901, 50902, 50903, 50904, 50905, 50906, 50907, 50908, 50909, 50910, 50911, 50912, 50913, 50914, 50915, 50916, 50917, 50918, 50919, 50920, 50921, 50922, 50923, 50924, 50925, 50926, 50927, 50928, 50929, 50930, 50931, 50932, 50933, 50934, 50935, 50936, 50937, 50938, 50939, 50940, 50941, 50942, 50943, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +713: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 47689, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 51456, 51457, 51458, 51459, 51460, 51461, 51462, 51463, 51464, 51465, 51466, 51467, 51468, 51469, 51470, 51471, 51472, 51473, 51474, 51475, 51476, 51477, 51478, 51479, 51480, 51481, 51482, 51483, 51484, 51485, 51486, 51487, 51488, 51489, 51490, 51491, 51492, 0, 51494, 51495, 51496, 51497, 51498, 51499, 51500, 51501, 51502, 51503, 51504, 51505, 51506, 51507, 51508, 51509, 51510, 51511, 51512, 51513, 51514, 51515, 51516, 51517, 51518, 51519, 51520, 51521, 51522, 51523, 51524, 51525, 51526, 51527, 51528, 51529, 51530, 51531, 51532, 51533, 51534, 51535, 51536, 51537, 51538, 51539, 51540, 51541, 51542, 51543, 51544, 51545, 51546, 51547, 51548, 51549, 51550, 51551, 51552, 51553, 51554, 51555, 51556, 51557, 51558, 51559, 51560, 51561, 51562, 51563, 51564, 51565, 51566, 51567, 51568, 51569, 51570, 51571, 51572, 51573, 51574, 51575, 51576, 51577, 51578, 51579, 51580, 51581, 51582, 51583, 51584, 51585, 51586, 51587, 51588, 51589, 51590, 51591, 51592, 51593, 51594, 51595, 51596, 51597, 51598, 51599, 51600, 51601, 51602, 51603, 51604, 51605, 51606, 51607, 51608, 51609, 51610, 51611, 51612, 51613, 51614, 51615, 51616, 51617, 51618, 51619, 51620, 51621, 51622, 51623, 51624, 51625, 51626, 51627, 51628, 51629, 51630, 51631, 51632, 51633, 51634, 51635, 51636, 51637, 51638, 51639, 51640, 51641, 51642, 51643, 51644, 51645, 51646, 51647, 51648, 51649, 51650, 51651, 51652, 51653, 51654, 51655, 51656, 51657, 51658, 51659, 51660, 51661, 51662, 51663, 51664, 51665, 51666, 51667, 51668, 51669, 51670, 51671, 51672, 51673, 51674, 51675, 51676, 51677, 51678, 51679, 51680, 51681, 51682, 51683, 51684, 51685, 51686, 51687, 51688, 51689, 51690, 51691, 51692, 51693, 51694, 51695, 51696, 51697, 51698, 51699, 51700, 51701, 51702, 51703, 51704, 51705, 51706, 51707, 51708, 51709, 51710, 51711, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +715: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 37172, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 51968, 51969, 51970, 51971, 51972, 51973, 51974, 51975, 51976, 51977, 51978, 51979, 51980, 51981, 51982, 51983, 51984, 51985, 51986, 51987, 51988, 51989, 51990, 51991, 51992, 51993, 51994, 51995, 51996, 51997, 51998, 51999, 52000, 52001, 52002, 52003, 52004, 52005, 52006, 52007, 52008, 52009, 52010, 52011, 52012, 52013, 52014, 52015, 52016, 52017, 52018, 52019, 52020, 52021, 52022, 52023, 52024, 52025, 52026, 52027, 52028, 52029, 52030, 52031, 52032, 52033, 52034, 52035, 52036, 52037, 52038, 52039, 52040, 52041, 52042, 52043, 52044, 52045, 52046, 52047, 52048, 52049, 52050, 52051, 52052, 52053, 52054, 52055, 52056, 52057, 52058, 52059, 52060, 52061, 52062, 52063, 52064, 52065, 52066, 52067, 52068, 52069, 52070, 52071, 52072, 52073, 52074, 52075, 52076, 52077, 52078, 52079, 52080, 52081, 52082, 52083, 52084, 52085, 52086, 52087, 52088, 52089, 52090, 52091, 52092, 52093, 52094, 52095, 52096, 52097, 52098, 52099, 52100, 52101, 52102, 52103, 52104, 52105, 52106, 52107, 52108, 52109, 52110, 52111, 52112, 52113, 52114, 52115, 52116, 52117, 52118, 52119, 52120, 52121, 52122, 52123, 52124, 52125, 52126, 52127, 52128, 52129, 52130, 52131, 52132, 52133, 52134, 52135, 52136, 52137, 52138, 52139, 52140, 52141, 52142, 52143, 52144, 52145, 52146, 52147, 52148, 52149, 52150, 52151, 52152, 52153, 52154, 52155, 52156, 52157, 52158, 52159, 52160, 52161, 52162, 52163, 52164, 52165, 52166, 52167, 52168, 52169, 52170, 52171, 52172, 52173, 0, 52175, 52176, 52177, 52178, 52179, 52180, 52181, 52182, 52183, 52184, 52185, 52186, 52187, 52188, 52189, 52190, 52191, 52192, 52193, 52194, 52195, 52196, 52197, 52198, 52199, 52200, 52201, 52202, 52203, 52204, 52205, 52206, 52207, 52208, 52209, 52210, 52211, 52212, 52213, 52214, 52215, 52216, 52217, 52218, 52219, 52220, 52221, 52222, 52223, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +718: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 39374, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 48579, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 52736, 52737, 52738, 52739, 52740, 52741, 52742, 52743, 52744, 52745, 52746, 52747, 52748, 52749, 52750, 52751, 52752, 52753, 52754, 52755, 52756, 52757, 52758, 52759, 52760, 52761, 52762, 52763, 52764, 52765, 52766, 52767, 52768, 52769, 52770, 0, 52772, 52773, 52774, 52775, 52776, 52777, 52778, 52779, 52780, 52781, 52782, 52783, 52784, 52785, 52786, 52787, 52788, 52789, 52790, 52791, 52792, 52793, 52794, 52795, 52796, 52797, 52798, 52799, 52800, 52801, 52802, 52803, 52804, 52805, 52806, 52807, 52808, 52809, 52810, 52811, 52812, 52813, 52814, 52815, 52816, 52817, 52818, 52819, 52820, 52821, 52822, 52823, 52824, 52825, 52826, 52827, 52828, 52829, 52830, 52831, 52832, 52833, 52834, 52835, 52836, 52837, 52838, 52839, 52840, 52841, 52842, 52843, 52844, 52845, 52846, 52847, 52848, 52849, 52850, 52851, 52852, 52853, 52854, 52855, 52856, 52857, 52858, 52859, 52860, 52861, 52862, 52863, 52864, 52865, 52866, 52867, 52868, 52869, 52870, 52871, 52872, 52873, 52874, 52875, 52876, 52877, 52878, 52879, 52880, 52881, 52882, 52883, 52884, 52885, 52886, 52887, 52888, 52889, 52890, 52891, 52892, 52893, 52894, 52895, 52896, 52897, 52898, 52899, 52900, 52901, 52902, 52903, 52904, 52905, 52906, 52907, 52908, 52909, 52910, 52911, 52912, 52913, 52914, 52915, 52916, 52917, 52918, 52919, 52920, 52921, 52922, 52923, 52924, 52925, 52926, 52927, 52928, 52929, 52930, 52931, 52932, 52933, 52934, 52935, 52936, 52937, 52938, 52939, 52940, 52941, 52942, 52943, 52944, 52945, 52946, 52947, 52948, 52949, 52950, 52951, 52952, 52953, 52954, 52955, 52956, 52957, 52958, 52959, 52960, 52961, 52962, 52963, 52964, 52965, 52966, 52967, 52968, 52969, 52970, 52971, 52972, 52973, 52974, 52975, 52976, 52977, 52978, 52979, 52980, 52981, 52982, 52983, 52984, 52985, 52986, 52987, 52988, 52989, 52990, 52991, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +760: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 24342, 37566, 42635, 48578, 28525, 38526, 37213, 9044, 45244, 8148, 33344, 39811, 22349, 35656, 27480, 37106, 18825, 21849, 48578, 48577, 28444, 45302, 48578, 32730, 44745, 8984, 13380, 23109, 31702, 31066, 32566, 29750, 22675, 26412, 15897, 10027, 19513, 43885, 27487, 31523, 33712, 7959, 11720, 8105, 18967, 8079, 9162, 19522, 19534, 31617, 31617, 31617, 48578, 18839, 19509, 35183, 48578, 20750, 10813, 42144, 39586, 38682, 10537, 47243, 14148, 27579, 36055, 30685, 39442, 33581, 33581, 18997, 10663, 45644, 42207, 37068, 36019, 37069, 17465, 29559, 31406, 47734, 10545, 46725, 37108, 40516, 11626, 8049, 12948, 48578, 26602, 18165, 15010, 13921, 27228, 33753, 10815, 48578, 19366, 44246, 37215, 30033, 15434, 33238, 9751, 32504, 23674, 23674, 48578, 44750, 46984, 28900, 8025, 23892, 34448, 20471, 12496, 43982, 42327, 37042, 10314, 40697, 30900, 38460, 41759, 48578, 12986, 47995, 10032, 41294, 10236, 42820, 41385, 34803, 26902, 14870, 26714, 48578, 42976, 9043, 8452, 34638, 23727, 34866, 16186, 48578, 48578, 44244, 36155, 36155, 42949, 48578, 48578, 40511, 13112, 33572, 13400, 32551, 46872, 23088, 44747, 18807, 22097, 18939, 13396, 13858, 11638, 18718, 33983, 18718, 25768, 45606, 39658, 14918, 9529, 27135, 10617, 23675, 10535, 20015, 22881, 8036, 7681, 21959, 48578, 37602, 30034, 33786, 33237, 19545, 48578, 21220, 41653, 41749, 13491, 27798, 20556, 18887, 20698, 48577, 27694, 21402, 48578, 19790, 34501, 21198, 38002, 34584, 38157, 10177, 26880, 27493, 48442, 30375, 28135, 35980, 23762, 37775, 48172, 30674, 8765, 48578, 18415, 16576, 19356, 33177, 26959, 48578, 7516, 8201, 47997, 17645, 45649, 42223, 15609, 33763, 48578, 47077, 42807, 11683, 48578, 40778, 23335, 35464, 38159, 33361, 31366, 48578, 48578, 48578, 14560, 48578, 41620, 8198, 30902, 38463, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 33058, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34076, 46265, 0, 0, 34123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35372, 0, 0, 0, 35683, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38116, 0, 0, 0, 0, 0, 0, 0, 38634, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39368, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40422, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41347, 0, 0, 0, 0, 0, 0, 0, 41777, 41777, 0, 0, 0, 0, 45752, 57818, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43788, 0, 0, 0, 0, 0, 44017, 0, 0, 0, 0, 0, 0, 0, 0, 47724, 0, 0, 45066, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46019, 0, 0, 0, 0, 0, 46189, 0, 0, 0, 0, 0, 0, 0, 0, 46755, 0, 0, 0, 47271, 0, 0, 0, 0, 0, 0, 47757, 40203, 47866, 0, 48316, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +761: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 29293, 17135, 25467, 17511, 21200, 28767, 8221, 30112, 15778, 41569, 25715, 48000, 12987, 33385, 41561, 10248, 48578, 48578, 14873, 45031, 21425, 43715, 34693, 31060, 45275, 47677, 36010, 48578, 13755, 48578, 11758, 48578, 11952, 22201, 45694, 48578, 38772, 8168, 41853, 48578, 35701, 37714, 16191, 44966, 30117, 30117, 12305, 44303, 46473, 35626, 31776, 40520, 32945, 48578, 45277, 48578, 43037, 30136, 44441, 48578, 48578, 48578, 41627, 19860, 46719, 48578, 48578, 48578, 48578, 46334, 46335, 46335, 22023, 20925, 10383, 42469, 34178, 48578, 40528, 26001, 36543, 18957, 21572, 48363, 10791, 25589, 15265, 34557, 20235, 16442, 19837, 38238, 48578, 36546, 36546, 30092, 30141, 48578, 47694, 47474, 37991, 10253, 8184, 39143, 20565, 33150, 19760, 48578, 8255, 42165, 48021, 48227, 33222, 26497, 40525, 48578, 26971, 48578, 10252, 48578, 42116, 7559, 46281, 48578, 48578, 30088, 48578, 11777, 22735, 32591, 44495, 12004, 11740, 29785, 43786, 48578, 48578, 41099, 48578, 44244, 39094, 11640, 8256, 30670, 44486, 46626, 23797, 18391, 14613, 41449, 22927, 48578, 33005, 9875, 32658, 20903, 38466, 26783, 12878, 46315, 30116, 21730, 22286, 9454, 48578, 35623, 48578, 48577, 30133, 21164, 12100, 48578, 32948, 48578, 10527, 26126, 10231, 26170, 23219, 29103, 25915, 23162, 39152, 10657, 30920, 44767, 30134, 45075, 13253, 47421, 11709, 19449, 16868, 39783, 11716, 47818, 42564, 20370, 25478, 34811, 26024, 41783, 26894, 48578, 48578, 28880, 44888, 10591, 44638, 8759, 34245, 20121, 16661, 8483, 15731, 30684, 34677, 46161, 7693, 20247, 29933, 48578, 32600, 34542, 48579, 48579, 30665, 30108, 48005, 48579, 10239, 9177, 41029, 18438, 9025, 31246, 45326, 48579, 22385, 29595, 33462, 48579, 37889, 30935, 38836, 45155, 29394, 30094, 26074, 10065, 8614, 48579, 23309, 41913, 14123, 14123, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48990, 49038, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34085, 0, 49763, 0, 50091, 0, 0, 0, 50696, 0, 0, 0, 51220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52278, 0, 52370, 0, 0, 0, 53153, 53176, 53316, 0, 0, 0, 53491, 53490, 53529, 53555, 0, 0, 0, 0, 0, 0, 0, 0, 54301, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55676, 0, 0, 0, 0, 56235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57222, 0, 0, 0, 0, 0, 0, 0, 57927, 0, 58073, 0, 58174, 0, 0, 0, 58586, 58659, 0, 58792, 0, 0, 0, 0, 0, 0, 0, 0, 59303, 59317, 0, 45980, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60470, 0, 60629, 50475, 0, 0, 0, 62410, 0, 61228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63662, 63846, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35038, 0, 0, 34258, 34285, 0, 0, 0, 34606, 0, 0, 0, 0, 0, 0, 0, 35834, 0, 0, 0, 36215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37898, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +762: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 30095, 41244, 19373, 7858, 14251, 45079, 8014, 37229, 15721, 31769, 46434, 19909, 20166, 21614, 19667, 29813, 44374, 26524, 33403, 48579, 48579, 26508, 31145, 46840, 27486, 46708, 27410, 14886, 8344, 29947, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 63015, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41486, 41617, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64030, 64031, 64032, 64033, 64034, 64035, 64036, 64037, 64038, 64039, 64040, 64041, 64042, 64043, 64044, 64045, 64046, 64047, 64048, 64049, 64050, 64051, 64052, 64053, 64054, 64055, 64056, 64057, 64058, 64059, 64060, 64061, 64062, 64063, 64064, 64065, 64066, 64067, 64068, 64069, 64070, 64071, 64072, 64073, 64074, 64075, 64076, 64077, 64078, 64079, 64080, 64081, 64082, 64083, 64084, 64085, 64086, 64087, 64088, 64089, 64090, 64091, 64092, 64093, 64094, 64095, 64096, 64097, 64098, 64099, 64100, 64101, 64102, 64103, 64104, 64105, 64106, 64107, 64108, 64109, 64110, 64111, 64112, 64113, 64114, 64115, 64116, 64117, 64118, 64119, 64120, 64121, 64122, 64123, 64124, 64125, 64126, 64127, 64128, 64129, 64130, 64131, 64132, 64133, 64134, 64135, 64136, 64137, 64138, 64139, 64140, 64141, 64142, 64143, 64144, 64145, 64146, 64147, 64148, 64149, 64150, 64151, 64152, 64153, 64154, 64155, 64156, 64157, 64158, 64159, 64160, 64161, 64162, 64163, 64164, 64165, 64166, 64167, 64168, 64169, 64170, 64171, 64172, 64173, 64174, 64175, 64176, 64177, 64178, 64179, 64180, 64181, 64182, 64183, 64184, 64185, 64186, 64187, 64188, 64189, 64190, 64191, 64192, 64193, 64194, 64195, 64196, 64197, 64198, 64199, 64200, 64201, 64202, 64203, 64204, 64205, 64206, 64207, 64208, 64209, 64210, 64211, 64212, 64213, 64214, 64215, 64216, 64217, 64218, 64219, 64220, 64221, 64222, 64223, 64224, 64225, 64226, 64227, 64228, 64229, 64230, 64231, 64232, 64233, 64234, 64235, 64236, 64237, 64238, 64239, 64240, 64241, 64242, 64243, 64244, 64245, 64246, 64247, 64248, 64249, 64250, 64251, 64252, 64253, 64254, 64255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +3584: 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 63038, 0, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 32768, 0, 32770, 32771, 32772, 32773, 32774, 32775, 32776, 32777, 32778, 32779, 32780, 32781, 32782, 32783, 32784, 32785, 32786, 32787, 32788, 32789, 32790, 32791, 32792, 32793, 32794, 32795, 32796, 32797, 32798, 32799, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32896, 32897, 32898, 32899, 32900, 32901, 32902, 32903, 32904, 32905, 32906, 32907, 32908, 32909, 32910, 32911, 32912, 32913, 32914, 32915, 32916, 32917, 32918, 32919, 32920, 32921, 32922, 32923, 32924, 32925, 32926, 32927, 32928, 32929, 32930, 32931, 32932, 32933, 32934, 32935, 32936, 32937, 32938, 32939, 32940, 32941, 32942, 32943, 32944, 32945, 32946, 32947, 32948, 32949, 32950, 32951, 32952, 32953, 32954, 32955, 32956, 32957, 32958, 32959, 32960, 32961, 32962, 32963, 32964, 32965, 32966, 32967, 32968, 32969, 32970, 32971, 32972, 32973, 32974, 32975, 32976, 32977, 32978, 32979, 32980, 32981, 32982, 32983, 32984, 32985, 32986, 32987, 32988, 32989, 32990, 32991, 32992, 32993, 32994, 32995, 32996, 32997, 32998, 32999, 33000, 33001, 33002, 33003, 33004, 33005, 33006, 33007, 33008, 33009, 33010, 33011, 33012, 33013, 33014, 33015, 33016, 33017, 33018, 33019, 33020, 33021, 33022, 33023, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +3585: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 63038, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33264, 33265, 33266, 33267, 33268, 33269, 33270, 33271, 33272, 33273, 33274, 33275, 33276, 33277, 33278, 33279, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 diff --git a/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/ColumnarForbidTest.java b/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/ColumnarForbidTest.java new file mode 100644 index 000000000..31f5754f6 --- /dev/null +++ b/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/ColumnarForbidTest.java @@ -0,0 +1,203 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.alibaba.polardbx.optimizer; + +import com.alibaba.polardbx.common.exception.TddlRuntimeException; +import com.alibaba.polardbx.optimizer.config.table.SchemaManager; +import com.alibaba.polardbx.optimizer.config.table.TableMeta; +import com.alibaba.polardbx.optimizer.core.rel.ddl.LogicalAlterTable; +import com.alibaba.polardbx.optimizer.utils.MetaUtils; +import org.apache.calcite.sql.SqlAlterSpecification; +import org.apache.calcite.sql.SqlAlterTable; +import org.apache.calcite.sql.SqlChangeColumn; +import org.apache.calcite.sql.SqlColumnDeclaration; +import org.apache.calcite.sql.SqlDataTypeSpec; +import org.apache.calcite.sql.SqlIdentifier; +import org.apache.calcite.sql.SqlKind; +import org.apache.calcite.sql.SqlModifyColumn; +import org.apache.calcite.sql.validate.SqlValidatorImpl; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.ExpectedException; +import org.mockito.MockedStatic; + +import java.util.ArrayList; +import java.util.List; + +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.doCallRealMethod; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.mockStatic; +import static org.mockito.Mockito.when; + +public class ColumnarForbidTest { + private final String schemaName = "schema_name"; + private final String tableName = "table_name"; + + @Rule + public ExpectedException thrown = ExpectedException.none(); + + @Test + public void ForbidAlterCciTableWithMultiStatement() { + try (MockedStatic staticOptimizerContext = mockStatic(OptimizerContext.class)) { + OptimizerContext optimizerContext = mock(OptimizerContext.class); + SchemaManager schemaManager = mock(SchemaManager.class); + staticOptimizerContext.when(() -> OptimizerContext.getContext(any())).thenReturn(optimizerContext); + + try (MockedStatic staticTableColumns = mockStatic(MetaUtils.TableColumns.class)) { + MetaUtils.TableColumns tableColumns = mock(MetaUtils.TableColumns.class); + staticTableColumns.when(() -> MetaUtils.TableColumns.build(any())).thenReturn(tableColumns); + + TableMeta tableMeta = mock(TableMeta.class); + SqlAlterTable sqlAlterTable = mock(SqlAlterTable.class); + + List alters = new ArrayList<>(); + SqlAlterSpecification alterSpecification1 = mock(SqlAlterSpecification.class); + SqlAlterSpecification alterSpecification2 = mock(SqlAlterSpecification.class); + + LogicalAlterTable alterTable = mock(LogicalAlterTable.class); + when(alterTable.getSchemaName()).thenReturn(schemaName); + when(alterTable.getTableName()).thenReturn(tableName); + + when(optimizerContext.getLatestSchemaManager()).thenReturn(schemaManager); + when(schemaManager.getTable(any())).thenReturn(tableMeta); + when(tableMeta.withCci()).thenReturn(true); + when(alterTable.getSqlAlterTable()).thenReturn(sqlAlterTable); + when(sqlAlterTable.getAlters()).thenReturn(alters); + + alters.add(alterSpecification1); + alters.add(alterSpecification2); + + thrown.expect(TddlRuntimeException.class); + thrown.expectMessage( + "Do not support multiple ALTER TABLE statements on table with clustered columnar index"); + doCallRealMethod().when(alterTable).validateColumnar(); + alterTable.validateColumnar(); + } + } + } + + @Test + public void ForbidCitableModifyUnsupportedType() { + try (MockedStatic staticOptimizerContext = mockStatic(OptimizerContext.class)) { + OptimizerContext optimizerContext = mock(OptimizerContext.class); + SchemaManager schemaManager = mock(SchemaManager.class); + staticOptimizerContext.when(() -> OptimizerContext.getContext(any())).thenReturn(optimizerContext); + + try (MockedStatic staticTableColumns = mockStatic(MetaUtils.TableColumns.class)) { + MetaUtils.TableColumns tableColumns = mock(MetaUtils.TableColumns.class); + staticTableColumns.when(() -> MetaUtils.TableColumns.build(any())).thenReturn(tableColumns); + + TableMeta tableMeta = mock(TableMeta.class); + SqlAlterTable sqlAlterTable = mock(SqlAlterTable.class); + + List alters = new ArrayList<>(); + SqlModifyColumn modifyColumn = mock(SqlModifyColumn.class); + + LogicalAlterTable alterTable = mock(LogicalAlterTable.class); + SqlIdentifier sqlIdentifier = mock(SqlIdentifier.class); + SqlColumnDeclaration sqlColumnDeclaration = mock(SqlColumnDeclaration.class); + SqlDataTypeSpec sqlDataTypeSpec = mock(SqlDataTypeSpec.class); + when(alterTable.getSchemaName()).thenReturn(schemaName); + when(alterTable.getTableName()).thenReturn(tableName); + when(modifyColumn.getKind()).thenReturn(SqlKind.MODIFY_COLUMN); + when(modifyColumn.getColName()).thenReturn(sqlIdentifier); + when(sqlIdentifier.getLastName()).thenReturn("column_name"); + + when(modifyColumn.getColDef()).thenReturn(sqlColumnDeclaration); + when(sqlColumnDeclaration.getDataType()).thenReturn(sqlDataTypeSpec); + when(sqlDataTypeSpec.getTypeName()).thenReturn(sqlIdentifier); + when(sqlIdentifier.getLastName()).thenReturn("binary"); + + when(optimizerContext.getLatestSchemaManager()).thenReturn(schemaManager); + when(schemaManager.getTable(any())).thenReturn(tableMeta); + when(tableMeta.withCci()).thenReturn(true); + when(alterTable.getSqlAlterTable()).thenReturn(sqlAlterTable); + when(sqlAlterTable.getAlters()).thenReturn(alters); + + alters.add(modifyColumn); + + try (MockedStatic staticSqlValidatorImpl = mockStatic(SqlValidatorImpl.class)) { + staticSqlValidatorImpl.when( + () -> SqlValidatorImpl.validateUnsupportedTypeWithCciWhenModifyColumn(sqlColumnDeclaration)) + .thenAnswer(invocation -> null); + +// thrown.expect(TddlRuntimeException.class); +// thrown.expectMessage("is not supported by CCI"); + doCallRealMethod().when(alterTable).validateColumnar(); + alterTable.validateColumnar(); + } + } + } + } + + @Test + public void ForbidCitableChangeUnsupportedType() { + try (MockedStatic staticOptimizerContext = mockStatic(OptimizerContext.class)) { + OptimizerContext optimizerContext = mock(OptimizerContext.class); + SchemaManager schemaManager = mock(SchemaManager.class); + staticOptimizerContext.when(() -> OptimizerContext.getContext(any())).thenReturn(optimizerContext); + + try (MockedStatic staticTableColumns = mockStatic(MetaUtils.TableColumns.class)) { + MetaUtils.TableColumns tableColumns = mock(MetaUtils.TableColumns.class); + staticTableColumns.when(() -> MetaUtils.TableColumns.build(any())).thenReturn(tableColumns); + + TableMeta tableMeta = mock(TableMeta.class); + SqlAlterTable sqlAlterTable = mock(SqlAlterTable.class); + + List alters = new ArrayList<>(); + SqlChangeColumn changeColumn = mock(SqlChangeColumn.class); + + LogicalAlterTable alterTable = mock(LogicalAlterTable.class); + SqlIdentifier sqlIdentifier = mock(SqlIdentifier.class); + SqlColumnDeclaration sqlColumnDeclaration = mock(SqlColumnDeclaration.class); + SqlDataTypeSpec sqlDataTypeSpec = mock(SqlDataTypeSpec.class); + when(alterTable.getSchemaName()).thenReturn(schemaName); + when(alterTable.getTableName()).thenReturn(tableName); + when(changeColumn.getKind()).thenReturn(SqlKind.CHANGE_COLUMN); + when(changeColumn.getOldName()).thenReturn(sqlIdentifier); + when(sqlIdentifier.getLastName()).thenReturn("column_name"); + + when(changeColumn.getColDef()).thenReturn(sqlColumnDeclaration); + when(sqlColumnDeclaration.getDataType()).thenReturn(sqlDataTypeSpec); + when(sqlDataTypeSpec.getTypeName()).thenReturn(sqlIdentifier); + when(sqlIdentifier.getLastName()).thenReturn("TIMESTAMP"); + + when(optimizerContext.getLatestSchemaManager()).thenReturn(schemaManager); + when(schemaManager.getTable(any())).thenReturn(tableMeta); + when(tableMeta.withCci()).thenReturn(true); + when(alterTable.getSqlAlterTable()).thenReturn(sqlAlterTable); + when(sqlAlterTable.getAlters()).thenReturn(alters); + + alters.add(changeColumn); + + try (MockedStatic staticSqlValidatorImpl = mockStatic(SqlValidatorImpl.class)) { + staticSqlValidatorImpl.when( + () -> SqlValidatorImpl.validateUnsupportedTypeWithCciWhenModifyColumn(sqlColumnDeclaration)) + .thenAnswer(invocation -> null); + +// thrown.expect(TddlRuntimeException.class); +// thrown.expectMessage("is not supported by CCI"); + doCallRealMethod().when(alterTable).validateColumnar(); + alterTable.validateColumnar(); + } + } + } + } +} diff --git a/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/config/WithGsiTest.java b/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/config/WithGsiTest.java new file mode 100644 index 000000000..db299b55a --- /dev/null +++ b/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/config/WithGsiTest.java @@ -0,0 +1,99 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.alibaba.polardbx.optimizer.config; + +import com.alibaba.polardbx.gms.metadb.table.IndexStatus; +import com.alibaba.polardbx.gms.metadb.table.IndexVisibility; +import com.alibaba.polardbx.gms.metadb.table.TableStatus; +import com.alibaba.polardbx.optimizer.config.table.GsiMetaManager; +import com.alibaba.polardbx.optimizer.config.table.TableMeta; +import com.google.common.collect.Lists; +import org.junit.Assert; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Spy; +import org.mockito.junit.MockitoJUnitRunner; + +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; + +import static org.mockito.Mockito.when; + +@RunWith(MockitoJUnitRunner.class) +public class WithGsiTest { + + String schemaName = "schema_name"; + String tableName = "table_name"; + String indexName = "index_name"; + + @Spy + TableMeta tableMeta = new TableMeta(schemaName, tableName, Lists.newArrayList(), null, null, + true, TableStatus.PUBLIC, 1, 1); + + @Test + public void WiGsiTest() { + Map indexMap = new HashMap<>(); + GsiMetaManager.GsiIndexMetaBean indexMetaBean1 = + new GsiMetaManager.GsiIndexMetaBean(null, schemaName, tableName, true, schemaName, indexName, + Collections.emptyList(), null, null, null, null, null, null, + IndexStatus.PUBLIC, 1, true, false, IndexVisibility.VISIBLE); + + indexMap.put("myIndex", indexMetaBean1); + + GsiMetaManager.GsiTableMetaBean tableMetaBean = new GsiMetaManager.GsiTableMetaBean( + "catalog", schemaName, tableName, GsiMetaManager.TableType.SHARDING, + "partitionKey", "partitionPolicy", 1, + "tbPartitionKey", "tbPartitionPolicy", 1, + indexMap, "comment", indexMetaBean1 + ); + + when(tableMeta.getGsiTableMetaBean()).thenReturn(tableMetaBean); + + Assert.assertTrue(tableMeta.withGsi()); + Assert.assertFalse(tableMeta.withCci()); + + Assert.assertTrue(tableMeta.withGsi("myIndex")); + Assert.assertTrue(tableMeta.withGsi("MYINDEX")); + Assert.assertTrue(tableMeta.withGsi("myindex")); + Assert.assertFalse(tableMeta.withCci("myIndex")); + + GsiMetaManager.GsiIndexMetaBean indexMetaBean2 = + new GsiMetaManager.GsiIndexMetaBean(null, schemaName, tableName, true, schemaName, indexName, + Collections.emptyList(), null, null, null, null, null, null, + IndexStatus.PUBLIC, 1, true, true, IndexVisibility.VISIBLE); + indexMap.put("myIndex", indexMetaBean2); + + Assert.assertTrue(tableMeta.withGsi()); + Assert.assertTrue(tableMeta.withCci()); + + Assert.assertTrue(tableMeta.withGsi("myIndex")); + Assert.assertTrue(tableMeta.withCci("myIndex")); + + indexMap.clear(); + indexMap.put("myIndex1", indexMetaBean1); + indexMap.put("myIndex2", indexMetaBean2); + + Assert.assertTrue(tableMeta.withGsi()); + Assert.assertTrue(tableMeta.withCci()); + + Assert.assertTrue(tableMeta.withGsi("myIndex1")); + Assert.assertTrue(tableMeta.withCci("myIndex2")); + } +} diff --git a/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/config/meta/DrdsRelMdCostTest.java b/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/config/meta/DrdsRelMdCostTest.java index 697cdcbfd..c4e7d60fa 100644 --- a/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/config/meta/DrdsRelMdCostTest.java +++ b/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/config/meta/DrdsRelMdCostTest.java @@ -131,7 +131,7 @@ public static void clean() { } @Test - public void testParrallel() throws InterruptedException { + public void testParrallel() { DynamicConfig.getInstance().loadValue(null, ConnectionProperties.ENABLE_MQ_CACHE_COST_BY_THREAD, "true"); ExecutorService pool = newFixedThreadPool(11, new DefaultThreadFactory("mq-test")); RelMetadataQuery mq = PlannerUtils.newMetadataQuery(); diff --git a/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/config/table/collation/CodepointOfUTF8Test.java b/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/config/table/collation/CodepointOfUTF8Test.java new file mode 100644 index 000000000..a6e5f4c20 --- /dev/null +++ b/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/config/table/collation/CodepointOfUTF8Test.java @@ -0,0 +1,112 @@ +package com.alibaba.polardbx.optimizer.config.table.collation; + +import io.airlift.slice.Slice; +import io.airlift.slice.Slices; +import org.junit.Assert; +import org.junit.Test; + +import static com.alibaba.polardbx.optimizer.config.table.collation.AbstractCollationHandler.*; + +// 0x0 - 0x7f | 0xxxxxxx +// 0x80 - 0x7ff | 110xxxxx 10xxxxxx +// 0x800 - 0xffff | 1110xxxx 10xxxxxx 10xxxxxx +// 0x10000 - 0x10ffff | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx +public class CodepointOfUTF8Test { + private int[] parsedWildCharacter = new int[1]; + private Slice str; + private int result; + + @Test + public void testMB4() { + // 0x10000 - 0x10ffff | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx + str = Slices.wrappedBuffer((byte) 0xF1, (byte) 0xA7, (byte) 0x9F, (byte) 0x83); + result = AbstractCollationHandler + .codepointOfUTF8(parsedWildCharacter, str, 0, str.length(), true, true); + Assert.assertEquals(result, 4); + + str = Slices.wrappedBuffer((byte) 0xF1, (byte) 0xA7, (byte) 0x9F); + result = AbstractCollationHandler + .codepointOfUTF8(parsedWildCharacter, str, 0, str.length(), true, true); + Assert.assertEquals(result, MY_CS_TOOSMALL4); + + str = Slices.wrappedBuffer((byte) 0xF1, (byte) 0xA7, (byte) 0x7F, (byte) 0x83); + result = AbstractCollationHandler + .codepointOfUTF8(parsedWildCharacter, str, 0, str.length(), true, true); + Assert.assertEquals(result, MY_CS_ILSEQ); + + // if (*pwc < 0x10000 || *pwc > 0x10ffff) return MY_CS_ILSEQ; + str = Slices.wrappedBuffer((byte) 0xF0, (byte) 0x80, (byte) 0x87, (byte) 0xE9); + result = AbstractCollationHandler + .codepointOfUTF8(parsedWildCharacter, str, 0, str.length(), true, true); + Assert.assertEquals(result, MY_CS_ILSEQ); + } + + @Test + public void testMB3() { + // 0x800 - 0xffff | 1110xxxx 10xxxxxx 10xxxxxx + str = Slices.wrappedBuffer((byte) 0xE4, (byte) 0xA5, (byte) 0xBF); + result = AbstractCollationHandler + .codepointOfUTF8(parsedWildCharacter, str, 0, str.length(), true, true); + Assert.assertEquals(result, 3); + + str = Slices.wrappedBuffer((byte) 0xE4, (byte) 0xA5); + result = AbstractCollationHandler + .codepointOfUTF8(parsedWildCharacter, str, 0, str.length(), true, true); + Assert.assertEquals(result, MY_CS_TOOSMALL3); + + str = Slices.wrappedBuffer((byte) 0xE4, (byte) 0xC5, (byte) 0xBF); + result = AbstractCollationHandler + .codepointOfUTF8(parsedWildCharacter, str, 0, str.length(), true, true); + Assert.assertEquals(result, MY_CS_ILSEQ); + + // According to RFC 3629, UTF-8 should prohibit characters between + // U+D800 and U+DFFF, which are reserved for surrogate pairs and do + // not directly represent characters. + str = Slices.wrappedBuffer((byte) 0xED, (byte) 0xF5, (byte) 0xED); + result = AbstractCollationHandler + .codepointOfUTF8(parsedWildCharacter, str, 0, str.length(), true, true); + Assert.assertEquals(result, MY_CS_ILSEQ); + } + + @Test + public void testMB2() { + // 0x80 - 0x7ff | 110xxxxx 10xxxxxx + str = Slices.wrappedBuffer((byte) 0xD7, (byte) 0xA0); + result = AbstractCollationHandler + .codepointOfUTF8(parsedWildCharacter, str, 0, str.length(), true, true); + Assert.assertEquals(result, 2); + + // 0x80 - 0x7ff | 110xxxxx 10xxxxxx MY_CS_ILSEQ ERROR 1 + str = Slices.wrappedBuffer((byte) 0xC1, (byte) 0xA0); + result = AbstractCollationHandler + .codepointOfUTF8(parsedWildCharacter, str, 0, str.length(), true, true); + Assert.assertEquals(result, MY_CS_ILSEQ); + + // 0x80 - 0x7ff | 110xxxxx 10xxxxxx MY_CS_TOOSMALL2 ERROR + str = Slices.wrappedBuffer((byte) 0xC5); + result = AbstractCollationHandler + .codepointOfUTF8(parsedWildCharacter, str, 0, str.length(), true, true); + Assert.assertEquals(result, MY_CS_TOOSMALL2); + + // 0x80 - 0x7ff | 110xxxxx 10xxxxxx MY_CS_ILSEQ ERROR 2 + str = Slices.wrappedBuffer((byte) 0xC5, (byte) 0x61); + result = AbstractCollationHandler + .codepointOfUTF8(parsedWildCharacter, str, 0, str.length(), true, true); + Assert.assertEquals(result, MY_CS_ILSEQ); + } + + @Test + public void testMB1() { + // 0x0 - 0x7f | 0xxxxxxx + str = Slices.wrappedBuffer((byte) 0x78); + result = AbstractCollationHandler + .codepointOfUTF8(parsedWildCharacter, str, 0, str.length(), true, true); + Assert.assertEquals(result, 1); + + // 0x0 - 0x7f | 0xxxxxxx ERROR + str = Slices.wrappedBuffer((byte) 0xD1); + result = AbstractCollationHandler + .codepointOfUTF8(parsedWildCharacter, str, 0, str.length(), true, true); + Assert.assertEquals(result, MY_CS_TOOSMALL2); + } +} diff --git a/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/config/table/collation/Uca900ZhDataTest.java b/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/config/table/collation/Uca900ZhDataTest.java new file mode 100644 index 000000000..0b574912e --- /dev/null +++ b/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/config/table/collation/Uca900ZhDataTest.java @@ -0,0 +1,523 @@ +package com.alibaba.polardbx.optimizer.config.table.collation; + +import org.junit.Assert; +import org.junit.Test; + +import static com.alibaba.polardbx.optimizer.config.table.collation.Uca900ZhData.zh_uca900_weight; + +public class Uca900ZhDataTest { + + // Dump from mysql 8.0 strings/ctype-uca.cc + private static final long[] EXPECTED = { + 2850958330L, 6438609083L, 4142978683L, 3962106001L, 4754908225L, 5292309576L, 3422926846L, 4836417532L, + 7544933508L, 5924603476L, 8693292222L, 8606483789L, 7840250331L, 7411888467L, 9449887972L, 6575618616L, + 5142717414L, 5602762372L, 5887290059L, 5315354049L, 5384595354L, 5424106761L, 6052066055L, 7120159154L, + 6531273761L, 6186607758L, 8644210443L, 4745425151L, 7765354746L, 4998623396L, 5143281183L, 5774307523L, + 3684728077L, 5140343256L, 185921657L, 277021021L, 6703616799L, 223638144L, 256228467L, 329944316L, 362624128L, + 268753847L, 333685134L, 4504080859L, 5093414940L, 7577618673L, 6886479384L, 4833400542L, 4865295452L, + 6038012976L, 12504830666L, 38526237913L, 7440644749L, 6127810278L, 5202307877L, 4449919195L, 5794686586L, + 4286184051L, 5167630513L, 5657673462L, 5098796944L, 6623516320L, 5643421378L, 4534560528L, 3573241380L, + 4649002624L, 4452096132L, 3714648305L, 4185047189L, 4381575286L, 4555778082L, 4120991231L, 4322414597L, + 5076899357L, 3656649886L, 4027894660L, 4386431428L, 3225349248L, 2751434249L, 2747568614L, 2716333235L, + 2653434087L, 2537913840L, 2660156912L, 2708001228L, 2867391751L, 2723984228L, 2576110507L, 2764159060L, + 2725833126L, 2809616128L, 2818154971L, 2712438745L, 2844498050L, 2679085225L, 2712729825L, 2683901777L, + 2687698660L, 2663785864L, 2773155922L, 2601165041L, 2807280304L, 2883868306L, 2676286966L, 2846263063L, + 2751354127L, 2791329365L, 2674320460L, 2805113447L, 2821751980L, 2867968878L, 2771775566L, 3008392034L, + 2931483391L, 2679080722L, 2676457378L, 3053708758L, 2720952646L, 2595459008L, 2830000523L, 2675166368L, + 2976283875L, 2816230291L, 2633156324L, 2800797815L, 2794001508L, 2960900284L, 2706883523L, 2717846026L, + 2743921021L, 2684914632L, 2580661587L, 2836922176L, 2712123269L, 2742628183L, 2833829481L, 2761348638L, + 2606526498L, 2927220325L, 2929913063L, 2683052854L, 2750863076L, 2625907995L, 2726695528L, 2749506890L, + 2901420499L, 2815975089L, 2763389060L, 2675232092L, 2564200789L, 2756276392L, 2657325710L, 2711633713L, + 2792217765L, 2711621616L, 2751001209L, 2694691605L, 2835687899L, 2713479860L, 7895270701L, 5644878976L, + 5670077568L, 5695276160L, 5720474752L, 5042726935L, 5483745792L, 6919910031L, 9302525107L, 5836686037L, + 5232848933L, 7338919240L, 6666111615L, 35519461860L, 2523470832L, 7923333789L, 9756699241L, 18869877754L, + 36844820198L, 4787428177L, 6334314384L, 7602896668L, 4428287469L, 10846778311L, 8396402581L, 6139219533L, + 12749179522L, 5871174144L, 13208861065L, 8345070108L, 7330226213L, 8110776538L, 10119546899L, 8665085360L, + 15049098399L, 6392608856L, 5571365840L, 8781032254L, 13314605008L, 8626326549L, 12222042758L, 9408899506L, + 14920580553L, 13045969824L, 14944145364L, 9402369929L, 5946277760L, 5971476352L, 5996661949L, 11366727443L, + 4635392040L, 15632962662L, 6056324736L, 6081523328L, 6106721920L, 6131920512L, 17563394424L, 6164403072L, + 6189601664L, 17383948076L, 5518098560L, 5543297152L, 14077376767L, 14790280095L, 15045219269L, 19445153287L, + 12254672168L, 1399051888L, 2767124440L, 16920876941L, 14153806312L, 5673713691L, 5578571343L, 4922238549L, + 3873035522L, 630654464L, 655853056L, 9474849827L, 20750621224L, 8545882711L, 17791921610L, 13743625811L, + 3443964967L, 16226860782L, 20370315848L, 489896704L, 515095296L, 540293888L, 3257723690L, 6364173256L, + 11638603576L, 17735218398L, 12639852141L, 12617006905L, 11604346731L, 11956486914L, 11463991533L, 11435708109L, + 10716764681L, 10791252812L, 10859452686L, 11580487095L, 11661578607L, 11508429290L, 10917539039L, 11272789093L, + 11893715129L, 11820226804L, 12305472445L, 11173138829L, 12057958298L, 12979179437L, 13035544720L, 12619728811L, + 12911970143L, 12311418581L, 13223198066L, 13054276927L, 13269606689L, 12388811946L, 12907724063L, 12279235877L, + 11242958387L, 11785033760L, 11815861970L, 10880805481L, 11876582549L, 12771412606L, 12615901967L, 12084267040L, + 13299904632L, 12937546063L, 13923581462L, 13450748098L, 12776144407L, 14283123283L, 14387051097L, 14877487915L, + 13252733986L, 12798252978L, 13521413144L, 13951696332L, 14866559279L, 14839088349L, 15300837849L, 14320776912L, + 13401403710L, 13970081549L, 12406848749L, 12372597137L, 12410463640L, 12824997451L, 14119541048L, 16181126451L, + 14980825147L, 16007777060L, 15377790859L, 15441743427L, 17177525339L, 16610869801L, 17096907136L, 13654257426L, + 12032234983L, 11959828573L, 12772859030L, 16984956156L, 16874893454L, 14149878683L, 14789045540L, 13378080515L, + 13612011711L, 13464923401L, 14352036602L, 12902285030L, 13658848992L, 12557246376L, 14637133580L, 14662307817L, + 16929440447L, 15258363892L, 15037122644L, 14391584751L, 15947640819L, 14331763365L, 12903948775L, 14710162777L, + 15417898480L, 15037783743L, 16519874358L, 16672197058L, 14923916613L, 14483253493L, 14300787886L, 14907515540L, + 15861389508L, 14973001630L, 15735918779L, 14765178541L, 13923222760L, 16782039763L, 15635399966L, 17942960935L, + 16630406159L, 15551654459L, 16302328116L, 16190894300L, 15117869931L, 14492317522L, 15364702939L, 15731028179L, + 16677138336L, 17353662325L, 14569516089L, 16057670340L, 16820030483L, 14480307055L, 13706676657L, 17239227793L, + 15947193357L, 12589017499L, 9732840400L, 10767268037L, 9726889838L, 9589800171L, 10368093462L, 12140883858L, + 10415440192L, 10012650390L, 10004250344L, 11895907413L, 12256526096L, 13405457598L, 9627380845L, 9593410223L, + 10191882391L, 11939727891L, 11304162933L, 10051534275L, 8004740712L, 9141462091L, 8850853490L, 8944576934L, + 9764023359L, 10341123744L, 10431455862L, 10730297597L, 9923081985L, 10252464874L, 10356422208L, 10766719660L, + 12589182949L, 10963503545L, 10629838563L, 11196598854L, 11414369609L, 9303651641L, 10064028142L, 10970909135L, + 13202490911L, 17375006936L, 17345019688L, 17511342569L, 17833716089L, 17987174907L, 17867532799L, 18084475088L, + 18145058050L, 17891138137L, 17932673375L, 18048355447L, 17552239085L, 18678414182L, 19560245760L, 19715679026L, + 19953146560L, 20089646462L, 20958795920L, 4297359532L, 5748595746L, 22943669644L, 10346381612L, 1186709592 + }; + + @Test + public void test() { + int i = 0; + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[0])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[1])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[2])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[3])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[4])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[5])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[6])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[7])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[8])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[9])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[10])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[11])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[12])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[13])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[14])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[15])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[16])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[17])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[18])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[19])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[20])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[21])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[22])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[23])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[24])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[25])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[26])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[27])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[28])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[29])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[30])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[31])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[32])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[33])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[34])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[35])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[36])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[37])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[38])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[39])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[40])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[41])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[42])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[43])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[44])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[45])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[46])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[47])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[48])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[49])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[50])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[51])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[52])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[53])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[54])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[55])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[56])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[57])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[58])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[59])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[60])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[61])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[62])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[63])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[64])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[65])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[66])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[67])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[68])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[69])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[70])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[71])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[72])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[73])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[74])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[75])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[76])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[77])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[78])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[79])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[80])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[81])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[82])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[83])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[84])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[85])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[86])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[87])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[88])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[89])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[90])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[91])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[92])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[93])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[94])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[95])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[96])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[97])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[98])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[99])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[100])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[101])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[102])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[103])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[104])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[105])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[106])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[107])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[108])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[109])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[110])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[111])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[112])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[113])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[114])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[115])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[116])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[117])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[118])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[119])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[120])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[121])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[122])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[123])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[124])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[125])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[126])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[127])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[128])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[129])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[130])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[131])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[132])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[133])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[134])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[135])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[136])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[137])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[138])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[139])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[140])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[141])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[142])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[143])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[144])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[145])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[146])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[147])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[148])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[149])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[150])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[151])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[152])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[153])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[154])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[155])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[156])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[157])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[158])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[159])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[160])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[161])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[162])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[163])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[164])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[165])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[166])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[167])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[168])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[169])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[170])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[171])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[215])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[249])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[250])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[251])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[252])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[253])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[254])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[255])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[256])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[257])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[258])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[259])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[260])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[261])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[262])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[263])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[264])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[265])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[266])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[267])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[268])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[270])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[272])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[273])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[274])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[275])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[276])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[277])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[278])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[279])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[280])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[282])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[284])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[288])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[289])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[290])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[291])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[292])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[293])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[304])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[305])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[306])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[307])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[308])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[324])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[325])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[326])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[360])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[361])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[362])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[363])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[367])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[432])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[444])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[464])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[465])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[466])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[467])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[468])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[469])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[470])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[471])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[472])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[473])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[474])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[480])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[488])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[489])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[494])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[496])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[497])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[498])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[499])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[500])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[501])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[502])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[503])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[504])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[505])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[512])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[513])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[514])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[515])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[516])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[517])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[518])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[519])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[520])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[521])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[522])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[523])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[524])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[525])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[526])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[527])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[528])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[529])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[530])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[531])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[532])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[533])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[534])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[535])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[536])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[537])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[538])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[539])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[540])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[541])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[542])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[543])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[544])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[545])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[546])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[547])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[548])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[549])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[550])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[551])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[552])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[553])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[554])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[555])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[556])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[557])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[558])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[559])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[560])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[561])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[562])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[563])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[564])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[565])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[566])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[567])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[568])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[569])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[570])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[571])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[572])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[573])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[574])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[575])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[576])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[577])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[578])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[579])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[580])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[581])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[582])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[583])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[584])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[585])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[586])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[587])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[588])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[589])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[590])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[591])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[592])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[593])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[594])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[595])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[596])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[597])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[598])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[599])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[600])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[601])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[602])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[603])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[604])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[605])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[606])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[607])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[608])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[609])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[610])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[611])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[612])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[613])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[614])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[615])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[616])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[617])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[618])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[619])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[620])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[621])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[622])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[623])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[624])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[625])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[626])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[627])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[628])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[629])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[630])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[631])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[632])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[633])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[634])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[635])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[636])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[637])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[638])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[639])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[640])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[641])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[642])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[643])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[644])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[645])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[646])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[647])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[648])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[649])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[650])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[651])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[652])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[653])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[654])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[655])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[656])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[657])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[658])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[659])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[660])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[661])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[662])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[663])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[664])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[665])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[666])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[667])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[668])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[669])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[670])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[671])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[672])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[673])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[674])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[675])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[676])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[677])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[678])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[679])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[680])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[682])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[686])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[687])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[688])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[689])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[690])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[691])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[692])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[693])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[694])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[696])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[708])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[710])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[713])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[715])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[718])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[760])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[761])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[762])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[3584])); + Assert.assertEquals(EXPECTED[i++], checksum(zh_uca900_weight[3585])); + } + + public static long checksum(int[] array) { + long sum = 0; + for (int i = 0; i < array.length; i++) { + sum += array[i] * (i + 1); + } + return sum; + } + +} diff --git a/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/config/table/collation/Utf8mb4Zh0900AsCsCompareTest.java b/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/config/table/collation/Utf8mb4Zh0900AsCsCompareTest.java new file mode 100644 index 000000000..feedfb965 --- /dev/null +++ b/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/config/table/collation/Utf8mb4Zh0900AsCsCompareTest.java @@ -0,0 +1,208 @@ +package com.alibaba.polardbx.optimizer.config.table.collation; + +import com.alibaba.polardbx.common.charset.CollationName; +import com.alibaba.polardbx.optimizer.config.table.charset.CharsetFactory; +import com.google.common.base.Preconditions; +import io.airlift.slice.Slice; +import io.airlift.slice.Slices; +import it.unimi.dsi.fastutil.ints.AbstractIntComparator; +import it.unimi.dsi.fastutil.ints.IntArrays; +import org.junit.Assert; +import org.junit.Test; + +import java.util.Arrays; +import java.util.Comparator; +import java.util.function.Function; + +// Test Case from MySQL 8.0 resource code: mysql-test/t/ctype_unicode900_as_cs.test +// Test the characters in different groups are reordered correctly. For example, +// U+33E8 is in the core group, and U+2F17 is in the Han group, and 'A' is in +// the latin group. According to the reorder rule defined by the CLDR for the +// Chinese collation, we should get U+33E8 < U+2F17 < 'A'. This also tests how +// different glyphs of one Han character sort according to the weight shift rule +// defined by CLDR. For example, U+3197 (IDEOGRAPHIC ANNOTATION MIDDLE MARK) and +// U+4E2D (CJK UNIFIED IDEOGRAPH-4E2D) are different glyphs of a Chinese +// character which means 'middle' and the CLDR defines "U+412D <<< U+3197". +public class Utf8mb4Zh0900AsCsCompareTest { + @Test + public void test1() { + String[] testStrList = { + "⺇", "⺍", "⼗", "〸", "Ⓐ", "中", "㆗", "A", "a", "Z", "z", "も", "モ", "⸱", "㏨", + "節"}; + + String[] expectedOrderList = { + "⸱", "㏨", "⺇", "節", "⼗", "〸", "⺍", "中", "㆗", "a", "A", "Ⓐ", "z", "Z", "も", + "モ"}; + + CollationHandler collationHandler = + CharsetFactory.INSTANCE.createCollationHandler(CollationName.UTF8MB4_ZH_0900_AS_CS); + + int[] indexes = new int[testStrList.length]; + for (int i = 0; i < indexes.length; i++) { + indexes[i] = i; + } + + IntArrays.quickSort(indexes, new AbstractIntComparator() { + @Override + public int compare(int i, int i1) { + + Slice left = Slices.utf8Slice(testStrList[i]); + Slice right = Slices.utf8Slice(testStrList[i1]); + + return collationHandler.compareSp(left, right); + } + }); + + try { + for (int i = 0; i < indexes.length; i++) { + Assert.assertTrue(expectedOrderList[i].equals(testStrList[indexes[i]])); + } + } catch (AssertionError e) { + System.out.println("expected: "); + System.out.println(Arrays.toString(expectedOrderList)); + + System.out.println("actual:"); + StringBuilder builder = new StringBuilder(); + Arrays.stream(indexes).forEach(i -> builder.append(testStrList[i]).append(", ")); + System.out.println(builder); + + throw e; + } + + } + + @Test + public void test2() { + doTest( + new Slice[] { + Slices.wrappedBuffer(hexToArray("E2BA87")), + Slices.wrappedBuffer(hexToArray("E2BA8D")), + Slices.wrappedBuffer(hexToArray("E2BC97")), + Slices.wrappedBuffer(hexToArray("E380B8")), + Slices.wrappedBuffer(hexToArray("E292B6")), + Slices.wrappedBuffer(hexToArray("F09F8590")), + Slices.wrappedBuffer(hexToArray("E4B8AD")), + Slices.wrappedBuffer(hexToArray("E38697")), + Slices.wrappedBuffer(hexToArray("F09F88AD")), + Slices.wrappedBuffer(hexToArray("41")), + Slices.wrappedBuffer(hexToArray("61")), + Slices.wrappedBuffer(hexToArray("5A")), + Slices.wrappedBuffer(hexToArray("7A")), + Slices.wrappedBuffer(hexToArray("E38282")), + Slices.wrappedBuffer(hexToArray("E383A2")), + Slices.wrappedBuffer(hexToArray("E2B8B1")), + Slices.wrappedBuffer(hexToArray("E38FA8")), + Slices.wrappedBuffer(hexToArray("F09F88A9")), + Slices.wrappedBuffer(hexToArray("F09F8981")), + Slices.wrappedBuffer(hexToArray("EFA996")) + }, + new Slice[] { + Slices.wrappedBuffer(hexToArray("E2B8B1")), + Slices.wrappedBuffer(hexToArray("F09F8981")), + Slices.wrappedBuffer(hexToArray("E38FA8")), + Slices.wrappedBuffer(hexToArray("E2BA87")), + Slices.wrappedBuffer(hexToArray("EFA996")), + Slices.wrappedBuffer(hexToArray("E2BC97")), + Slices.wrappedBuffer(hexToArray("E380B8")), + Slices.wrappedBuffer(hexToArray("E2BA8D")), + Slices.wrappedBuffer(hexToArray("F09F88A9")), + Slices.wrappedBuffer(hexToArray("E4B8AD")), + Slices.wrappedBuffer(hexToArray("E38697")), + Slices.wrappedBuffer(hexToArray("F09F88AD")), + Slices.wrappedBuffer(hexToArray("61")), + Slices.wrappedBuffer(hexToArray("41")), + Slices.wrappedBuffer(hexToArray("E292B6")), + Slices.wrappedBuffer(hexToArray("F09F8590")), + Slices.wrappedBuffer(hexToArray("7A")), + Slices.wrappedBuffer(hexToArray("5A")), + Slices.wrappedBuffer(hexToArray("E38282")), + Slices.wrappedBuffer(hexToArray("E383A2")) + }, + t -> t, + Slice::compareTo, + Slice::toStringUtf8 + ); + } + + public static void doTest(T[] testStrList, T[] expectedOrderList, + Function toSliceFunc, + Comparator comparator, + Function toStringFunc + ) { + Preconditions.checkArgument(expectedOrderList.length == testStrList.length); + CollationHandler collationHandler = + CharsetFactory.INSTANCE.createCollationHandler(CollationName.UTF8MB4_ZH_0900_AS_CS); + + int[] indexes = new int[testStrList.length]; + for (int i = 0; i < indexes.length; i++) { + indexes[i] = i; + } + + IntArrays.quickSort(indexes, new AbstractIntComparator() { + @Override + public int compare(int i, int i1) { + + Slice left = toSliceFunc.apply(testStrList[i]); + Slice right = toSliceFunc.apply(testStrList[i1]); + + int res = collationHandler.compareSp(left, right); + if (res == 0) { + return left.compareTo(right); + } + return res; + } + }); + + try { + for (int i = 0; i < indexes.length; i++) { + Assert.assertTrue( + comparator.compare(expectedOrderList[i], testStrList[indexes[i]]) == 0 + ); + } + } catch (AssertionError e) { + System.out.println("expected: "); + System.out.println(toString(expectedOrderList, toStringFunc)); + + System.out.println("actual:"); + StringBuilder builder = new StringBuilder(); + builder.append('['); + Arrays.stream(indexes).forEach(i -> builder.append(toStringFunc.apply(testStrList[i])).append(", ")); + builder.deleteCharAt(builder.length() - 1); + builder.append(']'); + System.out.println(builder); + + throw e; + } + } + + public static byte[] hexToArray(String s) { + int len = s.length(); + byte[] data = new byte[len / 2]; + for (int i = 0; i < len; i += 2) { + data[i / 2] = (byte) ((Character.digit(s.charAt(i), 16) << 4) + + Character.digit(s.charAt(i + 1), 16)); + } + return data; + } + + public static String toString(T[] a, Function toStringFunc) { + if (a == null) { + return "null"; + } + + int iMax = a.length - 1; + if (iMax == -1) { + return "[]"; + } + + StringBuilder b = new StringBuilder(); + b.append('['); + for (int i = 0; ; i++) { + b.append(toStringFunc.apply(a[i])); + if (i == iMax) { + return b.append(']').toString(); + } + b.append(", "); + } + } +} diff --git a/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/config/table/collation/Utf8mb4Zh0900AsCsHashTest.java b/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/config/table/collation/Utf8mb4Zh0900AsCsHashTest.java new file mode 100644 index 000000000..98a86bf85 --- /dev/null +++ b/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/config/table/collation/Utf8mb4Zh0900AsCsHashTest.java @@ -0,0 +1,40 @@ +package com.alibaba.polardbx.optimizer.config.table.collation; + +import com.alibaba.polardbx.common.charset.CollationName; +import com.alibaba.polardbx.optimizer.config.table.charset.CharsetFactory; +import org.junit.Assert; +import org.junit.Test; + +import java.util.Arrays; + +// From MySQL test unittest/gunit/strings_strnxfrm-t.cc:2383 +// Golden hashes for a test string. These may be stored on disk, so we need to +// make sure that they never change. +public class Utf8mb4Zh0900AsCsHashTest { + @Test + public void test() { + long[] expectedHashResult = new long[] {0x23c370d9ac589d1fL, 0x00000001L}; + + System.out.println(Arrays.toString(expectedHashResult)); + + String test_str = + "This is a fairly long string. It does not contain any special " + + "characters since they are probably not universally supported across all " + + "character sets, but should at least be enough to make the nr1 value go " + + "up past the 32-bit mark."; + + CollationHandler collationHandler = + CharsetFactory.INSTANCE.createCollationHandler(CollationName.UTF8MB4_ZH_0900_AS_CS); + + long nr1 = 4; + long nr2 = 1; + long[] hashResult = new long[] {nr1, nr2}; + + byte[] testBytes = test_str.getBytes(); + collationHandler.hashcode(testBytes, testBytes.length, hashResult); + + System.out.println(Arrays.toString(hashResult)); + + Assert.assertArrayEquals(expectedHashResult, hashResult); + } +} diff --git a/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/config/table/collation/Utf8mb4Zh0900AsCsSortKeyTest.java b/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/config/table/collation/Utf8mb4Zh0900AsCsSortKeyTest.java new file mode 100644 index 000000000..27616ee79 --- /dev/null +++ b/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/config/table/collation/Utf8mb4Zh0900AsCsSortKeyTest.java @@ -0,0 +1,302 @@ +package com.alibaba.polardbx.optimizer.config.table.collation; + +import com.alibaba.polardbx.common.charset.CollationName; +import com.alibaba.polardbx.common.charset.SortKey; +import com.alibaba.polardbx.optimizer.config.table.charset.CharsetFactory; +import com.alibaba.polardbx.optimizer.config.table.charset.CharsetHandler; +import io.airlift.slice.Slices; +import org.junit.Assert; +import org.junit.Test; + +// MySQL8.0 unit test: unittest/gunit/strings_strnxfrm-t.cc:1796 +public class Utf8mb4Zh0900AsCsSortKeyTest { + + @Test + public void test0() { + CollationHandler collationHandler = + CharsetFactory.INSTANCE.createCollationHandler(CollationName.UTF8MB4_ZH_0900_AS_CS); + + CharsetHandler charsetHandler = collationHandler.getCharsetHandler(); + + byte[] src = new byte[] { + /* Non-Han characters that have implicit weight. */ + (byte) 0xF0, (byte) 0x97, (byte) 0x86, (byte) 0xA0, (byte) 0xF0, (byte) 0xAC, (byte) 0xBA, (byte) 0xA2, + (byte) 0xF0, (byte) 0xAE, (byte) 0xAF, (byte) 0xA0, (byte) 0xF0, (byte) 0xB3, (byte) 0x8C, (byte) 0xB3 + }; + + int maxLen = 72; + SortKey sortKey = collationHandler.getSortKey( + Slices.wrappedBuffer(src), maxLen + ); + byte[] result = sortKey.keys; + + print(result, maxLen); + + } + + @Test + public void test1() { + CollationHandler collationHandler = + CharsetFactory.INSTANCE.createCollationHandler(CollationName.UTF8MB4_ZH_0900_AS_CS); + + CharsetHandler charsetHandler = collationHandler.getCharsetHandler(); + +// String src = +// "\u00E9\u963F\u00E5\u0092\u008F" + // The first and last Han character in zh.xml +// "\uD869\uDEA1" + // The last Han character (encoded as a surrogate pair) +// "\u0101\u0061\u0062\u012B\u0075\u0055\u0146\u005A" + // Some latin characters +// // are used as Bopomofo. +// "\uD805\uDD86" + // The last character that has explicit weight +// // in the DUCET. +// /* Non-Han characters that have implicit weight. */ +// "\uD806\uDDA0\uD82C\uDCA2\uD82E\uDDA0\uD82F\u8CB3"; +// +// System.out.println(src); + + byte[] src = new byte[] { + (byte) 0xE9, (byte) 0x98, (byte) 0xBF, (byte) 0xE5, (byte) 0x92, (byte) 0x97, + // The first and last Han character in zh.xml + (byte) 0xF0, (byte) 0xAC, (byte) 0xBA, (byte) 0xA1, // The last Han character + (byte) 0xC4, (byte) 0x81, (byte) 0x61, (byte) 0x62, (byte) 0xC5, (byte) 0xAB, (byte) 0x75, (byte) 0x55, + (byte) 0xC7, (byte) 0x96, (byte) 0x5A, // Some latin characters + // are used as Bopomofo. + (byte) 0xF0, (byte) 0x94, (byte) 0x99, (byte) 0x86, // The last character that has explicit weight + // in the DUCET. + + /* Non-Han characters that have implicit weight. */ + (byte) 0xF0, (byte) 0x97, (byte) 0x86, (byte) 0xA0, (byte) 0xF0, (byte) 0xAC, (byte) 0xBA, (byte) 0xA2, + (byte) 0xF0, (byte) 0xAE, (byte) 0xAF, (byte) 0xA0, (byte) 0xF0, (byte) 0xB3, (byte) 0x8C, (byte) 0xB3 + }; + + System.out.println(new String(src)); + + byte[] full_answer_with_pad = new byte[] { + // level 1 + (byte) 0x1C, (byte) 0x47, (byte) 0xBD, (byte) 0xBE, + // The first and last Han character in zh.xml + (byte) 0xBD, (byte) 0xC3, (byte) 0xCE, (byte) 0xA1, // The last Han character + /* Latin characters. Some are used as Bopomofo. */ + (byte) 0xBD, (byte) 0xC4, (byte) 0xBD, (byte) 0xC4, (byte) 0xBD, (byte) 0xDD, (byte) 0xC0, (byte) 0x32, + (byte) 0xC0, (byte) 0x32, (byte) 0xC0, (byte) 0x32, + (byte) 0xC0, (byte) 0x32, (byte) 0xC0, (byte) 0x9E, + + (byte) 0xF6, (byte) 0x20, // The last character that has explicit weight in the DUCET. + /* Non-Han characters that have implicit weight. */ + (byte) 0xF6, (byte) 0x21, (byte) 0x81, (byte) 0xA0, (byte) 0xF6, (byte) 0x27, (byte) 0xCE, (byte) 0xA2, + (byte) 0xF6, (byte) 0x27, (byte) 0xEB, (byte) 0xE0, + (byte) 0xF6, (byte) 0x28, (byte) 0xB3, (byte) 0x33, + + // level separator. + 0x00, 0x00, + + // level 2 + 0x00, 0x20, 0x00, 0x20, // The first and last Han character in zh.xml + 0x00, 0x20, // The last Han character + + /* Latin characters. Some are used as Bopomofo. */ + 0x00, 0x1F, 0x01, 0x16, 0x00, 0x20, 0x00, 0x20, 0x00, 0x1F, 0x01, 0x16, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x01, 0x16, 0x00, 0x20, + + 0x00, 0x20, // The last character that has explicit weight in the DUCET. + /* Non-Han characters that have implicit weight. */ + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + // level separator. + 0x00, 0x00, + + // level 3 + 0x00, 0x02, 0x00, 0x02, // The first and last Han character in zh.xml + 0x00, 0x02, // The last Han character + /* Latin characters. Some are used as Bopomofo. */ + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x08, + 0x00, 0x08, 0x00, 0x08, + + 0x00, 0x02, // The last character that has explicit weight in the DUCET. + /* Non-Han characters that have implicit weight. */ + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02}; + + int full_answer_with_pad_size = full_answer_with_pad.length; + + for (int maxLen = 0; maxLen < full_answer_with_pad_size; maxLen += 2) { + SortKey sortKey = collationHandler.getSortKey( + Slices.wrappedBuffer(src), maxLen + ); + + byte[] result = sortKey.keys; + + try { + Assert.assertTrue(equals(full_answer_with_pad, result, maxLen)); + + System.out.println("success: "); + print(result, maxLen); + System.out.println(); + + } catch (AssertionError e) { + System.out.println("max len:"); + System.out.println(maxLen); + System.out.println("source data:"); + print(src, Math.min(maxLen, src.length)); + System.out.println("expected: "); + print(full_answer_with_pad, maxLen); + System.out.println("but was: "); + print(result, maxLen); + // throw e; + } + + } + } + + @Test + public void test2() { + CollationHandler collationHandler = + CharsetFactory.INSTANCE.createCollationHandler(CollationName.UTF8MB4_ZH_0900_AS_CS); + + CharsetHandler charsetHandler = collationHandler.getCharsetHandler(); + + byte[] content = ("春江潮水连海平,海上明月共潮生。" + + "滟滟随波千万里,何处春江无月明!" + + "江流宛转绕芳甸,月照花林皆似霰;" + + "空里流霜不觉飞,汀上白沙看不见。" + + "江天一色无纤尘,皎皎空中孤月轮。" + + "江畔何人初见月?江月何年初照人?" + + "人生代代无穷已,江月年年只相似。" + + "不知江月待何人,但见长江送流水。" + + "白云一片去悠悠,青枫浦上不胜愁。" + + "谁家今夜扁舟子?何处相思明月楼?").getBytes(); + int len = content.length; + + int[] expected = new int[] { + 0x2C, 0xD0, 0x4F, 0xF1, 0x28, 0x08, 0x87, 0xE8, 0x60, 0x4C, 0x42, 0xEF, + 0x75, 0x93, 0x02, 0x22, 0x42, 0xEF, 0x83, 0x8A, 0x6C, 0x4F, 0xAF, 0x96, + 0x3F, 0x58, 0x28, 0x08, 0x84, 0xCF, 0x02, 0x8A, 0xA3, 0xA4, 0xA3, 0xA4, + 0x8A, 0x5F, 0x23, 0x71, 0x78, 0xA8, 0x93, 0x1A, 0x5E, 0xD9, 0x02, 0x22, + 0x44, 0xAC, 0x2B, 0xD5, 0x2C, 0xD0, 0x4F, 0xF1, 0x96, 0x31, 0xAF, 0x96, + 0x6C, 0x4F, 0x02, 0x60, 0x4F, 0xF1, 0x63, 0x7B, 0x92, 0xDD, 0xBA, 0x2E, + 0x7F, 0x07, 0x39, 0x15, 0x32, 0xB2, 0x02, 0x22, 0xAF, 0x96, 0xB4, 0x41, + 0x47, 0xD7, 0x62, 0x27, 0x51, 0x4C, 0x85, 0xE9, 0x81, 0x86, 0x02, 0x34, + 0x59, 0x09, 0x5E, 0xD9, 0x63, 0x7B, 0x87, 0xBA, 0x24, 0x78, 0x56, 0x5A, + 0x39, 0x48, 0x02, 0x22, 0x8F, 0x74, 0x83, 0x8A, 0x1E, 0x4D, 0x82, 0x46, + 0x57, 0xD9, 0x24, 0x78, 0x4F, 0x79, 0x02, 0x8A, 0x4F, 0xF1, 0x8E, 0x8A, + 0xA6, 0x3E, 0x81, 0xEE, 0x96, 0x31, 0x99, 0x9E, 0x28, 0x97, 0x02, 0x22, + 0x50, 0xC2, 0x50, 0xC2, 0x59, 0x09, 0xB8, 0x20, 0x3F, 0xCC, 0xAF, 0x96, + 0x66, 0xC9, 0x02, 0x8A, 0x4F, 0xF1, 0x72, 0xB6, 0x44, 0xAC, 0x7F, 0x11, + 0x2B, 0x7B, 0x4F, 0x79, 0xAF, 0x96, 0x02, 0x66, 0x4F, 0xF1, 0xAF, 0x96, + 0x44, 0xAC, 0x6F, 0xD5, 0x2B, 0x7B, 0xB4, 0x41, 0x7F, 0x11, 0x02, 0x66, + 0x7F, 0x11, 0x84, 0xCF, 0x2F, 0xE2, 0x2F, 0xE2, 0x96, 0x31, 0x7B, 0xE1, + 0xA7, 0x41, 0x02, 0x22, 0x4F, 0xF1, 0xAF, 0x96, 0x6F, 0xD5, 0x6F, 0xD5, + 0xB6, 0xC3, 0x9B, 0x15, 0x85, 0xE9, 0x02, 0x8A, 0x24, 0x78, 0xB6, 0x2E, + 0x4F, 0xF1, 0xAF, 0x96, 0x2F, 0xF4, 0x44, 0xAC, 0x7F, 0x11, 0x02, 0x22, + 0x30, 0x86, 0x4F, 0x79, 0xB3, 0xDD, 0x4F, 0xF1, 0x89, 0x2A, 0x63, 0x7B, + 0x87, 0xE8, 0x02, 0x8A, 0x1E, 0x4D, 0xB0, 0x1B, 0xA6, 0x3E, 0x75, 0x00, + 0x7D, 0x93, 0xAB, 0xAF, 0xAB, 0xAF, 0x02, 0x22, 0x7B, 0x7D, 0x3A, 0x63, + 0x76, 0xA2, 0x83, 0x8A, 0x24, 0x78, 0x85, 0x16, 0x2B, 0x2D, 0x02, 0x8A, + 0x84, 0x30, 0x4D, 0xF3, 0x52, 0x63, 0xA5, 0xC7, 0x21, 0xE0, 0xB8, 0x87, + 0xBC, 0x16, 0x02, 0x66, 0x44, 0xAC, 0x2B, 0xD5, 0x9B, 0x15, 0x88, 0x52, + 0x6C, 0x4F, 0xAF, 0x96, 0x64, 0xA1, 0x02, 0x66, 0x00, 0x00, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x03, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x03, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x03, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x03, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x03, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x03, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x03, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x03, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x03, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x03, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x03, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x03, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x03, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x03}; + + SortKey sortKey = collationHandler.getSortKey(Slices.wrappedBuffer(content), expected.length); + byte[] results = sortKey.keys; + + try { + Assert.assertTrue(equals(results, expected, results.length)); + + System.out.println("success: "); + print(results, results.length); + System.out.println(); + + } catch (AssertionError e) { + System.out.println("fail: "); + print(results, results.length); + } + } + + private static boolean equals(byte[] bytes1, byte[] bytes2, int len) { + for (int i = 0; i < len; i++) { + if (bytes1[i] != bytes2[i]) { + return false; + } + } + return true; + } + + private static boolean equals(byte[] bytes1, int[] intArray, int len) { + for (int i = 0; i < len; i++) { + if (Byte.toUnsignedInt(bytes1[i]) != intArray[i]) { + return false; + } + } + return true; + } + + private static void print(byte[] result, int len) { + final int lineLength = 12; + + for (int i = 0; i < len; i++) { + String hexString = String.format("0x%02X", result[i]); + + System.out.print(hexString); + + if (i < len - 1) { + System.out.print(", "); + } + + if ((i + 1) % lineLength == 0 || i == len - 1) { + System.out.println(); + } + } + } + +} diff --git a/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/config/table/collation/WildCardTest.java b/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/config/table/collation/WildCardTest.java index 8ef05f1a2..4d85f4ec7 100644 --- a/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/config/table/collation/WildCardTest.java +++ b/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/config/table/collation/WildCardTest.java @@ -208,6 +208,74 @@ public void testLatin1Bin() { } } + @Test + public void testLatin1BinContains() { + CollationHandler collationHandler = CollationHandlers.COLLATION_HANDLER_LATIN1_BIN; + for (String matched : MATCHED) { + if (isContains(matched)) { + String pattern = matched.substring(1, matched.length() - 1); + int[] lps = computeLPSArray(Slices.utf8Slice(pattern).getBytes()); + Assert.assertTrue(String.format("select \'%s\' like \'%s\';", CHECK_STR, matched), + collationHandler.containsCompare(CHECK_STR, pattern.getBytes(), lps)); + } else { + Assert.assertTrue(String.format("select \'%s\' like \'%s\';", CHECK_STR, matched), + collationHandler.wildCompare(CHECK_STR, Slices.utf8Slice(matched))); + } + } + + for (String unmatched : UNMATCHED) { + if (isContains(unmatched)) { + String pattern = unmatched.substring(1, unmatched.length() - 1); + int[] lps = computeLPSArray(Slices.utf8Slice(pattern).getBytes()); + Assert.assertFalse(String.format("select \'%s\' like \'%s\';", CHECK_STR, unmatched), + collationHandler.containsCompare(CHECK_STR, pattern.getBytes(), lps)); + } else { + Assert.assertFalse(String.format("select \'%s\' like \'%s\';", CHECK_STR, unmatched), + collationHandler.wildCompare(CHECK_STR, Slices.utf8Slice(unmatched))); + } + } + } + + public static int[] computeLPSArray(byte[] pattern) { + int[] lps = new int[pattern.length]; + int length = 0; + lps[0] = 0; + int i = 1; + + while (i < pattern.length) { + if (pattern[i] == pattern[length]) { + length++; + lps[i] = length; + i++; + } else { + if (length != 0) { + length = lps[length - 1]; + } else { + lps[i] = length; + i++; + } + } + } + return lps; + } + + private boolean isContains(String pattern) { + if (pattern == null || pattern.length() < 2) { + return false; + } + byte[] bytes = pattern.getBytes(); + if (bytes[0] == CollationHandler.WILD_MANY && bytes[bytes.length - 1] == CollationHandler.WILD_MANY) { + for (int i = 1; i < bytes.length - 1; i++) { + if (bytes[i] == CollationHandler.WILD_MANY || bytes[i] == CollationHandler.WILD_ONE) { + // no % _ in the middle + return false; + } + } + return true; + } + return false; + } + /** * Gbk bin 没有实现wildcompare * 预期输出全为false diff --git a/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/config/table/statistic/StatisticManagerTest.java b/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/config/table/statistic/StatisticManagerTest.java index d92ece429..ea232e782 100644 --- a/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/config/table/statistic/StatisticManagerTest.java +++ b/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/config/table/statistic/StatisticManagerTest.java @@ -1,9 +1,21 @@ package com.alibaba.polardbx.optimizer.config.table.statistic; +import com.alibaba.polardbx.common.properties.ConnectionProperties; +import com.alibaba.polardbx.common.properties.DynamicConfig; +import com.alibaba.polardbx.config.ConfigDataMode; +import com.alibaba.polardbx.optimizer.config.table.statistic.inf.StatisticResultSource; +import com.alibaba.polardbx.optimizer.core.datatype.DataTypes; import com.clearspring.analytics.util.Lists; +import org.junit.Assert; import org.junit.Test; +import org.mockito.MockedStatic; +import org.mockito.Mockito; +import java.util.HashMap; import java.util.List; +import java.util.concurrent.ConcurrentHashMap; + +import static com.alibaba.polardbx.optimizer.config.table.statistic.StatisticUtils.buildSketchKey; /** * @author fangwu @@ -27,4 +39,110 @@ public void testHandleInFrequencyDegradation() { StatisticManager.handleInFrequencyDegradation(rowCount, ndv, null, null, null, rowList, true, -1L); assert statisticResult.getLongValue() == 1000L; } + + @Test + public void testNdvOutlierIllegalArg1() { + try (MockedStatic configDataMode = Mockito.mockStatic(ConfigDataMode.class)) { + configDataMode.when(() -> ConfigDataMode.isFastMock()).thenReturn(true); + // test illegal args + StatisticManager statisticManager = StatisticManager.getInstance(); + try { + statisticManager.getCardinality("schema", "table", "", false, true); + } catch (IllegalArgumentException e) { + return; + } + Assert.fail("Expected IllegalArgumentException was not thrown."); + } + } + + @Test + public void testNdvOutlierWithNullSource() { + String schema = "schema"; + String table = "table"; + String col = "col"; + try (MockedStatic configDataMode = Mockito.mockStatic(ConfigDataMode.class)) { + configDataMode.when(() -> ConfigDataMode.isFastMock()).thenReturn(true); + StatisticManager statisticManager = StatisticManager.getInstance(); + + StatisticResult statisticResult = statisticManager.getCardinality(schema, table, col, false, true); + System.out.println(statisticResult.getLongValue()); + System.out.println(statisticResult.getTrace().print()); + assert statisticResult.getLongValue() == -1L; + assert statisticResult.getSource() == StatisticResultSource.NULL; + } + } + + @Test + public void testNdvOutlier() { + String schema = "schema"; + String table = "table"; + String col = "col"; + try (MockedStatic configDataMode = Mockito.mockStatic(ConfigDataMode.class)) { + configDataMode.when(() -> ConfigDataMode.isFastMock()).thenReturn(true); + StatisticManager statisticManager = StatisticManager.getInstance(); + statisticManager.sds = MockStatisticDatasource.getInstance(); + // ndv is 0, rowcount is 0, then return 0 with hll source + statisticManager.getCardinalitySketch().put(buildSketchKey(schema, table, col), 0L); + StatisticResult statisticResult = statisticManager.getCardinality(schema, table, col, false, true); + System.out.println(statisticResult.getLongValue()); + System.out.println(statisticResult.getTrace().print()); + assert statisticResult.getLongValue() == 0L; + assert statisticResult.getSource() == StatisticResultSource.HLL_SKETCH; + + // ndv is 0, rowcount is not 0, topn&histogram were both null, then return 0 with hll source + statisticManager.getCardinalitySketch().put(buildSketchKey(schema, table, col), 0L); + statisticManager.getStatisticCache().get(schema).get(table).setRowCount(100000L); + statisticResult = statisticManager.getCardinality(schema, table, col, false, true); + System.out.println(statisticResult.getLongValue()); + System.out.println(statisticResult.getTrace().print()); + assert statisticResult.getLongValue() == 0L; + assert statisticResult.getSource() == StatisticResultSource.HLL_SKETCH; + + // ndv is 0, rowcount is not 0, topn&histogram weren't both null, then return -1 with NULL source + statisticManager.getCardinalitySketch().put(buildSketchKey(schema, table, col), 0L); + statisticManager.getStatisticCache().get(schema).get(table).setRowCount(100000L); + statisticManager.getStatisticCache().get(schema).get(table) + .setTopN(col, new TopN(DataTypes.StringType, 1.0)); + statisticResult = statisticManager.getCardinality(schema, table, col, false, true); + System.out.println(statisticResult.getLongValue()); + System.out.println(statisticResult.getTrace().print()); + assert statisticResult.getLongValue() == -1L; + assert statisticResult.getSource() == StatisticResultSource.NULL; + + // ndv is not 0, rowcount is not 0, topn&histogram weren't both null, then return ndv with HLL_SKETCH source + statisticManager.getCardinalitySketch().put(buildSketchKey(schema, table, col), 1L); + statisticManager.getStatisticCache().get(schema).get(table).setRowCount(100000L); + statisticManager.getStatisticCache().get(schema).get(table) + .setTopN(col, new TopN(DataTypes.StringType, 1.0)); + statisticResult = statisticManager.getCardinality(schema, table, col, false, true); + System.out.println(statisticResult.getLongValue()); + System.out.println(statisticResult.getTrace().print()); + assert statisticResult.getLongValue() == 1L; + assert statisticResult.getSource() == StatisticResultSource.HLL_SKETCH; + } + } + + @Test + public void testEnableHll() { + String schema = "schema"; + String table = "table"; + String col = "col"; + try (MockedStatic configDataMode = Mockito.mockStatic(ConfigDataMode.class)) { + configDataMode.when(() -> ConfigDataMode.isFastMock()).thenReturn(true); + StatisticManager statisticManager = StatisticManager.getInstance(); + statisticManager.sds = MockStatisticDatasource.getInstance(); + statisticManager.getStatisticCache().put(schema, new ConcurrentHashMap<>()); + statisticManager.getStatisticCache().get(schema).put(table, new StatisticManager.CacheLine()); + statisticManager.getStatisticCache().get(schema).get(table).setCardinalityMap(new HashMap<>()); + statisticManager.getStatisticCache().get(schema).get(table).getCardinalityMap().put(col, 100L); + DynamicConfig.getInstance().loadValue(null, ConnectionProperties.ENABLE_HLL, "false"); + StatisticResult statisticResult = statisticManager.getCardinality(schema, table, col, false, true); + System.out.println(statisticResult.getLongValue()); + System.out.println(statisticResult.getTrace().print()); + assert statisticResult.getLongValue() == 100L; + assert statisticResult.getSource() == StatisticResultSource.CACHE_LINE; + } finally { + DynamicConfig.getInstance().loadValue(null, ConnectionProperties.ENABLE_HLL, "true"); + } + } } diff --git a/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/core/datatype/DataTypeTest.java b/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/core/datatype/DataTypeTest.java index aaf3856b0..165af92ad 100644 --- a/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/core/datatype/DataTypeTest.java +++ b/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/core/datatype/DataTypeTest.java @@ -21,12 +21,16 @@ import com.alibaba.polardbx.common.utils.time.MySQLTimeConverter; import com.alibaba.polardbx.common.utils.time.core.MySQLTimeVal; import com.alibaba.polardbx.common.utils.time.core.MysqlDateTime; +import com.alibaba.polardbx.optimizer.core.expression.bean.EnumValue; import com.alibaba.polardbx.rpc.result.XResultUtil; +import io.airlift.slice.Slice; +import org.apache.hadoop.yarn.webapp.hamlet2.Hamlet; import org.junit.Assert; import org.junit.Test; import java.math.BigDecimal; import java.math.BigInteger; +import java.util.Arrays; import java.util.Random; import java.util.TimeZone; @@ -194,4 +198,43 @@ public void testTimestampFsp() { Assert.assertEquals(timeVal.getNano(), newTimeVal.getNano()); } } + + @Test + public void testBinary() { + BytesType bytesType = new BytesType(); + Assert.assertTrue(bytesType.compare("abcd", "bcd") < 0); + Assert.assertTrue(bytesType.compare("bcd", "abcd") > 0); + Assert.assertTrue(bytesType.compare("aaaaaa", "aaaaaa") == 0); + Assert.assertTrue(bytesType.compare("aaaaa", "aaaaaa") < 0); + Assert.assertTrue(bytesType.compare("aaaaaa", "aaaaa") > 0); + } + + @Test + public void testEnum() { + EnumType enumType = new EnumType(Arrays.asList("a", "b", "c")); + + // Test for valid enum value + Assert.assertEquals("a", enumType.convertTo(1)); + Assert.assertEquals("b", enumType.convertTo(2)); + Assert.assertEquals("c", enumType.convertTo(3)); + + // Test for default invalid enum value + Assert.assertEquals("", enumType.convertTo(0)); + // Test for null enum value + Assert.assertNull(enumType.convertTo(4)); + + EnumValue enumValueA = new EnumValue(enumType, "a"); + EnumValue enumValueB = new EnumValue(enumType, "b"); + EnumValue enumValueEmpty = new EnumValue(enumType, ""); + + LongType longType = new LongType(); + Assert.assertEquals(1L, enumType.convertTo(longType, enumValueA)); + Assert.assertEquals(2L, enumType.convertTo(longType, enumValueB)); + Assert.assertEquals(0L, enumType.convertTo(longType, enumValueEmpty)); + + VarcharType varcharType = new VarcharType(); + Assert.assertArrayEquals("a".getBytes(), ((Slice) enumType.convertTo(varcharType, enumValueA)).getBytes()); + Assert.assertArrayEquals("b".getBytes(), ((Slice) enumType.convertTo(varcharType, enumValueB)).getBytes()); + Assert.assertArrayEquals("".getBytes(), ((Slice) enumType.convertTo(varcharType, enumValueEmpty)).getBytes()); + } } diff --git a/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/core/planner/ExecutionPlanTest.java b/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/core/planner/ExecutionPlanTest.java new file mode 100644 index 000000000..ff2751d7f --- /dev/null +++ b/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/core/planner/ExecutionPlanTest.java @@ -0,0 +1,28 @@ +package com.alibaba.polardbx.optimizer.core.planner; + +import com.alibaba.polardbx.common.exception.TddlNestableRuntimeException; +import com.alibaba.polardbx.common.exception.TddlRuntimeException; +import com.alibaba.polardbx.optimizer.core.rel.GatherReferencedGsiNameRelVisitor; +import org.apache.calcite.rel.RelNode; +import org.apache.calcite.rel.core.TableScan; +import org.junit.Test; +import org.mockito.Mockito; + +/** + * Created by zhuqiwei. + * + * @author zhuqiwei + */ +public class ExecutionPlanTest { + @Test + public void testOptimizeCopyPlan() { + RelNode plan = Mockito.mock(TableScan.class); + ExecutionPlan executionPlan = new ExecutionPlan(null, plan, null); + + Mockito.when(plan.accept(Mockito.any(GatherReferencedGsiNameRelVisitor.class))) + .thenThrow(new TddlNestableRuntimeException()); + + executionPlan.copy(plan); + } + +} diff --git a/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/core/rel/PushDownReplaceTest.java b/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/core/rel/PushDownReplaceTest.java new file mode 100644 index 000000000..ac37a7882 --- /dev/null +++ b/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/core/rel/PushDownReplaceTest.java @@ -0,0 +1,85 @@ +package com.alibaba.polardbx.optimizer.core.rel; + +import com.alibaba.polardbx.optimizer.PlannerContext; +import com.alibaba.polardbx.optimizer.core.planner.ExecutionPlan; +import com.alibaba.polardbx.optimizer.core.planner.Planner; +import com.alibaba.polardbx.optimizer.core.rel.dml.writer.ReplaceRelocateWriter; +import com.alibaba.polardbx.optimizer.parse.FastsqlParser; +import com.alibaba.polardbx.planner.common.BasePlannerTest; +import org.apache.calcite.sql.SqlNode; +import org.junit.Assert; +import org.junit.Test; + +import java.sql.Connection; +import java.sql.SQLSyntaxErrorException; + +public class PushDownReplaceTest extends BasePlannerTest { + private static FastsqlParser parser = new FastsqlParser(); + + public PushDownReplaceTest() { + super("test_db"); + } + + @Test + public void testPushDownReplace() throws SQLSyntaxErrorException { + prepareSchemaByDdl(); + String createTbDdl = "create table test_tb(id int auto_increment primary key, " + + " a int, b int, c int, d int, data int, " + + " clustered index gsi_t(c, d) dbpartition by hash (c, d), " + + " local unique key uk(a, b, c, d)) dbpartition by hash(a, b)"; + buildTable(appName, createTbDdl); + PlannerContext plannerContext = PlannerContext.fromExecutionContext(ec); + plannerContext.setSchemaName("test_db"); + SqlNode ast = parser.parse("replace into test_tb (a, b, c, d, data) values (10, 10, 10, 10, 10)", ec).get(0); + try { + Planner planner = new Planner(); + ExecutionPlan executionPlan = planner.getPlan(ast, plannerContext); + Assert.assertTrue(executionPlan.getPlan() instanceof LogicalReplace); + canPushReplace((LogicalReplace) executionPlan.getPlan()); + } catch (NullPointerException t) { + t.printStackTrace(); + throw t; + } + + createTbDdl = "create table test_tb2(id int primary key, " + + " a int, b int, c int, d int, data int, " + + " clustered index gsi_t(c, d) dbpartition by hash (c, d), " + + " local unique key uk(a, b, c, d)) dbpartition by hash(a, b)"; + buildTable(appName, createTbDdl); + ast = parser.parse("replace into test_tb2 (a, b, c, d, data) values (10, 10, 10, 10, 10)", ec).get(0); + try { + Planner planner = new Planner(); + ExecutionPlan executionPlan = planner.getPlan(ast, plannerContext); + Assert.assertTrue(executionPlan.getPlan() instanceof LogicalReplace); + canNotPushReplace((LogicalReplace) executionPlan.getPlan()); + } catch (NullPointerException t) { + t.printStackTrace(); + throw t; + } + } + + private void canPushReplace(LogicalReplace replace) { + Assert.assertTrue(replace.isUkContainsAllSkAndGsiContainsAllUk()); + ReplaceRelocateWriter writer = replace.getPrimaryRelocateWriter(); + ec.setTxIsolation(Connection.TRANSACTION_READ_COMMITTED); + Assert.assertTrue(writer.canPushReplace(ec)); + for (ReplaceRelocateWriter gsiRelocateWriter : replace.getGsiRelocateWriters()) { + Assert.assertTrue(gsiRelocateWriter.canPushReplace(ec)); + } + } + + private void canNotPushReplace(LogicalReplace replace) { + Assert.assertFalse(replace.isUkContainsAllSkAndGsiContainsAllUk()); + ReplaceRelocateWriter writer = replace.getPrimaryRelocateWriter(); + ec.setTxIsolation(Connection.TRANSACTION_READ_COMMITTED); + Assert.assertFalse(writer.canPushReplace(ec)); + for (ReplaceRelocateWriter gsiRelocateWriter : replace.getGsiRelocateWriters()) { + Assert.assertFalse(gsiRelocateWriter.canPushReplace(ec)); + } + } + + @Override + protected String getPlan(String testSql) { + return null; + } +} diff --git a/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/parse/TableMetaParserTest.java b/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/parse/TableMetaParserTest.java new file mode 100644 index 000000000..4fd087cbe --- /dev/null +++ b/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/parse/TableMetaParserTest.java @@ -0,0 +1,75 @@ +package com.alibaba.polardbx.optimizer.parse; + +import static org.mockito.Mockito.*; +import static org.mockito.Mockito.mock; + +import com.alibaba.fastjson.JSONObject; +import com.alibaba.polardbx.common.utils.Pair; +import com.alibaba.polardbx.druid.sql.dialect.mysql.ast.statement.MySqlCreateTableStatement; +import com.alibaba.polardbx.gms.topology.DbInfoManager; +import com.alibaba.polardbx.gms.topology.DbInfoRecord; +import com.alibaba.polardbx.gms.util.MetaDbUtil; +import com.alibaba.polardbx.optimizer.OptimizerContext; +import com.alibaba.polardbx.optimizer.config.table.TableMeta; +import org.junit.After; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.mockito.*; + +import java.sql.Connection; +import java.util.List; + +/** + * Created by luoyanxin. + * + * @author luoyanxin + */ +public class TableMetaParserTest { + + @Test + public void testParseWithEncryptionTable() { + DbInfoManager dbInfoManager = mock(DbInfoManager.class); + try (MockedStatic mockedMetaDbUtil = Mockito.mockStatic(MetaDbUtil.class); + MockedStatic mockedDbInfoManager = Mockito.mockStatic(DbInfoManager.class);) { + DbInfoRecord dbInfoRecord = new DbInfoRecord(); + dbInfoRecord.extra = JSONObject.parseObject("{\"encryption\":false}"); + Mockito.when(dbInfoManager.getDbInfo(any())).thenReturn(dbInfoRecord); + + mockedDbInfoManager.when(() -> DbInfoManager.getInstance()).thenReturn(dbInfoManager); + + String tableDDL = "create table t1(a int, b int) ENCRYPTION='Y'"; + final MySqlCreateTableStatement stat = (MySqlCreateTableStatement) FastsqlUtils.parseSql(tableDDL).get(0); + final TableMeta tm = new TableMetaParser().parse(stat); + Assert.assertTrue(tm.isEncryption()); + } + } + + @Test + public void testParseWithEncryptionDB() { + DbInfoManager dbInfoManager = mock(DbInfoManager.class); + try (MockedStatic mockedMetaDbUtil = Mockito.mockStatic(MetaDbUtil.class); + MockedStatic mockedDbInfoManager = Mockito.mockStatic(DbInfoManager.class);) { + DbInfoRecord dbInfoRecord = new DbInfoRecord(); + dbInfoRecord.extra = JSONObject.parseObject("{\"encryption\":true}"); + Mockito.when(dbInfoManager.getDbInfo(any())).thenReturn(dbInfoRecord); + mockedDbInfoManager.when(() -> DbInfoManager.getInstance()).thenReturn(dbInfoManager); + + String tableDDL = "create table t1(a int, b int) ENCRYPTION='N'"; + MySqlCreateTableStatement stat = (MySqlCreateTableStatement) FastsqlUtils.parseSql(tableDDL).get(0); + TableMeta tm = new TableMetaParser().parse(stat); + Assert.assertFalse("t1 is not encrypted", tm.isEncryption()); + + tableDDL = "create table t1(a int, b int)"; + stat = (MySqlCreateTableStatement) FastsqlUtils.parseSql(tableDDL).get(0); + tm = new TableMetaParser().parse(stat); + Assert.assertTrue("t1 is encrypted", tm.isEncryption()); + + tableDDL = "create table t1(a int, b int) ENCRYPTION='Y'"; + stat = (MySqlCreateTableStatement) FastsqlUtils.parseSql(tableDDL).get(0); + tm = new TableMetaParser().parse(stat); + Assert.assertTrue("t1 is encrypted", tm.isEncryption()); + } + } + +} diff --git a/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/parse/visitor/FastSqlTableNameCollectorTest.java b/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/parse/visitor/FastSqlTableNameCollectorTest.java deleted file mode 100644 index 81600088f..000000000 --- a/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/parse/visitor/FastSqlTableNameCollectorTest.java +++ /dev/null @@ -1,91 +0,0 @@ -/* - * Copyright [2013-2021], Alibaba Group Holding Limited - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.alibaba.polardbx.optimizer.parse.visitor; - -import com.alibaba.polardbx.druid.sql.SQLUtils; -import com.alibaba.polardbx.druid.sql.ast.SQLStatement; -import org.junit.Assert; -import org.junit.Test; - -/** - * @author mengshi - */ -public class FastSqlTableNameCollectorTest { - - @Test - public void test1() { - String sql = "delete from d3.t1"; - Assert.assertEquals("[(d3, t1)]", getTables(sql)); - } - - @Test - public void test2() { - String sql = "delete from t1"; - Assert.assertEquals("[(null, t1)]", getTables(sql)); - } - - @Test - public void test3() { - String sql = "delete from t1 where id = (select * from d2.t2)"; - Assert.assertEquals("[(null, t1), (d2, t2)]", getTables(sql)); - } - - @Test - public void test4() { - String sql = - "delete ignore a.*, b.* from `drds_polarx2_qatest_app`.update_delete_base_broadcast a, `drds_polarx2_qatest_app`.update_delete_base_two_one_db_one_tb b where a.pk = b.pk"; - Assert.assertEquals( - "[(drds_polarx2_qatest_app, update_delete_base_broadcast), (drds_polarx2_qatest_app, update_delete_base_two_one_db_one_tb)]", - getTables(sql)); - } - - @Test - public void test5() { - String sql = - "select a as a from `db1`.`t` as tt,db2.t2,db3.`t3`,t4, (select * from t5) where id = (select * from d6.t6)"; - Assert.assertEquals("[(db1, t), (db2, t2), (db3, t3), (null, t4), (null, t5), (d6, t6)]", getTables(sql)); - } - - @Test - public void test6() { - String sql = "update t1 set a=1"; - Assert.assertEquals("[(null, t1)]", getTables(sql)); - } - - @Test - public void test7() { - String sql = "UPDATE student s JOIN class c ON s.class_id = c.id SET s.class_name='test11',c.stu_name='test11'"; - Assert.assertEquals("[(null, student), (null, class)]", getTables(sql)); - } - - @Test - public void test8() { - String sql = - "delete from `drds_polarx2_qatest_app`.update_delete_base_multi_db_multi_tb.*, `drds_polarx2_qatest_app`.update_delete_base_two_multi_db_multi_tb.*, a.* using `drds_polarx2_qatest_app`.update_delete_base_multi_db_multi_tb, `drds_polarx2_qatest_app`.update_delete_base_two_multi_db_multi_tb, `drds_polarx2_qatest_app`.update_delete_base_three_broadcast as a "; - Assert.assertEquals( - "[(drds_polarx2_qatest_app, update_delete_base_multi_db_multi_tb), (drds_polarx2_qatest_app, update_delete_base_two_multi_db_multi_tb), (drds_polarx2_qatest_app, update_delete_base_three_broadcast)]", - getTables(sql)); - } - - public String getTables(String sql) { - SQLStatement stmt = SQLUtils.parseSingleMysqlStatement(sql); - FastSqlTableNameCollector visitor = new FastSqlTableNameCollector(); - stmt.accept(visitor); - System.out.println(visitor.getTables()); - return visitor.getTables().toString(); - } -} diff --git a/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/parse/visitor/UserDefineVariableVisitorTest.java b/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/parse/visitor/UserDefineVariableVisitorTest.java new file mode 100644 index 000000000..25574962d --- /dev/null +++ b/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/parse/visitor/UserDefineVariableVisitorTest.java @@ -0,0 +1,36 @@ +package com.alibaba.polardbx.optimizer.parse.visitor; + +import com.alibaba.polardbx.druid.sql.ast.expr.SQLVariantRefExpr; +import com.alibaba.polardbx.druid.sql.visitor.ParameterizedVisitor; +import com.alibaba.polardbx.optimizer.context.ExecutionContext; +import org.junit.Assert; +import org.junit.Test; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +public class UserDefineVariableVisitorTest { + + @Test + public void test() { + StringBuilder builder = new StringBuilder(); + ExecutionContext context = new ExecutionContext(); + context.setUserDefVariables(new HashMap<>()); + List outParameters = new ArrayList<>(); + + ParameterizedVisitor visitor = new DrdsParameterizeSqlVisitor(builder, true, context); + visitor.setOutputParameters(outParameters); + + // a variable that has not been initialized + SQLVariantRefExpr expr = new SQLVariantRefExpr("@xxx"); + visitor.visit(expr); + + Assert.assertTrue( + outParameters.size() == 1 && outParameters.get(0) instanceof DrdsParameterizeSqlVisitor.UserDefVariable); + Assert.assertTrue(context.getUserDefVariables().get("xxx") == null); + + } + +} + diff --git a/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/partition/MurmurHashTest.java b/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/partition/MurmurHashTest.java index fdb59717e..66b3a7fff 100644 --- a/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/partition/MurmurHashTest.java +++ b/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/partition/MurmurHashTest.java @@ -119,7 +119,7 @@ public void testMurmurHash2() { for (int j = 0; j < colCnt; j++) { datas[j] = shardVal; } - long val = MurmurHashUtils.murmurHashWithZeroSeed(calcHashCode(datas)); + long val = MurmurHashUtils.murmurHash128WithZeroSeed(calcHashCode(datas)); for (int j = 0; j < pCnt; j++) { if (val < rangeArr[j]) { ++rangeStat[j]; diff --git a/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/partition/MyMurmurHashTest.java b/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/partition/MyMurmurHashTest.java index 2e9c00d7d..1190acd95 100644 --- a/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/partition/MyMurmurHashTest.java +++ b/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/partition/MyMurmurHashTest.java @@ -103,7 +103,7 @@ public void testMurmurHash2() { for (int j = 0; j < colCnt; j++) { datas[j] = shardVal; } - long val = MurmurHashUtils.murmurHashWithZeroSeed(calcHashCode(datas)); + long val = MurmurHashUtils.murmurHash128WithZeroSeed(calcHashCode(datas)); for (int j = 0; j < pCnt; j++) { if (val < rangeArr[j]) { ++rangeStat[j]; diff --git a/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/utils/OptimizerUtilsPruningAutoPerfTest.java b/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/utils/OptimizerUtilsPruningAutoPerfTest.java new file mode 100644 index 000000000..3e03e0d69 --- /dev/null +++ b/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/utils/OptimizerUtilsPruningAutoPerfTest.java @@ -0,0 +1,181 @@ +package com.alibaba.polardbx.optimizer.utils; + +import com.alibaba.polardbx.common.jdbc.ParameterContext; +import com.alibaba.polardbx.common.jdbc.ParameterMethod; +import com.alibaba.polardbx.common.jdbc.Parameters; +import com.alibaba.polardbx.common.jdbc.RawString; +import com.alibaba.polardbx.common.utils.GeneralUtil; +import com.alibaba.polardbx.optimizer.PlannerContext; +import com.alibaba.polardbx.optimizer.context.ExecutionContext; +import com.alibaba.polardbx.optimizer.core.planner.SqlConverter; +import com.alibaba.polardbx.optimizer.core.rel.LogicalView; +import com.alibaba.polardbx.planner.common.BasePlannerTest; +import com.clearspring.analytics.util.Lists; +import com.google.common.collect.Maps; +import org.apache.calcite.plan.RelOptCluster; +import org.apache.calcite.plan.RelOptSchema; +import org.apache.calcite.rel.logical.LogicalFilter; +import org.apache.calcite.rel.logical.LogicalTableScan; +import org.apache.calcite.rel.type.RelDataTypeFactory; +import org.apache.calcite.rex.RexBuilder; +import org.apache.calcite.rex.RexNode; +import org.apache.calcite.sql.fun.SqlStdOperatorTable; +import org.apache.calcite.sql.type.SqlTypeName; +import org.junit.Before; +import org.junit.Ignore; +import org.junit.Test; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; +import java.util.stream.IntStream; + +/** + * @author fangwu + */ +public class OptimizerUtilsPruningAutoPerfTest extends BasePlannerTest { + protected RelOptCluster relOptCluster; + protected RelOptSchema schema; + + public static final String SCHEMA_NAME = "optest"; + + private static int testCount = 2; + + private static final String autoTbl = "CREATE TABLE key_tbl(\n" + + " id bigint not null auto_increment,\n" + + " bid int,\n" + + " name varchar(30),\n" + + " birthday datetime not null,\n" + + " primary key(id)\n" + + ")\n" + + "PARTITION BY KEY(id)\n" + + "PARTITIONS 64"; + + private static final String autoTblHash = "CREATE TABLE hash_tbl(\n" + + " id bigint not null auto_increment,\n" + + " bid int,\n" + + " name varchar(30),\n" + + " birthday datetime not null,\n" + + " primary key(id)\n" + + ")\n" + + "partition by hash(id)\n" + + "partitions 64"; + + private static final String autoTblRange = "CREATE TABLE orders(\n" + + " order_id int,\n" + + " order_time datetime not null)\n" + + "PARTITION BY range columns(order_id)\n" + + "(\n" + + " PARTITION p1 VALUES LESS THAN (1000),\n" + + " PARTITION p2 VALUES LESS THAN (2000),\n" + + " PARTITION p3 VALUES LESS THAN (3000),\n" + + " PARTITION p4 VALUES LESS THAN (4000),\n" + + " PARTITION p5 VALUES LESS THAN (5000),\n" + + " PARTITION p6 VALUES LESS THAN (MAXVALUE)\n" + + ")"; + + private static final String autoTblHashVarchar = "CREATE TABLE hash_varchar_tbl(\n" + + " id varchar(10) not null,\n" + + " bid int,\n" + + " name varchar(30),\n" + + " birthday datetime not null,\n" + + " primary key(id)\n" + + ")\n" + + "partition by hash(id)\n" + + "partitions 64"; + + public OptimizerUtilsPruningAutoPerfTest() { + super(SCHEMA_NAME); + } + + @Before + public void init() throws Exception { + relOptCluster = SqlConverter.getInstance(SCHEMA_NAME, new ExecutionContext()).createRelOptCluster(); + schema = SqlConverter.getInstance(SCHEMA_NAME, new ExecutionContext()).getCatalog(); + loadStatistic(); + buildTable(SCHEMA_NAME, autoTbl); + buildTable(SCHEMA_NAME, autoTblHash); + buildTable(SCHEMA_NAME, autoTblRange); + buildTable(SCHEMA_NAME, autoTblHashVarchar); + } + + @Override + protected String getPlan(String testSql) { + return null; + } + + @Override + protected void initBasePlannerTestEnv() { + this.useNewPartDb = true; + } + + @Override + @Ignore + public void testSql() { + } + + @Test + public void testAutoTblKeyInt() { + // baseline:405ms + long pruneTime = testWithTblName("key_tbl", false); + } + + @Test + public void testAutoTblHashInt() { + // baseline:422ms + long pruneTime = testWithTblName("hash_tbl", false); + } + + @Test + public void testAutoTblHashVarchar() { + // baseline:434ms + long pruneTime = testWithTblName("hash_varchar_tbl", true); + } + + @Test + public void testAutoTblRangeInt() { + //baseline 210ms + long pruneTime = testWithTblName("orders", false); + } + + private long testWithTblName(String tblName, boolean isVarchar) { + ExecutionContext executionContext = new ExecutionContext(SCHEMA_NAME); + Parameters parameters = new Parameters(); + Map params = Maps.newHashMap(); + if (isVarchar) { + List strList = Lists.newArrayList(); + for (int i = 0; i < 100000; i++) { + strList.add(GeneralUtil.randomString(10)); + } + params.put(1, new ParameterContext(ParameterMethod.setObject1, new Object[] {1, new RawString(strList)})); + } else { + params.put(1, new ParameterContext(ParameterMethod.setObject1, new Object[] { + 1, new RawString(IntStream.range(0, 100000).boxed().collect( + Collectors.toList()))})); + } + + parameters.setParams(params); + executionContext.setParams(parameters); + + relOptCluster.getPlanner().getContext().unwrap(PlannerContext.class).setExecutionContext(executionContext); + final RelDataTypeFactory typeFactory = relOptCluster.getTypeFactory(); + LogicalTableScan scan = LogicalTableScan.create(relOptCluster, + schema.getTableForMember(Arrays.asList(SCHEMA_NAME, tblName))); + LogicalView logicalView = LogicalView.create(scan, scan.getTable()); + RexBuilder rexBuilder = relOptCluster.getRexBuilder(); + RexNode row = + rexBuilder.makeCall(SqlStdOperatorTable.ROW, rexBuilder.makeDynamicParam(typeFactory.createSqlType( + SqlTypeName.INTEGER), 0)); + RexNode in = rexBuilder.makeCall(SqlStdOperatorTable.IN, rexBuilder.makeInputRef(logicalView, 0), row); + + LogicalFilter logicalFilter = LogicalFilter.create(logicalView, in); + logicalView.push(logicalFilter); + for (int i = 0; i < testCount; i++) { + OptimizerUtils.pruningInValue(logicalView, executionContext); + } + long avg = executionContext.getPruningTime() / testCount; + System.out.println("avg pruning time(ms):" + avg); + return avg; + } +} diff --git a/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/utils/OptimizerUtilsPruningDrdsPerfTest.java b/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/utils/OptimizerUtilsPruningDrdsPerfTest.java new file mode 100644 index 000000000..4f28ad24c --- /dev/null +++ b/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/utils/OptimizerUtilsPruningDrdsPerfTest.java @@ -0,0 +1,163 @@ +package com.alibaba.polardbx.optimizer.utils; + +import com.alibaba.polardbx.common.jdbc.ParameterContext; +import com.alibaba.polardbx.common.jdbc.ParameterMethod; +import com.alibaba.polardbx.common.jdbc.Parameters; +import com.alibaba.polardbx.common.jdbc.RawString; +import com.alibaba.polardbx.common.utils.GeneralUtil; +import com.alibaba.polardbx.optimizer.PlannerContext; +import com.alibaba.polardbx.optimizer.context.ExecutionContext; +import com.alibaba.polardbx.optimizer.core.planner.SqlConverter; +import com.alibaba.polardbx.optimizer.core.rel.LogicalView; +import com.alibaba.polardbx.planner.common.BasePlannerTest; +import com.clearspring.analytics.util.Lists; +import com.google.common.collect.Maps; +import org.apache.calcite.plan.RelOptCluster; +import org.apache.calcite.plan.RelOptSchema; +import org.apache.calcite.rel.logical.LogicalFilter; +import org.apache.calcite.rel.logical.LogicalTableScan; +import org.apache.calcite.rel.type.RelDataTypeFactory; +import org.apache.calcite.rex.RexBuilder; +import org.apache.calcite.rex.RexNode; +import org.apache.calcite.sql.fun.SqlStdOperatorTable; +import org.apache.calcite.sql.type.SqlTypeName; +import org.junit.Before; +import org.junit.Ignore; +import org.junit.Test; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; +import java.util.stream.IntStream; + +/** + * @author fangwu + */ +public class OptimizerUtilsPruningDrdsPerfTest extends BasePlannerTest { + protected RelOptCluster relOptCluster; + protected RelOptSchema schema; + + public static final String SCHEMA_NAME = "optest"; + + private static int testCount = 2; + + private static final String drdsTblInt = "CREATE TABLE multi_db_multi_tbl(\n" + + " id bigint not null auto_increment, \n" + + " bid int, \n" + + " name varchar(30), \n" + + " primary key(id)\n" + + ") dbpartition by hash(id) tbpartition by hash(id) tbpartitions 10"; + + private static final String drdsTblIntNotSimple = "CREATE TABLE multi_db_multi_tbl_NotSimple(\n" + + " id bigint not null auto_increment, \n" + + " bid int, \n" + + " name varchar(30), \n" + + " primary key(id)\n" + + ") dbpartition by hash(id) tbpartition by hash(bid) tbpartitions 10"; + + private static final String drdsTblVarchar = "CREATE TABLE multi_db_multi_tbl_varchar(\n" + + " id varchar(10) not null, \n" + + " bid int, \n" + + " name varchar(30), \n" + + " primary key(id)\n" + + ") dbpartition by hash(id) tbpartition by hash(id) tbpartitions 10"; + + private static final String drdsTblVarcharNotSimple = "CREATE TABLE multi_db_multi_tbl_varchar_NotSimple(\n" + + " id varchar(10) not null, \n" + + " bid int, \n" + + " name varchar(30), \n" + + " primary key(id)\n" + + ") dbpartition by hash(id) tbpartition by hash(name) tbpartitions 10"; + + public OptimizerUtilsPruningDrdsPerfTest() { + super(SCHEMA_NAME); + } + + @Before + public void init() throws Exception { + relOptCluster = SqlConverter.getInstance(SCHEMA_NAME, new ExecutionContext()).createRelOptCluster(); + schema = SqlConverter.getInstance(SCHEMA_NAME, new ExecutionContext()).getCatalog(); + loadStatistic(); + buildTable(SCHEMA_NAME, drdsTblInt); + buildTable(SCHEMA_NAME, drdsTblIntNotSimple); + buildTable(SCHEMA_NAME, drdsTblVarchar); + buildTable(SCHEMA_NAME, drdsTblVarcharNotSimple); + } + + @Override + protected String getPlan(String testSql) { + return null; + } + + @Ignore + @Override + public void testSql() { + } + + @Test + public void testDrdsTblInt() { + // bjaseline:6ms + long pruneTime = testWithTblName("multi_db_multi_tbl", false); + } + + @Ignore + @Test + public void testDrdsTblIntNotSimple() { + // bjaseline:4544ms + long pruneTime = testWithTblName("multi_db_multi_tbl_NotSimple", false); + } + + @Test + public void testDrdsTblVarchar() { + // baseline:5ms + long pruneTime = testWithTblName("multi_db_multi_tbl_varchar", true); + } + + @Ignore + @Test + public void testDrdsTblVarcharNotSimple() { + // baseline:3856ms + long pruneTime = testWithTblName("multi_db_multi_tbl_varchar_NotSimple", true); + } + + private long testWithTblName(String tblName, boolean isVarchar) { + ExecutionContext executionContext = new ExecutionContext(SCHEMA_NAME); + Parameters parameters = new Parameters(); + Map params = Maps.newHashMap(); + if (isVarchar) { + List strList = Lists.newArrayList(); + for (int i = 0; i < 100000; i++) { + strList.add(GeneralUtil.randomString(10)); + } + params.put(1, new ParameterContext(ParameterMethod.setObject1, new Object[] {1, new RawString(strList)})); + } else { + params.put(1, new ParameterContext(ParameterMethod.setObject1, new Object[] { + 1, new RawString(IntStream.range(0, 100000).boxed().collect( + Collectors.toList()))})); + } + + parameters.setParams(params); + executionContext.setParams(parameters); + + relOptCluster.getPlanner().getContext().unwrap(PlannerContext.class).setExecutionContext(executionContext); + final RelDataTypeFactory typeFactory = relOptCluster.getTypeFactory(); + LogicalTableScan scan = LogicalTableScan.create(relOptCluster, + schema.getTableForMember(Arrays.asList(SCHEMA_NAME, tblName))); + LogicalView logicalView = LogicalView.create(scan, scan.getTable()); + RexBuilder rexBuilder = relOptCluster.getRexBuilder(); + RexNode row = + rexBuilder.makeCall(SqlStdOperatorTable.ROW, rexBuilder.makeDynamicParam(typeFactory.createSqlType( + SqlTypeName.INTEGER), 0)); + RexNode in = rexBuilder.makeCall(SqlStdOperatorTable.IN, rexBuilder.makeInputRef(logicalView, 0), row); + + LogicalFilter logicalFilter = LogicalFilter.create(logicalView, in); + logicalView.push(logicalFilter); + for (int i = 0; i < testCount; i++) { + OptimizerUtils.pruningInValue(logicalView, executionContext); + } + long avg = executionContext.getPruningTime() / testCount; + System.out.println("avg pruning time(ms):" + avg); + return avg; + } +} diff --git a/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/utils/OptimizerUtilsTest.java b/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/utils/OptimizerUtilsTest.java index 43b15e891..afd9dfb27 100644 --- a/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/utils/OptimizerUtilsTest.java +++ b/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/utils/OptimizerUtilsTest.java @@ -2,15 +2,34 @@ import com.alibaba.polardbx.common.jdbc.ParameterContext; import com.alibaba.polardbx.common.jdbc.ParameterMethod; +import com.alibaba.polardbx.common.jdbc.Parameters; +import com.alibaba.polardbx.common.jdbc.PruneRawString; import com.alibaba.polardbx.common.jdbc.RawString; +import com.alibaba.polardbx.common.properties.ConnectionProperties; +import com.alibaba.polardbx.common.properties.DynamicConfig; import com.alibaba.polardbx.common.utils.Assert; +import com.alibaba.polardbx.common.utils.Pair; +import com.alibaba.polardbx.optimizer.context.ExecutionContext; +import com.alibaba.polardbx.optimizer.core.rel.LogicalView; +import com.alibaba.polardbx.optimizer.core.rel.PushDownOpt; +import com.google.common.collect.ImmutableSet; import com.google.common.collect.Lists; import com.google.common.collect.Maps; +import com.google.common.collect.Sets; import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; +import org.jetbrains.annotations.NotNull; import org.junit.Test; +import org.mockito.MockedStatic; +import org.mockito.Mockito; +import java.util.Arrays; +import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Random; +import java.util.Set; +import java.util.stream.Collectors; +import java.util.stream.IntStream; /** * @author fangwu @@ -40,4 +59,220 @@ public void testBuildInExprKey() { System.out.println(int2ObjectMapParams); Assert.assertTrue(hashMapParams.equals(int2ObjectMapParams)); } + + @Test + public void testFindAllRawStrings() { + // params has raw string and which size > IN_PRUNE_SIZE + ExecutionContext executionContext = Mockito.mock(ExecutionContext.class); + Parameters parameters = new Parameters(); + Map params = Maps.newHashMap(); + params.put(1, + new ParameterContext(ParameterMethod.setObject1, new Object[] {1, new RawString(Arrays.asList(1, 2, 3))})); + params.put(2, + new ParameterContext(ParameterMethod.setObject1, new Object[] {2, new RawString(Arrays.asList(1, 2))})); + params.put(3, + new ParameterContext(ParameterMethod.setObject1, new Object[] {3, "test"})); + + parameters.setParams(params); + + Mockito.when(executionContext.getParams()).thenReturn(parameters); + Assert.assertTrue(OptimizerUtils.findAllRawStrings(ImmutableSet.of(1, 2), executionContext).length == 2); + Assert.assertTrue(OptimizerUtils.findAllRawStrings(ImmutableSet.of(2), executionContext).length == 1); + } + + @Test + public void testMergeRawStringParameters() { + RawString rawString = new RawString(Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 0)); + Parameters parameters = new Parameters(); + Map params = Maps.newHashMap(); + params.put(1, + new ParameterContext(ParameterMethod.setObject1, + new Object[] { + 1, new PruneRawString(rawString.getObjList(), PruneRawString.PRUNE_MODE.RANGE, 0, 1, null)})); + parameters.setParams(params); + + List> r = Lists.newArrayList(); + r.add(new Pair<>(1, new PruneRawString(rawString.getObjList(), PruneRawString.PRUNE_MODE.RANGE, 1, 4, null))); + OptimizerUtils.mergeRawStringParameters(parameters, r.toArray(new Pair[0])); + Assert.assertTrue(((RawString) parameters.getCurrentParameter().get(1).getValue()).size() == 4); + + // intersecting ranges + r.clear(); + r.add(new Pair<>(1, new PruneRawString(rawString.getObjList(), PruneRawString.PRUNE_MODE.RANGE, 7, 9, null))); + OptimizerUtils.mergeRawStringParameters(parameters, r.toArray(new Pair[0])); + Assert.assertTrue(((RawString) parameters.getCurrentParameter().get(1).getValue()).size() == 6); + + // Non-intersecting ranges + r.clear(); + r.add(new Pair<>(1, new PruneRawString(rawString.getObjList(), PruneRawString.PRUNE_MODE.RANGE, 7, 9, null))); + + OptimizerUtils.mergeRawStringParameters(parameters, r.toArray(new Pair[0])); + Assert.assertTrue(((RawString) parameters.getCurrentParameter().get(1).getValue()).size() == 6); + } + + @Test + public void testPruning() throws Exception { + // if 'DynamicConfig.getInstance().isEnablePruningIn' return false, then pruneRawStringMap is null + MockedStatic optimizerUtilsMockedStatic = + Mockito.mockStatic(OptimizerUtils.class, Mockito.CALLS_REAL_METHODS); + LogicalView testLogicalView = Mockito.mock(LogicalView.class); + PushDownOpt pushDownOpt = Mockito.mock(PushDownOpt.class); + Mockito.when(testLogicalView.getPushDownOpt()).thenReturn(pushDownOpt); + ExecutionContext executionContext = new ExecutionContext(); + DynamicConfig.getInstance().loadValue(null, ConnectionProperties.ENABLE_PRUNING_IN, "false"); + Map>, Parameters> rs = + OptimizerUtils.pruningInValue(testLogicalView, executionContext); + Assert.assertTrue(rs == null); + + // 'is need prune' return true and findAllRawStrings return no raw string + DynamicConfig.getInstance().loadValue(null, ConnectionProperties.ENABLE_PRUNING_IN, "true"); + //OptimizerUtils.findAllRawStrings(ImmutableSet.of(1), executionContext) + optimizerUtilsMockedStatic.when(() -> OptimizerUtils.findAllRawStrings(ImmutableSet.of(1), executionContext)) + .thenReturn(new Pair[0]); + + rs = OptimizerUtils.pruningInValue(testLogicalView, executionContext); + Assert.assertTrue(rs == null); + + // 'is need prune' return true and findAllRawStrings return no raw string + Parameters parameters = new Parameters(); + Map params = Maps.newHashMap(); + params.put(1, + new ParameterContext(ParameterMethod.setObject1, new Object[] { + 1, new RawString(IntStream.range(0, 10000).boxed().collect( + Collectors.toList()))})); + parameters.setParams(params); + executionContext.setParams(parameters); + optimizerUtilsMockedStatic.when(() -> OptimizerUtils.findAllRawStrings(ImmutableSet.of(1), executionContext)) + .thenCallRealMethod(); + + // mock sharding + Mockito.when(pushDownOpt.getShardRelatedInTypeParamIndexes()).thenReturn(ImmutableSet.of(1)); + Mockito.doAnswer(invocationOnMock -> buildRandomSharding()).when(testLogicalView) + .buildTargetTables(Mockito.any()); + rs = OptimizerUtils.pruningInValue(testLogicalView, executionContext); + + Assert.assertTrue(rs.size() == 25); + } + + @Test + public void testIterateRawStrings() { + Pair[] rawStringMap = new Pair[1]; + // single raw string test + List listSingle = IntStream.range(0, 15).boxed().collect(Collectors.toList()); + rawStringMap[0] = Pair.of(1, new RawString(listSingle)); + PruningRawStringStep iterator = OptimizerUtils.iterateRawStrings(rawStringMap, 10000); + String ret = getIteratorCheckString(iterator); + assert ret.equalsIgnoreCase("PruneRaw(0) \n" + + "PruneRaw(1) \n" + + "PruneRaw(2) \n" + + "PruneRaw(3) \n" + + "PruneRaw(4) \n" + + "PruneRaw(5) \n" + + "PruneRaw(6) \n" + + "PruneRaw(7) \n" + + "PruneRaw(8) \n" + + "PruneRaw(9) \n" + + "PruneRaw(10) \n" + + "PruneRaw(11) \n" + + "PruneRaw(12) \n" + + "PruneRaw(13) \n" + + "PruneRaw(14) \n"); + + iterator = OptimizerUtils.iterateRawStrings(rawStringMap, 10); + assert iterator == null; + + // two raw string test + rawStringMap = new Pair[2]; + List list1 = Lists.newLinkedList(); + list1.add("string"); + list1.add("1"); + list1.add(3); + list1.add(null); + + List list2 = Lists.newLinkedList(); + list2.add("s\n"); + list2.add("s\rt"); + list2.add("s't"); + list2.add("s\"t"); + + rawStringMap[0] = Pair.of(1, new RawString(list1)); + rawStringMap[1] = Pair.of(2, new RawString(list2)); + iterator = OptimizerUtils.iterateRawStrings(rawStringMap, 16); + ret = getIteratorCheckString(iterator); + + assert ret.equalsIgnoreCase( + "PruneRaw('string') PruneRaw('s\\n') \n" + + "PruneRaw('string') PruneRaw('s\\rt') \n" + + "PruneRaw('string') PruneRaw('s\\'t') \n" + + "PruneRaw('string') PruneRaw('s\"t') \n" + + "PruneRaw('1') PruneRaw('s\\n') \n" + + "PruneRaw('1') PruneRaw('s\\rt') \n" + + "PruneRaw('1') PruneRaw('s\\'t') \n" + + "PruneRaw('1') PruneRaw('s\"t') \n" + + "PruneRaw(3) PruneRaw('s\\n') \n" + + "PruneRaw(3) PruneRaw('s\\rt') \n" + + "PruneRaw(3) PruneRaw('s\\'t') \n" + + "PruneRaw(3) PruneRaw('s\"t') \n" + + "PruneRaw(null) PruneRaw('s\\n') \n" + + "PruneRaw(null) PruneRaw('s\\rt') \n" + + "PruneRaw(null) PruneRaw('s\\'t') \n" + + "PruneRaw(null) PruneRaw('s\"t') \n"); + + // test multi raw string block by max prune time + iterator = OptimizerUtils.iterateRawStrings(rawStringMap, 15); + assert iterator == null; + + // test three raw string + rawStringMap = new Pair[3]; + rawStringMap[2] = Pair.of(1, new RawString(IntStream.range(0, 10).boxed().collect(Collectors.toList()))); + rawStringMap[1] = Pair.of(2, new RawString(IntStream.range(0, 15).boxed().collect(Collectors.toList()))); + rawStringMap[0] = Pair.of(3, new RawString(IntStream.range(0, 25).boxed().collect(Collectors.toList()))); + iterator = OptimizerUtils.iterateRawStrings(rawStringMap, 10 * 15 * 25); + int count = 0; + Set set = Sets.newHashSet(); + Pair[] next = iterator.getTargetPair(); + while (iterator.hasNext()) { + count++; + iterator.next(); + StringBuilder line = new StringBuilder(); + for (Pair pair : next) { + line.append(pair.getValue().getObj(0, -1)).append(" "); + } + set.add(line.toString().trim()); + } + assert count == 10 * 15 * 25; + assert count == set.size(); + + iterator = OptimizerUtils.iterateRawStrings(rawStringMap, 25 * 15 + 1); + assert iterator == null; + } + + @NotNull + private String getIteratorCheckString(PruningRawStringStep iterator) { + StringBuilder sb = new StringBuilder(); + Pair[] pairs = iterator.getTargetPair(); + while (iterator.hasNext()) { + iterator.next(); + for (Pair pair : pairs) { + sb.append(pair.getValue().display() + " "); + } + sb.append("\n"); + } + System.out.println(sb); + return sb.toString(); + } + + private Map>> buildRandomSharding() { + Random r = new Random(); + int groupIndex = r.nextInt(5); + int tblIndex = r.nextInt(5); + Map>> map = new HashMap<>(); + String groupName = "random_mock_group_" + groupIndex; + List tblList = Lists.newArrayList(); + List> tblLists = Lists.newArrayList(); + tblLists.add(tblList); + map.put(groupName, tblLists); + tblList.add("random_mock_tbl_" + tblIndex); + return map; + } } diff --git a/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/writer/ModifyGsiWriterTest.java b/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/writer/ModifyGsiWriterTest.java new file mode 100644 index 000000000..e3153d777 --- /dev/null +++ b/polardbx-optimizer/src/test/java/com/alibaba/polardbx/optimizer/writer/ModifyGsiWriterTest.java @@ -0,0 +1,107 @@ +package com.alibaba.polardbx.optimizer.writer; + +import com.alibaba.polardbx.optimizer.config.table.GlobalIndexMeta; +import com.alibaba.polardbx.optimizer.config.table.TableMeta; +import com.alibaba.polardbx.optimizer.context.ExecutionContext; +import com.alibaba.polardbx.optimizer.core.rel.dml.writer.BroadcastModifyGsiWriter; +import com.alibaba.polardbx.optimizer.core.rel.dml.writer.BroadcastModifyWriter; +import com.alibaba.polardbx.optimizer.core.rel.dml.writer.ShardingModifyGsiWriter; +import com.alibaba.polardbx.optimizer.core.rel.dml.writer.ShardingModifyWriter; +import com.alibaba.polardbx.optimizer.core.rel.dml.writer.SingleModifyGsiWriter; +import com.alibaba.polardbx.optimizer.core.rel.dml.writer.SingleModifyWriter; +import org.apache.calcite.plan.RelOptTable; +import org.apache.calcite.rel.RelNode; +import org.junit.Assert; +import org.junit.Test; +import org.mockito.MockedStatic; +import org.mockito.Mockito; + +import java.util.ArrayList; +import java.util.List; +import java.util.function.Function; + +import static org.apache.calcite.rel.core.TableModify.Operation.UPDATE; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +public class ModifyGsiWriterTest { + + @Test + public void testBroadcastModifyGsiWriter() { + RelOptTable targetTable = mock(RelOptTable.class); + BroadcastModifyWriter updateWriter = mock(BroadcastModifyWriter.class); + BroadcastModifyWriter deleteWriter = mock(BroadcastModifyWriter.class); + TableMeta gsiMeta = mock(TableMeta.class); + + List resUpdate = new ArrayList<>(); + resUpdate.add(mock(RelNode.class)); + List resDelete = new ArrayList<>(); + + when(updateWriter.getInput(any(ExecutionContext.class), any())).thenReturn(resUpdate); + when(deleteWriter.getInput(any(ExecutionContext.class), any())).thenReturn(resDelete); + + BroadcastModifyGsiWriter writer = + new BroadcastModifyGsiWriter(targetTable, UPDATE, updateWriter, deleteWriter, gsiMeta); + + try (MockedStatic mockedStatic = Mockito.mockStatic(GlobalIndexMeta.class)) { + when(GlobalIndexMeta.canWrite(any(ExecutionContext.class), any(TableMeta.class))).thenReturn(false); + when(GlobalIndexMeta.canDelete(any(ExecutionContext.class), any(TableMeta.class))).thenReturn(true); + + List res = writer.getInput(mock(ExecutionContext.class), mock(Function.class)); + Assert.assertEquals(1, res.size()); + } + } + + @Test + public void testSingleModifyGsiWriter() { + RelOptTable targetTable = mock(RelOptTable.class); + SingleModifyWriter updateWriter = mock(SingleModifyWriter.class); + SingleModifyWriter deleteWriter = mock(SingleModifyWriter.class); + TableMeta gsiMeta = mock(TableMeta.class); + + List resUpdate = new ArrayList<>(); + resUpdate.add(mock(RelNode.class)); + List resDelete = new ArrayList<>(); + + when(updateWriter.getInput(any(ExecutionContext.class), any())).thenReturn(resUpdate); + when(deleteWriter.getInput(any(ExecutionContext.class), any())).thenReturn(resDelete); + + SingleModifyGsiWriter writer = + new SingleModifyGsiWriter(targetTable, UPDATE, updateWriter, deleteWriter, gsiMeta); + + try (MockedStatic mockedStatic = Mockito.mockStatic(GlobalIndexMeta.class)) { + when(GlobalIndexMeta.canWrite(any(ExecutionContext.class), any(TableMeta.class))).thenReturn(false); + when(GlobalIndexMeta.canDelete(any(ExecutionContext.class), any(TableMeta.class))).thenReturn(true); + + List res = writer.getInput(mock(ExecutionContext.class), mock(Function.class)); + Assert.assertEquals(1, res.size()); + } + } + + @Test + public void testShardingModifyGsiWriter() { + RelOptTable targetTable = mock(RelOptTable.class); + ShardingModifyWriter updateWriter = mock(ShardingModifyWriter.class); + ShardingModifyWriter deleteWriter = mock(ShardingModifyWriter.class); + TableMeta gsiMeta = mock(TableMeta.class); + + List resUpdate = new ArrayList<>(); + resUpdate.add(mock(RelNode.class)); + List resDelete = new ArrayList<>(); + + when(updateWriter.getInput(any(ExecutionContext.class), any())).thenReturn(resUpdate); + when(deleteWriter.getInput(any(ExecutionContext.class), any())).thenReturn(resDelete); + + ShardingModifyGsiWriter writer = + new ShardingModifyGsiWriter(targetTable, UPDATE, updateWriter, deleteWriter, gsiMeta); + + try (MockedStatic mockedStatic = Mockito.mockStatic(GlobalIndexMeta.class)) { + when(GlobalIndexMeta.canWrite(any(ExecutionContext.class), any(TableMeta.class))).thenReturn(false); + when(GlobalIndexMeta.canDelete(any(ExecutionContext.class), any(TableMeta.class))).thenReturn(true); + + List res = writer.getInput(mock(ExecutionContext.class), mock(Function.class)); + Assert.assertEquals(1, res.size()); + } + } +} diff --git a/polardbx-optimizer/src/test/java/com/alibaba/polardbx/parser/DALParserTest.java b/polardbx-optimizer/src/test/java/com/alibaba/polardbx/parser/DALParserTest.java index b1496f227..e3a33e16a 100755 --- a/polardbx-optimizer/src/test/java/com/alibaba/polardbx/parser/DALParserTest.java +++ b/polardbx-optimizer/src/test/java/com/alibaba/polardbx/parser/DALParserTest.java @@ -304,6 +304,24 @@ public void test_show_collation_3() throws Exception { Assert.assertEquals("SHOW COLLATION WHERE Collation LIKE 'big5%'", output); } + public void test_show_binlog_events() { + String sql = "show binlog events"; + MySqlStatementParser parser = new MySqlStatementParser(sql); + MySqlShowBinLogEventsStatement show = (MySqlShowBinLogEventsStatement) parser.parseStatementList().get(0); + parser.match(Token.EOF); + String output = SQLUtils.toMySqlString(show); + Assert.assertEquals("SHOW BINLOG EVENTS", output); + } + + public void test_show_binlog_events_with() { + String sql = "show binlog events with 'group1_stream_0'"; + MySqlStatementParser parser = new MySqlStatementParser(sql); + MySqlShowBinLogEventsStatement show = (MySqlShowBinLogEventsStatement) parser.parseStatementList().get(0); + parser.match(Token.EOF); + String output = SQLUtils.toMySqlString(show); + Assert.assertEquals("SHOW BINLOG EVENTS WITH 'group1_stream_0'", output); + } + public void test_binaryLog() throws Exception { String sql = "SHOW binlog events in 'a' from 1 limit 1,2 "; MySqlStatementParser parser = new MySqlStatementParser(sql); diff --git a/polardbx-optimizer/src/test/java/com/alibaba/polardbx/parser/DDLParserTest.java b/polardbx-optimizer/src/test/java/com/alibaba/polardbx/parser/DDLParserTest.java index b92d3e2bc..1910db5e2 100644 --- a/polardbx-optimizer/src/test/java/com/alibaba/polardbx/parser/DDLParserTest.java +++ b/polardbx-optimizer/src/test/java/com/alibaba/polardbx/parser/DDLParserTest.java @@ -18,11 +18,18 @@ */ package com.alibaba.polardbx.parser; +import com.alibaba.polardbx.common.jdbc.Parameters; import com.alibaba.polardbx.druid.sql.SQLUtils; import com.alibaba.polardbx.druid.sql.ast.SQLStatement; import com.alibaba.polardbx.druid.sql.dialect.mysql.parser.MySqlStatementParser; import com.alibaba.polardbx.druid.sql.parser.Token; +import com.alibaba.polardbx.optimizer.context.ExecutionContext; +import com.alibaba.polardbx.optimizer.parse.FastsqlParser; +import com.alibaba.polardbx.optimizer.parse.visitor.ContextParameters; +import com.alibaba.polardbx.optimizer.parse.visitor.FastSqlToCalciteNodeVisitor; import junit.framework.TestCase; +import org.apache.calcite.sql.SqlNode; +import org.apache.calcite.sql.SqlNodeList; import org.junit.Assert; public class DDLParserTest extends TestCase { diff --git a/polardbx-optimizer/src/test/java/com/alibaba/polardbx/parser/FlashbackParserTest.java b/polardbx-optimizer/src/test/java/com/alibaba/polardbx/parser/FlashbackParserTest.java new file mode 100644 index 000000000..30581fcef --- /dev/null +++ b/polardbx-optimizer/src/test/java/com/alibaba/polardbx/parser/FlashbackParserTest.java @@ -0,0 +1,62 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.alibaba.polardbx.parser; + +import com.alibaba.polardbx.druid.sql.SQLUtils; +import com.alibaba.polardbx.druid.sql.ast.SQLStatement; +import com.alibaba.polardbx.druid.sql.dialect.mysql.parser.MySqlStatementParser; +import com.alibaba.polardbx.druid.sql.parser.Token; +import junit.framework.TestCase; +import org.junit.Assert; + +public class FlashbackParserTest extends TestCase { + + public void test_select_0() throws Exception { + String sql = "select * from t1 as of tso 100"; + MySqlStatementParser parser = new MySqlStatementParser(sql); + SQLStatement stmt = parser.parseStatementList().get(0); + parser.match(Token.EOF); + String output = SQLUtils.toMySqlString(stmt); + Assert.assertEquals("SELECT *\n" + + "FROM t1\n" + + "AS OF TSO 100", output); + } + + public void test_select_1() throws Exception { + String sql = "select * from t1 as of tso 100 + 200"; + MySqlStatementParser parser = new MySqlStatementParser(sql); + SQLStatement stmt = parser.parseStatementList().get(0); + parser.match(Token.EOF); + String output = SQLUtils.toMySqlString(stmt); + Assert.assertEquals("SELECT *\n" + + "FROM t1\n" + + "AS OF TSO 100 + 200", output); + } + + public void test_select_2() throws Exception { + String sql = "select * from t1 as of tso 100 + 200 + round(rand()* 10 + 20)"; + MySqlStatementParser parser = new MySqlStatementParser(sql); + SQLStatement stmt = parser.parseStatementList().get(0); + parser.match(Token.EOF); + String output = SQLUtils.toMySqlString(stmt); + Assert.assertEquals("SELECT *\n" + + "FROM t1\n" + + "AS OF TSO 100 + 200 + round(rand() * 10 + 20)", output); + } +} diff --git a/polardbx-optimizer/src/test/java/com/alibaba/polardbx/parser/ReplicaParserTest.java b/polardbx-optimizer/src/test/java/com/alibaba/polardbx/parser/ReplicaParserTest.java new file mode 100644 index 000000000..168ceeec2 --- /dev/null +++ b/polardbx-optimizer/src/test/java/com/alibaba/polardbx/parser/ReplicaParserTest.java @@ -0,0 +1,334 @@ +package com.alibaba.polardbx.parser; + +import com.alibaba.polardbx.common.exception.TddlRuntimeException; +import com.alibaba.polardbx.common.utils.Assert; +import com.alibaba.polardbx.druid.sql.ast.statement.SQLCancelReplicaCheckTableStatement; +import com.alibaba.polardbx.druid.sql.ast.statement.SQLContinueReplicaCheckTableStatement; +import com.alibaba.polardbx.druid.sql.ast.statement.SQLPauseReplicaCheckTableStatement; +import com.alibaba.polardbx.druid.sql.ast.statement.SQLResetReplicaCheckTableStatement; +import com.alibaba.polardbx.druid.sql.ast.statement.SQLShowReplicaCheckDiffStatement; +import com.alibaba.polardbx.druid.sql.ast.statement.SQLShowReplicaCheckProgressStatement; +import com.alibaba.polardbx.druid.sql.ast.statement.SQLStartReplicaCheckTableStatement; +import com.alibaba.polardbx.druid.sql.dialect.mysql.ast.statement.MySqlChangeMasterStatement; +import com.alibaba.polardbx.druid.sql.dialect.mysql.ast.statement.MySqlChangeReplicationFilterStatement; +import com.alibaba.polardbx.druid.sql.dialect.mysql.ast.statement.MySqlResetSlaveStatement; +import com.alibaba.polardbx.druid.sql.dialect.mysql.ast.statement.MySqlShowSlaveStatusStatement; +import com.alibaba.polardbx.druid.sql.dialect.mysql.ast.statement.MySqlStartSlaveStatement; +import com.alibaba.polardbx.druid.sql.dialect.mysql.ast.statement.MySqlStopSlaveStatement; +import com.alibaba.polardbx.optimizer.context.ExecutionContext; +import com.alibaba.polardbx.optimizer.parse.privilege.PrivilegeContext; +import com.alibaba.polardbx.optimizer.parse.visitor.ContextParameters; +import com.alibaba.polardbx.optimizer.parse.visitor.FastSqlToCalciteNodeVisitor; +import com.alibaba.polardbx.rpc.CdcRpcClient; +import org.mockito.MockedStatic; +import org.mockito.Mockito; +import org.junit.Test; + +import static org.mockito.Mockito.when; + +public class ReplicaParserTest { + + private FastSqlToCalciteNodeVisitor visitor; + + @Test + // 测试不启用CDC时抛出异常 + public void testVisitReplicaStatementWithoutCdc() { + try (MockedStatic ob1 = Mockito.mockStatic(CdcRpcClient.class)) { + ob1.when(CdcRpcClient::useCdc).thenReturn(false); + ContextParameters context = new ContextParameters(false); + ExecutionContext ec = new ExecutionContext(); + visitor = new FastSqlToCalciteNodeVisitor(context, ec); + + try { + visitor.visit(Mockito.mock(MySqlChangeMasterStatement.class)); + } catch (Exception e) { + Assert.assertTrue(e instanceof TddlRuntimeException); + Assert.assertTrue(e.getMessage().contains("replica is not support yet")); + } + + try { + visitor.visit(Mockito.mock(MySqlChangeReplicationFilterStatement.class)); + } catch (Exception e) { + Assert.assertTrue(e instanceof TddlRuntimeException); + Assert.assertTrue(e.getMessage().contains("replica is not support yet")); + } + + try { + visitor.visit(Mockito.mock(MySqlStartSlaveStatement.class)); + } catch (Exception e) { + Assert.assertTrue(e instanceof TddlRuntimeException); + Assert.assertTrue(e.getMessage().contains("replica is not support yet")); + } + + try { + visitor.visit(Mockito.mock(MySqlStopSlaveStatement.class)); + } catch (Exception e) { + Assert.assertTrue(e instanceof TddlRuntimeException); + Assert.assertTrue(e.getMessage().contains("replica is not support yet")); + } + + try { + visitor.visit(Mockito.mock(MySqlResetSlaveStatement.class)); + } catch (Exception e) { + Assert.assertTrue(e instanceof TddlRuntimeException); + Assert.assertTrue(e.getMessage().contains("replica is not support yet")); + } + + try { + visitor.visit(Mockito.mock(MySqlShowSlaveStatusStatement.class)); + } catch (Exception e) { + Assert.assertTrue(e instanceof TddlRuntimeException); + Assert.assertTrue(e.getMessage().contains("replica is not support yet")); + } + + try { + visitor.visit(Mockito.mock(SQLResetReplicaCheckTableStatement.class)); + } catch (Exception e) { + Assert.assertTrue(e instanceof TddlRuntimeException); + Assert.assertTrue(e.getMessage().contains("replica is not support yet")); + } + + try { + visitor.visit(Mockito.mock(SQLContinueReplicaCheckTableStatement.class)); + } catch (Exception e) { + Assert.assertTrue(e instanceof TddlRuntimeException); + Assert.assertTrue(e.getMessage().contains("replica is not support yet")); + } + + try { + visitor.visit(Mockito.mock(SQLCancelReplicaCheckTableStatement.class)); + } catch (Exception e) { + Assert.assertTrue(e instanceof TddlRuntimeException); + Assert.assertTrue(e.getMessage().contains("replica is not support yet")); + } + + try { + visitor.visit(Mockito.mock(SQLPauseReplicaCheckTableStatement.class)); + } catch (Exception e) { + Assert.assertTrue(e instanceof TddlRuntimeException); + Assert.assertTrue(e.getMessage().contains("replica is not support yet")); + } + + try { + visitor.visit(Mockito.mock(SQLStartReplicaCheckTableStatement.class)); + } catch (Exception e) { + Assert.assertTrue(e instanceof TddlRuntimeException); + Assert.assertTrue(e.getMessage().contains("replica is not support yet")); + } + + try { + visitor.visit(Mockito.mock(SQLShowReplicaCheckProgressStatement.class)); + } catch (Exception e) { + Assert.assertTrue(e instanceof TddlRuntimeException); + Assert.assertTrue(e.getMessage().contains("replica is not support yet")); + } + + try { + visitor.visit(Mockito.mock(SQLShowReplicaCheckDiffStatement.class)); + } catch (Exception e) { + Assert.assertTrue(e instanceof TddlRuntimeException); + Assert.assertTrue(e.getMessage().contains("replica is not support yet")); + } + } + } + + @Test + // 测试非上帝用户执行命令时抛出异常 + public void testVisitReplicaStatementWithNonGodUser() { + try (MockedStatic ob1 = Mockito.mockStatic(CdcRpcClient.class)) { + ob1.when(CdcRpcClient::useCdc).thenReturn(true); + ExecutionContext mockEc = Mockito.mock(ExecutionContext.class); + when(mockEc.isGod()).thenReturn(false); + PrivilegeContext mockPc = Mockito.mock(PrivilegeContext.class); + when(mockPc.getUser()).thenReturn("testUser"); + when(mockPc.getHost()).thenReturn("testHost"); + when(mockEc.getPrivilegeContext()).thenReturn(mockPc); + ContextParameters context = new ContextParameters(false); + visitor = new FastSqlToCalciteNodeVisitor(context, mockEc); + + try { + visitor.visit(Mockito.mock(MySqlChangeMasterStatement.class)); + } catch (Exception e) { + Assert.assertTrue(e instanceof TddlRuntimeException); + Assert.assertTrue(e.getMessage().contains("User testUser@'testHost' does not have 'GOD' privilege. ")); + } + + try { + visitor.visit(Mockito.mock(MySqlChangeReplicationFilterStatement.class)); + } catch (Exception e) { + Assert.assertTrue(e instanceof TddlRuntimeException); + Assert.assertTrue(e.getMessage().contains("User testUser@'testHost' does not have 'GOD' privilege. ")); + } + + try { + visitor.visit(Mockito.mock(MySqlStartSlaveStatement.class)); + } catch (Exception e) { + Assert.assertTrue(e instanceof TddlRuntimeException); + Assert.assertTrue(e.getMessage().contains("User testUser@'testHost' does not have 'GOD' privilege. ")); + } + + try { + visitor.visit(Mockito.mock(MySqlStopSlaveStatement.class)); + } catch (Exception e) { + Assert.assertTrue(e instanceof TddlRuntimeException); + Assert.assertTrue(e.getMessage().contains("User testUser@'testHost' does not have 'GOD' privilege. ")); + } + + try { + visitor.visit(Mockito.mock(MySqlResetSlaveStatement.class)); + } catch (Exception e) { + Assert.assertTrue(e instanceof TddlRuntimeException); + Assert.assertTrue(e.getMessage().contains("User testUser@'testHost' does not have 'GOD' privilege. ")); + } + + try { + visitor.visit(Mockito.mock(SQLResetReplicaCheckTableStatement.class)); + } catch (Exception e) { + Assert.assertTrue(e instanceof TddlRuntimeException); + Assert.assertTrue(e.getMessage().contains("User testUser@'testHost' does not have 'GOD' privilege. ")); + } + + try { + visitor.visit(Mockito.mock(SQLContinueReplicaCheckTableStatement.class)); + } catch (Exception e) { + Assert.assertTrue(e instanceof TddlRuntimeException); + Assert.assertTrue(e.getMessage().contains("User testUser@'testHost' does not have 'GOD' privilege. ")); + } + + try { + visitor.visit(Mockito.mock(SQLCancelReplicaCheckTableStatement.class)); + } catch (Exception e) { + Assert.assertTrue(e instanceof TddlRuntimeException); + Assert.assertTrue(e.getMessage().contains("User testUser@'testHost' does not have 'GOD' privilege. ")); + } + + try { + visitor.visit(Mockito.mock(SQLPauseReplicaCheckTableStatement.class)); + } catch (Exception e) { + Assert.assertTrue(e instanceof TddlRuntimeException); + Assert.assertTrue(e.getMessage().contains("User testUser@'testHost' does not have 'GOD' privilege. ")); + } + + try { + visitor.visit(Mockito.mock(SQLStartReplicaCheckTableStatement.class)); + } catch (Exception e) { + Assert.assertTrue(e instanceof TddlRuntimeException); + Assert.assertTrue(e.getMessage().contains("User testUser@'testHost' does not have 'GOD' privilege. ")); + } + } + } + + @Test + public void testVisitShowSlaveStatusStatementWithNonGodUser() { + try (MockedStatic ob1 = Mockito.mockStatic(CdcRpcClient.class)) { + ob1.when(CdcRpcClient::useCdc).thenReturn(true); + ExecutionContext mockEc = Mockito.mock(ExecutionContext.class); + when(mockEc.isGod()).thenReturn(false); + PrivilegeContext mockPc = Mockito.mock(PrivilegeContext.class); + when(mockPc.getUser()).thenReturn("testUser"); + when(mockPc.getHost()).thenReturn("testHost"); + when(mockEc.getPrivilegeContext()).thenReturn(mockPc); + ContextParameters context = new ContextParameters(false); + visitor = new FastSqlToCalciteNodeVisitor(context, mockEc); + + try { + visitor.visit(Mockito.mock(MySqlShowSlaveStatusStatement.class)); + } catch (Exception e) { + Assert.assertTrue(!e.getMessage().contains("User testUser@'testHost' does not have 'GOD' privilege. ")); + } + } + } + + @Test + // 测试非上帝用户执行命令时抛出异常 + public void testVisitReplicaStatementWithGodUser() { + try (MockedStatic ob1 = Mockito.mockStatic(CdcRpcClient.class)) { + ob1.when(CdcRpcClient::useCdc).thenReturn(true); + ExecutionContext mockEc = Mockito.mock(ExecutionContext.class); + when(mockEc.isGod()).thenReturn(true); + PrivilegeContext mockPc = Mockito.mock(PrivilegeContext.class); + when(mockPc.getUser()).thenReturn("testUser"); + when(mockPc.getHost()).thenReturn("testHost"); + when(mockEc.getPrivilegeContext()).thenReturn(mockPc); + ContextParameters context = new ContextParameters(false); + visitor = new FastSqlToCalciteNodeVisitor(context, mockEc); + + try { + visitor.visit(Mockito.mock(MySqlChangeMasterStatement.class)); + } catch (Exception e) { + Assert.assertTrue(e instanceof TddlRuntimeException); + Assert.assertTrue(!e.getMessage().contains("User testUser@'testHost' does not have 'GOD' privilege. ")); + } + + try { + visitor.visit(Mockito.mock(MySqlChangeReplicationFilterStatement.class)); + } catch (Exception e) { + Assert.assertTrue(e instanceof TddlRuntimeException); + Assert.assertTrue(!e.getMessage().contains("User testUser@'testHost' does not have 'GOD' privilege. ")); + } + + try { + visitor.visit(Mockito.mock(MySqlStartSlaveStatement.class)); + } catch (Exception e) { + Assert.assertTrue(e instanceof TddlRuntimeException); + Assert.assertTrue(!e.getMessage().contains("User testUser@'testHost' does not have 'GOD' privilege. ")); + } + + try { + visitor.visit(Mockito.mock(MySqlStopSlaveStatement.class)); + } catch (Exception e) { + Assert.assertTrue(e instanceof TddlRuntimeException); + Assert.assertTrue(!e.getMessage().contains("User testUser@'testHost' does not have 'GOD' privilege. ")); + } + + try { + visitor.visit(Mockito.mock(MySqlResetSlaveStatement.class)); + } catch (Exception e) { + Assert.assertTrue(e instanceof TddlRuntimeException); + Assert.assertTrue(!e.getMessage().contains("User testUser@'testHost' does not have 'GOD' privilege. ")); + } + + try { + visitor.visit(Mockito.mock(SQLResetReplicaCheckTableStatement.class)); + } catch (Exception e) { + Assert.assertTrue(e instanceof TddlRuntimeException); + Assert.assertTrue(!e.getMessage().contains("User testUser@'testHost' does not have 'GOD' privilege. ")); + } + + try { + visitor.visit(Mockito.mock(SQLContinueReplicaCheckTableStatement.class)); + } catch (Exception e) { + Assert.assertTrue(e instanceof TddlRuntimeException); + Assert.assertTrue(!e.getMessage().contains("User testUser@'testHost' does not have 'GOD' privilege. ")); + } + + try { + visitor.visit(Mockito.mock(SQLCancelReplicaCheckTableStatement.class)); + } catch (Exception e) { + Assert.assertTrue(e instanceof TddlRuntimeException); + Assert.assertTrue(!e.getMessage().contains("User testUser@'testHost' does not have 'GOD' privilege. ")); + } + + try { + visitor.visit(Mockito.mock(SQLPauseReplicaCheckTableStatement.class)); + } catch (Exception e) { + Assert.assertTrue(e instanceof TddlRuntimeException); + Assert.assertTrue(!e.getMessage().contains("User testUser@'testHost' does not have 'GOD' privilege. ")); + } + + try { + visitor.visit(Mockito.mock(SQLStartReplicaCheckTableStatement.class)); + } catch (Exception e) { + Assert.assertTrue(e instanceof TddlRuntimeException); + Assert.assertTrue(!e.getMessage().contains("User testUser@'testHost' does not have 'GOD' privilege. ")); + } + + try { + visitor.visit(Mockito.mock(MySqlShowSlaveStatusStatement.class)); + } catch (Exception e) { + Assert.assertTrue(!e.getMessage().contains("User testUser@'testHost' does not have 'GOD' privilege. ")); + } + } + } + +} diff --git a/polardbx-optimizer/src/test/java/com/alibaba/polardbx/planner/oss/OssTpchTest.java b/polardbx-optimizer/src/test/java/com/alibaba/polardbx/planner/cbo/LimitTest.java similarity index 76% rename from polardbx-optimizer/src/test/java/com/alibaba/polardbx/planner/oss/OssTpchTest.java rename to polardbx-optimizer/src/test/java/com/alibaba/polardbx/planner/cbo/LimitTest.java index 24f0a8d1b..4e7a5e48f 100644 --- a/polardbx-optimizer/src/test/java/com/alibaba/polardbx/planner/oss/OssTpchTest.java +++ b/polardbx-optimizer/src/test/java/com/alibaba/polardbx/planner/cbo/LimitTest.java @@ -14,23 +14,22 @@ * limitations under the License. */ -package com.alibaba.polardbx.planner.oss; +package com.alibaba.polardbx.planner.cbo; import com.alibaba.polardbx.planner.common.ParameterizedTestCommon; import org.junit.runners.Parameterized; import java.util.List; -/** - * @author Shi Yuxuan - */ -public class OssTpchTest extends ParameterizedTestCommon { - public OssTpchTest(String caseName, int sqlIndex, String sql, String expectedPlan, String lineNum) { +public class LimitTest extends ParameterizedTestCommon { + + public LimitTest(String caseName, int sqlIndex, String sql, String expectedPlan, String lineNum) { super(caseName, sqlIndex, sql, expectedPlan, lineNum); } @Parameterized.Parameters(name = "{0}:{1}") public static List prepare() { - return loadSqls(OssTpchTest.class); + return loadSqls(LimitTest.class); } -} + +} \ No newline at end of file diff --git a/polardbx-optimizer/src/test/java/com/alibaba/polardbx/planner/common/BasePlannerTest.java b/polardbx-optimizer/src/test/java/com/alibaba/polardbx/planner/common/BasePlannerTest.java index b94169c56..df6daba96 100644 --- a/polardbx-optimizer/src/test/java/com/alibaba/polardbx/planner/common/BasePlannerTest.java +++ b/polardbx-optimizer/src/test/java/com/alibaba/polardbx/planner/common/BasePlannerTest.java @@ -945,7 +945,7 @@ private boolean isDDLInit() { return ddlFlag.contains(fileName); } - private void prepareSchemaByDdl() { + protected void prepareSchemaByDdl() { if (isDDLInit()) { return; } diff --git a/polardbx-optimizer/src/test/java/com/alibaba/polardbx/planner/ddl/AlterTableSplitPartitionTest.java b/polardbx-optimizer/src/test/java/com/alibaba/polardbx/planner/ddl/AlterTableSplitPartitionTest.java new file mode 100644 index 000000000..28555d92f --- /dev/null +++ b/polardbx-optimizer/src/test/java/com/alibaba/polardbx/planner/ddl/AlterTableSplitPartitionTest.java @@ -0,0 +1,27 @@ +package com.alibaba.polardbx.planner.ddl; + +import com.alibaba.polardbx.planner.common.ParameterizedTestCommon; +import org.junit.runners.Parameterized; + +import java.util.List; + +public class AlterTableSplitPartitionTest extends ParameterizedTestCommon { + + public AlterTableSplitPartitionTest(String caseName, int sqlIndex, String sql, String expectedPlan, + String lineNum) { + super(caseName, sqlIndex, sql, expectedPlan, lineNum); + } + + @Parameterized.Parameters(name = "{0}:{1}") + public static List prepare() { + return loadSqls(AlterTableSplitPartitionTest.class); + } + + public void testAlterAstToString() { + try { + + } catch (Throwable e) { + + } + } +} \ No newline at end of file diff --git a/polardbx-optimizer/src/test/java/com/alibaba/polardbx/planner/ddl/CreateTableTest.java b/polardbx-optimizer/src/test/java/com/alibaba/polardbx/planner/ddl/CreateTableTest.java new file mode 100644 index 000000000..d060748ee --- /dev/null +++ b/polardbx-optimizer/src/test/java/com/alibaba/polardbx/planner/ddl/CreateTableTest.java @@ -0,0 +1,17 @@ +package com.alibaba.polardbx.planner.ddl; + +import com.alibaba.polardbx.planner.common.ParameterizedTestCommon; +import org.junit.runners.Parameterized; + +import java.util.List; + +public class CreateTableTest extends ParameterizedTestCommon { + public CreateTableTest(String caseName, int sqlIndex, String sql, String expectedPlan, String lineNum) { + super(caseName, sqlIndex, sql, expectedPlan, lineNum); + } + + @Parameterized.Parameters(name = "{0}:{1}") + public static List prepare() { + return loadSqls(CreateTableTest.class); + } +} \ No newline at end of file diff --git a/polardbx-optimizer/src/test/java/com/alibaba/polardbx/planner/flashback/FlashbackQueryTsoTest.java b/polardbx-optimizer/src/test/java/com/alibaba/polardbx/planner/flashback/FlashbackQueryTsoTest.java new file mode 100644 index 000000000..91a095c81 --- /dev/null +++ b/polardbx-optimizer/src/test/java/com/alibaba/polardbx/planner/flashback/FlashbackQueryTsoTest.java @@ -0,0 +1,135 @@ +package com.alibaba.polardbx.planner.flashback; + +import com.alibaba.polardbx.common.utils.version.InstanceVersion; +import com.alibaba.polardbx.optimizer.PlannerContext; +import com.alibaba.polardbx.optimizer.context.ExecutionContext; +import com.alibaba.polardbx.optimizer.core.planner.ExecutionPlan; +import com.alibaba.polardbx.optimizer.core.planner.Planner; +import com.alibaba.polardbx.optimizer.parse.FastsqlParser; +import com.alibaba.polardbx.optimizer.utils.RelUtils; +import com.alibaba.polardbx.optimizer.utils.RexUtils; +import com.alibaba.polardbx.planner.common.BasePlannerTest; +import org.apache.calcite.sql.SqlCall; +import org.apache.calcite.sql.SqlKind; +import org.apache.calcite.sql.SqlNode; +import org.apache.calcite.sql.TDDLSqlSelect; +import org.junit.AfterClass; +import org.junit.Assert; +import org.junit.BeforeClass; +import org.junit.Test; + +import static org.apache.calcite.sql.fun.SqlStdOperatorTable.AS_OF_57; +import static org.apache.calcite.sql.fun.SqlStdOperatorTable.AS_OF_80; + +/** + * @author lijiu.lzw + */ +public class FlashbackQueryTsoTest extends BasePlannerTest { + private static boolean isMySQL80; + + public FlashbackQueryTsoTest() { + super("FlashbackQueryTsoTest"); + } + + @BeforeClass + public static void before() { + isMySQL80 = InstanceVersion.isMYSQL80(); + } + + @AfterClass + public static void after() { + InstanceVersion.setMYSQL80(isMySQL80); + } + + @Override + protected String getPlan(String testSql) { + return null; + } + + protected ExecutionPlan getExecutionPlan(ExecutionContext executionContext, String testSql) { + SqlNode ast = new FastsqlParser().parse(testSql, executionContext).get(0); + PlannerContext plannerContext = PlannerContext.fromExecutionContext(executionContext); + + return Planner.getInstance().getPlan(ast, plannerContext); + } + + protected void prepareTable() throws Exception { + String tableSql = "CREATE TABLE `asOfTsoTest` (\n" + + " `id` bigint NOT NULL AUTO_INCREMENT,\n" + + " `k` int(11) NOT NULL DEFAULT '0',\n" + + " `c` char(120) NOT NULL DEFAULT '',\n" + + " `pad` char(60) NOT NULL DEFAULT '',\n" + + " PRIMARY KEY (`id`),\n" + + " INDEX `k_1` (`k`)\n" + + ") dbpartition by hash(id);"; + buildTable(getAppName(), tableSql); + } + + @Test + public void test57Tso() throws Exception { + InstanceVersion.setMYSQL80(false); + + prepareTable(); + + String sql = "select * from asOfTsoTest as of tso 10 + tso_timestamp()"; + ExecutionContext executionContext = new ExecutionContext(appName); + ExecutionPlan plan = getExecutionPlan(executionContext, sql); + + String planStr = RelUtils.toString(plan.getPlan(), null, + RexUtils.getEvalFunc(executionContext), executionContext); + + String expected = "Gather(concurrent=true)\n" + + " LogicalView(tables=\"[0000-0003].asOfTsoTest\", shardCount=4, sql=\"SELECT `id`, `k`, `c`, `pad` FROM `asOfTsoTest` AS OF TSO (10 + TSO_TIMESTAMP()) AS `asOfTsoTest`\")\n"; + Assert.assertEquals(expected, planStr); + TDDLSqlSelect select = (TDDLSqlSelect) plan.getAst(); + SqlCall from = (SqlCall) select.getFrom(); + Assert.assertEquals(SqlKind.AS_OF, from.getKind()); + Assert.assertEquals(AS_OF_57, from.getOperator()); + + } + + @Test + public void test80Tso() throws Exception { + InstanceVersion.setMYSQL80(true); + + prepareTable(); + + String sql = "select * from asOfTsoTest as of tso 1000"; + ExecutionContext executionContext = new ExecutionContext(appName); + ExecutionPlan plan = getExecutionPlan(executionContext, sql); + + String planStr = RelUtils.toString(plan.getPlan(), null, + RexUtils.getEvalFunc(executionContext), executionContext); + + String expected = "Gather(concurrent=true)\n" + + " LogicalView(tables=\"[0000-0003].asOfTsoTest\", shardCount=4, sql=\"SELECT `id`, `k`, `c`, `pad` FROM `asOfTsoTest` AS OF GCN 1000 AS `asOfTsoTest`\")\n"; + Assert.assertEquals(expected, planStr); + TDDLSqlSelect select = (TDDLSqlSelect) plan.getAst(); + SqlCall from = (SqlCall) select.getFrom(); + Assert.assertEquals(SqlKind.AS_OF, from.getKind()); + Assert.assertEquals(AS_OF_80, from.getOperator()); + } + + @Test + public void test80TsoExpress() throws Exception { + InstanceVersion.setMYSQL80(true); + + prepareTable(); + + String sql = "select * from asOfTsoTest as of tso 1000 + 2000 * tso_timestamp()"; + ExecutionContext executionContext = new ExecutionContext(appName); + ExecutionPlan plan = getExecutionPlan(executionContext, sql); + + String planStr = RelUtils.toString(plan.getPlan(), null, + RexUtils.getEvalFunc(executionContext), executionContext); + + String expected = "Gather(concurrent=true)\n" + + " LogicalView(tables=\"[0000-0003].asOfTsoTest\", shardCount=4, sql=\"SELECT `id`, `k`, `c`, `pad` FROM `asOfTsoTest` AS OF GCN (1000 + (2000 * TSO_TIMESTAMP())) AS `asOfTsoTest`\")\n"; + Assert.assertEquals(expected, planStr); + TDDLSqlSelect select = (TDDLSqlSelect) plan.getAst(); + SqlCall from = (SqlCall) select.getFrom(); + Assert.assertEquals(SqlKind.AS_OF, from.getKind()); + Assert.assertEquals(AS_OF_80, from.getOperator()); + } + +} diff --git a/polardbx-optimizer/src/test/java/com/alibaba/polardbx/planner/partition/PartitionDistinctAggTest.java b/polardbx-optimizer/src/test/java/com/alibaba/polardbx/planner/partition/PartitionDistinctAggTest.java new file mode 100644 index 000000000..a7394fedf --- /dev/null +++ b/polardbx-optimizer/src/test/java/com/alibaba/polardbx/planner/partition/PartitionDistinctAggTest.java @@ -0,0 +1,27 @@ +package com.alibaba.polardbx.planner.partition; + +import com.alibaba.polardbx.planner.common.PlanTestCommon; +import org.junit.runners.Parameterized; + +import java.util.List; + +/** + * @author dylan + */ +public class PartitionDistinctAggTest extends PlanTestCommon { + + public PartitionDistinctAggTest(String caseName, int sqlIndex, String sql, String expectedPlan, String lineNum) { + super(caseName, sqlIndex, sql, expectedPlan, lineNum); + } + + @Override + protected void initBasePlannerTestEnv() { + this.useNewPartDb = true; + } + + @Parameterized.Parameters(name = "{0}:{1}") + public static List prepare() { + return loadSqls(PartitionDistinctAggTest.class); + } + +} diff --git a/polardbx-optimizer/src/test/java/com/alibaba/polardbx/planner/rewriter/DistinctAggRuleTest.java b/polardbx-optimizer/src/test/java/com/alibaba/polardbx/planner/rewriter/DistinctAggRuleTest.java index 8cd305047..2a62d6530 100644 --- a/polardbx-optimizer/src/test/java/com/alibaba/polardbx/planner/rewriter/DistinctAggRuleTest.java +++ b/polardbx-optimizer/src/test/java/com/alibaba/polardbx/planner/rewriter/DistinctAggRuleTest.java @@ -26,7 +26,7 @@ public class DistinctAggRuleTest extends BasePlanRewriterTest { public DistinctAggRuleTest(String caseName, int sqlIndex, String sql, String expectedPlan, String lineNum) { - super(caseName, sqlIndex, sql, expectedPlan, lineNum); + super(caseName, sqlIndex, "/*+TDDL:ENABLE_PUSHDOWN_DISTINCT=false*/" + sql, expectedPlan, lineNum); } @Parameterized.Parameters(name = "{0}:{1}") diff --git a/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/cbo/LimitTest.yml b/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/cbo/LimitTest.yml new file mode 100644 index 000000000..6aa67c022 --- /dev/null +++ b/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/cbo/LimitTest.yml @@ -0,0 +1,79 @@ +SQL: + - sql: | + SELECT foo.id AS foo_id, foo.bar AS foo_bar, foo.`range` AS foo_range FROM alchemy_foo as foo ORDER BY foo.bar LIMIT 10, 18446744073709551615; + plan: | + mergesort(sort="bar asc", offset=?0, fetch=?1) + logicalview(tables="[0000-0003].alchemy_foo", shardcount=4, sql="select `id`, `bar`, `range` from `alchemy_foo` as `alchemy_foo` order by `bar` limit (? + ?)") + - sql: | + SELECT foo.id AS foo_id, foo.bar AS foo_bar, foo.`range` AS foo_range FROM alchemy_foo as foo ORDER BY foo.bar LIMIT 18446744073709551615, 10; + plan: | + mergesort(sort="bar asc", offset=?0, fetch=?1) + logicalview(tables="[0000-0003].alchemy_foo", shardcount=4, sql="select `id`, `bar`, `range` from `alchemy_foo` as `alchemy_foo` order by `bar` limit (? + ?)") + - sql: | + SELECT foo.id AS foo_id, foo.bar AS foo_bar, foo.`range` AS foo_range FROM alchemy_foo as foo ORDER BY foo.bar LIMIT -1, 18446744073709551615; + plan: | + ERR-CODE: [TDDL-4501][ERR_OPTIMIZER] optimize error by get rex -1 + - sql: | + SELECT foo.id AS foo_id, foo.bar AS foo_bar, foo.`range` AS foo_range FROM alchemy_foo as foo ORDER BY foo.bar LIMIT 18446744073709551615, -1; + plan: | + ERR-CODE: [TDDL-4501][ERR_OPTIMIZER] optimize error by get rex -1 + - sql: | + SELECT foo.id AS foo_id, foo.bar AS foo_bar, foo.`range` AS foo_range FROM alchemy_foo as foo ORDER BY foo.bar LIMIT -1, 10; + plan: | + ERR-CODE: [TDDL-4501][ERR_OPTIMIZER] optimize error by get rex -1 + - sql: | + SELECT foo.id AS foo_id, foo.bar AS foo_bar, foo.`range` AS foo_range FROM alchemy_foo as foo ORDER BY foo.bar LIMIT 10, -1; + plan: | + ERR-CODE: [TDDL-4501][ERR_OPTIMIZER] optimize error by get rex -1 + - sql: | + SELECT foo.id AS foo_id, foo.bar AS foo_bar, foo.`range` AS foo_range FROM alchemy_foo as foo ORDER BY foo.bar LIMIT 10, -11; + plan: | + ERR-CODE: [TDDL-4501][ERR_OPTIMIZER] optimize error by get rex -11 + - sql: | + SELECT foo.id AS foo_id, foo.bar AS foo_bar, foo.`range` AS foo_range FROM alchemy_foo as foo ORDER BY foo.bar LIMIT 10, -18446744073709551615; + plan: | + ERR-CODE: [TDDL-4501][ERR_OPTIMIZER] optimize error by get rex -18446744073709551615 + - sql: | + SELECT foo.id AS foo_id, foo.bar AS foo_bar, foo.`range` AS foo_range FROM alchemy_foo as foo ORDER BY foo.bar LIMIT 10, 0; + plan: | + mergesort(sort="bar asc", offset=?0, fetch=?1) + logicalview(tables="[0000-0003].alchemy_foo", shardcount=4, sql="select `id`, `bar`, `range` from `alchemy_foo` as `alchemy_foo` order by `bar` limit (? + ?)") + - sql: | + SELECT foo.id AS foo_id, foo.bar AS foo_bar, foo.`range` AS foo_range FROM alchemy_foo as foo ORDER BY foo.bar LIMIT 10, 1.2; + plan: | + error occurred while applying rule drdssortconvertrule:smp_instance + - sql: | + SELECT foo.id AS foo_id, foo.bar AS foo_bar, foo.`range` AS foo_range FROM alchemy_foo as foo ORDER BY foo.bar LIMIT 10, 1+2; + plan: | + not a literal: +(?1, ?2) + - sql: | + SELECT foo.id AS foo_id, foo.bar AS foo_bar, foo.`range` AS foo_range FROM alchemy_foo as foo ORDER BY foo.bar LIMIT 10, 1.0; + plan: | + error occurred while applying rule drdssortconvertrule:smp_instance + - sql: | + SELECT anon_1.id AS anon_1_id, anon_1.name AS anon_1_name FROM (SELECT users.id AS id, users.name AS name FROM alchemy_users as users ORDER BY users.id LIMIT 2, 18446744073709551615) AS anon_1 INNER JOIN alchemy_orders as orders ON anon_1.id = orders.user_id + plan: | + project(anon_1_id="id", anon_1_name="name") + hashjoin(condition="id = user_id", type="inner") + mergesort(sort="id asc", offset=?0, fetch=?1) + logicalview(tables="[0000-0003].alchemy_users", shardcount=4, sql="select `id`, `name` from `alchemy_users` as `alchemy_users` order by `id` limit (? + ?)") + gather(concurrent=true) + logicalview(tables="[0000-0003].alchemy_orders", shardcount=4, sql="select `user_id` from `alchemy_orders` as `alchemy_orders`") +DDL: + alchemy_foo: + CREATE TABLE `alchemy_foo` ( `id` int(11) NOT NULL AUTO_INCREMENT, `bar` int(11) DEFAULT NULL, `range` int(11) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 ROW_FORMAT = DYNAMIC dbpartition by hash(`id`); + alchemy_users: + CREATE TABLE `alchemy_users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(30) NOT NULL, PRIMARY KEY (`id`)) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 dbpartition by hash(`id`); + alchemy_orders: + CREATE TABLE `alchemy_orders` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` int(11) DEFAULT NULL, `address_id` int(11) DEFAULT NULL, `description` varchar(30) DEFAULT NULL, `isopen` int(11) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 dbpartition by hash(`id`); +STATISTICS: + alchemy_foo: + 100000 + alchemy_users: + 100000 + alchemy_orders: + 100000 +CONFIG: + defaltxxAPPName.isNew: + false + diff --git a/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/ddl/AlterTableSplitPartitionTest.yml b/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/ddl/AlterTableSplitPartitionTest.yml new file mode 100644 index 000000000..cebae599a --- /dev/null +++ b/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/ddl/AlterTableSplitPartitionTest.yml @@ -0,0 +1,24 @@ +SQL: + - sql: | + alter table t1 split partition pd into (partition p2 values in(2) subpartitions 1,partition pd values in(default) subpartitions 2); + plan: | + logicalddl(sql="alter table t1 split partition pd into (partition p2 values in (2) subpartitions 1, partition pd values in (default) subpartitions 2);") + - sql: | + alter table t1 add partition (partition p3 values in(2) subpartitions 1); + plan: | + logicalddl(sql="alter table t1 add partition (partition p3 values in (2) subpartitions 1);") +DDL: + t1: + create table `t1` (`a` int, b int, primary key (a)) + partition by list(a) + subpartition by key(b) + (partition p1 values in(1) subpartitions 3,partition pd values in(default) subpartitions 2); + +STATISTICS: + t1: + 595915652 +CONFIG: + ENABLE_BKA_JOIN: + null + defaltxxAPPName.isNew: + true \ No newline at end of file diff --git a/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/ddl/CreateTableTest.yml b/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/ddl/CreateTableTest.yml new file mode 100644 index 000000000..a162712fe --- /dev/null +++ b/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/ddl/CreateTableTest.yml @@ -0,0 +1,21 @@ +SQL: + - sql: | + alter table t1 partition by key(b); + plan: | + logicalddl(sql="alter table t1 partition by key (b);") + - sql: | + alter table t1 ROW_FORMAT = COMPRESSED KEY_BLOCK_SIZE = 16; + plan: | + logicalddl(sql="alter table t1 row_format = compressed key_block_size = 16;") +DDL: + t1: + create table `t1` (`a` int, b int, primary key (a) KEY_BLOCK_SIZE = 16) ROW_FORMAT = COMPRESSED KEY_BLOCK_SIZE = 8; + +STATISTICS: + t1: + 595915652 +CONFIG: + ENABLE_BKA_JOIN: + null + defaltxxAPPName.isNew: + true \ No newline at end of file diff --git a/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/dml/ComplexDmlTest.delete.yml b/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/dml/ComplexDmlTest.delete.yml index b21f1f95d..e5606fd86 100644 --- a/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/dml/ComplexDmlTest.delete.yml +++ b/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/dml/ComplexDmlTest.delete.yml @@ -355,3 +355,31 @@ plan: | logicalview(tables="optest_0000.test_broadcast,test_broadcast_b", sql="delete `test_broadcast` from `test_broadcast` as `test_broadcast` where ((`id` > ?) and (exists (select `test_broadcast_b`.`id` as `id` from `test_broadcast_b` as `test_broadcast_b` where (`test_broadcast`.`name` = `test_broadcast_b`.`name`))))", params="0") + +- sql: | + delete m from test_hash_tb m,( select 'byname1' as name,'2024-05-10 11:50:00' as create_time, 1 as id union all select 'byname2' ,'2024-05-10 11:51:00', 2 ) r where m.id = r.id + + plan: | + + logicalmodify(type="delete", tables="optest.test_hash_tb") + project(id0="id0", name0="name0", create_time0="create_time0", name="name", create_time="create_time", id="id") + bkajoin(condition="id = id", type="inner") + dynamicvalues(tuples=[{ ?0, ?1, ?2 }, { ?3, ?4, ?5 }]) + gather(concurrent=true) + logicalview(tables="[0000-0003].test_hash_tb", shardcount=4, sql="select `id`, `name`, `create_time` from `test_hash_tb` as `test_hash_tb` where (`id` in (...)) for update") + +- sql: | + delete m from test_hash_tb m,( select 'byname1' as name,'2024-05-10 11:50:00' as create_time, 1 as id union all select name, create_time, id from test_hash_ta ) r where m.id = r.id + + plan: | + + logicalmodify(type="delete", tables="optest.test_hash_tb") + project(id="id0", name="name0", create_time="create_time0", name0="name", create_time0="create_time", id0="id") + bkajoin(condition="id = id", type="inner") + unionall(concurrent=true) + project(name="?0", create_time="?1", id="?2") + values(table="dual") + gather(concurrent=true) + logicalview(tables="[0000-0003].test_hash_ta", shardcount=4, sql="select `name`, `create_time`, `id` from `test_hash_ta` as `test_hash_ta` for update") + gather(concurrent=true) + logicalview(tables="[0000-0003].test_hash_tb", shardcount=4, sql="select `id`, `name`, `create_time` from `test_hash_tb` as `test_hash_tb` where (`id` in (...)) for update") diff --git a/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/dml/ComplexDmlTest.update.yml b/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/dml/ComplexDmlTest.update.yml index 04a7e3f14..3e57c6704 100644 --- a/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/dml/ComplexDmlTest.update.yml +++ b/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/dml/ComplexDmlTest.update.yml @@ -327,4 +327,32 @@ plan: | - LogicalModifyView(tables="optest_0003.img_40", sql="UPDATE `img` AS `img` SET `ding_count` = (`ding_count` + ?) , `is_ding` = ? WHERE (`imgid` IN(?))", isdynamicparam="true") + LogicalModifyView(tables="optest_0003.img_40", sql="UPDATE `img` AS `img` SET `ding_count` = (`ding_count` + ?) , `is_ding` = ? WHERE (`imgid` IN(?))") + +- sql: | + update test_hash_tb m,( select 'byname1' as name,'2024-05-10 11:50:00' as create_time, 1 as id union all select 'byname2' ,'2024-05-10 11:51:00', 2 ) r set m.name = r.name, m.create_time=r.create_time where m.id = r.id + + plan: | + + logicalmodify(type="update", set="test_hash_tb.name=$3, test_hash_tb.create_time=$4") + project(id="id0", name="name0", create_time="create_time0", name0="name", create_time0="create_time", id0="id", gen$0="name", gen$1="create_time") + bkajoin(condition="id = id", type="inner") + dynamicvalues(tuples=[{ ?0, ?1, ?2 }, { ?3, ?4, ?5 }]) + gather(concurrent=true) + logicalview(tables="[0000-0003].test_hash_tb", shardcount=4, sql="select `id`, `name`, `create_time` from `test_hash_tb` as `test_hash_tb` where (`id` in (...)) for update") + +- sql: | + update test_hash_tb m,( select 'byname1' as name,'2024-05-10 11:50:00' as create_time, 1 as id union all select name, create_time, id from test_hash_ta ) r set m.name = r.name, m.create_time=r.create_time where m.id = r.id + + plan: | + + logicalmodify(type="update", set="test_hash_tb.name=$3, test_hash_tb.create_time=$4") + project(id="id0", name="name0", create_time="create_time0", name0="name", create_time0="create_time", id0="id", gen$0="name", gen$1="create_time") + bkajoin(condition="id = id", type="inner") + unionall(concurrent=true) + project(name="?0", create_time="?1", id="?2") + values(table="dual") + gather(concurrent=true) + logicalview(tables="[0000-0003].test_hash_ta", shardcount=4, sql="select `name`, `create_time`, `id` from `test_hash_ta` as `test_hash_ta` for update") + gather(concurrent=true) + logicalview(tables="[0000-0003].test_hash_tb", shardcount=4, sql="select `id`, `name`, `create_time` from `test_hash_tb` as `test_hash_tb` where (`id` in (...)) for update") diff --git a/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/dml/SimpleDmlTest.insert.yml b/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/dml/SimpleDmlTest.insert.yml index 52e9b0b9a..7be0e793f 100644 --- a/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/dml/SimpleDmlTest.insert.yml +++ b/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/dml/SimpleDmlTest.insert.yml @@ -114,3 +114,25 @@ plan: | err-code: [tddl-4501][err_optimizer] optimize error by column 'name' specified twice. + +- sql: | + insert into test_group_sequence() values(); + + plan: | + + PhyTableOperation(tables="optest_0001.[test_group_sequence]", sql="insert into ? (`id`, `name`, `create_time`) values(?, null, current_timestamp)", params="`test_group_sequence`,1") + +- sql: | + insert into test_group_sequence values(); + + plan: | + + PhyTableOperation(tables="optest_0002.[test_group_sequence]", sql="insert into ? (`id`, `name`, `create_time`) values(?, null, current_timestamp)", params="`test_group_sequence`,2") + +- sql: | + insert into test_group_sequence values(),(); + + plan: | + + PhyTableOperation(tables="optest_0003.[test_group_sequence]", sql="insert into ? (`id`, `name`, `create_time`) values(?, null, current_timestamp)", params="`test_group_sequence`,3") + PhyTableOperation(tables="optest_0000.[test_group_sequence]", sql="insert into ? (`id`, `name`, `create_time`) values(?, null, current_timestamp)", params="`test_group_sequence`,4") diff --git a/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/htap/TpParameterizedTest.yml b/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/htap/TpParameterizedTest.yml index 9b8abab7a..f54bc1587 100644 --- a/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/htap/TpParameterizedTest.yml +++ b/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/htap/TpParameterizedTest.yml @@ -8,7 +8,7 @@ update orders set o_orderstatus = 'A' where o_orderkey in (1,1000); plan: | - logicalmodifyview(tables="[0000,0003].orders_[00,15]", shardcount=2, sql="update `orders` as `orders` set `o_orderstatus` = ? where (`o_orderkey` in(?))", isdynamicparam="true") + logicalmodifyview(tables="[0000,0003].orders_[00,15]", shardcount=2, sql="update `orders` as `orders` set `o_orderstatus` = ? where (`o_orderkey` in(?))", pruninginfo="all size:2*2(part), pruning size:2") - sql: | delete from orders where o_orderkey = 1 or o_orderkey = 1000; diff --git a/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/oss/ColumnarCBOPlanTest.yml b/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/oss/ColumnarCBOPlanTest.yml index 3cca988c1..0877c4a32 100644 --- a/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/oss/ColumnarCBOPlanTest.yml +++ b/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/oss/ColumnarCBOPlanTest.yml @@ -714,4 +714,13 @@ partialhashagg(group="id", count(*)="count()") hashwindow(id="id", create_time="create_time", f2w0$o0="window#0max($1)", reference windows="window#0=window(partition {0} order by [] range between unbounded preceding and unbounded following aggs [max($1)])") exchange(distribution=hash[0], collation=[]) - osstablescan(tables="t_shard_id2[p1,p2,p3,p4]", shardcount=4, sql="select `id`, `create_time` from `t_shard_id2` as `t_shard_id2`") \ No newline at end of file + osstablescan(tables="t_shard_id2[p1,p2,p3,p4]", shardcount=4, sql="select `id`, `create_time` from `t_shard_id2` as `t_shard_id2`") + +- sql: | + /*+TDDL:PUSH_AGG_INPUT_ROW_COUNT_THRESHOLD=100000 ENABLE_EXPAND_DISTINCTAGG=false*/select CHECK_SUM(id), CHECK_SUM_V2(id) from t_shard_id2 group by create_time; + plan: | + project(check_sum(id)="check_sum(id)", check_sum_v2(id)="check_sum_v2(id)") + hashagg(group="create_time", check_sum(id)="check_sum_merge(check_sum(id))", check_sum_v2(id)="check_sum_v2_merge(check_sum_v2(id))") + exchange(distribution=hash[0]4, collation=[]) + partialhashagg(group="create_time", check_sum(id)="check_sum(id)", check_sum_v2(id)="check_sum_v2(id)") + osstablescan(tables="t_shard_id2[p1,p2,p3,p4]", shardcount=4, sql="select `id`, `create_time` from `t_shard_id2` as `t_shard_id2`") \ No newline at end of file diff --git a/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/oss/OssExchangeRemoveTest.yml b/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/oss/OssExchangeRemoveTest.yml index 7b8d7d5f0..e486ae7e7 100644 --- a/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/oss/OssExchangeRemoveTest.yml +++ b/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/oss/OssExchangeRemoveTest.yml @@ -271,8 +271,8 @@ SQL: partialhashagg(group="l_shipmode", high_line_count="sum(case)", low_line_count="sum(case2)") project(o_orderkey="o_orderkey", case="case(in($1, row(?0, ?1)), ?2, ?3)", case2="case(and(<>($1, ?4), <>($1, ?5)), ?6, ?7)", l_orderkey="l_orderkey", l_shipmode="l_shipmode") hashjoin(condition="l_orderkey = o_orderkey", type="inner", partition=[local]) - osstablescan(tables="orders[p1,p2,p3,...p192]", shardcount=192, partition=[local, remote], sql="select `o_orderkey`, `o_orderpriority` from `orders` as `orders`", isdynamicparam="true") - osstablescan(tables="lineitem[p1,p2,p3,...p192]", shardcount=192, partition=[local, remote], sql="select `l_orderkey`, `l_shipmode` from `lineitem` as `lineitem` where ((`l_receiptdate` < date_add(?, interval '1' year)) and (`l_shipmode` in(?)) and (`l_commitdate` < `l_receiptdate`) and (`l_shipdate` < `l_commitdate`) and (`l_receiptdate` >= ?))", isdynamicparam="true") + osstablescan(tables="orders[p1,p2,p3,...p192]", shardcount=192, partition=[local, remote], sql="select `o_orderkey`, `o_orderpriority` from `orders` as `orders`") + osstablescan(tables="lineitem[p1,p2,p3,...p192]", shardcount=192, partition=[local, remote], sql="select `l_orderkey`, `l_shipmode` from `lineitem` as `lineitem` where ((`l_receiptdate` < date_add(?, interval '1' year)) and (`l_shipmode` in(?)) and (`l_commitdate` < `l_receiptdate`) and (`l_shipdate` < `l_commitdate`) and (`l_receiptdate` >= ?))") # q13 - sql: | select c_count, count(*) as custdist from ( select c_custkey, count(o_orderkey) as c_count from customer left outer join orders on c_custkey = o_custkey and o_comment not like '%special%packages%' group by c_custkey ) c_orders group by c_count order by custdist desc, c_count desc; @@ -332,10 +332,10 @@ SQL: exchange(distribution=hash[4]192, collation=[]) semihashjoin(condition="ps_suppkey = s_suppkey", type="anti", build="inner") hashjoin(condition="p_partkey = ps_partkey", type="inner", partition=[local]) - osstablescan(tables="partsupp[p1,p2,p3,...p192]", shardcount=192, partition=[local, remote], sql="select `ps_partkey`, `ps_suppkey` from `partsupp` as `partsupp`", isdynamicparam="true") - osstablescan(tables="part[p1,p2,p3,...p192]", shardcount=192, partition=[local, remote], sql="select `p_partkey`, `p_brand`, `p_type`, `p_size` from `part` as `part` where ((`p_size` in(?)) and (`p_brand` <> ?) and (`p_type` not like ?))", isdynamicparam="true") + osstablescan(tables="partsupp[p1,p2,p3,...p192]", shardcount=192, partition=[local, remote], sql="select `ps_partkey`, `ps_suppkey` from `partsupp` as `partsupp`") + osstablescan(tables="part[p1,p2,p3,...p192]", shardcount=192, partition=[local, remote], sql="select `p_partkey`, `p_brand`, `p_type`, `p_size` from `part` as `part` where ((`p_size` in(?)) and (`p_brand` <> ?) and (`p_type` not like ?))") exchange(distribution=broadcast, collation=[]) - osstablescan(tables="supplier[p1,p2,p3,...p192]", shardcount=192, sql="select `s_suppkey` from `supplier` as `supplier` where (`s_comment` like ?)", isdynamicparam="true") + osstablescan(tables="supplier[p1,p2,p3,...p192]", shardcount=192, sql="select `s_suppkey` from `supplier` as `supplier` where (`s_comment` like ?)") # q17 - sql: | /*+TDDL:cmd_extra(ENABLE_BRANCH_AND_BOUND_OPTIMIZATION=false)*/select sum(l_extendedprice) / 7.0 as avg_yearly from lineitem, part where p_partkey = l_partkey and p_brand = 'Brand#51' and p_container = 'SM JAR' and l_quantity < ( select 0.2 * avg(l_quantity) from lineitem where l_partkey = p_partkey ); @@ -385,9 +385,9 @@ SQL: partialhashagg(revenue="sum(__*__)") project(p_partkey="p_partkey", =="p_brand = ?1", in="p_container in row(?2)", between asymmetric="between asymmetric($8, ?6, ?7)", =4="p_brand = ?10", in5="p_container in row(?11)", between asymmetric6="between asymmetric($8, ?15, ?16)", =7="p_brand = ?19", in8="p_container in row(?20)", between asymmetric9="between asymmetric($8, ?24, ?25)", l_partkey="l_partkey", __*__="l_extendedprice * ?0 - l_discount", >=="l_quantity >= ?3", <=="l_quantity <= 17", in0="l_shipmode in row(?8)", =0="l_shipinstruct = ?9", >=6="l_quantity >= ?12", <=7="l_quantity <= 28", in80="l_shipmode in row(?17)", =9="l_shipinstruct = ?18", >=10="l_quantity >= ?21", <=11="l_quantity <= 31", in12="l_shipmode in row(?26)", =13="l_shipinstruct = ?27") hashjoin(condition="p_partkey = l_partkey and ((p_partkey = l_partkey and p_brand = ?1 and p_container in row(?2) and l_quantity >= ?3 and l_quantity <= ?4 + ?5 and between asymmetric($8, ?6, ?7) and l_shipmode in row(?8) and l_shipinstruct = ?9) or (p_partkey = l_partkey and p_brand = ?10 and p_container in row(?11) and l_quantity >= ?12 and l_quantity <= ?13 + ?14 and between asymmetric($8, ?15, ?16) and l_shipmode in row(?17) and l_shipinstruct = ?18) or (p_partkey = l_partkey and p_brand = ?19 and p_container in row(?20) and l_quantity >= ?21 and l_quantity <= ?22 + ?23 and between asymmetric($8, ?24, ?25) and l_shipmode in row(?26) and l_shipinstruct = ?27))", type="inner") - osstablescan(tables="lineitem[p1,p2,p3,...p192]", shardcount=192, partition=[remote], sql="select `l_partkey`, `l_quantity`, `l_extendedprice`, `l_discount`, `l_shipinstruct`, `l_shipmode` from `lineitem` as `lineitem` where (((`l_quantity` >= ?) and (`l_quantity` <= (? + ?)) and (`l_shipmode` in(?)) and (`l_shipinstruct` = ?)) or ((`l_quantity` >= ?) and (`l_quantity` <= (? + ?)) and (`l_shipmode` in(?)) and (`l_shipinstruct` = ?)) or ((`l_quantity` >= ?) and (`l_quantity` <= (? + ?)) and (`l_shipmode` in(?)) and (`l_shipinstruct` = ?)))", isdynamicparam="true") + osstablescan(tables="lineitem[p1,p2,p3,...p192]", shardcount=192, partition=[remote], sql="select `l_partkey`, `l_quantity`, `l_extendedprice`, `l_discount`, `l_shipinstruct`, `l_shipmode` from `lineitem` as `lineitem` where (((`l_quantity` >= ?) and (`l_quantity` <= (? + ?)) and (`l_shipmode` in(?)) and (`l_shipinstruct` = ?)) or ((`l_quantity` >= ?) and (`l_quantity` <= (? + ?)) and (`l_shipmode` in(?)) and (`l_shipinstruct` = ?)) or ((`l_quantity` >= ?) and (`l_quantity` <= (? + ?)) and (`l_shipmode` in(?)) and (`l_shipinstruct` = ?)))") exchange(distribution=broadcast, collation=[]) - osstablescan(tables="part[p1,p2,p3,...p192]", shardcount=192, sql="select `p_partkey`, `p_brand`, `p_size`, `p_container` from `part` as `part` where (((`p_brand` = ?) and (`p_container` in(?)) and (`p_size` between ? and ?)) or ((`p_brand` = ?) and (`p_container` in(?)) and (`p_size` between ? and ?)) or ((`p_brand` = ?) and (`p_container` in(?)) and (`p_size` between ? and ?)))", isdynamicparam="true") + osstablescan(tables="part[p1,p2,p3,...p192]", shardcount=192, sql="select `p_partkey`, `p_brand`, `p_size`, `p_container` from `part` as `part` where (((`p_brand` = ?) and (`p_container` in(?)) and (`p_size` between ? and ?)) or ((`p_brand` = ?) and (`p_container` in(?)) and (`p_size` between ? and ?)) or ((`p_brand` = ?) and (`p_container` in(?)) and (`p_size` between ? and ?)))") # q20 - sql: | select s_name, s_address from supplier, nation where s_suppkey in ( select ps_suppkey from partsupp where ps_partkey in ( select p_partkey from part where p_name like 'mint%' ) and ps_availqty > ( select 0.5 * sum(l_quantity) from lineitem where l_partkey = ps_partkey and l_suppkey = ps_suppkey and l_shipdate >= '1993-01-01' and l_shipdate < '1993-01-01' + interval '1' year ) ) and s_nationkey = n_nationkey and n_name = 'UNITED STATES' order by s_name; @@ -451,14 +451,14 @@ SQL: semihashjoin(condition="o_custkey = c_custkey", type="anti", build="outer") project($f0="$f0", $f1="$f1", c_custkey="c_custkey", c_phone="c_phone", c_acctbal="c_acctbal") nljoin(condition="c_acctbal > $f0 / $f1", type="inner") - osstablescan(tables="customer[p1,p2,p3,...p192]", shardcount=192, partition=[remote], sql="select `c_custkey`, `c_phone`, `c_acctbal` from `customer` as `customer` where ((substring(`c_phone`, ?, ?)) in(?))", isdynamicparam="true") + osstablescan(tables="customer[p1,p2,p3,...p192]", shardcount=192, partition=[remote], sql="select `c_custkey`, `c_phone`, `c_acctbal` from `customer` as `customer` where ((substring(`c_phone`, ?, ?)) in(?))") exchange(distribution=broadcast, collation=[]) hashagg($f0="sum($f0)", $f1="sum($f1)") exchange(distribution=single, collation=[]) partialhashagg($f0="sum(c_acctbal)", $f1="count()") - osstablescan(tables="customer[p1,p2,p3,...p192]", shardcount=192, sql="select `c_acctbal` from `customer` as `customer` where (((substring(`c_phone`, ?, ?)) in(?)) and (`c_acctbal` > ?))", isdynamicparam="true") + osstablescan(tables="customer[p1,p2,p3,...p192]", shardcount=192, sql="select `c_acctbal` from `customer` as `customer` where (((substring(`c_phone`, ?, ?)) in(?)) and (`c_acctbal` > ?))") exchange(distribution=hash[0]192, collation=[]) - osstablescan(tables="orders[p1,p2,p3,...p192]", shardcount=192, sql="select `o_custkey` from `orders` as `orders`", isdynamicparam="true") + osstablescan(tables="orders[p1,p2,p3,...p192]", shardcount=192, sql="select `o_custkey` from `orders` as `orders`") - sql: | select n_name from customer, orders, nation where c_custkey = o_custkey and c_nationkey = n_nationkey and o_orderdate >= '1996-01-01' and o_orderdate < '1997-01-01'; plan: | diff --git a/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/oss/OssMergeIndexTest.yml b/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/oss/OssMergeIndexTest.yml index 422e7710c..7f8eca3e5 100644 --- a/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/oss/OssMergeIndexTest.yml +++ b/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/oss/OssMergeIndexTest.yml @@ -20,11 +20,10 @@ SQL: hashagg(group="l_orderkey,l_partkey,l_suppkey,l_tax,l_linenumber") unionall(concurrent=true) gather(concurrent=true) - osstablescan(tables="lineitem[p1,p2,p3,...p128]", shardcount=128, sql="select `l_orderkey`, `l_partkey`, `l_suppkey`, `l_tax`, `l_linenumber` from `lineitem` as `lineitem` where (`l_orderkey` = ?)", isdynamicparam="true") - gather(concurrent=true) - osstablescan(tables="lineitem[p107]", sql="select `l_orderkey`, `l_partkey`, `l_suppkey`, `l_tax`, `l_linenumber` from `lineitem` as `lineitem` where ((`l_suppkey` = ?) and (`l_partkey` = ?))", isdynamicparam="true") + osstablescan(tables="lineitem[p1,p2,p3,...p128]", shardcount=128, sql="select `l_orderkey`, `l_partkey`, `l_suppkey`, `l_tax`, `l_linenumber` from `lineitem` as `lineitem` where (`l_orderkey` = ?)") + osstablescan(tables="lineitem[p107]", sql="select `l_orderkey`, `l_partkey`, `l_suppkey`, `l_tax`, `l_linenumber` from `lineitem` as `lineitem` where ((`l_suppkey` = ?) and (`l_partkey` = ?))") gather(concurrent=true) - osstablescan(tables="lineitem[p4,p16,p128]", shardcount=3, sql="select `l_orderkey`, `l_partkey`, `l_suppkey`, `l_tax`, `l_linenumber` from `lineitem` as `lineitem` where (`l_partkey` in(?))", isdynamicparam="true") + osstablescan(tables="lineitem[p4,p16,p128]", shardcount=3, sql="select `l_orderkey`, `l_partkey`, `l_suppkey`, `l_tax`, `l_linenumber` from `lineitem` as `lineitem` where (`l_partkey` in(?))", pruninginfo="all size:3*3(part), pruning size:6") - sql: | /*+TDDL:cmd_extra(ENABLE_OSS_INDEX_SELECTION=true)*/select l_tax from lineitem where ((l_partkey = 1 and l_suppkey = 2) or ( l_partkey in (2,3,4))) or (l_orderkey between 3 and 70); plan: | @@ -32,17 +31,15 @@ SQL: hashagg(group="l_orderkey,l_partkey,l_suppkey,l_tax,l_linenumber") unionall(concurrent=true) gather(concurrent=true) - osstablescan(tables="lineitem[p1,p2,p3,...p128]", shardcount=128, sql="select `l_orderkey`, `l_partkey`, `l_suppkey`, `l_tax`, `l_linenumber` from `lineitem` as `lineitem` where (`l_orderkey` between ? and ?)", isdynamicparam="true") - gather(concurrent=true) - osstablescan(tables="lineitem[p107]", sql="select `l_orderkey`, `l_partkey`, `l_suppkey`, `l_tax`, `l_linenumber` from `lineitem` as `lineitem` where ((`l_suppkey` = ?) and (`l_partkey` = ?))", isdynamicparam="true") + osstablescan(tables="lineitem[p1,p2,p3,...p128]", shardcount=128, sql="select `l_orderkey`, `l_partkey`, `l_suppkey`, `l_tax`, `l_linenumber` from `lineitem` as `lineitem` where (`l_orderkey` between ? and ?)") + osstablescan(tables="lineitem[p107]", sql="select `l_orderkey`, `l_partkey`, `l_suppkey`, `l_tax`, `l_linenumber` from `lineitem` as `lineitem` where ((`l_suppkey` = ?) and (`l_partkey` = ?))") gather(concurrent=true) - osstablescan(tables="lineitem[p4,p16,p128]", shardcount=3, sql="select `l_orderkey`, `l_partkey`, `l_suppkey`, `l_tax`, `l_linenumber` from `lineitem` as `lineitem` where (`l_partkey` in(?))", isdynamicparam="true") + osstablescan(tables="lineitem[p4,p16,p128]", shardcount=3, sql="select `l_orderkey`, `l_partkey`, `l_suppkey`, `l_tax`, `l_linenumber` from `lineitem` as `lineitem` where (`l_partkey` in(?))", pruninginfo="all size:3*3(part), pruning size:6") - sql: | /*+TDDL:cmd_extra(ENABLE_OSS_INDEX_SELECTION=true)*/select l_tax from lineitem where ((l_partkey = 1 and l_suppkey = 2) or ( l_partkey in (2,3,4))) and (l_orderkey between 3 and 70); plan: | gather(concurrent=true) - osstablescan(tables="lineitem[p4,p16,p107,p128]", shardcount=4, sql="select `l_tax` from `lineitem` as `lineitem` where ((`l_orderkey` between ? and ?) and (((`l_partkey` = ?) and (`l_suppkey` = ?)) or (`l_partkey` in(?))))", isdynamicparam="true") - + osstablescan(tables="lineitem[p4,p16,p107,p128]", shardcount=4, sql="select `l_tax` from `lineitem` as `lineitem` where ((`l_orderkey` between ? and ?) and (((`l_partkey` = ?) and (`l_suppkey` = ?)) or (`l_partkey` in(?))))", pruninginfo="all size:3*4(part), pruning size:6") DDL: lineitem: @@ -211,7 +208,7 @@ STATISTICS: lineitem.l_tax.sample_rate: 1.6666707E-4 lineitem.l_partkey.composite_cardinality: - -11819 + 11819 CONFIG: ENABLE_BKA_JOIN: null diff --git a/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/oss/OssTpchTest.yml b/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/oss/OssTpchTest.yml index f920b2c7c..e69de29bb 100644 --- a/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/oss/OssTpchTest.yml +++ b/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/oss/OssTpchTest.yml @@ -1,1240 +0,0 @@ -SQL: - - sql: | - select s_name, count(*) as numwait from supplier, lineitem l1, orders, nation where s_suppkey = l1.l_suppkey and o_orderkey = l1.l_orderkey and o_orderstatus = 'F' and l1.l_receiptdate > l1.l_commitdate and exists ( select * from lineitem l2 where l2.l_orderkey = l1.l_orderkey and l2.l_suppkey <> l1.l_suppkey ) and not exists ( select * from lineitem l3 where l3.l_orderkey = l1.l_orderkey and l3.l_suppkey <> l1.l_suppkey and l3.l_receiptdate > l3.l_commitdate ) and s_nationkey = n_nationkey and n_name = 'ARGENTINA' group by s_name order by numwait desc, s_name limit 100; - plan: | - TopN(sort="numwait DESC,s_name ASC", offset=0, fetch=?2) - HashAgg(group="s_name", numwait="COUNT()") - SemiHashJoin(condition="l_orderkey = l_orderkey AND l_suppkey <> l_suppkey", type="semi", build="inner") - SemiHashJoin(condition="l_orderkey = l_orderkey AND l_suppkey <> l_suppkey", type="anti", build="inner") - Project(s_suppkey="s_suppkey", s_name="s_name", s_nationkey="s_nationkey", n_nationkey="n_nationkey", l_orderkey="l_orderkey", l_suppkey="l_suppkey", o_orderkey="o_orderkey") - HashJoin(condition="l_orderkey = o_orderkey", type="inner") - HashJoin(condition="l_suppkey = s_suppkey", type="inner") - Gather(concurrent=true) - OSSTableScan(tables="lineitem[p1,p2,p3,p4]", shardCount=4, sql="SELECT `l_orderkey`, `l_suppkey` FROM `lineitem` AS `lineitem` WHERE (`l_receiptdate` > `l_commitdate`)") - HashJoin(condition="n_nationkey = s_nationkey", type="inner") - Gather(concurrent=true) - OSSTableScan(tables="supplier[p1,p2,p3,p4]", shardCount=4, sql="SELECT `s_suppkey`, `s_name`, `s_nationkey` FROM `supplier` AS `supplier`") - Gather(concurrent=true) - OSSTableScan(tables="nation", shardCount=0, sql="SELECT `n_nationkey` FROM `nation` AS `nation` WHERE (`n_name` = ?)") - Gather(concurrent=true) - OSSTableScan(tables="orders[p1,p2,p3,p4]", shardCount=4, sql="SELECT `o_orderkey` FROM `orders` AS `orders` WHERE (`o_orderstatus` = ?)") - Gather(concurrent=true) - OSSTableScan(tables="lineitem[p1,p2,p3,p4]", shardCount=4, sql="SELECT `l_orderkey`, `l_suppkey` FROM `lineitem` AS `lineitem` WHERE (`l_receiptdate` > `l_commitdate`)") - Gather(concurrent=true) - OSSTableScan(tables="lineitem[p1,p2,p3,p4]", shardCount=4, sql="SELECT `l_orderkey`, `l_suppkey` FROM `lineitem` AS `lineitem`") - - sql: | - select nation, o_year, sum(amount) as sum_profit from ( select n_name as nation, extract(year from o_orderdate) as o_year, l_extendedprice * (1 - l_discount) - ps_supplycost * l_quantity as amount from part, supplier, lineitem, partsupp, orders, nation where s_suppkey = l_suppkey and ps_suppkey = l_suppkey and ps_partkey = l_partkey and p_partkey = l_partkey and o_orderkey = l_orderkey and s_nationkey = n_nationkey and p_name like '%goldenrod%' ) as profit group by nation, o_year order by nation, o_year desc; - plan: | - memsort(sort="nation asc,o_year desc") - hashagg(group="nation,o_year", sum_profit="sum(amount)") - project(nation="n_name", o_year="extract(year, o_orderdate)", amount="l_extendedprice * ?0 - l_discount - ps_supplycost * l_quantity") - hashjoin(condition="ps_partkey = l_partkey and p_partkey = l_partkey and ps_suppkey = l_suppkey and l_suppkey = s_suppkey", type="inner") - hashjoin(condition="o_orderkey = l_orderkey", type="inner") - gather(concurrent=true) - osstablescan(tables="lineitem[p1,p2,p3,p4]", shardcount=4, sql="select `l_orderkey`, `l_partkey`, `l_suppkey`, `l_quantity`, `l_extendedprice`, `l_discount` from `lineitem` as `lineitem`") - gather(concurrent=true) - osstablescan(tables="orders[p1,p2,p3,p4]", shardcount=4, sql="select `o_orderkey`, `o_orderdate` from `orders` as `orders`") - project(s_suppkey="s_suppkey", s_nationkey="s_nationkey", n_nationkey="n_nationkey", n_name="n_name", p_partkey="p_partkey", ps_partkey="ps_partkey", ps_suppkey="ps_suppkey", ps_supplycost="ps_supplycost") - hashjoin(condition="ps_suppkey = s_suppkey", type="inner") - project(p_partkey="p_partkey", ps_partkey="ps_partkey", ps_suppkey="ps_suppkey", ps_supplycost="ps_supplycost") - hashjoin(condition="ps_partkey = p_partkey", type="inner") - gather(concurrent=true) - osstablescan(tables="partsupp[p1,p2,p3,p4]", shardcount=4, sql="select `ps_partkey`, `ps_suppkey`, `ps_supplycost` from `partsupp` as `partsupp`") - gather(concurrent=true) - osstablescan(tables="part[p1,p2,p3,p4]", shardcount=4, sql="select `p_partkey` from `part` as `part` where (`p_name` like ?)") - hashjoin(condition="n_nationkey = s_nationkey", type="inner") - gather(concurrent=true) - osstablescan(tables="supplier[p1,p2,p3,p4]", shardcount=4, sql="select `s_suppkey`, `s_nationkey` from `supplier` as `supplier`") - gather(concurrent=true) - osstablescan(tables="nation", shardcount=0, sql="select `n_nationkey`, `n_name` from `nation` as `nation`") - - sql: | - select o_year, sum(case when nation = 'INDIA' then volume else 0 end) / sum(volume) as mkt_share from ( select extract(year from o_orderdate) as o_year, l_extendedprice * (1 - l_discount) as volume, n2.n_name as nation from part, supplier, lineitem, orders, customer, nation n1, nation n2, region where p_partkey = l_partkey and s_suppkey = l_suppkey and l_orderkey = o_orderkey and o_custkey = c_custkey and c_nationkey = n1.n_nationkey and n1.n_regionkey = r_regionkey and r_name = 'ASIA' and s_nationkey = n2.n_nationkey and o_orderdate between '1995-01-01' and '1996-12-31' and p_type = 'MEDIUM ANODIZED STEEL' ) as all_nations group by o_year order by o_year; - plan: | - MemSort(sort="o_year ASC") - Project(o_year="EXTRACT", mkt_share="$f1 / $f2") - HashAgg(group="EXTRACT", $f1="SUM(CASE)", $f2="SUM(__*__)") - Project(l_partkey="l_partkey", EXTRACT="EXTRACT(YEAR, o_orderdate)", CASE="CASE(=($17, ?0), *($8, -(?2, $9)), CAST(?1):DECIMAL(37, 4))", __*__="l_extendedprice * ?2 - l_discount", p_partkey="p_partkey") - HashJoin(condition="s_suppkey = l_suppkey", type="inner") - HashJoin(condition="p_partkey = l_partkey", type="inner") - HashJoin(condition="o_custkey = c_custkey", type="inner") - Project(c_custkey="c_custkey", c_nationkey="c_nationkey", n_nationkey="n_nationkey", n_regionkey="n_regionkey", r_regionkey="r_regionkey") - HashJoin(condition="c_nationkey = n_nationkey", type="inner") - HashJoin(condition="n_regionkey = r_regionkey", type="inner") - Gather(concurrent=true) - OSSTableScan(tables="nation", shardCount=0, sql="SELECT `n_nationkey`, `n_regionkey` FROM `nation` AS `nation`") - Gather(concurrent=true) - OSSTableScan(tables="region", shardCount=0, sql="SELECT `r_regionkey` FROM `region` AS `region` WHERE (`r_name` = ?)") - Gather(concurrent=true) - OSSTableScan(tables="customer[p1,p2,p3,p4]", shardCount=4, sql="SELECT `c_custkey`, `c_nationkey` FROM `customer` AS `customer`") - HashJoin(condition="o_orderkey = l_orderkey", type="inner") - Gather(concurrent=true) - OSSTableScan(tables="lineitem[p1,p2,p3,p4]", shardCount=4, sql="SELECT `l_orderkey`, `l_partkey`, `l_suppkey`, `l_extendedprice`, `l_discount` FROM `lineitem` AS `lineitem`") - Gather(concurrent=true) - OSSTableScan(tables="orders[p1,p2,p3,p4]", shardCount=4, sql="SELECT `o_orderkey`, `o_custkey`, `o_orderdate` FROM `orders` AS `orders` WHERE (`o_orderdate` BETWEEN ? AND ?)") - Gather(concurrent=true) - OSSTableScan(tables="part[p1,p2,p3,p4]", shardCount=4, sql="SELECT `p_partkey` FROM `part` AS `part` WHERE (`p_type` = ?)") - HashJoin(condition="s_nationkey = n_nationkey", type="inner") - Gather(concurrent=true) - OSSTableScan(tables="supplier[p1,p2,p3,p4]", shardCount=4, sql="SELECT `s_suppkey`, `s_nationkey` FROM `supplier` AS `supplier`") - Gather(concurrent=true) - OSSTableScan(tables="nation", shardCount=0, sql="SELECT `n_nationkey`, `n_name` FROM `nation` AS `nation`") - - sql: | - select s_name, s_address from supplier, nation where s_suppkey in ( select ps_suppkey from partsupp where ps_partkey in ( select p_partkey from part where p_name like 'mint%' ) and ps_availqty > ( select 0.5 * sum(l_quantity) from lineitem where l_partkey = ps_partkey and l_suppkey = ps_suppkey and l_shipdate >= '1993-01-01' and l_shipdate < '1993-01-01' + interval '1' year ) ) and s_nationkey = n_nationkey and n_name = 'UNITED STATES' order by s_name; - plan: | - memsort(sort="s_name asc") - project(s_name="s_name", s_address="s_address") - hashjoin(condition="n_nationkey = s_nationkey", type="inner") - semihashjoin(condition="s_suppkey = ps_suppkey", type="semi", build="inner") - gather(concurrent=true) - osstablescan(tables="supplier[p1,p2,p3,p4]", shardcount=4, sql="select `s_suppkey`, `s_name`, `s_address`, `s_nationkey` from `supplier` as `supplier`") - project(ps_suppkey="ps_suppkey") - hashjoin(condition="l_partkey = ps_partkey and l_suppkey = ps_suppkey and ps_availqty > ?1 * $f2", type="inner") - hashagg(group="l_partkey,l_suppkey", $f2="sum(l_quantity)") - gather(concurrent=true) - osstablescan(tables="lineitem[p1,p2,p3,p4]", shardcount=4, sql="select `l_partkey`, `l_suppkey`, `l_quantity` from `lineitem` as `lineitem` where ((`l_shipdate` < date_add(?, interval '1' year)) and (`l_shipdate` >= ?))") - semihashjoin(condition="ps_partkey = p_partkey", type="semi", build="inner") - gather(concurrent=true) - osstablescan(tables="partsupp[p1,p2,p3,p4]", shardcount=4, sql="select `ps_partkey`, `ps_suppkey`, `ps_availqty` from `partsupp` as `partsupp`") - gather(concurrent=true) - osstablescan(tables="part[p1,p2,p3,p4]", shardcount=4, sql="select `p_partkey` from `part` as `part` where (`p_name` like ?)") - gather(concurrent=true) - osstablescan(tables="nation", shardcount=0, sql="select `n_nationkey` from `nation` as `nation` where (`n_name` = ?)") - - sql: | - select c_name, c_custkey, o_orderkey, o_orderdate, o_totalprice, sum(l_quantity) from customer, orders, lineitem where o_orderkey in ( select l_orderkey from lineitem group by l_orderkey having sum(l_quantity) > 312 ) and c_custkey = o_custkey and o_orderkey = l_orderkey group by c_name, c_custkey, o_orderkey, o_orderdate, o_totalprice order by o_totalprice desc, o_orderdate limit 100; - plan: | - project(c_name="c_name", c_custkey="c_custkey", o_orderkey="o_orderkey", o_orderdate="o_orderdate", o_totalprice="o_totalprice", sum(l_quantity)="sum(l_quantity)") - topn(sort="o_totalprice desc,o_orderdate asc", offset=0, fetch=?1) - hashagg(group="c_custkey,o_orderkey", o_orderdate="__first_value(o_orderdate)", o_totalprice="__first_value(o_totalprice)", c_name="__first_value(c_name)", sum(l_quantity)="sum(l_quantity)") - project(c_custkey="c_custkey", c_name="c_name", o_orderkey="o_orderkey", o_custkey="o_custkey", o_totalprice="o_totalprice", o_orderdate="o_orderdate", l_orderkey="l_orderkey", l_quantity="l_quantity") - hashjoin(condition="o_orderkey = l_orderkey", type="inner") - gather(concurrent=true) - osstablescan(tables="lineitem[p1,p2,p3,p4]", shardcount=4, sql="select `l_orderkey`, `l_quantity` from `lineitem` as `lineitem`") - semihashjoin(condition="o_orderkey = l_orderkey", type="semi", build="inner") - project(c_custkey="c_custkey", c_name="c_name", o_orderkey="o_orderkey", o_custkey="o_custkey", o_totalprice="o_totalprice", o_orderdate="o_orderdate") - hashjoin(condition="o_custkey = c_custkey", type="inner") - gather(concurrent=true) - osstablescan(tables="orders[p1,p2,p3,p4]", shardcount=4, sql="select `o_orderkey`, `o_custkey`, `o_totalprice`, `o_orderdate` from `orders` as `orders`") - gather(concurrent=true) - osstablescan(tables="customer[p1,p2,p3,p4]", shardcount=4, sql="select `c_custkey`, `c_name` from `customer` as `customer`") - project(l_orderkey="l_orderkey") - filter(condition="$f1 > ?0") - hashagg(group="l_orderkey", $f1="sum(l_quantity)") - gather(concurrent=true) - osstablescan(tables="lineitem[p1,p2,p3,p4]", shardcount=4, sql="select `l_orderkey`, `l_quantity` from `lineitem` as `lineitem`") - - - sql: | - select sum(l_extendedprice* (1 - l_discount)) as revenue from lineitem, part where ( p_partkey = l_partkey and p_brand = 'Brand#13' and p_container in ('SM CASE', 'SM BOX', 'SM PACK', 'SM PKG') and l_quantity >= 7 and l_quantity <= 7 + 10 and p_size between 1 and 5 and l_shipmode in ('AIR', 'AIR REG') and l_shipinstruct = 'DELIVER IN PERSON' ) or ( p_partkey = l_partkey and p_brand = 'Brand#15' and p_container in ('MED BAG', 'MED BOX', 'MED PKG', 'MED PACK') and l_quantity >= 18 and l_quantity <= 18 + 10 and p_size between 1 and 10 and l_shipmode in ('AIR', 'AIR REG') and l_shipinstruct = 'DELIVER IN PERSON' ) or ( p_partkey = l_partkey and p_brand = 'Brand#35' and p_container in ('LG CASE', 'LG BOX', 'LG PACK', 'LG PKG') and l_quantity >= 21 and l_quantity <= 21 + 10 and p_size between 1 and 15 and l_shipmode in ('AIR', 'AIR REG') and l_shipinstruct = 'DELIVER IN PERSON' ); - plan: | - hashagg(revenue="sum(__*__)") - project(p_partkey="p_partkey", =="p_brand = ?1", in="p_container in row(?2)", between asymmetric="between asymmetric($8, ?6, ?7)", =4="p_brand = ?10", in5="p_container in row(?11)", between asymmetric6="between asymmetric($8, ?15, ?16)", =7="p_brand = ?19", in8="p_container in row(?20)", between asymmetric9="between asymmetric($8, ?24, ?25)", l_partkey="l_partkey", __*__="l_extendedprice * ?0 - l_discount", >=="l_quantity >= ?3", <=="l_quantity <= ?4 + ?5", in0="l_shipmode in row(?8)", =0="l_shipinstruct = ?9", >=6="l_quantity >= ?12", <=7="l_quantity <= ?13 + ?14", in80="l_shipmode in row(?17)", =9="l_shipinstruct = ?18", >=10="l_quantity >= ?21", <=11="l_quantity <= ?22 + ?23", in12="l_shipmode in row(?26)", =13="l_shipinstruct = ?27") - hashjoin(condition="p_partkey = l_partkey and ((p_partkey = l_partkey and p_brand = ?1 and p_container in row(?2) and l_quantity >= ?3 and l_quantity <= ?4 + ?5 and between asymmetric($8, ?6, ?7) and l_shipmode in row(?8) and l_shipinstruct = ?9) or (p_partkey = l_partkey and p_brand = ?10 and p_container in row(?11) and l_quantity >= ?12 and l_quantity <= ?13 + ?14 and between asymmetric($8, ?15, ?16) and l_shipmode in row(?17) and l_shipinstruct = ?18) or (p_partkey = l_partkey and p_brand = ?19 and p_container in row(?20) and l_quantity >= ?21 and l_quantity <= ?22 + ?23 and between asymmetric($8, ?24, ?25) and l_shipmode in row(?26) and l_shipinstruct = ?27))", type="inner") - gather(concurrent=true) - osstablescan(tables="lineitem[p1,p2,p3,p4]", shardcount=4, sql="select `l_partkey`, `l_quantity`, `l_extendedprice`, `l_discount`, `l_shipinstruct`, `l_shipmode` from `lineitem` as `lineitem` where (((`l_quantity` >= ?) and (`l_quantity` <= (? + ?)) and (`l_shipmode` in(?)) and (`l_shipinstruct` = ?)) or ((`l_quantity` >= ?) and (`l_quantity` <= (? + ?)) and (`l_shipmode` in(?)) and (`l_shipinstruct` = ?)) or ((`l_quantity` >= ?) and (`l_quantity` <= (? + ?)) and (`l_shipmode` in(?)) and (`l_shipinstruct` = ?)))", isdynamicparam="true") - gather(concurrent=true) - osstablescan(tables="part[p1,p2,p3,p4]", shardcount=4, sql="select `p_partkey`, `p_brand`, `p_size`, `p_container` from `part` as `part` where (((`p_brand` = ?) and (`p_container` in(?)) and (`p_size` between ? and ?)) or ((`p_brand` = ?) and (`p_container` in(?)) and (`p_size` between ? and ?)) or ((`p_brand` = ?) and (`p_container` in(?)) and (`p_size` between ? and ?)))", isdynamicparam="true") - - - sql: | - select 100.00 * sum(case when p_type like 'PROMO%' then l_extendedprice * (1 - l_discount) else 0 end) / sum(l_extendedprice * (1 - l_discount)) as promo_revenue from lineitem, part where l_partkey = p_partkey and l_shipdate >= '1993-11-01' and l_shipdate < '1993-11-01' + interval '1' month; - plan: | - project(promo_revenue="?0 * $f0 / $f1") - hashagg($f0="sum($f0)", $f1="sum($f1)") - project($f0="case(like($1, ?1), *($3, -(?2, $4)), cast(?3):decimal(37, 4))", $f1="l_extendedprice * ?4 - l_discount") - hashjoin(condition="l_partkey = p_partkey", type="inner") - gather(concurrent=true) - osstablescan(tables="part[p1,p2,p3,p4]", shardcount=4, sql="select `p_partkey`, `p_type` from `part` as `part`") - gather(concurrent=true) - osstablescan(tables="lineitem[p1,p2,p3,p4]", shardcount=4, sql="select `l_partkey`, `l_extendedprice`, `l_discount` from `lineitem` as `lineitem` where ((`l_shipdate` < date_add(?, interval '1' month)) and (`l_shipdate` >= ?))") - - - sql: | - select s_suppkey, s_name, s_address, s_phone, total_revenue from supplier, ( select l_suppkey as supplier_no, sum(l_extendedprice * (1 - l_discount)) as total_revenue from lineitem where l_shipdate >= '1995-02-01' and l_shipdate < '1995-02-01' + interval '3' month group by l_suppkey ) revenue0 where s_suppkey = supplier_no and total_revenue = ( select max(total_revenue) from ( select l_suppkey as supplier_no, sum(l_extendedprice * (1 - l_discount)) as total_revenue from lineitem where l_shipdate >= '1995-02-01' and l_shipdate < '1995-02-01' + interval '3' month group by l_suppkey ) revenue0 ) order by s_suppkey; - plan: | - memsort(sort="s_suppkey asc") - project(s_suppkey="s_suppkey", s_name="s_name", s_address="s_address", s_phone="s_phone", total_revenue="total_revenue") - hashjoin(condition="supplier_no = s_suppkey", type="inner") - gather(concurrent=true) - osstablescan(tables="supplier[p1,p2,p3,p4]", shardcount=4, sql="select `s_suppkey`, `s_name`, `s_address`, `s_phone` from `supplier` as `supplier`") - project(max(total_revenue)="max(total_revenue)", supplier_no="supplier_no", total_revenue="total_revenue") - hashjoin(condition="max(total_revenue) = total_revenue", type="inner") - hashagg(group="supplier_no", total_revenue="sum($f1)") - project(supplier_no="l_suppkey", $f1="l_extendedprice * ?0 - l_discount") - gather(concurrent=true) - osstablescan(tables="lineitem[p1,p2,p3,p4]", shardcount=4, sql="select `l_suppkey`, `l_extendedprice`, `l_discount` from `lineitem` as `lineitem` where ((`l_shipdate` < date_add(?, interval '3' month)) and (`l_shipdate` >= ?))") - hashagg(max(total_revenue)="max(total_revenue)") - hashagg(group="supplier_no", total_revenue="sum($f1)") - project(supplier_no="l_suppkey", $f1="l_extendedprice * ?3 - l_discount") - gather(concurrent=true) - osstablescan(tables="lineitem[p1,p2,p3,p4]", shardcount=4, sql="select `l_suppkey`, `l_extendedprice`, `l_discount` from `lineitem` as `lineitem` where ((`l_shipdate` < date_add(?, interval '3' month)) and (`l_shipdate` >= ?))") - - sql: | - select l_returnflag, l_linestatus, sum(l_quantity) as sum_qty, sum(l_extendedprice) as sum_base_price, sum(l_extendedprice * (1 - l_discount)) as sum_disc_price, sum(l_extendedprice * (1 - l_discount) * (1 + l_tax)) as sum_charge, avg(l_quantity) as avg_qty, avg(l_extendedprice) as avg_price, avg(l_discount) as avg_disc, count(*) as count_order from lineitem where l_shipdate <= '1998-12-01' - interval '118' day group by l_returnflag, l_linestatus order by l_returnflag, l_linestatus; - plan: | - project(l_returnflag="l_returnflag", l_linestatus="l_linestatus", sum_qty="sum_qty", sum_base_price="sum_base_price", sum_disc_price="sum_disc_price", sum_charge="sum_charge", avg_qty="sum_qty / $f6", avg_price="sum_base_price / $f6", avg_disc="$f7 / $f6", count_order="$f6") - memsort(sort="l_returnflag asc,l_linestatus asc") - hashagg(group="l_returnflag,l_linestatus", sum_qty="sum(l_quantity)", sum_base_price="sum(l_extendedprice)", sum_disc_price="sum($f4)", sum_charge="sum($f5)", $f6="count()", $f7="sum(l_discount)") - project(l_returnflag="l_returnflag", l_linestatus="l_linestatus", l_quantity="l_quantity", l_extendedprice="l_extendedprice", $f4="l_extendedprice * ?0 - l_discount", $f5="l_extendedprice * ?1 - l_discount * ?2 + l_tax", l_discount="l_discount") - gather(concurrent=true) - osstablescan(tables="lineitem[p1,p2,p3,p4]", shardcount=4, sql="select `l_quantity`, `l_extendedprice`, `l_discount`, `l_tax`, `l_returnflag`, `l_linestatus` from `lineitem` as `lineitem` where (`l_shipdate` <= date_sub(?, interval '118' day))") - - sql: | - select sum(l_extendedprice) / 7.0 as avg_yearly from lineitem, part where p_partkey = l_partkey and p_brand = 'Brand#51' and p_container = 'SM JAR' and l_quantity < ( select 0.2 * avg(l_quantity) from lineitem where l_partkey = p_partkey ); - plan: | - project(avg_yearly="$f0 / ?0") - hashagg($f0="sum(l_extendedprice)") - filter(condition="l_quantity < ?3 * f16w0$o0") - hashwindow(p_partkey="p_partkey", l_partkey="l_partkey", l_quantity="l_quantity", l_extendedprice="l_extendedprice", f4w0$o0="window#0avg($2)", reference windows="window#0=window(partition {1} order by [] range between unbounded preceding and unbounded following aggs [avg($2)])") - project(p_partkey="p_partkey", l_partkey="l_partkey", l_quantity="l_quantity", l_extendedprice="l_extendedprice") - hashjoin(condition="l_partkey = p_partkey", type="inner") - gather(concurrent=true) - osstablescan(tables="lineitem[p1,p2,p3,p4]", shardcount=4, sql="select `l_partkey`, `l_quantity`, `l_extendedprice` from `lineitem` as `lineitem`") - gather(concurrent=true) - osstablescan(tables="part[p1,p2,p3,p4]", shardcount=4, sql="select `p_partkey` from `part` as `part` where ((`p_brand` = ?) and (`p_container` = ?))") - - sql: | - select l_orderkey, sum(l_extendedprice * (1 - l_discount)) as revenue, o_orderdate, o_shippriority from customer, orders, lineitem where c_mktsegment = 'HOUSEHOLD' and c_custkey = o_custkey and l_orderkey = o_orderkey and o_orderdate < '1995-03-29' and l_shipdate > '1995-03-29' group by l_orderkey, o_orderdate, o_shippriority order by revenue desc, o_orderdate limit 10; - plan: | - project(l_orderkey="l_orderkey", revenue="revenue", o_orderdate="o_orderdate", o_shippriority="o_shippriority") - topn(sort="revenue desc,o_orderdate asc", offset=0, fetch=?4) - project(l_orderkey="l_orderkey", o_orderdate="o_orderdate", o_shippriority="o_shippriority", revenue="revenue") - hashagg(group="o_orderdate,o_shippriority,l_orderkey", revenue="sum(__*__)") - project(c_custkey="c_custkey", o_orderkey="o_orderkey", o_custkey="o_custkey", o_orderdate="o_orderdate", o_shippriority="o_shippriority", l_orderkey="l_orderkey", __*__="l_extendedprice * ?0 - l_discount") - hashjoin(condition="o_orderkey = l_orderkey", type="inner") - gather(concurrent=true) - osstablescan(tables="lineitem[p1,p2,p3,p4]", shardcount=4, sql="select `l_orderkey`, `l_extendedprice`, `l_discount` from `lineitem` as `lineitem` where (`l_shipdate` > ?)") - project(c_custkey="c_custkey", o_orderkey="o_orderkey", o_custkey="o_custkey", o_orderdate="o_orderdate", o_shippriority="o_shippriority") - hashjoin(condition="o_custkey = c_custkey", type="inner") - gather(concurrent=true) - osstablescan(tables="orders[p1,p2,p3,p4]", shardcount=4, sql="select `o_orderkey`, `o_custkey`, `o_orderdate`, `o_shippriority` from `orders` as `orders` where (`o_orderdate` < ?)") - gather(concurrent=true) - osstablescan(tables="customer[p1,p2,p3,p4]", shardcount=4, sql="select `c_custkey` from `customer` as `customer` where (`c_mktsegment` = ?)") - - sql: | - select s_acctbal, s_name, n_name, p_partkey, p_mfgr, s_address, s_phone, s_comment from part, supplier, partsupp, nation, region where p_partkey = ps_partkey and s_suppkey = ps_suppkey and p_size = 15 and p_type like '%STEEL' and s_nationkey = n_nationkey and n_regionkey = r_regionkey and r_name = 'MIDDLE EAST' and ps_supplycost = ( select min(ps_supplycost) from partsupp, supplier, nation, region where p_partkey = ps_partkey and s_suppkey = ps_suppkey and s_nationkey = n_nationkey and n_regionkey = r_regionkey and r_name = 'MIDDLE EAST' ) order by s_acctbal desc, n_name, s_name, p_partkey limit 100; - plan: | - TopN(sort="s_acctbal DESC,n_name ASC,s_name ASC,p_partkey ASC", offset=0, fetch=?4) - Project(s_acctbal="s_acctbal", s_name="s_name", n_name="n_name", p_partkey="p_partkey", p_mfgr="p_mfgr", s_address="s_address", s_phone="s_phone", s_comment="s_comment") - HashJoin(condition="ps_partkey = ps_partkey AND ps_partkey = p_partkey AND ps_supplycost = min(ps_supplycost)", type="inner") - HashAgg(group="ps_partkey", min(ps_supplycost)="MIN(ps_supplycost)") - Project(s_suppkey="s_suppkey", s_nationkey="s_nationkey", n_nationkey="n_nationkey", n_regionkey="n_regionkey", r_regionkey="r_regionkey", ps_partkey="ps_partkey", ps_suppkey="ps_suppkey", ps_supplycost="ps_supplycost") - HashJoin(condition="ps_suppkey = s_suppkey", type="inner") - Gather(concurrent=true) - OSSTableScan(tables="partsupp[p1,p2,p3,p4]", shardCount=4, sql="SELECT `ps_partkey`, `ps_suppkey`, `ps_supplycost` FROM `partsupp` AS `partsupp`") - HashJoin(condition="r_regionkey = n_regionkey", type="inner") - HashJoin(condition="n_nationkey = s_nationkey", type="inner") - Gather(concurrent=true) - OSSTableScan(tables="supplier[p1,p2,p3,p4]", shardCount=4, sql="SELECT `s_suppkey`, `s_nationkey` FROM `supplier` AS `supplier`") - Gather(concurrent=true) - OSSTableScan(tables="nation", shardCount=0, sql="SELECT `n_nationkey`, `n_regionkey` FROM `nation` AS `nation`") - Gather(concurrent=true) - OSSTableScan(tables="region", shardCount=0, sql="SELECT `r_regionkey` FROM `region` AS `region` WHERE (`r_name` = ?)") - HashJoin(condition="ps_suppkey = s_suppkey", type="inner") - HashJoin(condition="n_regionkey = r_regionkey", type="inner") - HashJoin(condition="s_nationkey = n_nationkey", type="inner") - Gather(concurrent=true) - OSSTableScan(tables="supplier[p1,p2,p3,p4]", shardCount=4, sql="SELECT `s_suppkey`, `s_name`, `s_address`, `s_nationkey`, `s_phone`, `s_acctbal`, `s_comment` FROM `supplier` AS `supplier`") - Gather(concurrent=true) - OSSTableScan(tables="nation", shardCount=0, sql="SELECT `n_nationkey`, `n_name`, `n_regionkey` FROM `nation` AS `nation`") - Gather(concurrent=true) - OSSTableScan(tables="region", shardCount=0, sql="SELECT `r_regionkey` FROM `region` AS `region` WHERE (`r_name` = ?)") - Project(p_partkey="p_partkey", p_mfgr="p_mfgr", ps_partkey="ps_partkey", ps_suppkey="ps_suppkey", ps_supplycost="ps_supplycost") - HashJoin(condition="ps_partkey = p_partkey", type="inner") - Gather(concurrent=true) - OSSTableScan(tables="partsupp[p1,p2,p3,p4]", shardCount=4, sql="SELECT `ps_partkey`, `ps_suppkey`, `ps_supplycost` FROM `partsupp` AS `partsupp`") - Gather(concurrent=true) - OSSTableScan(tables="part[p1,p2,p3,p4]", shardCount=4, sql="SELECT `p_partkey`, `p_mfgr` FROM `part` AS `part` WHERE ((`p_size` = ?) AND (`p_type` LIKE ?))") - - sql: | - select p_brand, p_type, p_size, count(distinct ps_suppkey) as supplier_cnt from partsupp, part where p_partkey = ps_partkey and p_brand <> 'Brand#15' and p_type not like 'STANDARD BRUSHED%' and p_size in (5, 29, 4, 49, 30, 42, 33, 39) and ps_suppkey not in ( select s_suppkey from supplier where s_comment like '%Customer%Complaints%' ) group by p_brand, p_type, p_size order by supplier_cnt desc, p_brand, p_type, p_size; - plan: | - memsort(sort="supplier_cnt desc,p_brand asc,p_type asc,p_size asc") - hashagg(group="p_brand,p_type,p_size", supplier_cnt="count(ps_suppkey)") - hashagg(group="p_brand,p_type,p_size,ps_suppkey") - project(p_brand="p_brand", p_type="p_type", p_size="p_size", ps_suppkey="ps_suppkey") - semihashjoin(condition="ps_suppkey = s_suppkey", type="anti", build="inner") - hashjoin(condition="p_partkey = ps_partkey", type="inner") - gather(concurrent=true) - osstablescan(tables="partsupp[p1,p2,p3,p4]", shardcount=4, sql="select `ps_partkey`, `ps_suppkey` from `partsupp` as `partsupp`", isdynamicparam="true") - gather(concurrent=true) - osstablescan(tables="part[p1,p2,p3,p4]", shardcount=4, sql="select `p_partkey`, `p_brand`, `p_type`, `p_size` from `part` as `part` where ((`p_size` in(?)) and (`p_type` not like ?) and (`p_brand` <> ?))", isdynamicparam="true") - gather(concurrent=true) - osstablescan(tables="supplier[p1,p2,p3,p4]", shardcount=4, sql="select `s_suppkey` from `supplier` as `supplier` where (`s_comment` like ?)", isdynamicparam="true") - - sql: | - select l_shipmode, sum(case when o_orderpriority = '1-URGENT' or o_orderpriority = '2-HIGH' then 1 else 0 end) as high_line_count, sum(case when o_orderpriority <> '1-URGENT' and o_orderpriority <> '2-HIGH' then 1 else 0 end) as low_line_count from orders, lineitem where o_orderkey = l_orderkey and l_shipmode in ('AIR', 'REG AIR') and l_commitdate < l_receiptdate and l_shipdate < l_commitdate and l_receiptdate >= '1993-01-01' and l_receiptdate < '1993-01-01' + interval '1' year group by l_shipmode order by l_shipmode; - plan: | - memsort(sort="l_shipmode asc") - hashagg(group="l_shipmode", high_line_count="sum(case)", low_line_count="sum(case2)") - project(o_orderkey="o_orderkey", case="case(in($1, row(?0, ?1)), ?2, ?3)", case2="case(and(<>($1, ?4), <>($1, ?5)), ?6, ?7)", l_orderkey="l_orderkey", l_shipmode="l_shipmode") - hashjoin(condition="l_orderkey = o_orderkey", type="inner") - gather(concurrent=true) - osstablescan(tables="orders[p1,p2,p3,p4]", shardcount=4, sql="select `o_orderkey`, `o_orderpriority` from `orders` as `orders`", isdynamicparam="true") - gather(concurrent=true) - osstablescan(tables="lineitem[p1,p2,p3,p4]", shardcount=4, sql="select `l_orderkey`, `l_shipmode` from `lineitem` as `lineitem` where ((`l_receiptdate` < date_add(?, interval '1' year)) and (`l_shipmode` in(?)) and (`l_commitdate` < `l_receiptdate`) and (`l_shipdate` < `l_commitdate`) and (`l_receiptdate` >= ?))", isdynamicparam="true") - - sql: | - select sum(l_extendedprice * l_discount) as revenue from lineitem where l_shipdate >= '1996-01-01' and l_shipdate < '1996-01-01' + interval '1' year and l_discount between 0.09 - 0.01 and 0.09 + 0.01 and l_quantity < 24; - plan: | - hashagg(revenue="sum($f0)") - project($f0="l_extendedprice * l_discount") - gather(concurrent=true) - osstablescan(tables="lineitem[p1,p2,p3,p4]", shardcount=4, sql="select `l_extendedprice`, `l_discount` from `lineitem` as `lineitem` where ((`l_discount` between (? - ?) and (? + ?)) and (`l_quantity` < ?) and (`l_shipdate` >= ?) and (`l_shipdate` < date_add(?, interval '1' year)))") - - sql: | - select supp_nation, cust_nation, l_year, sum(volume) as revenue from ( select n1.n_name as supp_nation, n2.n_name as cust_nation, extract(year from l_shipdate) as l_year, l_extendedprice * (1 - l_discount) as volume from supplier, lineitem, orders, customer, nation n1, nation n2 where s_suppkey = l_suppkey and o_orderkey = l_orderkey and c_custkey = o_custkey and s_nationkey = n1.n_nationkey and c_nationkey = n2.n_nationkey and ( (n1.n_name = 'UNITED STATES' and n2.n_name = 'INDIA') or (n1.n_name = 'INDIA' and n2.n_name = 'UNITED STATES') ) and l_shipdate between '1995-01-01' and '1996-12-31' ) as shipping group by supp_nation, cust_nation, l_year order by supp_nation, cust_nation, l_year; - plan: | - sortagg(group="n_name,n_name0,extract", revenue="sum(__*__)") - memsort(sort="n_name asc,n_name0 asc,extract asc") - project(s_suppkey="s_suppkey", s_nationkey="s_nationkey", n_nationkey="n_nationkey", n_name="n_name", n_nationkey0="n_nationkey0", n_name0="n_name0", c_custkey="c_custkey", c_nationkey="c_nationkey", l_orderkey="l_orderkey", l_suppkey="l_suppkey", extract="extract(year, l_shipdate)", __*__="l_extendedprice * ?0 - l_discount", o_orderkey="o_orderkey", o_custkey="o_custkey") - hashjoin(condition="o_custkey = c_custkey and n_nationkey0 = c_nationkey", type="inner") - project(s_suppkey="s_suppkey", s_nationkey="s_nationkey", n_nationkey="n_nationkey", n_name="n_name", n_nationkey0="n_nationkey0", n_name0="n_name0", l_orderkey="l_orderkey", l_suppkey="l_suppkey", l_extendedprice="l_extendedprice", l_discount="l_discount", l_shipdate="l_shipdate", o_orderkey="o_orderkey", o_custkey="o_custkey") - hashjoin(condition="l_orderkey = o_orderkey", type="inner") - hashjoin(condition="l_suppkey = s_suppkey", type="inner") - gather(concurrent=true) - osstablescan(tables="lineitem[p1,p2,p3,p4]", shardcount=4, sql="select `l_orderkey`, `l_suppkey`, `l_extendedprice`, `l_discount`, `l_shipdate` from `lineitem` as `lineitem` where (`l_shipdate` between ? and ?)") - hashjoin(condition="n_nationkey = s_nationkey", type="inner") - gather(concurrent=true) - osstablescan(tables="supplier[p1,p2,p3,p4]", shardcount=4, sql="select `s_suppkey`, `s_nationkey` from `supplier` as `supplier`") - nljoin(condition="(n_name = ?1 and n_name = ?2) or (n_name = ?3 and n_name = ?4)", type="inner") - gather(concurrent=true) - osstablescan(tables="nation", shardcount=0, sql="select `n_nationkey`, `n_name` from `nation` as `nation` where ((`n_name` = ?) or (`n_name` = ?))") - gather(concurrent=true) - osstablescan(tables="nation", shardcount=0, sql="select `n_nationkey`, `n_name` from `nation` as `nation` where ((`n_name` = ?) or (`n_name` = ?))") - gather(concurrent=true) - osstablescan(tables="orders[p1,p2,p3,p4]", shardcount=4, sql="select `o_orderkey`, `o_custkey` from `orders` as `orders`") - gather(concurrent=true) - osstablescan(tables="customer[p1,p2,p3,p4]", shardcount=4, sql="select `c_custkey`, `c_nationkey` from `customer` as `customer`") - - sql: | - select c_count, count(*) as custdist from ( select c_custkey, count(o_orderkey) as c_count from customer left outer join orders on c_custkey = o_custkey and o_comment not like '%special%packages%' group by c_custkey ) c_orders group by c_count order by custdist desc, c_count desc; - plan: | - MemSort(sort="custdist DESC,c_count DESC") - HashAgg(group="c_count", custdist="COUNT()") - HashGroupJoin(condition="c_custkey = o_custkey", type="left") - Gather(concurrent=true) - OSSTableScan(tables="customer[p1,p2,p3,p4]", shardCount=4, sql="SELECT `c_custkey` FROM `customer` AS `customer`") - Gather(concurrent=true) - OSSTableScan(tables="orders[p1,p2,p3,p4]", shardCount=4, sql="SELECT `o_orderkey`, `o_custkey` FROM `orders` AS `orders` WHERE (`o_comment` NOT LIKE ?)") - - sql: | - select n_name, sum(l_extendedprice * (1 - l_discount)) as revenue from customer, orders, lineitem, supplier, nation, region where c_custkey = o_custkey and l_orderkey = o_orderkey and l_suppkey = s_suppkey and c_nationkey = s_nationkey and s_nationkey = n_nationkey and n_regionkey = r_regionkey and r_name = 'AMERICA' and o_orderdate >= '1996-01-01' and o_orderdate < '1996-01-01' + interval '1' year group by n_name order by revenue desc; - plan: | - MemSort(sort="revenue DESC") - HashAgg(group="n_name", revenue="SUM(__*__)") - Project(c_custkey="c_custkey", c_nationkey="c_nationkey", n_nationkey="n_nationkey", n_name="n_name", n_regionkey="n_regionkey", r_regionkey="r_regionkey", s_suppkey="s_suppkey", s_nationkey="s_nationkey", o_orderkey="o_orderkey", o_custkey="o_custkey", l_orderkey="l_orderkey", l_suppkey="l_suppkey", __*__="l_extendedprice * ?0 - l_discount") - HashJoin(condition="l_suppkey = s_suppkey AND n_nationkey = s_nationkey AND s_nationkey = c_nationkey", type="inner") - Project(c_custkey="c_custkey", c_nationkey="c_nationkey", n_nationkey="n_nationkey", n_name="n_name", n_regionkey="n_regionkey", r_regionkey="r_regionkey", o_orderkey="o_orderkey", o_custkey="o_custkey", l_orderkey="l_orderkey", l_suppkey="l_suppkey", l_extendedprice="l_extendedprice", l_discount="l_discount") - HashJoin(condition="o_custkey = c_custkey", type="inner") - Project(o_orderkey="o_orderkey", o_custkey="o_custkey", l_orderkey="l_orderkey", l_suppkey="l_suppkey", l_extendedprice="l_extendedprice", l_discount="l_discount") - HashJoin(condition="l_orderkey = o_orderkey", type="inner") - Gather(concurrent=true) - OSSTableScan(tables="lineitem[p1,p2,p3,p4]", shardCount=4, sql="SELECT `l_orderkey`, `l_suppkey`, `l_extendedprice`, `l_discount` FROM `lineitem` AS `lineitem`") - Gather(concurrent=true) - OSSTableScan(tables="orders[p1,p2,p3,p4]", shardCount=4, sql="SELECT `o_orderkey`, `o_custkey` FROM `orders` AS `orders` WHERE ((`o_orderdate` >= ?) AND (`o_orderdate` < DATE_ADD(?, INTERVAL '1' YEAR)))") - HashJoin(condition="n_nationkey = c_nationkey", type="inner") - Gather(concurrent=true) - OSSTableScan(tables="customer[p1,p2,p3,p4]", shardCount=4, sql="SELECT `c_custkey`, `c_nationkey` FROM `customer` AS `customer`") - HashJoin(condition="n_regionkey = r_regionkey", type="inner") - Gather(concurrent=true) - OSSTableScan(tables="nation", shardCount=0, sql="SELECT `n_nationkey`, `n_name`, `n_regionkey` FROM `nation` AS `nation`") - Gather(concurrent=true) - OSSTableScan(tables="region", shardCount=0, sql="SELECT `r_regionkey` FROM `region` AS `region` WHERE (`r_name` = ?)") - Gather(concurrent=true) - OSSTableScan(tables="supplier[p1,p2,p3,p4]", shardCount=4, sql="SELECT `s_suppkey`, `s_nationkey` FROM `supplier` AS `supplier`") - - sql: | - select ps_partkey, sum(ps_supplycost * ps_availqty) as value from partsupp, supplier, nation where ps_suppkey = s_suppkey and s_nationkey = n_nationkey and n_name = 'EGYPT' group by ps_partkey having sum(ps_supplycost * ps_availqty) > ( select sum(ps_supplycost * ps_availqty) * 0.0000020000 from partsupp, supplier, nation where ps_suppkey = s_suppkey and s_nationkey = n_nationkey and n_name = 'EGYPT' ) order by value desc; - plan: | - MemSort(sort="value DESC") - Project(ps_partkey="ps_partkey", value="value") - NlJoin(condition="value > $f0 * ?1", type="inner") - HashAgg(group="ps_partkey", value="SUM(__*__)") - Project(s_suppkey="s_suppkey", ps_partkey="ps_partkey", ps_suppkey="ps_suppkey", __*__="ps_supplycost * ps_availqty") - HashJoin(condition="ps_suppkey = s_suppkey", type="inner") - Gather(concurrent=true) - OSSTableScan(tables="partsupp[p1,p2,p3,p4]", shardCount=4, sql="SELECT `ps_partkey`, `ps_suppkey`, `ps_availqty`, `ps_supplycost` FROM `partsupp` AS `partsupp`") - HashJoin(condition="n_nationkey = s_nationkey", type="inner") - Gather(concurrent=true) - OSSTableScan(tables="supplier[p1,p2,p3,p4]", shardCount=4, sql="SELECT `s_suppkey`, `s_nationkey` FROM `supplier` AS `supplier`") - Gather(concurrent=true) - OSSTableScan(tables="nation", shardCount=0, sql="SELECT `n_nationkey` FROM `nation` AS `nation` WHERE (`n_name` = ?)") - HashAgg($f0="SUM(__*__)") - Project(s_suppkey="s_suppkey", ps_suppkey="ps_suppkey", __*__="ps_supplycost * ps_availqty") - HashJoin(condition="ps_suppkey = s_suppkey", type="inner") - Gather(concurrent=true) - OSSTableScan(tables="partsupp[p1,p2,p3,p4]", shardCount=4, sql="SELECT `ps_suppkey`, `ps_availqty`, `ps_supplycost` FROM `partsupp` AS `partsupp`") - HashJoin(condition="n_nationkey = s_nationkey", type="inner") - Gather(concurrent=true) - OSSTableScan(tables="supplier[p1,p2,p3,p4]", shardCount=4, sql="SELECT `s_suppkey`, `s_nationkey` FROM `supplier` AS `supplier`") - Gather(concurrent=true) - OSSTableScan(tables="nation", shardCount=0, sql="SELECT `n_nationkey` FROM `nation` AS `nation` WHERE (`n_name` = ?)") - - sql: | - select c_custkey, c_name, sum(l_extendedprice * (1 - l_discount)) as revenue, c_acctbal, n_name, c_address, c_phone, c_comment from customer, orders, lineitem, nation where c_custkey = o_custkey and l_orderkey = o_orderkey and o_orderdate >= '1995-01-01' and o_orderdate < '1995-01-01' + interval '3' month and l_returnflag = 'R' and c_nationkey = n_nationkey group by c_custkey, c_name, c_acctbal, c_phone, n_name, c_address, c_comment order by revenue desc limit 20; - plan: | - project(c_custkey="c_custkey", c_name="c_name", revenue="revenue", c_acctbal="c_acctbal", n_name="n_name", c_address="c_address", c_phone="c_phone", c_comment="c_comment") - topn(sort="revenue desc", offset=0, fetch=?4) - hashagg(group="c_custkey,n_name", c_name="__first_value(c_name)", c_acctbal="__first_value(c_acctbal)", c_phone="__first_value(c_phone)", c_address="__first_value(c_address)", c_comment="__first_value(c_comment)", revenue="sum(__*__)") - project(c_custkey="c_custkey", c_name="c_name", c_address="c_address", c_nationkey="c_nationkey", c_phone="c_phone", c_acctbal="c_acctbal", c_comment="c_comment", n_nationkey="n_nationkey", n_name="n_name", o_orderkey="o_orderkey", o_custkey="o_custkey", l_orderkey="l_orderkey", __*__="l_extendedprice * ?0 - l_discount") - hashjoin(condition="n_nationkey = c_nationkey", type="inner") - hashjoin(condition="o_custkey = c_custkey", type="inner") - gather(concurrent=true) - osstablescan(tables="customer[p1,p2,p3,p4]", shardcount=4, sql="select `c_custkey`, `c_name`, `c_address`, `c_nationkey`, `c_phone`, `c_acctbal`, `c_comment` from `customer` as `customer`") - project(o_orderkey="o_orderkey", o_custkey="o_custkey", l_orderkey="l_orderkey", l_extendedprice="l_extendedprice", l_discount="l_discount") - hashjoin(condition="l_orderkey = o_orderkey", type="inner") - gather(concurrent=true) - osstablescan(tables="lineitem[p1,p2,p3,p4]", shardcount=4, sql="select `l_orderkey`, `l_extendedprice`, `l_discount` from `lineitem` as `lineitem` where (`l_returnflag` = ?)") - gather(concurrent=true) - osstablescan(tables="orders[p1,p2,p3,p4]", shardcount=4, sql="select `o_orderkey`, `o_custkey` from `orders` as `orders` where ((`o_orderdate` < date_add(?, interval '3' month)) and (`o_orderdate` >= ?))") - gather(concurrent=true) - osstablescan(tables="nation", shardcount=0, sql="select `n_nationkey`, `n_name` from `nation` as `nation`") - - - sql: | - select o_orderpriority, count(*) as order_count from orders where o_orderdate >= '1997-05-01' and o_orderdate < '1997-05-01' + interval '3' month and exists ( select * from lineitem where l_orderkey = o_orderkey and l_commitdate < l_receiptdate ) group by o_orderpriority order by o_orderpriority; - plan: | - MemSort(sort="o_orderpriority ASC") - HashAgg(group="o_orderpriority", order_count="COUNT()") - SemiHashJoin(condition="l_orderkey = o_orderkey", type="semi", build="inner") - Gather(concurrent=true) - OSSTableScan(tables="orders[p1,p2,p3,p4]", shardCount=4, sql="SELECT `o_orderkey`, `o_orderpriority` FROM `orders` AS `orders` WHERE ((`o_orderdate` >= ?) AND (`o_orderdate` < DATE_ADD(?, INTERVAL '3' MONTH)))") - Gather(concurrent=true) - OSSTableScan(tables="lineitem[p1,p2,p3,p4]", shardCount=4, sql="SELECT `l_orderkey` FROM `lineitem` AS `lineitem` WHERE (`l_commitdate` < `l_receiptdate`)") - - sql: | - select x.tt from customer join (select o_custkey, o_custkey*o_orderkey as tt from orders) x on c_nationkey = x.tt; - plan: | - project(tt="tt") - hashjoin(condition="tt = c_nationkey", type="inner") - project(tt="o_custkey * o_orderkey") - gather(concurrent=true) - osstablescan(tables="orders[p1,p2,p3,p4]", shardcount=4, sql="select `o_orderkey`, `o_custkey` from `orders` as `orders`") - gather(concurrent=true) - osstablescan(tables="customer[p1,p2,p3,p4]", shardcount=4, sql="select `c_nationkey` from `customer` as `customer`") -DDL: - supplier: - CREATE TABLE `supplier` ( `s_suppkey` int(11) NOT NULL, `s_name` varchar(25) NOT NULL, `s_address` varchar(40) NOT NULL, `s_nationkey` int(11) NOT NULL, `s_phone` varchar(15) NOT NULL, `s_acctbal` decimal(15, 2) NOT NULL, `s_comment` varchar(101) NOT NULL, PRIMARY KEY (`s_suppkey`) ) ENGINE = 'oss' DEFAULT CHARSET = latin1 PARTITION BY KEY (`s_suppkey`) PARTITIONS 4; - customer: - CREATE TABLE `customer` ( `c_custkey` int(11) NOT NULL, `c_name` varchar(25) NOT NULL, `c_address` varchar(40) NOT NULL, `c_nationkey` int(11) NOT NULL, `c_phone` varchar(15) NOT NULL, `c_acctbal` decimal(15, 2) NOT NULL, `c_mktsegment` varchar(10) NOT NULL, `c_comment` varchar(117) NOT NULL, PRIMARY KEY (`c_custkey`) ) ENGINE = 'oss' DEFAULT CHARSET = latin1 PARTITION BY KEY (`c_custkey`) PARTITIONS 4; - lineitem: - CREATE TABLE `lineitem` ( `l_orderkey` int(11) NOT NULL, `l_partkey` int(11) NOT NULL, `l_suppkey` int(11) NOT NULL, `l_linenumber` int(11) NOT NULL, `l_quantity` decimal(15, 2) NOT NULL, `l_extendedprice` decimal(15, 2) NOT NULL, `l_discount` decimal(15, 2) NOT NULL, `l_tax` decimal(15, 2) NOT NULL, `l_returnflag` varchar(1) NOT NULL, `l_linestatus` varchar(1) NOT NULL, `l_shipdate` date NOT NULL, `l_commitdate` date NOT NULL, `l_receiptdate` date NOT NULL, `l_shipinstruct` varchar(25) NOT NULL, `l_shipmode` varchar(10) NOT NULL, `l_comment` varchar(44) NOT NULL, PRIMARY KEY (`l_orderkey`, `l_linenumber`), KEY `i_l_partkey` (`l_partkey`) ) ENGINE = 'oss' DEFAULT CHARSET = latin1 PARTITION BY KEY (`l_orderkey`) PARTITIONS 4; - nation: - CREATE TABLE `nation` ( `n_nationkey` int(11) NOT NULL, `n_name` varchar(25) NOT NULL, `n_regionkey` int(11) NOT NULL, `n_comment` varchar(152) DEFAULT NULL, PRIMARY KEY (`n_nationkey`) ) BROADCAST ENGINE = 'oss' DEFAULT CHARSET = latin1; - orders: - CREATE TABLE `orders` ( `o_orderkey` int(11) NOT NULL, `o_custkey` int(11) NOT NULL, `o_orderstatus` varchar(1) NOT NULL, `o_totalprice` decimal(15, 2) NOT NULL, `o_orderdate` date NOT NULL, `o_orderpriority` varchar(15) NOT NULL, `o_clerk` varchar(15) NOT NULL, `o_shippriority` int(11) NOT NULL, `o_comment` varchar(79) NOT NULL, PRIMARY KEY (`o_orderkey`) ) ENGINE = 'oss' DEFAULT CHARSET = latin1 PARTITION BY KEY (`o_orderkey`) PARTITIONS 4; - part: - CREATE TABLE `part` ( `p_partkey` int(11) NOT NULL, `p_name` varchar(55) NOT NULL, `p_mfgr` varchar(25) NOT NULL, `p_brand` varchar(10) NOT NULL, `p_type` varchar(25) NOT NULL, `p_size` int(11) NOT NULL, `p_container` varchar(10) NOT NULL, `p_retailprice` decimal(15, 2) NOT NULL, `p_comment` varchar(23) NOT NULL, PRIMARY KEY (`p_partkey`) ) ENGINE = 'oss' DEFAULT CHARSET = latin1 PARTITION BY KEY (`p_partkey`) PARTITIONS 4; - partsupp: - CREATE TABLE `partsupp` ( `ps_partkey` int(11) NOT NULL, `ps_suppkey` int(11) NOT NULL, `ps_availqty` int(11) NOT NULL, `ps_supplycost` decimal(15, 2) NOT NULL, `ps_comment` varchar(199) NOT NULL, PRIMARY KEY (`ps_partkey`, `ps_suppkey`), KEY `IDX_PARTSUPP_SUPPKEY` (`ps_suppkey`) ) ENGINE = 'oss' DEFAULT CHARSET = latin1 PARTITION BY KEY (`ps_partkey`) PARTITIONS 4; - region: - CREATE TABLE `region` ( `r_regionkey` int(11) NOT NULL, `r_name` varchar(25) NOT NULL, `r_comment` varchar(152) DEFAULT NULL, PRIMARY KEY (`r_regionkey`) ) BROADCAST ENGINE = 'oss' DEFAULT CHARSET = latin1; -STATISTICS: - customer: - 149974 - lineitem: - 5996114 - nation: - 25 - orders: - 1503794 - part: - 199543 - partsupp: - 796736 - region: - 5 - supplier: - 10000 - customer.c_acctbal.TOPN: - {"countArr":[],"valueArr":[],"type":"Double"} - customer.c_acctbal.cardinality: - 144478 - customer.c_acctbal.histogram: - {"buckets":[{"ndv":155,"upper":-835.27,"lower":-999.98,"count":157,"preSum":0},{"ndv":155,"upper":-662.98,"lower":-835.01,"count":157,"preSum":157},{"ndv":156,"upper":-470.9,"lower":-662.67,"count":157,"preSum":314},{"ndv":157,"upper":-305.36,"lower":-468.58,"count":157,"preSum":471},{"ndv":157,"upper":-138.34,"lower":-305.28,"count":157,"preSum":628},{"ndv":157,"upper":28.36,"lower":-138.31,"count":157,"preSum":785},{"ndv":156,"upper":227.89,"lower":28.4,"count":157,"preSum":942},{"ndv":157,"upper":409.5,"lower":229.72,"count":157,"preSum":1099},{"ndv":157,"upper":572.7,"lower":410.86,"count":157,"preSum":1256},{"ndv":157,"upper":758.79,"lower":572.86,"count":157,"preSum":1413},{"ndv":157,"upper":929.32,"lower":761.35,"count":157,"preSum":1570},{"ndv":156,"upper":1089.45,"lower":931.18,"count":157,"preSum":1727},{"ndv":157,"upper":1261.87,"lower":1090.35,"count":157,"preSum":1884},{"ndv":157,"upper":1423.42,"lower":1262.12,"count":157,"preSum":2041},{"ndv":157,"upper":1588.41,"lower":1424.25,"count":157,"preSum":2198},{"ndv":155,"upper":1749.88,"lower":1588.7,"count":157,"preSum":2355},{"ndv":157,"upper":1905,"lower":1752.12,"count":157,"preSum":2512},{"ndv":156,"upper":2081.52,"lower":1905.87,"count":157,"preSum":2669},{"ndv":156,"upper":2267.3,"lower":2082.78,"count":157,"preSum":2826},{"ndv":156,"upper":2425.06,"lower":2268.1,"count":157,"preSum":2983},{"ndv":155,"upper":2591.36,"lower":2425.91,"count":157,"preSum":3140},{"ndv":156,"upper":2756.49,"lower":2591.73,"count":157,"preSum":3297},{"ndv":156,"upper":2928.21,"lower":2756.98,"count":157,"preSum":3454},{"ndv":157,"upper":3104.03,"lower":2928.85,"count":157,"preSum":3611},{"ndv":157,"upper":3276.12,"lower":3106.4,"count":157,"preSum":3768},{"ndv":155,"upper":3443.92,"lower":3282.15,"count":157,"preSum":3925},{"ndv":156,"upper":3648.46,"lower":3444.97,"count":157,"preSum":4082},{"ndv":157,"upper":3841.17,"lower":3648.88,"count":157,"preSum":4239},{"ndv":156,"upper":4044.64,"lower":3844.47,"count":157,"preSum":4396},{"ndv":156,"upper":4211.59,"lower":4045.08,"count":157,"preSum":4553},{"ndv":156,"upper":4379.94,"lower":4212.24,"count":157,"preSum":4710},{"ndv":156,"upper":4572.06,"lower":4380.52,"count":157,"preSum":4867},{"ndv":157,"upper":4757.36,"lower":4575.06,"count":157,"preSum":5024},{"ndv":157,"upper":4950.89,"lower":4759.29,"count":157,"preSum":5181},{"ndv":157,"upper":5098.1,"lower":4951.16,"count":157,"preSum":5338},{"ndv":155,"upper":5279.78,"lower":5098.18,"count":157,"preSum":5495},{"ndv":157,"upper":5454.44,"lower":5283.03,"count":157,"preSum":5652},{"ndv":156,"upper":5644.01,"lower":5455.73,"count":157,"preSum":5809},{"ndv":157,"upper":5794.81,"lower":5645.45,"count":157,"preSum":5966},{"ndv":156,"upper":5973.9,"lower":5805.39,"count":157,"preSum":6123},{"ndv":157,"upper":6159.74,"lower":5974.84,"count":157,"preSum":6280},{"ndv":156,"upper":6313.1,"lower":6160.17,"count":157,"preSum":6437},{"ndv":157,"upper":6502.77,"lower":6314.39,"count":157,"preSum":6594},{"ndv":155,"upper":6664.98,"lower":6503.88,"count":157,"preSum":6751},{"ndv":157,"upper":6838.81,"lower":6667.58,"count":157,"preSum":6908},{"ndv":155,"upper":7005.96,"lower":6839.92,"count":157,"preSum":7065},{"ndv":157,"upper":7165.77,"lower":7007.35,"count":157,"preSum":7222},{"ndv":156,"upper":7341.35,"lower":7166.16,"count":157,"preSum":7379},{"ndv":155,"upper":7505.38,"lower":7343.03,"count":157,"preSum":7536},{"ndv":156,"upper":7671.86,"lower":7505.47,"count":157,"preSum":7693},{"ndv":156,"upper":7843.68,"lower":7672.42,"count":157,"preSum":7850},{"ndv":156,"upper":7997.22,"lower":7845.91,"count":157,"preSum":8007},{"ndv":156,"upper":8171.3,"lower":7997.44,"count":157,"preSum":8164},{"ndv":156,"upper":8361.93,"lower":8171.92,"count":157,"preSum":8321},{"ndv":157,"upper":8533.31,"lower":8362.18,"count":157,"preSum":8478},{"ndv":156,"upper":8675.85,"lower":8533.54,"count":157,"preSum":8635},{"ndv":157,"upper":8847.74,"lower":8678.97,"count":157,"preSum":8792},{"ndv":155,"upper":9011.41,"lower":8848.47,"count":157,"preSum":8949},{"ndv":156,"upper":9184.72,"lower":9011.67,"count":157,"preSum":9106},{"ndv":157,"upper":9356.56,"lower":9186.56,"count":157,"preSum":9263},{"ndv":153,"upper":9534.28,"lower":9357.62,"count":157,"preSum":9420},{"ndv":157,"upper":9696.34,"lower":9535.29,"count":157,"preSum":9577},{"ndv":157,"upper":9873.45,"lower":9698.46,"count":157,"preSum":9734},{"ndv":109,"upper":9999.23,"lower":9874.64,"count":109,"preSum":9891}],"maxBucketSize":64,"type":"Double","sampleRate":0.100017} - customer.c_acctbal.null_count: - 0 - customer.c_acctbal.sample_rate: - 0.6666667 - customer.c_address.TOPN: - {"countArr":[],"valueArr":[],"type":"String"} - customer.c_address.cardinality: - 148774 - customer.c_address.histogram: - {"buckets":[{"ndv":157,"upper":" yrGnW5edewvMKMYG4JTghNgbghc1Aq95YrBYA","lower":" dhPThX2kYJT","count":157,"preSum":0},{"ndv":157,"upper":",XtVF9pUfw36RDJVmGlDPDbIk j7bAVrxG9VHAp","lower":" YrZJJi1xee5nq1Qrnz","count":157,"preSum":157},{"ndv":157,"upper":"0W01u,O2ps2puMPc5,zHsFFauFpI93MCFMF16","lower":",xULEuR8kDIfnw0","count":157,"preSum":314},{"ndv":157,"upper":"21HieXa, d8Gf9HR","lower":"0W9rPYxya7AA0Nw","count":157,"preSum":471},{"ndv":157,"upper":"30r,1khAbRL3zDrm FeQ1PGcuZEA5lsYHzJiwUOx","lower":"22aXvtpqJJXCfmueQYwz6QxdBL5YJFDkLHgmOR","count":157,"preSum":628},{"ndv":157,"upper":"3ZWQ5xexnnLDEmxpmbg","lower":"311DXCLSyLMJWwlpGNAWdEwv1ohwQU,DNIhsp","count":157,"preSum":785},{"ndv":157,"upper":"4wSP4KY0rnpJiqSDlkGptE","lower":"3ZXiOuD79RM6iOkXhGnCKILBVi3T","count":157,"preSum":942},{"ndv":157,"upper":"5TMWtazXBYciPBZuakH3gd5zFLTpHyQ532WPjIU","lower":"4X7P547HgWJxNKrFHOYy2ejjlD","count":157,"preSum":1099},{"ndv":157,"upper":"6St15ncG84dMT62Yd,Aum6BX9e98U785E9GO9Z2","lower":"5U6xDTvRoem5Gfwhj7WOiUhVDCRoM","count":157,"preSum":1256},{"ndv":157,"upper":"7RF8yIC Gi9VNtLDM1 wAWbelOp9v0u","lower":"6sV7bTWz3bx2,hk7bF1,ipbFcmpomoMb wt","count":157,"preSum":1413},{"ndv":157,"upper":"8P4Xt0rjkbWLl","lower":"7RK5FlWEnbxon3MtzBMFQAA38yeK4BfaeeBYL","count":157,"preSum":1570},{"ndv":157,"upper":"9oGzFcPdk,W","lower":"8p6w5SbJJLcUGyYiURPvFwUWMLo","count":157,"preSum":1727},{"ndv":157,"upper":"ACWPauTkkihIQSnKQZT8AofZGuOZU","lower":"9OKHx1,rXIAV0pq6Vj,uERU44LaT","count":157,"preSum":1884},{"ndv":157,"upper":"aQwLqH8BYUseOEumjhbO","lower":"AcZEbatncWfzEzHhgz","count":157,"preSum":2041},{"ndv":157,"upper":"BCXVVsu,4eF gU0Qc6KXjDg5P9Y5ihm","lower":"ArifsT45MN,N2HR,CoiDLwG0","count":157,"preSum":2198},{"ndv":157,"upper":"BSZ7dNOSeGT Zxel52TXp75GuTMmc35E,MxLuU,f","lower":"bd7aSAMjF0jBXJBLjHG","count":157,"preSum":2355},{"ndv":157,"upper":"CCe01yM1,yU","lower":"bt zZLLDVJVBnBD2mC1PFea3kstdO9 MEjC","count":157,"preSum":2512},{"ndv":157,"upper":"cR5QLdFoi6e2K96SOIuBSTagcn9orFt7,xWx","lower":"ccGwJ9XaJ6GBOV66MJ5YHouXGGx fmzd51jL2A,","count":157,"preSum":2669},{"ndv":157,"upper":"dEeGiXS im0oshD1PvNX2Hk0MavPTbcgwvRxDTe","lower":"CRiEu2P,lJ0lTDiXlhwIDpnF","count":157,"preSum":2826},{"ndv":157,"upper":"DtVj hSRtE9zFNv7bK3NnWbpOaW","lower":"defUecjpcp","count":157,"preSum":2983},{"ndv":157,"upper":"Ed2XHAv9E92Z1XkTB7","lower":"dtXRNFymZVjUBhca,cYz xs","count":157,"preSum":3140},{"ndv":157,"upper":"EuuI30yXurNv1FrVT,JTsTTbZmYH6 czw8srn","lower":"edAHSw6NusEP7SnmAdCcH76wdV89CCk51hoGQoOs","count":157,"preSum":3297},{"ndv":157,"upper":"fGer5GPSFMwCBEM4Ces ViO0MjrC","lower":"euW6ZnCVGdwuNI7KJzy9C","count":157,"preSum":3454},{"ndv":157,"upper":"Fwm2pnymATwOm1py8IbOsZqU6CNZqhe0rv49","lower":"fGFc8FYYqRYc","count":157,"preSum":3611},{"ndv":157,"upper":"GHtqFDwWHbNUL,3oZj3uG7uNSnsL3CSDBBbJk","lower":"fWMJmb8STmnH1lJMCC","count":157,"preSum":3768},{"ndv":157,"upper":"GXVNlkBfmK2HlqVtNrQqshtk6rmajBKn53NJn","lower":"GhtqGG59ZL","count":157,"preSum":3925},{"ndv":157,"upper":"hIR0Zj7EuiUISZHrEMpNhiNXer6nUX6mnxWbQ","lower":"GYacW2q7jUvQ4ZaOKQCOptojz4ibXRz2","count":157,"preSum":4082},{"ndv":157,"upper":"I0zjBJPcfn75ALotttpYmAx7Ea2j4SNYqy9","lower":"HIS3q,KYrJ4y1QM4DlArKCaiFOS5z81YWqSJXhR2","count":157,"preSum":4239},{"ndv":157,"upper":"imQblQQFBmossX4uEtht3","lower":"i1as0hoibycrx724FBq5Y4Htdc45","count":157,"preSum":4396},{"ndv":157,"upper":"j1YPtuuu4Yiijvy8Qy1a9pGxrF,laEL,ZlrL7kiF","lower":"ImQk Fas7rDcKQZImqYhGxXjmoaGWf1","count":157,"preSum":4553},{"ndv":157,"upper":"JLl30yUD7I,Dr5MOpCt9dLAm03","lower":"j267EDs426tlS","count":157,"preSum":4710},{"ndv":157,"upper":"JZXsc,PRh7Jkglyb,KMWLlPL5uQS0nd5U6B","lower":"jLLXLqGoC nYG1zACYZ","count":157,"preSum":4867},{"ndv":157,"upper":"kHZBdwdzpSSXIImPV7Z,EIAhjWaM6LnGFq1l","lower":"jzxYS62XQYXI7DvRxI2xqHh2f6TwPuiDC","count":157,"preSum":5024},{"ndv":157,"upper":"kwLHX8qOQdG0efHn","lower":"Ki7Denf7j8sG","count":157,"preSum":5181},{"ndv":157,"upper":"lFkpNUkS0oINd1bKqXc","lower":"KwMUvvh8UXxtCGZq2T7Lip,c E95","count":157,"preSum":5338},{"ndv":157,"upper":"LxumltEIF1OZuUSaKVRoO","lower":"LfQUfiwSdsgaWFY,F0mjuCkaU","count":157,"preSum":5495},{"ndv":157,"upper":"mi 9ncQZORe13Ga","lower":"lxzqxLf2B4ocPnwLMsb","count":157,"preSum":5652},{"ndv":157,"upper":"n ,spX4 UcK,aM","lower":"mIcr39LlBrwYhqMA0IyHl9Lpd02wNAWkF","count":157,"preSum":5809},{"ndv":157,"upper":"nKEtWqPhXCwBoG6B y9GpcSlmuwj","lower":"n 9BPlUDqeMgzEQDu7GN3,VTojp,9cW","count":157,"preSum":5966},{"ndv":157,"upper":"O DbCbqmcwaVKgbBDdlrX7uKv5oOfGvuSX2muycZ","lower":"nKF xj,Sj uqckvfUU7LhJy","count":157,"preSum":6123},{"ndv":157,"upper":"ok8kZbCukojD,NE2DJzeO,gE8","lower":"o dy5Hy9prq2MoEtbJQB4U0NAmg68MVyIy57NAB","count":157,"preSum":6280},{"ndv":157,"upper":"P0nGG0JlD7nexvN0r,dON2bav6l6qDhFcPtW","lower":"OKahqGHctiMNAMMH4RWle","count":157,"preSum":6437},{"ndv":157,"upper":"pMSSFULanRZPHbZLZ7ENSjKJd5B4aIp4GXK","lower":"P0VHqT7DR6AaDyO0xMxa0mdiGdH9JVO","count":157,"preSum":6594},{"ndv":157,"upper":"Q2hItYAXmqFAf204NAbdcgXJuMSWgUL","lower":"pmTnr6PZesiaxhy,,hrBX4","count":157,"preSum":6751},{"ndv":157,"upper":"qlVoScdb,J7 Mng 80pj8","lower":"q2XFkFtoXn7GgXMsuDZ7QkdSg","count":157,"preSum":6908},{"ndv":157,"upper":"R2trKCdjDiHvpdl24","lower":"QM0JCcwqe 2OSh5LpTjoQVL0dIbCJ3unJO5V","count":157,"preSum":7065},{"ndv":157,"upper":"rL8oobMyzFqgs,","lower":"R3546LvLcpm","count":157,"preSum":7222},{"ndv":157,"upper":"S NjcbVE6x1sD","lower":"RlALuJjauDu","count":157,"preSum":7379},{"ndv":157,"upper":"sjFTJYVlIx2GGnadHKdhEBYBL7RGW7g","lower":"s SoTtA1Ea","count":157,"preSum":7536},{"ndv":157,"upper":"sZ84,aE4hoiHgqGrYplY0Tgk","lower":"sjk1DTHWVMX53kG8AbTtTh1EcMvWeDO8gFDdpQOK","count":157,"preSum":7693},{"ndv":157,"upper":"tLqu6FpD4u0vDdiMnx2VlQA9H5QmJaL6bIjoc","lower":"SzcU6nbrhmqK2TUi8KnHI6CpdDGfH0cg5az","count":157,"preSum":7850},{"ndv":157,"upper":"U06r6k,f8QB3Uu91YqpfBF9Qs1pfY9szJkMFH","lower":"TLrVya3YgvEL4gtpkZhDA0s48P1qn56","count":157,"preSum":8007},{"ndv":157,"upper":"UKQ9zgzL1IQnTPDM","lower":"U085qXFwWS1yG0InaKCdnO5iZdmLM0WFifanV","count":157,"preSum":8164},{"ndv":157,"upper":"v,POLK6bxV6ijGtgv","lower":"UkrkuE,9k6EMAcniNdkG","count":157,"preSum":8321},{"ndv":157,"upper":"VjNB3sD7BZcecucC7w","lower":"V,soredhCN5XAnBad","count":157,"preSum":8478},{"ndv":157,"upper":"w,DqPLkW20L22E0Z5snn86wicvM FeHuY","lower":"VJQQye2JMDUV7LoeZTK52npqzhgHUD,Lyk6LRE","count":157,"preSum":8635},{"ndv":157,"upper":"wllVq7SYTcrBhY3ZY","lower":"W,etlG7OdLQczG","count":157,"preSum":8792},{"ndv":157,"upper":"x3dVrM1jVhkcOq jszUU4QraUrvb","lower":"wLNo5gGsUMQpxpArO2jhEnc5wwe","count":157,"preSum":8949},{"ndv":157,"upper":"xNNBo,zHzOTrtbzIg0vmY0vYC ","lower":"X3oS3d6Lf3,,DvtjKS7wcA ZNjkvTd","count":157,"preSum":9106},{"ndv":157,"upper":"Y5Y5yQoAJ9FjnsDZ6DHL6xWon3oHQj","lower":"Xnx1bAthzXblHZimvFGdczbz56E1Jp8odM5qA","count":157,"preSum":9263},{"ndv":157,"upper":"yPipWi3xtK","lower":"y63PFhvCqa8T,SjnyFCmQIxjaR76WdTbN4q1e9nu","count":157,"preSum":9420},{"ndv":157,"upper":"ZaRzPk8VBMGusGwEFS3Mmm","lower":"YpMtiM4lp8vFiI","count":157,"preSum":9577},{"ndv":157,"upper":"zPTtrp8JP5AypZnsg6A37I4e3AcwQ xd4qud","lower":"zau1gB7woNfLEq0pIQanuHxuv Szy","count":157,"preSum":9734},{"ndv":109,"upper":"ZZPOgGC0vqXXJr5qT27R ","lower":"zPuf90zSB0Ef45vtkB","count":109,"preSum":9891}],"maxBucketSize":64,"type":"String","sampleRate":0.100017} - customer.c_address.null_count: - 0 - customer.c_address.sample_rate: - 0.6666667 - customer.c_comment.TOPN: - {"countArr":[],"valueArr":[],"type":"String"} - customer.c_comment.cardinality: - 148745 - customer.c_comment.histogram: - {"buckets":[{"ndv":157,"upper":" beans! unusual courts was final foxes. fu","lower":" about the carefully regular requests. special acc","count":157,"preSum":0},{"ndv":157,"upper":" carefully regular foxes. even deposits after the ","lower":" beans. blithely final packages x-ray-- even, unus","count":157,"preSum":157},{"ndv":157,"upper":" excuses wake furiously. fluffily bold courts cajo","lower":" carefully regular pinto beans nag silently across","count":157,"preSum":314},{"ndv":157,"upper":" haggle around the carefully express courts. speci","lower":" excuses wake. quickly final deposits wake for the","count":157,"preSum":471},{"ndv":157,"upper":" packages sleep. sometimes unusual foxes against t","lower":" haggle around the unusual instructions. ironic in","count":157,"preSum":628},{"ndv":157,"upper":" regular theodolites among the special, regular pi","lower":" packages wake! ironic deposits after the carefull","count":157,"preSum":785},{"ndv":157,"upper":" the blithely express requests. express packages s","lower":" regular theodolites boost. furiously silent reque","count":157,"preSum":942},{"ndv":157,"upper":" unusual pinto beans alongside of the slyly silent","lower":" the blithely ironic instructions. regular package","count":157,"preSum":1099},{"ndv":157,"upper":". furiously even deposits sleep quickly pending fo","lower":" unusual pinto beans. furiously pending asymptotes","count":157,"preSum":1256},{"ndv":157,"upper":"accounts wake. busily even dependencies ","lower":". furiously even foxes hinder blithely according t","count":157,"preSum":1413},{"ndv":157,"upper":"ajole blithely carefully final requests; carefully","lower":"accounts was. final, final requests wake. theodoli","count":157,"preSum":1570},{"ndv":157,"upper":"ang slyly. quickly ironic foxes detect. furiously ","lower":"ajole blithely final ideas. even accounts are blit","count":157,"preSum":1727},{"ndv":157,"upper":"as are alongside of the pending foxes. fluffily sp","lower":"ans above the slyly pending courts cajole regular,","count":157,"preSum":1884},{"ndv":157,"upper":"bove the instructions. furiously silent instructio","lower":"as are blithely about the blithely final theodolit","count":157,"preSum":2041},{"ndv":157,"upper":"ccounts integrate about the regular platelets. thi","lower":"bove the ironic, final accounts nag quickly packag","count":157,"preSum":2198},{"ndv":157,"upper":"counts wake according to the furiously regular dep","lower":"ccounts sleep blithely across the regular instruct","count":157,"preSum":2355},{"ndv":157,"upper":"deposits cajole quickly regular deposits-- careful","lower":"counts wake regular foxes. deposits atop the caref","count":157,"preSum":2512},{"ndv":157,"upper":"e carefully after the carefully ironic ideas. blit","lower":"deposits doze slyly along the bold, pending reques","count":157,"preSum":2669},{"ndv":157,"upper":"e slyly quickly ironic deposits. slyly pending pea","lower":"e carefully along the express, bold ideas. final a","count":157,"preSum":2826},{"ndv":157,"upper":"efully quick realms. express accounts affix brave,","lower":"e slyly regular deposits. fluffily even tithes mol","count":157,"preSum":2983},{"ndv":157,"upper":"en packages use. fluffily regular dependencies boo","lower":"efully quiet deposits haggle slowly furiously spec","count":157,"preSum":3140},{"ndv":157,"upper":"eposits. always close excuses detect fluffily acco","lower":"en pearls wake slyly. carefully regular instructio","count":157,"preSum":3297},{"ndv":157,"upper":"es. slyly ironic frets sleep-- silent instructions","lower":"eposits. blithely final pinto beans breach blithel","count":157,"preSum":3454},{"ndv":157,"upper":"express packages sleep carefully alongside of the ","lower":"es. slyly quick requests cajole furiously regul","count":157,"preSum":3611},{"ndv":157,"upper":"foxes cajole. blithely ironic deposits boost caref","lower":"express packages. dolphins wake slyly furiously re","count":157,"preSum":3768},{"ndv":157,"upper":"g attainments. unusual theodolites nag slyly; expr","lower":"foxes could haggle blithely along the even deposit","count":157,"preSum":3925},{"ndv":157,"upper":"grate blithely quickly unusual theodolites. fluffi","lower":"g blithely final deposits. packages are quickly bo","count":157,"preSum":4082},{"ndv":157,"upper":"he ironic, regular dependencies. express, bold req","lower":"grate carefully ironic accounts. blithely even i","count":157,"preSum":4239},{"ndv":157,"upper":"ic asymptotes sleep fluffily unusual asymptotes. p","lower":"he packages. unusual, bold ideas impress","count":157,"preSum":4396},{"ndv":157,"upper":"inal accounts. blithely regular patterns engage. e","lower":"ic dependencies about the furiously ","count":157,"preSum":4553},{"ndv":157,"upper":"ions above the blithely silent deposits sleep","lower":"inal accounts. pending packages cajole about the s","count":157,"preSum":4710},{"ndv":157,"upper":"ithely final accounts x-ray quickly even requests.","lower":"ions across the packages wake furiously carefully ","count":157,"preSum":4867},{"ndv":157,"upper":"kages. carefully final packages integrate slyly be","lower":"ithely final dolphins according to ","count":157,"preSum":5024},{"ndv":157,"upper":"l, ironic pinto beans sleep. unusual, ironic ideas","lower":"kages. carefully unusual platelets play slyly. sly","count":157,"preSum":5181},{"ndv":157,"upper":"lets at the daringly express acco","lower":"l, pending platelets play above the unusual deposi","count":157,"preSum":5338},{"ndv":157,"upper":"lphins. slyly pending theodolites nag. final reque","lower":"lets detect quickly special requests. requests wil","count":157,"preSum":5495},{"ndv":157,"upper":"ly final sentiments wake furiously. daringly iro","lower":"ls! quickly even deposits sleep carefully special ","count":157,"preSum":5652},{"ndv":157,"upper":"ly. carefully special attainments use blithely. ca","lower":"ly final sheaves sleep quickly. blithely final exc","count":157,"preSum":5809},{"ndv":157,"upper":"nal deposits. regular, regular deposits are regula","lower":"ly. carefully unusual instruc","count":157,"preSum":5966},{"ndv":157,"upper":"nic instructions use furiously final platelets. sl","lower":"nal deposits. unusual accounts wake! furiously fin","count":157,"preSum":6123},{"ndv":157,"upper":"nts use furiously pinto beans. carefully even pack","lower":"nic packages doubt blithely regular, regular asymp","count":157,"preSum":6280},{"ndv":157,"upper":"olites among the silent pinto beans nag carefully ","lower":"nts use. requests must have to a","count":157,"preSum":6437},{"ndv":157,"upper":"osits. regular platelets serve blithely regular in","lower":"olites haggle among the instructions. pack","count":157,"preSum":6594},{"ndv":157,"upper":"ove the slyly pending deposits. special, regular r","lower":"osits. slyly ironic pinto beans haggle blithely ac","count":157,"preSum":6751},{"ndv":157,"upper":"phins sleep slyly. ironic requests nag unusual pin","lower":"ow accounts affix carefully silent deposits. slyly","count":157,"preSum":6908},{"ndv":157,"upper":"quests. quickly pending deposits about the bold, u","lower":"phins. blithely regular packages cajole fluffily a","count":157,"preSum":7065},{"ndv":157,"upper":"re above the blithely even foxes. slyly even pinto","lower":"quests. quickly pending packages across the ironic","count":157,"preSum":7222},{"ndv":157,"upper":"requests use quietly alongside of the carefully bo","lower":"re according to the slyly regular dep","count":157,"preSum":7379},{"ndv":157,"upper":"ronic theodolites! furiously even pinto beans impr","lower":"requests wake fluffily ironic accounts. slyly regu","count":157,"preSum":7536},{"ndv":157,"upper":"s dolphins are among the slyly silent pearls. blit","lower":"ronic theodolites. pending sauternes wake slyly ir","count":157,"preSum":7693},{"ndv":157,"upper":"s wake. regular, express accounts along the carefu","lower":"s dolphins. slyly even epitaphs boost slyly after ","count":157,"preSum":7850},{"ndv":157,"upper":"silent accounts boost about the unusual deposits. ","lower":"s warhorses sleep along the even, pending theodoli","count":157,"preSum":8007},{"ndv":157,"upper":"slyly regular decoys. accounts nag blithely. furi","lower":"silent accounts sleep quickly fluffily regular req","count":157,"preSum":8164},{"ndv":157,"upper":"sual accounts wake doggedly. slowly thin requests ","lower":"slyly regular ideas. carefully regul","count":157,"preSum":8321},{"ndv":157,"upper":"the carefully pending accounts. final foxes doubt.","lower":"sual accounts. ironic pinto beans could have to pl","count":157,"preSum":8478},{"ndv":157,"upper":"tions. slyly ironic pinto beans sleep ","lower":"the carefully regular asymptotes. quickly fluffy d","count":157,"preSum":8635},{"ndv":157,"upper":"ts. busy, pending deposits wake carefully unusual ","lower":"tions. slyly ironic waters wa","count":157,"preSum":8792},{"ndv":157,"upper":"uickly final instructions sleep ironic, express ex","lower":"ts. carefully pending instructions nag. carefully ","count":157,"preSum":8949},{"ndv":157,"upper":"unts. carefully ironic instructions hag","lower":"uickly furiously even packages. furiously regular ","count":157,"preSum":9106},{"ndv":157,"upper":"usly ironic deposits. fluffily regular requests ha","lower":"unts. closely express ideas detect furiously. iron","count":157,"preSum":9263},{"ndv":157,"upper":"waters about the deposits are according to the fur","lower":"usly ironic packages run final requests. furiously","count":157,"preSum":9420},{"ndv":157,"upper":"y express, ironic deposits. final deposits nag sly","lower":"ways against the even, even accounts. quickly expr","count":157,"preSum":9577},{"ndv":157,"upper":"y unusual requests thrash carefully regular, ironi","lower":"y final accounts eat according to the regular acco","count":157,"preSum":9734},{"ndv":109,"upper":"zzle! quiet pinto beans are quickly carefully regu","lower":"y unusual theodolites x-ray furiously. frays sleep","count":109,"preSum":9891}],"maxBucketSize":64,"type":"String","sampleRate":0.100017} - customer.c_comment.null_count: - 0 - customer.c_comment.sample_rate: - 0.6666667 - customer.c_custkey.TOPN: - {"countArr":[],"valueArr":[],"type":"Int"} - customer.c_custkey.cardinality: - 148773 - customer.c_custkey.histogram: - {"buckets":[{"ndv":157,"upper":2335,"lower":16,"count":157,"preSum":0},{"ndv":157,"upper":4939,"lower":2353,"count":157,"preSum":157},{"ndv":157,"upper":7229,"lower":4953,"count":157,"preSum":314},{"ndv":157,"upper":9481,"lower":7235,"count":157,"preSum":471},{"ndv":157,"upper":11843,"lower":9486,"count":157,"preSum":628},{"ndv":157,"upper":14348,"lower":11890,"count":157,"preSum":785},{"ndv":157,"upper":16926,"lower":14349,"count":157,"preSum":942},{"ndv":157,"upper":19210,"lower":16952,"count":157,"preSum":1099},{"ndv":157,"upper":21627,"lower":19222,"count":157,"preSum":1256},{"ndv":157,"upper":24144,"lower":21629,"count":157,"preSum":1413},{"ndv":157,"upper":26630,"lower":24145,"count":157,"preSum":1570},{"ndv":157,"upper":28707,"lower":26647,"count":157,"preSum":1727},{"ndv":157,"upper":31416,"lower":28722,"count":157,"preSum":1884},{"ndv":157,"upper":33578,"lower":31417,"count":157,"preSum":2041},{"ndv":157,"upper":36164,"lower":33615,"count":157,"preSum":2198},{"ndv":157,"upper":37924,"lower":36169,"count":157,"preSum":2355},{"ndv":157,"upper":40370,"lower":37932,"count":157,"preSum":2512},{"ndv":157,"upper":42698,"lower":40392,"count":157,"preSum":2669},{"ndv":157,"upper":45020,"lower":42711,"count":157,"preSum":2826},{"ndv":157,"upper":47488,"lower":45034,"count":157,"preSum":2983},{"ndv":157,"upper":49667,"lower":47494,"count":157,"preSum":3140},{"ndv":157,"upper":52217,"lower":49682,"count":157,"preSum":3297},{"ndv":157,"upper":54300,"lower":52228,"count":157,"preSum":3454},{"ndv":157,"upper":56730,"lower":54311,"count":157,"preSum":3611},{"ndv":157,"upper":58987,"lower":56759,"count":157,"preSum":3768},{"ndv":157,"upper":61139,"lower":59004,"count":157,"preSum":3925},{"ndv":157,"upper":63509,"lower":61155,"count":157,"preSum":4082},{"ndv":157,"upper":65885,"lower":63519,"count":157,"preSum":4239},{"ndv":157,"upper":68032,"lower":65887,"count":157,"preSum":4396},{"ndv":157,"upper":70291,"lower":68047,"count":157,"preSum":4553},{"ndv":157,"upper":72548,"lower":70315,"count":157,"preSum":4710},{"ndv":157,"upper":74912,"lower":72578,"count":157,"preSum":4867},{"ndv":157,"upper":77546,"lower":74913,"count":157,"preSum":5024},{"ndv":157,"upper":80021,"lower":77549,"count":157,"preSum":5181},{"ndv":157,"upper":82297,"lower":80051,"count":157,"preSum":5338},{"ndv":157,"upper":84896,"lower":82301,"count":157,"preSum":5495},{"ndv":157,"upper":87381,"lower":84905,"count":157,"preSum":5652},{"ndv":157,"upper":90204,"lower":87392,"count":157,"preSum":5809},{"ndv":157,"upper":92597,"lower":90230,"count":157,"preSum":5966},{"ndv":157,"upper":95193,"lower":92642,"count":157,"preSum":6123},{"ndv":157,"upper":97740,"lower":95194,"count":157,"preSum":6280},{"ndv":157,"upper":100036,"lower":97749,"count":157,"preSum":6437},{"ndv":157,"upper":102725,"lower":100040,"count":157,"preSum":6594},{"ndv":157,"upper":105168,"lower":102746,"count":157,"preSum":6751},{"ndv":157,"upper":107500,"lower":105174,"count":157,"preSum":6908},{"ndv":157,"upper":109638,"lower":107502,"count":157,"preSum":7065},{"ndv":157,"upper":112069,"lower":109648,"count":157,"preSum":7222},{"ndv":157,"upper":114313,"lower":112076,"count":157,"preSum":7379},{"ndv":157,"upper":116458,"lower":114318,"count":157,"preSum":7536},{"ndv":157,"upper":118962,"lower":116508,"count":157,"preSum":7693},{"ndv":157,"upper":121022,"lower":118968,"count":157,"preSum":7850},{"ndv":157,"upper":123322,"lower":121038,"count":157,"preSum":8007},{"ndv":157,"upper":125362,"lower":123326,"count":157,"preSum":8164},{"ndv":157,"upper":127596,"lower":125372,"count":157,"preSum":8321},{"ndv":157,"upper":129715,"lower":127640,"count":157,"preSum":8478},{"ndv":157,"upper":131978,"lower":129727,"count":157,"preSum":8635},{"ndv":157,"upper":134329,"lower":131998,"count":157,"preSum":8792},{"ndv":157,"upper":136578,"lower":134335,"count":157,"preSum":8949},{"ndv":157,"upper":139127,"lower":136598,"count":157,"preSum":9106},{"ndv":157,"upper":141492,"lower":139164,"count":157,"preSum":9263},{"ndv":157,"upper":143583,"lower":141501,"count":157,"preSum":9420},{"ndv":157,"upper":145728,"lower":143599,"count":157,"preSum":9577},{"ndv":157,"upper":148364,"lower":145751,"count":157,"preSum":9734},{"ndv":109,"upper":149996,"lower":148367,"count":109,"preSum":9891}],"maxBucketSize":64,"type":"Int","sampleRate":0.100017} - customer.c_custkey.null_count: - 0 - customer.c_custkey.sample_rate: - 0.6666667 - customer.c_mktsegment.TOPN: - {"countArr":[1991,2065,1926,1978,2040],"valueArr":["AUTOMOBILE","BUILDING","FURNITURE","HOUSEHOLD","MACHINERY"],"type":"String"} - customer.c_mktsegment.cardinality: - 5 - customer.c_mktsegment.histogram: - {"buckets":[],"maxBucketSize":64,"type":"String","sampleRate":0.100017} - customer.c_mktsegment.null_count: - 0 - customer.c_mktsegment.sample_rate: - 0.6666667 - customer.c_name.TOPN: - {"countArr":[],"valueArr":[],"type":"String"} - customer.c_name.cardinality: - 148735 - customer.c_name.histogram: - {"buckets":[{"ndv":157,"upper":"Customer#000002145","lower":"Customer#000000010","count":157,"preSum":0},{"ndv":157,"upper":"Customer#000004530","lower":"Customer#000002155","count":157,"preSum":157},{"ndv":157,"upper":"Customer#000006986","lower":"Customer#000004555","count":157,"preSum":314},{"ndv":157,"upper":"Customer#000009294","lower":"Customer#000006998","count":157,"preSum":471},{"ndv":157,"upper":"Customer#000011814","lower":"Customer#000009309","count":157,"preSum":628},{"ndv":157,"upper":"Customer#000014347","lower":"Customer#000011852","count":157,"preSum":785},{"ndv":157,"upper":"Customer#000016751","lower":"Customer#000014396","count":157,"preSum":942},{"ndv":157,"upper":"Customer#000019017","lower":"Customer#000016761","count":157,"preSum":1099},{"ndv":157,"upper":"Customer#000021304","lower":"Customer#000019027","count":157,"preSum":1256},{"ndv":157,"upper":"Customer#000023583","lower":"Customer#000021317","count":157,"preSum":1413},{"ndv":157,"upper":"Customer#000026080","lower":"Customer#000023595","count":157,"preSum":1570},{"ndv":157,"upper":"Customer#000028128","lower":"Customer#000026085","count":157,"preSum":1727},{"ndv":157,"upper":"Customer#000030455","lower":"Customer#000028130","count":157,"preSum":1884},{"ndv":157,"upper":"Customer#000032862","lower":"Customer#000030459","count":157,"preSum":2041},{"ndv":157,"upper":"Customer#000035527","lower":"Customer#000032863","count":157,"preSum":2198},{"ndv":157,"upper":"Customer#000037833","lower":"Customer#000035549","count":157,"preSum":2355},{"ndv":157,"upper":"Customer#000040597","lower":"Customer#000037841","count":157,"preSum":2512},{"ndv":157,"upper":"Customer#000042943","lower":"Customer#000040604","count":157,"preSum":2669},{"ndv":157,"upper":"Customer#000045458","lower":"Customer#000042951","count":157,"preSum":2826},{"ndv":157,"upper":"Customer#000047594","lower":"Customer#000045473","count":157,"preSum":2983},{"ndv":157,"upper":"Customer#000049854","lower":"Customer#000047601","count":157,"preSum":3140},{"ndv":157,"upper":"Customer#000052023","lower":"Customer#000049871","count":157,"preSum":3297},{"ndv":157,"upper":"Customer#000054453","lower":"Customer#000052027","count":157,"preSum":3454},{"ndv":157,"upper":"Customer#000056699","lower":"Customer#000054502","count":157,"preSum":3611},{"ndv":157,"upper":"Customer#000059174","lower":"Customer#000056724","count":157,"preSum":3768},{"ndv":157,"upper":"Customer#000061885","lower":"Customer#000059230","count":157,"preSum":3925},{"ndv":157,"upper":"Customer#000064027","lower":"Customer#000061906","count":157,"preSum":4082},{"ndv":157,"upper":"Customer#000066260","lower":"Customer#000064055","count":157,"preSum":4239},{"ndv":157,"upper":"Customer#000068532","lower":"Customer#000066265","count":157,"preSum":4396},{"ndv":157,"upper":"Customer#000070707","lower":"Customer#000068540","count":157,"preSum":4553},{"ndv":157,"upper":"Customer#000072773","lower":"Customer#000070725","count":157,"preSum":4710},{"ndv":157,"upper":"Customer#000074895","lower":"Customer#000072774","count":157,"preSum":4867},{"ndv":157,"upper":"Customer#000077463","lower":"Customer#000074913","count":157,"preSum":5024},{"ndv":157,"upper":"Customer#000079770","lower":"Customer#000077480","count":157,"preSum":5181},{"ndv":157,"upper":"Customer#000082261","lower":"Customer#000079772","count":157,"preSum":5338},{"ndv":157,"upper":"Customer#000084618","lower":"Customer#000082280","count":157,"preSum":5495},{"ndv":157,"upper":"Customer#000087094","lower":"Customer#000084650","count":157,"preSum":5652},{"ndv":157,"upper":"Customer#000089306","lower":"Customer#000087107","count":157,"preSum":5809},{"ndv":157,"upper":"Customer#000091838","lower":"Customer#000089319","count":157,"preSum":5966},{"ndv":157,"upper":"Customer#000094496","lower":"Customer#000091847","count":157,"preSum":6123},{"ndv":157,"upper":"Customer#000096538","lower":"Customer#000094509","count":157,"preSum":6280},{"ndv":157,"upper":"Customer#000098826","lower":"Customer#000096556","count":157,"preSum":6437},{"ndv":157,"upper":"Customer#000101268","lower":"Customer#000098869","count":157,"preSum":6594},{"ndv":157,"upper":"Customer#000103401","lower":"Customer#000101274","count":157,"preSum":6751},{"ndv":157,"upper":"Customer#000105554","lower":"Customer#000103441","count":157,"preSum":6908},{"ndv":157,"upper":"Customer#000107895","lower":"Customer#000105555","count":157,"preSum":7065},{"ndv":157,"upper":"Customer#000110353","lower":"Customer#000107899","count":157,"preSum":7222},{"ndv":157,"upper":"Customer#000112978","lower":"Customer#000110375","count":157,"preSum":7379},{"ndv":157,"upper":"Customer#000115306","lower":"Customer#000112991","count":157,"preSum":7536},{"ndv":157,"upper":"Customer#000117462","lower":"Customer#000115322","count":157,"preSum":7693},{"ndv":157,"upper":"Customer#000119650","lower":"Customer#000117466","count":157,"preSum":7850},{"ndv":157,"upper":"Customer#000122111","lower":"Customer#000119690","count":157,"preSum":8007},{"ndv":157,"upper":"Customer#000124512","lower":"Customer#000122145","count":157,"preSum":8164},{"ndv":157,"upper":"Customer#000126889","lower":"Customer#000124542","count":157,"preSum":8321},{"ndv":157,"upper":"Customer#000129539","lower":"Customer#000126899","count":157,"preSum":8478},{"ndv":157,"upper":"Customer#000132048","lower":"Customer#000129545","count":157,"preSum":8635},{"ndv":157,"upper":"Customer#000134237","lower":"Customer#000132054","count":157,"preSum":8792},{"ndv":157,"upper":"Customer#000136820","lower":"Customer#000134244","count":157,"preSum":8949},{"ndv":157,"upper":"Customer#000138811","lower":"Customer#000136833","count":157,"preSum":9106},{"ndv":157,"upper":"Customer#000141351","lower":"Customer#000138814","count":157,"preSum":9263},{"ndv":157,"upper":"Customer#000143717","lower":"Customer#000141356","count":157,"preSum":9420},{"ndv":157,"upper":"Customer#000146000","lower":"Customer#000143721","count":157,"preSum":9577},{"ndv":157,"upper":"Customer#000148290","lower":"Customer#000146036","count":157,"preSum":9734},{"ndv":109,"upper":"Customer#000149956","lower":"Customer#000148293","count":109,"preSum":9891}],"maxBucketSize":64,"type":"String","sampleRate":0.100017} - customer.c_name.null_count: - 0 - customer.c_name.sample_rate: - 0.6666667 - customer.c_nationkey.TOPN: - {"countArr":[400,400,393,389,397,383,373,403,401,388,393,403,387,356],"valueArr":[0,1,4,6,7,11,12,14,15,16,17,19,23,24],"type":"Int"} - customer.c_nationkey.cardinality: - 25 - customer.c_nationkey.histogram: - {"buckets":[{"ndv":1,"upper":2,"lower":2,"count":441,"preSum":0},{"ndv":1,"upper":3,"lower":3,"count":421,"preSum":441},{"ndv":1,"upper":5,"lower":5,"count":419,"preSum":862},{"ndv":1,"upper":8,"lower":8,"count":347,"preSum":1281},{"ndv":1,"upper":9,"lower":9,"count":425,"preSum":1628},{"ndv":1,"upper":10,"lower":10,"count":419,"preSum":2053},{"ndv":1,"upper":13,"lower":13,"count":405,"preSum":2472},{"ndv":1,"upper":18,"lower":18,"count":405,"preSum":2877},{"ndv":1,"upper":20,"lower":20,"count":408,"preSum":3282},{"ndv":1,"upper":21,"lower":21,"count":431,"preSum":3690},{"ndv":1,"upper":22,"lower":22,"count":413,"preSum":4121}],"maxBucketSize":64,"type":"Int","sampleRate":0.100017} - customer.c_nationkey.null_count: - 0 - customer.c_nationkey.sample_rate: - 0.6666667 - customer.c_phone.TOPN: - {"countArr":[],"valueArr":[],"type":"String"} - customer.c_phone.cardinality: - 148778 - customer.c_phone.histogram: - {"buckets":[{"ndv":157,"upper":"10-527-179-3697","lower":"10-107-562-7345","count":157,"preSum":0},{"ndv":157,"upper":"10-896-339-3882","lower":"10-529-910-4789","count":157,"preSum":157},{"ndv":157,"upper":"11-305-801-7001","lower":"10-898-599-1792","count":157,"preSum":314},{"ndv":157,"upper":"11-686-961-1349","lower":"11-306-303-4255","count":157,"preSum":471},{"ndv":157,"upper":"12-178-878-4710","lower":"11-687-241-6921","count":157,"preSum":628},{"ndv":157,"upper":"12-501-368-1355","lower":"12-181-374-9390","count":157,"preSum":785},{"ndv":157,"upper":"12-857-316-9455","lower":"12-502-725-8207","count":157,"preSum":942},{"ndv":157,"upper":"13-313-605-3215","lower":"12-857-814-4069","count":157,"preSum":1099},{"ndv":157,"upper":"13-608-200-6079","lower":"13-317-468-9918","count":157,"preSum":1256},{"ndv":157,"upper":"13-996-739-3348","lower":"13-611-796-7217","count":157,"preSum":1413},{"ndv":157,"upper":"14-457-107-3262","lower":"14-101-427-5648","count":157,"preSum":1570},{"ndv":157,"upper":"14-823-574-4092","lower":"14-459-908-4588","count":157,"preSum":1727},{"ndv":157,"upper":"15-298-125-4771","lower":"14-825-988-1255","count":157,"preSum":1884},{"ndv":157,"upper":"15-681-122-4265","lower":"15-299-374-1876","count":157,"preSum":2041},{"ndv":157,"upper":"16-139-132-8697","lower":"15-681-374-3056","count":157,"preSum":2198},{"ndv":157,"upper":"16-536-550-4627","lower":"16-139-471-2372","count":157,"preSum":2355},{"ndv":157,"upper":"16-922-561-5512","lower":"16-539-290-8607","count":157,"preSum":2512},{"ndv":157,"upper":"17-362-640-2842","lower":"16-929-625-7257","count":157,"preSum":2669},{"ndv":157,"upper":"17-741-415-1274","lower":"17-362-776-3707","count":157,"preSum":2826},{"ndv":157,"upper":"18-200-913-9796","lower":"17-751-482-1806","count":157,"preSum":2983},{"ndv":157,"upper":"18-554-945-1826","lower":"18-202-245-6959","count":157,"preSum":3140},{"ndv":157,"upper":"18-972-832-8296","lower":"18-556-558-9854","count":157,"preSum":3297},{"ndv":157,"upper":"19-431-157-8012","lower":"18-972-892-7140","count":157,"preSum":3454},{"ndv":157,"upper":"19-800-708-9981","lower":"19-433-273-5823","count":157,"preSum":3611},{"ndv":157,"upper":"20-253-657-4064","lower":"19-802-269-5991","count":157,"preSum":3768},{"ndv":157,"upper":"20-609-769-3678","lower":"20-257-809-4394","count":157,"preSum":3925},{"ndv":157,"upper":"21-103-894-3616","lower":"20-610-778-2570","count":157,"preSum":4082},{"ndv":157,"upper":"21-460-490-2825","lower":"21-104-447-5472","count":157,"preSum":4239},{"ndv":157,"upper":"21-800-133-4274","lower":"21-469-795-9730","count":157,"preSum":4396},{"ndv":157,"upper":"22-214-866-6063","lower":"21-801-452-8930","count":157,"preSum":4553},{"ndv":157,"upper":"22-554-387-9252","lower":"22-216-528-8207","count":157,"preSum":4710},{"ndv":157,"upper":"22-878-687-5719","lower":"22-556-154-8930","count":157,"preSum":4867},{"ndv":157,"upper":"23-355-279-2501","lower":"22-878-976-9900","count":157,"preSum":5024},{"ndv":157,"upper":"23-659-138-2396","lower":"23-357-699-9508","count":157,"preSum":5181},{"ndv":157,"upper":"23-976-683-8301","lower":"23-660-101-3011","count":157,"preSum":5338},{"ndv":157,"upper":"24-401-624-1506","lower":"23-981-708-2478","count":157,"preSum":5495},{"ndv":157,"upper":"24-750-589-5305","lower":"24-406-877-7081","count":157,"preSum":5652},{"ndv":157,"upper":"25-188-494-1732","lower":"24-758-942-2959","count":157,"preSum":5809},{"ndv":157,"upper":"25-489-294-4987","lower":"25-189-567-3252","count":157,"preSum":5966},{"ndv":157,"upper":"25-839-284-6149","lower":"25-491-502-7882","count":157,"preSum":6123},{"ndv":157,"upper":"26-280-992-3218","lower":"25-839-419-1166","count":157,"preSum":6280},{"ndv":157,"upper":"26-624-779-3607","lower":"26-283-407-1737","count":157,"preSum":6437},{"ndv":157,"upper":"26-991-497-9733","lower":"26-629-643-3789","count":157,"preSum":6594},{"ndv":157,"upper":"27-438-889-9710","lower":"26-991-559-8977","count":157,"preSum":6751},{"ndv":157,"upper":"27-765-800-2564","lower":"27-440-219-1681","count":157,"preSum":6908},{"ndv":157,"upper":"28-183-690-1563","lower":"27-769-657-9076","count":157,"preSum":7065},{"ndv":157,"upper":"28-497-939-7265","lower":"28-185-292-7116","count":157,"preSum":7222},{"ndv":157,"upper":"28-886-586-8746","lower":"28-500-655-3212","count":157,"preSum":7379},{"ndv":157,"upper":"29-312-136-8453","lower":"28-889-382-5690","count":157,"preSum":7536},{"ndv":157,"upper":"29-641-133-4901","lower":"29-314-415-9486","count":157,"preSum":7693},{"ndv":157,"upper":"29-968-623-5375","lower":"29-643-573-1025","count":157,"preSum":7850},{"ndv":157,"upper":"30-403-971-1588","lower":"29-968-870-7672","count":157,"preSum":8007},{"ndv":157,"upper":"30-789-112-5316","lower":"30-404-922-3763","count":157,"preSum":8164},{"ndv":157,"upper":"31-278-762-5756","lower":"30-789-808-2535","count":157,"preSum":8321},{"ndv":157,"upper":"31-628-651-3669","lower":"31-280-465-4391","count":157,"preSum":8478},{"ndv":157,"upper":"31-999-993-6387","lower":"31-637-726-3208","count":157,"preSum":8635},{"ndv":157,"upper":"32-451-296-8794","lower":"32-102-492-1341","count":157,"preSum":8792},{"ndv":157,"upper":"32-749-361-1068","lower":"32-453-772-8994","count":157,"preSum":8949},{"ndv":157,"upper":"33-233-288-5177","lower":"32-752-601-5453","count":157,"preSum":9106},{"ndv":157,"upper":"33-593-345-4761","lower":"33-235-461-5094","count":157,"preSum":9263},{"ndv":157,"upper":"33-962-343-7028","lower":"33-595-152-6576","count":157,"preSum":9420},{"ndv":157,"upper":"34-421-409-4822","lower":"33-963-322-3075","count":157,"preSum":9577},{"ndv":157,"upper":"34-792-283-3705","lower":"34-423-154-3871","count":157,"preSum":9734},{"ndv":109,"upper":"34-996-904-3634","lower":"34-792-908-6795","count":109,"preSum":9891}],"maxBucketSize":64,"type":"String","sampleRate":0.100017} - customer.c_phone.null_count: - 0 - customer.c_phone.sample_rate: - 0.6666667 - lineitem.l_comment.TOPN: - {"countArr":[3,3,3,3,3,3],"valueArr":[" carefully"," pinto bea","into beans","nstruction","requests. ","slyly regular"],"type":"String"} - lineitem.l_comment.cardinality: - 2523015 - lineitem.l_comment.histogram: - {"buckets":[{"ndv":151,"upper":" are blithely among th","lower":" about the","count":156,"preSum":0},{"ndv":155,"upper":" carefully bold platelets. fl","lower":" are blithely. regular","count":156,"preSum":156},{"ndv":154,"upper":" express dependencies are qui","lower":" carefully carefull","count":156,"preSum":312},{"ndv":154,"upper":" furiously slyly ironic deposi","lower":" express excuses wak","count":156,"preSum":468},{"ndv":154,"upper":" packages among the carefully r","lower":" furiously special grouches wake ","count":156,"preSum":624},{"ndv":156,"upper":" regular deposits cajole fur","lower":" packages are blithely ironic reques","count":156,"preSum":780},{"ndv":155,"upper":" slyly fluffily thin realms. furiously iro","lower":" regular deposits wake slyly slyly unusual","count":156,"preSum":936},{"ndv":154,"upper":" theodolites cajole furiously requests. f","lower":" slyly fluffy requests. fin","count":156,"preSum":1092},{"ndv":156,"upper":". blithely regular","lower":" theodolites doze blithely","count":156,"preSum":1248},{"ndv":154,"upper":"above the blithely final excuses wake s","lower":". blithely regular accounts ag","count":156,"preSum":1404},{"ndv":154,"upper":"against the packages. slyly final theodo","lower":"above the blithely ironic sheaves. ironic, ","count":156,"preSum":1560},{"ndv":155,"upper":"al instructions-- bol","lower":"against the request","count":156,"preSum":1716},{"ndv":156,"upper":"ar platelets. furiou","lower":"al instructions. carefull","count":156,"preSum":1872},{"ndv":152,"upper":"atelets. slyly express packages along the ","lower":"ar platelets. furiously ","count":156,"preSum":2028},{"ndv":156,"upper":"c accounts cajole carefully","lower":"atelets. spe","count":156,"preSum":2184},{"ndv":155,"upper":"ccounts cajole. carefully","lower":"c accounts wake slyly ironic","count":156,"preSum":2340},{"ndv":156,"upper":"counts. fluffily ironic acc","lower":"ccounts detect about the fi","count":156,"preSum":2496},{"ndv":156,"upper":"deposits use furiously against the ent","lower":"counts. furi","count":156,"preSum":2652},{"ndv":156,"upper":"e carefully express packages: sl","lower":"deposits use slyly fluffily express","count":156,"preSum":2808},{"ndv":155,"upper":"e the requests are blithely abo","lower":"e carefully final asymptotes ","count":156,"preSum":2964},{"ndv":156,"upper":"efully regular packages h","lower":"e the slyl","count":156,"preSum":3120},{"ndv":154,"upper":"en packages amo","lower":"efully regular packages? r","count":156,"preSum":3276},{"ndv":156,"upper":"eposits. carefully regular","lower":"en packages. quickly furious hockey pla","count":156,"preSum":3432},{"ndv":156,"upper":"es. asymptotes haggle carefully against the","lower":"eposits. carefully unusual deposit","count":156,"preSum":3588},{"ndv":154,"upper":"excuses. slowly pending","lower":"es. blithely dogged exc","count":156,"preSum":3744},{"ndv":155,"upper":"foxes sleep fluffily around ","lower":"excuses. slyly bold pl","count":156,"preSum":3900},{"ndv":156,"upper":"g the even, final","lower":"foxes wake furiously. quickly pe","count":156,"preSum":4056},{"ndv":155,"upper":"gular foxes wake blithely: dolphins imp","lower":"g the express, ironic f","count":156,"preSum":4212},{"ndv":152,"upper":"he regular, ironic frays.","lower":"gular foxes. sly","count":156,"preSum":4368},{"ndv":155,"upper":"icing courts; regular ideas above the u","lower":"he regular, re","count":156,"preSum":4524},{"ndv":156,"upper":"inal, bold packages affix","lower":"icing instructions. unusual platelets ","count":156,"preSum":4680},{"ndv":156,"upper":"iously reque","lower":"inal, ironic ideas. regular ","count":156,"preSum":4836},{"ndv":155,"upper":"its. quickly special packages solve furious","lower":"iously requests. unusual ","count":156,"preSum":4992},{"ndv":156,"upper":"l packages integrate carefully ironic accou","lower":"its. regular, unusual deposi","count":156,"preSum":5148},{"ndv":156,"upper":"le furiously about the blit","lower":"l packages use. blithely ","count":156,"preSum":5304},{"ndv":156,"upper":"lly regular accounts a","lower":"le furiously according to the furiously ir","count":156,"preSum":5460},{"ndv":155,"upper":"ly express instructions among th","lower":"lly regular accounts. carefully final pl","count":156,"preSum":5616},{"ndv":155,"upper":"ly unusual requests","lower":"ly express instructions kindle closely fur","count":156,"preSum":5772},{"ndv":156,"upper":"nag furiously. sl","lower":"ly unusual requests nag above the fur","count":156,"preSum":5928},{"ndv":156,"upper":"ng to the final, final deposits","lower":"nag quickly slyly reg","count":156,"preSum":6084},{"ndv":154,"upper":"nstructions. blithely express deposits ","lower":"ng to the fluffily","count":156,"preSum":6240},{"ndv":156,"upper":"odolites. a","lower":"nstructions. blithely unus","count":156,"preSum":6396},{"ndv":156,"upper":"ons sleep fluffily a","lower":"odolites. fluffi","count":156,"preSum":6552},{"ndv":156,"upper":"ously express hockey pl","lower":"ons. accounts along the caref","count":156,"preSum":6708},{"ndv":156,"upper":"packages. unusual foxes must sleep","lower":"ously express ideas are among t","count":156,"preSum":6864},{"ndv":155,"upper":"posits. special","lower":"packages. unusual, even packages lose ","count":156,"preSum":7020},{"ndv":155,"upper":"r requests. slyly final packages ","lower":"posits. stealthily ex","count":156,"preSum":7176},{"ndv":154,"upper":"regular requests sleep slyly. f","lower":"r requests: furiously ","count":156,"preSum":7332},{"ndv":155,"upper":"ronic foxes. even dolphins boos","lower":"regular theodolites","count":156,"preSum":7488},{"ndv":154,"upper":"s frets detect blithely fluffily express as","lower":"ronic hock","count":156,"preSum":7644},{"ndv":156,"upper":"s. blithely special pinto beans hinde","lower":"s haggle about the furiously express ","count":156,"preSum":7800},{"ndv":155,"upper":"silent packages be","lower":"s. bold attainments eat fluffily. pac","count":156,"preSum":7956},{"ndv":156,"upper":"slyly furious","lower":"silent packages cajole. furiously bold t","count":156,"preSum":8112},{"ndv":155,"upper":"sts. blithely bold ","lower":"slyly furiously regular dependencies. re","count":156,"preSum":8268},{"ndv":156,"upper":"tes. final dependencies among t","lower":"sts. blithely pending warhorses are slyl","count":156,"preSum":8424},{"ndv":154,"upper":"thely quiet dependencies boost aga","lower":"tes. final theodolites x-ra","count":156,"preSum":8580},{"ndv":155,"upper":"ts above the grouch","lower":"thely regular packag","count":156,"preSum":8736},{"ndv":156,"upper":"ublate furiously pending, unusual dolph","lower":"ts above the sly","count":156,"preSum":8892},{"ndv":154,"upper":"ular tithes among ","lower":"ublate ironic packages! slyly even i","count":156,"preSum":9048},{"ndv":154,"upper":"uriously final theodolites nod slyly about ","lower":"ular warthogs","count":156,"preSum":9204},{"ndv":155,"upper":"ven excuses breac","lower":"uriously fluffily regular","count":156,"preSum":9360},{"ndv":156,"upper":"y among the slyly final theodolites. caref","lower":"ven foxes beyond the dependencies boost a","count":156,"preSum":9516},{"ndv":154,"upper":"y regular excuse","lower":"y around the furiously final depo","count":156,"preSum":9672},{"ndv":152,"upper":"zzle always carefully","lower":"y regular foxes sleep furiously carefully ","count":154,"preSum":9828}],"maxBucketSize":64,"type":"String","sampleRate":0.10008507} - lineitem.l_comment.null_count: - 0 - lineitem.l_comment.sample_rate: - 0.016663292 - lineitem.l_commitdate.TOPN: - {"countArr":[],"valueArr":[],"type":"Date"} - lineitem.l_commitdate.cardinality: - 2476 - lineitem.l_commitdate.histogram: - {"buckets":[{"ndv":55,"upper":"1992-04-05","lower":"1992-02-02","count":157,"preSum":0},{"ndv":33,"upper":"1992-05-08","lower":"1992-04-06","count":157,"preSum":157},{"ndv":36,"upper":"1992-06-14","lower":"1992-05-09","count":158,"preSum":314},{"ndv":37,"upper":"1992-07-22","lower":"1992-06-16","count":158,"preSum":472},{"ndv":37,"upper":"1992-08-28","lower":"1992-07-23","count":160,"preSum":630},{"ndv":40,"upper":"1992-10-08","lower":"1992-08-29","count":157,"preSum":790},{"ndv":41,"upper":"1992-11-18","lower":"1992-10-09","count":159,"preSum":947},{"ndv":43,"upper":"1993-01-01","lower":"1992-11-19","count":157,"preSum":1106},{"ndv":36,"upper":"1993-02-08","lower":"1993-01-02","count":158,"preSum":1263},{"ndv":37,"upper":"1993-03-17","lower":"1993-02-09","count":157,"preSum":1421},{"ndv":40,"upper":"1993-04-28","lower":"1993-03-18","count":157,"preSum":1578},{"ndv":35,"upper":"1993-06-03","lower":"1993-04-29","count":157,"preSum":1735},{"ndv":38,"upper":"1993-07-12","lower":"1993-06-04","count":159,"preSum":1892},{"ndv":38,"upper":"1993-08-19","lower":"1993-07-13","count":158,"preSum":2051},{"ndv":40,"upper":"1993-09-28","lower":"1993-08-20","count":160,"preSum":2209},{"ndv":39,"upper":"1993-11-08","lower":"1993-09-29","count":161,"preSum":2369},{"ndv":37,"upper":"1993-12-15","lower":"1993-11-09","count":159,"preSum":2530},{"ndv":33,"upper":"1994-01-17","lower":"1993-12-16","count":160,"preSum":2689},{"ndv":42,"upper":"1994-02-28","lower":"1994-01-18","count":161,"preSum":2849},{"ndv":36,"upper":"1994-04-06","lower":"1994-03-01","count":158,"preSum":3010},{"ndv":37,"upper":"1994-05-13","lower":"1994-04-07","count":160,"preSum":3168},{"ndv":43,"upper":"1994-06-25","lower":"1994-05-14","count":157,"preSum":3328},{"ndv":37,"upper":"1994-08-01","lower":"1994-06-26","count":160,"preSum":3485},{"ndv":42,"upper":"1994-09-12","lower":"1994-08-02","count":157,"preSum":3645},{"ndv":38,"upper":"1994-10-20","lower":"1994-09-13","count":157,"preSum":3802},{"ndv":38,"upper":"1994-11-27","lower":"1994-10-21","count":158,"preSum":3959},{"ndv":41,"upper":"1995-01-07","lower":"1994-11-28","count":160,"preSum":4117},{"ndv":39,"upper":"1995-02-15","lower":"1995-01-08","count":160,"preSum":4277},{"ndv":34,"upper":"1995-03-21","lower":"1995-02-16","count":157,"preSum":4437},{"ndv":37,"upper":"1995-04-30","lower":"1995-03-22","count":159,"preSum":4594},{"ndv":33,"upper":"1995-06-03","lower":"1995-05-01","count":157,"preSum":4753},{"ndv":36,"upper":"1995-07-09","lower":"1995-06-04","count":163,"preSum":4910},{"ndv":40,"upper":"1995-08-20","lower":"1995-07-10","count":159,"preSum":5073},{"ndv":34,"upper":"1995-09-23","lower":"1995-08-21","count":158,"preSum":5232},{"ndv":34,"upper":"1995-10-29","lower":"1995-09-24","count":158,"preSum":5390},{"ndv":34,"upper":"1995-12-02","lower":"1995-10-30","count":158,"preSum":5548},{"ndv":38,"upper":"1996-01-09","lower":"1995-12-03","count":158,"preSum":5706},{"ndv":40,"upper":"1996-02-19","lower":"1996-01-10","count":165,"preSum":5864},{"ndv":38,"upper":"1996-03-31","lower":"1996-02-20","count":157,"preSum":6029},{"ndv":39,"upper":"1996-05-09","lower":"1996-04-01","count":157,"preSum":6186},{"ndv":38,"upper":"1996-06-16","lower":"1996-05-10","count":162,"preSum":6343},{"ndv":36,"upper":"1996-07-22","lower":"1996-06-17","count":158,"preSum":6505},{"ndv":39,"upper":"1996-08-30","lower":"1996-07-23","count":158,"preSum":6663},{"ndv":36,"upper":"1996-10-06","lower":"1996-08-31","count":159,"preSum":6821},{"ndv":30,"upper":"1996-11-05","lower":"1996-10-07","count":159,"preSum":6980},{"ndv":39,"upper":"1996-12-14","lower":"1996-11-06","count":160,"preSum":7139},{"ndv":37,"upper":"1997-01-22","lower":"1996-12-15","count":158,"preSum":7299},{"ndv":32,"upper":"1997-02-24","lower":"1997-01-23","count":157,"preSum":7457},{"ndv":36,"upper":"1997-04-01","lower":"1997-02-25","count":160,"preSum":7614},{"ndv":39,"upper":"1997-05-11","lower":"1997-04-02","count":159,"preSum":7774},{"ndv":42,"upper":"1997-06-23","lower":"1997-05-12","count":159,"preSum":7933},{"ndv":37,"upper":"1997-07-31","lower":"1997-06-24","count":158,"preSum":8092},{"ndv":39,"upper":"1997-09-09","lower":"1997-08-01","count":159,"preSum":8250},{"ndv":39,"upper":"1997-10-19","lower":"1997-09-10","count":163,"preSum":8409},{"ndv":40,"upper":"1997-11-29","lower":"1997-10-20","count":157,"preSum":8572},{"ndv":37,"upper":"1998-01-06","lower":"1997-11-30","count":157,"preSum":8729},{"ndv":34,"upper":"1998-02-09","lower":"1998-01-07","count":159,"preSum":8886},{"ndv":40,"upper":"1998-03-21","lower":"1998-02-10","count":159,"preSum":9045},{"ndv":35,"upper":"1998-04-26","lower":"1998-03-22","count":160,"preSum":9204},{"ndv":42,"upper":"1998-06-08","lower":"1998-04-27","count":157,"preSum":9364},{"ndv":41,"upper":"1998-07-19","lower":"1998-06-09","count":160,"preSum":9521},{"ndv":32,"upper":"1998-08-24","lower":"1998-07-20","count":159,"preSum":9681},{"ndv":52,"upper":"1998-10-21","lower":"1998-08-25","count":157,"preSum":9840},{"ndv":3,"upper":"1998-10-28","lower":"1998-10-23","count":3,"preSum":9997}],"maxBucketSize":64,"type":"Date","sampleRate":0.10008507} - lineitem.l_commitdate.null_count: - 0 - lineitem.l_commitdate.sample_rate: - 0.016663292 - lineitem.l_discount.TOPN: - {"countArr":[915,934,904,912,951,855,908,898,892,909,922],"valueArr":[0,0.01,0.02,0.03,0.04,0.05,0.06,0.07,0.08,0.09,0.1],"type":"Double"} - lineitem.l_discount.cardinality: - 11 - lineitem.l_discount.histogram: - {"buckets":[],"maxBucketSize":64,"type":"Double","sampleRate":0.10008507} - lineitem.l_discount.null_count: - 0 - lineitem.l_discount.sample_rate: - 0.016663292 - lineitem.l_extendedprice.TOPN: - {"countArr":[],"valueArr":[],"type":"Double"} - lineitem.l_extendedprice.cardinality: - 1920909 - lineitem.l_extendedprice.histogram: - {"buckets":[{"ndv":155,"upper":1809.87,"lower":931.01,"count":157,"preSum":0},{"ndv":156,"upper":3285.28,"lower":1817.85,"count":157,"preSum":157},{"ndv":155,"upper":4363.11,"lower":3299.16,"count":157,"preSum":314},{"ndv":156,"upper":5453.52,"lower":4369.35,"count":157,"preSum":471},{"ndv":155,"upper":6506.88,"lower":5462.22,"count":157,"preSum":628},{"ndv":155,"upper":7497,"lower":6516.96,"count":157,"preSum":785},{"ndv":156,"upper":8608.6,"lower":7503.6,"count":157,"preSum":942},{"ndv":157,"upper":9783.84,"lower":8613.3,"count":157,"preSum":1099},{"ndv":157,"upper":11044.98,"lower":9789.9,"count":157,"preSum":1256},{"ndv":156,"upper":12072.36,"lower":11062.17,"count":157,"preSum":1413},{"ndv":156,"upper":13273.08,"lower":12076.32,"count":157,"preSum":1570},{"ndv":156,"upper":14386.95,"lower":13273.1,"count":157,"preSum":1727},{"ndv":154,"upper":15566.76,"lower":14387.4,"count":157,"preSum":1884},{"ndv":156,"upper":16670.17,"lower":15568.52,"count":157,"preSum":2041},{"ndv":156,"upper":17913.15,"lower":16671.38,"count":157,"preSum":2198},{"ndv":157,"upper":19160,"lower":17914.82,"count":157,"preSum":2355},{"ndv":156,"upper":20195.84,"lower":19170.03,"count":157,"preSum":2512},{"ndv":155,"upper":21261.06,"lower":20208.5,"count":157,"preSum":2669},{"ndv":157,"upper":22428.61,"lower":21270.24,"count":157,"preSum":2826},{"ndv":154,"upper":23584.7,"lower":22439.04,"count":157,"preSum":2983},{"ndv":156,"upper":24843.6,"lower":23585.1,"count":157,"preSum":3140},{"ndv":155,"upper":26025.8,"lower":24848.88,"count":157,"preSum":3297},{"ndv":157,"upper":27175.35,"lower":26026.88,"count":157,"preSum":3454},{"ndv":155,"upper":28267.36,"lower":27176.03,"count":157,"preSum":3611},{"ndv":156,"upper":29440.32,"lower":28270.8,"count":157,"preSum":3768},{"ndv":156,"upper":30567.51,"lower":29451,"count":157,"preSum":3925},{"ndv":156,"upper":31654.1,"lower":30568.6,"count":157,"preSum":4082},{"ndv":157,"upper":32773.11,"lower":31657.29,"count":157,"preSum":4239},{"ndv":155,"upper":33836.13,"lower":32774.2,"count":157,"preSum":4396},{"ndv":157,"upper":34873,"lower":33849.38,"count":157,"preSum":4553},{"ndv":155,"upper":36038.08,"lower":34881.48,"count":157,"preSum":4710},{"ndv":157,"upper":37214.84,"lower":36059,"count":157,"preSum":4867},{"ndv":154,"upper":38470.08,"lower":37224.59,"count":157,"preSum":5024},{"ndv":157,"upper":39667.32,"lower":38480.68,"count":158,"preSum":5181},{"ndv":155,"upper":40835.37,"lower":39668.44,"count":157,"preSum":5339},{"ndv":157,"upper":41944.32,"lower":40836.82,"count":157,"preSum":5496},{"ndv":157,"upper":43052.16,"lower":41954.16,"count":157,"preSum":5653},{"ndv":156,"upper":44202,"lower":43054.85,"count":157,"preSum":5810},{"ndv":153,"upper":45267.28,"lower":44204.85,"count":157,"preSum":5967},{"ndv":156,"upper":46479.03,"lower":45293.18,"count":157,"preSum":6124},{"ndv":155,"upper":47619.84,"lower":46482.54,"count":157,"preSum":6281},{"ndv":157,"upper":48879.87,"lower":47628.6,"count":157,"preSum":6438},{"ndv":154,"upper":50102.5,"lower":48886.8,"count":157,"preSum":6595},{"ndv":156,"upper":51245.48,"lower":50111.69,"count":157,"preSum":6752},{"ndv":153,"upper":52479.9,"lower":51249.75,"count":157,"preSum":6909},{"ndv":157,"upper":53631.23,"lower":52491,"count":157,"preSum":7066},{"ndv":157,"upper":54841.29,"lower":53637.72,"count":157,"preSum":7223},{"ndv":157,"upper":56139.07,"lower":54855.5,"count":157,"preSum":7380},{"ndv":156,"upper":57347.16,"lower":56144.16,"count":157,"preSum":7537},{"ndv":157,"upper":58793.04,"lower":57365.28,"count":157,"preSum":7694},{"ndv":157,"upper":60371.42,"lower":58797.6,"count":157,"preSum":7851},{"ndv":156,"upper":61981.2,"lower":60374.82,"count":157,"preSum":8008},{"ndv":157,"upper":63637.32,"lower":61984.8,"count":157,"preSum":8165},{"ndv":155,"upper":65053.92,"lower":63642.92,"count":157,"preSum":8322},{"ndv":157,"upper":66971,"lower":65056.95,"count":157,"preSum":8479},{"ndv":156,"upper":68850.71,"lower":66982.08,"count":157,"preSum":8636},{"ndv":156,"upper":70714.79,"lower":68867.4,"count":157,"preSum":8793},{"ndv":156,"upper":72997.67,"lower":70717.8,"count":157,"preSum":8950},{"ndv":157,"upper":75388.95,"lower":73031.82,"count":157,"preSum":9107},{"ndv":155,"upper":78153.66,"lower":75428.48,"count":157,"preSum":9264},{"ndv":157,"upper":81845.1,"lower":78173.92,"count":157,"preSum":9421},{"ndv":157,"upper":86122.8,"lower":81856.74,"count":157,"preSum":9578},{"ndv":156,"upper":90858.24,"lower":86128.14,"count":157,"preSum":9735},{"ndv":108,"upper":101948.5,"lower":90860.16,"count":108,"preSum":9892}],"maxBucketSize":64,"type":"Double","sampleRate":0.10008507} - lineitem.l_extendedprice.null_count: - 0 - lineitem.l_extendedprice.sample_rate: - 0.016663292 - lineitem.l_linenumber.TOPN: - {"countArr":[2446,2159,1728,1494,1062,739,372],"valueArr":[1,2,3,4,5,6,7],"type":"Int"} - lineitem.l_linenumber.cardinality: - 7 - lineitem.l_linenumber.histogram: - {"buckets":[],"maxBucketSize":64,"type":"Int","sampleRate":0.10008507} - lineitem.l_linenumber.null_count: - 0 - lineitem.l_linenumber.sample_rate: - 0.016663292 - lineitem.l_linestatus.TOPN: - {"countArr":[4968,5032],"valueArr":["F","O"],"type":"String"} - lineitem.l_linestatus.cardinality: - 2 - lineitem.l_linestatus.histogram: - {"buckets":[],"maxBucketSize":64,"type":"String","sampleRate":0.10008507} - lineitem.l_linestatus.null_count: - 0 - lineitem.l_linestatus.sample_rate: - 0.016663292 - lineitem.l_orderkey.TOPN: - {"countArr":[],"valueArr":[],"type":"Int"} - lineitem.l_orderkey.cardinality: - 2516909 - lineitem.l_orderkey.histogram: - {"buckets":[{"ndv":157,"upper":93190,"lower":963,"count":157,"preSum":0},{"ndv":156,"upper":184224,"lower":93796,"count":157,"preSum":157},{"ndv":156,"upper":274596,"lower":184644,"count":157,"preSum":314},{"ndv":156,"upper":378757,"lower":276451,"count":157,"preSum":471},{"ndv":157,"upper":479428,"lower":380452,"count":157,"preSum":628},{"ndv":155,"upper":574660,"lower":480199,"count":157,"preSum":785},{"ndv":157,"upper":659239,"lower":574759,"count":157,"preSum":942},{"ndv":157,"upper":762116,"lower":659462,"count":157,"preSum":1099},{"ndv":156,"upper":846855,"lower":762341,"count":157,"preSum":1256},{"ndv":157,"upper":933093,"lower":848065,"count":157,"preSum":1413},{"ndv":155,"upper":1027713,"lower":933570,"count":157,"preSum":1570},{"ndv":157,"upper":1115361,"lower":1028134,"count":157,"preSum":1727},{"ndv":156,"upper":1209728,"lower":1116256,"count":157,"preSum":1884},{"ndv":155,"upper":1295910,"lower":1210916,"count":157,"preSum":2041},{"ndv":157,"upper":1393895,"lower":1296386,"count":157,"preSum":2198},{"ndv":157,"upper":1477317,"lower":1394627,"count":157,"preSum":2355},{"ndv":157,"upper":1574055,"lower":1477701,"count":157,"preSum":2512},{"ndv":156,"upper":1670628,"lower":1574180,"count":157,"preSum":2669},{"ndv":157,"upper":1757312,"lower":1671201,"count":157,"preSum":2826},{"ndv":157,"upper":1850018,"lower":1757381,"count":157,"preSum":2983},{"ndv":157,"upper":1941958,"lower":1850048,"count":157,"preSum":3140},{"ndv":156,"upper":2042499,"lower":1942339,"count":157,"preSum":3297},{"ndv":157,"upper":2139811,"lower":2042566,"count":157,"preSum":3454},{"ndv":157,"upper":2239142,"lower":2140418,"count":157,"preSum":3611},{"ndv":157,"upper":2339687,"lower":2239430,"count":157,"preSum":3768},{"ndv":156,"upper":2434496,"lower":2340262,"count":157,"preSum":3925},{"ndv":156,"upper":2528326,"lower":2435462,"count":157,"preSum":4082},{"ndv":157,"upper":2621380,"lower":2529379,"count":157,"preSum":4239},{"ndv":157,"upper":2718723,"lower":2621606,"count":157,"preSum":4396},{"ndv":156,"upper":2798950,"lower":2718821,"count":157,"preSum":4553},{"ndv":156,"upper":2889889,"lower":2799495,"count":157,"preSum":4710},{"ndv":157,"upper":2987109,"lower":2890051,"count":157,"preSum":4867},{"ndv":155,"upper":3086594,"lower":2987457,"count":157,"preSum":5024},{"ndv":157,"upper":3190693,"lower":3086915,"count":157,"preSum":5181},{"ndv":156,"upper":3284039,"lower":3191745,"count":157,"preSum":5338},{"ndv":156,"upper":3386727,"lower":3286533,"count":157,"preSum":5495},{"ndv":156,"upper":3479011,"lower":3387783,"count":157,"preSum":5652},{"ndv":157,"upper":3587776,"lower":3479427,"count":157,"preSum":5809},{"ndv":157,"upper":3676260,"lower":3587874,"count":157,"preSum":5966},{"ndv":154,"upper":3769669,"lower":3676550,"count":157,"preSum":6123},{"ndv":156,"upper":3856706,"lower":3769859,"count":157,"preSum":6280},{"ndv":157,"upper":3947173,"lower":3857510,"count":157,"preSum":6437},{"ndv":157,"upper":4033504,"lower":3947333,"count":157,"preSum":6594},{"ndv":157,"upper":4121479,"lower":4033669,"count":157,"preSum":6751},{"ndv":157,"upper":4214688,"lower":4122148,"count":157,"preSum":6908},{"ndv":155,"upper":4320515,"lower":4215077,"count":157,"preSum":7065},{"ndv":157,"upper":4411329,"lower":4321219,"count":157,"preSum":7222},{"ndv":157,"upper":4505381,"lower":4411712,"count":157,"preSum":7379},{"ndv":157,"upper":4597986,"lower":4505573,"count":157,"preSum":7536},{"ndv":155,"upper":4692320,"lower":4598592,"count":157,"preSum":7693},{"ndv":157,"upper":4791910,"lower":4693122,"count":157,"preSum":7850},{"ndv":156,"upper":4883044,"lower":4792741,"count":157,"preSum":8007},{"ndv":157,"upper":4977472,"lower":4883461,"count":157,"preSum":8164},{"ndv":157,"upper":5062183,"lower":4978247,"count":157,"preSum":8321},{"ndv":156,"upper":5159010,"lower":5062208,"count":157,"preSum":8478},{"ndv":155,"upper":5246978,"lower":5159265,"count":157,"preSum":8635},{"ndv":156,"upper":5343109,"lower":5247239,"count":157,"preSum":8792},{"ndv":156,"upper":5438597,"lower":5343781,"count":157,"preSum":8949},{"ndv":154,"upper":5538659,"lower":5440548,"count":157,"preSum":9106},{"ndv":157,"upper":5627875,"lower":5538758,"count":157,"preSum":9263},{"ndv":157,"upper":5741380,"lower":5628608,"count":157,"preSum":9420},{"ndv":157,"upper":5830658,"lower":5741537,"count":157,"preSum":9577},{"ndv":157,"upper":5929318,"lower":5831297,"count":157,"preSum":9734},{"ndv":108,"upper":5999010,"lower":5929953,"count":109,"preSum":9891}],"maxBucketSize":64,"type":"Int","sampleRate":0.10008507} - lineitem.l_orderkey.null_count: - 0 - lineitem.l_orderkey.sample_rate: - 0.016663292 - lineitem.l_partkey.TOPN: - {"countArr":[3,3,3,3,3,3],"valueArr":[54697,68406,70324,163900,178424,181064],"type":"Int"} - lineitem.l_partkey.cardinality: - 812960 - lineitem.l_partkey.histogram: - {"buckets":[{"ndv":155,"upper":3166,"lower":21,"count":156,"preSum":0},{"ndv":152,"upper":6275,"lower":3189,"count":156,"preSum":156},{"ndv":155,"upper":9476,"lower":6282,"count":156,"preSum":312},{"ndv":152,"upper":12527,"lower":9495,"count":156,"preSum":468},{"ndv":154,"upper":15359,"lower":12544,"count":156,"preSum":624},{"ndv":154,"upper":18596,"lower":15366,"count":156,"preSum":780},{"ndv":155,"upper":21868,"lower":18608,"count":156,"preSum":936},{"ndv":152,"upper":24647,"lower":21892,"count":156,"preSum":1092},{"ndv":153,"upper":27989,"lower":24657,"count":156,"preSum":1248},{"ndv":153,"upper":31125,"lower":27995,"count":156,"preSum":1404},{"ndv":152,"upper":34126,"lower":31126,"count":156,"preSum":1560},{"ndv":153,"upper":37284,"lower":34160,"count":156,"preSum":1716},{"ndv":155,"upper":40731,"lower":37312,"count":156,"preSum":1872},{"ndv":150,"upper":43955,"lower":40777,"count":156,"preSum":2028},{"ndv":152,"upper":46834,"lower":43959,"count":156,"preSum":2184},{"ndv":151,"upper":49649,"lower":46872,"count":156,"preSum":2340},{"ndv":156,"upper":52995,"lower":49661,"count":156,"preSum":2496},{"ndv":151,"upper":56470,"lower":53005,"count":156,"preSum":2652},{"ndv":152,"upper":59491,"lower":56472,"count":156,"preSum":2808},{"ndv":148,"upper":62719,"lower":59505,"count":156,"preSum":2964},{"ndv":153,"upper":66225,"lower":62722,"count":156,"preSum":3120},{"ndv":152,"upper":69420,"lower":66243,"count":156,"preSum":3276},{"ndv":154,"upper":72476,"lower":69462,"count":156,"preSum":3432},{"ndv":150,"upper":75751,"lower":72489,"count":156,"preSum":3588},{"ndv":153,"upper":78791,"lower":75764,"count":156,"preSum":3744},{"ndv":154,"upper":82081,"lower":78820,"count":156,"preSum":3900},{"ndv":152,"upper":85504,"lower":82110,"count":156,"preSum":4056},{"ndv":150,"upper":88908,"lower":85524,"count":156,"preSum":4212},{"ndv":153,"upper":92170,"lower":88950,"count":156,"preSum":4368},{"ndv":154,"upper":95181,"lower":92171,"count":156,"preSum":4524},{"ndv":151,"upper":98258,"lower":95215,"count":156,"preSum":4680},{"ndv":152,"upper":101176,"lower":98266,"count":156,"preSum":4836},{"ndv":148,"upper":104138,"lower":101208,"count":156,"preSum":4992},{"ndv":152,"upper":107575,"lower":104160,"count":156,"preSum":5148},{"ndv":153,"upper":110548,"lower":107603,"count":156,"preSum":5304},{"ndv":155,"upper":113972,"lower":110572,"count":156,"preSum":5460},{"ndv":152,"upper":117042,"lower":113973,"count":156,"preSum":5616},{"ndv":152,"upper":120431,"lower":117048,"count":156,"preSum":5772},{"ndv":153,"upper":123645,"lower":120444,"count":156,"preSum":5928},{"ndv":152,"upper":126816,"lower":123679,"count":156,"preSum":6084},{"ndv":153,"upper":130224,"lower":126827,"count":156,"preSum":6240},{"ndv":151,"upper":133178,"lower":130230,"count":156,"preSum":6396},{"ndv":154,"upper":136064,"lower":133197,"count":156,"preSum":6552},{"ndv":154,"upper":138858,"lower":136101,"count":156,"preSum":6708},{"ndv":153,"upper":142131,"lower":138879,"count":156,"preSum":6864},{"ndv":148,"upper":145261,"lower":142142,"count":156,"preSum":7020},{"ndv":152,"upper":148578,"lower":145290,"count":157,"preSum":7176},{"ndv":152,"upper":151184,"lower":148596,"count":156,"preSum":7333},{"ndv":154,"upper":154484,"lower":151223,"count":156,"preSum":7489},{"ndv":152,"upper":157475,"lower":154496,"count":156,"preSum":7645},{"ndv":156,"upper":161093,"lower":157481,"count":156,"preSum":7801},{"ndv":153,"upper":164271,"lower":161096,"count":156,"preSum":7957},{"ndv":152,"upper":167309,"lower":164274,"count":156,"preSum":8113},{"ndv":156,"upper":170251,"lower":167318,"count":156,"preSum":8269},{"ndv":154,"upper":173592,"lower":170262,"count":156,"preSum":8425},{"ndv":151,"upper":176508,"lower":173625,"count":156,"preSum":8581},{"ndv":152,"upper":179259,"lower":176548,"count":156,"preSum":8737},{"ndv":148,"upper":182014,"lower":179275,"count":156,"preSum":8893},{"ndv":154,"upper":185209,"lower":182047,"count":156,"preSum":9049},{"ndv":152,"upper":187882,"lower":185216,"count":156,"preSum":9205},{"ndv":153,"upper":190541,"lower":187889,"count":156,"preSum":9361},{"ndv":149,"upper":193700,"lower":190560,"count":156,"preSum":9517},{"ndv":156,"upper":196955,"lower":193767,"count":156,"preSum":9673},{"ndv":150,"upper":199999,"lower":196996,"count":153,"preSum":9829}],"maxBucketSize":64,"type":"Int","sampleRate":0.10008507} - lineitem.l_partkey.null_count: - 0 - lineitem.l_partkey.sample_rate: - 0.016663292 - lineitem.l_quantity.TOPN: - {"countArr":[171,180,181,183,182,181,175,174,179,177,183,186,172,190],"valueArr":[2,3,8,11,14,16,18,22,28,40,43,47,48,49],"type":"Double"} - lineitem.l_quantity.cardinality: - 50 - lineitem.l_quantity.histogram: - {"buckets":[{"ndv":1,"upper":1,"lower":1,"count":209,"preSum":0},{"ndv":1,"upper":4,"lower":4,"count":197,"preSum":209},{"ndv":1,"upper":5,"lower":5,"count":210,"preSum":406},{"ndv":1,"upper":6,"lower":6,"count":195,"preSum":616},{"ndv":1,"upper":7,"lower":7,"count":165,"preSum":811},{"ndv":1,"upper":9,"lower":9,"count":202,"preSum":976},{"ndv":1,"upper":10,"lower":10,"count":212,"preSum":1178},{"ndv":1,"upper":12,"lower":12,"count":213,"preSum":1390},{"ndv":1,"upper":13,"lower":13,"count":194,"preSum":1603},{"ndv":1,"upper":15,"lower":15,"count":204,"preSum":1797},{"ndv":1,"upper":17,"lower":17,"count":193,"preSum":2001},{"ndv":1,"upper":19,"lower":19,"count":194,"preSum":2194},{"ndv":1,"upper":20,"lower":20,"count":228,"preSum":2388},{"ndv":1,"upper":21,"lower":21,"count":199,"preSum":2616},{"ndv":1,"upper":23,"lower":23,"count":200,"preSum":2815},{"ndv":1,"upper":24,"lower":24,"count":220,"preSum":3015},{"ndv":1,"upper":25,"lower":25,"count":207,"preSum":3235},{"ndv":1,"upper":26,"lower":26,"count":200,"preSum":3442},{"ndv":1,"upper":27,"lower":27,"count":221,"preSum":3642},{"ndv":1,"upper":29,"lower":29,"count":217,"preSum":3863},{"ndv":1,"upper":30,"lower":30,"count":203,"preSum":4080},{"ndv":1,"upper":31,"lower":31,"count":240,"preSum":4283},{"ndv":1,"upper":32,"lower":32,"count":216,"preSum":4523},{"ndv":1,"upper":33,"lower":33,"count":194,"preSum":4739},{"ndv":1,"upper":34,"lower":34,"count":217,"preSum":4933},{"ndv":1,"upper":35,"lower":35,"count":214,"preSum":5150},{"ndv":1,"upper":36,"lower":36,"count":214,"preSum":5364},{"ndv":1,"upper":37,"lower":37,"count":198,"preSum":5578},{"ndv":1,"upper":38,"lower":38,"count":200,"preSum":5776},{"ndv":1,"upper":39,"lower":39,"count":218,"preSum":5976},{"ndv":1,"upper":41,"lower":41,"count":221,"preSum":6194},{"ndv":1,"upper":42,"lower":42,"count":217,"preSum":6415},{"ndv":1,"upper":44,"lower":44,"count":225,"preSum":6632},{"ndv":1,"upper":45,"lower":45,"count":196,"preSum":6857},{"ndv":1,"upper":46,"lower":46,"count":222,"preSum":7053},{"ndv":1,"upper":50,"lower":50,"count":211,"preSum":7275}],"maxBucketSize":64,"type":"Double","sampleRate":0.10008507} - lineitem.l_quantity.null_count: - 0 - lineitem.l_quantity.sample_rate: - 0.016663292 - lineitem.l_receiptdate.TOPN: - {"countArr":[],"valueArr":[],"type":"Date"} - lineitem.l_receiptdate.cardinality: - 2586 - lineitem.l_receiptdate.histogram: - {"buckets":[{"ndv":69,"upper":"1992-04-23","lower":"1992-01-23","count":159,"preSum":0},{"ndv":38,"upper":"1992-05-31","lower":"1992-04-24","count":157,"preSum":159},{"ndv":35,"upper":"1992-07-07","lower":"1992-06-01","count":161,"preSum":316},{"ndv":40,"upper":"1992-08-18","lower":"1992-07-08","count":162,"preSum":477},{"ndv":36,"upper":"1992-09-26","lower":"1992-08-19","count":162,"preSum":639},{"ndv":35,"upper":"1992-10-31","lower":"1992-09-27","count":157,"preSum":801},{"ndv":38,"upper":"1992-12-09","lower":"1992-11-01","count":160,"preSum":958},{"ndv":40,"upper":"1993-01-18","lower":"1992-12-10","count":162,"preSum":1118},{"ndv":37,"upper":"1993-02-24","lower":"1993-01-19","count":158,"preSum":1280},{"ndv":35,"upper":"1993-04-03","lower":"1993-02-25","count":159,"preSum":1438},{"ndv":38,"upper":"1993-05-12","lower":"1993-04-04","count":160,"preSum":1597},{"ndv":43,"upper":"1993-06-25","lower":"1993-05-13","count":159,"preSum":1757},{"ndv":37,"upper":"1993-08-01","lower":"1993-06-26","count":158,"preSum":1916},{"ndv":42,"upper":"1993-09-13","lower":"1993-08-02","count":158,"preSum":2074},{"ndv":35,"upper":"1993-10-18","lower":"1993-09-14","count":159,"preSum":2232},{"ndv":41,"upper":"1993-11-28","lower":"1993-10-19","count":157,"preSum":2391},{"ndv":39,"upper":"1994-01-07","lower":"1993-11-29","count":162,"preSum":2548},{"ndv":39,"upper":"1994-02-16","lower":"1994-01-08","count":159,"preSum":2710},{"ndv":40,"upper":"1994-03-28","lower":"1994-02-17","count":159,"preSum":2869},{"ndv":37,"upper":"1994-05-06","lower":"1994-03-29","count":157,"preSum":3028},{"ndv":36,"upper":"1994-06-11","lower":"1994-05-07","count":159,"preSum":3185},{"ndv":41,"upper":"1994-07-22","lower":"1994-06-12","count":159,"preSum":3344},{"ndv":42,"upper":"1994-09-03","lower":"1994-07-23","count":162,"preSum":3503},{"ndv":39,"upper":"1994-10-12","lower":"1994-09-04","count":159,"preSum":3665},{"ndv":45,"upper":"1994-11-26","lower":"1994-10-13","count":160,"preSum":3824},{"ndv":39,"upper":"1995-01-05","lower":"1994-11-27","count":157,"preSum":3984},{"ndv":36,"upper":"1995-02-11","lower":"1995-01-06","count":164,"preSum":4141},{"ndv":35,"upper":"1995-03-19","lower":"1995-02-12","count":162,"preSum":4305},{"ndv":34,"upper":"1995-04-22","lower":"1995-03-20","count":159,"preSum":4467},{"ndv":38,"upper":"1995-05-30","lower":"1995-04-23","count":163,"preSum":4626},{"ndv":43,"upper":"1995-07-13","lower":"1995-06-01","count":163,"preSum":4789},{"ndv":38,"upper":"1995-08-21","lower":"1995-07-14","count":158,"preSum":4952},{"ndv":34,"upper":"1995-09-26","lower":"1995-08-22","count":157,"preSum":5110},{"ndv":37,"upper":"1995-11-02","lower":"1995-09-27","count":160,"preSum":5267},{"ndv":36,"upper":"1995-12-08","lower":"1995-11-03","count":159,"preSum":5427},{"ndv":35,"upper":"1996-01-12","lower":"1995-12-09","count":157,"preSum":5586},{"ndv":36,"upper":"1996-02-17","lower":"1996-01-13","count":162,"preSum":5743},{"ndv":36,"upper":"1996-03-24","lower":"1996-02-18","count":157,"preSum":5905},{"ndv":39,"upper":"1996-05-03","lower":"1996-03-25","count":159,"preSum":6062},{"ndv":35,"upper":"1996-06-08","lower":"1996-05-04","count":159,"preSum":6221},{"ndv":36,"upper":"1996-07-15","lower":"1996-06-09","count":160,"preSum":6380},{"ndv":34,"upper":"1996-08-18","lower":"1996-07-16","count":160,"preSum":6540},{"ndv":36,"upper":"1996-09-24","lower":"1996-08-19","count":157,"preSum":6700},{"ndv":39,"upper":"1996-11-02","lower":"1996-09-25","count":161,"preSum":6857},{"ndv":36,"upper":"1996-12-08","lower":"1996-11-03","count":158,"preSum":7018},{"ndv":38,"upper":"1997-01-15","lower":"1996-12-09","count":160,"preSum":7176},{"ndv":41,"upper":"1997-02-27","lower":"1997-01-16","count":158,"preSum":7336},{"ndv":36,"upper":"1997-04-04","lower":"1997-02-28","count":159,"preSum":7494},{"ndv":41,"upper":"1997-05-15","lower":"1997-04-05","count":159,"preSum":7653},{"ndv":31,"upper":"1997-06-15","lower":"1997-05-16","count":160,"preSum":7812},{"ndv":37,"upper":"1997-07-24","lower":"1997-06-16","count":158,"preSum":7972},{"ndv":37,"upper":"1997-08-31","lower":"1997-07-25","count":157,"preSum":8130},{"ndv":40,"upper":"1997-10-11","lower":"1997-09-01","count":163,"preSum":8287},{"ndv":39,"upper":"1997-11-20","lower":"1997-10-12","count":158,"preSum":8450},{"ndv":32,"upper":"1997-12-22","lower":"1997-11-21","count":157,"preSum":8608},{"ndv":40,"upper":"1998-02-01","lower":"1997-12-23","count":157,"preSum":8765},{"ndv":35,"upper":"1998-03-09","lower":"1998-02-02","count":157,"preSum":8922},{"ndv":35,"upper":"1998-04-13","lower":"1998-03-10","count":160,"preSum":9079},{"ndv":41,"upper":"1998-05-24","lower":"1998-04-14","count":160,"preSum":9239},{"ndv":37,"upper":"1998-06-30","lower":"1998-05-25","count":160,"preSum":9399},{"ndv":37,"upper":"1998-08-06","lower":"1998-07-01","count":159,"preSum":9559},{"ndv":42,"upper":"1998-09-20","lower":"1998-08-07","count":158,"preSum":9718},{"ndv":59,"upper":"1998-12-08","lower":"1998-09-21","count":124,"preSum":9876}],"maxBucketSize":64,"type":"Date","sampleRate":0.10008507} - lineitem.l_receiptdate.null_count: - 0 - lineitem.l_receiptdate.sample_rate: - 0.016663292 - lineitem.l_returnflag.TOPN: - {"countArr":[2436,5068,2496],"valueArr":["A","N","R"],"type":"String"} - lineitem.l_returnflag.cardinality: - 3 - lineitem.l_returnflag.histogram: - {"buckets":[],"maxBucketSize":64,"type":"String","sampleRate":0.10008507} - lineitem.l_returnflag.null_count: - 0 - lineitem.l_returnflag.sample_rate: - 0.016663292 - lineitem.l_shipdate.TOPN: - {"countArr":[],"valueArr":[],"type":"Date"} - lineitem.l_shipdate.cardinality: - 2552 - lineitem.l_shipdate.histogram: - {"buckets":[{"ndv":62,"upper":"1992-04-05","lower":"1992-01-09","count":158,"preSum":0},{"ndv":37,"upper":"1992-05-12","lower":"1992-04-06","count":157,"preSum":158},{"ndv":38,"upper":"1992-06-20","lower":"1992-05-13","count":162,"preSum":315},{"ndv":40,"upper":"1992-08-01","lower":"1992-06-21","count":163,"preSum":477},{"ndv":37,"upper":"1992-09-09","lower":"1992-08-02","count":159,"preSum":640},{"ndv":32,"upper":"1992-10-13","lower":"1992-09-10","count":160,"preSum":799},{"ndv":38,"upper":"1992-11-21","lower":"1992-10-14","count":161,"preSum":959},{"ndv":38,"upper":"1992-12-30","lower":"1992-11-22","count":158,"preSum":1120},{"ndv":41,"upper":"1993-02-10","lower":"1992-12-31","count":161,"preSum":1278},{"ndv":36,"upper":"1993-03-18","lower":"1993-02-11","count":163,"preSum":1439},{"ndv":37,"upper":"1993-04-25","lower":"1993-03-19","count":163,"preSum":1602},{"ndv":42,"upper":"1993-06-10","lower":"1993-04-28","count":157,"preSum":1765},{"ndv":39,"upper":"1993-07-19","lower":"1993-06-11","count":161,"preSum":1922},{"ndv":41,"upper":"1993-08-29","lower":"1993-07-20","count":158,"preSum":2083},{"ndv":37,"upper":"1993-10-05","lower":"1993-08-30","count":157,"preSum":2241},{"ndv":37,"upper":"1993-11-12","lower":"1993-10-06","count":159,"preSum":2398},{"ndv":36,"upper":"1993-12-18","lower":"1993-11-13","count":158,"preSum":2557},{"ndv":35,"upper":"1994-01-23","lower":"1993-12-19","count":158,"preSum":2715},{"ndv":40,"upper":"1994-03-04","lower":"1994-01-24","count":161,"preSum":2873},{"ndv":35,"upper":"1994-04-08","lower":"1994-03-05","count":158,"preSum":3034},{"ndv":37,"upper":"1994-05-17","lower":"1994-04-09","count":158,"preSum":3192},{"ndv":45,"upper":"1994-07-01","lower":"1994-05-18","count":161,"preSum":3350},{"ndv":42,"upper":"1994-08-12","lower":"1994-07-02","count":160,"preSum":3511},{"ndv":40,"upper":"1994-09-21","lower":"1994-08-13","count":158,"preSum":3671},{"ndv":41,"upper":"1994-11-01","lower":"1994-09-22","count":157,"preSum":3829},{"ndv":37,"upper":"1994-12-09","lower":"1994-11-02","count":157,"preSum":3986},{"ndv":40,"upper":"1995-01-19","lower":"1994-12-10","count":158,"preSum":4143},{"ndv":44,"upper":"1995-03-04","lower":"1995-01-20","count":165,"preSum":4301},{"ndv":39,"upper":"1995-04-15","lower":"1995-03-06","count":159,"preSum":4466},{"ndv":38,"upper":"1995-05-23","lower":"1995-04-16","count":162,"preSum":4625},{"ndv":35,"upper":"1995-06-28","lower":"1995-05-24","count":162,"preSum":4787},{"ndv":35,"upper":"1995-08-02","lower":"1995-06-29","count":157,"preSum":4949},{"ndv":37,"upper":"1995-09-08","lower":"1995-08-03","count":158,"preSum":5106},{"ndv":33,"upper":"1995-10-11","lower":"1995-09-09","count":157,"preSum":5264},{"ndv":32,"upper":"1995-11-12","lower":"1995-10-12","count":160,"preSum":5421},{"ndv":39,"upper":"1995-12-21","lower":"1995-11-13","count":157,"preSum":5581},{"ndv":42,"upper":"1996-02-01","lower":"1995-12-22","count":157,"preSum":5738},{"ndv":40,"upper":"1996-03-12","lower":"1996-02-02","count":160,"preSum":5895},{"ndv":34,"upper":"1996-04-16","lower":"1996-03-13","count":161,"preSum":6055},{"ndv":38,"upper":"1996-05-24","lower":"1996-04-17","count":160,"preSum":6216},{"ndv":38,"upper":"1996-07-01","lower":"1996-05-25","count":158,"preSum":6376},{"ndv":40,"upper":"1996-08-10","lower":"1996-07-02","count":159,"preSum":6534},{"ndv":35,"upper":"1996-09-14","lower":"1996-08-11","count":159,"preSum":6693},{"ndv":33,"upper":"1996-10-17","lower":"1996-09-15","count":159,"preSum":6852},{"ndv":44,"upper":"1996-12-03","lower":"1996-10-18","count":157,"preSum":7011},{"ndv":36,"upper":"1997-01-08","lower":"1996-12-04","count":159,"preSum":7168},{"ndv":35,"upper":"1997-02-12","lower":"1997-01-09","count":159,"preSum":7327},{"ndv":40,"upper":"1997-03-24","lower":"1997-02-13","count":161,"preSum":7486},{"ndv":38,"upper":"1997-05-02","lower":"1997-03-25","count":157,"preSum":7647},{"ndv":34,"upper":"1997-06-05","lower":"1997-05-03","count":157,"preSum":7804},{"ndv":37,"upper":"1997-07-14","lower":"1997-06-06","count":161,"preSum":7961},{"ndv":37,"upper":"1997-08-20","lower":"1997-07-15","count":159,"preSum":8122},{"ndv":38,"upper":"1997-09-27","lower":"1997-08-21","count":157,"preSum":8281},{"ndv":37,"upper":"1997-11-05","lower":"1997-09-28","count":159,"preSum":8438},{"ndv":41,"upper":"1997-12-17","lower":"1997-11-06","count":159,"preSum":8597},{"ndv":35,"upper":"1998-01-21","lower":"1997-12-18","count":159,"preSum":8756},{"ndv":37,"upper":"1998-02-27","lower":"1998-01-22","count":161,"preSum":8915},{"ndv":33,"upper":"1998-04-01","lower":"1998-02-28","count":158,"preSum":9076},{"ndv":40,"upper":"1998-05-12","lower":"1998-04-02","count":159,"preSum":9234},{"ndv":38,"upper":"1998-06-20","lower":"1998-05-13","count":158,"preSum":9393},{"ndv":38,"upper":"1998-07-28","lower":"1998-06-21","count":162,"preSum":9551},{"ndv":43,"upper":"1998-09-12","lower":"1998-07-29","count":160,"preSum":9713},{"ndv":61,"upper":"1998-11-28","lower":"1998-09-13","count":127,"preSum":9873}],"maxBucketSize":64,"type":"Date","sampleRate":0.10008507} - lineitem.l_shipdate.null_count: - 0 - lineitem.l_shipdate.sample_rate: - 0.016663292 - lineitem.l_shipinstruct.TOPN: - {"countArr":[2550,2470,2474,2506],"valueArr":["COLLECT COD","DELIVER IN PERSON","NONE","TAKE BACK RETURN"],"type":"String"} - lineitem.l_shipinstruct.cardinality: - 4 - lineitem.l_shipinstruct.histogram: - {"buckets":[],"maxBucketSize":64,"type":"String","sampleRate":0.10008507} - lineitem.l_shipinstruct.null_count: - 0 - lineitem.l_shipinstruct.sample_rate: - 0.016663292 - lineitem.l_shipmode.TOPN: - {"countArr":[1413,1429,1450,1463,1453,1387,1405],"valueArr":["AIR","FOB","MAIL","RAIL","REG AIR","SHIP","TRUCK"],"type":"String"} - lineitem.l_shipmode.cardinality: - 7 - lineitem.l_shipmode.histogram: - {"buckets":[],"maxBucketSize":64,"type":"String","sampleRate":0.10008507} - lineitem.l_shipmode.null_count: - 0 - lineitem.l_shipmode.sample_rate: - 0.016663292 - lineitem.l_suppkey.TOPN: - {"countArr":[],"valueArr":[],"type":"Int"} - lineitem.l_suppkey.cardinality: - 10051 - lineitem.l_suppkey.histogram: - {"buckets":[{"ndv":95,"upper":168,"lower":2,"count":157,"preSum":0},{"ndv":106,"upper":327,"lower":170,"count":157,"preSum":157},{"ndv":104,"upper":499,"lower":328,"count":157,"preSum":314},{"ndv":103,"upper":671,"lower":504,"count":157,"preSum":471},{"ndv":101,"upper":829,"lower":672,"count":158,"preSum":628},{"ndv":96,"upper":995,"lower":833,"count":157,"preSum":786},{"ndv":101,"upper":1146,"lower":996,"count":157,"preSum":943},{"ndv":94,"upper":1295,"lower":1147,"count":157,"preSum":1100},{"ndv":94,"upper":1437,"lower":1296,"count":157,"preSum":1257},{"ndv":108,"upper":1619,"lower":1439,"count":158,"preSum":1414},{"ndv":91,"upper":1759,"lower":1621,"count":157,"preSum":1572},{"ndv":100,"upper":1917,"lower":1760,"count":159,"preSum":1729},{"ndv":102,"upper":2080,"lower":1918,"count":157,"preSum":1888},{"ndv":104,"upper":2242,"lower":2081,"count":158,"preSum":2045},{"ndv":99,"upper":2411,"lower":2245,"count":157,"preSum":2203},{"ndv":103,"upper":2576,"lower":2413,"count":158,"preSum":2360},{"ndv":99,"upper":2716,"lower":2577,"count":159,"preSum":2518},{"ndv":102,"upper":2872,"lower":2718,"count":158,"preSum":2677},{"ndv":102,"upper":3035,"lower":2873,"count":159,"preSum":2835},{"ndv":102,"upper":3198,"lower":3036,"count":157,"preSum":2994},{"ndv":104,"upper":3371,"lower":3199,"count":157,"preSum":3151},{"ndv":90,"upper":3503,"lower":3372,"count":159,"preSum":3308},{"ndv":102,"upper":3674,"lower":3504,"count":159,"preSum":3467},{"ndv":96,"upper":3823,"lower":3676,"count":157,"preSum":3626},{"ndv":92,"upper":3975,"lower":3824,"count":158,"preSum":3783},{"ndv":101,"upper":4145,"lower":3977,"count":157,"preSum":3941},{"ndv":95,"upper":4298,"lower":4152,"count":158,"preSum":4098},{"ndv":91,"upper":4434,"lower":4301,"count":157,"preSum":4256},{"ndv":91,"upper":4580,"lower":4435,"count":157,"preSum":4413},{"ndv":102,"upper":4740,"lower":4582,"count":158,"preSum":4570},{"ndv":92,"upper":4883,"lower":4741,"count":157,"preSum":4728},{"ndv":105,"upper":5028,"lower":4885,"count":158,"preSum":4885},{"ndv":107,"upper":5205,"lower":5029,"count":157,"preSum":5043},{"ndv":105,"upper":5371,"lower":5209,"count":158,"preSum":5200},{"ndv":103,"upper":5525,"lower":5372,"count":157,"preSum":5358},{"ndv":87,"upper":5666,"lower":5527,"count":157,"preSum":5515},{"ndv":101,"upper":5838,"lower":5668,"count":158,"preSum":5672},{"ndv":101,"upper":5997,"lower":5839,"count":157,"preSum":5830},{"ndv":93,"upper":6159,"lower":6002,"count":157,"preSum":5987},{"ndv":97,"upper":6301,"lower":6160,"count":157,"preSum":6144},{"ndv":106,"upper":6448,"lower":6302,"count":158,"preSum":6301},{"ndv":98,"upper":6614,"lower":6449,"count":157,"preSum":6459},{"ndv":96,"upper":6764,"lower":6615,"count":157,"preSum":6616},{"ndv":109,"upper":6942,"lower":6765,"count":158,"preSum":6773},{"ndv":97,"upper":7096,"lower":6944,"count":157,"preSum":6931},{"ndv":95,"upper":7248,"lower":7097,"count":158,"preSum":7088},{"ndv":98,"upper":7406,"lower":7250,"count":158,"preSum":7246},{"ndv":97,"upper":7575,"lower":7407,"count":157,"preSum":7404},{"ndv":100,"upper":7734,"lower":7576,"count":158,"preSum":7561},{"ndv":113,"upper":7919,"lower":7737,"count":157,"preSum":7719},{"ndv":102,"upper":8080,"lower":7920,"count":158,"preSum":7876},{"ndv":103,"upper":8222,"lower":8081,"count":158,"preSum":8034},{"ndv":95,"upper":8381,"lower":8224,"count":158,"preSum":8192},{"ndv":91,"upper":8518,"lower":8383,"count":157,"preSum":8350},{"ndv":103,"upper":8679,"lower":8520,"count":157,"preSum":8507},{"ndv":102,"upper":8843,"lower":8682,"count":157,"preSum":8664},{"ndv":95,"upper":9001,"lower":8844,"count":157,"preSum":8821},{"ndv":95,"upper":9159,"lower":9004,"count":157,"preSum":8978},{"ndv":97,"upper":9306,"lower":9160,"count":157,"preSum":9135},{"ndv":96,"upper":9459,"lower":9307,"count":157,"preSum":9292},{"ndv":101,"upper":9603,"lower":9461,"count":157,"preSum":9449},{"ndv":100,"upper":9766,"lower":9604,"count":159,"preSum":9606},{"ndv":106,"upper":9932,"lower":9767,"count":157,"preSum":9765},{"ndv":48,"upper":9999,"lower":9933,"count":78,"preSum":9922}],"maxBucketSize":64,"type":"Int","sampleRate":0.10008507} - lineitem.l_suppkey.null_count: - 0 - lineitem.l_suppkey.sample_rate: - 0.016663292 - lineitem.l_tax.TOPN: - {"countArr":[1134,1088,1184,1118,1084,1073,1091,1121,1107],"valueArr":[0,0.01,0.02,0.03,0.04,0.05,0.06,0.07,0.08],"type":"Double"} - lineitem.l_tax.cardinality: - 9 - lineitem.l_tax.histogram: - {"buckets":[],"maxBucketSize":64,"type":"Double","sampleRate":0.10008507} - lineitem.l_tax.null_count: - 0 - lineitem.l_tax.sample_rate: - 0.016663292 - nation.n_comment.TOPN: - {"countArr":[],"valueArr":[],"type":"String"} - nation.n_comment.cardinality: - 24 - nation.n_comment.histogram: - {"buckets":[{"ndv":4,"upper":" slyly express asymptotes. regular deposits haggle","lower":" haggle. carefully final deposits detect slyly aga","count":4,"preSum":0},{"ndv":4,"upper":"eas hang ironic, silent packages. slyly regular pa","lower":"al foxes promise slyly according to the regular ac","count":4,"preSum":4},{"ndv":4,"upper":"l platelets. regular accounts x-ray: unusual, regu","lower":"efully alongside of the slyly final dependencies. ","count":4,"preSum":8},{"ndv":4,"upper":"refully final requests. regular, ironi","lower":"nic deposits boost atop the quickly final requests","count":4,"preSum":12},{"ndv":4,"upper":"ts. silent requests haggle. closely express packag","lower":"rns. blithely bold courts among the closely regula","count":4,"preSum":16},{"ndv":4,"upper":"y alongside of the pending deposits. carefully spe","lower":"ular asymptotes are about the furious multipliers.","count":4,"preSum":20},{"ndv":1,"upper":"y final packages. slow foxes cajole quickly. quick","lower":"y final packages. slow foxes cajole quickly. quick","count":1,"preSum":24}],"maxBucketSize":8,"type":"String","sampleRate":1.0} - nation.n_comment.null_count: - 0 - nation.n_comment.sample_rate: - 1.0 - nation.n_name.TOPN: - {"countArr":[],"valueArr":[],"type":"String"} - nation.n_name.cardinality: - 25 - nation.n_name.histogram: - {"buckets":[{"ndv":4,"upper":"CANADA","lower":"ALGERIA","count":4,"preSum":0},{"ndv":4,"upper":"FRANCE","lower":"CHINA","count":4,"preSum":4},{"ndv":4,"upper":"IRAN","lower":"GERMANY","count":4,"preSum":8},{"ndv":4,"upper":"KENYA","lower":"IRAQ","count":4,"preSum":12},{"ndv":4,"upper":"ROMANIA","lower":"MOROCCO","count":4,"preSum":16},{"ndv":4,"upper":"UNITED STATES","lower":"RUSSIA","count":4,"preSum":20},{"ndv":1,"upper":"VIETNAM","lower":"VIETNAM","count":1,"preSum":24}],"maxBucketSize":8,"type":"String","sampleRate":1.0} - nation.n_name.null_count: - 0 - nation.n_name.sample_rate: - 1.0 - nation.n_nationkey.TOPN: - {"countArr":[],"valueArr":[],"type":"Int"} - nation.n_nationkey.cardinality: - 24 - nation.n_nationkey.histogram: - {"buckets":[{"ndv":4,"upper":3,"lower":0,"count":4,"preSum":0},{"ndv":4,"upper":7,"lower":4,"count":4,"preSum":4},{"ndv":4,"upper":11,"lower":8,"count":4,"preSum":8},{"ndv":4,"upper":15,"lower":12,"count":4,"preSum":12},{"ndv":4,"upper":19,"lower":16,"count":4,"preSum":16},{"ndv":4,"upper":23,"lower":20,"count":4,"preSum":20},{"ndv":1,"upper":24,"lower":24,"count":1,"preSum":24}],"maxBucketSize":8,"type":"Int","sampleRate":1.0} - nation.n_nationkey.null_count: - 0 - nation.n_nationkey.sample_rate: - 1.0 - nation.n_regionkey.TOPN: - {"countArr":[5,5,5,5,5],"valueArr":[0,1,2,3,4],"type":"Int"} - nation.n_regionkey.cardinality: - 5 - nation.n_regionkey.histogram: - {"buckets":[],"maxBucketSize":8,"type":"Int","sampleRate":1.0} - nation.n_regionkey.null_count: - 0 - nation.n_regionkey.sample_rate: - 1.0 - orders.o_clerk.TOPN: - {"countArr":[4,4,4,4,4,4,4,4,4,4,4],"valueArr":["Clerk#000000120","Clerk#000000167","Clerk#000000188","Clerk#000000225","Clerk#000000294","Clerk#000000304","Clerk#000000460","Clerk#000000503","Clerk#000000515","Clerk#000000553","Clerk#000000596"],"type":"String"} - orders.o_clerk.cardinality: - 1000 - orders.o_clerk.histogram: - {"buckets":[{"ndv":17,"upper":"Clerk#000000017","lower":"Clerk#000000001","count":164,"preSum":0},{"ndv":17,"upper":"Clerk#000000034","lower":"Clerk#000000018","count":157,"preSum":164},{"ndv":15,"upper":"Clerk#000000049","lower":"Clerk#000000035","count":162,"preSum":321},{"ndv":16,"upper":"Clerk#000000065","lower":"Clerk#000000050","count":163,"preSum":483},{"ndv":17,"upper":"Clerk#000000082","lower":"Clerk#000000066","count":161,"preSum":646},{"ndv":16,"upper":"Clerk#000000098","lower":"Clerk#000000083","count":170,"preSum":807},{"ndv":17,"upper":"Clerk#000000115","lower":"Clerk#000000099","count":162,"preSum":977},{"ndv":18,"upper":"Clerk#000000134","lower":"Clerk#000000116","count":166,"preSum":1139},{"ndv":16,"upper":"Clerk#000000150","lower":"Clerk#000000135","count":166,"preSum":1305},{"ndv":17,"upper":"Clerk#000000168","lower":"Clerk#000000151","count":170,"preSum":1471},{"ndv":16,"upper":"Clerk#000000184","lower":"Clerk#000000169","count":158,"preSum":1641},{"ndv":15,"upper":"Clerk#000000200","lower":"Clerk#000000185","count":157,"preSum":1799},{"ndv":14,"upper":"Clerk#000000214","lower":"Clerk#000000201","count":156,"preSum":1956},{"ndv":17,"upper":"Clerk#000000232","lower":"Clerk#000000215","count":159,"preSum":2112},{"ndv":15,"upper":"Clerk#000000247","lower":"Clerk#000000233","count":159,"preSum":2271},{"ndv":17,"upper":"Clerk#000000264","lower":"Clerk#000000248","count":158,"preSum":2430},{"ndv":17,"upper":"Clerk#000000281","lower":"Clerk#000000265","count":161,"preSum":2588},{"ndv":14,"upper":"Clerk#000000296","lower":"Clerk#000000282","count":161,"preSum":2749},{"ndv":15,"upper":"Clerk#000000312","lower":"Clerk#000000297","count":156,"preSum":2910},{"ndv":14,"upper":"Clerk#000000326","lower":"Clerk#000000313","count":160,"preSum":3066},{"ndv":16,"upper":"Clerk#000000342","lower":"Clerk#000000327","count":167,"preSum":3226},{"ndv":14,"upper":"Clerk#000000356","lower":"Clerk#000000343","count":160,"preSum":3393},{"ndv":17,"upper":"Clerk#000000373","lower":"Clerk#000000357","count":164,"preSum":3553},{"ndv":15,"upper":"Clerk#000000388","lower":"Clerk#000000374","count":162,"preSum":3717},{"ndv":16,"upper":"Clerk#000000404","lower":"Clerk#000000389","count":163,"preSum":3879},{"ndv":16,"upper":"Clerk#000000420","lower":"Clerk#000000405","count":159,"preSum":4042},{"ndv":19,"upper":"Clerk#000000439","lower":"Clerk#000000421","count":164,"preSum":4201},{"ndv":16,"upper":"Clerk#000000455","lower":"Clerk#000000440","count":157,"preSum":4365},{"ndv":16,"upper":"Clerk#000000472","lower":"Clerk#000000456","count":158,"preSum":4522},{"ndv":16,"upper":"Clerk#000000488","lower":"Clerk#000000473","count":156,"preSum":4680},{"ndv":15,"upper":"Clerk#000000504","lower":"Clerk#000000489","count":160,"preSum":4836},{"ndv":16,"upper":"Clerk#000000521","lower":"Clerk#000000505","count":161,"preSum":4996},{"ndv":17,"upper":"Clerk#000000538","lower":"Clerk#000000522","count":166,"preSum":5157},{"ndv":17,"upper":"Clerk#000000556","lower":"Clerk#000000539","count":157,"preSum":5323},{"ndv":14,"upper":"Clerk#000000570","lower":"Clerk#000000557","count":160,"preSum":5480},{"ndv":15,"upper":"Clerk#000000585","lower":"Clerk#000000571","count":163,"preSum":5640},{"ndv":18,"upper":"Clerk#000000604","lower":"Clerk#000000586","count":162,"preSum":5803},{"ndv":18,"upper":"Clerk#000000622","lower":"Clerk#000000605","count":157,"preSum":5965},{"ndv":14,"upper":"Clerk#000000636","lower":"Clerk#000000623","count":156,"preSum":6122},{"ndv":18,"upper":"Clerk#000000654","lower":"Clerk#000000637","count":158,"preSum":6278},{"ndv":15,"upper":"Clerk#000000669","lower":"Clerk#000000655","count":161,"preSum":6436},{"ndv":16,"upper":"Clerk#000000685","lower":"Clerk#000000670","count":158,"preSum":6597},{"ndv":16,"upper":"Clerk#000000701","lower":"Clerk#000000686","count":161,"preSum":6755},{"ndv":15,"upper":"Clerk#000000716","lower":"Clerk#000000702","count":164,"preSum":6916},{"ndv":15,"upper":"Clerk#000000731","lower":"Clerk#000000717","count":166,"preSum":7080},{"ndv":14,"upper":"Clerk#000000745","lower":"Clerk#000000732","count":159,"preSum":7246},{"ndv":14,"upper":"Clerk#000000759","lower":"Clerk#000000746","count":157,"preSum":7405},{"ndv":17,"upper":"Clerk#000000776","lower":"Clerk#000000760","count":160,"preSum":7562},{"ndv":15,"upper":"Clerk#000000791","lower":"Clerk#000000777","count":164,"preSum":7722},{"ndv":17,"upper":"Clerk#000000808","lower":"Clerk#000000792","count":163,"preSum":7886},{"ndv":15,"upper":"Clerk#000000823","lower":"Clerk#000000809","count":156,"preSum":8049},{"ndv":16,"upper":"Clerk#000000839","lower":"Clerk#000000824","count":157,"preSum":8205},{"ndv":15,"upper":"Clerk#000000854","lower":"Clerk#000000840","count":160,"preSum":8362},{"ndv":16,"upper":"Clerk#000000870","lower":"Clerk#000000855","count":156,"preSum":8522},{"ndv":15,"upper":"Clerk#000000885","lower":"Clerk#000000871","count":156,"preSum":8678},{"ndv":17,"upper":"Clerk#000000902","lower":"Clerk#000000886","count":163,"preSum":8834},{"ndv":16,"upper":"Clerk#000000918","lower":"Clerk#000000903","count":161,"preSum":8997},{"ndv":17,"upper":"Clerk#000000935","lower":"Clerk#000000919","count":168,"preSum":9158},{"ndv":15,"upper":"Clerk#000000950","lower":"Clerk#000000936","count":162,"preSum":9326},{"ndv":16,"upper":"Clerk#000000966","lower":"Clerk#000000951","count":165,"preSum":9488},{"ndv":17,"upper":"Clerk#000000983","lower":"Clerk#000000967","count":158,"preSum":9653},{"ndv":17,"upper":"Clerk#000001000","lower":"Clerk#000000984","count":145,"preSum":9811}],"maxBucketSize":64,"type":"String","sampleRate":0.099747635} - orders.o_clerk.null_count: - 0 - orders.o_clerk.sample_rate: - 0.06666667 - orders.o_comment.TOPN: - {"countArr":[],"valueArr":[],"type":"String"} - orders.o_comment.cardinality: - 1484727 - orders.o_comment.histogram: - {"buckets":[{"ndv":157,"upper":" asymptotes. quickly regular theodolites across th","lower":" about the busy accounts hang slyly against the bl","count":157,"preSum":0},{"ndv":157,"upper":" daring accounts solve slyly deposits. quick","lower":" asymptotes. slyly unusual accounts kindle alongs","count":157,"preSum":157},{"ndv":157,"upper":" final deposits about the doggedly regular p","lower":" decoys use. fluffily even packages wake quic","count":157,"preSum":314},{"ndv":157,"upper":" haggle carefully at the ironically silen","lower":" final deposits cajole even, reg","count":157,"preSum":471},{"ndv":157,"upper":" packages. bold packages alongside of the slyly un","lower":" haggle carefully even foxes. regular requests use","count":157,"preSum":628},{"ndv":157,"upper":" regular requests ca","lower":" packages. bold, final excuses sleep carefully","count":157,"preSum":785},{"ndv":157,"upper":" slyly thin package","lower":" regular requests cajole carefully silent packages","count":157,"preSum":942},{"ndv":157,"upper":" to the furiously final req","lower":" slyly unusual deposi","count":157,"preSum":1099},{"ndv":157,"upper":". even, even warthogs above the carefully expre","lower":" to the regular courts. furiously final deposits h","count":157,"preSum":1256},{"ndv":157,"upper":"accounts wake fluffily after the blithely express ","lower":". even, unusual requests across the final requests","count":157,"preSum":1413},{"ndv":157,"upper":"ains wake bold theodolites. car","lower":"accounts wake fluffily blithely final warhorses. i","count":157,"preSum":1570},{"ndv":157,"upper":"alongside of the furiously final theodolites. furi","lower":"ainst the blithely bold pinto bean","count":157,"preSum":1727},{"ndv":157,"upper":"as above the furiously","lower":"alongside of the pending pinto beans ha","count":157,"preSum":1884},{"ndv":157,"upper":"boost about the even, bold requests. quickly unusu","lower":"as are. regular pinto b","count":157,"preSum":2041},{"ndv":157,"upper":"ccounts boost. quietly regular warhorses ma","lower":"boost against the final instructions.","count":157,"preSum":2198},{"ndv":157,"upper":"cording to the quick","lower":"ccounts cajole blithely slyly regular foxes. packa","count":157,"preSum":2355},{"ndv":157,"upper":"dencies thrash caref","lower":"cording to the quickly pending packages haggle acc","count":157,"preSum":2512},{"ndv":157,"upper":"e blithely bold decoys. theodolites haggle care","lower":"dencies wake above the brave, pending instructions","count":157,"preSum":2669},{"ndv":157,"upper":"e slyly ironic frays. even realms boost after the ","lower":"e blithely busy pinto beans? blithely express theo","count":157,"preSum":2826},{"ndv":157,"upper":"efully final requests haggle according to the iron","lower":"e slyly ironic, silent accounts. frays ","count":157,"preSum":2983},{"ndv":157,"upper":"en deposits along the slyly unusual somas sleep","lower":"efully final requests. slyly express pinto beans c","count":157,"preSum":3140},{"ndv":157,"upper":"eposits integrate around the boldly final asymptot","lower":"en deposits cajole about the quick","count":157,"preSum":3297},{"ndv":157,"upper":"es. blithely bold accounts across the gifts ","lower":"eposits kindle blithely pending,","count":157,"preSum":3454},{"ndv":157,"upper":"even packages. pending, iro","lower":"es. blithely pending pinto beans wake carefully ev","count":157,"preSum":3611},{"ndv":157,"upper":"fluffily for the furiously even instru","lower":"even packages. requests against the quickly pendin","count":157,"preSum":3768},{"ndv":157,"upper":"g carefully regular instructions. slyly","lower":"fluffily ironic accounts nod furiously express acc","count":157,"preSum":3925},{"ndv":157,"upper":"gle daringly quickly regular pinto beans. carefull","lower":"g carefully slyly pending packages. carefully iron","count":157,"preSum":4082},{"ndv":157,"upper":"he express ideas; slyly even dolphins","lower":"gle doggedly. quickly","count":157,"preSum":4239},{"ndv":157,"upper":"ial frays. furiously special foxe","lower":"he express requests. foxes boos","count":157,"preSum":4396},{"ndv":157,"upper":"ily deposits. furiously even pack","lower":"ial hockey players. quickly special d","count":157,"preSum":4553},{"ndv":157,"upper":"ions ought to wake slyly furiously ironic frays. e","lower":"ily even packages nag furiously against the regula","count":157,"preSum":4710},{"ndv":157,"upper":"ithely even accounts use along the blithely regula","lower":"ions play carefully even warhorses. packages cajol","count":157,"preSum":4867},{"ndv":157,"upper":"kly against the carefully express braid","lower":"ithely even dolphins! slow asymptotes nag above th","count":157,"preSum":5024},{"ndv":157,"upper":"lar ideas haggle slyly ","lower":"kly among the carefully bold accounts. blit","count":157,"preSum":5181},{"ndv":157,"upper":"lieve quickly slyly ironic accounts. slyly ironic ","lower":"lar ideas use. carefully special packag","count":157,"preSum":5338},{"ndv":157,"upper":"lthy accounts. iron","lower":"lieve slyly furiously silent as","count":157,"preSum":5495},{"ndv":157,"upper":"ly foxes cajole furiously regular ideas? even, pen","lower":"luffily according to the regular pinto beans. iron","count":157,"preSum":5652},{"ndv":157,"upper":"ly. special excuses affix final, express","lower":"ly furious dependencies integrate carefully among ","count":157,"preSum":5809},{"ndv":157,"upper":"nag. slyly regular requests use furiously among th","lower":"ly: bravely regular a","count":157,"preSum":5966},{"ndv":157,"upper":"nic dolphins after the","lower":"nal accounts against the regular, silent ","count":157,"preSum":6123},{"ndv":157,"upper":"nts boost fluffily according to the carefully expr","lower":"nic dolphins; regular packages cajole carefully. f","count":157,"preSum":6280},{"ndv":157,"upper":"ole special, final ex","lower":"nts cajole across th","count":157,"preSum":6437},{"ndv":157,"upper":"osits sleep blithely above the furiously bold acco","lower":"olites after the quickly pendin","count":157,"preSum":6594},{"ndv":157,"upper":"ove the furiously bold deposits are carefully abov","lower":"osits sleep blithely after the ","count":157,"preSum":6751},{"ndv":157,"upper":"pinto beans integrate carefully. blithely regular ","lower":"ove the furiously even theodolites nag acco","count":157,"preSum":6908},{"ndv":157,"upper":"quietly bold attainments. requests might hinder bl","lower":"pinto beans maintain quickly-- carefully special r","count":157,"preSum":7065},{"ndv":157,"upper":"regular accounts sleep furiously. deposits are. sl","lower":"quietly fluffily special deposits. iro","count":157,"preSum":7222},{"ndv":157,"upper":"riously furiously regul","lower":"regular accounts. bol","count":157,"preSum":7379},{"ndv":157,"upper":"s are furiously after the slyly dar","lower":"riously ironic excuses play a","count":157,"preSum":7536},{"ndv":157,"upper":"s the brave requests?","lower":"s are slyly about the fluf","count":157,"preSum":7693},{"ndv":157,"upper":"s. thinly express foxes ca","lower":"s the excuses haggle carefully furiously regular i","count":157,"preSum":7850},{"ndv":157,"upper":"sly regular deposits wake about the slyly i","lower":"s. unusual accounts haggle carefully about the unu","count":157,"preSum":8007},{"ndv":157,"upper":"st the carefully unusual pinto beans. even, final ","lower":"sly regular ideas after the unusual ideas haggle b","count":157,"preSum":8164},{"ndv":157,"upper":"t slyly. final foxes integrate blithely special fo","lower":"st the final, even packages. final, ironic request","count":157,"preSum":8321},{"ndv":157,"upper":"the ironic, ironic requests. carefully even dolphi","lower":"t the blithely special deposits sleep furiously re","count":157,"preSum":8478},{"ndv":157,"upper":"Tiresias nag slyly packages. slyly regular frets s","lower":"the packages nag furiously accounts. even accounts","count":157,"preSum":8635},{"ndv":157,"upper":"ts. closely even theodolites","lower":"tithes unwind quickly alongside of the slyly entic","count":157,"preSum":8792},{"ndv":157,"upper":"uickly special deposits. regular, ironic accounts ","lower":"ts. deposits haggle furiously even platelets. fina","count":157,"preSum":8949},{"ndv":157,"upper":"unts. always final packages cajole doggedly accord","lower":"uickly special packages. carefully regular package","count":157,"preSum":9106},{"ndv":157,"upper":"usly regular instructions. regular accounts accord","lower":"unts. blithely pending packages haggle thinly regu","count":157,"preSum":9263},{"ndv":157,"upper":"x-ray along the ironic deposits. quickly unusual r","lower":"usly regular requests. blithely ironic ","count":157,"preSum":9420},{"ndv":157,"upper":"y final dolphins. quickly regular packages wake fu","lower":"x. quickly ironic accounts among","count":157,"preSum":9577},{"ndv":157,"upper":"y unusual requests. carefully pending accounts ha","lower":"y final excuses haggle slyly after the regular fox","count":157,"preSum":9734},{"ndv":109,"upper":"zzle carefully. slyly ironic","lower":"y unusual warhorses. blithely final foxes among t","count":109,"preSum":9891}],"maxBucketSize":64,"type":"String","sampleRate":0.099747635} - orders.o_comment.null_count: - 0 - orders.o_comment.sample_rate: - 0.06666667 - orders.o_custkey.TOPN: - {"countArr":[3,3,3,3,3,3,3,3,3,3,3,3],"valueArr":[6473,22354,26365,53239,65206,83483,90676,103621,104314,116512,129457,134425],"type":"Int"} - orders.o_custkey.cardinality: - 212317 - orders.o_custkey.histogram: - {"buckets":[{"ndv":145,"upper":1948,"lower":23,"count":156,"preSum":0},{"ndv":146,"upper":4364,"lower":1958,"count":156,"preSum":156},{"ndv":148,"upper":6694,"lower":4375,"count":156,"preSum":312},{"ndv":149,"upper":9139,"lower":6709,"count":156,"preSum":468},{"ndv":143,"upper":11332,"lower":9142,"count":156,"preSum":624},{"ndv":144,"upper":13558,"lower":11339,"count":156,"preSum":780},{"ndv":149,"upper":15962,"lower":13580,"count":156,"preSum":936},{"ndv":143,"upper":18241,"lower":15967,"count":157,"preSum":1092},{"ndv":146,"upper":20809,"lower":18245,"count":156,"preSum":1249},{"ndv":151,"upper":23131,"lower":20833,"count":156,"preSum":1405},{"ndv":146,"upper":25594,"lower":23132,"count":156,"preSum":1561},{"ndv":148,"upper":27985,"lower":25597,"count":156,"preSum":1717},{"ndv":151,"upper":30205,"lower":27994,"count":156,"preSum":1873},{"ndv":144,"upper":32779,"lower":30218,"count":156,"preSum":2029},{"ndv":148,"upper":35083,"lower":32780,"count":156,"preSum":2185},{"ndv":148,"upper":37460,"lower":35113,"count":156,"preSum":2341},{"ndv":149,"upper":39643,"lower":37471,"count":156,"preSum":2497},{"ndv":147,"upper":42008,"lower":39691,"count":156,"preSum":2653},{"ndv":146,"upper":44275,"lower":42028,"count":156,"preSum":2809},{"ndv":153,"upper":46981,"lower":44303,"count":156,"preSum":2965},{"ndv":145,"upper":48983,"lower":46987,"count":156,"preSum":3121},{"ndv":147,"upper":51227,"lower":49007,"count":156,"preSum":3277},{"ndv":153,"upper":53875,"lower":51230,"count":156,"preSum":3433},{"ndv":148,"upper":56584,"lower":53905,"count":156,"preSum":3589},{"ndv":147,"upper":59165,"lower":56624,"count":156,"preSum":3745},{"ndv":145,"upper":61367,"lower":59209,"count":156,"preSum":3901},{"ndv":147,"upper":63508,"lower":61372,"count":156,"preSum":4057},{"ndv":150,"upper":65855,"lower":63532,"count":156,"preSum":4213},{"ndv":150,"upper":68536,"lower":65869,"count":156,"preSum":4369},{"ndv":154,"upper":70762,"lower":68542,"count":156,"preSum":4525},{"ndv":146,"upper":72853,"lower":70774,"count":156,"preSum":4681},{"ndv":153,"upper":75244,"lower":72901,"count":156,"preSum":4837},{"ndv":153,"upper":77641,"lower":75253,"count":156,"preSum":4993},{"ndv":148,"upper":80063,"lower":77644,"count":156,"preSum":5149},{"ndv":146,"upper":82564,"lower":80065,"count":156,"preSum":5305},{"ndv":147,"upper":84824,"lower":82627,"count":156,"preSum":5461},{"ndv":150,"upper":87055,"lower":84838,"count":156,"preSum":5617},{"ndv":150,"upper":89549,"lower":87061,"count":156,"preSum":5773},{"ndv":149,"upper":92108,"lower":89552,"count":156,"preSum":5929},{"ndv":147,"upper":94372,"lower":92120,"count":157,"preSum":6085},{"ndv":148,"upper":96748,"lower":94387,"count":156,"preSum":6242},{"ndv":152,"upper":99527,"lower":96772,"count":156,"preSum":6398},{"ndv":145,"upper":101530,"lower":99529,"count":156,"preSum":6554},{"ndv":150,"upper":104045,"lower":101539,"count":156,"preSum":6710},{"ndv":149,"upper":106318,"lower":104050,"count":156,"preSum":6866},{"ndv":150,"upper":108979,"lower":106324,"count":156,"preSum":7022},{"ndv":151,"upper":111385,"lower":108994,"count":157,"preSum":7178},{"ndv":149,"upper":113693,"lower":111397,"count":156,"preSum":7335},{"ndv":150,"upper":115975,"lower":113695,"count":156,"preSum":7491},{"ndv":149,"upper":117997,"lower":115978,"count":156,"preSum":7647},{"ndv":151,"upper":120319,"lower":118045,"count":156,"preSum":7803},{"ndv":151,"upper":122701,"lower":120343,"count":156,"preSum":7959},{"ndv":150,"upper":125273,"lower":122722,"count":156,"preSum":8115},{"ndv":149,"upper":127885,"lower":125300,"count":156,"preSum":8271},{"ndv":146,"upper":130084,"lower":127895,"count":156,"preSum":8427},{"ndv":148,"upper":132227,"lower":130088,"count":156,"preSum":8583},{"ndv":150,"upper":134411,"lower":132260,"count":156,"preSum":8739},{"ndv":147,"upper":136558,"lower":134419,"count":156,"preSum":8895},{"ndv":147,"upper":138706,"lower":136564,"count":157,"preSum":9051},{"ndv":148,"upper":140969,"lower":138730,"count":156,"preSum":9208},{"ndv":148,"upper":143243,"lower":140980,"count":156,"preSum":9364},{"ndv":147,"upper":145771,"lower":143260,"count":156,"preSum":9520},{"ndv":150,"upper":148112,"lower":145778,"count":156,"preSum":9676},{"ndv":127,"upper":149975,"lower":148118,"count":132,"preSum":9832}],"maxBucketSize":64,"type":"Int","sampleRate":0.099747635} - orders.o_custkey.null_count: - 0 - orders.o_custkey.sample_rate: - 0.06666667 - orders.o_orderdate.TOPN: - {"countArr":[],"valueArr":[],"type":"Date"} - orders.o_orderdate.cardinality: - 2406 - orders.o_orderdate.histogram: - {"buckets":[{"ndv":37,"upper":"1992-02-10","lower":"1992-01-01","count":163,"preSum":0},{"ndv":38,"upper":"1992-03-20","lower":"1992-02-11","count":160,"preSum":163},{"ndv":40,"upper":"1992-04-29","lower":"1992-03-21","count":163,"preSum":323},{"ndv":34,"upper":"1992-06-03","lower":"1992-04-30","count":160,"preSum":486},{"ndv":40,"upper":"1992-07-14","lower":"1992-06-04","count":158,"preSum":646},{"ndv":37,"upper":"1992-08-20","lower":"1992-07-15","count":158,"preSum":804},{"ndv":37,"upper":"1992-09-26","lower":"1992-08-21","count":162,"preSum":962},{"ndv":40,"upper":"1992-11-05","lower":"1992-09-27","count":158,"preSum":1124},{"ndv":38,"upper":"1992-12-13","lower":"1992-11-06","count":158,"preSum":1282},{"ndv":33,"upper":"1993-01-16","lower":"1992-12-14","count":157,"preSum":1440},{"ndv":41,"upper":"1993-02-26","lower":"1993-01-17","count":162,"preSum":1597},{"ndv":46,"upper":"1993-04-16","lower":"1993-02-27","count":162,"preSum":1759},{"ndv":33,"upper":"1993-05-19","lower":"1993-04-17","count":158,"preSum":1921},{"ndv":37,"upper":"1993-06-26","lower":"1993-05-20","count":161,"preSum":2079},{"ndv":34,"upper":"1993-07-30","lower":"1993-06-27","count":160,"preSum":2240},{"ndv":36,"upper":"1993-09-04","lower":"1993-07-31","count":158,"preSum":2400},{"ndv":33,"upper":"1993-10-07","lower":"1993-09-05","count":158,"preSum":2558},{"ndv":40,"upper":"1993-11-16","lower":"1993-10-08","count":160,"preSum":2716},{"ndv":40,"upper":"1993-12-26","lower":"1993-11-17","count":159,"preSum":2876},{"ndv":33,"upper":"1994-01-29","lower":"1993-12-27","count":160,"preSum":3035},{"ndv":37,"upper":"1994-03-08","lower":"1994-01-30","count":157,"preSum":3195},{"ndv":36,"upper":"1994-04-15","lower":"1994-03-09","count":161,"preSum":3352},{"ndv":41,"upper":"1994-05-27","lower":"1994-04-16","count":161,"preSum":3513},{"ndv":36,"upper":"1994-07-02","lower":"1994-05-28","count":157,"preSum":3674},{"ndv":39,"upper":"1994-08-11","lower":"1994-07-03","count":158,"preSum":3831},{"ndv":37,"upper":"1994-09-19","lower":"1994-08-12","count":158,"preSum":3989},{"ndv":36,"upper":"1994-10-25","lower":"1994-09-20","count":158,"preSum":4147},{"ndv":39,"upper":"1994-12-03","lower":"1994-10-26","count":161,"preSum":4305},{"ndv":35,"upper":"1995-01-09","lower":"1994-12-04","count":157,"preSum":4466},{"ndv":40,"upper":"1995-02-19","lower":"1995-01-10","count":158,"preSum":4623},{"ndv":41,"upper":"1995-04-02","lower":"1995-02-20","count":160,"preSum":4781},{"ndv":41,"upper":"1995-05-14","lower":"1995-04-03","count":159,"preSum":4941},{"ndv":39,"upper":"1995-06-24","lower":"1995-05-15","count":159,"preSum":5100},{"ndv":39,"upper":"1995-08-03","lower":"1995-06-25","count":157,"preSum":5259},{"ndv":36,"upper":"1995-09-08","lower":"1995-08-04","count":160,"preSum":5416},{"ndv":36,"upper":"1995-10-14","lower":"1995-09-09","count":162,"preSum":5576},{"ndv":37,"upper":"1995-11-20","lower":"1995-10-15","count":161,"preSum":5738},{"ndv":32,"upper":"1995-12-23","lower":"1995-11-21","count":159,"preSum":5899},{"ndv":39,"upper":"1996-01-31","lower":"1995-12-24","count":158,"preSum":6058},{"ndv":39,"upper":"1996-03-10","lower":"1996-02-01","count":158,"preSum":6216},{"ndv":38,"upper":"1996-04-18","lower":"1996-03-11","count":162,"preSum":6374},{"ndv":36,"upper":"1996-05-24","lower":"1996-04-19","count":161,"preSum":6536},{"ndv":40,"upper":"1996-07-04","lower":"1996-05-25","count":159,"preSum":6697},{"ndv":42,"upper":"1996-08-15","lower":"1996-07-05","count":159,"preSum":6856},{"ndv":34,"upper":"1996-09-19","lower":"1996-08-16","count":158,"preSum":7015},{"ndv":38,"upper":"1996-10-28","lower":"1996-09-21","count":157,"preSum":7173},{"ndv":41,"upper":"1996-12-08","lower":"1996-10-29","count":166,"preSum":7330},{"ndv":35,"upper":"1997-01-13","lower":"1996-12-09","count":157,"preSum":7496},{"ndv":34,"upper":"1997-02-18","lower":"1997-01-14","count":157,"preSum":7653},{"ndv":40,"upper":"1997-03-30","lower":"1997-02-19","count":157,"preSum":7810},{"ndv":43,"upper":"1997-05-12","lower":"1997-03-31","count":161,"preSum":7967},{"ndv":36,"upper":"1997-06-17","lower":"1997-05-13","count":160,"preSum":8128},{"ndv":38,"upper":"1997-07-25","lower":"1997-06-18","count":161,"preSum":8288},{"ndv":39,"upper":"1997-09-03","lower":"1997-07-26","count":159,"preSum":8449},{"ndv":35,"upper":"1997-10-08","lower":"1997-09-04","count":158,"preSum":8608},{"ndv":36,"upper":"1997-11-13","lower":"1997-10-09","count":158,"preSum":8766},{"ndv":39,"upper":"1997-12-22","lower":"1997-11-14","count":162,"preSum":8924},{"ndv":38,"upper":"1998-01-29","lower":"1997-12-23","count":159,"preSum":9086},{"ndv":36,"upper":"1998-03-07","lower":"1998-01-30","count":159,"preSum":9245},{"ndv":43,"upper":"1998-04-19","lower":"1998-03-08","count":157,"preSum":9404},{"ndv":39,"upper":"1998-05-28","lower":"1998-04-20","count":160,"preSum":9561},{"ndv":35,"upper":"1998-07-02","lower":"1998-05-29","count":160,"preSum":9721},{"ndv":31,"upper":"1998-08-02","lower":"1998-07-03","count":119,"preSum":9881}],"maxBucketSize":64,"type":"Date","sampleRate":0.099747635} - orders.o_orderdate.null_count: - 0 - orders.o_orderdate.sample_rate: - 0.06666667 - orders.o_orderkey.TOPN: - {"countArr":[],"valueArr":[],"type":"Int"} - orders.o_orderkey.cardinality: - 1485940 - orders.o_orderkey.histogram: - {"buckets":[{"ndv":157,"upper":94657,"lower":996,"count":157,"preSum":0},{"ndv":157,"upper":191397,"lower":95554,"count":157,"preSum":157},{"ndv":157,"upper":288449,"lower":191431,"count":157,"preSum":314},{"ndv":157,"upper":390023,"lower":288961,"count":157,"preSum":471},{"ndv":157,"upper":475111,"lower":390598,"count":157,"preSum":628},{"ndv":157,"upper":576994,"lower":475329,"count":157,"preSum":785},{"ndv":157,"upper":660352,"lower":577698,"count":157,"preSum":942},{"ndv":157,"upper":752707,"lower":660962,"count":157,"preSum":1099},{"ndv":157,"upper":860931,"lower":754272,"count":157,"preSum":1256},{"ndv":157,"upper":955392,"lower":862948,"count":157,"preSum":1413},{"ndv":157,"upper":1050593,"lower":955456,"count":157,"preSum":1570},{"ndv":157,"upper":1132836,"lower":1050787,"count":157,"preSum":1727},{"ndv":157,"upper":1249572,"lower":1134081,"count":157,"preSum":1884},{"ndv":157,"upper":1339809,"lower":1250405,"count":157,"preSum":2041},{"ndv":157,"upper":1443143,"lower":1340288,"count":157,"preSum":2198},{"ndv":157,"upper":1531873,"lower":1443300,"count":157,"preSum":2355},{"ndv":157,"upper":1623877,"lower":1534951,"count":157,"preSum":2512},{"ndv":157,"upper":1701666,"lower":1624514,"count":157,"preSum":2669},{"ndv":157,"upper":1789635,"lower":1703108,"count":157,"preSum":2826},{"ndv":157,"upper":1912672,"lower":1790277,"count":157,"preSum":2983},{"ndv":157,"upper":2006595,"lower":1913575,"count":157,"preSum":3140},{"ndv":157,"upper":2117479,"lower":2007010,"count":157,"preSum":3297},{"ndv":157,"upper":2205153,"lower":2117574,"count":157,"preSum":3454},{"ndv":157,"upper":2310309,"lower":2205633,"count":157,"preSum":3611},{"ndv":157,"upper":2407489,"lower":2310754,"count":157,"preSum":3768},{"ndv":157,"upper":2511015,"lower":2408039,"count":157,"preSum":3925},{"ndv":157,"upper":2611009,"lower":2511906,"count":157,"preSum":4082},{"ndv":157,"upper":2697863,"lower":2611367,"count":157,"preSum":4239},{"ndv":157,"upper":2779777,"lower":2697920,"count":157,"preSum":4396},{"ndv":157,"upper":2869474,"lower":2780034,"count":157,"preSum":4553},{"ndv":157,"upper":2962276,"lower":2869701,"count":157,"preSum":4710},{"ndv":157,"upper":3056162,"lower":2963297,"count":157,"preSum":4867},{"ndv":157,"upper":3149412,"lower":3056326,"count":157,"preSum":5024},{"ndv":157,"upper":3235777,"lower":3150081,"count":157,"preSum":5181},{"ndv":157,"upper":3335874,"lower":3237509,"count":157,"preSum":5338},{"ndv":157,"upper":3443268,"lower":3335877,"count":157,"preSum":5495},{"ndv":157,"upper":3536961,"lower":3443938,"count":157,"preSum":5652},{"ndv":157,"upper":3631779,"lower":3536999,"count":157,"preSum":5809},{"ndv":157,"upper":3744455,"lower":3634053,"count":157,"preSum":5966},{"ndv":157,"upper":3821380,"lower":3744928,"count":157,"preSum":6123},{"ndv":157,"upper":3911237,"lower":3821600,"count":157,"preSum":6280},{"ndv":157,"upper":4006176,"lower":3911878,"count":157,"preSum":6437},{"ndv":157,"upper":4093701,"lower":4006434,"count":157,"preSum":6594},{"ndv":157,"upper":4191910,"lower":4095010,"count":157,"preSum":6751},{"ndv":157,"upper":4295491,"lower":4192291,"count":157,"preSum":6908},{"ndv":157,"upper":4376708,"lower":4295877,"count":157,"preSum":7065},{"ndv":157,"upper":4466146,"lower":4378435,"count":157,"preSum":7222},{"ndv":157,"upper":4562051,"lower":4466624,"count":157,"preSum":7379},{"ndv":157,"upper":4651138,"lower":4564064,"count":157,"preSum":7536},{"ndv":157,"upper":4765120,"lower":4651813,"count":157,"preSum":7693},{"ndv":157,"upper":4869761,"lower":4765344,"count":157,"preSum":7850},{"ndv":157,"upper":4959110,"lower":4870243,"count":157,"preSum":8007},{"ndv":157,"upper":5049507,"lower":4959459,"count":157,"preSum":8164},{"ndv":157,"upper":5131590,"lower":5049702,"count":157,"preSum":8321},{"ndv":157,"upper":5211430,"lower":5132064,"count":157,"preSum":8478},{"ndv":157,"upper":5313286,"lower":5212835,"count":157,"preSum":8635},{"ndv":157,"upper":5398245,"lower":5313893,"count":157,"preSum":8792},{"ndv":157,"upper":5491524,"lower":5398400,"count":157,"preSum":8949},{"ndv":157,"upper":5594662,"lower":5491750,"count":157,"preSum":9106},{"ndv":157,"upper":5696160,"lower":5595072,"count":157,"preSum":9263},{"ndv":157,"upper":5780672,"lower":5696261,"count":157,"preSum":9420},{"ndv":157,"upper":5861668,"lower":5780930,"count":157,"preSum":9577},{"ndv":157,"upper":5945188,"lower":5861799,"count":157,"preSum":9734},{"ndv":109,"upper":5999172,"lower":5945379,"count":109,"preSum":9891}],"maxBucketSize":64,"type":"Int","sampleRate":0.099747635} - orders.o_orderkey.null_count: - 0 - orders.o_orderkey.sample_rate: - 0.06666667 - orders.o_orderpriority.TOPN: - {"countArr":[2047,1984,1995,1934,2040],"valueArr":["1-URGENT","2-HIGH","3-MEDIUM","4-NOT SPECIFIED","5-LOW"],"type":"String"} - orders.o_orderpriority.cardinality: - 5 - orders.o_orderpriority.histogram: - {"buckets":[],"maxBucketSize":64,"type":"String","sampleRate":0.099747635} - orders.o_orderpriority.null_count: - 0 - orders.o_orderpriority.sample_rate: - 0.06666667 - orders.o_orderstatus.TOPN: - {"countArr":[4882,4877,241],"valueArr":["F","O","P"],"type":"String"} - orders.o_orderstatus.cardinality: - 3 - orders.o_orderstatus.histogram: - {"buckets":[],"maxBucketSize":64,"type":"String","sampleRate":0.099747635} - orders.o_orderstatus.null_count: - 0 - orders.o_orderstatus.sample_rate: - 0.06666667 - orders.o_shippriority.TOPN: - {"countArr":[10000],"valueArr":[0],"type":"Int"} - orders.o_shippriority.cardinality: - 1 - orders.o_shippriority.histogram: - {"buckets":[],"maxBucketSize":64,"type":"Int","sampleRate":0.099747635} - orders.o_shippriority.null_count: - 0 - orders.o_shippriority.sample_rate: - 0.06666667 - orders.o_totalprice.TOPN: - {"countArr":[],"valueArr":[],"type":"Double"} - orders.o_totalprice.cardinality: - 1484031 - orders.o_totalprice.histogram: - {"buckets":[{"ndv":157,"upper":8228.69,"lower":857.71,"count":157,"preSum":0},{"ndv":157,"upper":14667.76,"lower":8237.46,"count":157,"preSum":157},{"ndv":157,"upper":20622.45,"lower":14683.39,"count":157,"preSum":314},{"ndv":157,"upper":26376.73,"lower":20623.07,"count":157,"preSum":471},{"ndv":157,"upper":31253.86,"lower":26408.49,"count":157,"preSum":628},{"ndv":157,"upper":36460.23,"lower":31322.65,"count":157,"preSum":785},{"ndv":157,"upper":40811.71,"lower":36462.74,"count":157,"preSum":942},{"ndv":157,"upper":45113.73,"lower":40812.13,"count":157,"preSum":1099},{"ndv":157,"upper":49420.69,"lower":45115.02,"count":157,"preSum":1256},{"ndv":157,"upper":53687.32,"lower":49428.55,"count":157,"preSum":1413},{"ndv":157,"upper":57466.01,"lower":53728.3,"count":157,"preSum":1570},{"ndv":157,"upper":61378.75,"lower":57478.72,"count":157,"preSum":1727},{"ndv":157,"upper":65367.24,"lower":61430.49,"count":157,"preSum":1884},{"ndv":157,"upper":69166.98,"lower":65437.78,"count":157,"preSum":2041},{"ndv":157,"upper":72892.29,"lower":69178.45,"count":157,"preSum":2198},{"ndv":157,"upper":77046.52,"lower":72983.55,"count":157,"preSum":2355},{"ndv":157,"upper":81473.62,"lower":77051.77,"count":157,"preSum":2512},{"ndv":157,"upper":85677.54,"lower":81474.87,"count":157,"preSum":2669},{"ndv":157,"upper":89958.57,"lower":85682.18,"count":157,"preSum":2826},{"ndv":157,"upper":93989.89,"lower":90038.12,"count":157,"preSum":2983},{"ndv":157,"upper":98123.99,"lower":94021.12,"count":157,"preSum":3140},{"ndv":157,"upper":102678.36,"lower":98125.35,"count":157,"preSum":3297},{"ndv":157,"upper":106668.57,"lower":102688.78,"count":157,"preSum":3454},{"ndv":157,"upper":110855.36,"lower":106681.76,"count":157,"preSum":3611},{"ndv":157,"upper":116292.19,"lower":110858.76,"count":157,"preSum":3768},{"ndv":157,"upper":120407.29,"lower":116302.31,"count":157,"preSum":3925},{"ndv":157,"upper":124332.55,"lower":120427.31,"count":157,"preSum":4082},{"ndv":157,"upper":128051.87,"lower":124334.61,"count":157,"preSum":4239},{"ndv":157,"upper":132670.6,"lower":128076.7,"count":157,"preSum":4396},{"ndv":157,"upper":137011.11,"lower":132703.42,"count":157,"preSum":4553},{"ndv":157,"upper":141202.73,"lower":137015.95,"count":157,"preSum":4710},{"ndv":157,"upper":145182.57,"lower":141212.77,"count":157,"preSum":4867},{"ndv":157,"upper":149419.35,"lower":145205.3,"count":157,"preSum":5024},{"ndv":157,"upper":153585.2,"lower":149430.95,"count":157,"preSum":5181},{"ndv":157,"upper":158265.68,"lower":153617.08,"count":157,"preSum":5338},{"ndv":157,"upper":162182,"lower":158269.17,"count":157,"preSum":5495},{"ndv":157,"upper":166737.42,"lower":162207.66,"count":157,"preSum":5652},{"ndv":157,"upper":171077.43,"lower":166773.78,"count":157,"preSum":5809},{"ndv":157,"upper":175265.69,"lower":171132.98,"count":157,"preSum":5966},{"ndv":157,"upper":179607.03,"lower":175281.87,"count":157,"preSum":6123},{"ndv":157,"upper":184652.29,"lower":179607.42,"count":157,"preSum":6280},{"ndv":157,"upper":188601.47,"lower":184654.68,"count":157,"preSum":6437},{"ndv":157,"upper":192915.67,"lower":188604.35,"count":157,"preSum":6594},{"ndv":157,"upper":197864.75,"lower":192922.67,"count":157,"preSum":6751},{"ndv":157,"upper":202966.19,"lower":197942.35,"count":157,"preSum":6908},{"ndv":157,"upper":207821.5,"lower":202973.14,"count":157,"preSum":7065},{"ndv":157,"upper":213047.33,"lower":207861.42,"count":157,"preSum":7222},{"ndv":157,"upper":217881.4,"lower":213100.51,"count":157,"preSum":7379},{"ndv":157,"upper":222863.8,"lower":217928.31,"count":157,"preSum":7536},{"ndv":157,"upper":228099.73,"lower":222881.97,"count":157,"preSum":7693},{"ndv":157,"upper":234722.33,"lower":228224.09,"count":157,"preSum":7850},{"ndv":157,"upper":240205.74,"lower":234730.05,"count":157,"preSum":8007},{"ndv":157,"upper":245298.92,"lower":240219.32,"count":157,"preSum":8164},{"ndv":157,"upper":251341.79,"lower":245319.89,"count":157,"preSum":8321},{"ndv":157,"upper":257800.19,"lower":251345.24,"count":157,"preSum":8478},{"ndv":157,"upper":263856.08,"lower":257892.51,"count":157,"preSum":8635},{"ndv":157,"upper":270636.4,"lower":263861.36,"count":157,"preSum":8792},{"ndv":157,"upper":279185.51,"lower":270684.58,"count":157,"preSum":8949},{"ndv":157,"upper":288885.41,"lower":279344.62,"count":157,"preSum":9106},{"ndv":157,"upper":297790.9,"lower":288903.21,"count":157,"preSum":9263},{"ndv":157,"upper":310551.81,"lower":297841.17,"count":157,"preSum":9420},{"ndv":157,"upper":327587.35,"lower":310558.91,"count":157,"preSum":9577},{"ndv":157,"upper":355864.12,"lower":327694.81,"count":157,"preSum":9734},{"ndv":109,"upper":461657.12,"lower":355934.04,"count":109,"preSum":9891}],"maxBucketSize":64,"type":"Double","sampleRate":0.099747635} - orders.o_totalprice.null_count: - 0 - orders.o_totalprice.sample_rate: - 0.06666667 - part.p_brand.TOPN: - {"countArr":[391,400,378,394,391,389,392,396,354,387,400,385,406,360],"valueArr":["Brand#11","Brand#13","Brand#14","Brand#15","Brand#22","Brand#23","Brand#24","Brand#34","Brand#42","Brand#43","Brand#51","Brand#52","Brand#54","Brand#55"],"type":"String"} - part.p_brand.cardinality: - 25 - part.p_brand.histogram: - {"buckets":[{"ndv":1,"upper":"Brand#12","lower":"Brand#12","count":410,"preSum":0},{"ndv":1,"upper":"Brand#21","lower":"Brand#21","count":436,"preSum":410},{"ndv":1,"upper":"Brand#25","lower":"Brand#25","count":418,"preSum":846},{"ndv":1,"upper":"Brand#31","lower":"Brand#31","count":432,"preSum":1264},{"ndv":1,"upper":"Brand#32","lower":"Brand#32","count":411,"preSum":1696},{"ndv":1,"upper":"Brand#33","lower":"Brand#33","count":409,"preSum":2107},{"ndv":1,"upper":"Brand#35","lower":"Brand#35","count":435,"preSum":2516},{"ndv":1,"upper":"Brand#41","lower":"Brand#41","count":353,"preSum":2951},{"ndv":1,"upper":"Brand#44","lower":"Brand#44","count":424,"preSum":3304},{"ndv":1,"upper":"Brand#45","lower":"Brand#45","count":442,"preSum":3728},{"ndv":1,"upper":"Brand#53","lower":"Brand#53","count":407,"preSum":4170}],"maxBucketSize":64,"type":"String","sampleRate":0.100484334} - part.p_brand.null_count: - 0 - part.p_brand.sample_rate: - 0.49872825 - part.p_comment.TOPN: - {"countArr":[],"valueArr":[],"type":"String"} - part.p_comment.cardinality: - 163907 - part.p_comment.histogram: - {"buckets":[{"ndv":138,"upper":" blit","lower":" about","count":157,"preSum":0},{"ndv":131,"upper":" depende","lower":" blith","count":157,"preSum":157},{"ndv":129,"upper":" final pa","lower":" dependenc","count":157,"preSum":314},{"ndv":134,"upper":" idly above the d","lower":" final package","count":157,"preSum":471},{"ndv":127,"upper":" packages. blithely ","lower":" inside th","count":157,"preSum":628},{"ndv":130,"upper":" regular requests. bl","lower":" packages. final plat","count":157,"preSum":785},{"ndv":127,"upper":" specia","lower":" regular requests. t","count":157,"preSum":942},{"ndv":143,"upper":" unusual pac","lower":" special ","count":157,"preSum":1099},{"ndv":144,"upper":". fluf","lower":" unusual packages are","count":157,"preSum":1256},{"ndv":143,"upper":"accounts. slyly ironic","lower":". fluffily ","count":157,"preSum":1413},{"ndv":141,"upper":"ake along the","lower":"accounts? blithely","count":157,"preSum":1570},{"ndv":144,"upper":"ang furiously. ","lower":"ake bl","count":157,"preSum":1727},{"ndv":142,"upper":"as wake accord","lower":"ang quic","count":157,"preSum":1884},{"ndv":136,"upper":"boost","lower":"as wake along the qui","count":157,"preSum":2041},{"ndv":133,"upper":"carefully special fox","lower":"boost a","count":157,"preSum":2198},{"ndv":137,"upper":"ckly regula","lower":"carefully unusua","count":157,"preSum":2355},{"ndv":141,"upper":"d the fluffily","lower":"ckly regular theodolit","count":157,"preSum":2512},{"ndv":143,"upper":"dolphins. sly foxes of","lower":"d the ironic packages ","count":157,"preSum":2669},{"ndv":145,"upper":"e quickly regula","lower":"doubt qui","count":157,"preSum":2826},{"ndv":151,"upper":"eep a","lower":"e quickly regular ","count":157,"preSum":2983},{"ndv":140,"upper":"ely blith","lower":"eep against the furio","count":157,"preSum":3140},{"ndv":151,"upper":"eodol","lower":"ely blithely bold","count":158,"preSum":3297},{"ndv":137,"upper":"es among the unus","lower":"eodoli","count":157,"preSum":3455},{"ndv":150,"upper":"ests. slyly regular re","lower":"es are abo","count":157,"preSum":3612},{"ndv":147,"upper":"final fox","lower":"ests: carefully regul","count":157,"preSum":3769},{"ndv":142,"upper":"fully unusual d","lower":"final foxe","count":157,"preSum":3926},{"ndv":141,"upper":"ges? care","lower":"fully unusual theod","count":157,"preSum":4083},{"ndv":146,"upper":"he enticing instru","lower":"ges? quickly even ","count":157,"preSum":4240},{"ndv":146,"upper":"ic asymp","lower":"he even deposits. blit","count":157,"preSum":4397},{"ndv":148,"upper":"ily even plate","lower":"ic asymptotes. furiou","count":157,"preSum":4554},{"ndv":143,"upper":"integrate fluff","lower":"ily express ideas alon","count":157,"preSum":4711},{"ndv":134,"upper":"ites.","lower":"into b","count":157,"preSum":4868},{"ndv":146,"upper":"ke carefully after the","lower":"ites. even packages ","count":157,"preSum":5025},{"ndv":144,"upper":"lar de","lower":"ke carefully ca","count":157,"preSum":5182},{"ndv":153,"upper":"lithe","lower":"lar depos","count":157,"preSum":5339},{"ndv":143,"upper":"ly accounts. bli","lower":"lithel","count":157,"preSum":5496},{"ndv":125,"upper":"ly pending foxes","lower":"ly across the ","count":157,"preSum":5653},{"ndv":136,"upper":"lyly unusu","lower":"ly pending inst","count":157,"preSum":5810},{"ndv":152,"upper":"nd the","lower":"lyly unusua","count":157,"preSum":5967},{"ndv":146,"upper":"nic theodolites","lower":"nd the carefully pe","count":157,"preSum":6124},{"ndv":145,"upper":"nts. blithely f","lower":"nic theodolites are qu","count":157,"preSum":6281},{"ndv":154,"upper":"olites. even","lower":"nts. bold, fi","count":157,"preSum":6438},{"ndv":144,"upper":"oss the","lower":"olites. final, reg","count":158,"preSum":6595},{"ndv":140,"upper":"ow dependencies","lower":"oss the blit","count":157,"preSum":6753},{"ndv":136,"upper":"pinto beans pro","lower":"ow foxes. packages ","count":157,"preSum":6910},{"ndv":138,"upper":"quickly pendin","lower":"pinto beans.","count":157,"preSum":7067},{"ndv":142,"upper":"refully reg","lower":"quickly pending p","count":157,"preSum":7224},{"ndv":131,"upper":"riously ironic pin","lower":"refully regular depo","count":157,"preSum":7381},{"ndv":145,"upper":"s against the t","lower":"riously ironic t","count":157,"preSum":7538},{"ndv":143,"upper":"s nag. packages","lower":"s alon","count":157,"preSum":7695},{"ndv":146,"upper":"s. ironic, bold pack","lower":"s need to are into ","count":157,"preSum":7852},{"ndv":148,"upper":"sly eve","lower":"s. never regu","count":157,"preSum":8009},{"ndv":141,"upper":"st bli","lower":"sly even","count":157,"preSum":8166},{"ndv":153,"upper":"taphs across the bl","lower":"st ca","count":157,"preSum":8323},{"ndv":152,"upper":"thely ","lower":"te accor","count":161,"preSum":8480},{"ndv":144,"upper":"tructions wake i","lower":"thely acc","count":157,"preSum":8641},{"ndv":145,"upper":"ts. regular fox","lower":"tructions. ","count":157,"preSum":8798},{"ndv":138,"upper":"ul packages. careful","lower":"ts. ruthlessly r","count":157,"preSum":8955},{"ndv":145,"upper":"unts mold blit","lower":"ul requests wake whit","count":157,"preSum":9112},{"ndv":143,"upper":"usly pendi","lower":"unts nag blithely wit","count":157,"preSum":9269},{"ndv":146,"upper":"xcuses ","lower":"usly pending accounts","count":157,"preSum":9426},{"ndv":148,"upper":"y final ","lower":"xcuses after","count":160,"preSum":9583},{"ndv":128,"upper":"y unusual plate","lower":"y final a","count":157,"preSum":9743},{"ndv":94,"upper":"zzle quickly ironic","lower":"y unusual requests wak","count":100,"preSum":9900}],"maxBucketSize":64,"type":"String","sampleRate":0.100484334} - part.p_comment.null_count: - 0 - part.p_comment.sample_rate: - 0.49872825 - part.p_container.TOPN: - {"countArr":[237,237,217,241,239,236,235,239,229,244,223,241,245,230],"valueArr":["JUMBO DRUM","LG BAG","LG CAN","LG PKG","MED BAG","MED JAR","MED PACK","SM BAG","SM CAN","SM PACK","WRAP BAG","WRAP BOX","WRAP JAR","WRAP PKG"],"type":"String"} - part.p_container.cardinality: - 40 - part.p_container.histogram: - {"buckets":[{"ndv":1,"upper":"JUMBO BAG","lower":"JUMBO BAG","count":247,"preSum":0},{"ndv":1,"upper":"JUMBO BOX","lower":"JUMBO BOX","count":252,"preSum":247},{"ndv":1,"upper":"JUMBO CAN","lower":"JUMBO CAN","count":256,"preSum":499},{"ndv":1,"upper":"JUMBO CASE","lower":"JUMBO CASE","count":253,"preSum":755},{"ndv":1,"upper":"JUMBO JAR","lower":"JUMBO JAR","count":255,"preSum":1008},{"ndv":1,"upper":"JUMBO PACK","lower":"JUMBO PACK","count":260,"preSum":1263},{"ndv":1,"upper":"JUMBO PKG","lower":"JUMBO PKG","count":258,"preSum":1523},{"ndv":1,"upper":"LG BOX","lower":"LG BOX","count":276,"preSum":1781},{"ndv":1,"upper":"LG CASE","lower":"LG CASE","count":260,"preSum":2057},{"ndv":1,"upper":"LG DRUM","lower":"LG DRUM","count":202,"preSum":2317},{"ndv":1,"upper":"LG JAR","lower":"LG JAR","count":261,"preSum":2519},{"ndv":1,"upper":"LG PACK","lower":"LG PACK","count":246,"preSum":2780},{"ndv":1,"upper":"MED BOX","lower":"MED BOX","count":285,"preSum":3026},{"ndv":1,"upper":"MED CAN","lower":"MED CAN","count":260,"preSum":3311},{"ndv":1,"upper":"MED CASE","lower":"MED CASE","count":255,"preSum":3571},{"ndv":1,"upper":"MED DRUM","lower":"MED DRUM","count":246,"preSum":3826},{"ndv":1,"upper":"MED PKG","lower":"MED PKG","count":253,"preSum":4072},{"ndv":1,"upper":"SM BOX","lower":"SM BOX","count":270,"preSum":4325},{"ndv":1,"upper":"SM CASE","lower":"SM CASE","count":257,"preSum":4595},{"ndv":1,"upper":"SM DRUM","lower":"SM DRUM","count":269,"preSum":4852},{"ndv":1,"upper":"SM JAR","lower":"SM JAR","count":258,"preSum":5121},{"ndv":1,"upper":"SM PKG","lower":"SM PKG","count":261,"preSum":5379},{"ndv":1,"upper":"WRAP CAN","lower":"WRAP CAN","count":263,"preSum":5640},{"ndv":1,"upper":"WRAP CASE","lower":"WRAP CASE","count":257,"preSum":5903},{"ndv":1,"upper":"WRAP DRUM","lower":"WRAP DRUM","count":267,"preSum":6160},{"ndv":1,"upper":"WRAP PACK","lower":"WRAP PACK","count":280,"preSum":6427}],"maxBucketSize":64,"type":"String","sampleRate":0.100484334} - part.p_container.null_count: - 0 - part.p_container.sample_rate: - 0.49872825 - part.p_mfgr.TOPN: - {"countArr":[2035,1895,1993,2023,2054],"valueArr":["Manufacturer#1","Manufacturer#2","Manufacturer#3","Manufacturer#4","Manufacturer#5"],"type":"String"} - part.p_mfgr.cardinality: - 5 - part.p_mfgr.histogram: - {"buckets":[],"maxBucketSize":64,"type":"String","sampleRate":0.100484334} - part.p_mfgr.null_count: - 0 - part.p_mfgr.sample_rate: - 0.49872825 - part.p_name.TOPN: - {"countArr":[],"valueArr":[],"type":"String"} - part.p_name.cardinality: - 197712 - part.p_name.histogram: - {"buckets":[{"ndv":157,"upper":"antique lace cornsilk burlywood beige","lower":"almond antique lawn lime misty","count":157,"preSum":0},{"ndv":157,"upper":"aquamarine yellow lemon steel medium","lower":"antique lavender turquoise black lawn","count":157,"preSum":157},{"ndv":157,"upper":"beige olive frosted indian violet","lower":"azure almond light frosted misty","count":157,"preSum":314},{"ndv":157,"upper":"black chiffon floral dark frosted","lower":"beige orange grey peach lavender","count":157,"preSum":471},{"ndv":157,"upper":"blanched peach azure drab cream","lower":"black chocolate medium misty deep","count":157,"preSum":628},{"ndv":157,"upper":"blue royal light seashell orchid","lower":"blanched peach green cream steel","count":157,"preSum":785},{"ndv":157,"upper":"brown burnished ghost medium almond","lower":"blue seashell coral indian lace","count":157,"preSum":942},{"ndv":157,"upper":"burlywood metallic moccasin blush saddle","lower":"brown chartreuse cyan pink peru","count":157,"preSum":1099},{"ndv":157,"upper":"chartreuse chiffon lavender khaki lime","lower":"burlywood metallic violet aquamarine salmon","count":157,"preSum":1256},{"ndv":157,"upper":"chiffon green frosted peach mint","lower":"chartreuse chiffon saddle rosy rose","count":157,"preSum":1413},{"ndv":157,"upper":"chocolate sienna papaya plum almond","lower":"chiffon grey khaki wheat orange","count":157,"preSum":1570},{"ndv":157,"upper":"cornflower grey coral maroon beige","lower":"chocolate sienna slate smoke lemon","count":157,"preSum":1727},{"ndv":157,"upper":"cornsilk royal spring orange cornflower","lower":"cornflower khaki green bisque chartreuse","count":157,"preSum":1884},{"ndv":157,"upper":"cyan floral sky gainsboro white","lower":"cornsilk saddle antique grey lawn","count":157,"preSum":2041},{"ndv":157,"upper":"dark orange plum pale dodger","lower":"cyan floral thistle dim blue","count":157,"preSum":2198},{"ndv":157,"upper":"dim bisque white pale orange","lower":"dark orange thistle goldenrod midnight","count":157,"preSum":2355},{"ndv":157,"upper":"dodger frosted black mint rosy","lower":"dim blue cyan powder black","count":157,"preSum":2512},{"ndv":157,"upper":"drab royal navy cream maroon","lower":"dodger frosted chocolate linen aquamarine","count":157,"preSum":2669},{"ndv":157,"upper":"floral hot aquamarine tan saddle","lower":"drab salmon lime sky plum","count":157,"preSum":2826},{"ndv":157,"upper":"forest sandy purple chiffon saddle","lower":"floral indian misty dodger orange","count":157,"preSum":2983},{"ndv":157,"upper":"gainsboro chiffon mint hot ghost","lower":"forest sandy salmon lace sienna","count":157,"preSum":3140},{"ndv":157,"upper":"ghost peach black misty saddle","lower":"gainsboro chiffon peach spring slate","count":157,"preSum":3297},{"ndv":157,"upper":"green azure drab lawn red","lower":"ghost plum orange indian forest","count":157,"preSum":3454},{"ndv":157,"upper":"grey navajo blue goldenrod dim","lower":"green beige azure frosted black","count":157,"preSum":3611},{"ndv":157,"upper":"hot burlywood cream frosted green","lower":"grey navy gainsboro blush black","count":157,"preSum":3768},{"ndv":157,"upper":"indian gainsboro thistle sienna violet","lower":"hot burlywood grey chartreuse sky","count":157,"preSum":3925},{"ndv":157,"upper":"ivory smoke floral midnight spring","lower":"indian goldenrod rose green lime","count":157,"preSum":4082},{"ndv":157,"upper":"lace chocolate bisque light dark","lower":"ivory smoke navy cornsilk dark","count":157,"preSum":4239},{"ndv":157,"upper":"lavender powder navajo purple mint","lower":"lace chocolate blanched misty azure","count":157,"preSum":4396},{"ndv":157,"upper":"lemon magenta beige frosted sky","lower":"lavender rose goldenrod aquamarine sandy","count":157,"preSum":4553},{"ndv":157,"upper":"lime azure cornflower khaki peru","lower":"lemon medium khaki peru floral","count":157,"preSum":4710},{"ndv":157,"upper":"linen lime lace purple antique","lower":"lime beige black blush seashell","count":157,"preSum":4867},{"ndv":157,"upper":"magenta tan chartreuse turquoise rosy","lower":"linen lime midnight blue olive","count":157,"preSum":5024},{"ndv":157,"upper":"medium lace azure metallic almond","lower":"magenta tan lemon linen frosted","count":157,"preSum":5181},{"ndv":157,"upper":"metallic steel ghost lemon spring","lower":"medium lawn gainsboro snow metallic","count":157,"preSum":5338},{"ndv":157,"upper":"mint deep wheat grey moccasin","lower":"metallic steel smoke midnight seashell","count":157,"preSum":5495},{"ndv":157,"upper":"misty red powder pale puff","lower":"mint dim royal chiffon khaki","count":157,"preSum":5652},{"ndv":157,"upper":"navajo deep azure pink honeydew","lower":"misty rose peach antique lemon","count":157,"preSum":5809},{"ndv":157,"upper":"navy magenta lawn midnight cornflower","lower":"navajo deep orchid yellow thistle","count":157,"preSum":5966},{"ndv":157,"upper":"olive violet papaya brown blue","lower":"navy maroon salmon goldenrod magenta","count":157,"preSum":6123},{"ndv":157,"upper":"orchid frosted lawn orange wheat","lower":"olive yellow peru orchid mint","count":157,"preSum":6280},{"ndv":157,"upper":"pale smoke khaki sandy blush","lower":"orchid gainsboro tomato green dark","count":157,"preSum":6437},{"ndv":157,"upper":"peach forest azure coral navajo","lower":"pale smoke puff navy salmon","count":157,"preSum":6594},{"ndv":157,"upper":"peru rose sandy tomato antique","lower":"peach forest bisque medium moccasin","count":157,"preSum":6751},{"ndv":157,"upper":"plum chocolate bisque chartreuse dim","lower":"peru saddle almond orange frosted","count":157,"preSum":6908},{"ndv":157,"upper":"powder lime purple chartreuse ivory","lower":"plum chocolate indian chartreuse lace","count":157,"preSum":7065},{"ndv":157,"upper":"puff spring tomato aquamarine goldenrod","lower":"powder linen indian spring burnished","count":157,"preSum":7222},{"ndv":157,"upper":"red green aquamarine plum dark","lower":"puff steel lawn cornflower misty","count":157,"preSum":7379},{"ndv":157,"upper":"rose tan yellow drab royal","lower":"red green spring linen dim","count":157,"preSum":7536},{"ndv":157,"upper":"royal dim antique bisque maroon","lower":"rose turquoise brown white peru","count":157,"preSum":7693},{"ndv":157,"upper":"saddle puff cornsilk smoke pink","lower":"royal dim dark chocolate metallic","count":157,"preSum":7850},{"ndv":157,"upper":"sandy aquamarine peru blue saddle","lower":"saddle purple gainsboro dodger salmon","count":157,"preSum":8007},{"ndv":157,"upper":"seashell lime tomato beige chartreuse","lower":"sandy azure beige khaki white","count":157,"preSum":8164},{"ndv":157,"upper":"sienna seashell powder brown firebrick","lower":"seashell linen purple green black","count":157,"preSum":8321},{"ndv":157,"upper":"slate chartreuse blue hot honeydew","lower":"sienna sky turquoise chartreuse coral","count":157,"preSum":8478},{"ndv":157,"upper":"smoke pink coral wheat ivory","lower":"slate chartreuse cornflower saddle misty","count":157,"preSum":8635},{"ndv":157,"upper":"spring blush mint frosted magenta","lower":"smoke pink steel dim salmon","count":157,"preSum":8792},{"ndv":157,"upper":"steel peru floral frosted smoke","lower":"spring burnished green aquamarine honeydew","count":157,"preSum":8949},{"ndv":157,"upper":"thistle burnished green linen saddle","lower":"steel peru misty rosy papaya","count":157,"preSum":9106},{"ndv":157,"upper":"tomato mint turquoise moccasin blanched","lower":"thistle chartreuse purple sienna chocolate","count":157,"preSum":9263},{"ndv":157,"upper":"violet blush maroon royal deep","lower":"tomato misty coral chiffon maroon","count":157,"preSum":9420},{"ndv":157,"upper":"wheat light tan drab mint","lower":"violet blush thistle hot linen","count":157,"preSum":9577},{"ndv":157,"upper":"white slate chartreuse steel tan","lower":"wheat magenta almond cyan navy","count":157,"preSum":9734},{"ndv":109,"upper":"yellow white red chiffon tan","lower":"white smoke cornflower gainsboro misty","count":109,"preSum":9891}],"maxBucketSize":64,"type":"String","sampleRate":0.100484334} - part.p_name.null_count: - 0 - part.p_name.sample_rate: - 0.49872825 - part.p_partkey.TOPN: - {"countArr":[],"valueArr":[],"type":"Int"} - part.p_partkey.cardinality: - 197785 - part.p_partkey.histogram: - {"buckets":[{"ndv":157,"upper":3615,"lower":15,"count":157,"preSum":0},{"ndv":157,"upper":6835,"lower":3639,"count":157,"preSum":157},{"ndv":157,"upper":10284,"lower":6844,"count":157,"preSum":314},{"ndv":157,"upper":13113,"lower":10287,"count":157,"preSum":471},{"ndv":157,"upper":16511,"lower":13116,"count":157,"preSum":628},{"ndv":157,"upper":19610,"lower":16591,"count":157,"preSum":785},{"ndv":157,"upper":23100,"lower":19647,"count":157,"preSum":942},{"ndv":157,"upper":26060,"lower":23157,"count":157,"preSum":1099},{"ndv":157,"upper":28579,"lower":26066,"count":157,"preSum":1256},{"ndv":157,"upper":31801,"lower":28580,"count":157,"preSum":1413},{"ndv":157,"upper":34987,"lower":31803,"count":157,"preSum":1570},{"ndv":157,"upper":38269,"lower":34993,"count":157,"preSum":1727},{"ndv":157,"upper":41476,"lower":38282,"count":157,"preSum":1884},{"ndv":157,"upper":44860,"lower":41489,"count":157,"preSum":2041},{"ndv":157,"upper":48124,"lower":44870,"count":157,"preSum":2198},{"ndv":157,"upper":51227,"lower":48138,"count":157,"preSum":2355},{"ndv":157,"upper":54186,"lower":51255,"count":157,"preSum":2512},{"ndv":157,"upper":57419,"lower":54207,"count":157,"preSum":2669},{"ndv":157,"upper":60542,"lower":57426,"count":157,"preSum":2826},{"ndv":157,"upper":64021,"lower":60555,"count":157,"preSum":2983},{"ndv":157,"upper":67287,"lower":64025,"count":157,"preSum":3140},{"ndv":157,"upper":70029,"lower":67291,"count":157,"preSum":3297},{"ndv":157,"upper":73383,"lower":70033,"count":157,"preSum":3454},{"ndv":157,"upper":76081,"lower":73401,"count":157,"preSum":3611},{"ndv":157,"upper":78955,"lower":76082,"count":157,"preSum":3768},{"ndv":157,"upper":81918,"lower":78962,"count":157,"preSum":3925},{"ndv":157,"upper":85227,"lower":81937,"count":157,"preSum":4082},{"ndv":157,"upper":87998,"lower":85233,"count":157,"preSum":4239},{"ndv":157,"upper":91648,"lower":87999,"count":157,"preSum":4396},{"ndv":157,"upper":94443,"lower":91652,"count":157,"preSum":4553},{"ndv":157,"upper":97529,"lower":94502,"count":157,"preSum":4710},{"ndv":157,"upper":100985,"lower":97551,"count":157,"preSum":4867},{"ndv":157,"upper":103901,"lower":100991,"count":157,"preSum":5024},{"ndv":157,"upper":107248,"lower":103917,"count":157,"preSum":5181},{"ndv":157,"upper":110387,"lower":107249,"count":157,"preSum":5338},{"ndv":157,"upper":113011,"lower":110404,"count":157,"preSum":5495},{"ndv":157,"upper":116033,"lower":113014,"count":157,"preSum":5652},{"ndv":157,"upper":119429,"lower":116057,"count":157,"preSum":5809},{"ndv":157,"upper":122205,"lower":119474,"count":157,"preSum":5966},{"ndv":157,"upper":125336,"lower":122226,"count":157,"preSum":6123},{"ndv":157,"upper":128806,"lower":125342,"count":157,"preSum":6280},{"ndv":157,"upper":131965,"lower":128824,"count":157,"preSum":6437},{"ndv":157,"upper":135198,"lower":131975,"count":157,"preSum":6594},{"ndv":157,"upper":138516,"lower":135210,"count":157,"preSum":6751},{"ndv":157,"upper":141569,"lower":138523,"count":157,"preSum":6908},{"ndv":157,"upper":145110,"lower":141615,"count":157,"preSum":7065},{"ndv":157,"upper":148354,"lower":145117,"count":157,"preSum":7222},{"ndv":157,"upper":151643,"lower":148358,"count":157,"preSum":7379},{"ndv":157,"upper":155324,"lower":151645,"count":157,"preSum":7536},{"ndv":157,"upper":158268,"lower":155326,"count":157,"preSum":7693},{"ndv":157,"upper":161195,"lower":158280,"count":157,"preSum":7850},{"ndv":157,"upper":164291,"lower":161211,"count":157,"preSum":8007},{"ndv":157,"upper":167413,"lower":164297,"count":157,"preSum":8164},{"ndv":157,"upper":170310,"lower":167414,"count":157,"preSum":8321},{"ndv":157,"upper":173464,"lower":170320,"count":157,"preSum":8478},{"ndv":157,"upper":176699,"lower":173474,"count":157,"preSum":8635},{"ndv":157,"upper":179628,"lower":176704,"count":157,"preSum":8792},{"ndv":157,"upper":182498,"lower":179653,"count":157,"preSum":8949},{"ndv":157,"upper":185511,"lower":182510,"count":157,"preSum":9106},{"ndv":157,"upper":188572,"lower":185537,"count":157,"preSum":9263},{"ndv":157,"upper":191348,"lower":188579,"count":157,"preSum":9420},{"ndv":157,"upper":194492,"lower":191390,"count":157,"preSum":9577},{"ndv":157,"upper":197767,"lower":194503,"count":157,"preSum":9734},{"ndv":109,"upper":200000,"lower":197778,"count":109,"preSum":9891}],"maxBucketSize":64,"type":"Int","sampleRate":0.100484334} - part.p_partkey.null_count: - 0 - part.p_partkey.sample_rate: - 0.49872825 - part.p_retailprice.TOPN: - {"countArr":[],"valueArr":[],"type":"Double"} - part.p_retailprice.cardinality: - 20929 - part.p_retailprice.histogram: - {"buckets":[{"ndv":130,"upper":977,"lower":907,"count":157,"preSum":0},{"ndv":128,"upper":1011.04,"lower":977.02,"count":157,"preSum":157},{"ndv":127,"upper":1036.02,"lower":1011.05,"count":157,"preSum":314},{"ndv":125,"upper":1054.12,"lower":1036.03,"count":157,"preSum":471},{"ndv":127,"upper":1073.15,"lower":1055.03,"count":158,"preSum":628},{"ndv":124,"upper":1091.1,"lower":1074,"count":157,"preSum":786},{"ndv":125,"upper":1107.09,"lower":1091.11,"count":157,"preSum":943},{"ndv":129,"upper":1122.18,"lower":1107.1,"count":159,"preSum":1100},{"ndv":128,"upper":1138.2,"lower":1122.19,"count":157,"preSum":1259},{"ndv":127,"upper":1156.21,"lower":1138.23,"count":157,"preSum":1416},{"ndv":128,"upper":1173.11,"lower":1156.22,"count":157,"preSum":1573},{"ndv":128,"upper":1188.18,"lower":1173.12,"count":157,"preSum":1730},{"ndv":127,"upper":1203.21,"lower":1188.19,"count":158,"preSum":1887},{"ndv":124,"upper":1217.25,"lower":1203.25,"count":157,"preSum":2045},{"ndv":125,"upper":1233.32,"lower":1217.27,"count":157,"preSum":2202},{"ndv":119,"upper":1249.33,"lower":1234.17,"count":157,"preSum":2359},{"ndv":126,"upper":1264.29,"lower":1249.34,"count":157,"preSum":2516},{"ndv":133,"upper":1280.36,"lower":1264.32,"count":157,"preSum":2673},{"ndv":129,"upper":1295.34,"lower":1281.18,"count":158,"preSum":2830},{"ndv":127,"upper":1312.35,"lower":1295.35,"count":157,"preSum":2988},{"ndv":128,"upper":1327.23,"lower":1312.36,"count":158,"preSum":3145},{"ndv":119,"upper":1343.29,"lower":1327.25,"count":157,"preSum":3303},{"ndv":125,"upper":1357.45,"lower":1343.3,"count":157,"preSum":3460},{"ndv":127,"upper":1374.3,"lower":1358.26,"count":157,"preSum":3617},{"ndv":129,"upper":1389.48,"lower":1374.31,"count":157,"preSum":3774},{"ndv":127,"upper":1404.41,"lower":1390.3,"count":157,"preSum":3931},{"ndv":116,"upper":1418.42,"lower":1404.43,"count":157,"preSum":4088},{"ndv":126,"upper":1437.48,"lower":1418.51,"count":157,"preSum":4245},{"ndv":129,"upper":1452.43,"lower":1437.49,"count":157,"preSum":4402},{"ndv":133,"upper":1467.51,"lower":1452.45,"count":157,"preSum":4559},{"ndv":128,"upper":1483.43,"lower":1467.54,"count":157,"preSum":4716},{"ndv":124,"upper":1496.53,"lower":1483.44,"count":157,"preSum":4873},{"ndv":127,"upper":1513.56,"lower":1496.55,"count":157,"preSum":5030},{"ndv":132,"upper":1530.5,"lower":1513.58,"count":157,"preSum":5187},{"ndv":123,"upper":1547.51,"lower":1530.51,"count":157,"preSum":5344},{"ndv":127,"upper":1564.48,"lower":1547.54,"count":158,"preSum":5501},{"ndv":125,"upper":1578.67,"lower":1564.52,"count":157,"preSum":5659},{"ndv":125,"upper":1594.57,"lower":1579.48,"count":157,"preSum":5816},{"ndv":123,"upper":1610.61,"lower":1594.6,"count":157,"preSum":5973},{"ndv":135,"upper":1628.53,"lower":1610.66,"count":158,"preSum":6130},{"ndv":121,"upper":1645.58,"lower":1628.54,"count":157,"preSum":6288},{"ndv":125,"upper":1660.69,"lower":1645.59,"count":157,"preSum":6445},{"ndv":130,"upper":1675.73,"lower":1660.7,"count":157,"preSum":6602},{"ndv":128,"upper":1693.66,"lower":1675.75,"count":157,"preSum":6759},{"ndv":122,"upper":1708.7,"lower":1693.71,"count":157,"preSum":6916},{"ndv":123,"upper":1723.69,"lower":1708.73,"count":157,"preSum":7073},{"ndv":125,"upper":1737.79,"lower":1723.71,"count":157,"preSum":7230},{"ndv":129,"upper":1754.67,"lower":1737.81,"count":157,"preSum":7387},{"ndv":122,"upper":1770.69,"lower":1754.69,"count":157,"preSum":7544},{"ndv":121,"upper":1786.72,"lower":1770.7,"count":158,"preSum":7701},{"ndv":129,"upper":1802.81,"lower":1786.73,"count":157,"preSum":7859},{"ndv":125,"upper":1818.73,"lower":1802.83,"count":157,"preSum":8016},{"ndv":121,"upper":1832.92,"lower":1818.75,"count":157,"preSum":8173},{"ndv":127,"upper":1846.83,"lower":1833.73,"count":157,"preSum":8330},{"ndv":126,"upper":1860.89,"lower":1846.84,"count":157,"preSum":8487},{"ndv":133,"upper":1877.92,"lower":1860.9,"count":158,"preSum":8644},{"ndv":127,"upper":1893.81,"lower":1877.93,"count":157,"preSum":8802},{"ndv":128,"upper":1909.89,"lower":1893.83,"count":157,"preSum":8959},{"ndv":132,"upper":1926.86,"lower":1909.9,"count":158,"preSum":9116},{"ndv":124,"upper":1943.85,"lower":1926.91,"count":157,"preSum":9274},{"ndv":125,"upper":1964.98,"lower":1943.86,"count":157,"preSum":9431},{"ndv":126,"upper":1992.98,"lower":1965.86,"count":158,"preSum":9588},{"ndv":127,"upper":2027.93,"lower":1992.99,"count":157,"preSum":9746},{"ndv":91,"upper":2082.99,"lower":2027.98,"count":97,"preSum":9903}],"maxBucketSize":64,"type":"Double","sampleRate":0.100484334} - part.p_retailprice.null_count: - 0 - part.p_retailprice.sample_rate: - 0.49872825 - part.p_size.TOPN: - {"countArr":[189,179,187,188,174,192,186,172,187,191,187,185,172,191],"valueArr":[6,9,13,17,20,23,28,31,33,34,36,39,42,47],"type":"Int"} - part.p_size.cardinality: - 50 - part.p_size.histogram: - {"buckets":[{"ndv":1,"upper":1,"lower":1,"count":194,"preSum":0},{"ndv":1,"upper":2,"lower":2,"count":210,"preSum":194},{"ndv":1,"upper":3,"lower":3,"count":198,"preSum":404},{"ndv":1,"upper":4,"lower":4,"count":202,"preSum":602},{"ndv":1,"upper":5,"lower":5,"count":196,"preSum":804},{"ndv":1,"upper":7,"lower":7,"count":206,"preSum":1000},{"ndv":1,"upper":8,"lower":8,"count":240,"preSum":1206},{"ndv":1,"upper":10,"lower":10,"count":205,"preSum":1446},{"ndv":1,"upper":11,"lower":11,"count":170,"preSum":1651},{"ndv":1,"upper":12,"lower":12,"count":212,"preSum":1821},{"ndv":1,"upper":14,"lower":14,"count":200,"preSum":2033},{"ndv":1,"upper":15,"lower":15,"count":212,"preSum":2233},{"ndv":1,"upper":16,"lower":16,"count":198,"preSum":2445},{"ndv":1,"upper":18,"lower":18,"count":217,"preSum":2643},{"ndv":1,"upper":19,"lower":19,"count":199,"preSum":2860},{"ndv":1,"upper":21,"lower":21,"count":200,"preSum":3059},{"ndv":1,"upper":22,"lower":22,"count":228,"preSum":3259},{"ndv":1,"upper":24,"lower":24,"count":216,"preSum":3487},{"ndv":1,"upper":25,"lower":25,"count":209,"preSum":3703},{"ndv":1,"upper":26,"lower":26,"count":195,"preSum":3912},{"ndv":1,"upper":27,"lower":27,"count":199,"preSum":4107},{"ndv":1,"upper":29,"lower":29,"count":201,"preSum":4306},{"ndv":1,"upper":30,"lower":30,"count":207,"preSum":4507},{"ndv":1,"upper":32,"lower":32,"count":197,"preSum":4714},{"ndv":1,"upper":35,"lower":35,"count":213,"preSum":4911},{"ndv":1,"upper":37,"lower":37,"count":228,"preSum":5124},{"ndv":1,"upper":38,"lower":38,"count":219,"preSum":5352},{"ndv":1,"upper":40,"lower":40,"count":199,"preSum":5571},{"ndv":1,"upper":41,"lower":41,"count":194,"preSum":5770},{"ndv":1,"upper":43,"lower":43,"count":208,"preSum":5964},{"ndv":1,"upper":44,"lower":44,"count":202,"preSum":6172},{"ndv":1,"upper":45,"lower":45,"count":215,"preSum":6374},{"ndv":1,"upper":46,"lower":46,"count":197,"preSum":6589},{"ndv":1,"upper":48,"lower":48,"count":232,"preSum":6786},{"ndv":1,"upper":49,"lower":49,"count":199,"preSum":7018},{"ndv":1,"upper":50,"lower":50,"count":203,"preSum":7217}],"maxBucketSize":64,"type":"Int","sampleRate":0.100484334} - part.p_size.null_count: - 0 - part.p_size.sample_rate: - 0.49872825 - part.p_type.TOPN: - {"countArr":[54,55,48,49,54,55,55,52,52,55,54,53,50,52],"valueArr":["ECONOMY BRUSHED BRASS","ECONOMY BRUSHED NICKEL","ECONOMY BRUSHED TIN","LARGE ANODIZED NICKEL","LARGE BURNISHED TIN","LARGE POLISHED BRASS","MEDIUM BRUSHED TIN","MEDIUM BURNISHED COPPER","MEDIUM PLATED COPPER","PROMO PLATED BRASS","PROMO PLATED COPPER","PROMO POLISHED COPPER","SMALL PLATED BRASS","SMALL POLISHED NICKEL"],"type":"String"} - part.p_type.cardinality: - 150 - part.p_type.histogram: - {"buckets":[{"ndv":3,"upper":"ECONOMY ANODIZED NICKEL","lower":"ECONOMY ANODIZED BRASS","count":214,"preSum":0},{"ndv":2,"upper":"ECONOMY ANODIZED TIN","lower":"ECONOMY ANODIZED STEEL","count":163,"preSum":214},{"ndv":3,"upper":"ECONOMY BURNISHED BRASS","lower":"ECONOMY BRUSHED COPPER","count":200,"preSum":377},{"ndv":3,"upper":"ECONOMY BURNISHED STEEL","lower":"ECONOMY BURNISHED COPPER","count":198,"preSum":577},{"ndv":3,"upper":"ECONOMY PLATED COPPER","lower":"ECONOMY BURNISHED TIN","count":207,"preSum":775},{"ndv":3,"upper":"ECONOMY PLATED TIN","lower":"ECONOMY PLATED NICKEL","count":201,"preSum":982},{"ndv":3,"upper":"ECONOMY POLISHED NICKEL","lower":"ECONOMY POLISHED BRASS","count":202,"preSum":1183},{"ndv":3,"upper":"LARGE ANODIZED BRASS","lower":"ECONOMY POLISHED STEEL","count":201,"preSum":1385},{"ndv":3,"upper":"LARGE ANODIZED TIN","lower":"LARGE ANODIZED COPPER","count":201,"preSum":1586},{"ndv":2,"upper":"LARGE BRUSHED COPPER","lower":"LARGE BRUSHED BRASS","count":149,"preSum":1787},{"ndv":3,"upper":"LARGE BRUSHED TIN","lower":"LARGE BRUSHED NICKEL","count":192,"preSum":1936},{"ndv":3,"upper":"LARGE BURNISHED NICKEL","lower":"LARGE BURNISHED BRASS","count":175,"preSum":2128},{"ndv":3,"upper":"LARGE PLATED COPPER","lower":"LARGE BURNISHED STEEL","count":193,"preSum":2303},{"ndv":2,"upper":"LARGE PLATED STEEL","lower":"LARGE PLATED NICKEL","count":149,"preSum":2496},{"ndv":3,"upper":"LARGE POLISHED NICKEL","lower":"LARGE PLATED TIN","count":207,"preSum":2645},{"ndv":3,"upper":"MEDIUM ANODIZED BRASS","lower":"LARGE POLISHED STEEL","count":178,"preSum":2852},{"ndv":3,"upper":"MEDIUM ANODIZED STEEL","lower":"MEDIUM ANODIZED COPPER","count":206,"preSum":3030},{"ndv":3,"upper":"MEDIUM BRUSHED COPPER","lower":"MEDIUM ANODIZED TIN","count":202,"preSum":3236},{"ndv":3,"upper":"MEDIUM BURNISHED BRASS","lower":"MEDIUM BRUSHED NICKEL","count":199,"preSum":3438},{"ndv":3,"upper":"MEDIUM BURNISHED TIN","lower":"MEDIUM BURNISHED NICKEL","count":208,"preSum":3637},{"ndv":3,"upper":"MEDIUM PLATED STEEL","lower":"MEDIUM PLATED BRASS","count":199,"preSum":3845},{"ndv":3,"upper":"MEDIUM POLISHED COPPER","lower":"MEDIUM PLATED TIN","count":204,"preSum":4044},{"ndv":3,"upper":"MEDIUM POLISHED TIN","lower":"MEDIUM POLISHED NICKEL","count":196,"preSum":4248},{"ndv":3,"upper":"PROMO ANODIZED NICKEL","lower":"PROMO ANODIZED BRASS","count":204,"preSum":4444},{"ndv":3,"upper":"PROMO BRUSHED BRASS","lower":"PROMO ANODIZED STEEL","count":200,"preSum":4648},{"ndv":3,"upper":"PROMO BRUSHED STEEL","lower":"PROMO BRUSHED COPPER","count":189,"preSum":4848},{"ndv":3,"upper":"PROMO BURNISHED COPPER","lower":"PROMO BRUSHED TIN","count":210,"preSum":5037},{"ndv":3,"upper":"PROMO BURNISHED TIN","lower":"PROMO BURNISHED NICKEL","count":192,"preSum":5247},{"ndv":3,"upper":"PROMO PLATED TIN","lower":"PROMO PLATED NICKEL","count":189,"preSum":5439},{"ndv":3,"upper":"PROMO POLISHED STEEL","lower":"PROMO POLISHED BRASS","count":212,"preSum":5628},{"ndv":3,"upper":"SMALL ANODIZED COPPER","lower":"PROMO POLISHED TIN","count":202,"preSum":5840},{"ndv":3,"upper":"SMALL ANODIZED TIN","lower":"SMALL ANODIZED NICKEL","count":202,"preSum":6042},{"ndv":3,"upper":"SMALL BRUSHED NICKEL","lower":"SMALL BRUSHED BRASS","count":210,"preSum":6244},{"ndv":3,"upper":"SMALL BURNISHED BRASS","lower":"SMALL BRUSHED STEEL","count":215,"preSum":6454},{"ndv":2,"upper":"SMALL BURNISHED NICKEL","lower":"SMALL BURNISHED COPPER","count":152,"preSum":6669},{"ndv":3,"upper":"SMALL PLATED COPPER","lower":"SMALL BURNISHED STEEL","count":193,"preSum":6821},{"ndv":2,"upper":"SMALL PLATED STEEL","lower":"SMALL PLATED NICKEL","count":153,"preSum":7014},{"ndv":2,"upper":"SMALL POLISHED BRASS","lower":"SMALL PLATED TIN","count":145,"preSum":7167},{"ndv":3,"upper":"SMALL POLISHED TIN","lower":"SMALL POLISHED COPPER","count":215,"preSum":7312},{"ndv":3,"upper":"STANDARD ANODIZED NICKEL","lower":"STANDARD ANODIZED BRASS","count":220,"preSum":7527},{"ndv":2,"upper":"STANDARD ANODIZED TIN","lower":"STANDARD ANODIZED STEEL","count":148,"preSum":7747},{"ndv":2,"upper":"STANDARD BRUSHED COPPER","lower":"STANDARD BRUSHED BRASS","count":148,"preSum":7895},{"ndv":2,"upper":"STANDARD BRUSHED STEEL","lower":"STANDARD BRUSHED NICKEL","count":149,"preSum":8043},{"ndv":3,"upper":"STANDARD BURNISHED COPPER","lower":"STANDARD BRUSHED TIN","count":198,"preSum":8192},{"ndv":3,"upper":"STANDARD BURNISHED TIN","lower":"STANDARD BURNISHED NICKEL","count":188,"preSum":8390},{"ndv":2,"upper":"STANDARD PLATED COPPER","lower":"STANDARD PLATED BRASS","count":154,"preSum":8578},{"ndv":3,"upper":"STANDARD PLATED TIN","lower":"STANDARD PLATED NICKEL","count":189,"preSum":8732},{"ndv":3,"upper":"STANDARD POLISHED NICKEL","lower":"STANDARD POLISHED BRASS","count":192,"preSum":8921},{"ndv":2,"upper":"STANDARD POLISHED TIN","lower":"STANDARD POLISHED STEEL","count":149,"preSum":9113}],"maxBucketSize":64,"type":"String","sampleRate":0.100484334} - part.p_type.null_count: - 0 - part.p_type.sample_rate: - 0.49872825 - partsupp.ps_availqty.TOPN: - {"countArr":[],"valueArr":[],"type":"Int"} - partsupp.ps_availqty.cardinality: - 10006 - partsupp.ps_availqty.histogram: - {"buckets":[{"ndv":97,"upper":148,"lower":2,"count":157,"preSum":0},{"ndv":96,"upper":299,"lower":150,"count":159,"preSum":157},{"ndv":106,"upper":469,"lower":300,"count":159,"preSum":316},{"ndv":96,"upper":627,"lower":472,"count":157,"preSum":475},{"ndv":96,"upper":770,"lower":628,"count":157,"preSum":632},{"ndv":107,"upper":928,"lower":772,"count":157,"preSum":789},{"ndv":101,"upper":1096,"lower":929,"count":157,"preSum":946},{"ndv":112,"upper":1275,"lower":1097,"count":158,"preSum":1103},{"ndv":92,"upper":1420,"lower":1276,"count":157,"preSum":1261},{"ndv":102,"upper":1592,"lower":1422,"count":159,"preSum":1418},{"ndv":101,"upper":1761,"lower":1593,"count":157,"preSum":1577},{"ndv":97,"upper":1914,"lower":1762,"count":158,"preSum":1734},{"ndv":105,"upper":2087,"lower":1915,"count":161,"preSum":1892},{"ndv":101,"upper":2241,"lower":2088,"count":157,"preSum":2053},{"ndv":100,"upper":2401,"lower":2242,"count":158,"preSum":2210},{"ndv":109,"upper":2569,"lower":2402,"count":157,"preSum":2368},{"ndv":96,"upper":2740,"lower":2570,"count":159,"preSum":2525},{"ndv":95,"upper":2888,"lower":2741,"count":158,"preSum":2684},{"ndv":101,"upper":3036,"lower":2889,"count":157,"preSum":2842},{"ndv":95,"upper":3177,"lower":3038,"count":157,"preSum":2999},{"ndv":101,"upper":3331,"lower":3178,"count":157,"preSum":3156},{"ndv":100,"upper":3481,"lower":3332,"count":158,"preSum":3313},{"ndv":104,"upper":3633,"lower":3484,"count":157,"preSum":3471},{"ndv":109,"upper":3803,"lower":3634,"count":158,"preSum":3628},{"ndv":94,"upper":3955,"lower":3804,"count":157,"preSum":3786},{"ndv":110,"upper":4137,"lower":3957,"count":157,"preSum":3943},{"ndv":100,"upper":4296,"lower":4138,"count":158,"preSum":4100},{"ndv":94,"upper":4444,"lower":4297,"count":157,"preSum":4258},{"ndv":98,"upper":4583,"lower":4445,"count":158,"preSum":4415},{"ndv":101,"upper":4726,"lower":4584,"count":158,"preSum":4573},{"ndv":100,"upper":4885,"lower":4727,"count":158,"preSum":4731},{"ndv":104,"upper":5052,"lower":4886,"count":157,"preSum":4889},{"ndv":96,"upper":5192,"lower":5053,"count":158,"preSum":5046},{"ndv":101,"upper":5335,"lower":5193,"count":159,"preSum":5204},{"ndv":102,"upper":5487,"lower":5337,"count":158,"preSum":5363},{"ndv":107,"upper":5666,"lower":5490,"count":157,"preSum":5521},{"ndv":97,"upper":5826,"lower":5668,"count":157,"preSum":5678},{"ndv":99,"upper":5989,"lower":5827,"count":159,"preSum":5835},{"ndv":97,"upper":6129,"lower":5990,"count":158,"preSum":5994},{"ndv":94,"upper":6276,"lower":6130,"count":158,"preSum":6152},{"ndv":96,"upper":6428,"lower":6277,"count":158,"preSum":6310},{"ndv":94,"upper":6583,"lower":6429,"count":158,"preSum":6468},{"ndv":99,"upper":6731,"lower":6584,"count":157,"preSum":6626},{"ndv":103,"upper":6902,"lower":6734,"count":157,"preSum":6783},{"ndv":102,"upper":7061,"lower":6903,"count":157,"preSum":6940},{"ndv":110,"upper":7227,"lower":7062,"count":157,"preSum":7097},{"ndv":103,"upper":7380,"lower":7228,"count":159,"preSum":7254},{"ndv":107,"upper":7538,"lower":7382,"count":159,"preSum":7413},{"ndv":94,"upper":7696,"lower":7539,"count":158,"preSum":7572},{"ndv":95,"upper":7841,"lower":7697,"count":157,"preSum":7730},{"ndv":102,"upper":8010,"lower":7843,"count":157,"preSum":7887},{"ndv":108,"upper":8198,"lower":8012,"count":158,"preSum":8044},{"ndv":99,"upper":8342,"lower":8199,"count":157,"preSum":8202},{"ndv":102,"upper":8499,"lower":8343,"count":157,"preSum":8359},{"ndv":103,"upper":8663,"lower":8501,"count":157,"preSum":8516},{"ndv":104,"upper":8825,"lower":8665,"count":157,"preSum":8673},{"ndv":97,"upper":8978,"lower":8827,"count":157,"preSum":8830},{"ndv":104,"upper":9133,"lower":8979,"count":158,"preSum":8987},{"ndv":104,"upper":9290,"lower":9134,"count":158,"preSum":9145},{"ndv":102,"upper":9458,"lower":9291,"count":157,"preSum":9303},{"ndv":93,"upper":9605,"lower":9460,"count":157,"preSum":9460},{"ndv":96,"upper":9777,"lower":9607,"count":157,"preSum":9617},{"ndv":101,"upper":9935,"lower":9778,"count":158,"preSum":9774},{"ndv":42,"upper":9998,"lower":9936,"count":68,"preSum":9932}],"maxBucketSize":64,"type":"Int","sampleRate":0.10040967} - partsupp.ps_availqty.null_count: - 0 - partsupp.ps_availqty.sample_rate: - 0.125 - partsupp.ps_comment.TOPN: - {"countArr":[],"valueArr":[],"type":"String"} - partsupp.ps_comment.cardinality: - 787540 - partsupp.ps_comment.histogram: - {"buckets":[{"ndv":157,"upper":" beans poach quickly after the slyly ironic accoun","lower":" about the blithely fluffy packages maintain expre","count":157,"preSum":0},{"ndv":157,"upper":" carefully slyly blithe requests. ironic pinto bea","lower":" beans poach regularly alongside of the accounts. ","count":157,"preSum":157},{"ndv":157,"upper":" express deposits sleep slyly regular accounts! sl","lower":" carefully special accounts. blithely express pack","count":157,"preSum":314},{"ndv":157,"upper":" furiously special packages. pending ideas cajole ","lower":" express foxes atop the furiously final packages x","count":157,"preSum":471},{"ndv":157,"upper":" on the final deposits. slyly final platelets wake","lower":" furiously thin deposits. special requests about t","count":157,"preSum":628},{"ndv":157,"upper":" regular ideas integrate against the slyly regular","lower":" orbits after the blithely final instructions use ","count":157,"preSum":785},{"ndv":157,"upper":" slyly. even deposits are slyly except the ironic,","lower":" regular ideas sleep blithely among the quickly ir","count":157,"preSum":942},{"ndv":157,"upper":" unusual deposits cajole permanently about the bli","lower":" slyly. even, unusual sentiments detect furiously;","count":157,"preSum":1099},{"ndv":157,"upper":". final requests haggle slyly blithely express acc","lower":" unusual deposits cajole pinto beans. accounts sle","count":157,"preSum":1256},{"ndv":157,"upper":"ackages use furiously according to the final, regu","lower":". final, even theodolites haggle. furiously expres","count":157,"preSum":1413},{"ndv":157,"upper":"ake quickly slyly final deposits. blithely regular","lower":"ackages wake against the quickly silent packages: ","count":157,"preSum":1570},{"ndv":157,"upper":"ar asymptotes. slyly even requests haggle. pinto b","lower":"ake slowly slyly regular accounts. carefully regul","count":157,"preSum":1727},{"ndv":157,"upper":"as wake along the quickly pending deposits. blithe","lower":"ar deposits haggle quickly. pending deposits cajol","count":157,"preSum":1884},{"ndv":157,"upper":"boost. fluffily unusual ideas cajole above the att","lower":"as wake slyly. carefully even packages boost close","count":157,"preSum":2041},{"ndv":157,"upper":"carefully special dependencies run quickly fluffil","lower":"boost. ironic instructions against the regular req","count":157,"preSum":2198},{"ndv":157,"upper":"ckly ironic theodolites. slyly ironic instructions","lower":"carefully special dolphins would print slyly after","count":157,"preSum":2355},{"ndv":157,"upper":"de of the busy accounts. ironic, final requests ar","lower":"ckly pending asymptotes nag carefully thinly ironi","count":157,"preSum":2512},{"ndv":157,"upper":"dolphins above the pending deposits wake slyly reg","lower":"de of the carefully final foxes. pending, ironic r","count":157,"preSum":2669},{"ndv":157,"upper":"e slyly unusual accounts. realms cajole. express, ","lower":"dolphins along the blithely ironic pinto beans wak","count":157,"preSum":2826},{"ndv":157,"upper":"efully along the furiously even packages. dependen","lower":"e slyly. closely express theodolites integrate sly","count":157,"preSum":2983},{"ndv":157,"upper":"ely pending accounts use. carefully regular reques","lower":"efully around the enticing accounts. furiously spe","count":157,"preSum":3140},{"ndv":157,"upper":"ependencies. slyly ironic packages cajole slyly ar","lower":"ely pending deposits dazzle. silent deposits haggl","count":157,"preSum":3297},{"ndv":157,"upper":"es haggle furiously. blithely pending deposits nag","lower":"eposits above the carefully regular instructions s","count":157,"preSum":3454},{"ndv":157,"upper":"ets use carefully blithely ironic waters. bold pac","lower":"es haggle quickly furiously fluffy accounts. slyly","count":157,"preSum":3611},{"ndv":157,"upper":"final excuses are slyly according to the blithely ","lower":"ets wake furiously. express foxes cajole slyly. fu","count":157,"preSum":3768},{"ndv":157,"upper":"furiously even accounts. blithely brave foxes abov","lower":"final foxes. slyly regular accounts kindle blithel","count":157,"preSum":3925},{"ndv":157,"upper":"ggle carefully. careful packages affix against the","lower":"furiously even packages wake slyly. final depths a","count":157,"preSum":4082},{"ndv":157,"upper":"he even pinto beans. accounts wake slyly slyly unu","lower":"ggle carefully: express, bold accounts solve caref","count":157,"preSum":4239},{"ndv":157,"upper":"ial ideas. slyly special orbits sleep furiously bl","lower":"he even theodolites: slyly pending ideas alongside","count":157,"preSum":4396},{"ndv":157,"upper":"ily final deposits. regular, final requests among ","lower":"ial packages alongside of the instructions sleep b","count":157,"preSum":4553},{"ndv":157,"upper":"ions haggle furiously. accounts cajole slyly sly a","lower":"ily fluffy requests wake unusual platelets! carefu","count":157,"preSum":4710},{"ndv":157,"upper":"ithely express instructions. even multipliers cajo","lower":"ions haggle slyly according to the slyly regular a","count":157,"preSum":4867},{"ndv":157,"upper":"kly pending accounts wake ruthlessly according to ","lower":"ithely final packages. regular deposits wake caref","count":157,"preSum":5024},{"ndv":157,"upper":"latelets wake carefully quickly express theodolite","lower":"kly pending packages. final requests cajole carefu","count":157,"preSum":5181},{"ndv":157,"upper":"lithely pains. ironic, final accounts haggle. atta","lower":"latelets wake slyly against the special, regular p","count":157,"preSum":5338},{"ndv":157,"upper":"ly bold deposits above the fluffily regular accoun","lower":"lithely pending accounts wake blithely fluffy asym","count":157,"preSum":5495},{"ndv":157,"upper":"ly regular pinto beans use furiously permanently p","lower":"ly bold foxes nag slyly against the fluffily expre","count":157,"preSum":5652},{"ndv":157,"upper":"mptotes. quickly unusual deposits cajole packages.","lower":"ly regular requests boost bold accounts. slyly reg","count":157,"preSum":5809},{"ndv":157,"upper":"ng foxes nag blithely even packages. quickly unusu","lower":"mptotes. quickly unusual realms sleep against the ","count":157,"preSum":5966},{"ndv":157,"upper":"ns. fluffily regular deposits sleep slyly for the ","lower":"ng ideas thrash platelets. carefully even requests","count":157,"preSum":6123},{"ndv":157,"upper":"o beans. final packages was blithely blithely iron","lower":"ns. fluffily regular packages wake slyly about the","count":157,"preSum":6280},{"ndv":157,"upper":"onic packages among the carefully bold requests sl","lower":"o beans. ironic packages was after the blithely re","count":157,"preSum":6437},{"ndv":157,"upper":"ounts engage carefully slyly even deposits. expres","lower":"onic packages are carefully. pending deposits alon","count":157,"preSum":6594},{"ndv":157,"upper":"p regularly ironic deposits. furiously ironic foxe","lower":"ounts haggle quickly regular deposits. carefully e","count":157,"preSum":6751},{"ndv":157,"upper":"platelets. final requests boost. carefully even re","lower":"p slyly unusual foxes. fluffily pending tithes alo","count":157,"preSum":6908},{"ndv":157,"upper":"r accounts. furiously even instructions around th","lower":"platelets. patterns are. furiously even requests a","count":157,"preSum":7065},{"ndv":157,"upper":"refully pending deposits cajole blithely at the do","lower":"r accounts. furiously final pinto beans are blithe","count":157,"preSum":7222},{"ndv":157,"upper":"ring requests along the blithely regular packages ","lower":"refully pending dinos. blithely regular dependenci","count":157,"preSum":7379},{"ndv":157,"upper":"ructions cajole quickly special accounts? furiousl","lower":"ring theodolites about the blithely final asymptot","count":157,"preSum":7536},{"ndv":157,"upper":"s haggle ideas. furiously special deposits cajole ","lower":"ructions could have to cajole furiously across the","count":157,"preSum":7693},{"ndv":157,"upper":"s. even platelets sleep slyly. slyly special theod","lower":"s haggle ironic, ironic accounts. fluffily regular","count":157,"preSum":7850},{"ndv":157,"upper":"sits nag. furiously regular instructions after the","lower":"s. even, regular theodolites integrate quickly: fu","count":157,"preSum":8007},{"ndv":157,"upper":"special ideas are blithely against the slyly pendi","lower":"sits serve across the fluffily pending accounts. f","count":157,"preSum":8164},{"ndv":157,"upper":"sual, thin excuses. requests are quickly fluffily ","lower":"special instructions after the quickly pending the","count":157,"preSum":8321},{"ndv":157,"upper":"the fluffily daring theodolites sleep quickly abov","lower":"sy deposits cajole furiously ironic dependencies. ","count":157,"preSum":8478},{"ndv":157,"upper":"to beans hinder across the final requests. even ep","lower":"the fluffily ironic accounts are against the ironi","count":157,"preSum":8635},{"ndv":157,"upper":"ts. regular ideas use blithely across the excuses.","lower":"to beans should use regular platelets. fluffy, iro","count":157,"preSum":8792},{"ndv":157,"upper":"uickly ironic requests cajole furiously unusual pa","lower":"ts. regular, ironic sauternes try to wake. fluffil","count":157,"preSum":8949},{"ndv":157,"upper":"unts. ironic dependencies sleep over the pending, ","lower":"uickly pending requests haggle blithely ironic, ev","count":157,"preSum":9106},{"ndv":157,"upper":"usly slyly bold accounts. unusual, pending depende","lower":"unts. quickly ironic excuses through the quickly r","count":157,"preSum":9263},{"ndv":157,"upper":"x-ray slyly fluffily ironic pinto beans. unusual p","lower":"usly slyly ironic deposits. ironic deposits are. b","count":157,"preSum":9420},{"ndv":157,"upper":"y express packages sleep carefully. final, even pi","lower":"xcuses cajole along the furiously regular theodoli","count":157,"preSum":9577},{"ndv":157,"upper":"y within the carefully final ideas. fluffily regul","lower":"y express packages. blithely unusual asymptotes ha","count":157,"preSum":9734},{"ndv":109,"upper":"zzle blithely around the instructions. blithely cl","lower":"y! unusual, ironic requests sleep quickly regular ","count":109,"preSum":9891}],"maxBucketSize":64,"type":"String","sampleRate":0.10040967} - partsupp.ps_comment.null_count: - 0 - partsupp.ps_comment.sample_rate: - 0.125 - partsupp.ps_partkey.TOPN: - {"countArr":[3,3,3,3,3],"valueArr":[17536,88438,157064,165714,196965],"type":"Int"} - partsupp.ps_partkey.cardinality: - 357628 - partsupp.ps_partkey.histogram: - {"buckets":[{"ndv":156,"upper":3218,"lower":18,"count":157,"preSum":0},{"ndv":155,"upper":6530,"lower":3260,"count":157,"preSum":157},{"ndv":153,"upper":9651,"lower":6550,"count":157,"preSum":314},{"ndv":155,"upper":12836,"lower":9652,"count":157,"preSum":471},{"ndv":155,"upper":16072,"lower":12854,"count":157,"preSum":628},{"ndv":152,"upper":19129,"lower":16078,"count":157,"preSum":785},{"ndv":154,"upper":21985,"lower":19133,"count":157,"preSum":942},{"ndv":154,"upper":25098,"lower":21989,"count":157,"preSum":1099},{"ndv":154,"upper":28699,"lower":25108,"count":157,"preSum":1256},{"ndv":153,"upper":32028,"lower":28732,"count":157,"preSum":1413},{"ndv":153,"upper":35141,"lower":32040,"count":158,"preSum":1570},{"ndv":154,"upper":37950,"lower":35168,"count":158,"preSum":1728},{"ndv":154,"upper":41374,"lower":37985,"count":157,"preSum":1886},{"ndv":152,"upper":44308,"lower":41386,"count":157,"preSum":2043},{"ndv":154,"upper":47910,"lower":44323,"count":157,"preSum":2200},{"ndv":154,"upper":50732,"lower":47975,"count":157,"preSum":2357},{"ndv":153,"upper":53583,"lower":50742,"count":157,"preSum":2514},{"ndv":155,"upper":56476,"lower":53587,"count":157,"preSum":2671},{"ndv":155,"upper":58953,"lower":56493,"count":157,"preSum":2828},{"ndv":155,"upper":62417,"lower":59002,"count":157,"preSum":2985},{"ndv":156,"upper":65666,"lower":62422,"count":157,"preSum":3142},{"ndv":156,"upper":69277,"lower":65696,"count":157,"preSum":3299},{"ndv":156,"upper":72321,"lower":69344,"count":157,"preSum":3456},{"ndv":154,"upper":75829,"lower":72345,"count":157,"preSum":3613},{"ndv":152,"upper":79150,"lower":75830,"count":157,"preSum":3770},{"ndv":154,"upper":82666,"lower":79176,"count":157,"preSum":3927},{"ndv":155,"upper":85434,"lower":82677,"count":157,"preSum":4084},{"ndv":154,"upper":88465,"lower":85446,"count":157,"preSum":4241},{"ndv":153,"upper":91414,"lower":88470,"count":157,"preSum":4398},{"ndv":150,"upper":94371,"lower":91423,"count":157,"preSum":4555},{"ndv":155,"upper":97887,"lower":94383,"count":157,"preSum":4712},{"ndv":153,"upper":100844,"lower":97906,"count":157,"preSum":4869},{"ndv":150,"upper":103854,"lower":100872,"count":157,"preSum":5026},{"ndv":155,"upper":106910,"lower":103897,"count":157,"preSum":5183},{"ndv":154,"upper":110190,"lower":106927,"count":157,"preSum":5340},{"ndv":154,"upper":113515,"lower":110193,"count":157,"preSum":5497},{"ndv":155,"upper":116471,"lower":113530,"count":157,"preSum":5654},{"ndv":156,"upper":119931,"lower":116476,"count":157,"preSum":5811},{"ndv":154,"upper":122916,"lower":119948,"count":157,"preSum":5968},{"ndv":155,"upper":125653,"lower":122922,"count":157,"preSum":6125},{"ndv":153,"upper":128830,"lower":125672,"count":157,"preSum":6282},{"ndv":153,"upper":132046,"lower":128833,"count":157,"preSum":6439},{"ndv":155,"upper":135391,"lower":132057,"count":157,"preSum":6596},{"ndv":154,"upper":138365,"lower":135402,"count":157,"preSum":6753},{"ndv":154,"upper":141267,"lower":138389,"count":157,"preSum":6910},{"ndv":155,"upper":144428,"lower":141272,"count":157,"preSum":7067},{"ndv":155,"upper":147688,"lower":144435,"count":157,"preSum":7224},{"ndv":155,"upper":151093,"lower":147774,"count":157,"preSum":7381},{"ndv":156,"upper":154496,"lower":151121,"count":157,"preSum":7538},{"ndv":155,"upper":157803,"lower":154509,"count":157,"preSum":7695},{"ndv":154,"upper":161169,"lower":157837,"count":157,"preSum":7852},{"ndv":155,"upper":164610,"lower":161183,"count":157,"preSum":8009},{"ndv":155,"upper":167721,"lower":164666,"count":157,"preSum":8166},{"ndv":156,"upper":170551,"lower":167748,"count":157,"preSum":8323},{"ndv":154,"upper":173471,"lower":170569,"count":157,"preSum":8480},{"ndv":153,"upper":176917,"lower":173534,"count":157,"preSum":8637},{"ndv":156,"upper":179770,"lower":176938,"count":157,"preSum":8794},{"ndv":149,"upper":182559,"lower":179823,"count":157,"preSum":8951},{"ndv":154,"upper":185902,"lower":182566,"count":157,"preSum":9108},{"ndv":153,"upper":189069,"lower":185931,"count":157,"preSum":9265},{"ndv":156,"upper":191963,"lower":189095,"count":157,"preSum":9422},{"ndv":153,"upper":195010,"lower":191967,"count":157,"preSum":9579},{"ndv":155,"upper":198188,"lower":195044,"count":157,"preSum":9736},{"ndv":91,"upper":199993,"lower":198193,"count":92,"preSum":9893}],"maxBucketSize":64,"type":"Int","sampleRate":0.10040967} - partsupp.ps_partkey.null_count: - 0 - partsupp.ps_partkey.sample_rate: - 0.125 - partsupp.ps_suppkey.TOPN: - {"countArr":[],"valueArr":[],"type":"Int"} - partsupp.ps_suppkey.cardinality: - 10000 - partsupp.ps_suppkey.histogram: - {"buckets":[{"ndv":107,"upper":168,"lower":3,"count":157,"preSum":0},{"ndv":106,"upper":333,"lower":169,"count":157,"preSum":157},{"ndv":96,"upper":481,"lower":334,"count":158,"preSum":314},{"ndv":110,"upper":663,"lower":485,"count":157,"preSum":472},{"ndv":101,"upper":813,"lower":664,"count":157,"preSum":629},{"ndv":101,"upper":967,"lower":815,"count":158,"preSum":786},{"ndv":100,"upper":1135,"lower":969,"count":157,"preSum":944},{"ndv":97,"upper":1286,"lower":1136,"count":158,"preSum":1101},{"ndv":103,"upper":1454,"lower":1287,"count":157,"preSum":1259},{"ndv":95,"upper":1606,"lower":1455,"count":157,"preSum":1416},{"ndv":91,"upper":1737,"lower":1607,"count":157,"preSum":1573},{"ndv":94,"upper":1886,"lower":1738,"count":157,"preSum":1730},{"ndv":99,"upper":2043,"lower":1887,"count":158,"preSum":1887},{"ndv":102,"upper":2228,"lower":2046,"count":157,"preSum":2045},{"ndv":92,"upper":2386,"lower":2229,"count":158,"preSum":2202},{"ndv":107,"upper":2577,"lower":2387,"count":157,"preSum":2360},{"ndv":97,"upper":2726,"lower":2579,"count":158,"preSum":2517},{"ndv":96,"upper":2879,"lower":2728,"count":157,"preSum":2675},{"ndv":92,"upper":3026,"lower":2880,"count":157,"preSum":2832},{"ndv":99,"upper":3179,"lower":3027,"count":158,"preSum":2989},{"ndv":91,"upper":3324,"lower":3180,"count":157,"preSum":3147},{"ndv":97,"upper":3468,"lower":3325,"count":158,"preSum":3304},{"ndv":99,"upper":3620,"lower":3471,"count":159,"preSum":3462},{"ndv":110,"upper":3796,"lower":3624,"count":158,"preSum":3621},{"ndv":92,"upper":3932,"lower":3798,"count":157,"preSum":3779},{"ndv":103,"upper":4092,"lower":3933,"count":158,"preSum":3936},{"ndv":104,"upper":4240,"lower":4093,"count":157,"preSum":4094},{"ndv":97,"upper":4376,"lower":4241,"count":158,"preSum":4251},{"ndv":112,"upper":4538,"lower":4377,"count":158,"preSum":4409},{"ndv":102,"upper":4704,"lower":4539,"count":157,"preSum":4567},{"ndv":93,"upper":4836,"lower":4705,"count":158,"preSum":4724},{"ndv":106,"upper":5005,"lower":4838,"count":157,"preSum":4882},{"ndv":99,"upper":5179,"lower":5007,"count":157,"preSum":5039},{"ndv":97,"upper":5333,"lower":5181,"count":158,"preSum":5196},{"ndv":111,"upper":5511,"lower":5334,"count":158,"preSum":5354},{"ndv":99,"upper":5671,"lower":5512,"count":158,"preSum":5512},{"ndv":102,"upper":5841,"lower":5673,"count":157,"preSum":5670},{"ndv":97,"upper":5969,"lower":5842,"count":158,"preSum":5827},{"ndv":101,"upper":6128,"lower":5970,"count":157,"preSum":5985},{"ndv":105,"upper":6289,"lower":6129,"count":157,"preSum":6142},{"ndv":97,"upper":6435,"lower":6290,"count":157,"preSum":6299},{"ndv":92,"upper":6582,"lower":6437,"count":157,"preSum":6456},{"ndv":96,"upper":6722,"lower":6583,"count":157,"preSum":6613},{"ndv":94,"upper":6878,"lower":6723,"count":157,"preSum":6770},{"ndv":109,"upper":7064,"lower":6879,"count":157,"preSum":6927},{"ndv":103,"upper":7210,"lower":7065,"count":157,"preSum":7084},{"ndv":104,"upper":7361,"lower":7211,"count":158,"preSum":7241},{"ndv":96,"upper":7520,"lower":7362,"count":157,"preSum":7399},{"ndv":104,"upper":7668,"lower":7522,"count":157,"preSum":7556},{"ndv":94,"upper":7820,"lower":7669,"count":157,"preSum":7713},{"ndv":103,"upper":7999,"lower":7821,"count":158,"preSum":7870},{"ndv":103,"upper":8167,"lower":8000,"count":157,"preSum":8028},{"ndv":105,"upper":8336,"lower":8168,"count":160,"preSum":8185},{"ndv":94,"upper":8488,"lower":8337,"count":160,"preSum":8345},{"ndv":104,"upper":8629,"lower":8489,"count":157,"preSum":8505},{"ndv":97,"upper":8792,"lower":8631,"count":157,"preSum":8662},{"ndv":100,"upper":8956,"lower":8795,"count":157,"preSum":8819},{"ndv":101,"upper":9111,"lower":8957,"count":157,"preSum":8976},{"ndv":107,"upper":9283,"lower":9115,"count":159,"preSum":9133},{"ndv":98,"upper":9453,"lower":9284,"count":157,"preSum":9292},{"ndv":90,"upper":9611,"lower":9454,"count":158,"preSum":9449},{"ndv":106,"upper":9767,"lower":9613,"count":158,"preSum":9607},{"ndv":95,"upper":9939,"lower":9769,"count":159,"preSum":9765},{"ndv":42,"upper":9998,"lower":9940,"count":76,"preSum":9924}],"maxBucketSize":64,"type":"Int","sampleRate":0.10040967} - partsupp.ps_suppkey.null_count: - 0 - partsupp.ps_suppkey.sample_rate: - 0.125 - partsupp.ps_supplycost.TOPN: - {"countArr":[],"valueArr":[],"type":"Double"} - partsupp.ps_supplycost.cardinality: - 172655 - partsupp.ps_supplycost.histogram: - {"buckets":[{"ndv":147,"upper":15.26,"lower":1.11,"count":157,"preSum":0},{"ndv":149,"upper":28.79,"lower":15.28,"count":157,"preSum":157},{"ndv":150,"upper":43.37,"lower":28.85,"count":157,"preSum":314},{"ndv":152,"upper":60.13,"lower":43.41,"count":157,"preSum":471},{"ndv":150,"upper":76.54,"lower":60.14,"count":157,"preSum":628},{"ndv":148,"upper":91.94,"lower":76.56,"count":157,"preSum":785},{"ndv":148,"upper":107.79,"lower":92.09,"count":157,"preSum":942},{"ndv":149,"upper":123.91,"lower":107.84,"count":157,"preSum":1099},{"ndv":151,"upper":140.22,"lower":123.94,"count":157,"preSum":1256},{"ndv":150,"upper":154.02,"lower":140.35,"count":157,"preSum":1413},{"ndv":146,"upper":170.15,"lower":154.03,"count":157,"preSum":1570},{"ndv":149,"upper":186.9,"lower":170.44,"count":157,"preSum":1727},{"ndv":148,"upper":201.7,"lower":186.92,"count":157,"preSum":1884},{"ndv":150,"upper":216.57,"lower":201.87,"count":157,"preSum":2041},{"ndv":154,"upper":231.27,"lower":216.63,"count":157,"preSum":2198},{"ndv":151,"upper":247.73,"lower":231.33,"count":157,"preSum":2355},{"ndv":156,"upper":264.82,"lower":247.76,"count":157,"preSum":2512},{"ndv":151,"upper":279.91,"lower":265.09,"count":157,"preSum":2669},{"ndv":151,"upper":296.83,"lower":280.24,"count":157,"preSum":2826},{"ndv":150,"upper":314.9,"lower":296.93,"count":157,"preSum":2983},{"ndv":154,"upper":330.22,"lower":314.91,"count":157,"preSum":3140},{"ndv":154,"upper":346.62,"lower":330.28,"count":157,"preSum":3297},{"ndv":150,"upper":362.52,"lower":346.72,"count":157,"preSum":3454},{"ndv":152,"upper":378.89,"lower":362.57,"count":157,"preSum":3611},{"ndv":148,"upper":396.2,"lower":379.2,"count":157,"preSum":3768},{"ndv":153,"upper":410.42,"lower":396.24,"count":157,"preSum":3925},{"ndv":146,"upper":424.58,"lower":410.43,"count":157,"preSum":4082},{"ndv":148,"upper":439.53,"lower":424.81,"count":157,"preSum":4239},{"ndv":149,"upper":456.39,"lower":439.65,"count":157,"preSum":4396},{"ndv":149,"upper":470.64,"lower":456.4,"count":157,"preSum":4553},{"ndv":153,"upper":486.9,"lower":470.66,"count":157,"preSum":4710},{"ndv":152,"upper":501.97,"lower":486.93,"count":157,"preSum":4867},{"ndv":144,"upper":515.52,"lower":501.99,"count":157,"preSum":5024},{"ndv":151,"upper":531.99,"lower":515.54,"count":157,"preSum":5181},{"ndv":152,"upper":547.15,"lower":532.26,"count":157,"preSum":5338},{"ndv":143,"upper":563.81,"lower":547.18,"count":157,"preSum":5495},{"ndv":149,"upper":582.18,"lower":563.89,"count":157,"preSum":5652},{"ndv":154,"upper":599.06,"lower":582.3,"count":157,"preSum":5809},{"ndv":147,"upper":614.34,"lower":599.37,"count":157,"preSum":5966},{"ndv":153,"upper":630.09,"lower":614.56,"count":157,"preSum":6123},{"ndv":152,"upper":646.02,"lower":630.12,"count":157,"preSum":6280},{"ndv":151,"upper":660.23,"lower":646.04,"count":157,"preSum":6437},{"ndv":144,"upper":675.75,"lower":660.28,"count":157,"preSum":6594},{"ndv":151,"upper":691.45,"lower":675.8,"count":157,"preSum":6751},{"ndv":144,"upper":706.98,"lower":691.63,"count":157,"preSum":6908},{"ndv":154,"upper":723.38,"lower":707.15,"count":157,"preSum":7065},{"ndv":148,"upper":738.85,"lower":723.47,"count":157,"preSum":7222},{"ndv":152,"upper":755.7,"lower":739.04,"count":157,"preSum":7379},{"ndv":150,"upper":773,"lower":755.81,"count":157,"preSum":7536},{"ndv":153,"upper":786.69,"lower":773.4,"count":157,"preSum":7693},{"ndv":152,"upper":802.47,"lower":786.74,"count":157,"preSum":7850},{"ndv":153,"upper":818.59,"lower":802.48,"count":157,"preSum":8007},{"ndv":148,"upper":833.81,"lower":818.84,"count":158,"preSum":8164},{"ndv":149,"upper":849.13,"lower":833.82,"count":157,"preSum":8322},{"ndv":153,"upper":866.9,"lower":849.16,"count":157,"preSum":8479},{"ndv":152,"upper":884.4,"lower":866.98,"count":157,"preSum":8636},{"ndv":152,"upper":898.9,"lower":884.45,"count":157,"preSum":8793},{"ndv":149,"upper":914.01,"lower":898.94,"count":157,"preSum":8950},{"ndv":150,"upper":928.26,"lower":914.08,"count":157,"preSum":9107},{"ndv":151,"upper":943.33,"lower":928.31,"count":157,"preSum":9264},{"ndv":148,"upper":959.02,"lower":943.5,"count":157,"preSum":9421},{"ndv":145,"upper":974.45,"lower":959.3,"count":157,"preSum":9578},{"ndv":150,"upper":989.65,"lower":974.51,"count":157,"preSum":9735},{"ndv":99,"upper":999.99,"lower":989.68,"count":108,"preSum":9892}],"maxBucketSize":64,"type":"Double","sampleRate":0.10040967} - partsupp.ps_supplycost.null_count: - 0 - partsupp.ps_supplycost.sample_rate: - 0.125 - region.r_comment.TOPN: - {"countArr":[],"valueArr":[],"type":"String"} - region.r_comment.cardinality: - 5 - region.r_comment.histogram: - {"buckets":[{"ndv":2,"upper":"hs use ironic, even requests. s","lower":"ges. thinly even pinto beans ca","count":2,"preSum":0},{"ndv":2,"upper":"ly final courts cajole furiously final excuse","lower":"lar deposits. blithely final packages cajole. regu","count":2,"preSum":2},{"ndv":1,"upper":"uickly special accounts cajole carefully blithely ","lower":"uickly special accounts cajole carefully blithely ","count":1,"preSum":4}],"maxBucketSize":4,"type":"String","sampleRate":1.0} - region.r_comment.null_count: - 0 - region.r_comment.sample_rate: - 1.0 - region.r_name.TOPN: - {"countArr":[],"valueArr":[],"type":"String"} - region.r_name.cardinality: - 5 - region.r_name.histogram: - {"buckets":[{"ndv":2,"upper":"AMERICA","lower":"AFRICA","count":2,"preSum":0},{"ndv":2,"upper":"EUROPE","lower":"ASIA","count":2,"preSum":2},{"ndv":1,"upper":"MIDDLE EAST","lower":"MIDDLE EAST","count":1,"preSum":4}],"maxBucketSize":4,"type":"String","sampleRate":1.0} - region.r_name.null_count: - 0 - region.r_name.sample_rate: - 1.0 - region.r_regionkey.TOPN: - {"countArr":[],"valueArr":[],"type":"Int"} - region.r_regionkey.cardinality: - 5 - region.r_regionkey.histogram: - {"buckets":[{"ndv":2,"upper":1,"lower":0,"count":2,"preSum":0},{"ndv":2,"upper":3,"lower":2,"count":2,"preSum":2},{"ndv":1,"upper":4,"lower":4,"count":1,"preSum":4}],"maxBucketSize":4,"type":"Int","sampleRate":1.0} - region.r_regionkey.null_count: - 0 - region.r_regionkey.sample_rate: - 1.0 - supplier.s_acctbal.TOPN: - {"countArr":[],"valueArr":[],"type":"Double"} - supplier.s_acctbal.cardinality: - 9907 - supplier.s_acctbal.histogram: - {"buckets":[{"ndv":157,"upper":-828.89,"lower":-998.22,"count":157,"preSum":0},{"ndv":157,"upper":-663.75,"lower":-828.67,"count":157,"preSum":157},{"ndv":157,"upper":-481.91,"lower":-659.81,"count":157,"preSum":314},{"ndv":157,"upper":-297.76,"lower":-478.87,"count":157,"preSum":471},{"ndv":156,"upper":-122.1,"lower":-296.5,"count":157,"preSum":628},{"ndv":156,"upper":45.34,"lower":-121.34,"count":157,"preSum":785},{"ndv":156,"upper":218.47,"lower":46.35,"count":157,"preSum":942},{"ndv":156,"upper":387.49,"lower":219.47,"count":157,"preSum":1099},{"ndv":154,"upper":551.82,"lower":387.55,"count":157,"preSum":1256},{"ndv":157,"upper":716.2,"lower":554.01,"count":157,"preSum":1413},{"ndv":157,"upper":909.83,"lower":717.59,"count":157,"preSum":1570},{"ndv":157,"upper":1091.98,"lower":912.09,"count":157,"preSum":1727},{"ndv":157,"upper":1262.2,"lower":1093.16,"count":157,"preSum":1884},{"ndv":156,"upper":1418.29,"lower":1262.5,"count":157,"preSum":2041},{"ndv":157,"upper":1588.38,"lower":1421.41,"count":157,"preSum":2198},{"ndv":155,"upper":1784.32,"lower":1589.13,"count":157,"preSum":2355},{"ndv":157,"upper":1962.02,"lower":1785.3,"count":157,"preSum":2512},{"ndv":157,"upper":2145.83,"lower":1962.57,"count":157,"preSum":2669},{"ndv":157,"upper":2305.17,"lower":2148.02,"count":157,"preSum":2826},{"ndv":157,"upper":2485.12,"lower":2305.49,"count":157,"preSum":2983},{"ndv":156,"upper":2669.78,"lower":2485.44,"count":157,"preSum":3140},{"ndv":156,"upper":2842.33,"lower":2670.33,"count":157,"preSum":3297},{"ndv":156,"upper":3006.99,"lower":2843.8,"count":157,"preSum":3454},{"ndv":156,"upper":3165.34,"lower":3007.34,"count":157,"preSum":3611},{"ndv":156,"upper":3332.29,"lower":3165.62,"count":157,"preSum":3768},{"ndv":155,"upper":3501.64,"lower":3333.88,"count":157,"preSum":3925},{"ndv":157,"upper":3665.09,"lower":3501.92,"count":157,"preSum":4082},{"ndv":156,"upper":3844.28,"lower":3665.68,"count":157,"preSum":4239},{"ndv":157,"upper":4040.11,"lower":3846.26,"count":157,"preSum":4396},{"ndv":156,"upper":4217.05,"lower":4042.24,"count":157,"preSum":4553},{"ndv":157,"upper":4379.96,"lower":4217.09,"count":157,"preSum":4710},{"ndv":156,"upper":4571.04,"lower":4380.19,"count":157,"preSum":4867},{"ndv":157,"upper":4742.57,"lower":4572.92,"count":157,"preSum":5024},{"ndv":155,"upper":4925.36,"lower":4744.07,"count":157,"preSum":5181},{"ndv":157,"upper":5081.76,"lower":4925.55,"count":157,"preSum":5338},{"ndv":156,"upper":5236.68,"lower":5083.63,"count":157,"preSum":5495},{"ndv":157,"upper":5408.07,"lower":5237,"count":157,"preSum":5652},{"ndv":156,"upper":5571.39,"lower":5408.08,"count":157,"preSum":5809},{"ndv":157,"upper":5733.86,"lower":5571.81,"count":157,"preSum":5966},{"ndv":156,"upper":5907.27,"lower":5734.03,"count":157,"preSum":6123},{"ndv":156,"upper":6075.43,"lower":5907.58,"count":157,"preSum":6280},{"ndv":156,"upper":6240.69,"lower":6076.07,"count":157,"preSum":6437},{"ndv":157,"upper":6431.29,"lower":6241.06,"count":157,"preSum":6594},{"ndv":155,"upper":6598.53,"lower":6432.12,"count":157,"preSum":6751},{"ndv":156,"upper":6780.06,"lower":6598.86,"count":157,"preSum":6908},{"ndv":157,"upper":6965.91,"lower":6780.33,"count":157,"preSum":7065},{"ndv":157,"upper":7132.44,"lower":6966.67,"count":157,"preSum":7222},{"ndv":156,"upper":7304.24,"lower":7134.07,"count":157,"preSum":7379},{"ndv":157,"upper":7466.57,"lower":7304.3,"count":157,"preSum":7536},{"ndv":156,"upper":7626.64,"lower":7466.64,"count":157,"preSum":7693},{"ndv":156,"upper":7807.69,"lower":7626.76,"count":157,"preSum":7850},{"ndv":156,"upper":7958.64,"lower":7807.96,"count":157,"preSum":8007},{"ndv":157,"upper":8139.64,"lower":7961.26,"count":157,"preSum":8164},{"ndv":157,"upper":8323.29,"lower":8142.32,"count":157,"preSum":8321},{"ndv":157,"upper":8512.48,"lower":8327.34,"count":157,"preSum":8478},{"ndv":154,"upper":8676.06,"lower":8513.63,"count":157,"preSum":8635},{"ndv":157,"upper":8841.59,"lower":8676.78,"count":157,"preSum":8792},{"ndv":156,"upper":9013.06,"lower":8842.14,"count":157,"preSum":8949},{"ndv":156,"upper":9169.42,"lower":9014.26,"count":157,"preSum":9106},{"ndv":153,"upper":9337.05,"lower":9170.16,"count":157,"preSum":9263},{"ndv":157,"upper":9521.69,"lower":9338.2,"count":157,"preSum":9420},{"ndv":156,"upper":9680.2,"lower":9522.03,"count":157,"preSum":9577},{"ndv":156,"upper":9847.19,"lower":9681.1,"count":157,"preSum":9734},{"ndv":109,"upper":9999.72,"lower":9847.57,"count":109,"preSum":9891}],"maxBucketSize":64,"type":"Double","sampleRate":1.0} - supplier.s_acctbal.null_count: - 0 - supplier.s_acctbal.sample_rate: - 1.0 - supplier.s_address.TOPN: - {"countArr":[],"valueArr":[],"type":"String"} - supplier.s_address.cardinality: - 9940 - supplier.s_address.histogram: - {"buckets":[{"ndv":157,"upper":",,hFmixRsUfI","lower":" 9aW1wwnBJJPnCx,nox0MA48Y0zpI1IeVfYZ","count":157,"preSum":0},{"ndv":157,"upper":",zLgenfT0jr16MbjJt 9WfCU6xm2N3hQy79Migc","lower":",,Jv41XwKEEUINXqSWOFoxiJH5Z","count":157,"preSum":157},{"ndv":157,"upper":"1, XZttwkmbllozHYC9bp1StcxycsQ9K","lower":",ZpiRbWDArIS7","count":157,"preSum":314},{"ndv":157,"upper":"22J7yDqk9pnGoguOvx0x","lower":"1,3JwsvoowdMB7zoe0myv0Xk","count":157,"preSum":471},{"ndv":157,"upper":"31DM3ZWB3t6fdBu9HQt30LmZgeHj8Cxt0G","lower":"23XaUVLYuC3tQIPHCuLLgM5UawL","count":157,"preSum":628},{"ndv":157,"upper":"4 xClcX1vZVHyR67ZXitMln9skIjgvIotCO1","lower":"32cJBGFFpGEkEjx1sF8JZAy0A72uXL5qU","count":157,"preSum":785},{"ndv":157,"upper":"5056ztykbhkawZOeJMKyxyv","lower":"4,ZXKxiy0TJ","count":157,"preSum":942},{"ndv":157,"upper":"64x6vb0UkDRkp56NRHYNKEAeED3L1RDA5O5G","lower":"50EV3vyfAsWJAjTbT4qwU","count":157,"preSum":1099},{"ndv":157,"upper":"76Xzqa8AVjFv,GXw4gK4WQbAkT,W8MEH2","lower":"658tEqXLPvRd6xpFdqC2","count":157,"preSum":1256},{"ndv":157,"upper":"87sm8qgfLXUhrRvvaPQdHDElKll","lower":"77,1uiRw rXybJh","count":157,"preSum":1413},{"ndv":157,"upper":"93EycC3P9tiKu5XEkgb3duqG0","lower":"888kpdqayPqPBrSZ2aKNh9fSY,aaFPQb","count":157,"preSum":1570},{"ndv":157,"upper":"a,UE,6nRVl2fCphkOoetR1ajIzAEJ1Aa1G1HV","lower":"93NSzNRlTdFtzO6Y7YAcJVMm3k6Kejmi","count":157,"preSum":1727},{"ndv":157,"upper":"AMxVmYjvWzBZKrrRurkk0q","lower":"A0jDz3SUnGe7 riLcwD4akLvDAqV8GtXm MM2r53","count":157,"preSum":1884},{"ndv":157,"upper":"b6TLE65sryHFVFjTIukGqvuefvY5","lower":"aMZxdgerFmYRUivN6bot9FucS","count":157,"preSum":2041},{"ndv":157,"upper":"bQ964wtB,GulcdbG9myQsy3CeK17iNw1oOMotM","lower":"B7 7NHK5uwQ7GRYBCiRwgHqjhYYo62cvO6so","count":157,"preSum":2198},{"ndv":157,"upper":"c7fj5A AZFI1CXmBVNHILDV","lower":"bQBVFaIiG46wcY4ebXtyYcAA EGEc","count":157,"preSum":2355},{"ndv":157,"upper":"cOflLbPaDr6F9LhuG9TWQaRQmSfk mx","lower":"c7LwaiKGVuOoaP4F,OjuvEgW ","count":157,"preSum":2512},{"ndv":157,"upper":"d7GINn8JkTi0lu9O3UtW","lower":"cOg,bCELki4zYO9h01DHD8Hv0OV8,1z 4,","count":157,"preSum":2669},{"ndv":157,"upper":"dPRr4r43oK3EWdk1UmEmutjV6aXtcU","lower":"d7rDQneZCae9E57u3LSq7K","count":157,"preSum":2826},{"ndv":157,"upper":"EA256SSBFlnNj6D,4dRgFrm","lower":"DpYX7p iwphihHJz7h","count":157,"preSum":2983},{"ndv":157,"upper":"ep9O7fTWC8yUFtKOIEHotrTZQQ4Kkkptpmhy","lower":"Ea5h8EyGzY","count":157,"preSum":3140},{"ndv":157,"upper":"FAEEZyNtDGEhZ","lower":"EpAhauHHPf9ke5","count":157,"preSum":3297},{"ndv":157,"upper":"fQVbA9,L6tB9iFrCfk4Yt1dwT0kRWg9DV","lower":"FaJZ b KdjxA06ZdUW3sdWEAddDR","count":157,"preSum":3454},{"ndv":157,"upper":"G9I6PPy6WcBpsOPcO4CMORttcmxvbedNG","lower":"fR,RDoFTT2Y3XCDW","count":157,"preSum":3611},{"ndv":157,"upper":"go2c90uF4TsZEHg1aa3,Gacwm","lower":"gA20SjV3BGrB,cowC,hXTXtppX","count":157,"preSum":3768},{"ndv":157,"upper":"h9R,KyJVzCBLgj9En5mxOd0sJL XWE","lower":"gOBtQQlqTMmPpdlkyYRNfnYp,Dvu","count":157,"preSum":3925},{"ndv":157,"upper":"hQuhL6zQSZmVifUzpnKvRLNEfJhShDomdbGC","lower":"HA5lbMpFJevFg10lH0,a2","count":157,"preSum":4082},{"ndv":157,"upper":"IbPDbICEvbqGQF ","lower":"HqvL3WplaOkS","count":157,"preSum":4239},{"ndv":157,"upper":"irhmW87hVlyK zTaSW","lower":"iBXKCWbBiwBJ1FORzNGxqTvFNvolqRexgAYA","count":157,"preSum":4396},{"ndv":157,"upper":"JaTsYwI4yFu283q83","lower":"iri0I0IUBBVBnWMvHEPtuStMIU","count":157,"preSum":4553},{"ndv":157,"upper":"Jq04JXYA9uPeEhE5bLyo","lower":"jaz81C2z9HKz,g,9a1z7Gdc5YWdoa","count":157,"preSum":4710},{"ndv":157,"upper":"Ka9SQRCx8 KsA","lower":"jQ53qr,GLx7apLTqAIuHOBUkQc5Wz","count":157,"preSum":4867},{"ndv":157,"upper":"KsYYPIw2kWP","lower":"kAcH5hHmspYh,aA","count":157,"preSum":5024},{"ndv":157,"upper":"LBqiISwQ8,L98tE0JS7wC0gUNAzdro","lower":"KT cc4hGFVdzb8t5w6hf5","count":157,"preSum":5181},{"ndv":157,"upper":"lRBQi9D3IWGayjQhcw","lower":"LBspOqI3Cv616,9Rv75o1c","count":157,"preSum":5338},{"ndv":157,"upper":"ma15idU1PzO7itP67W1Rd","lower":"lRLYS1M8CXnOYJ9HITCcqk uZKPFjdmS","count":157,"preSum":5495},{"ndv":157,"upper":"mOHKvfkuuCQXiGO1EzYJFyCqCahY5,fn sQwehh","lower":"MA4ikT9mOlgSSZu17d0hdSGNc aFsivmV4 CIAS","count":157,"preSum":5652},{"ndv":157,"upper":"N1A48rWNnF63i,ePPBscDmOnHPRSJu","lower":"mOM9ggPwQSI1SX5lpumMLWc85u","count":157,"preSum":5809},{"ndv":157,"upper":"nkq6 NFnEfhdy6","lower":"n1HaaAgnJXyq0uOJUPZc4OtR6dFab998dsj5ojW","count":157,"preSum":5966},{"ndv":157,"upper":"O2ul2htH4kg1TRsn5d","lower":"NkRQYLe9d8vEXNO KKk8rxK502OI2 ","count":157,"preSum":6123},{"ndv":157,"upper":"Onc3t57VAMchm,pmoVLaU8bONni9NsuaM PzMMFz","lower":"o2X 3GLhipvp1ReLO7EcBlz13MI","count":157,"preSum":6280},{"ndv":157,"upper":"p5TvX4xf1n4aLh75Hw","lower":"ONda3YJiHKJOC","count":157,"preSum":6437},{"ndv":157,"upper":"pqck2ppy758TQpZCUAjPvlU55K3QjfL7Bi","lower":"p5Ui3IGPcmotYu","count":157,"preSum":6594},{"ndv":157,"upper":"QAjFojIKZdFJsyoE6vBZP","lower":"Pqgx1xdKu4In20 ","count":157,"preSum":6751},{"ndv":157,"upper":"qsAMCRV3wenlgA5bjn Vh","lower":"qajkuLHgP cRkdooPutjgKa8zxnYW","count":157,"preSum":6908},{"ndv":157,"upper":"RBpponq jRQR3,cEKMd4lYj2ZNhe7hZYrR,v J","lower":"qSEuR1Ri4Hrk LrOLGh","count":157,"preSum":7065},{"ndv":157,"upper":"rqBhrPpxZFhTZQ8V3BjoCv8L14Wy67Jy2Y","lower":"RBqY8HVamTPASc674Eqtk3Ql,","count":157,"preSum":7222},{"ndv":157,"upper":"s9TsiDVPstck","lower":"RQGjvRP7uFsx3pccm0H7NQ0fQp7GAUNAvtkakUid","count":157,"preSum":7379},{"ndv":157,"upper":"SrAe60iQ8wlU6wKYnTNoL3pNp w i0X7","lower":"sa U,SZL7BsDag12dYnXvYB9Ss2qm","count":157,"preSum":7536},{"ndv":157,"upper":"TC36OF8sxW71zzaDCR0","lower":"sRBWIIavn0AEKUn,tc","count":157,"preSum":7693},{"ndv":157,"upper":"Trf9ItDwPlRYrAglba","lower":"TC6RpSkg5fSfi2Ika06OqHhkIxUzNCtnkMeo","count":157,"preSum":7850},{"ndv":157,"upper":"uAjh0zBiJ0d","lower":"TrgmM5M7RbLEAMMMrPmlo9BzrSNBR","count":157,"preSum":8007},{"ndv":157,"upper":"uoqMdf7e7Gj9dbQ53","lower":"UaL9jrvT8BqR2GB","count":157,"preSum":8164},{"ndv":157,"upper":"V7Pk75s64GORPR1BbwN 2I1xawVm6C7OpGRa","lower":"UOvHgHsNlljfaOcztQ5f","count":157,"preSum":8321},{"ndv":157,"upper":"vOeYAusMVN9HDeDJZuvr9nC0E1a","lower":"v8dIXRVHj36WcUF4RKLjoRq Bt X6B 68cFU","count":157,"preSum":8478},{"ndv":157,"upper":"w7bQ4PCqVCZjaAtb","lower":"vofDxBRAvejcwdaWvU0wmYHWbiJt","count":157,"preSum":8635},{"ndv":157,"upper":"wnar78tt,IXV","lower":"W7lP8LAhnBnDdcF","count":157,"preSum":8792},{"ndv":157,"upper":"X3PL1AZMSUGm","lower":"wNasxwKglHa","count":157,"preSum":8949},{"ndv":157,"upper":"xMKInuZNsJ,gLecTyT ROceYfx","lower":"x3PUGAy4lrknjrVMUeVnktwvYLBK4tjXAM","count":157,"preSum":9106},{"ndv":157,"upper":"Y4O7cs1mRjv5ih 0nt RFI2qwNK","lower":"XMkX2032QKygvHfkFF4Hk1dvYKyhk","count":157,"preSum":9263},{"ndv":157,"upper":"YLMgP6bJXx1ny1hXz6BFm","lower":"y4OEw7UCy05r4q4O3x,pOPD2S","count":157,"preSum":9420},{"ndv":157,"upper":"z5Mm65PAP4m","lower":"ylo, 1pWf0xfyQmGenO4t1apcOX1","count":157,"preSum":9577},{"ndv":157,"upper":"zohVF4 4GHOJpWy9kdytvYwm27mJEBhk","lower":"Z5oAPo57q31ygVY2IibeIZGsSA6txe3UDxOXAq","count":157,"preSum":9734},{"ndv":109,"upper":"ZZZwPfP9X1xcLQ","lower":"ZOlKEPI,8ftemk3cAGokylKstRcZiBT0sc","count":109,"preSum":9891}],"maxBucketSize":64,"type":"String","sampleRate":1.0} - supplier.s_address.null_count: - 0 - supplier.s_address.sample_rate: - 1.0 - supplier.s_comment.TOPN: - {"countArr":[],"valueArr":[],"type":"String"} - supplier.s_comment.cardinality: - 9943 - supplier.s_comment.histogram: - {"buckets":[{"ndv":157,"upper":" asymptotes nag slyly pinto beans. pending request","lower":" about the blithely express foxes. bli","count":157,"preSum":0},{"ndv":157,"upper":" carefully final platelets use. even foxes wake. f","lower":" asymptotes wake quickly around the slyly regular ","count":157,"preSum":157},{"ndv":157,"upper":" express requests along the quickly eve","lower":" carefully final requests. even, even deposits hag","count":157,"preSum":314},{"ndv":157,"upper":" haggle slyly above the furiously regular pinto be","lower":" express requests sleep furiously ironic instructi","count":157,"preSum":471},{"ndv":157,"upper":" packages use furiously ironic somas. furiously ex","lower":" haggle slyly stealthily even packages. instructio","count":157,"preSum":628},{"ndv":157,"upper":" requests cajole furiously. fur","lower":" packages use quickly final deposits.","count":157,"preSum":785},{"ndv":157,"upper":" special theodolites sleep carefully even ideas. f","lower":" requests cajole quickly even depe","count":157,"preSum":942},{"ndv":157,"upper":" unusual epitaphs. blithely","lower":" special theodolites. furiously even packages cajo","count":157,"preSum":1099},{"ndv":157,"upper":". foxes nag slyly express, regular multipliers. re","lower":" unusual excuses. slyly ironic instructions use. r","count":157,"preSum":1256},{"ndv":157,"upper":"accounts wake about the slyly bold platelets. furi","lower":". frays around the special, final excuses haggle a","count":157,"preSum":1413},{"ndv":157,"upper":"ages. furiously even instructions according t","lower":"accounts wake slyly across the pending accou","count":157,"preSum":1570},{"ndv":157,"upper":"al Tiresias boost slyly about the slyly close pear","lower":"ages. furiously final courts boost slyly slyly iro","count":157,"preSum":1727},{"ndv":157,"upper":"arefully ironic ideas: slyly regular deposits abou","lower":"al warthogs boost slyly id","count":157,"preSum":1884},{"ndv":157,"upper":"blithely instructions. carefully final fox","lower":"arefully ironic packages above the special package","count":157,"preSum":2041},{"ndv":157,"upper":"carefully ironic packages according to the fluffil","lower":"blithely ironic accounts poach blithely alongside ","count":157,"preSum":2198},{"ndv":157,"upper":"ckly final requests. regular packages are carefull","lower":"carefully ironic packages. carefully unusual plate","count":157,"preSum":2355},{"ndv":157,"upper":"d frets ought to haggle blithely. slyly unusual in","lower":"ckly final theodolites; furiously sp","count":157,"preSum":2512},{"ndv":157,"upper":"dolites. even packages thrash. carefully ironic pi","lower":"d haggle. final theodolites sleep among the blithe","count":157,"preSum":2669},{"ndv":157,"upper":"e requests haggle carefully even ideas. express, b","lower":"dolites. furiously expres","count":157,"preSum":2826},{"ndv":157,"upper":"eep blithely even, ironic requests. carefully pend","lower":"e requests. regular accounts integrate slyly. quic","count":157,"preSum":2983},{"ndv":157,"upper":"ely ironic instructions sleep among the carefully ","lower":"eep blithely regular dependencies. blithely regula","count":157,"preSum":3140},{"ndv":157,"upper":"ependencies play to the blithely special requests.","lower":"ely permanent pinto beans are above the requests! ","count":157,"preSum":3297},{"ndv":157,"upper":"es snooze. carefully express deposits boost af","lower":"ependencies shall cajole beyond the regular, regul","count":157,"preSum":3454},{"ndv":157,"upper":"even orbits. slyly regular theodolites detect care","lower":"es unwind busily pending accounts. furiously ironi","count":157,"preSum":3611},{"ndv":157,"upper":"final ideas. ironic, ironic requests haggle furiou","lower":"even packages according to the special asymptotes ","count":157,"preSum":3768},{"ndv":157,"upper":"furiously fluffily ironic foxes. ironic packages a","lower":"final packages nag carefully according to the blit","count":157,"preSum":3925},{"ndv":157,"upper":"gle blithely according to the blithe","lower":"furiously fluffily regular courts. slyly ironic pi","count":157,"preSum":4082},{"ndv":157,"upper":"he fluffily express theodolites: Tiresias p","lower":"gle blithely blithely even accounts. always final ","count":157,"preSum":4239},{"ndv":157,"upper":"ic accounts. unusual, express deposits hinder slyl","lower":"he fluffily final requests. slyly ironic dependenc","count":157,"preSum":4396},{"ndv":157,"upper":"ily quiet accounts! blithe","lower":"ic dependencies. foxes wak","count":157,"preSum":4553},{"ndv":157,"upper":"ions. furiously regular deposits will haggle again","lower":"ily silent deposits into the slyly silent request","count":157,"preSum":4710},{"ndv":157,"upper":"ithely. regular packages detect. final foxes cajol","lower":"ions. ironic foxes haggle slyly along the furi","count":157,"preSum":4867},{"ndv":157,"upper":"kly carefully express asymptotes. furiou","lower":"ithely. regular pinto beans sleep. even","count":157,"preSum":5024},{"ndv":157,"upper":"lar somas. ironic requests wake furiou","lower":"kly carefully regular ideas. furiously even orbits","count":157,"preSum":5181},{"ndv":157,"upper":"lites wake above the even deposits. carefully pend","lower":"lar theodolites around the slyly even requests wak","count":157,"preSum":5338},{"ndv":157,"upper":"luffily. dogged deposits among the permanently iro","lower":"lites wake carefully. theodolites breach. theodoli","count":157,"preSum":5495},{"ndv":157,"upper":"ly ironic requests. carefully bold ideas haggle qu","lower":"luffy requests wake blithely. slyly unusual fox","count":157,"preSum":5652},{"ndv":157,"upper":"lyly pending deposits. requests wake. final pinto ","lower":"ly ironic requests. carefully regular accounts hag","count":157,"preSum":5809},{"ndv":157,"upper":"ndencies between the doggedly pending requests ser","lower":"lyly pending ideas cajole. blithely ","count":157,"preSum":5966},{"ndv":157,"upper":"ns cajole. fluffily express deposits cajole blithe","lower":"ndencies cajole quickly. special dinos cajole bold","count":157,"preSum":6123},{"ndv":157,"upper":"nusual deposits sleep final, special deposits. car","lower":"ns do boost deposits. unusual instructions sleep f","count":157,"preSum":6280},{"ndv":157,"upper":"olphins. slyly regular requ","lower":"nusual deposits. furiously special deposits integr","count":157,"preSum":6437},{"ndv":157,"upper":"osits. furiously bold asymptotes about the ironica","lower":"olve quickly bold deposits","count":157,"preSum":6594},{"ndv":157,"upper":"ously unusual somas. quickly regular pinto be","lower":"osits. furiously express ideas impress furiously i","count":157,"preSum":6751},{"ndv":157,"upper":"pending requests unwind accounts. express, furious","lower":"ously. dolphins haggle before the quickly ironic d","count":157,"preSum":6908},{"ndv":157,"upper":"quickly ironic asymptotes cajole. furiously ironic","lower":"pending requests wake quickly according to the car","count":157,"preSum":7065},{"ndv":157,"upper":"refully express platelets; d","lower":"quickly ironic packages affix aft","count":157,"preSum":7222},{"ndv":157,"upper":"ress deposits. special asymptotes wake blithely in","lower":"refully express requests after the pinto beans caj","count":157,"preSum":7379},{"ndv":157,"upper":"ross the ironic pinto beans haggle packages. packa","lower":"ress excuses are along the even attainments. even ","count":157,"preSum":7536},{"ndv":157,"upper":"s engage carefully alongside of the idly regula","lower":"ross the pending, bold accounts. ruthless, final ","count":157,"preSum":7693},{"ndv":157,"upper":"s. accounts grow slyly regular","lower":"s excuses nag. bold ideas sleep furiously bold req","count":157,"preSum":7850},{"ndv":157,"upper":"side of the carefully final ideas","lower":"s. accounts haggle slyly. f","count":157,"preSum":8007},{"ndv":157,"upper":"slyly final patterns according to the requests aff","lower":"side of the carefully ironic requests. stealthy ac","count":157,"preSum":8164},{"ndv":157,"upper":"sts. ideas sleep furiously. bold theodolites along","lower":"slyly final pinto beans solve furiously","count":157,"preSum":8321},{"ndv":157,"upper":"tes. fluffily busy deposits wake carefully regular","lower":"sts. ironic braids sleep carefully according to th","count":157,"preSum":8478},{"ndv":157,"upper":"theodolites. deposits are furiously theodolites. s","lower":"tes. furiously careful pains are. quickly even pla","count":157,"preSum":8635},{"ndv":157,"upper":"ts sleep blithely above the final platelets. ironi","lower":"theodolites. foxes are: furiousl","count":157,"preSum":8792},{"ndv":157,"upper":"uffily about the furiously even foxes. regular dec","lower":"ts sleep blithely carefully silent requests. quick","count":157,"preSum":8949},{"ndv":157,"upper":"unts along the ironic accounts must have to haggle","lower":"uffily according to the express acco","count":157,"preSum":9106},{"ndv":157,"upper":"usly according to the blithely regular ideas. blit","lower":"unts along the slyly regular instructions detect s","count":157,"preSum":9263},{"ndv":157,"upper":"wake slyly blithely unusual packages; quickly regu","lower":"usly according to the slyly pending ","count":157,"preSum":9420},{"ndv":157,"upper":"y express asymptotes haggle deposits. final deposi","lower":"wake. carefully even patterns solve slyl","count":157,"preSum":9577},{"ndv":157,"upper":"y slow accounts. carefully express foxes are furio","lower":"y express deposits. quickly final deposits sleep f","count":157,"preSum":9734},{"ndv":109,"upper":"zzle furiously. bold accounts haggle furiously iro","lower":"y slyly quiet deposits. quickly ironic accounts us","count":109,"preSum":9891}],"maxBucketSize":64,"type":"String","sampleRate":1.0} - supplier.s_comment.null_count: - 0 - supplier.s_comment.sample_rate: - 1.0 - supplier.s_name.TOPN: - {"countArr":[],"valueArr":[],"type":"String"} - supplier.s_name.cardinality: - 9948 - supplier.s_name.histogram: - {"buckets":[{"ndv":157,"upper":"Supplier#000000157","lower":"Supplier#000000001","count":157,"preSum":0},{"ndv":157,"upper":"Supplier#000000314","lower":"Supplier#000000158","count":157,"preSum":157},{"ndv":157,"upper":"Supplier#000000471","lower":"Supplier#000000315","count":157,"preSum":314},{"ndv":157,"upper":"Supplier#000000628","lower":"Supplier#000000472","count":157,"preSum":471},{"ndv":157,"upper":"Supplier#000000785","lower":"Supplier#000000629","count":157,"preSum":628},{"ndv":157,"upper":"Supplier#000000942","lower":"Supplier#000000786","count":157,"preSum":785},{"ndv":157,"upper":"Supplier#000001099","lower":"Supplier#000000943","count":157,"preSum":942},{"ndv":157,"upper":"Supplier#000001256","lower":"Supplier#000001100","count":157,"preSum":1099},{"ndv":157,"upper":"Supplier#000001413","lower":"Supplier#000001257","count":157,"preSum":1256},{"ndv":157,"upper":"Supplier#000001570","lower":"Supplier#000001414","count":157,"preSum":1413},{"ndv":157,"upper":"Supplier#000001727","lower":"Supplier#000001571","count":157,"preSum":1570},{"ndv":157,"upper":"Supplier#000001884","lower":"Supplier#000001728","count":157,"preSum":1727},{"ndv":157,"upper":"Supplier#000002041","lower":"Supplier#000001885","count":157,"preSum":1884},{"ndv":157,"upper":"Supplier#000002198","lower":"Supplier#000002042","count":157,"preSum":2041},{"ndv":157,"upper":"Supplier#000002355","lower":"Supplier#000002199","count":157,"preSum":2198},{"ndv":157,"upper":"Supplier#000002512","lower":"Supplier#000002356","count":157,"preSum":2355},{"ndv":157,"upper":"Supplier#000002669","lower":"Supplier#000002513","count":157,"preSum":2512},{"ndv":157,"upper":"Supplier#000002826","lower":"Supplier#000002670","count":157,"preSum":2669},{"ndv":157,"upper":"Supplier#000002983","lower":"Supplier#000002827","count":157,"preSum":2826},{"ndv":157,"upper":"Supplier#000003140","lower":"Supplier#000002984","count":157,"preSum":2983},{"ndv":157,"upper":"Supplier#000003297","lower":"Supplier#000003141","count":157,"preSum":3140},{"ndv":157,"upper":"Supplier#000003454","lower":"Supplier#000003298","count":157,"preSum":3297},{"ndv":157,"upper":"Supplier#000003611","lower":"Supplier#000003455","count":157,"preSum":3454},{"ndv":157,"upper":"Supplier#000003768","lower":"Supplier#000003612","count":157,"preSum":3611},{"ndv":157,"upper":"Supplier#000003925","lower":"Supplier#000003769","count":157,"preSum":3768},{"ndv":157,"upper":"Supplier#000004082","lower":"Supplier#000003926","count":157,"preSum":3925},{"ndv":157,"upper":"Supplier#000004239","lower":"Supplier#000004083","count":157,"preSum":4082},{"ndv":157,"upper":"Supplier#000004396","lower":"Supplier#000004240","count":157,"preSum":4239},{"ndv":157,"upper":"Supplier#000004553","lower":"Supplier#000004397","count":157,"preSum":4396},{"ndv":157,"upper":"Supplier#000004710","lower":"Supplier#000004554","count":157,"preSum":4553},{"ndv":157,"upper":"Supplier#000004867","lower":"Supplier#000004711","count":157,"preSum":4710},{"ndv":157,"upper":"Supplier#000005024","lower":"Supplier#000004868","count":157,"preSum":4867},{"ndv":157,"upper":"Supplier#000005181","lower":"Supplier#000005025","count":157,"preSum":5024},{"ndv":157,"upper":"Supplier#000005338","lower":"Supplier#000005182","count":157,"preSum":5181},{"ndv":157,"upper":"Supplier#000005495","lower":"Supplier#000005339","count":157,"preSum":5338},{"ndv":157,"upper":"Supplier#000005652","lower":"Supplier#000005496","count":157,"preSum":5495},{"ndv":157,"upper":"Supplier#000005809","lower":"Supplier#000005653","count":157,"preSum":5652},{"ndv":157,"upper":"Supplier#000005966","lower":"Supplier#000005810","count":157,"preSum":5809},{"ndv":157,"upper":"Supplier#000006123","lower":"Supplier#000005967","count":157,"preSum":5966},{"ndv":157,"upper":"Supplier#000006280","lower":"Supplier#000006124","count":157,"preSum":6123},{"ndv":157,"upper":"Supplier#000006437","lower":"Supplier#000006281","count":157,"preSum":6280},{"ndv":157,"upper":"Supplier#000006594","lower":"Supplier#000006438","count":157,"preSum":6437},{"ndv":157,"upper":"Supplier#000006751","lower":"Supplier#000006595","count":157,"preSum":6594},{"ndv":157,"upper":"Supplier#000006908","lower":"Supplier#000006752","count":157,"preSum":6751},{"ndv":157,"upper":"Supplier#000007065","lower":"Supplier#000006909","count":157,"preSum":6908},{"ndv":157,"upper":"Supplier#000007222","lower":"Supplier#000007066","count":157,"preSum":7065},{"ndv":157,"upper":"Supplier#000007379","lower":"Supplier#000007223","count":157,"preSum":7222},{"ndv":157,"upper":"Supplier#000007536","lower":"Supplier#000007380","count":157,"preSum":7379},{"ndv":157,"upper":"Supplier#000007693","lower":"Supplier#000007537","count":157,"preSum":7536},{"ndv":157,"upper":"Supplier#000007850","lower":"Supplier#000007694","count":157,"preSum":7693},{"ndv":157,"upper":"Supplier#000008007","lower":"Supplier#000007851","count":157,"preSum":7850},{"ndv":157,"upper":"Supplier#000008164","lower":"Supplier#000008008","count":157,"preSum":8007},{"ndv":157,"upper":"Supplier#000008321","lower":"Supplier#000008165","count":157,"preSum":8164},{"ndv":157,"upper":"Supplier#000008478","lower":"Supplier#000008322","count":157,"preSum":8321},{"ndv":157,"upper":"Supplier#000008635","lower":"Supplier#000008479","count":157,"preSum":8478},{"ndv":157,"upper":"Supplier#000008792","lower":"Supplier#000008636","count":157,"preSum":8635},{"ndv":157,"upper":"Supplier#000008949","lower":"Supplier#000008793","count":157,"preSum":8792},{"ndv":157,"upper":"Supplier#000009106","lower":"Supplier#000008950","count":157,"preSum":8949},{"ndv":157,"upper":"Supplier#000009263","lower":"Supplier#000009107","count":157,"preSum":9106},{"ndv":157,"upper":"Supplier#000009420","lower":"Supplier#000009264","count":157,"preSum":9263},{"ndv":157,"upper":"Supplier#000009577","lower":"Supplier#000009421","count":157,"preSum":9420},{"ndv":157,"upper":"Supplier#000009734","lower":"Supplier#000009578","count":157,"preSum":9577},{"ndv":157,"upper":"Supplier#000009891","lower":"Supplier#000009735","count":157,"preSum":9734},{"ndv":109,"upper":"Supplier#000010000","lower":"Supplier#000009892","count":109,"preSum":9891}],"maxBucketSize":64,"type":"String","sampleRate":1.0} - supplier.s_name.null_count: - 0 - supplier.s_name.sample_rate: - 1.0 - supplier.s_nationkey.TOPN: - {"countArr":[397,380,402,396,405,393,377,376,373,398,399,401,390,393],"valueArr":[2,5,6,7,9,10,12,14,15,19,21,22,23,24],"type":"Int"} - supplier.s_nationkey.cardinality: - 25 - supplier.s_nationkey.histogram: - {"buckets":[{"ndv":1,"upper":0,"lower":0,"count":420,"preSum":0},{"ndv":1,"upper":1,"lower":1,"count":413,"preSum":420},{"ndv":1,"upper":3,"lower":3,"count":412,"preSum":833},{"ndv":1,"upper":4,"lower":4,"count":415,"preSum":1245},{"ndv":1,"upper":8,"lower":8,"count":415,"preSum":1660},{"ndv":1,"upper":11,"lower":11,"count":438,"preSum":2075},{"ndv":1,"upper":13,"lower":13,"count":362,"preSum":2513},{"ndv":1,"upper":16,"lower":16,"count":406,"preSum":2875},{"ndv":1,"upper":17,"lower":17,"count":421,"preSum":3281},{"ndv":1,"upper":18,"lower":18,"count":407,"preSum":3702},{"ndv":1,"upper":20,"lower":20,"count":411,"preSum":4109}],"maxBucketSize":64,"type":"Int","sampleRate":1.0} - supplier.s_nationkey.null_count: - 0 - supplier.s_nationkey.sample_rate: - 1.0 - supplier.s_phone.TOPN: - {"countArr":[],"valueArr":[],"type":"String"} - supplier.s_phone.cardinality: - 9954 - supplier.s_phone.histogram: - {"buckets":[{"ndv":157,"upper":"10-425-901-8610","lower":"10-102-116-6785","count":157,"preSum":0},{"ndv":157,"upper":"10-758-994-2567","lower":"10-428-575-1918","count":157,"preSum":157},{"ndv":157,"upper":"11-231-892-1749","lower":"10-761-431-1486","count":157,"preSum":314},{"ndv":157,"upper":"11-559-591-5678","lower":"11-235-588-6823","count":157,"preSum":471},{"ndv":157,"upper":"11-895-219-9405","lower":"11-561-100-9470","count":157,"preSum":628},{"ndv":157,"upper":"12-347-684-6545","lower":"11-895-494-6558","count":157,"preSum":785},{"ndv":157,"upper":"12-714-202-7354","lower":"12-354-583-7278","count":157,"preSum":942},{"ndv":157,"upper":"13-168-561-4489","lower":"12-714-462-8120","count":157,"preSum":1099},{"ndv":157,"upper":"13-503-944-6248","lower":"13-169-466-8402","count":157,"preSum":1256},{"ndv":157,"upper":"13-832-953-5827","lower":"13-504-962-1709","count":157,"preSum":1413},{"ndv":157,"upper":"14-282-158-8397","lower":"13-837-191-7870","count":157,"preSum":1570},{"ndv":157,"upper":"14-604-858-1037","lower":"14-284-910-3726","count":157,"preSum":1727},{"ndv":157,"upper":"14-967-555-6641","lower":"14-606-224-3002","count":157,"preSum":1884},{"ndv":157,"upper":"15-450-466-2595","lower":"14-968-467-7333","count":157,"preSum":2041},{"ndv":157,"upper":"15-819-523-4605","lower":"15-451-727-3089","count":157,"preSum":2198},{"ndv":157,"upper":"16-263-365-3876","lower":"15-820-745-6527","count":157,"preSum":2355},{"ndv":157,"upper":"16-616-621-1011","lower":"16-263-437-5752","count":157,"preSum":2512},{"ndv":157,"upper":"16-973-502-2217","lower":"16-618-780-7481","count":157,"preSum":2669},{"ndv":157,"upper":"17-447-811-3282","lower":"16-974-998-8937","count":157,"preSum":2826},{"ndv":157,"upper":"17-802-655-8002","lower":"17-448-210-2434","count":157,"preSum":2983},{"ndv":157,"upper":"18-239-284-5694","lower":"17-804-110-6206","count":157,"preSum":3140},{"ndv":157,"upper":"18-574-428-7441","lower":"18-239-643-9980","count":157,"preSum":3297},{"ndv":157,"upper":"18-912-354-6265","lower":"18-577-263-9175","count":157,"preSum":3454},{"ndv":157,"upper":"19-362-745-1503","lower":"18-914-376-1742","count":157,"preSum":3611},{"ndv":157,"upper":"19-675-940-5244","lower":"19-364-923-8043","count":157,"preSum":3768},{"ndv":157,"upper":"20-151-872-6299","lower":"19-682-493-2497","count":157,"preSum":3925},{"ndv":157,"upper":"20-490-946-1389","lower":"20-152-963-1884","count":157,"preSum":4082},{"ndv":157,"upper":"20-897-164-8136","lower":"20-491-907-4984","count":157,"preSum":4239},{"ndv":157,"upper":"21-292-258-4757","lower":"20-898-404-4723","count":157,"preSum":4396},{"ndv":157,"upper":"21-642-305-7144","lower":"21-299-169-1876","count":157,"preSum":4553},{"ndv":157,"upper":"21-962-509-4762","lower":"21-643-398-5866","count":157,"preSum":4710},{"ndv":157,"upper":"22-392-226-3266","lower":"21-963-444-7397","count":157,"preSum":4867},{"ndv":157,"upper":"22-804-704-9601","lower":"22-394-329-1153","count":157,"preSum":5024},{"ndv":157,"upper":"23-263-254-2472","lower":"22-806-713-2802","count":157,"preSum":5181},{"ndv":157,"upper":"23-689-976-9856","lower":"23-264-756-2278","count":157,"preSum":5338},{"ndv":157,"upper":"24-161-804-6338","lower":"23-696-420-8788","count":157,"preSum":5495},{"ndv":157,"upper":"24-489-868-4574","lower":"24-168-367-6579","count":157,"preSum":5652},{"ndv":157,"upper":"24-896-212-6974","lower":"24-495-986-2266","count":157,"preSum":5809},{"ndv":157,"upper":"25-384-564-1345","lower":"24-904-562-9289","count":157,"preSum":5966},{"ndv":157,"upper":"25-763-190-7789","lower":"25-384-805-6049","count":157,"preSum":6123},{"ndv":157,"upper":"26-212-331-6862","lower":"25-765-538-7915","count":157,"preSum":6280},{"ndv":157,"upper":"26-561-181-2965","lower":"26-217-989-9553","count":157,"preSum":6437},{"ndv":157,"upper":"26-940-594-4852","lower":"26-562-123-8958","count":157,"preSum":6594},{"ndv":157,"upper":"27-323-628-1319","lower":"26-940-708-5574","count":157,"preSum":6751},{"ndv":157,"upper":"27-629-618-9634","lower":"27-326-227-8739","count":157,"preSum":6908},{"ndv":157,"upper":"28-146-390-5101","lower":"27-639-321-9156","count":157,"preSum":7065},{"ndv":157,"upper":"28-457-867-6302","lower":"28-147-515-6998","count":157,"preSum":7222},{"ndv":157,"upper":"28-818-961-8706","lower":"28-458-231-8410","count":157,"preSum":7379},{"ndv":157,"upper":"29-280-937-5732","lower":"28-821-408-8572","count":157,"preSum":7536},{"ndv":157,"upper":"29-598-923-9264","lower":"29-281-504-6257","count":157,"preSum":7693},{"ndv":157,"upper":"30-100-280-3565","lower":"29-600-465-5561","count":157,"preSum":7850},{"ndv":157,"upper":"30-425-720-9255","lower":"30-101-252-7593","count":157,"preSum":8007},{"ndv":157,"upper":"30-768-427-6008","lower":"30-427-241-8847","count":157,"preSum":8164},{"ndv":157,"upper":"31-248-228-7667","lower":"30-768-643-9197","count":157,"preSum":8321},{"ndv":157,"upper":"31-595-224-7696","lower":"31-253-201-4873","count":157,"preSum":8478},{"ndv":157,"upper":"31-947-656-9051","lower":"31-596-125-8311","count":157,"preSum":8635},{"ndv":157,"upper":"32-416-130-1867","lower":"31-950-540-3460","count":157,"preSum":8792},{"ndv":157,"upper":"32-724-166-1125","lower":"32-417-987-3690","count":157,"preSum":8949},{"ndv":157,"upper":"33-182-240-4174","lower":"32-731-692-4007","count":157,"preSum":9106},{"ndv":157,"upper":"33-520-342-6702","lower":"33-182-694-8043","count":157,"preSum":9263},{"ndv":157,"upper":"33-908-326-9389","lower":"33-522-267-9970","count":157,"preSum":9420},{"ndv":157,"upper":"34-399-762-9864","lower":"33-912-140-2009","count":157,"preSum":9577},{"ndv":157,"upper":"34-768-936-4723","lower":"34-401-708-8154","count":157,"preSum":9734},{"ndv":109,"upper":"34-998-900-4911","lower":"34-774-530-4188","count":109,"preSum":9891}],"maxBucketSize":64,"type":"String","sampleRate":1.0} - supplier.s_phone.null_count: - 0 - supplier.s_phone.sample_rate: - 1.0 - supplier.s_suppkey.TOPN: - {"countArr":[],"valueArr":[],"type":"Int"} - supplier.s_suppkey.cardinality: - 9948 - supplier.s_suppkey.histogram: - {"buckets":[{"ndv":157,"upper":157,"lower":1,"count":157,"preSum":0},{"ndv":157,"upper":314,"lower":158,"count":157,"preSum":157},{"ndv":157,"upper":471,"lower":315,"count":157,"preSum":314},{"ndv":157,"upper":628,"lower":472,"count":157,"preSum":471},{"ndv":157,"upper":785,"lower":629,"count":157,"preSum":628},{"ndv":157,"upper":942,"lower":786,"count":157,"preSum":785},{"ndv":157,"upper":1099,"lower":943,"count":157,"preSum":942},{"ndv":157,"upper":1256,"lower":1100,"count":157,"preSum":1099},{"ndv":157,"upper":1413,"lower":1257,"count":157,"preSum":1256},{"ndv":157,"upper":1570,"lower":1414,"count":157,"preSum":1413},{"ndv":157,"upper":1727,"lower":1571,"count":157,"preSum":1570},{"ndv":157,"upper":1884,"lower":1728,"count":157,"preSum":1727},{"ndv":157,"upper":2041,"lower":1885,"count":157,"preSum":1884},{"ndv":157,"upper":2198,"lower":2042,"count":157,"preSum":2041},{"ndv":157,"upper":2355,"lower":2199,"count":157,"preSum":2198},{"ndv":157,"upper":2512,"lower":2356,"count":157,"preSum":2355},{"ndv":157,"upper":2669,"lower":2513,"count":157,"preSum":2512},{"ndv":157,"upper":2826,"lower":2670,"count":157,"preSum":2669},{"ndv":157,"upper":2983,"lower":2827,"count":157,"preSum":2826},{"ndv":157,"upper":3140,"lower":2984,"count":157,"preSum":2983},{"ndv":157,"upper":3297,"lower":3141,"count":157,"preSum":3140},{"ndv":157,"upper":3454,"lower":3298,"count":157,"preSum":3297},{"ndv":157,"upper":3611,"lower":3455,"count":157,"preSum":3454},{"ndv":157,"upper":3768,"lower":3612,"count":157,"preSum":3611},{"ndv":157,"upper":3925,"lower":3769,"count":157,"preSum":3768},{"ndv":157,"upper":4082,"lower":3926,"count":157,"preSum":3925},{"ndv":157,"upper":4239,"lower":4083,"count":157,"preSum":4082},{"ndv":157,"upper":4396,"lower":4240,"count":157,"preSum":4239},{"ndv":157,"upper":4553,"lower":4397,"count":157,"preSum":4396},{"ndv":157,"upper":4710,"lower":4554,"count":157,"preSum":4553},{"ndv":157,"upper":4867,"lower":4711,"count":157,"preSum":4710},{"ndv":157,"upper":5024,"lower":4868,"count":157,"preSum":4867},{"ndv":157,"upper":5181,"lower":5025,"count":157,"preSum":5024},{"ndv":157,"upper":5338,"lower":5182,"count":157,"preSum":5181},{"ndv":157,"upper":5495,"lower":5339,"count":157,"preSum":5338},{"ndv":157,"upper":5652,"lower":5496,"count":157,"preSum":5495},{"ndv":157,"upper":5809,"lower":5653,"count":157,"preSum":5652},{"ndv":157,"upper":5966,"lower":5810,"count":157,"preSum":5809},{"ndv":157,"upper":6123,"lower":5967,"count":157,"preSum":5966},{"ndv":157,"upper":6280,"lower":6124,"count":157,"preSum":6123},{"ndv":157,"upper":6437,"lower":6281,"count":157,"preSum":6280},{"ndv":157,"upper":6594,"lower":6438,"count":157,"preSum":6437},{"ndv":157,"upper":6751,"lower":6595,"count":157,"preSum":6594},{"ndv":157,"upper":6908,"lower":6752,"count":157,"preSum":6751},{"ndv":157,"upper":7065,"lower":6909,"count":157,"preSum":6908},{"ndv":157,"upper":7222,"lower":7066,"count":157,"preSum":7065},{"ndv":157,"upper":7379,"lower":7223,"count":157,"preSum":7222},{"ndv":157,"upper":7536,"lower":7380,"count":157,"preSum":7379},{"ndv":157,"upper":7693,"lower":7537,"count":157,"preSum":7536},{"ndv":157,"upper":7850,"lower":7694,"count":157,"preSum":7693},{"ndv":157,"upper":8007,"lower":7851,"count":157,"preSum":7850},{"ndv":157,"upper":8164,"lower":8008,"count":157,"preSum":8007},{"ndv":157,"upper":8321,"lower":8165,"count":157,"preSum":8164},{"ndv":157,"upper":8478,"lower":8322,"count":157,"preSum":8321},{"ndv":157,"upper":8635,"lower":8479,"count":157,"preSum":8478},{"ndv":157,"upper":8792,"lower":8636,"count":157,"preSum":8635},{"ndv":157,"upper":8949,"lower":8793,"count":157,"preSum":8792},{"ndv":157,"upper":9106,"lower":8950,"count":157,"preSum":8949},{"ndv":157,"upper":9263,"lower":9107,"count":157,"preSum":9106},{"ndv":157,"upper":9420,"lower":9264,"count":157,"preSum":9263},{"ndv":157,"upper":9577,"lower":9421,"count":157,"preSum":9420},{"ndv":157,"upper":9734,"lower":9578,"count":157,"preSum":9577},{"ndv":157,"upper":9891,"lower":9735,"count":157,"preSum":9734},{"ndv":109,"upper":10000,"lower":9892,"count":109,"preSum":9891}],"maxBucketSize":64,"type":"Int","sampleRate":1.0} - supplier.s_suppkey.null_count: - 0 - supplier.s_suppkey.sample_rate: - 1.0 - lineitem.l_receiptdate.composite_cardinality: - -11819 - lineitem.l_shipmode.composite_cardinality: - -11819 - orders.o_orderstatus.composite_cardinality: - -11819 -CONFIG: - ENABLE_BKA_JOIN: - null - MPP_METRIC_LEVEL: - 0 - FORCE_APPLY_CACHE: - TRUE - CONN_POOL_XPROTO_XPLAN_TABLE_SCAN: - false - ENABLE_SPM: - TRUE - ENABLE_MPP: - FALSE - CONN_POOL_MAX_WAIT_THREAD_COUNT: - 0 - CONN_POOL_XPROTO_CONFIG: - - CONN_POOL_XPROTO_MAX_POOLED_SESSION_PER_INST: - 512 - CONN_POOL_XPROTO_PURE_ASYNC_MPP: - true - CONN_POOL_XPROTO_SESSION_AGING_TIME: - 600000 - RECORD_SQL: - TRUE - CONN_POOL_XPROTO_MIN_POOLED_SESSION_PER_INST: - 32 - CONN_POOL_XPROTO_CHUNK_RESULT: - true - ENABLE_SCALE_OUT_FEATURE: - true - SQL_SIMPLE_MAX_LENGTH: - 1005 - SCAN_TIMEOUT_INTERVAL: - 121 - CHOOSE_STREAMING: - true - ENABLE_DELETE_WITH_LIMIT: - TRUE - MAX_PHYSICAL_PARTITION_COUNT: - 8192 - FORBID_EXECUTE_DML_ALL: - FALSE - AUTO_PARTITION_PARTITIONS: - 3 - ENABLE_AUTO_MERGE_INTERVALS_IN_PRUNING: - true - GROUP_SEQ_CHECK_INTERVAL: - 5 - CONN_POOL_XPROTO_SLOW_THRESH: - 1000 - COMMIT_TIMEOUT: - 180000 - CONN_POOL_XPROTO_QUERY_TOKEN: - 10000 - MPP_RPC_LOCAL_ENABLED: - false - CONN_POOL_MAX_POOL_SIZE: - 60 - HINT_PARSER_FLAG: - TRUE - GET_TSO_TIMEOUT: - 5000 - LOGICAL_DB_TIME_ZONE: - +08:00 - STORAGE_SUPPORTS_BLOOM_FILTER: - true - TRUE: - FALSE - SQL_DELAY_CUTOFF: - 2 - CONN_POOL_PROPERTIES: - connectTimeout=5000;characterEncoding=utf8;autoReconnect=true;failOverReadOnly=false;socketTimeout=12000;rewriteBatchedStatements=true;useServerPrepStmts=false;useSSL=false - ENABLE_SIMPLE_SEQUENCE: - TRUE - INIT_CONCURRENT_POOL_EVERY_CONNECTION: - false - SINGLE_GROUP_STORAGE_INST_LIST: - polardbx-storage-0-master - CONN_POOL_XPROTO_MAX_PACKET_SIZE: - 67108864 - CONN_POOL_XPROTO_CHECKER: - true - ENABLE_UPDATE_PARTITION_KEY: - false - CONN_POOL_XPROTO_DIRECT_WRITE: - false - CONN_POOL_XPROTO_MAX_SESSION_PER_CLIENT: - 1024 - STATISTIC_COLLECTOR_FROM_RULE: - true - USE_FAST_SINGLE_POINT_INTERVAL_MERGING: - false - CONN_POOL_XPROTO_AUTH: - true - CONN_POOL_BLOCK_TIMEOUT: - 5000 - MPP_TABLESCAN_CONNECTION_STRATEGY: - 0 - ENABLE_UPDATE_WITH_LIMIT: - TRUE - CONN_POOL_IDLE_TIMEOUT: - 60 - ENABLE_CBO: - TRUE - CONN_POOL_XPROTO_XPLAN_EXPEND_STAR: - true - CONN_POOL_XPROTO_STORAGE_DB_PORT: - 0 - ENABLE_DDL: - TRUE - MAX_PARTITION_COLUMN_COUNT: - 5 - DEFAULT_PARTITION_MODE: - drds - CONN_POOL_XPROTO_PIPE_BUFFER_SIZE: - 268435456 - PROCESS_AUTO_INCREMENT_BY_SEQUENCE: - true - ALLOW_SIMPLE_SEQUENCE: - false - PURGE_TRANS_BEFORE: - 604801 - PURGE_TRANS_INTERVAL: - 86401 - WORKLOAD_TYPE: - AP - CONN_POOL_XPROTO_FEEDBACK: - true - SHOW_TABLE_GROUP_NAME: - false - ENABLE_CONST_EXPR_EVAL_CACHE: - true - CONN_POOL_XPROTO_MESSAGE_TIMESTAMP: - true - PARALLELISM: - -1 - SOCKET_TIMEOUT: - 900000 - ENABLE_INTERVAL_ENUMERATION_IN_PRUNING: - true - PARTITION_PRUNING_STEP_COUNT_LIMIT: - 1024 - ENABLE_FORBID_PUSH_DML_WITH_HINT: - FALSE - CONN_POOL_XPROTO_META_DB_PORT: - 0 - ENABLE_MASTER_MPP: - true - CONN_POOL_MIN_POOL_SIZE: - 5 - SHARD_DB_COUNT_EACH_STORAGE_INST: - 2 - ENABLE_ALTER_DDL: - true - PLAN_EXTERNALIZE_TEST: - TRUE - CONN_POOL_XPROTO_PLAN_CACHE: - true - MAX_ENUMERABLE_INTERVAL_LENGTH: - 32 - CONN_POOL_XPROTO_MAX_CLIENT_PER_INST: - 32 - NET_WRITE_TIMEOUT: - 28800 - ENABLE_PARTITION_MANAGEMENT: - false - CONN_POOL_XPROTO_XPLAN: - true - ENABLE_SELF_CROSS_JOIN: - true - INIT_WORKER: - FALSE - CDC_STARTUP_MODE: - 1 - CONN_POOL_XPROTO_TRX_LEAK_CHECK: - false - CONN_POOL_XPROTO_FLAG: - 0 - USE_CHUNK_EXECUTOR: - AUTO - RETRY_ERROR_SQL_ON_OLD_SERVER: - true - SCALE_OUT_DROP_DATABASE_AFTER_SWITCH_DATASOURCE: - false - MAX_LOGICAL_DB_COUNT: - 2048 - CONN_POOL_XPROTO_AUTO_COMMIT_OPTIMIZE: - true - SHOW_HASH_PARTITIONS_BY_RANGE: - false - defaltxxAPPName.isNew: - true diff --git a/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/oss/Tpch1TTest.yml b/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/oss/Tpch1TTest.yml index f0a1c8fb7..cdbd4ce0a 100644 --- a/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/oss/Tpch1TTest.yml +++ b/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/oss/Tpch1TTest.yml @@ -258,8 +258,8 @@ SQL: partialhashagg(group="l_shipmode", high_line_count="sum(case)", low_line_count="sum(case2)") project(o_orderkey="o_orderkey", case="case(in($1, row(?0, ?1)), ?2, ?3)", case2="case(and(<>($1, ?4), <>($1, ?5)), ?6, ?7)", l_orderkey="l_orderkey", l_shipmode="l_shipmode") hashjoin(condition="l_orderkey = o_orderkey", type="inner", partition=[local]) - osstablescan(tables="orders[p1,p2,p3,...p96]", shardcount=96, partition=[local, remote], sql="select `o_orderkey`, `o_orderpriority` from `orders` as `orders`", isdynamicparam="true") - osstablescan(tables="lineitem[p1,p2,p3,...p96]", shardcount=96, partition=[local, remote], sql="select `l_orderkey`, `l_shipmode` from `lineitem` as `lineitem` where ((`l_receiptdate` < date_add(?, interval '1' year)) and (`l_shipmode` in(?)) and (`l_commitdate` < `l_receiptdate`) and (`l_shipdate` < `l_commitdate`) and (`l_receiptdate` >= ?))", isdynamicparam="true") + osstablescan(tables="orders[p1,p2,p3,...p96]", shardcount=96, partition=[local, remote], sql="select `o_orderkey`, `o_orderpriority` from `orders` as `orders`") + osstablescan(tables="lineitem[p1,p2,p3,...p96]", shardcount=96, partition=[local, remote], sql="select `l_orderkey`, `l_shipmode` from `lineitem` as `lineitem` where ((`l_receiptdate` < date_add(?, interval '1' year)) and (`l_shipmode` in(?)) and (`l_commitdate` < `l_receiptdate`) and (`l_shipdate` < `l_commitdate`) and (`l_receiptdate` >= ?))") - sql: | select c_count, count(*) as custdist from ( select c_custkey, count(o_orderkey) as c_count from customer left outer join orders on c_custkey = o_custkey and o_comment not like '%special%packages%' group by c_custkey ) c_orders group by c_count order by custdist desc, c_count desc; plan: | @@ -315,10 +315,10 @@ SQL: exchange(distribution=hash[4]96, collation=[]) semihashjoin(condition="ps_suppkey = s_suppkey", type="anti", build="inner") hashjoin(condition="p_partkey = ps_partkey", type="inner", partition=[local]) - osstablescan(tables="partsupp[p1,p2,p3,...p96]", shardcount=96, partition=[local, remote], sql="select `ps_partkey`, `ps_suppkey` from `partsupp` as `partsupp`", isdynamicparam="true") - osstablescan(tables="part[p1,p2,p3,...p96]", shardcount=96, partition=[local, remote], sql="select `p_partkey`, `p_brand`, `p_type`, `p_size` from `part` as `part` where ((`p_size` in(?)) and (`p_brand` <> ?) and (`p_type` not like ?))", isdynamicparam="true") + osstablescan(tables="partsupp[p1,p2,p3,...p96]", shardcount=96, partition=[local, remote], sql="select `ps_partkey`, `ps_suppkey` from `partsupp` as `partsupp`") + osstablescan(tables="part[p1,p2,p3,...p96]", shardcount=96, partition=[local, remote], sql="select `p_partkey`, `p_brand`, `p_type`, `p_size` from `part` as `part` where ((`p_size` in(?)) and (`p_brand` <> ?) and (`p_type` not like ?))") exchange(distribution=broadcast, collation=[]) - osstablescan(tables="supplier[p1,p2,p3,...p96]", shardcount=96, sql="select `s_suppkey` from `supplier` as `supplier` where (`s_comment` like ?)", isdynamicparam="true") + osstablescan(tables="supplier[p1,p2,p3,...p96]", shardcount=96, sql="select `s_suppkey` from `supplier` as `supplier` where (`s_comment` like ?)") - sql: | select sum(l_extendedprice) / 7.0 as avg_yearly from lineitem, part where p_partkey = l_partkey and p_brand = 'Brand#51' and p_container = 'SM JAR' and l_quantity < ( select 0.2 * avg(l_quantity) from lineitem where l_partkey = p_partkey ); plan: | @@ -362,9 +362,9 @@ SQL: partialhashagg(revenue="sum(__*__)") project(p_partkey="p_partkey", =="p_brand = ?1", in="p_container in row(?2)", between asymmetric="between asymmetric($8, ?6, ?7)", =4="p_brand = ?10", in5="p_container in row(?11)", between asymmetric6="between asymmetric($8, ?15, ?16)", =7="p_brand = ?19", in8="p_container in row(?20)", between asymmetric9="between asymmetric($8, ?24, ?25)", l_partkey="l_partkey", __*__="l_extendedprice * ?0 - l_discount", >=="l_quantity >= ?3", <=="l_quantity <= 17", in0="l_shipmode in row(?8)", =0="l_shipinstruct = ?9", >=6="l_quantity >= ?12", <=7="l_quantity <= 28", in80="l_shipmode in row(?17)", =9="l_shipinstruct = ?18", >=10="l_quantity >= ?21", <=11="l_quantity <= 31", in12="l_shipmode in row(?26)", =13="l_shipinstruct = ?27") hashjoin(condition="p_partkey = l_partkey and ((p_partkey = l_partkey and p_brand = ?1 and p_container in row(?2) and l_quantity >= ?3 and l_quantity <= ?4 + ?5 and between asymmetric($8, ?6, ?7) and l_shipmode in row(?8) and l_shipinstruct = ?9) or (p_partkey = l_partkey and p_brand = ?10 and p_container in row(?11) and l_quantity >= ?12 and l_quantity <= ?13 + ?14 and between asymmetric($8, ?15, ?16) and l_shipmode in row(?17) and l_shipinstruct = ?18) or (p_partkey = l_partkey and p_brand = ?19 and p_container in row(?20) and l_quantity >= ?21 and l_quantity <= ?22 + ?23 and between asymmetric($8, ?24, ?25) and l_shipmode in row(?26) and l_shipinstruct = ?27))", type="inner") - osstablescan(tables="lineitem[p1,p2,p3,...p96]", shardcount=96, partition=[remote], sql="select `l_partkey`, `l_quantity`, `l_extendedprice`, `l_discount`, `l_shipinstruct`, `l_shipmode` from `lineitem` as `lineitem` where (((`l_quantity` >= ?) and (`l_quantity` <= (? + ?)) and (`l_shipmode` in(?)) and (`l_shipinstruct` = ?)) or ((`l_quantity` >= ?) and (`l_quantity` <= (? + ?)) and (`l_shipmode` in(?)) and (`l_shipinstruct` = ?)) or ((`l_quantity` >= ?) and (`l_quantity` <= (? + ?)) and (`l_shipmode` in(?)) and (`l_shipinstruct` = ?)))", isdynamicparam="true") + osstablescan(tables="lineitem[p1,p2,p3,...p96]", shardcount=96, partition=[remote], sql="select `l_partkey`, `l_quantity`, `l_extendedprice`, `l_discount`, `l_shipinstruct`, `l_shipmode` from `lineitem` as `lineitem` where (((`l_quantity` >= ?) and (`l_quantity` <= (? + ?)) and (`l_shipmode` in(?)) and (`l_shipinstruct` = ?)) or ((`l_quantity` >= ?) and (`l_quantity` <= (? + ?)) and (`l_shipmode` in(?)) and (`l_shipinstruct` = ?)) or ((`l_quantity` >= ?) and (`l_quantity` <= (? + ?)) and (`l_shipmode` in(?)) and (`l_shipinstruct` = ?)))") exchange(distribution=broadcast, collation=[]) - osstablescan(tables="part[p1,p2,p3,...p96]", shardcount=96, sql="select `p_partkey`, `p_brand`, `p_size`, `p_container` from `part` as `part` where (((`p_brand` = ?) and (`p_container` in(?)) and (`p_size` between ? and ?)) or ((`p_brand` = ?) and (`p_container` in(?)) and (`p_size` between ? and ?)) or ((`p_brand` = ?) and (`p_container` in(?)) and (`p_size` between ? and ?)))", isdynamicparam="true") + osstablescan(tables="part[p1,p2,p3,...p96]", shardcount=96, sql="select `p_partkey`, `p_brand`, `p_size`, `p_container` from `part` as `part` where (((`p_brand` = ?) and (`p_container` in(?)) and (`p_size` between ? and ?)) or ((`p_brand` = ?) and (`p_container` in(?)) and (`p_size` between ? and ?)) or ((`p_brand` = ?) and (`p_container` in(?)) and (`p_size` between ? and ?)))") - sql: | select s_name, s_address from supplier, nation where s_suppkey in ( select ps_suppkey from partsupp where ps_partkey in ( select p_partkey from part where p_name like 'mint%' ) and ps_availqty > ( select 0.5 * sum(l_quantity) from lineitem where l_partkey = ps_partkey and l_suppkey = ps_suppkey and l_shipdate >= '1993-01-01' and l_shipdate < '1993-01-01' + interval '1' year ) ) and s_nationkey = n_nationkey and n_name = 'UNITED STATES' order by s_name; plan: | @@ -425,14 +425,14 @@ SQL: semihashjoin(condition="o_custkey = c_custkey", type="anti", build="outer") project($f0="$f0", $f1="$f1", c_custkey="c_custkey", c_phone="c_phone", c_acctbal="c_acctbal") nljoin(condition="c_acctbal > $f0 / $f1", type="inner") - osstablescan(tables="customer[p1,p2,p3,...p96]", shardcount=96, partition=[remote], sql="select `c_custkey`, `c_phone`, `c_acctbal` from `customer` as `customer` where ((substring(`c_phone`, ?, ?)) in(?))", isdynamicparam="true") + osstablescan(tables="customer[p1,p2,p3,...p96]", shardcount=96, partition=[remote], sql="select `c_custkey`, `c_phone`, `c_acctbal` from `customer` as `customer` where ((substring(`c_phone`, ?, ?)) in(?))") exchange(distribution=broadcast, collation=[]) hashagg($f0="sum($f0)", $f1="sum($f1)") exchange(distribution=single, collation=[]) partialhashagg($f0="sum(c_acctbal)", $f1="count()") - osstablescan(tables="customer[p1,p2,p3,...p96]", shardcount=96, sql="select `c_acctbal` from `customer` as `customer` where (((substring(`c_phone`, ?, ?)) in(?)) and (`c_acctbal` > ?))", isdynamicparam="true") + osstablescan(tables="customer[p1,p2,p3,...p96]", shardcount=96, sql="select `c_acctbal` from `customer` as `customer` where (((substring(`c_phone`, ?, ?)) in(?)) and (`c_acctbal` > ?))") exchange(distribution=hash[0]96, collation=[]) - osstablescan(tables="orders[p1,p2,p3,...p96]", shardcount=96, sql="select `o_custkey` from `orders` as `orders`", isdynamicparam="true") + osstablescan(tables="orders[p1,p2,p3,...p96]", shardcount=96, sql="select `o_custkey` from `orders` as `orders`") DDL: customer: CREATE TABLE `customer` ( `c_custkey` int(11) NOT NULL, `c_name` varchar(25) NOT NULL, `c_address` varchar(40) NOT NULL, `c_nationkey` int(11) NOT NULL, `c_phone` varchar(15) NOT NULL, `c_acctbal` decimal(15, 2) NOT NULL, `c_mktsegment` varchar(10) NOT NULL, `c_comment` varchar(117) NOT NULL, PRIMARY KEY (`c_custkey`) ) ENGINE = 'LOCAL_DISK' DEFAULT CHARSET = latin1 PARTITION BY KEY (`c_custkey`) PARTITIONS 96; diff --git a/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/partition/PartitionDistinctAggTest.ddl.yml b/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/partition/PartitionDistinctAggTest.ddl.yml new file mode 100644 index 000000000..63e936be7 --- /dev/null +++ b/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/partition/PartitionDistinctAggTest.ddl.yml @@ -0,0 +1,25 @@ +customer: + CREATE TABLE `customer` ( + `c_custkey` int(11) NOT NULL, + `c_name` varchar(25) NOT NULL, + `c_address` varchar(40) NOT NULL, + `c_nationkey` int(11) NOT NULL, + `c_phone` varchar(15) NOT NULL, + `c_acctbal` decimal(15,2) NOT NULL, + `c_mktsegment` varchar(10) NOT NULL, + `c_comment` varchar(117) NOT NULL, + PRIMARY KEY (`c_custkey`) + ) ENGINE=InnoDB DEFAULT CHARSET=latin1 PARTITION BY HASH(c_custkey) PARTITIONS 4; + +customer_test: + CREATE TABLE `customer_test` ( + `c_custkey` int(11) NOT NULL, + `c_name` varchar(25) NOT NULL, + `c_address` varchar(40) NOT NULL, + `c_nationkey` int(11) NOT NULL, + `c_phone` varchar(15) NOT NULL, + `c_acctbal` decimal(15,2) NOT NULL, + `c_mktsegment` varchar(10) NOT NULL, + `c_comment` varchar(117) NOT NULL, + PRIMARY KEY (`c_custkey`) + ) ENGINE=InnoDB DEFAULT CHARSET=latin1 PARTITION BY HASH(c_nationkey) PARTITIONS 4; diff --git a/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/partition/PartitionDistinctAggTest.statistic.yml b/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/partition/PartitionDistinctAggTest.statistic.yml new file mode 100644 index 000000000..5078a50da --- /dev/null +++ b/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/partition/PartitionDistinctAggTest.statistic.yml @@ -0,0 +1,56 @@ +customer_test: + 1200 +customer: + 14836 +customer.c_custkey.cardinality: + 10123 +customer.c_acctbal.cardinality: + 3568 +customer.c_phone.cardinality: + 9946 +customer.c_mktsegment.cardinality: + 5 +customer.c_address.cardinality: + 10235 +customer.c_nationkey.cardinality: + 25 +customer.c_name.cardinality: + 10420 +customer.c_comment.cardinality: + 9616 +customer.c_custkey.histogram: + {"buckets":[{"ndv":157,"upper":209379,"lower":1337,"count":157,"preSum":0},{"ndv":157,"upper":442831,"lower":210121,"count":157,"preSum":157},{"ndv":157,"upper":658102,"lower":445180,"count":157,"preSum":314},{"ndv":157,"upper":890919,"lower":659418,"count":157,"preSum":471},{"ndv":157,"upper":1140089,"lower":892780,"count":157,"preSum":628},{"ndv":157,"upper":1373421,"lower":1144537,"count":157,"preSum":785},{"ndv":157,"upper":1639880,"lower":1373449,"count":157,"preSum":942},{"ndv":157,"upper":1842401,"lower":1640315,"count":157,"preSum":1099},{"ndv":157,"upper":2082050,"lower":1843634,"count":157,"preSum":1256},{"ndv":157,"upper":2298042,"lower":2082473,"count":157,"preSum":1413},{"ndv":157,"upper":2527065,"lower":2298388,"count":157,"preSum":1570},{"ndv":157,"upper":2764848,"lower":2528141,"count":157,"preSum":1727},{"ndv":157,"upper":3016299,"lower":2765714,"count":157,"preSum":1884},{"ndv":157,"upper":3250900,"lower":3016738,"count":157,"preSum":2041},{"ndv":157,"upper":3467810,"lower":3251483,"count":157,"preSum":2198},{"ndv":157,"upper":3680250,"lower":3469611,"count":157,"preSum":2355},{"ndv":157,"upper":3901890,"lower":3680370,"count":157,"preSum":2512},{"ndv":157,"upper":4120666,"lower":3902030,"count":157,"preSum":2669},{"ndv":157,"upper":4367198,"lower":4124649,"count":157,"preSum":2826},{"ndv":157,"upper":4612926,"lower":4367648,"count":157,"preSum":2983},{"ndv":157,"upper":4834341,"lower":4613225,"count":157,"preSum":3140},{"ndv":157,"upper":5091852,"lower":4834466,"count":157,"preSum":3297},{"ndv":157,"upper":5341344,"lower":5092426,"count":157,"preSum":3454},{"ndv":157,"upper":5599649,"lower":5342551,"count":157,"preSum":3611},{"ndv":157,"upper":5825738,"lower":5600790,"count":157,"preSum":3768},{"ndv":157,"upper":6046432,"lower":5828119,"count":157,"preSum":3925},{"ndv":157,"upper":6291565,"lower":6046769,"count":157,"preSum":4082},{"ndv":157,"upper":6514525,"lower":6292311,"count":157,"preSum":4239},{"ndv":157,"upper":6744998,"lower":6514755,"count":157,"preSum":4396},{"ndv":157,"upper":6944765,"lower":6745164,"count":157,"preSum":4553},{"ndv":157,"upper":7178382,"lower":6945813,"count":157,"preSum":4710},{"ndv":157,"upper":7423357,"lower":7178750,"count":157,"preSum":4867},{"ndv":157,"upper":7651415,"lower":7423466,"count":157,"preSum":5024},{"ndv":157,"upper":7900763,"lower":7652234,"count":157,"preSum":5181},{"ndv":157,"upper":8170916,"lower":7902070,"count":157,"preSum":5338},{"ndv":157,"upper":8421954,"lower":8172237,"count":157,"preSum":5495},{"ndv":157,"upper":8645390,"lower":8423124,"count":157,"preSum":5652},{"ndv":157,"upper":8897900,"lower":8646150,"count":157,"preSum":5809},{"ndv":157,"upper":9087080,"lower":8899188,"count":157,"preSum":5966},{"ndv":157,"upper":9345064,"lower":9087281,"count":157,"preSum":6123},{"ndv":157,"upper":9594064,"lower":9346537,"count":157,"preSum":6280},{"ndv":157,"upper":9849358,"lower":9599674,"count":157,"preSum":6437},{"ndv":157,"upper":10083673,"lower":9850958,"count":157,"preSum":6594},{"ndv":157,"upper":10333649,"lower":10086740,"count":157,"preSum":6751},{"ndv":157,"upper":10565818,"lower":10333696,"count":157,"preSum":6908},{"ndv":157,"upper":10814064,"lower":10570776,"count":157,"preSum":7065},{"ndv":157,"upper":11063133,"lower":10814297,"count":157,"preSum":7222},{"ndv":157,"upper":11284061,"lower":11063939,"count":157,"preSum":7379},{"ndv":157,"upper":11495299,"lower":11284361,"count":157,"preSum":7536},{"ndv":157,"upper":11724956,"lower":11495706,"count":157,"preSum":7693},{"ndv":157,"upper":11994774,"lower":11727059,"count":157,"preSum":7850},{"ndv":157,"upper":12203195,"lower":11995867,"count":157,"preSum":8007},{"ndv":157,"upper":12460553,"lower":12203430,"count":157,"preSum":8164},{"ndv":157,"upper":12664416,"lower":12460961,"count":157,"preSum":8321},{"ndv":157,"upper":12916216,"lower":12664427,"count":157,"preSum":8478},{"ndv":157,"upper":13154850,"lower":12918041,"count":157,"preSum":8635},{"ndv":157,"upper":13403338,"lower":13155982,"count":157,"preSum":8792},{"ndv":157,"upper":13652888,"lower":13406073,"count":157,"preSum":8949},{"ndv":157,"upper":13881824,"lower":13654006,"count":157,"preSum":9106},{"ndv":157,"upper":14110793,"lower":13884658,"count":157,"preSum":9263},{"ndv":157,"upper":14364929,"lower":14116129,"count":157,"preSum":9420},{"ndv":157,"upper":14608831,"lower":14368063,"count":157,"preSum":9577},{"ndv":157,"upper":14841732,"lower":14611027,"count":157,"preSum":9734},{"ndv":109,"upper":14999413,"lower":14842822,"count":109,"preSum":9891}],"maxBucketSize":64,"type":"Int","sampleRate":0.09835163} +customer.c_name.histogram: + {"buckets":[{"ndv":157,"upper":"Customer#000225234","lower":"Customer#000000783","count":157,"preSum":0},{"ndv":157,"upper":"Customer#000471267","lower":"Customer#000225788","count":157,"preSum":157},{"ndv":157,"upper":"Customer#000703346","lower":"Customer#000471522","count":157,"preSum":314},{"ndv":157,"upper":"Customer#000916819","lower":"Customer#000704192","count":157,"preSum":471},{"ndv":157,"upper":"Customer#001134245","lower":"Customer#000917017","count":157,"preSum":628},{"ndv":157,"upper":"Customer#001370293","lower":"Customer#001138243","count":157,"preSum":785},{"ndv":157,"upper":"Customer#001603371","lower":"Customer#001370338","count":157,"preSum":942},{"ndv":157,"upper":"Customer#001833560","lower":"Customer#001603666","count":157,"preSum":1099},{"ndv":157,"upper":"Customer#002061654","lower":"Customer#001833843","count":157,"preSum":1256},{"ndv":157,"upper":"Customer#002285008","lower":"Customer#002064080","count":157,"preSum":1413},{"ndv":157,"upper":"Customer#002507002","lower":"Customer#002292637","count":157,"preSum":1570},{"ndv":157,"upper":"Customer#002769250","lower":"Customer#002507250","count":157,"preSum":1727},{"ndv":157,"upper":"Customer#003026676","lower":"Customer#002769477","count":157,"preSum":1884},{"ndv":157,"upper":"Customer#003299348","lower":"Customer#003029210","count":157,"preSum":2041},{"ndv":157,"upper":"Customer#003546911","lower":"Customer#003300762","count":157,"preSum":2198},{"ndv":157,"upper":"Customer#003814593","lower":"Customer#003547226","count":157,"preSum":2355},{"ndv":157,"upper":"Customer#004048444","lower":"Customer#003814924","count":157,"preSum":2512},{"ndv":157,"upper":"Customer#004279455","lower":"Customer#004049891","count":157,"preSum":2669},{"ndv":157,"upper":"Customer#004511841","lower":"Customer#004279807","count":157,"preSum":2826},{"ndv":157,"upper":"Customer#004734086","lower":"Customer#004512507","count":157,"preSum":2983},{"ndv":157,"upper":"Customer#004979965","lower":"Customer#004736072","count":157,"preSum":3140},{"ndv":157,"upper":"Customer#005201181","lower":"Customer#004980171","count":157,"preSum":3297},{"ndv":157,"upper":"Customer#005424146","lower":"Customer#005202036","count":157,"preSum":3454},{"ndv":157,"upper":"Customer#005638781","lower":"Customer#005428105","count":157,"preSum":3611},{"ndv":157,"upper":"Customer#005842704","lower":"Customer#005639903","count":157,"preSum":3768},{"ndv":157,"upper":"Customer#006095980","lower":"Customer#005850046","count":157,"preSum":3925},{"ndv":157,"upper":"Customer#006345698","lower":"Customer#006096762","count":157,"preSum":4082},{"ndv":157,"upper":"Customer#006578273","lower":"Customer#006347740","count":157,"preSum":4239},{"ndv":157,"upper":"Customer#006794969","lower":"Customer#006578815","count":157,"preSum":4396},{"ndv":157,"upper":"Customer#007029173","lower":"Customer#006795126","count":157,"preSum":4553},{"ndv":157,"upper":"Customer#007272868","lower":"Customer#007030039","count":157,"preSum":4710},{"ndv":157,"upper":"Customer#007515402","lower":"Customer#007275231","count":157,"preSum":4867},{"ndv":157,"upper":"Customer#007737504","lower":"Customer#007517202","count":157,"preSum":5024},{"ndv":157,"upper":"Customer#007958803","lower":"Customer#007742112","count":157,"preSum":5181},{"ndv":157,"upper":"Customer#008178578","lower":"Customer#007963539","count":157,"preSum":5338},{"ndv":157,"upper":"Customer#008423124","lower":"Customer#008181264","count":157,"preSum":5495},{"ndv":157,"upper":"Customer#008669580","lower":"Customer#008425239","count":157,"preSum":5652},{"ndv":157,"upper":"Customer#008931030","lower":"Customer#008670550","count":157,"preSum":5809},{"ndv":157,"upper":"Customer#009159652","lower":"Customer#008931944","count":157,"preSum":5966},{"ndv":157,"upper":"Customer#009414854","lower":"Customer#009160337","count":157,"preSum":6123},{"ndv":157,"upper":"Customer#009642006","lower":"Customer#009415548","count":157,"preSum":6280},{"ndv":157,"upper":"Customer#009863569","lower":"Customer#009644880","count":157,"preSum":6437},{"ndv":157,"upper":"Customer#010086275","lower":"Customer#009863616","count":157,"preSum":6594},{"ndv":157,"upper":"Customer#010323521","lower":"Customer#010086740","count":157,"preSum":6751},{"ndv":157,"upper":"Customer#010569575","lower":"Customer#010324074","count":157,"preSum":6908},{"ndv":157,"upper":"Customer#010817603","lower":"Customer#010571999","count":157,"preSum":7065},{"ndv":157,"upper":"Customer#011047859","lower":"Customer#010819533","count":157,"preSum":7222},{"ndv":157,"upper":"Customer#011245115","lower":"Customer#011049004","count":157,"preSum":7379},{"ndv":157,"upper":"Customer#011488562","lower":"Customer#011245912","count":157,"preSum":7536},{"ndv":157,"upper":"Customer#011719428","lower":"Customer#011488689","count":157,"preSum":7693},{"ndv":157,"upper":"Customer#011950300","lower":"Customer#011720583","count":157,"preSum":7850},{"ndv":157,"upper":"Customer#012204994","lower":"Customer#011952044","count":157,"preSum":8007},{"ndv":157,"upper":"Customer#012434589","lower":"Customer#012206330","count":157,"preSum":8164},{"ndv":157,"upper":"Customer#012665557","lower":"Customer#012436465","count":157,"preSum":8321},{"ndv":157,"upper":"Customer#012890471","lower":"Customer#012667715","count":157,"preSum":8478},{"ndv":157,"upper":"Customer#013138613","lower":"Customer#012890746","count":157,"preSum":8635},{"ndv":157,"upper":"Customer#013362303","lower":"Customer#013139588","count":157,"preSum":8792},{"ndv":157,"upper":"Customer#013633396","lower":"Customer#013362938","count":157,"preSum":8949},{"ndv":157,"upper":"Customer#013883071","lower":"Customer#013633600","count":157,"preSum":9106},{"ndv":157,"upper":"Customer#014135158","lower":"Customer#013883327","count":157,"preSum":9263},{"ndv":157,"upper":"Customer#014377726","lower":"Customer#014142341","count":157,"preSum":9420},{"ndv":157,"upper":"Customer#014604347","lower":"Customer#014378931","count":157,"preSum":9577},{"ndv":157,"upper":"Customer#014832151","lower":"Customer#014605294","count":157,"preSum":9734},{"ndv":109,"upper":"Customer#014998107","lower":"Customer#014832591","count":109,"preSum":9891}],"maxBucketSize":64,"type":"String","sampleRate":0.09835163} +customer.c_address.histogram: + {"buckets":[{"ndv":157,"upper":" ZJZQ58IyIcOzTPdVk1M","lower":" EPAfP,gAjoIBit86nO","count":157,"preSum":0},{"ndv":157,"upper":",wEeNRwiT Z9H5VnEGeH","lower":" zRAITpNpKNrB3tvs6ys","count":157,"preSum":157},{"ndv":157,"upper":"0UtUb74yowq9 paTs","lower":",WgVhRZRQrr9JUs","count":157,"preSum":314},{"ndv":157,"upper":"1vQ TpLzphliQXeb ud9","lower":"0V5647r0UrUYbuniIBoT","count":157,"preSum":471},{"ndv":157,"upper":"2Uu1xGXhnchmiFQaQkTO","lower":"1vt,ZzYWnbn6u3WTSnlc","count":157,"preSum":628},{"ndv":157,"upper":"3wrpj1lU4W","lower":"2UVCeWmlqlA8QuR2pvjq","count":157,"preSum":785},{"ndv":157,"upper":"4xXZGoTd6v8zeCp8WDtc","lower":"3wRXqx mcyZoeWpoLW,f","count":157,"preSum":942},{"ndv":157,"upper":"6 Lf92Liq9WE","lower":"4Y,LGXWWFgaAQx","count":157,"preSum":1099},{"ndv":157,"upper":"6YbbDN1oLhBi","lower":"6 RGYCrZ571F2eNmgCr5","count":157,"preSum":1256},{"ndv":157,"upper":"8,BKU31bC533ZYMLDfM8","lower":"6Yp8RruVnpVM7Ym9y16d","count":157,"preSum":1413},{"ndv":157,"upper":"8WNroqt1qGjEeQZURXoc","lower":"8,mMMpIobpiIP5","count":157,"preSum":1570},{"ndv":157,"upper":"9WMRxmSuLTgwlU3te6Z5","lower":"8wR4EzyG4UP3W","count":157,"preSum":1727},{"ndv":157,"upper":"aJEv6Pak5y","lower":"9wWxuxjNgw0ZxaoiwvuQ","count":157,"preSum":1884},{"ndv":157,"upper":"aYUpRrUF2dCQ9fTz1rwj","lower":"AJGpKdhiF1KEvz7yZ4dV","count":157,"preSum":2041},{"ndv":157,"upper":"BgVYRllpeX","lower":"AyUqi35BXlgYOOrxFoh3","count":157,"preSum":2198},{"ndv":157,"upper":"BWanNcsCSygkomWVDGbN","lower":"Bgx8K 8cmB1Jpcd5","count":157,"preSum":2355},{"ndv":157,"upper":"chrlUmlXGElj6","lower":"bwf87KL5v5jbYxC5Qu86","count":157,"preSum":2512},{"ndv":157,"upper":"Cy QG73Ve1cv2JM1GbfM","lower":"cHye1y20Th6gni9qC1oQ","count":157,"preSum":2669},{"ndv":157,"upper":"DI2aoleoeQImqWiFzX5L","lower":"cY8 45tTGJfApR5zbYSg","count":157,"preSum":2826},{"ndv":157,"upper":"dWBxI2I4QkmcaBYvwKZK","lower":"DI2PSifpP3w4VfPpnOqY","count":157,"preSum":2983},{"ndv":157,"upper":"eiEGP10IBMNA","lower":"dwDXu8NvL42mwFrGsTjS","count":157,"preSum":3140},{"ndv":157,"upper":"EYYh7DA4C,iCNAIVZBev","lower":"eIKs5q,9P,u4FGpGjVPn","count":157,"preSum":3297},{"ndv":157,"upper":"fHXshFS269F2y","lower":"eYZrj7cYMpSOQW","count":157,"preSum":3454},{"ndv":157,"upper":"fvRbg3V2iomooUF8ewM2","lower":"fHznBgvNtP6bHQVM6jzE","count":157,"preSum":3611},{"ndv":157,"upper":"gfNUXqH2TFdMobzOhwl3","lower":"FVt8PgjmDr94oT00mASk","count":157,"preSum":3768},{"ndv":157,"upper":"gWbJ1,BNY7sSpQOPYFrd","lower":"GfUTI3021Tt3qPmcw,","count":157,"preSum":3925},{"ndv":157,"upper":"HgA KPIZPKeeJ126Xjhi","lower":"GWcLDeB7ka6Q1nEV8rxu","count":157,"preSum":4082},{"ndv":157,"upper":"HVhN42X6,K4dXRAPv9XZ","lower":"HgFVbF 0Lp83p","count":157,"preSum":4239},{"ndv":157,"upper":"IFGRCBqo59cYGe","lower":"hVkuKu g5576l2DOzPMW","count":157,"preSum":4396},{"ndv":157,"upper":"IvJnUyh5O51YVIEBwFkq","lower":"IFJD1bccSJzUfyvKjgYq","count":157,"preSum":4553},{"ndv":157,"upper":"jfcpbnn1t4zrphxj","lower":"iVlhlkQVgYie4a","count":157,"preSum":4710},{"ndv":157,"upper":"JUjqx,snw42CTJfdrgkx","lower":"JfdNLxmoPgkj,BGn,CU","count":157,"preSum":4867},{"ndv":157,"upper":"KdGIPwqzK6Kg0YMy6Dfb","lower":"JUoIpvgsBu5QE61IKIiV","count":157,"preSum":5024},{"ndv":157,"upper":"KRQvW7 RSBrO1qlMszfB","lower":"KdWYC2Yg9S46b3yH3ymK","count":157,"preSum":5181},{"ndv":157,"upper":"lcRpf7WtBcxZ","lower":"KrsBHzDPPzf21F46PIQQ","count":157,"preSum":5338},{"ndv":157,"upper":"LVpweJIhRvM5VA","lower":"LcyqeeDZaqWBN4UL1b6","count":157,"preSum":5495},{"ndv":157,"upper":"mE,Yk8T0l ","lower":"LVPYSN2LjdbIBIY","count":157,"preSum":5652},{"ndv":157,"upper":"MVSvFLIDloU65Spch","lower":"MeAk NE5Yo4RrniQRgh8","count":157,"preSum":5809},{"ndv":157,"upper":"nhgdmZlWGNuM5IILn17s","lower":"MW mH oaYsLaQM1j0m15","count":157,"preSum":5966},{"ndv":157,"upper":"nXcb520WO0Bb3b3","lower":"Nhgr2RvEf3hxCq21U","count":157,"preSum":6123},{"ndv":157,"upper":"OG7eS5cZ3t4Fi0Zm","lower":"nxcVfnXaJW","count":157,"preSum":6280},{"ndv":157,"upper":"ovkcvlkVos","lower":"OG7PON1XdXqBQ","count":157,"preSum":6437},{"ndv":157,"upper":"PiJIjRVcocIdIDC9KBUN","lower":"OvLYjKKHa,Xt","count":157,"preSum":6594},{"ndv":157,"upper":"Q,M07p2K9u","lower":"pikbkl9DXCtTDiyKa0Jc","count":157,"preSum":6751},{"ndv":157,"upper":"QlI JzIZZE","lower":"q,n,jgC8QCbEVDN0Ef0n","count":157,"preSum":6908},{"ndv":157,"upper":"r26DRfIA9rfK6dOUMt R","lower":"QLnvaeYjpPrcK7zebBV4","count":157,"preSum":7065},{"ndv":157,"upper":"RjqKwN9gB2wGRrbFPnP,","lower":"R28CtnHxMd, 679vDmgD","count":157,"preSum":7222},{"ndv":157,"upper":"s wTWDH0MP2y4JNGs2Dw","lower":"rK KMeZwp4YgKx8ohb3k","count":157,"preSum":7379},{"ndv":157,"upper":"sKV8wIwZU5fiXeXrpoUS","lower":"S YCHuXnrN9b6INV9lL","count":157,"preSum":7536},{"ndv":157,"upper":"sZoOh,8MzeZNHY","lower":"skZDKdwB5M","count":157,"preSum":7693},{"ndv":157,"upper":"Tjq7YVdneAr","lower":"SztLnYINySQs1QhA3TfW","count":157,"preSum":7850},{"ndv":157,"upper":"tXPp8kJGuRnKcHOu B5","lower":"TJqENsl9Gqcspw","count":157,"preSum":8007},{"ndv":157,"upper":"UGpqzN7ifFQJTvj05gGq","lower":"tXPWVipKcQPKnN","count":157,"preSum":8164},{"ndv":157,"upper":"UwfW,Bo6Cunr","lower":"UGQi3d9ng8h,II0e4Y7B","count":157,"preSum":8321},{"ndv":157,"upper":"vJDp im6m8vr1tzlKn","lower":"UwfXPLZ3eT,r","count":157,"preSum":8478},{"ndv":157,"upper":"vyxT8x6zKOGC1GbzulRf","lower":"vJdp069Bzt00tQ","count":157,"preSum":8635},{"ndv":157,"upper":"wjmnnQxnyPNdPgI2ve0r","lower":"vYyk9JCZDNl2JkCTyy5N","count":157,"preSum":8792},{"ndv":157,"upper":"wy4BeRoXMKlDtE HF8 4","lower":"WjOwx7EM2I53wVOYU5R7","count":157,"preSum":8949},{"ndv":157,"upper":"xK12zH7 nE","lower":"wy7HWFTPKZ2raE1jFZKw","count":157,"preSum":9106},{"ndv":157,"upper":"Y,KGGw23aJBU2 gR8xQE","lower":"xKps75fbHOOg VlLFQ87","count":157,"preSum":9263},{"ndv":157,"upper":"Yn0Q6UugQ9kosW0vCLpV","lower":"Y,m7WSuND9Ha2xR4i20t","count":157,"preSum":9420},{"ndv":157,"upper":"Z5,9Bu Qn8ScTPGQiRib","lower":"YN5ugnc44eA58Ed","count":157,"preSum":9577},{"ndv":157,"upper":"zOlnXAxhvl2x5O7WwzIT","lower":"Z5EgCKBrn3X0liZ39Ec,","count":157,"preSum":9734},{"ndv":109,"upper":"zZZKrFbo3mzHr3hJSbus","lower":"zonbYf6IEOPO,1d8PYr7","count":109,"preSum":9891}],"maxBucketSize":64,"type":"String","sampleRate":0.09835163} +customer.c_nationkey.histogram: + {"buckets":[{"ndv":1,"upper":0,"lower":0,"count":418,"preSum":0},{"ndv":1,"upper":1,"lower":1,"count":414,"preSum":418},{"ndv":1,"upper":2,"lower":2,"count":383,"preSum":832},{"ndv":1,"upper":3,"lower":3,"count":389,"preSum":1215},{"ndv":1,"upper":4,"lower":4,"count":398,"preSum":1604},{"ndv":1,"upper":5,"lower":5,"count":357,"preSum":2002},{"ndv":1,"upper":6,"lower":6,"count":421,"preSum":2359},{"ndv":1,"upper":7,"lower":7,"count":378,"preSum":2780},{"ndv":1,"upper":8,"lower":8,"count":413,"preSum":3158},{"ndv":1,"upper":9,"lower":9,"count":402,"preSum":3571},{"ndv":1,"upper":10,"lower":10,"count":403,"preSum":3973},{"ndv":1,"upper":11,"lower":11,"count":398,"preSum":4376},{"ndv":1,"upper":12,"lower":12,"count":417,"preSum":4774},{"ndv":1,"upper":13,"lower":13,"count":403,"preSum":5191},{"ndv":1,"upper":14,"lower":14,"count":395,"preSum":5594},{"ndv":1,"upper":15,"lower":15,"count":409,"preSum":5989},{"ndv":1,"upper":16,"lower":16,"count":416,"preSum":6398},{"ndv":1,"upper":17,"lower":17,"count":375,"preSum":6814},{"ndv":1,"upper":18,"lower":18,"count":416,"preSum":7189},{"ndv":1,"upper":19,"lower":19,"count":403,"preSum":7605},{"ndv":1,"upper":20,"lower":20,"count":391,"preSum":8008},{"ndv":1,"upper":21,"lower":21,"count":435,"preSum":8399},{"ndv":1,"upper":22,"lower":22,"count":386,"preSum":8834},{"ndv":1,"upper":23,"lower":23,"count":365,"preSum":9220},{"ndv":1,"upper":24,"lower":24,"count":415,"preSum":9585}],"maxBucketSize":64,"type":"Int","sampleRate":0.09835163} +customer.c_phone.histogram: + {"buckets":[{"ndv":157,"upper":"10-469-198-7487","lower":"10-113-814-8966","count":157,"preSum":0},{"ndv":157,"upper":"10-808-261-9059","lower":"10-475-232-3880","count":157,"preSum":157},{"ndv":157,"upper":"11-250-663-4786","lower":"10-810-105-4397","count":157,"preSum":314},{"ndv":157,"upper":"11-618-245-8135","lower":"11-250-757-1385","count":157,"preSum":471},{"ndv":157,"upper":"11-947-526-3810","lower":"11-619-734-2327","count":157,"preSum":628},{"ndv":157,"upper":"12-421-955-9767","lower":"11-948-164-3001","count":157,"preSum":785},{"ndv":157,"upper":"12-783-392-1669","lower":"12-427-758-7895","count":157,"preSum":942},{"ndv":157,"upper":"13-242-791-6099","lower":"12-787-660-3662","count":157,"preSum":1099},{"ndv":157,"upper":"13-562-910-7866","lower":"13-249-836-4680","count":157,"preSum":1256},{"ndv":157,"upper":"13-939-938-7704","lower":"13-563-138-2163","count":157,"preSum":1413},{"ndv":157,"upper":"14-432-721-3213","lower":"13-940-701-3486","count":157,"preSum":1570},{"ndv":157,"upper":"14-775-409-8894","lower":"14-433-614-1424","count":157,"preSum":1727},{"ndv":157,"upper":"15-261-425-6943","lower":"14-778-324-8575","count":157,"preSum":1884},{"ndv":157,"upper":"15-648-442-4921","lower":"15-263-570-2634","count":157,"preSum":2041},{"ndv":157,"upper":"15-951-183-1826","lower":"15-648-839-1460","count":157,"preSum":2198},{"ndv":157,"upper":"16-396-473-2121","lower":"15-951-499-2174","count":157,"preSum":2355},{"ndv":157,"upper":"16-713-646-5141","lower":"16-399-262-4479","count":157,"preSum":2512},{"ndv":157,"upper":"17-152-373-8204","lower":"16-714-209-5733","count":157,"preSum":2669},{"ndv":157,"upper":"17-530-671-6975","lower":"17-152-867-2387","count":157,"preSum":2826},{"ndv":157,"upper":"17-862-486-9509","lower":"17-530-981-8973","count":157,"preSum":2983},{"ndv":157,"upper":"18-363-218-3616","lower":"17-863-726-4655","count":157,"preSum":3140},{"ndv":157,"upper":"18-691-656-6535","lower":"18-364-150-3524","count":157,"preSum":3297},{"ndv":157,"upper":"18-983-113-3272","lower":"18-691-912-5914","count":157,"preSum":3454},{"ndv":157,"upper":"19-436-593-3758","lower":"18-988-615-3985","count":157,"preSum":3611},{"ndv":157,"upper":"19-800-514-7506","lower":"19-440-942-5965","count":157,"preSum":3768},{"ndv":157,"upper":"20-250-334-5941","lower":"19-806-336-4465","count":157,"preSum":3925},{"ndv":157,"upper":"20-597-796-4384","lower":"20-252-835-8484","count":157,"preSum":4082},{"ndv":157,"upper":"20-948-227-8137","lower":"20-606-973-2270","count":157,"preSum":4239},{"ndv":157,"upper":"21-410-783-6026","lower":"20-954-195-3043","count":157,"preSum":4396},{"ndv":157,"upper":"21-775-404-9120","lower":"21-412-598-1671","count":157,"preSum":4553},{"ndv":157,"upper":"22-236-241-2557","lower":"21-775-670-4271","count":157,"preSum":4710},{"ndv":157,"upper":"22-581-537-9803","lower":"22-237-318-8202","count":157,"preSum":4867},{"ndv":157,"upper":"22-920-235-2834","lower":"22-581-767-9707","count":157,"preSum":5024},{"ndv":157,"upper":"23-381-748-6984","lower":"22-920-883-2843","count":157,"preSum":5181},{"ndv":157,"upper":"23-792-171-5168","lower":"23-389-221-5321","count":157,"preSum":5338},{"ndv":157,"upper":"24-243-419-9318","lower":"23-793-249-3922","count":157,"preSum":5495},{"ndv":157,"upper":"24-599-516-4158","lower":"24-244-953-3485","count":157,"preSum":5652},{"ndv":157,"upper":"24-926-295-7075","lower":"24-603-428-7043","count":157,"preSum":5809},{"ndv":157,"upper":"25-368-455-9423","lower":"24-926-909-4151","count":157,"preSum":5966},{"ndv":157,"upper":"25-737-534-9108","lower":"25-369-255-2364","count":157,"preSum":6123},{"ndv":157,"upper":"26-230-543-2949","lower":"25-737-706-2681","count":157,"preSum":6280},{"ndv":157,"upper":"26-564-959-8510","lower":"26-231-708-1593","count":157,"preSum":6437},{"ndv":157,"upper":"27-100-106-7208","lower":"26-564-970-5723","count":157,"preSum":6594},{"ndv":157,"upper":"27-457-992-1254","lower":"27-100-310-7549","count":157,"preSum":6751},{"ndv":157,"upper":"27-781-206-6107","lower":"27-461-158-6886","count":157,"preSum":6908},{"ndv":157,"upper":"28-217-853-9458","lower":"27-786-861-1407","count":157,"preSum":7065},{"ndv":157,"upper":"28-530-106-5895","lower":"28-222-576-3126","count":157,"preSum":7222},{"ndv":157,"upper":"28-894-294-4638","lower":"28-532-807-5041","count":157,"preSum":7379},{"ndv":157,"upper":"29-317-440-7517","lower":"28-895-345-2532","count":157,"preSum":7536},{"ndv":157,"upper":"29-624-807-8119","lower":"29-318-123-1589","count":157,"preSum":7693},{"ndv":157,"upper":"29-990-731-8200","lower":"29-625-158-4441","count":157,"preSum":7850},{"ndv":157,"upper":"30-397-778-3059","lower":"29-992-204-8143","count":157,"preSum":8007},{"ndv":157,"upper":"30-761-744-7709","lower":"30-398-142-2558","count":157,"preSum":8164},{"ndv":157,"upper":"31-213-482-6111","lower":"30-763-220-7782","count":157,"preSum":8321},{"ndv":157,"upper":"31-546-210-8670","lower":"31-213-808-8063","count":157,"preSum":8478},{"ndv":157,"upper":"31-913-969-9074","lower":"31-549-869-2407","count":157,"preSum":8635},{"ndv":157,"upper":"32-386-619-4932","lower":"31-914-839-4433","count":157,"preSum":8792},{"ndv":157,"upper":"32-739-274-4102","lower":"32-388-552-2230","count":157,"preSum":8949},{"ndv":157,"upper":"33-182-680-6079","lower":"32-739-790-4634","count":157,"preSum":9106},{"ndv":157,"upper":"33-535-804-9042","lower":"33-184-957-6925","count":157,"preSum":9263},{"ndv":157,"upper":"33-929-560-6371","lower":"33-536-989-4806","count":157,"preSum":9420},{"ndv":157,"upper":"34-370-470-7618","lower":"33-934-452-2494","count":157,"preSum":9577},{"ndv":157,"upper":"34-738-930-4904","lower":"34-371-187-9344","count":157,"preSum":9734},{"ndv":109,"upper":"34-999-312-9121","lower":"34-742-599-5224","count":109,"preSum":9891}],"maxBucketSize":64,"type":"String","sampleRate":0.09835163} +customer.c_acctbal.histogram: + {"buckets":[{"ndv":156,"upper":-814.84,"lower":-998.86,"count":157,"preSum":0},{"ndv":157,"upper":-640.26,"lower":-813.65,"count":157,"preSum":157},{"ndv":157,"upper":-482.39,"lower":-638.99,"count":157,"preSum":314},{"ndv":156,"upper":-319.14,"lower":-480.48,"count":157,"preSum":471},{"ndv":156,"upper":-141.59,"lower":-318.86,"count":157,"preSum":628},{"ndv":157,"upper":23.83,"lower":-134.83,"count":157,"preSum":785},{"ndv":155,"upper":193.28,"lower":24.60,"count":157,"preSum":942},{"ndv":157,"upper":350.12,"lower":193.97,"count":157,"preSum":1099},{"ndv":155,"upper":524.98,"lower":351.12,"count":157,"preSum":1256},{"ndv":155,"upper":696.46,"lower":526.49,"count":157,"preSum":1413},{"ndv":157,"upper":871.76,"lower":696.95,"count":157,"preSum":1570},{"ndv":155,"upper":1062.69,"lower":874.28,"count":157,"preSum":1727},{"ndv":156,"upper":1243.06,"lower":1062.99,"count":157,"preSum":1884},{"ndv":157,"upper":1433.56,"lower":1244.66,"count":157,"preSum":2041},{"ndv":157,"upper":1592.24,"lower":1433.71,"count":157,"preSum":2198},{"ndv":154,"upper":1775.64,"lower":1593.61,"count":157,"preSum":2355},{"ndv":157,"upper":1925.28,"lower":1777.06,"count":157,"preSum":2512},{"ndv":156,"upper":2069.22,"lower":1926.25,"count":157,"preSum":2669},{"ndv":155,"upper":2263.48,"lower":2069.39,"count":157,"preSum":2826},{"ndv":155,"upper":2442.32,"lower":2265.68,"count":157,"preSum":2983},{"ndv":156,"upper":2629.94,"lower":2442.48,"count":157,"preSum":3140},{"ndv":156,"upper":2778.74,"lower":2631.01,"count":157,"preSum":3297},{"ndv":157,"upper":2963.36,"lower":2779.40,"count":157,"preSum":3454},{"ndv":155,"upper":3131.10,"lower":2964.31,"count":157,"preSum":3611},{"ndv":156,"upper":3296.29,"lower":3133.32,"count":157,"preSum":3768},{"ndv":156,"upper":3454.41,"lower":3297.56,"count":157,"preSum":3925},{"ndv":157,"upper":3628.79,"lower":3456.34,"count":157,"preSum":4082},{"ndv":156,"upper":3794.34,"lower":3628.99,"count":157,"preSum":4239},{"ndv":157,"upper":3968.04,"lower":3794.79,"count":157,"preSum":4396},{"ndv":155,"upper":4141.41,"lower":3968.46,"count":157,"preSum":4553},{"ndv":157,"upper":4314.99,"lower":4143.20,"count":157,"preSum":4710},{"ndv":156,"upper":4491.51,"lower":4315.12,"count":157,"preSum":4867},{"ndv":157,"upper":4668.14,"lower":4497.73,"count":157,"preSum":5024},{"ndv":157,"upper":4820.66,"lower":4668.28,"count":157,"preSum":5181},{"ndv":157,"upper":4982.70,"lower":4820.81,"count":157,"preSum":5338},{"ndv":157,"upper":5144.82,"lower":4982.75,"count":157,"preSum":5495},{"ndv":156,"upper":5326.48,"lower":5146.46,"count":157,"preSum":5652},{"ndv":157,"upper":5513.61,"lower":5326.64,"count":157,"preSum":5809},{"ndv":157,"upper":5682.70,"lower":5515.08,"count":157,"preSum":5966},{"ndv":156,"upper":5848.19,"lower":5683.51,"count":157,"preSum":6123},{"ndv":155,"upper":6005.91,"lower":5848.40,"count":157,"preSum":6280},{"ndv":156,"upper":6191.06,"lower":6005.96,"count":157,"preSum":6437},{"ndv":157,"upper":6391.27,"lower":6191.89,"count":157,"preSum":6594},{"ndv":157,"upper":6576.65,"lower":6392.15,"count":157,"preSum":6751},{"ndv":157,"upper":6744.38,"lower":6577.08,"count":157,"preSum":6908},{"ndv":157,"upper":6943.50,"lower":6748.55,"count":157,"preSum":7065},{"ndv":156,"upper":7090.15,"lower":6945.70,"count":157,"preSum":7222},{"ndv":157,"upper":7269.30,"lower":7090.21,"count":157,"preSum":7379},{"ndv":157,"upper":7452.81,"lower":7269.75,"count":157,"preSum":7536},{"ndv":157,"upper":7615.15,"lower":7453.04,"count":157,"preSum":7693},{"ndv":156,"upper":7799.79,"lower":7615.41,"count":157,"preSum":7850},{"ndv":157,"upper":7952.98,"lower":7800.58,"count":157,"preSum":8007},{"ndv":157,"upper":8143.73,"lower":7953.39,"count":157,"preSum":8164},{"ndv":155,"upper":8319.89,"lower":8146.46,"count":157,"preSum":8321},{"ndv":155,"upper":8495.04,"lower":8320.15,"count":157,"preSum":8478},{"ndv":156,"upper":8655.58,"lower":8495.12,"count":157,"preSum":8635},{"ndv":156,"upper":8833.34,"lower":8657.37,"count":157,"preSum":8792},{"ndv":157,"upper":8992.36,"lower":8835.07,"count":157,"preSum":8949},{"ndv":157,"upper":9158.76,"lower":8993.01,"count":157,"preSum":9106},{"ndv":156,"upper":9326.39,"lower":9159.86,"count":157,"preSum":9263},{"ndv":156,"upper":9505.68,"lower":9327.47,"count":157,"preSum":9420},{"ndv":157,"upper":9683.72,"lower":9506.83,"count":157,"preSum":9577},{"ndv":157,"upper":9881.95,"lower":9684.51,"count":157,"preSum":9734},{"ndv":108,"upper":9997.74,"lower":9883.08,"count":109,"preSum":9891}],"maxBucketSize":64,"type":"Double","sampleRate":0.09835163} +customer.c_mktsegment.histogram: + {"buckets":[{"ndv":1,"upper":"AUTOMOBILE","lower":"AUTOMOBILE","count":2035,"preSum":0},{"ndv":1,"upper":"BUILDING","lower":"BUILDING","count":1988,"preSum":2035},{"ndv":1,"upper":"FURNITURE","lower":"FURNITURE","count":2033,"preSum":4023},{"ndv":1,"upper":"HOUSEHOLD","lower":"HOUSEHOLD","count":2022,"preSum":6056},{"ndv":1,"upper":"MACHINERY","lower":"MACHINERY","count":1922,"preSum":8078}],"maxBucketSize":64,"type":"String","sampleRate":0.09835163} +customer.c_comment.histogram: + {"buckets":[{"ndv":140,"upper":" asymptotes. slyly i","lower":" about the blithely ","count":157,"preSum":0},{"ndv":147,"upper":" carefully silent re","lower":" asymptotes. slyly s","count":157,"preSum":157},{"ndv":152,"upper":" express packages. f","lower":" carefully special p","count":157,"preSum":314},{"ndv":139,"upper":" haggle blithely amo","lower":" express somas cajol","count":157,"preSum":471},{"ndv":148,"upper":" pending deposits. r","lower":" haggle blithely flu","count":157,"preSum":628},{"ndv":126,"upper":" requests haggle abo","lower":" pending escapades h","count":157,"preSum":785},{"ndv":144,"upper":" the blithely regula","lower":" requests haggle fur","count":157,"preSum":942},{"ndv":146,"upper":" wake slyly accordin","lower":" the bold ideas cajo","count":157,"preSum":1099},{"ndv":144,"upper":". quickly express de","lower":" wake slyly bravely ","count":157,"preSum":1256},{"ndv":148,"upper":"ackages wake blithel","lower":". quickly express gr","count":157,"preSum":1413},{"ndv":149,"upper":"ake fluffily package","lower":"ackages wake finally","count":157,"preSum":1570},{"ndv":152,"upper":"ar excuses use busil","lower":"ake furiously ironic","count":157,"preSum":1727},{"ndv":142,"upper":"asymptotes. fluffily","lower":"ar excuses. carefull","count":157,"preSum":1884},{"ndv":149,"upper":"bove the sheaves. bl","lower":"asymptotes. furiousl","count":157,"preSum":2041},{"ndv":149,"upper":"ccounts nag blithely","lower":"bove the slyly final","count":157,"preSum":2198},{"ndv":149,"upper":"counts boost furious","lower":"ccounts nag never at","count":157,"preSum":2355},{"ndv":154,"upper":"deas. special ideas ","lower":"counts cajole among ","count":157,"preSum":2512},{"ndv":149,"upper":"e after the furiousl","lower":"deas; furiously spec","count":157,"preSum":2669},{"ndv":150,"upper":"e regular dependenci","lower":"e against the final ","count":157,"preSum":2826},{"ndv":156,"upper":"eep carefully ironic","lower":"e regular, pending e","count":157,"preSum":2983},{"ndv":145,"upper":"ely ironic pinto bea","lower":"eep fluffily at the ","count":157,"preSum":3140},{"ndv":150,"upper":"ep final dependencie","lower":"ely pending ideas wa","count":157,"preSum":3297},{"ndv":146,"upper":"es haggle slyly. fin","lower":"ep fluffily final, f","count":157,"preSum":3454},{"ndv":152,"upper":"ets. quickly express","lower":"es hang furiously re","count":157,"preSum":3611},{"ndv":154,"upper":"fluffy theodolites w","lower":"ets. quickly ironic ","count":157,"preSum":3768},{"ndv":144,"upper":"furiously. unusual, ","lower":"foxes cajole across ","count":157,"preSum":3925},{"ndv":154,"upper":"grow furiously blith","lower":"g about the blithely","count":157,"preSum":4082},{"ndv":143,"upper":"he requests cajole b","lower":"grow ironically fluf","count":157,"preSum":4239},{"ndv":153,"upper":"ic platelets detect ","lower":"he requests. final i","count":157,"preSum":4396},{"ndv":155,"upper":"inal accounts are al","lower":"ic platelets wake af","count":157,"preSum":4553},{"ndv":150,"upper":"ious instructions. q","lower":"inal accounts are pe","count":157,"preSum":4710},{"ndv":146,"upper":"ithely final deposit","lower":"iously about the fur","count":157,"preSum":4867},{"ndv":155,"upper":"kly against the fluf","lower":"ithely final ideas. ","count":157,"preSum":5024},{"ndv":154,"upper":"lar ideas: silent in","lower":"kly blithe accounts.","count":157,"preSum":5181},{"ndv":157,"upper":"lites nag carefully.","lower":"lar instructions aft","count":157,"preSum":5338},{"ndv":153,"upper":"luffily furiously pe","lower":"lites play special t","count":157,"preSum":5495},{"ndv":137,"upper":"ly fluffily regular ","lower":"luffily ironic asymp","count":157,"preSum":5652},{"ndv":131,"upper":"lyly bold instructio","lower":"ly foxes. ironic, ev","count":157,"preSum":5809},{"ndv":152,"upper":"nal theodolites are ","lower":"lyly bold pinto bean","count":157,"preSum":5966},{"ndv":155,"upper":"nic packages are fur","lower":"nal, bold deposits a","count":157,"preSum":6123},{"ndv":153,"upper":"nts wake regular, re","lower":"nic packages play fl","count":157,"preSum":6280},{"ndv":155,"upper":"ong the blithely pen","lower":"nts was across the c","count":157,"preSum":6437},{"ndv":151,"upper":"oss the even, specia","lower":"ong the blithely reg","count":157,"preSum":6594},{"ndv":146,"upper":"ove the furiously fi","lower":"oss the express, iro","count":158,"preSum":6751},{"ndv":151,"upper":"pinto beans nag alon","lower":"ove the requests sle","count":157,"preSum":6909},{"ndv":145,"upper":"quickly slyly unusua","lower":"pinto beans nag slyl","count":157,"preSum":7066},{"ndv":150,"upper":"refully ironic packa","lower":"quickly special foxe","count":157,"preSum":7223},{"ndv":145,"upper":"ring, ironic excuses","lower":"refully ironic reque","count":157,"preSum":7380},{"ndv":147,"upper":"ruthless courts play","lower":"ring, pending reques","count":157,"preSum":7537},{"ndv":151,"upper":"s promise carefully ","lower":"ruthless packages wa","count":157,"preSum":7694},{"ndv":149,"upper":"s. pinto beans must ","lower":"s regular requests c","count":157,"preSum":7851},{"ndv":149,"upper":"sly busy requests. b","lower":"s. pinto beans wake ","count":157,"preSum":8008},{"ndv":141,"upper":"ss accounts. final, ","lower":"sly dependencies. fu","count":157,"preSum":8165},{"ndv":156,"upper":"t are blithely again","lower":"ss accounts. slyly b","count":157,"preSum":8322},{"ndv":150,"upper":"the furiously expres","lower":"t blithely. doggedly","count":158,"preSum":8479},{"ndv":153,"upper":"Tiresias wake blithe","lower":"the furiously final ","count":157,"preSum":8637},{"ndv":152,"upper":"ts. blithely even id","lower":"tly final ideas use ","count":157,"preSum":8794},{"ndv":151,"upper":"uffily unusual depos","lower":"ts. blithely final T","count":157,"preSum":8951},{"ndv":147,"upper":"unts are slyly ideas","lower":"uffily unusual reque","count":157,"preSum":9108},{"ndv":140,"upper":"usly bold accounts w","lower":"unts around the blit","count":157,"preSum":9265},{"ndv":152,"upper":"ways pending Tiresia","lower":"usly bold packages. ","count":157,"preSum":9422},{"ndv":150,"upper":"y final accounts acc","lower":"will have to haggle ","count":157,"preSum":9579},{"ndv":136,"upper":"y warhorses. instruc","lower":"y final accounts caj","count":157,"preSum":9736},{"ndv":102,"upper":"zzle furiously among","lower":"y! slyly regular wat","count":107,"preSum":9893}],"maxBucketSize":64,"type":"String","sampleRate":0.09835163} + +customer.sampleRate: + 0.00674018 + +customer.c_acctbal.nullCount: + 0 +customer.c_address.nullCount: + 0 +customer.c_comment.nullCount: + 0 +customer.c_custkey.nullCount: + 0 +customer.c_mktsegment.nullCount: + 0 +customer.c_name.nullCount: + 0 +customer.c_nationkey.nullCount: + 0 +customer.c_phone.nullCount: + 0 \ No newline at end of file diff --git a/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/partition/PartitionDistinctAggTest.yml b/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/partition/PartitionDistinctAggTest.yml new file mode 100644 index 000000000..f114ab296 --- /dev/null +++ b/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/partition/PartitionDistinctAggTest.yml @@ -0,0 +1,295 @@ +- sql: | + /*+TDDL:PUSH_AGG_INPUT_ROW_COUNT_THRESHOLD=100000 ENABLE_CBO_PUSH_AGG=false ENABLE_EXPAND_DISTINCTAGG=false*/select count(c_custkey), sum(distinct c_custkey) from customer_test; + + plan: | + hashagg(count(c_custkey)="count()", sum(distinct c_custkey)="sum(distinct c_custkey)") + gather(concurrent=true) + logicalview(tables="customer_test[p1,p2,p3,p4]", shardcount=4, sql="select `c_custkey` from `customer_test` as `customer_test`") + +- sql: | + /*+TDDL:PUSH_AGG_INPUT_ROW_COUNT_THRESHOLD=100000 ENABLE_CBO_PUSH_AGG=false ENABLE_EXPAND_DISTINCTAGG=false*/select sum(distinct c_nationkey), count(distinct c_custkey, c_address) from customer_test; + + plan: | + hashagg(sum(distinct c_nationkey)="sum(distinct c_nationkey)", count(distinct c_custkey, c_address)="count(distinct c_custkey, c_address)") + gather(concurrent=true) + logicalview(tables="customer_test[p1,p2,p3,p4]", shardcount=4, sql="select `c_nationkey`, `c_custkey`, `c_address` from `customer_test` as `customer_test`") + +- sql: | + /*+TDDL:PUSH_AGG_INPUT_ROW_COUNT_THRESHOLD=100000 ENABLE_CBO_PUSH_AGG=false ENABLE_EXPAND_DISTINCTAGG=false*/select sum(distinct c_nationkey), count(distinct c_nationkey, c_address) from customer_test; + + plan: | + hashagg(sum(distinct c_nationkey)="sum(sum(distinct c_nationkey))", count(distinct c_nationkey, c_address)="sum(count(distinct c_nationkey, c_address))") + gather(concurrent=true) + logicalview(tables="customer_test[p1,p2,p3,p4]", shardcount=4, sql="select sum(distinct `c_nationkey`) as `sum(distinct c_nationkey)`, count(distinct `c_nationkey`, `c_address`) as `count(distinct c_nationkey, c_address)` from `customer_test` as `customer_test`") + +- sql: | + /*+TDDL:PUSH_AGG_INPUT_ROW_COUNT_THRESHOLD=100000 ENABLE_CBO_PUSH_AGG=false ENABLE_EXPAND_DISTINCTAGG=false*/select count(distinct c_nationkey), sum(distinct c_nationkey) from customer_test; + + plan: | + hashagg(count(distinct c_nationkey)="sum(count(distinct c_nationkey))", sum(distinct c_nationkey)="sum(sum(distinct c_nationkey))") + gather(concurrent=true) + logicalview(tables="customer_test[p1,p2,p3,p4]", shardcount=4, sql="select count(distinct `c_nationkey`) as `count(distinct c_nationkey)`, sum(distinct `c_nationkey`) as `sum(distinct c_nationkey)` from `customer_test` as `customer_test`") + +- sql: | + /*+TDDL:PUSH_AGG_INPUT_ROW_COUNT_THRESHOLD=100000 ENABLE_CBO_PUSH_AGG=false ENABLE_EXPAND_DISTINCTAGG=false*/select count(c_custkey), sum(distinct c_custkey) from customer_test group by c_nationkey; + + plan: | + gather(concurrent=true) + logicalview(tables="customer_test[p1,p2,p3,p4]", shardcount=4, sql="select count(*) as `count(c_custkey)`, sum(distinct `c_custkey`) as `sum(distinct c_custkey)` from `customer_test` as `customer_test` group by `c_nationkey`") + +- sql: | + /*+TDDL:PUSH_AGG_INPUT_ROW_COUNT_THRESHOLD=100000 ENABLE_CBO_PUSH_AGG=false ENABLE_EXPAND_DISTINCTAGG=false*/select count(distinct c_nationkey), sum(distinct c_nationkey) from customer_test group by c_nationkey; + + plan: | + gather(concurrent=true) + logicalview(tables="customer_test[p1,p2,p3,p4]", shardcount=4, sql="select count(distinct `c_nationkey`) as `count(distinct c_nationkey)`, sum(distinct `c_nationkey`) as `sum(distinct c_nationkey)` from `customer_test` as `customer_test` group by `c_nationkey`") + +- sql: | + /*+TDDL:PUSH_AGG_INPUT_ROW_COUNT_THRESHOLD=100000 ENABLE_CBO_PUSH_AGG=false ENABLE_EXPAND_DISTINCTAGG=false*/select avg(distinct c_nationkey), sum(distinct c_nationkey) from customer_test; + + plan: | + project(avg(distinct c_nationkey)="$f0 / $f1", sum(distinct c_nationkey)="$f0") + hashagg($f0="sum($f0)", $f1="sum($f1)") + gather(concurrent=true) + logicalview(tables="customer_test[p1,p2,p3,p4]", shardcount=4, sql="select sum(distinct `c_nationkey`) as `$f0`, count(distinct `c_nationkey`) as `$f1` from `customer_test` as `customer_test`") + +- sql: | + /*+TDDL:PUSH_AGG_INPUT_ROW_COUNT_THRESHOLD=100000 ENABLE_CBO_PUSH_AGG=false ENABLE_EXPAND_DISTINCTAGG=false*/select group_concat(distinct c_nationkey), sum(distinct c_nationkey) from customer_test; + + plan: | + hashagg(group_concat(distinct c_nationkey)="group_concat(distinct c_nationkey)", sum(distinct c_nationkey)="sum(distinct c_nationkey)") + gather(concurrent=true) + logicalview(tables="customer_test[p1,p2,p3,p4]", shardcount=4, sql="select `c_nationkey` from `customer_test` as `customer_test`") + +- sql: | + /*+TDDL:PUSH_AGG_INPUT_ROW_COUNT_THRESHOLD=100000 ENABLE_PUSH_AGG=false ENABLE_EXPAND_DISTINCTAGG=false*/select count(c_custkey), count(distinct c_custkey), max(c_custkey), max(distinct c_custkey) from customer; + + plan: | + project(count(c_custkey)="count(c_custkey)", count(distinct c_custkey)="count(distinct c_custkey)", max(c_custkey)="max(c_custkey)", max(distinct c_custkey)="max(c_custkey)") + hashagg(count(c_custkey)="sum(count(c_custkey))", count(distinct c_custkey)="sum(count(distinct c_custkey))", max(c_custkey)="max(max(c_custkey))") + gather(concurrent=true) + logicalview(tables="customer[p1,p2,p3,p4]", shardcount=4, sql="select count(*) as `count(c_custkey)`, count(distinct `c_custkey`) as `count(distinct c_custkey)`, max(`c_custkey`) as `max(c_custkey)` from `customer` as `customer`") + +- sql: | + /*+TDDL:PUSH_AGG_INPUT_ROW_COUNT_THRESHOLD=100000 ENABLE_PUSH_AGG=false ENABLE_EXPAND_DISTINCTAGG=false*/select sum(c_custkey), min(distinct c_custkey) from customer; + + plan: | + hashagg(sum(c_custkey)="sum(sum(c_custkey))", min(distinct c_custkey)="min(min(distinct c_custkey))") + gather(concurrent=true) + logicalview(tables="customer[p1,p2,p3,p4]", shardcount=4, sql="select sum(`c_custkey`) as `sum(c_custkey)`, min(`c_custkey`) as `min(distinct c_custkey)` from `customer` as `customer`") + +- sql: | + /*+TDDL:PUSH_AGG_INPUT_ROW_COUNT_THRESHOLD=100000 ENABLE_PUSH_AGG=false ENABLE_EXPAND_DISTINCTAGG=false*/select sum(c_custkey), sum(distinct c_custkey), bit_and(distinct c_custkey), bit_or(distinct c_custkey) from customer group by c_custkey; + + plan: | + gather(concurrent=true) + logicalview(tables="customer[p1,p2,p3,p4]", shardcount=4, sql="select sum(`c_custkey`) as `sum(c_custkey)`, sum(`c_custkey`) as `sum(distinct c_custkey)`, (bit_and(`c_custkey`)) as `bit_and(distinct c_custkey)`, (bit_or(`c_custkey`)) as `bit_or(distinct c_custkey)` from `customer` as `customer` group by `c_custkey`") + +- sql: | + /*+TDDL:PUSH_AGG_INPUT_ROW_COUNT_THRESHOLD=100000 ENABLE_PUSH_AGG=false ENABLE_EXPAND_DISTINCTAGG=false*/select sum(distinct c_phone), sum(distinct c_custkey) from customer group by c_custkey; + + plan: | + gather(concurrent=true) + logicalview(tables="customer[p1,p2,p3,p4]", shardcount=4, sql="select sum(`c_phone`) as `sum(distinct c_phone)`, sum(`c_custkey`) as `sum(distinct c_custkey)` from `customer` as `customer` group by `c_custkey`") + +- sql: | + /*+TDDL:PUSH_AGG_INPUT_ROW_COUNT_THRESHOLD=100000 ENABLE_PUSH_AGG=false ENABLE_EXPAND_DISTINCTAGG=false*/select sum(distinct c_phone), sum(distinct c_custkey) from customer group by c_phone; + + plan: | + project(sum(distinct c_phone)="sum(distinct c_phone)", sum(distinct c_custkey)="sum(distinct c_custkey)") + hashagg(group="c_phone", sum(distinct c_phone)="sum(distinct c_phone)", sum(distinct c_custkey)="sum(c_custkey)") + gather(concurrent=true) + logicalview(tables="customer[p1,p2,p3,p4]", shardcount=4, sql="select `c_phone`, `c_custkey` from `customer` as `customer`") + +- sql: | + /*+TDDL:PUSH_AGG_INPUT_ROW_COUNT_THRESHOLD=100000 ENABLE_PUSH_AGG=false ENABLE_EXPAND_DISTINCTAGG=false*/select sum(distinct c_phone), sum(distinct c_custkey) from customer; + + plan: | + hashagg(sum(distinct c_phone)="sum(distinct c_phone)", sum(distinct c_custkey)="sum(c_custkey)") + gather(concurrent=true) + logicalview(tables="customer[p1,p2,p3,p4]", shardcount=4, sql="select `c_phone`, `c_custkey` from `customer` as `customer`") + +- sql: | + /*+TDDL:PUSH_AGG_INPUT_ROW_COUNT_THRESHOLD=100000 ENABLE_PUSH_AGG=false ENABLE_EXPAND_DISTINCTAGG=false*/select c_phone, sum(distinct c_custkey) from customer; + + plan: | + hashagg(c_phone="__first_value(c_phone)", sum(distinct c_custkey)="sum(sum(distinct c_custkey))") + gather(concurrent=true) + logicalview(tables="customer[p1,p2,p3,p4]", shardcount=4, sql="select (`c_phone`) as `c_phone`, sum(`c_custkey`) as `sum(distinct c_custkey)` from `customer` as `customer`") + +- sql: | + /*+TDDL:PUSH_AGG_INPUT_ROW_COUNT_THRESHOLD=100000 ENABLE_CBO_PUSH_AGG=false*/select count(c_custkey), count(distinct c_custkey), max(c_custkey), max(distinct c_custkey) from customer; + + plan: | + project(count(c_custkey)="count(c_custkey)", count(distinct c_custkey)="count(distinct c_custkey)", max(c_custkey)="max(c_custkey)", max(distinct c_custkey)="max(c_custkey)") + hashagg(count(c_custkey)="sum(count(c_custkey))", count(distinct c_custkey)="sum(count(distinct c_custkey))", max(c_custkey)="max(max(c_custkey))") + gather(concurrent=true) + logicalview(tables="customer[p1,p2,p3,p4]", shardcount=4, sql="select count(*) as `count(c_custkey)`, count(distinct `c_custkey`) as `count(distinct c_custkey)`, max(`c_custkey`) as `max(c_custkey)` from `customer` as `customer`") + +- sql: | + /*+TDDL:PUSH_AGG_INPUT_ROW_COUNT_THRESHOLD=100000 ENABLE_CBO_PUSH_AGG=false*/select sum(c_custkey), sum(distinct c_custkey), bit_and(distinct c_custkey), bit_or(distinct c_custkey) from customer; + + plan: | + hashagg(sum(c_custkey)="sum(sum(c_custkey))", sum(distinct c_custkey)="sum(sum(distinct c_custkey))", bit_and(distinct c_custkey)="bit_and(bit_and(distinct c_custkey))", bit_or(distinct c_custkey)="bit_or(bit_or(distinct c_custkey))") + gather(concurrent=true) + logicalview(tables="customer[p1,p2,p3,p4]", shardcount=4, sql="select sum(`c_custkey`) as `sum(c_custkey)`, sum(`c_custkey`) as `sum(distinct c_custkey)`, (bit_and(`c_custkey`)) as `bit_and(distinct c_custkey)`, (bit_or(`c_custkey`)) as `bit_or(distinct c_custkey)` from `customer` as `customer`") + +- sql: | + /*+TDDL:PUSH_AGG_INPUT_ROW_COUNT_THRESHOLD=100000 ENABLE_CBO_PUSH_AGG=false*/select sum(c_custkey), sum(distinct c_custkey), bit_and(distinct c_custkey), bit_or(distinct c_custkey) from customer group by c_custkey; + + plan: | + gather(concurrent=true) + logicalview(tables="customer[p1,p2,p3,p4]", shardcount=4, sql="select sum(`c_custkey`) as `sum(c_custkey)`, sum(`c_custkey`) as `sum(distinct c_custkey)`, (bit_and(`c_custkey`)) as `bit_and(distinct c_custkey)`, (bit_or(`c_custkey`)) as `bit_or(distinct c_custkey)` from `customer` as `customer` group by `c_custkey`") + +- sql: | + /*+TDDL:PUSH_AGG_INPUT_ROW_COUNT_THRESHOLD=100000 ENABLE_CBO_PUSH_AGG=false*/select sum(distinct c_phone), sum(distinct c_custkey) from customer group by c_custkey; + + plan: | + gather(concurrent=true) + logicalview(tables="customer[p1,p2,p3,p4]", shardcount=4, sql="select sum(`c_phone`) as `sum(distinct c_phone)`, sum(`c_custkey`) as `sum(distinct c_custkey)` from `customer` as `customer` group by `c_custkey`") + +- sql: | + /*+TDDL:PUSH_AGG_INPUT_ROW_COUNT_THRESHOLD=100000 ENABLE_CBO_PUSH_AGG=false ENABLE_EXPAND_DISTINCTAGG=false*/select sum(distinct c_phone), sum(distinct c_custkey) from customer group by c_phone; + + plan: | + project(sum(distinct c_phone)="sum(distinct c_phone)", sum(distinct c_custkey)="sum(distinct c_custkey)") + hashagg(group="c_phone", sum(distinct c_phone)="sum(distinct c_phone)", sum(distinct c_custkey)="sum(c_custkey)") + gather(concurrent=true) + logicalview(tables="customer[p1,p2,p3,p4]", shardcount=4, sql="select `c_phone`, `c_custkey` from `customer` as `customer`") + +- sql: | + /*+TDDL:PUSH_AGG_INPUT_ROW_COUNT_THRESHOLD=100000 ENABLE_CBO_PUSH_AGG=false ENABLE_EXPAND_DISTINCTAGG=false*/select sum(distinct c_phone), sum(distinct c_custkey) from customer; + + plan: | + hashagg(sum(distinct c_phone)="sum(distinct c_phone)", sum(distinct c_custkey)="sum(c_custkey)") + gather(concurrent=true) + logicalview(tables="customer[p1,p2,p3,p4]", shardcount=4, sql="select `c_phone`, `c_custkey` from `customer` as `customer`") + +- sql: | + /*+TDDL:PUSH_AGG_INPUT_ROW_COUNT_THRESHOLD=100000 ENABLE_CBO_PUSH_AGG=false ENABLE_EXPAND_DISTINCTAGG=false*/select c_phone, sum(distinct c_custkey) from customer; + + plan: | + hashagg(c_phone="__first_value(c_phone)", sum(distinct c_custkey)="sum(sum(distinct c_custkey))") + gather(concurrent=true) + logicalview(tables="customer[p1,p2,p3,p4]", shardcount=4, sql="select (`c_phone`) as `c_phone`, sum(`c_custkey`) as `sum(distinct c_custkey)` from `customer` as `customer`") + +- sql: | + /*+TDDL:PUSH_AGG_INPUT_ROW_COUNT_THRESHOLD=100000 ENABLE_PUSH_AGG=false ENABLE_EXPAND_DISTINCTAGG=false*/select count(c_custkey), sum(distinct c_custkey) from customer_test; + + plan: | + hashagg(count(c_custkey)="count()", sum(distinct c_custkey)="sum(distinct c_custkey)") + gather(concurrent=true) + logicalview(tables="customer_test[p1,p2,p3,p4]", shardcount=4, sql="select `c_custkey` from `customer_test` as `customer_test`") + +- sql: | + /*+TDDL:PUSH_AGG_INPUT_ROW_COUNT_THRESHOLD=100000 ENABLE_PUSH_AGG=false ENABLE_EXPAND_DISTINCTAGG=false*/select count(distinct c_nationkey), sum(distinct c_nationkey) from customer_test; + + plan: | + hashagg(count(distinct c_nationkey)="sum(count(distinct c_nationkey))", sum(distinct c_nationkey)="sum(sum(distinct c_nationkey))") + gather(concurrent=true) + logicalview(tables="customer_test[p1,p2,p3,p4]", shardcount=4, sql="select count(distinct `c_nationkey`) as `count(distinct c_nationkey)`, sum(distinct `c_nationkey`) as `sum(distinct c_nationkey)` from `customer_test` as `customer_test`") + +- sql: | + /*+TDDL:PUSH_AGG_INPUT_ROW_COUNT_THRESHOLD=100000 ENABLE_HASH_AGG=false ENABLE_PUSH_AGG=false ENABLE_EXPAND_DISTINCTAGG=false*/select count(c_custkey), sum(distinct c_custkey) from customer_test group by c_nationkey; + + plan: | + gather(concurrent=true) + logicalview(tables="customer_test[p1,p2,p3,p4]", shardcount=4, sql="select count(*) as `count(c_custkey)`, sum(distinct `c_custkey`) as `sum(distinct c_custkey)` from `customer_test` as `customer_test` group by `c_nationkey`") + +- sql: | + /*+TDDL:PUSH_AGG_INPUT_ROW_COUNT_THRESHOLD=100000 ENABLE_HASH_AGG=false ENABLE_PUSH_AGG=false ENABLE_EXPAND_DISTINCTAGG=false*/select count(distinct c_nationkey), sum(distinct c_nationkey) from customer_test group by c_nationkey; + + plan: | + gather(concurrent=true) + logicalview(tables="customer_test[p1,p2,p3,p4]", shardcount=4, sql="select count(distinct `c_nationkey`) as `count(distinct c_nationkey)`, sum(distinct `c_nationkey`) as `sum(distinct c_nationkey)` from `customer_test` as `customer_test` group by `c_nationkey`") + +- sql: | + /*+TDDL:PUSH_AGG_INPUT_ROW_COUNT_THRESHOLD=100000 ENABLE_PUSH_AGG=false ENABLE_EXPAND_DISTINCTAGG=false*/select avg(distinct c_nationkey), sum(distinct c_nationkey) from customer_test; + + plan: | + project(avg(distinct c_nationkey)="$f0 / $f1", sum(distinct c_nationkey)="$f0") + hashagg($f0="sum($f0)", $f1="sum($f1)") + gather(concurrent=true) + logicalview(tables="customer_test[p1,p2,p3,p4]", shardcount=4, sql="select sum(distinct `c_nationkey`) as `$f0`, count(distinct `c_nationkey`) as `$f1` from `customer_test` as `customer_test`") + +- sql: | + /*+TDDL:PUSH_AGG_INPUT_ROW_COUNT_THRESHOLD=100000 ENABLE_PUSH_AGG=false ENABLE_EXPAND_DISTINCTAGG=false*/select group_concat(distinct c_nationkey), sum(distinct c_nationkey) from customer_test; + + plan: | + hashagg(group_concat(distinct c_nationkey)="group_concat(distinct c_nationkey)", sum(distinct c_nationkey)="sum(distinct c_nationkey)") + gather(concurrent=true) + logicalview(tables="customer_test[p1,p2,p3,p4]", shardcount=4, sql="select `c_nationkey` from `customer_test` as `customer_test`") + +- sql: | + /*+TDDL:PUSH_AGG_INPUT_ROW_COUNT_THRESHOLD=100000 ENABLE_EXPAND_DISTINCTAGG=false*/select group_concat(c_nationkey), avg(c_nationkey) from customer_test group by c_custkey; + + plan: | + project(group_concat(c_nationkey)="group_concat(c_nationkey)", avg(c_nationkey)="$f2 / $f3") + hashagg(group="c_custkey", group_concat(c_nationkey)="group_concat(group_concat(c_nationkey))", $f2="sum($f2)", $f3="sum($f3)") + gather(concurrent=true) + logicalview(tables="customer_test[p1,p2,p3,p4]", shardcount=4, sql="select `c_custkey`, group_concat(`c_nationkey` ) as `group_concat(c_nationkey)`, sum(`c_nationkey`) as `$f2`, count(*) as `$f3` from `customer_test` as `customer_test` group by `c_custkey`") + +- sql: | + /*+TDDL:PUSH_AGG_INPUT_ROW_COUNT_THRESHOLD=100000 ENABLE_PUSH_AGG=false enable_sort_agg=false ENABLE_EXPAND_DISTINCTAGG=false*/select group_concat(c_nationkey), avg(c_nationkey) from customer_test group by c_custkey; + + plan: | + project(group_concat(c_nationkey)="group_concat(c_nationkey)", avg(c_nationkey)="$f2 / $f3") + hashagg(group="c_custkey", group_concat(c_nationkey)="group_concat(group_concat(c_nationkey))", $f2="sum($f2)", $f3="sum($f3)") + gather(concurrent=true) + logicalview(tables="customer_test[p1,p2,p3,p4]", shardcount=4, sql="select `c_custkey`, group_concat(`c_nationkey` ) as `group_concat(c_nationkey)`, sum(`c_nationkey`) as `$f2`, count(*) as `$f3` from `customer_test` as `customer_test` group by `c_custkey`") + +- sql: | + /*+TDDL:PUSH_AGG_INPUT_ROW_COUNT_THRESHOLD=100000 ENABLE_PUSH_AGG=false enable_sort_agg=false ENABLE_EXPAND_DISTINCTAGG=false*/select sum(distinct c_nationkey), count(distinct c_custkey, c_address) from customer_test; + + plan: | + hashagg(sum(distinct c_nationkey)="sum(distinct c_nationkey)", count(distinct c_custkey, c_address)="count(distinct c_custkey, c_address)") + gather(concurrent=true) + logicalview(tables="customer_test[p1,p2,p3,p4]", shardcount=4, sql="select `c_nationkey`, `c_custkey`, `c_address` from `customer_test` as `customer_test`") + +- sql: | + /*+TDDL:PUSH_AGG_INPUT_ROW_COUNT_THRESHOLD=100000 ENABLE_PUSH_AGG=false enable_sort_agg=false ENABLE_EXPAND_DISTINCTAGG=false*/select sum(distinct c_nationkey), count(distinct c_nationkey, c_address) from customer_test; + + plan: | + hashagg(sum(distinct c_nationkey)="sum(sum(distinct c_nationkey))", count(distinct c_nationkey, c_address)="sum(count(distinct c_nationkey, c_address))") + gather(concurrent=true) + logicalview(tables="customer_test[p1,p2,p3,p4]", shardcount=4, sql="select sum(distinct `c_nationkey`) as `sum(distinct c_nationkey)`, count(distinct `c_nationkey`, `c_address`) as `count(distinct c_nationkey, c_address)` from `customer_test` as `customer_test`") + +- sql: | + select sum(distinct c_nationkey), count(distinct c_custkey, c_address) from customer_test; + + plan: | + hashagg(sum(distinct c_nationkey)="sum(c_nationkey) filter $3", count(distinct c_custkey, c_address)="count(c_custkey, c_address) filter $4") + project(c_nationkey="c_nationkey", c_custkey="c_custkey", c_address="c_address", $g_3="case(=($3, 3), 3, 4) = 3", $g_4="case(=($3, 3), 3, 4) = 4") + hashagg(group="c_nationkey,c_custkey,c_address,$e") + expand(projects="{c_nationkey=c_nationkey, c_custkey=null, c_address=null, $e=3}, {c_nationkey=null, c_custkey=c_custkey, c_address=c_address, $e=4}") + gather(concurrent=true) + logicalview(tables="customer_test[p1,p2,p3,p4]", shardcount=4, sql="select `c_nationkey`, `c_custkey`, `c_address` from `customer_test` as `customer_test`") + +- sql: | + select sum(distinct c_nationkey), count(distinct c_nationkey, c_address) from customer_test; + + plan: | + hashagg(sum(distinct c_nationkey)="sum(sum(distinct c_nationkey))", count(distinct c_nationkey, c_address)="sum(count(distinct c_nationkey, c_address))") + gather(concurrent=true) + logicalview(tables="customer_test[p1,p2,p3,p4]", shardcount=4, sql="select sum(distinct `c_nationkey`) as `sum(distinct c_nationkey)`, count(distinct `c_nationkey`, `c_address`) as `count(distinct c_nationkey, c_address)` from `customer_test` as `customer_test`") + +- sql: | + select count(distinct c_custkey, c_address) from customer_test; + + plan: | + hashagg(count(distinct c_custkey, c_address)="count(c_custkey, c_address)") + hashagg(group="c_custkey,c_address") + gather(concurrent=true) + logicalview(tables="customer_test[p1,p2,p3,p4]", shardcount=4, sql="select `c_custkey`, `c_address` from `customer_test` as `customer_test` group by `c_custkey`, `c_address`") + +- sql: | + select count(distinct c_custkey, c_nationkey, c_address) from customer where c_custkey=3; + + plan: | + phytableoperation(tables="customer[p1]", sql="select count(distinct `customer`.`c_custkey`, `customer`.`c_nationkey`, `customer`.`c_address`) as `count(distinct c_custkey, c_nationkey, c_address)` from ? as `customer` where (`customer`.`c_custkey` = 3)") + +- sql: | + select count(1), count(distinct c_custkey, c_nationkey, c_address) from customer where c_custkey=3; + + plan: | + phytableoperation(tables="customer[p1]", sql="select count(1) as `count(1)`, count(distinct `customer`.`c_custkey`, `customer`.`c_nationkey`, `customer`.`c_address`) as `count(distinct c_custkey, c_nationkey, c_address)` from ? as `customer` where (`customer`.`c_custkey` = 3)") \ No newline at end of file diff --git a/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/rewriter/AggRuleTest.test.yml b/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/rewriter/AggRuleTest.test.yml index 290fc1ef5..f403a8e65 100644 --- a/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/rewriter/AggRuleTest.test.yml +++ b/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/rewriter/AggRuleTest.test.yml @@ -88,23 +88,9 @@ select count(distinct userid),group_concat(operation, ',') from user_log group by name, actionDate plan: | - Project(count(DISTINCT userid)="count(DISTINCT userid)", group_concat(operation, ',')="group_concat(operation, ',')") - LogicalAgg(group="name,actionDate", count(DISTINCT userid)="COUNT(userId) FILTER $4", group_concat(operation, ',')="MIN(group_concat(operation, ',')) FILTER $5") - Project(name="name", actionDate="actionDate", userId="userId", group_concat(operation, ',')="group_concat(operation, ',')", $g_0="CASE(=($3, 0), 0, 1) = 0", $g_1="CASE(=($3, 0), 0, 1) = 1") - LogicalAgg(group="name,actionDate,userId,$e", group_concat(operation, ',')="GROUP_CONCAT(operation, $f4)") - Expand(projects="{name=name, actionDate=actionDate, userId=userId, operation=operation, $f4=$f4, $e=0}, {name=name, actionDate=actionDate, userId=null, operation=operation, $f4=$f4, $e=1}") - LogicalView(tables="[0000-0003].user_log_[0-6]", shardCount=28, sql="SELECT `name`, `actionDate`, `userId`, `operation`, ',' AS `$f4` FROM `user_log` AS `user_log`") - -- sql: | - select count(distinct userid),group_concat(operation, ',') from user_log group by name, actionDate - - plan: | - Project(count(DISTINCT userid)="count(DISTINCT userid)", group_concat(operation, ',')="group_concat(operation, ',')") - LogicalAgg(group="name,actionDate", count(DISTINCT userid)="COUNT(userId) FILTER $4", group_concat(operation, ',')="MIN(group_concat(operation, ',')) FILTER $5") - Project(name="name", actionDate="actionDate", userId="userId", group_concat(operation, ',')="group_concat(operation, ',')", $g_0="CASE(=($3, 0), 0, 1) = 0", $g_1="CASE(=($3, 0), 0, 1) = 1") - LogicalAgg(group="name,actionDate,userId,$e", group_concat(operation, ',')="GROUP_CONCAT(operation, $f4)") - Expand(projects="{name=name, actionDate=actionDate, userId=userId, operation=operation, $f4=$f4, $e=0}, {name=name, actionDate=actionDate, userId=null, operation=operation, $f4=$f4, $e=1}") - LogicalView(tables="[0000-0003].user_log_[0-6]", shardCount=28, sql="SELECT `name`, `actionDate`, `userId`, `operation`, ',' AS `$f4` FROM `user_log` AS `user_log`") + project(count(distinct userid)="count(distinct userid)", group_concat(operation, ',')="group_concat(operation, ',')") + logicalagg(group="name,actiondate", count(distinct userid)="sum(count(distinct userid))", group_concat(operation, ',')="group_concat(group_concat(operation, ','))") + logicalview(tables="[0000-0003].user_log_[0-6]", shardcount=28, sql="select `name`, `actiondate`, count(distinct `userid`) as `count(distinct userid)`, group_concat(`operation`, ',' ) as `group_concat(operation, ',')` from `user_log` as `user_log` group by `name`, `actiondate`") - sql: | select count(*) from user_log limit 1 diff --git a/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/rewriter/DistinctAggRuleTest.test.yml b/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/rewriter/DistinctAggRuleTest.test.yml index 2c5cd1b1e..1942be4ce 100644 --- a/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/rewriter/DistinctAggRuleTest.test.yml +++ b/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/rewriter/DistinctAggRuleTest.test.yml @@ -12,17 +12,19 @@ - sql: | SELECT COUNT(DISTINCT a, b) FROM test_tb plan: | - - LogicalAgg(COUNT(DISTINCT a, b)="COUNT(a, b)") - LogicalAgg(group="a,b") - LogicalView(tables="[0000-0003].test_tb_[00-27]", shardCount=28, sql="SELECT `a`, `b` FROM `test_tb` AS `test_tb`") + logicalagg(count(distinct a, b)="count(a, b)") + logicalagg(group="a,b") + logicalview(tables="[0000-0003].test_tb_[00-27]", shardcount=28, sql="select `a`, `b` from `test_tb` as `test_tb`") - sql: | SELECT COUNT(DISTINCT a), SUM(DISTINCT a), MAX(DISTINCT a) FROM test_tb plan: | - logicalagg(count(distinct a)="count(a)", sum(distinct a)="sum(a)", max(distinct a)="max(a)") - logicalview(tables="[0000-0003].test_tb_[00-27]", shardcount=28, sql="select `a` from `test_tb` as `test_tb`") + logicalagg(count(distinct a)="count(a) filter $2", sum(distinct a)="sum(a) filter $2", max(distinct a)="min(max(distinct a)) filter $3") + project(a="a", max(distinct a)="max(distinct a)", $g_0="case(=($1, 0), 0, 1) = 0", $g_1="case(=($1, 0), 0, 1) = 1") + logicalagg(group="a,$e", max(distinct a)="max(a_0)") + expand(projects="{a=a, $e=0, a_0=a}, {a=null, $e=1, a_0=a}") + logicalview(tables="[0000-0003].test_tb_[00-27]", shardcount=28, sql="select `a` from `test_tb` as `test_tb`") - sql: | SELECT COUNT(DISTINCT a), SUM(b) FROM test_tb @@ -128,24 +130,25 @@ plan: | - Project(COUNT(DISTINCT a, b)="COUNT(DISTINCT a, b)") - LogicalAgg(group="c,d,$e", COUNT(DISTINCT a, b)="COUNT(a, b)") - LogicalAgg(group="c,d,$e,a,b") - Project(c="c", d="d", $e="$e", a="a", b="b") - Expand(projects="{c=c, d=null, a=a, b=b, $e=1}, {c=null, d=d, a=a, b=b, $e=2}") - LogicalView(tables="[0000-0003].test_tb2_[00-27]", shardCount=28, sql="SELECT `c`, `d`, `a`, `b` FROM `test_tb2` AS `test_tb2`") + project(count(distinct a, b)="count(distinct a, b)") + logicalagg(group="c,d,$e", count(distinct a, b)="count(a, b)") + logicalagg(group="c,d,$e,a,b") + project(c="c", d="d", $e="$e", a="a", b="b") + expand(projects="{c=c, d=null, a=a, b=b, $e=1}, {c=null, d=d, a=a, b=b, $e=2}") + logicalview(tables="[0000-0003].test_tb2_[00-27]", shardcount=28, sql="select `c`, `d`, `a`, `b` from `test_tb2` as `test_tb2`") - sql: | SELECT COUNT(DISTINCT a), SUM(DISTINCT a), MAX(DISTINCT a) FROM test_tb2 GROUP BY GROUPING SETS (b, c) plan: | - Project(COUNT(DISTINCT a)="COUNT(DISTINCT a)", SUM(DISTINCT a)="SUM(DISTINCT a)", MAX(DISTINCT a)="MAX(DISTINCT a)") - LogicalAgg(group="b,c,$e", COUNT(DISTINCT a)="COUNT(a)", SUM(DISTINCT a)="SUM(a)", MAX(DISTINCT a)="MAX(a)") - LogicalAgg(group="b,c,$e,a") - Project(b="b", c="c", $e="$e", a="a") - Expand(projects="{b=b, c=null, a=a, $e=1}, {b=null, c=c, a=a, $e=2}") - LogicalView(tables="[0000-0003].test_tb2_[00-27]", shardCount=28, sql="SELECT `b`, `c`, `a` FROM `test_tb2` AS `test_tb2`") + project(count(distinct a)="count(distinct a)", sum(distinct a)="sum(distinct a)", max(distinct a)="max(distinct a)") + logicalagg(group="b,c,$e", count(distinct a)="count(a) filter $5", sum(distinct a)="sum(a) filter $5", max(distinct a)="min(max(distinct a)) filter $6") + project(b="b", c="c", a="a", $e="$e", max(distinct a)="max(distinct a)", $g_0="case(=($4, 0), 0, 2) = 0", $g_2="case(=($4, 0), 0, 2) = 2") + logicalagg(group="b,c,a,$e,$e_0", max(distinct a)="max(a_0)") + expand(projects="{b=b, c=c, a=a, $e=$e, $e_0=0, a_0=a}, {b=b, c=c, a=null, $e=$e, $e_0=2, a_0=a}") + expand(projects="{b=b, c=null, a=a, $e=1}, {b=null, c=c, a=a, $e=2}") + logicalview(tables="[0000-0003].test_tb2_[00-27]", shardcount=28, sql="select `b`, `c`, `a` from `test_tb2` as `test_tb2`") - sql: | SELECT COUNT(DISTINCT a), SUM(b) FROM test_tb2 GROUP BY GROUPING SETS (b, c) diff --git a/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/rewriter/GroupingSetsAggRuleTest.test.yml b/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/rewriter/GroupingSetsAggRuleTest.test.yml index 9cbdf2584..ee0621596 100644 --- a/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/rewriter/GroupingSetsAggRuleTest.test.yml +++ b/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/rewriter/GroupingSetsAggRuleTest.test.yml @@ -139,4 +139,47 @@ Project(b="b", c="c", avg(a)="$f2 / $f3", grouping(b)="0") LogicalAgg(group="b,c", $f2="SUM(a)", $f3="COUNT(a)") - LogicalView(tables="optest_0000.single_test_tb", sql="SELECT `b`, `c`, `a` FROM `single_test_tb` AS `single_test_tb`") \ No newline at end of file + LogicalView(tables="optest_0000.single_test_tb", sql="SELECT `b`, `c`, `a` FROM `single_test_tb` AS `single_test_tb`") + +- sql: | + select COUNT(distinct a) as c from test_tb group by grouping sets(a, (), ()) + + plan: | + + project(c="c") + logicalagg(group="a,$e", c="count(a_0)") + logicalagg(group="a,$e,a_0") + expand(projects="{a=a, $e=0, a_0=a}, {a=null, $e=1, a_0=a}") + logicalview(tables="[0000-0003].test_tb_[00-27]", shardcount=28, sql="select `a` from `test_tb` as `test_tb`") + +- sql: | + select COUNT(distinct a, b) as c from test_tb group by grouping sets(a, b) + + plan: | + project(c="c") + logicalagg(group="a,b,$e", c="count(a_0, b_0)") + logicalagg(group="a,b,$e,a_0,b_0") + expand(projects="{a=a, b=null, $e=1, a_0=a, b_0=b}, {a=null, b=b, $e=2, a_0=a, b_0=b}") + logicalview(tables="[0000-0003].test_tb_[00-27]", shardcount=28, sql="select `a`, `b` from `test_tb` as `test_tb`") + +- sql: | + select COUNT(distinct a), COUNT(distinct a, b) as c from test_tb group by grouping sets(a, b) + + plan: | + project(count(distinct a)="count(distinct a)", c="c") + logicalagg(group="a,b,$e", count(distinct a)="count(a_1) filter $6", c="count(a_1, b_0) filter $5") + project(a="a", b="b", $e="$e", a_1="a_1", b_0="b_0", $g_0="case(=($5, 0), 0, 1) = 0", $g_1="case(=($5, 0), 0, 1) = 1") + logicalagg(group="a,b,$e,a_1,b_0,$e_0") + expand(projects="{a=a, b=b, $e=$e, a_0=a_0, a_1=a_1, b_0=b_0, $e_0=0}, {a=a, b=b, $e=$e, a_0=a_0, a_1=a_1, b_0=null, $e_0=1}") + expand(projects="{a=a, b=null, $e=1, a_0=a, a_1=a, b_0=b}, {a=null, b=b, $e=2, a_0=a, a_1=a, b_0=b}") + logicalview(tables="[0000-0003].test_tb_[00-27]", shardcount=28, sql="select `a`, `b` from `test_tb` as `test_tb`") + +- sql: | + select COUNT(distinct a, b) as c from test_tb group by grouping sets(a, b) + + plan: | + project(c="c") + logicalagg(group="a,b,$e", c="count(a_0, b_0)") + logicalagg(group="a,b,$e,a_0,b_0") + expand(projects="{a=a, b=null, $e=1, a_0=a, b_0=b}, {a=null, b=b, $e=2, a_0=a, b_0=b}") + logicalview(tables="[0000-0003].test_tb_[00-27]", shardcount=28, sql="select `a`, `b` from `test_tb` as `test_tb`") \ No newline at end of file diff --git a/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/rewriter/OrSqlOptTest.test.yml b/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/rewriter/OrSqlOptTest.test.yml index 91f229d09..ddc425c5e 100644 --- a/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/rewriter/OrSqlOptTest.test.yml +++ b/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/rewriter/OrSqlOptTest.test.yml @@ -2,13 +2,13 @@ select * from user_log where (userId=1 or userId=15 or user_log.userId=1 or userId in(12,41) or userId <100) and (operation='ge') plan: | gather(concurrent=true) - logicalview(tables="[0000-0003].user_log_[0-6]", shardcount=28, sql="select `userid`, `name`, `operation`, `actiondate` from `user_log` as `user_log` where ((`operation` = ?) and ((`userid` = ?) or (`userid` in(?, ?)) or (`userid` in(?)) or (`userid` < ?)))", isdynamicparam="true") + logicalview(tables="[0000-0003].user_log_[0-6]", shardcount=28, sql="select `userid`, `name`, `operation`, `actiondate` from `user_log` as `user_log` where ((`operation` = ?) and ((`userid` = ?) or (`userid` in(?, ?)) or (`userid` in(?)) or (`userid` < ?)))") - sql: | select * from user_log where (userId=1 or userId=15 or user_log.userId=1 or userId in(12,41) or userId <100) and (operation='ge' and user_log.userId=15 and user_log.userId=1) plan: | gather(concurrent=true) - logicalview(tables="[0000-0003].user_log_[0-6]", shardcount=28, sql="select `userid`, `name`, `operation`, `actiondate` from `user_log` as `user_log` where ((`operation` = ?) and (`userid` = ?) and (`userid` = ?) and ((`userid` = ?) or (`userid` in(?, ?)) or (`userid` in(?)) or (`userid` < ?)))", isdynamicparam="true") + logicalview(tables="[0000-0003].user_log_[0-6]", shardcount=28, sql="select `userid`, `name`, `operation`, `actiondate` from `user_log` as `user_log` where ((`operation` = ?) and (`userid` = ?) and (`userid` = ?) and ((`userid` = ?) or (`userid` in(?, ?)) or (`userid` in(?)) or (`userid` < ?)))") - sql: | select * from user_log b where (userId,name) =(1,'biog') or (userId,name) =(2,'apple') or b.name='gege' and b.name='gfe' or operation='chaofan' or operation='yuehan' or operation='chaoge' or operation like '%chaoge%' and (actionDate = 'wang' or actionDate='chao' or actionDate>1 or actionDate=1.2); diff --git a/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/selectplan/SelectWithAggPlanTest.testLooseGroupBy.yml b/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/selectplan/SelectWithAggPlanTest.testLooseGroupBy.yml index 01f81e4e9..ff07db273 100644 --- a/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/selectplan/SelectWithAggPlanTest.testLooseGroupBy.yml +++ b/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/selectplan/SelectWithAggPlanTest.testLooseGroupBy.yml @@ -66,7 +66,7 @@ plan: | Gather(concurrent=true) - LogicalView(tables="[0000-0003].test_hash_tb", shardCount=4, sql="SELECT `id`, (`name`) AS `name`, COUNT(DISTINCT `create_time`) AS `count(DISTINCT create_time)` FROM `test_hash_tb` AS `test_hash_tb` GROUP BY `id`") + logicalview(tables="[0000-0003].test_hash_tb", shardcount=4, sql="select `id`, (`name`) as `name`, count(distinct `create_time`) as `count(distinct create_time)` from `test_hash_tb` as `test_hash_tb` group by `id`") - sql: | select id, name, count(distinct create_time) from test_hash_tb group by name; diff --git a/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/selectplan/SelectWithAggPlanTest.testSelectWithCountDistinctShardingKey.yml b/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/selectplan/SelectWithAggPlanTest.testSelectWithCountDistinctShardingKey.yml index aa64c2dab..d3b9fb5ce 100644 --- a/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/selectplan/SelectWithAggPlanTest.testSelectWithCountDistinctShardingKey.yml +++ b/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/selectplan/SelectWithAggPlanTest.testSelectWithCountDistinctShardingKey.yml @@ -6,4 +6,4 @@ sql: | plan: | hashagg(count(distinct id)="sum(count(distinct id))") gather(concurrent=true) - logicalview(tables="[0000-0003].test_hash_tb4", shardcount=4, sql="select count(`id`) as `count(distinct id)` from `test_hash_tb4` as `test_hash_tb4`") + logicalview(tables="[0000-0003].test_hash_tb4", shardcount=4, sql="select count(distinct `id`) as `count(distinct id)` from `test_hash_tb4` as `test_hash_tb4`") diff --git a/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/selectplan/SelectWithAggPlanTest.testSelectWithCountDistinctShardingKeyGroupBy.yml b/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/selectplan/SelectWithAggPlanTest.testSelectWithCountDistinctShardingKeyGroupBy.yml index a95f19d1a..98af9016d 100644 --- a/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/selectplan/SelectWithAggPlanTest.testSelectWithCountDistinctShardingKeyGroupBy.yml +++ b/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/selectplan/SelectWithAggPlanTest.testSelectWithCountDistinctShardingKeyGroupBy.yml @@ -6,6 +6,6 @@ sql: | plan: | project(count(distinct id)="count(distinct id)") - hashagg(group="name", count(distinct id)="count(id)") + hashagg(group="name", count(distinct id)="sum(count(distinct id))") gather(concurrent=true) - logicalview(tables="[0000-0003].test_hash_tb4", shardcount=4, sql="select `name`, `id` from `test_hash_tb4` as `test_hash_tb4`") \ No newline at end of file + logicalview(tables="[0000-0003].test_hash_tb4", shardcount=4, sql="select `name`, count(distinct `id`) as `count(distinct id)` from `test_hash_tb4` as `test_hash_tb4` group by `name`") \ No newline at end of file diff --git a/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/subqueryplan/DerivedSubQueryPlanTest.testPushOptToDerivedNonCorrSubQuery.yml b/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/subqueryplan/DerivedSubQueryPlanTest.testPushOptToDerivedNonCorrSubQuery.yml index e6dafc39c..91fd638b9 100644 --- a/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/subqueryplan/DerivedSubQueryPlanTest.testPushOptToDerivedNonCorrSubQuery.yml +++ b/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/subqueryplan/DerivedSubQueryPlanTest.testPushOptToDerivedNonCorrSubQuery.yml @@ -104,7 +104,7 @@ limit(offset=2, fetch=5) hashagg(count(distinct id)="sum(count(distinct id))") gather(concurrent=true) - logicalview(tables="[0000-0003].test_hash_tb", shardcount=4, sql="select count(`id`) as `count(distinct id)` from `test_hash_tb` as `test_hash_tb` where (`id` > 5)") + logicalview(tables="[0000-0003].test_hash_tb", shardcount=4, sql="select count(distinct `id`) as `count(distinct id)` from `test_hash_tb` as `test_hash_tb` where (`id` > 5)") - sql: | select count(distinct id) from @@ -122,8 +122,99 @@ plan: | - Limit(offset=2, fetch=5) - HashAgg(count(DISTINCT id)="COUNT(id)") - Project(id="id") - MergeSort(sort="name ASC", offset=0, fetch=10) - LogicalView(tables="[0000-0003].test_hash_tb", shardCount=4, sql="SELECT `id`, `name` FROM `test_hash_tb` AS `test_hash_tb` WHERE (`id` > 5) ORDER BY `name` LIMIT 10") \ No newline at end of file + limit(offset=2, fetch=5) + hashagg(count(distinct id)="count(id)") + project(id="id") + mergesort(sort="name asc", offset=0, fetch=10) + logicalview(tables="[0000-0003].test_hash_tb", shardcount=4, sql="select `id`, `name` from `test_hash_tb` as `test_hash_tb` where (`id` > 5) order by `name` limit 10") + +- sql: | + + SELECT + ord.*, + orde.* + FROM + ( + SELECT + * + FROM + ( + ( + SELECT + * + FROM + or_order oro + LEFT JOIN + ( + SELECT + COUNT( 1 ) butoon_Type, + TRANS_NO out_trans_no + FROM + OR_OUT_STOCK + GROUP BY + out_trans_no ) oros + ON + oro.TRANS_NO = oros.out_trans_no + WHERE + oro.platform_code IN ( 'ELE', + 'MT', + 'BD', + 'JDDJ' ) + AND oro.create_time >= NOW( ) - INTERVAL 24 HOUR ) + UNION + ( + SELECT + * + FROM + or_order oro + LEFT JOIN + ( + SELECT + COUNT( 1 ) butoon_Type, + TRANS_NO out_trans_no + FROM + OR_OUT_STOCK + GROUP BY + out_trans_no ) oros + ON + oro.TRANS_NO = oros.out_trans_no + WHERE + oro.platform_code IN ( 'ELE', + 'MT', + 'BD', + 'JDDJ' ) + AND oro.create_time < NOW( ) - INTERVAL 24 HOUR + AND oro.STATUS IN ("101", + "102", + "103", + "106", + "107", + "108", + "401") ) ) orders + ORDER BY + orders.create_time DESC LIMIT 0,5 ) ord, + or_order_item orde + WHERE + ord.order_no = orde.order_no; + + plan: | + bkajoin(condition="order_no = order_no", type="inner") + topn(sort="create_time desc", offset=0, fetch=5) + hashagg(group="order_no,trans_no,platform_code,platform_name,shop_code,shop_name,allot_shop_code,allot_shop_name,channel_type,type,business_type,business_date,create_type,is_copy,order_time,expect_arrival_time,status,trans_status,package_fee,package_number,platform_user_id,is_fetch,o2o_dist_mode,consignee_name,consignee_telephone,salesman_mobile,salesman_type,consignee_postcode,consignee_province_code,consignee_province_name,consignee_city_code,consignee_city_name,consignee_area_code,consignee_area_name,consignee_address,express_company,logistics_no,total_amount,adjust_amount,freight_amount,discount_amount,payment_amount,payment_type,used_integral,payment_time,buyer_remark,seller_remark,is_need_invoice,invoice_type,invoice_header,invoice_content,invoice_taxer_id,product_weight,platform_commision,distributor_commision,product_volume,is_retain_order,retain_order_time,is_locked,locker,shop_income,return_flag,group_code,is_group_leader,sourcing_model,create_by,create_time,last_update_by,last_update_time,delivery_status,tip,platform_shop_code,lock_stock_type,receive_model,salesman_commision,reminder_flag,salesman_second_commision,butoon_type,out_trans_no") + unionall(concurrent=true) + hashjoin(condition="trans_no = out_trans_no", type="left") + gather(concurrent=true) + logicalview(tables="[0000-0003].or_order", shardcount=4, sql="select `order_no`, `trans_no`, `platform_code`, `platform_name`, `shop_code`, `shop_name`, `allot_shop_code`, `allot_shop_name`, `channel_type`, `type`, `business_type`, `business_date`, `create_type`, `is_copy`, `order_time`, `expect_arrival_time`, `status`, `trans_status`, `package_fee`, `package_number`, `platform_user_id`, `is_fetch`, `o2o_dist_mode`, `consignee_name`, `consignee_telephone`, `salesman_mobile`, `salesman_type`, `consignee_postcode`, `consignee_province_code`, `consignee_province_name`, `consignee_city_code`, `consignee_city_name`, `consignee_area_code`, `consignee_area_name`, `consignee_address`, `express_company`, `logistics_no`, `total_amount`, `adjust_amount`, `freight_amount`, `discount_amount`, `payment_amount`, `payment_type`, `used_integral`, `payment_time`, `buyer_remark`, `seller_remark`, `is_need_invoice`, `invoice_type`, `invoice_header`, `invoice_content`, `invoice_taxer_id`, `product_weight`, `platform_commision`, `distributor_commision`, `product_volume`, `is_retain_order`, `retain_order_time`, `is_locked`, `locker`, `shop_income`, `return_flag`, `group_code`, `is_group_leader`, `sourcing_model`, `create_by`, `create_time`, `last_update_by`, `last_update_time`, `delivery_status`, `tip`, `platform_shop_code`, `lock_stock_type`, `receive_model`, `salesman_commision`, `reminder_flag`, `salesman_second_commision` from `or_order` as `or_order` where ((`platform_code` in('ele', 'mt', 'bd', 'jddj')) and (`create_time` >= date_sub(now(), interval 24 hour)))") + project(butoon_type="butoon_type", out_trans_no="trans_no") + hashagg(group="trans_no", butoon_type="sum(butoon_type)") + gather(concurrent=true) + logicalview(tables="[0000-0003].or_out_stock", shardcount=4, sql="select `trans_no`, count(*) as `butoon_type` from `or_out_stock` as `or_out_stock` group by `trans_no`") + hashjoin(condition="trans_no = out_trans_no", type="left") + gather(concurrent=true) + logicalview(tables="[0000-0003].or_order", shardcount=4, sql="select `order_no`, `trans_no`, `platform_code`, `platform_name`, `shop_code`, `shop_name`, `allot_shop_code`, `allot_shop_name`, `channel_type`, `type`, `business_type`, `business_date`, `create_type`, `is_copy`, `order_time`, `expect_arrival_time`, `status`, `trans_status`, `package_fee`, `package_number`, `platform_user_id`, `is_fetch`, `o2o_dist_mode`, `consignee_name`, `consignee_telephone`, `salesman_mobile`, `salesman_type`, `consignee_postcode`, `consignee_province_code`, `consignee_province_name`, `consignee_city_code`, `consignee_city_name`, `consignee_area_code`, `consignee_area_name`, `consignee_address`, `express_company`, `logistics_no`, `total_amount`, `adjust_amount`, `freight_amount`, `discount_amount`, `payment_amount`, `payment_type`, `used_integral`, `payment_time`, `buyer_remark`, `seller_remark`, `is_need_invoice`, `invoice_type`, `invoice_header`, `invoice_content`, `invoice_taxer_id`, `product_weight`, `platform_commision`, `distributor_commision`, `product_volume`, `is_retain_order`, `retain_order_time`, `is_locked`, `locker`, `shop_income`, `return_flag`, `group_code`, `is_group_leader`, `sourcing_model`, `create_by`, `create_time`, `last_update_by`, `last_update_time`, `delivery_status`, `tip`, `platform_shop_code`, `lock_stock_type`, `receive_model`, `salesman_commision`, `reminder_flag`, `salesman_second_commision` from `or_order` as `or_order` where ((`platform_code` in('ele', 'mt', 'bd', 'jddj')) and (`status` in('101', '102', '103', '106', '107', '108', '401')) and (`create_time` < date_sub(now(), interval 24 hour)))") + project(butoon_type="butoon_type", out_trans_no="trans_no") + hashagg(group="trans_no", butoon_type="sum(butoon_type)") + gather(concurrent=true) + logicalview(tables="[0000-0003].or_out_stock", shardcount=4, sql="select `trans_no`, count(*) as `butoon_type` from `or_out_stock` as `or_out_stock` group by `trans_no`") + gather(concurrent=true) + logicalview(tables="[0000-0003].or_order_item", shardcount=4, sql="select `id`, `order_no`, `sub_order_no`, `bag_code`, `product_code`, `product_name`, `one_category_code`, `one_category_name`, `two_category_code`, `two_category_name`, `three_category_code`, `three_category_name`, `product_brand_code`, `product_brand_name`, `product_barcode`, `product_sku`, `product_price`, `product_spec`, `platform_product_sku`, `product_meter_unit`, `platform_product_code`, `platform_product_name`, `platform_product_url`, `buy_number`, `out_stock_number`, `product_weight`, `product_volume`, `discount_amount`, `share_amount`, `payable_amount`, `coupon_duct_amount`, `paid_amount`, `is_split`, `group_product_code`, `group_product_name`, `integral_share`, `is_out_stock`, `is_gift`, `activity_name`, `activity_id`, `platform_commision_point`, `platform_commision`, `distributor_commision`, `salesman_commision`, `return_type`, `factory_cost`, `is_cancel`, `erp_order_item_id`, `create_by`, `create_time`, `last_update_by`, `last_update_time`, `platform_product_index`, `salesman_second_commision` from `or_order_item` as `or_order_item` where (`order_no` in (...))") diff --git a/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/subqueryplan/SimpleSubQueryPlanTest.testFilterSubQueryWithoutAgg.yml b/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/subqueryplan/SimpleSubQueryPlanTest.testFilterSubQueryWithoutAgg.yml index f331185b4..b9e6b4277 100644 --- a/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/subqueryplan/SimpleSubQueryPlanTest.testFilterSubQueryWithoutAgg.yml +++ b/polardbx-optimizer/src/test/resources/com/alibaba/polardbx/planner/subqueryplan/SimpleSubQueryPlanTest.testFilterSubQueryWithoutAgg.yml @@ -55,10 +55,9 @@ plan: | - HashAgg(count(DISTINCT id)="COUNT(id)") - HashAgg(group="id") - Gather(concurrent=true) - LogicalView(tables="[0000-0003].test_hash_tb,test_hash_tb2", shardCount=4, sql="SELECT `id` FROM `test_hash_tb` AS `test_hash_tb` WHERE (EXISTS (SELECT `id` FROM `test_hash_tb2` AS `test_hash_tb2` WHERE (`test_hash_tb`.`id` = `id`)))") + hashagg(count(distinct id)="sum(count(distinct id))") + gather(concurrent=true) + logicalview(tables="[0000-0003].test_hash_tb,test_hash_tb2", shardcount=4, sql="select count(distinct `id`) as `count(distinct id)` from `test_hash_tb` as `test_hash_tb` where (exists (select `id` from `test_hash_tb2` as `test_hash_tb2` where (`test_hash_tb`.`id` = `id`)))") - sql: | # 测试EXIST的简单相关子查询下推, @@ -79,11 +78,10 @@ plan: | - Project(count(DISTINCT id)="count(DISTINCT id)") - HashAgg(group="create_time", count(DISTINCT id)="COUNT(id)") - HashAgg(group="create_time,id") - Gather(concurrent=true) - LogicalView(tables="[0000-0003].test_hash_tb,test_hash_tb2", shardCount=4, sql="SELECT `create_time`, `id` FROM `test_hash_tb` AS `test_hash_tb` WHERE (EXISTS (SELECT `id` FROM `test_hash_tb2` AS `test_hash_tb2` WHERE (`test_hash_tb`.`id` = `id`)))") + project(count(distinct id)="count(distinct id)") + hashagg(group="create_time", count(distinct id)="sum(count(distinct id))") + gather(concurrent=true) + logicalview(tables="[0000-0003].test_hash_tb,test_hash_tb2", shardcount=4, sql="select `create_time`, count(distinct `id`) as `count(distinct id)` from `test_hash_tb` as `test_hash_tb` where (exists (select `id` from `test_hash_tb2` as `test_hash_tb2` where (`test_hash_tb`.`id` = `id`))) group by `create_time`") - sql: | # 测试EXIST的简单相关子查询下推, @@ -105,14 +103,14 @@ plan: | - Project(count(DISTINCT id)="count(DISTINCT id)") - HashAgg(group="create_time", count(DISTINCT id)="COUNT(id)") - Project(create_time="create_time", id="id") - SemiHashJoin(condition="name = name", type="semi", build="inner") - Gather(concurrent=true) - LogicalView(tables="[0000-0003].test_hash_tb", shardCount=4, sql="SELECT `id`, `name`, `create_time` FROM `test_hash_tb` AS `test_hash_tb`") - Gather(concurrent=true) - LogicalView(tables="[0000-0003].test_hash_tb2", shardCount=4, sql="SELECT `name` FROM `test_hash_tb2` AS `test_hash_tb2`") + project(count(distinct id)="count(distinct id)") + hashagg(group="create_time", count(distinct id)="count(id)") + project(create_time="create_time", id="id") + semihashjoin(condition="name = name", type="semi", build="inner") + gather(concurrent=true) + logicalview(tables="[0000-0003].test_hash_tb", shardcount=4, sql="select `id`, `name`, `create_time` from `test_hash_tb` as `test_hash_tb`") + gather(concurrent=true) + logicalview(tables="[0000-0003].test_hash_tb2", shardcount=4, sql="select `name` from `test_hash_tb2` as `test_hash_tb2`") - sql: | # 测试EXIST的简单相关子查询下推, diff --git a/polardbx-parser/pom.xml b/polardbx-parser/pom.xml index d804a6ba7..5079f348f 100644 --- a/polardbx-parser/pom.xml +++ b/polardbx-parser/pom.xml @@ -39,6 +39,7 @@ **/bvt/**/*.java + com/alibaba/polardbx/druid/sql/visitor/ExportParameterVisitorUtilsTest.java @@ -133,6 +134,13 @@ + + org.mockito + mockito-inline + ${mockito.verison} + test + + log4j log4j diff --git a/polardbx-parser/src/main/java/com/alibaba/polardbx/druid/sql/ast/statement/SQLCreateTableStatement.java b/polardbx-parser/src/main/java/com/alibaba/polardbx/druid/sql/ast/statement/SQLCreateTableStatement.java index 71f3350c7..75e2f75a2 100644 --- a/polardbx-parser/src/main/java/com/alibaba/polardbx/druid/sql/ast/statement/SQLCreateTableStatement.java +++ b/polardbx-parser/src/main/java/com/alibaba/polardbx/druid/sql/ast/statement/SQLCreateTableStatement.java @@ -493,7 +493,7 @@ public String computeName() { SQLExpr expr = tableSource.getExpr(); if (expr instanceof SQLName) { String name = ((SQLName) expr).getSimpleName(); - return SQLUtils.normalize(name); + return SQLUtils.normalizeNoTrim(name); } return null; diff --git a/polardbx-parser/src/main/java/com/alibaba/polardbx/druid/sql/ast/statement/SQLTableSource.java b/polardbx-parser/src/main/java/com/alibaba/polardbx/druid/sql/ast/statement/SQLTableSource.java index 6143afa38..5a3960a10 100644 --- a/polardbx-parser/src/main/java/com/alibaba/polardbx/druid/sql/ast/statement/SQLTableSource.java +++ b/polardbx-parser/src/main/java/com/alibaba/polardbx/druid/sql/ast/statement/SQLTableSource.java @@ -42,6 +42,10 @@ public interface SQLTableSource extends SQLObject { void setFlashback(SQLExpr flashback); + boolean isFlashbackWithTso(); + + void setFlashbackWithTso(boolean flashbackWithTso); + SQLColumnDefinition findColumn(String columnName); SQLColumnDefinition findColumn(long columnNameHash); diff --git a/polardbx-parser/src/main/java/com/alibaba/polardbx/druid/sql/ast/statement/SQLTableSourceImpl.java b/polardbx-parser/src/main/java/com/alibaba/polardbx/druid/sql/ast/statement/SQLTableSourceImpl.java index b9b615c51..659c7392b 100644 --- a/polardbx-parser/src/main/java/com/alibaba/polardbx/druid/sql/ast/statement/SQLTableSourceImpl.java +++ b/polardbx-parser/src/main/java/com/alibaba/polardbx/druid/sql/ast/statement/SQLTableSourceImpl.java @@ -32,6 +32,10 @@ public abstract class SQLTableSourceImpl extends SQLObjectImpl implements SQLTab protected String alias; protected List hints; protected SQLExpr flashback; + /** + * 标识flashback,是否是as of tso + */ + protected boolean flashbackWithTso; protected long aliasHashCode64; public SQLTableSourceImpl() { @@ -112,6 +116,14 @@ public void setFlashback(SQLExpr flashback) { this.flashback = flashback; } + public boolean isFlashbackWithTso() { + return flashbackWithTso; + } + + public void setFlashbackWithTso(boolean flashbackWithTso) { + this.flashbackWithTso = flashbackWithTso; + } + public boolean containsAlias(String alias) { if (SQLUtils.nameEquals(this.alias, alias)) { return true; diff --git a/polardbx-parser/src/main/java/com/alibaba/polardbx/druid/sql/dialect/mysql/ast/MySqlUnique.java b/polardbx-parser/src/main/java/com/alibaba/polardbx/druid/sql/dialect/mysql/ast/MySqlUnique.java index e77d13446..e3c98ba60 100644 --- a/polardbx-parser/src/main/java/com/alibaba/polardbx/druid/sql/dialect/mysql/ast/MySqlUnique.java +++ b/polardbx-parser/src/main/java/com/alibaba/polardbx/druid/sql/dialect/mysql/ast/MySqlUnique.java @@ -88,6 +88,10 @@ public void setDictionaryColumns(String dictionaryColumns) { indexDefinition.getOptions().setDictionaryColumns(dictionaryColumns); } + public void setEngineName(SQLName engineName) { + indexDefinition.setEngineName(engineName); + } + public SQLExpr getTablePartitions() { return indexDefinition.getTbPartitions(); } diff --git a/polardbx-parser/src/main/java/com/alibaba/polardbx/druid/sql/dialect/mysql/parser/MySqlSelectParser.java b/polardbx-parser/src/main/java/com/alibaba/polardbx/druid/sql/dialect/mysql/parser/MySqlSelectParser.java index 52a9e6aaa..391a2cae7 100644 --- a/polardbx-parser/src/main/java/com/alibaba/polardbx/druid/sql/dialect/mysql/parser/MySqlSelectParser.java +++ b/polardbx-parser/src/main/java/com/alibaba/polardbx/druid/sql/dialect/mysql/parser/MySqlSelectParser.java @@ -1005,6 +1005,16 @@ public boolean parseAsOf(SQLTableSource tableSource) { printError(lexer.token()); } + //支持as of tso expr; expr 不做限定,可以是tso,可以是表达式。 + //不同于下面as of timestamp 和 as of 限定了后面表达式类型; + if (lexer.identifierEquals("TSO")) { + lexer.nextToken(); + SQLExpr expr = this.exprParser.expr(); + tableSource.setFlashback(expr); + tableSource.setFlashbackWithTso(true); + return true; + } + SQLExpr expr = this.exprParser.expr(); if (expr instanceof SQLTimestampExpr) { // FROM t AS OF TIMESTAMP '2021-12-10 17:44:00' diff --git a/polardbx-parser/src/main/java/com/alibaba/polardbx/druid/sql/dialect/mysql/visitor/MySqlOutputVisitor.java b/polardbx-parser/src/main/java/com/alibaba/polardbx/druid/sql/dialect/mysql/visitor/MySqlOutputVisitor.java index 983b35177..5f3b152c3 100644 --- a/polardbx-parser/src/main/java/com/alibaba/polardbx/druid/sql/dialect/mysql/visitor/MySqlOutputVisitor.java +++ b/polardbx-parser/src/main/java/com/alibaba/polardbx/druid/sql/dialect/mysql/visitor/MySqlOutputVisitor.java @@ -5786,7 +5786,11 @@ public boolean visit(SQLExprTableSource x) { if (x.getFlashback() != null) { println(); - print0(ucase ? "AS OF " : "as of "); + if (x.isFlashbackWithTso()) { + print0(ucase ? "AS OF TSO " : "as of tso "); + } else { + print0(ucase ? "AS OF " : "as of "); + } printExpr(x.getFlashback()); } diff --git a/polardbx-parser/src/main/java/com/alibaba/polardbx/druid/sql/parser/ByteString.java b/polardbx-parser/src/main/java/com/alibaba/polardbx/druid/sql/parser/ByteString.java index 952b6789f..c81313025 100644 --- a/polardbx-parser/src/main/java/com/alibaba/polardbx/druid/sql/parser/ByteString.java +++ b/polardbx-parser/src/main/java/com/alibaba/polardbx/druid/sql/parser/ByteString.java @@ -34,7 +34,7 @@ public final class ByteString { private final Charset charset; private transient String generateStr; - private transient boolean multiLine; + private transient boolean multiLine = true; public ByteString(byte[] value, int offset, int length, Charset charset) { assert offset >= 0 && offset <= value.length; diff --git a/polardbx-parser/src/main/java/com/alibaba/polardbx/druid/sql/repository/SchemaRepository.java b/polardbx-parser/src/main/java/com/alibaba/polardbx/druid/sql/repository/SchemaRepository.java index 40ed7bda1..a57ce2d2d 100644 --- a/polardbx-parser/src/main/java/com/alibaba/polardbx/druid/sql/repository/SchemaRepository.java +++ b/polardbx-parser/src/main/java/com/alibaba/polardbx/druid/sql/repository/SchemaRepository.java @@ -614,7 +614,7 @@ private boolean renameTable(SQLName name, SQLName to) { return false; } - long nameHashCode64 = FnvHash.hashCode64(SQLUtils.normalize(name.getSimpleName())); + long nameHashCode64 = FnvHash.hashCode64(SQLUtils.normalizeNoTrim(name.getSimpleName())); SchemaObject schemaObject = schema.findTable(nameHashCode64); if (schemaObject != null) { MySqlCreateTableStatement createTableStmt = (MySqlCreateTableStatement) schemaObject.getStatement(); @@ -959,7 +959,7 @@ boolean acceptDropTable(SQLDropTableStatement x) { if (schema == null) { continue; } - long nameHashCode64 = FnvHash.hashCode64(table.getTableName(true)); + long nameHashCode64 = FnvHash.hashCode64(SQLUtils.normalizeNoTrim(table.getTableName())); schema.getStore().removeObject(nameHashCode64); } return true; @@ -1010,7 +1010,7 @@ boolean acceptDropIndex(SQLDropIndexStatement x) { stmt.apply(x); Schema schema = findSchema(stmt.getSchema(), false); // same index name on different table is allowed in mysql,so the object name should contact table name with index name - String name = SQLUtils.normalize(table.getSimpleName()) + "." + SQLUtils + String name = SQLUtils.normalizeNoTrim(table.getSimpleName()) + "." + SQLUtils .normalize(x.getIndexName().getSimpleName()); schema.getStore().removeIndex(FnvHash.hashCode64(name)); return true; @@ -1022,7 +1022,7 @@ boolean acceptDropIndex(SQLDropIndexStatement x) { boolean acceptCreateIndex(SQLCreateIndexStatement x) { String schemaName = x.getSchema(); - String tableName = SQLUtils.normalize(x.getTableName()); + String tableName = SQLUtils.normalizeNoTrim(x.getTableName()); String indexName = SQLUtils.normalize(x.getName().getSimpleName()); Schema schema = findSchema(schemaName, true); @@ -1052,7 +1052,7 @@ boolean acceptAlterTable(SQLAlterTableStatement x) { // we should do some special process, if the renaming or dropping index is created by sql syntax like 'create index ... on ...' for (SQLAlterTableItem item : x.getItems()) { - String tableName = SQLUtils.normalize(x.getTableName()); + String tableName = SQLUtils.normalizeNoTrim(x.getTableName()); if (item instanceof SQLAlterTableDropIndex) { SQLAlterTableDropIndex dropIndex = (SQLAlterTableDropIndex) item; String indexName = SQLUtils.normalize(dropIndex.getIndexName().getSimpleName()); @@ -1090,7 +1090,7 @@ boolean acceptAlterTable(SQLAlterTableStatement x) { if (stmt1Before.equalsIgnoreCase(stmt2After) && stmt2Before.equalsIgnoreCase(stmt1After)) { // Get all column names so that our new column name will not be conflict with existing column Set columnNames = new TreeSet<>(String.CASE_INSENSITIVE_ORDER); - long nameHashCode64 = FnvHash.hashCode64(SQLUtils.normalize(x.getTableName())); + long nameHashCode64 = FnvHash.hashCode64(SQLUtils.normalizeNoTrim(x.getTableName())); SchemaObject object = schema.findTable(nameHashCode64); if (object != null) { SQLCreateTableStatement stmt = (SQLCreateTableStatement) object.getStatement(); @@ -1114,7 +1114,7 @@ boolean acceptAlterTable(SQLAlterTableStatement x) { } } - long nameHashCode64 = FnvHash.hashCode64(SQLUtils.normalize(x.getTableName())); + long nameHashCode64 = FnvHash.hashCode64(SQLUtils.normalizeNoTrim(x.getTableName())); SchemaObject object = schema.findTable(nameHashCode64); if (object != null) { SQLCreateTableStatement stmt = (SQLCreateTableStatement) object.getStatement(); diff --git a/polardbx-parser/src/main/java/com/alibaba/polardbx/druid/sql/visitor/ExportParameterVisitorUtils.java b/polardbx-parser/src/main/java/com/alibaba/polardbx/druid/sql/visitor/ExportParameterVisitorUtils.java index c56927d27..240b41595 100644 --- a/polardbx-parser/src/main/java/com/alibaba/polardbx/druid/sql/visitor/ExportParameterVisitorUtils.java +++ b/polardbx-parser/src/main/java/com/alibaba/polardbx/druid/sql/visitor/ExportParameterVisitorUtils.java @@ -72,10 +72,6 @@ public static SQLExpr exportParameter(final List parameters, final SQLEx value = ((MySqlCharExpr) param).getBinary(); } else { value = ((SQLCharExpr) param).getText(); - String vStr = (String) value; -// if (vStr.length() > 1) { -// value = StringUtils.removeNameQuotes(vStr); -// } } replace = true; } else if (param instanceof SQLNCharExpr) { @@ -105,22 +101,30 @@ public static SQLExpr exportParameter(final List parameters, final SQLEx } else if (param instanceof SQLListExpr) { SQLListExpr list = ((SQLListExpr) param); - List listValues = new ArrayList(); - for (int i = 0; i < list.getItems().size(); i++) { - SQLExpr listItem = list.getItems().get(i); - + List listValues = new ArrayList<>(); + for (SQLExpr listItem : list.getItems()) { if (listItem instanceof SQLCharExpr) { - Object listValue = ((SQLCharExpr) listItem).getText(); - listValues.add(listValue); + if (listItem instanceof MySqlCharExpr && ((MySqlCharExpr) listItem).getBinary() != null) { + listValues.add(((MySqlCharExpr) listItem).getBinary()); + } else { + listValues.add(((SQLCharExpr) listItem).getText()); + } + } else if (listItem instanceof SQLNCharExpr) { + listValues.add(((SQLNCharExpr) listItem).getText()); } else if (listItem instanceof SQLBooleanExpr) { - Object listValue = ((SQLBooleanExpr) listItem).getBooleanValue(); - listValues.add(listValue); + listValues.add(((SQLBooleanExpr) listItem).getBooleanValue()); } else if (listItem instanceof SQLNumericLiteralExpr) { - Object listValue = ((SQLNumericLiteralExpr) listItem).getNumber(); - listValues.add(listValue); + listValues.add(((SQLNumericLiteralExpr) listItem).getNumber()); } else if (listItem instanceof SQLHexExpr) { - Object listValue = ((SQLHexExpr) listItem).toBytes(); - listValues.add(listValue); + listValues.add(((SQLHexExpr) listItem).toBytes()); + } else if (listItem instanceof SQLBinaryExpr) { + listValues.add(((SQLBinaryExpr) listItem).getValue()); + } else if (listItem instanceof SQLTimestampExpr) { + listValues.add(((SQLTimestampExpr) listItem).getValue()); + } else if (listItem instanceof SQLDateExpr) { + listValues.add(((SQLDateExpr) listItem).getValue()); + } else if (listItem instanceof SQLTimeExpr) { + listValues.add(((SQLTimeExpr) listItem).getValue()); } else if (listItem instanceof SQLNullExpr) { listValues.add(null); } diff --git a/polardbx-parser/src/test/java/com/alibaba/polardbx/druid/bvt/filter/wall/sqlserver/SQLServerWallTest_6.java b/polardbx-parser/src/test/java/com/alibaba/polardbx/druid/bvt/filter/wall/sqlserver/SQLServerWallTest_6.java new file mode 100644 index 000000000..e69de29bb diff --git a/polardbx-parser/src/test/java/com/alibaba/polardbx/druid/sql/SQLUtilsTest.java b/polardbx-parser/src/test/java/com/alibaba/polardbx/druid/sql/SQLUtilsTest.java index 6bbe1670a..c8cfe6aa8 100644 --- a/polardbx-parser/src/test/java/com/alibaba/polardbx/druid/sql/SQLUtilsTest.java +++ b/polardbx-parser/src/test/java/com/alibaba/polardbx/druid/sql/SQLUtilsTest.java @@ -1,11 +1,16 @@ package com.alibaba.polardbx.druid.sql; +import com.alibaba.polardbx.druid.sql.ast.SQLIndexDefinition; +import com.alibaba.polardbx.druid.sql.ast.SQLName; +import com.alibaba.polardbx.druid.sql.dialect.mysql.ast.MySqlUnique; import com.google.common.collect.Lists; import org.junit.Assert; import org.junit.Test; import java.util.List; +import static org.mockito.Mockito.mock; + public class SQLUtilsTest { @Test @@ -37,4 +42,12 @@ public void testSplitNamesEscape() { names = SQLUtils.splitNamesByComma("`a`,`b1,``b2`,`c`"); Assert.assertEquals(expected, names); } + + @Test + public void testMockSetEngineName() { + SQLIndexDefinition mockIndexDefinition = mock(SQLIndexDefinition.class); + MySqlUnique sqlUnique = new MySqlUnique(); + SQLName mockEngineName = mock(SQLName.class); + sqlUnique.setEngineName(mockEngineName); + } } diff --git a/polardbx-parser/src/test/java/com/alibaba/polardbx/druid/sql/repository/SchemaRepositoryTest.java b/polardbx-parser/src/test/java/com/alibaba/polardbx/druid/sql/repository/SchemaRepositoryTest.java index 3de00c57b..5a16662a2 100644 --- a/polardbx-parser/src/test/java/com/alibaba/polardbx/druid/sql/repository/SchemaRepositoryTest.java +++ b/polardbx-parser/src/test/java/com/alibaba/polardbx/druid/sql/repository/SchemaRepositoryTest.java @@ -1360,4 +1360,98 @@ public void testAlterMulCol() { Assert.assertEquals(expect, tableMeta1.getStatement().toString()); } + + @Test + public void testTableWithBlankName() { + SchemaRepository memoryTableMeta = new SchemaRepository(JdbcConstants.MYSQL); + memoryTableMeta.setDefaultSchema("d1"); + + String sql1 = "CREATE TABLE ` engineer` (\n" + + " id INTEGER NOT NULL,\n" + + " engineer_name VARCHAR(50),\n" + + " PRIMARY KEY (id)\n" + + ") DEFAULT CHARSET = `utf8mb4` DEFAULT COLLATE = `utf8mb4_general_ci`"; + String sql2 = "CREATE TABLE `engineer` (\n" + + " id INTEGER NOT NULL,\n" + + " engineer_name VARCHAR(50),\n" + + " engineer_type VARCHAR(50),\n" + + " PRIMARY KEY (id)\n" + + ") DEFAULT CHARSET = `utf8mb4` DEFAULT COLLATE = `utf8mb4_general_ci`"; + memoryTableMeta.console(sql1); + memoryTableMeta.console(sql2); + SchemaObject tableMeta1 = memoryTableMeta.findSchema("d1").findTable(" engineer"); + SchemaObject tableMeta2 = memoryTableMeta.findSchema("d1").findTable("engineer"); + System.out.println(tableMeta1.getStatement().toString()); + System.out.println(tableMeta2.getStatement().toString()); + Assert.assertEquals("CREATE TABLE ` engineer` (\n" + + "\tid INTEGER NOT NULL,\n" + + "\tengineer_name VARCHAR(50),\n" + + "\tPRIMARY KEY (id)\n" + + ") DEFAULT CHARSET = `utf8mb4` DEFAULT COLLATE = `utf8mb4_general_ci`", + tableMeta1.getStatement().toString()); + Assert.assertEquals("CREATE TABLE `engineer` (\n" + + "\tid INTEGER NOT NULL,\n" + + "\tengineer_name VARCHAR(50),\n" + + "\tengineer_type VARCHAR(50),\n" + + "\tPRIMARY KEY (id)\n" + + ") DEFAULT CHARSET = `utf8mb4` DEFAULT COLLATE = `utf8mb4_general_ci`", + tableMeta2.getStatement().toString()); + + String sql3 = "alter table ` engineer` add column engineer_age bigint"; + String sql4 = "alter table `engineer` add column engineer_age bigint"; + memoryTableMeta.console(sql3); + memoryTableMeta.console(sql4); + SchemaObject tableMeta3 = memoryTableMeta.findSchema("d1").findTable(" engineer"); + SchemaObject tableMeta4 = memoryTableMeta.findSchema("d1").findTable("engineer"); + System.out.println(tableMeta3.getStatement().toString()); + System.out.println(tableMeta4.getStatement().toString()); + Assert.assertEquals("CREATE TABLE ` engineer` (\n" + + "\tid INTEGER NOT NULL,\n" + + "\tengineer_name VARCHAR(50),\n" + + "\tPRIMARY KEY (id),\n" + + "\tengineer_age bigint\n" + + ") DEFAULT CHARSET = `utf8mb4` DEFAULT COLLATE = `utf8mb4_general_ci`", + tableMeta3.getStatement().toString()); + Assert.assertEquals("CREATE TABLE `engineer` (\n" + + "\tid INTEGER NOT NULL,\n" + + "\tengineer_name VARCHAR(50),\n" + + "\tengineer_type VARCHAR(50),\n" + + "\tPRIMARY KEY (id),\n" + + "\tengineer_age bigint\n" + + ") DEFAULT CHARSET = `utf8mb4` DEFAULT COLLATE = `utf8mb4_general_ci`", + tableMeta4.getStatement().toString()); + + String sql5 = "rename table ` engineer` to ` engineer_new`"; + String sql6 = "rename table `engineer` to `engineer_new`"; + memoryTableMeta.console(sql5); + memoryTableMeta.console(sql6); + SchemaObject tableMeta5 = memoryTableMeta.findSchema("d1").findTable(" engineer_new"); + SchemaObject tableMeta6 = memoryTableMeta.findSchema("d1").findTable("engineer_new"); + System.out.println(tableMeta5.getStatement().toString()); + System.out.println(tableMeta6.getStatement().toString()); + Assert.assertEquals("CREATE TABLE ` engineer_new` (\n" + + "\tid INTEGER NOT NULL,\n" + + "\tengineer_name VARCHAR(50),\n" + + "\tPRIMARY KEY (id),\n" + + "\tengineer_age bigint\n" + + ") DEFAULT CHARSET = `utf8mb4` DEFAULT COLLATE = `utf8mb4_general_ci`", + tableMeta5.getStatement().toString()); + Assert.assertEquals("CREATE TABLE `engineer_new` (\n" + + "\tid INTEGER NOT NULL,\n" + + "\tengineer_name VARCHAR(50),\n" + + "\tengineer_type VARCHAR(50),\n" + + "\tPRIMARY KEY (id),\n" + + "\tengineer_age bigint\n" + + ") DEFAULT CHARSET = `utf8mb4` DEFAULT COLLATE = `utf8mb4_general_ci`", + tableMeta6.getStatement().toString()); + + String sql7 = "drop table ` engineer_new`"; + String sql8 = "drop table `engineer_new`"; + memoryTableMeta.console(sql7); + memoryTableMeta.console(sql8); + SchemaObject tableMeta7 = memoryTableMeta.findSchema("d1").findTable(" engineer_new"); + SchemaObject tableMeta8 = memoryTableMeta.findSchema("d1").findTable("engineer_new"); + System.out.println(tableMeta7); + System.out.println(tableMeta8); + } } diff --git a/polardbx-parser/src/test/java/com/alibaba/polardbx/druid/sql/visitor/ExportParameterVisitorUtilsTest.java b/polardbx-parser/src/test/java/com/alibaba/polardbx/druid/sql/visitor/ExportParameterVisitorUtilsTest.java new file mode 100644 index 000000000..606343082 --- /dev/null +++ b/polardbx-parser/src/test/java/com/alibaba/polardbx/druid/sql/visitor/ExportParameterVisitorUtilsTest.java @@ -0,0 +1,72 @@ +package com.alibaba.polardbx.druid.sql.visitor; + +import com.alibaba.polardbx.druid.sql.ast.SQLExpr; +import com.alibaba.polardbx.druid.sql.ast.expr.SQLBinaryExpr; +import com.alibaba.polardbx.druid.sql.ast.expr.SQLBooleanExpr; +import com.alibaba.polardbx.druid.sql.ast.expr.SQLCharExpr; +import com.alibaba.polardbx.druid.sql.ast.expr.SQLDateExpr; +import com.alibaba.polardbx.druid.sql.ast.expr.SQLHexExpr; +import com.alibaba.polardbx.druid.sql.ast.expr.SQLIntegerExpr; +import com.alibaba.polardbx.druid.sql.ast.expr.SQLListExpr; +import com.alibaba.polardbx.druid.sql.ast.expr.SQLNCharExpr; +import com.alibaba.polardbx.druid.sql.ast.expr.SQLNullExpr; +import com.alibaba.polardbx.druid.sql.ast.expr.SQLTimeExpr; +import com.alibaba.polardbx.druid.sql.ast.expr.SQLTimestampExpr; +import com.alibaba.polardbx.druid.sql.ast.expr.SQLVariantRefExpr; +import org.junit.Test; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import static org.junit.Assert.*; + +public class ExportParameterVisitorUtilsTest { + + @Test + public void testExportParameterWithSQLCharExpr() { + List parameters = new ArrayList<>(); + SQLCharExpr expr = new SQLCharExpr("test"); + SQLExpr result = ExportParameterVisitorUtils.exportParameter(parameters, expr); + assertNotNull(result); + assertTrue(result instanceof SQLVariantRefExpr); + assertEquals("?", ((SQLVariantRefExpr) result).getName()); + assertEquals("test", parameters.get(parameters.size() - 1)); + } + + @Test + public void testExportParameterWithSQLListExpr() { + List parameters = new ArrayList<>(); + SQLListExpr listExpr = new SQLListExpr(); + listExpr.getItems().add(new SQLCharExpr("value1")); + listExpr.getItems().add(new SQLNCharExpr("value2")); + listExpr.getItems().add(new SQLBooleanExpr(true)); + listExpr.getItems().add(new SQLIntegerExpr(123)); + listExpr.getItems().add(new SQLHexExpr("123")); + listExpr.getItems().add(new SQLBinaryExpr("010")); + listExpr.getItems().add(new SQLTimestampExpr("2023-07-01 12:34:56")); + listExpr.getItems().add(new SQLDateExpr("2023-07-01")); + listExpr.getItems().add(new SQLTimeExpr("12:34:56")); + listExpr.getItems().add(new SQLNullExpr()); + + SQLExpr result = ExportParameterVisitorUtils.exportParameter(parameters, listExpr); + assertNotNull(result); + assertTrue(result instanceof SQLVariantRefExpr); + assertEquals("?", ((SQLVariantRefExpr) result).getName()); + assertTrue(parameters.get(0) instanceof List); + + List paramList = (List) parameters.get(0); + + assertEquals(10, paramList.size()); + assertEquals("value1", paramList.get(0)); + assertEquals("value2", paramList.get(1)); + assertEquals(true, paramList.get(2)); + assertEquals(123, paramList.get(3)); + assertTrue(Arrays.equals(new byte[] {1, 35}, (byte[]) paramList.get(4))); + assertEquals(2L, paramList.get(5)); + assertEquals("2023-07-01 12:34:56", paramList.get(6)); + assertEquals("2023-07-01", paramList.get(7)); + assertEquals("12:34:56", paramList.get(8)); + assertNull(paramList.get(9)); + } +} \ No newline at end of file diff --git a/polardbx-rpc b/polardbx-rpc index 2d9156d5b..7a193e0a6 160000 --- a/polardbx-rpc +++ b/polardbx-rpc @@ -1 +1 @@ -Subproject commit 2d9156d5b644fba55ec9540a6e8c8960cfb83f9f +Subproject commit 7a193e0a6bb750dfcf2e51a5b50a5b4d5cb28d03 diff --git a/polardbx-rule/src/main/java/com/alibaba/polardbx/rule/utils/SimpleRuleProcessor.java b/polardbx-rule/src/main/java/com/alibaba/polardbx/rule/utils/SimpleRuleProcessor.java index cf6e20349..0ff40bccd 100644 --- a/polardbx-rule/src/main/java/com/alibaba/polardbx/rule/utils/SimpleRuleProcessor.java +++ b/polardbx-rule/src/main/java/com/alibaba/polardbx/rule/utils/SimpleRuleProcessor.java @@ -160,7 +160,7 @@ public static TargetDB shard(TableRule table, Object value) { return db; } - public static Pair shardReturnPair(TableRule table, Object value, String encoding) { + public static int simpleShard(TableRule table, Object value, String encoding) { int tableCount = table.getTbCount(); int tableIndex; AtomIncreaseType partitionType = table.getPartitionType(); @@ -219,7 +219,11 @@ public static Pair shardReturnPair(TableRule table, Object value } else { throw new IllegalArgumentException("不是一个合法的简单规则类型"); } + return tableIndex; + } + public static Pair shardReturnPair(TableRule table, Object value, String encoding) { + int tableIndex = simpleShard(table, value, encoding); return new Pair<>(table.getDbNames()[tableIndex], table.getTbNames()[tableIndex]); } diff --git a/polardbx-server/pom.xml b/polardbx-server/pom.xml index 853f89e93..9cf6caa6d 100644 --- a/polardbx-server/pom.xml +++ b/polardbx-server/pom.xml @@ -81,22 +81,16 @@ - org.mockito - mockito-inline - ${mockito.verison} - test - - - org.junit.jupiter - junit-jupiter-api - ${junit.version} + com.google.truth + truth + ${truth.version} test - org.junit.jupiter - junit-jupiter-engine - ${junit.version} + org.mockito + mockito-inline + ${mockito.verison} test diff --git a/polardbx-server/src/main/java/com/alibaba/polardbx/CobarServer.java b/polardbx-server/src/main/java/com/alibaba/polardbx/CobarServer.java index 67db548e8..f6a7d45dd 100644 --- a/polardbx-server/src/main/java/com/alibaba/polardbx/CobarServer.java +++ b/polardbx-server/src/main/java/com/alibaba/polardbx/CobarServer.java @@ -16,10 +16,9 @@ package com.alibaba.polardbx; - +import com.alibaba.polardbx.common.TddlConstants; import com.alibaba.polardbx.common.TddlNode; import com.alibaba.polardbx.common.cdc.CdcManagerHelper; -import com.alibaba.polardbx.optimizer.config.table.charset.CharsetFactory; import com.alibaba.polardbx.common.exception.TddlRuntimeException; import com.alibaba.polardbx.common.exception.code.ErrorCode; import com.alibaba.polardbx.common.model.lifecycle.AbstractLifecycle; @@ -29,11 +28,6 @@ import com.alibaba.polardbx.common.utils.AddressUtils; import com.alibaba.polardbx.common.utils.ExecutorMode; import com.alibaba.polardbx.common.utils.Pair; -import com.alibaba.polardbx.common.properties.MppConfig; -import com.alibaba.polardbx.common.utils.AddressUtils; -import com.alibaba.polardbx.common.utils.ExecutorMode; -import com.alibaba.polardbx.common.utils.Pair; -import com.alibaba.polardbx.common.utils.*; import com.alibaba.polardbx.common.utils.extension.ExtensionLoader; import com.alibaba.polardbx.common.utils.logger.Logger; import com.alibaba.polardbx.common.utils.logger.LoggerFactory; @@ -69,6 +63,7 @@ import com.alibaba.polardbx.net.NIOAcceptor; import com.alibaba.polardbx.net.NIOProcessor; import com.alibaba.polardbx.net.util.TimeUtil; +import com.alibaba.polardbx.optimizer.config.table.charset.CharsetFactory; import com.alibaba.polardbx.optimizer.context.ExecutionContext; import com.alibaba.polardbx.optimizer.core.expression.ExtraFunctionManager; import com.alibaba.polardbx.optimizer.memory.MemoryManager; @@ -82,7 +77,6 @@ import org.apache.commons.lang.StringUtils; import java.io.IOException; -import java.io.OutputStreamWriter; import java.sql.Connection; import java.sql.SQLException; import java.text.DateFormat; @@ -280,6 +274,9 @@ private static void tryInitServerVariables() throws SQLException { // Ignore setting NO_TRANSACTION. properties.setProperty(ConnectionProperties.IGNORE_TRANSACTION_POLICY_NO_TRANSACTION, "true"); + //Disable udf + properties.setProperty(TddlConstants.ENABLE_JAVA_UDF, "false"); + // Update inst config using insert ignore. try (Connection metaDbConn = MetaDbDataSource.getInstance().getConnection()) { InstConfigAccessor instConfigAccessor = new InstConfigAccessor(); diff --git a/polardbx-server/src/main/java/com/alibaba/polardbx/config/loader/ClusterLoader.java b/polardbx-server/src/main/java/com/alibaba/polardbx/config/loader/ClusterLoader.java index 2fea45fc2..66ca9512b 100644 --- a/polardbx-server/src/main/java/com/alibaba/polardbx/config/loader/ClusterLoader.java +++ b/polardbx-server/src/main/java/com/alibaba/polardbx/config/loader/ClusterLoader.java @@ -34,7 +34,6 @@ import com.alibaba.polardbx.executor.ddl.workqueue.BackFillThreadPool; import com.alibaba.polardbx.executor.ddl.workqueue.ChangeSetThreadPool; import com.alibaba.polardbx.executor.ddl.workqueue.FastCheckerThreadPool; -import com.alibaba.polardbx.executor.sync.DeleteBaselineSyncAction; import com.alibaba.polardbx.gms.config.impl.InstConfUtil; import com.alibaba.polardbx.executor.ddl.workqueue.PriorityWorkQueue; import com.alibaba.polardbx.gms.ha.impl.StorageHaChecker; @@ -446,6 +445,12 @@ protected void applyProperties(Properties p) { InformationSchemaViewManager.getInstance().defineCaseSensitiveView(enableLowerCase); } + if (p.containsKey(ConnectionProperties.MAPPING_TO_MYSQL_ERROR_CODE)) { + DynamicConfig.getInstance().loadValue(logger, + ConnectionProperties.MAPPING_TO_MYSQL_ERROR_CODE, + p.getProperty(ConnectionProperties.MAPPING_TO_MYSQL_ERROR_CODE)); + } + if (p.containsKey(ConnectionProperties.COLUMNAR_TSO_UPDATE_INTERVAL)) { int columnarTsoUpdateInterval = Integer.parseInt(p.getProperty(ConnectionProperties.COLUMNAR_TSO_UPDATE_INTERVAL)); diff --git a/polardbx-server/src/main/java/com/alibaba/polardbx/manager/parser/ManagerParseShow.java b/polardbx-server/src/main/java/com/alibaba/polardbx/manager/parser/ManagerParseShow.java index f8f111453..28f4159d6 100644 --- a/polardbx-server/src/main/java/com/alibaba/polardbx/manager/parser/ManagerParseShow.java +++ b/polardbx-server/src/main/java/com/alibaba/polardbx/manager/parser/ManagerParseShow.java @@ -319,7 +319,7 @@ static int show2DiCheck(String stmt, int offset) { if ((c1 == 'R' || c1 == 'r') && (c2 == 'E' || c2 == 'e') && (c3 == 'C' || c3 == 'c') && (c4 == 'T' || c4 == 't') && (c5 == '_') && (c6 == 'M' || c6 == 'm') - && (c7 == 'C' || c7 == 'c') && (c8 == 'M' || c8 == 'm')) { + && (c7 == 'E' || c7 == 'e') && (c8 == 'M' || c8 == 'm')) { return DIRECT_MEM; } } diff --git a/polardbx-server/src/main/java/com/alibaba/polardbx/manager/response/ShowDirectMemory.java b/polardbx-server/src/main/java/com/alibaba/polardbx/manager/response/ShowDirectMemory.java index 57df430c0..ac4fc7730 100644 --- a/polardbx-server/src/main/java/com/alibaba/polardbx/manager/response/ShowDirectMemory.java +++ b/polardbx-server/src/main/java/com/alibaba/polardbx/manager/response/ShowDirectMemory.java @@ -55,11 +55,22 @@ public class ShowDirectMemory { try { Class bitsClass = Class.forName("java.nio.Bits"); + // jdk8 directMemoryField = bitsClass.getDeclaredField("totalCapacity"); directMemoryField.setAccessible(true); } catch (NoSuchFieldException | ClassNotFoundException e) { logger.warn("Failed to get java.nio.Bits.totalCapacity: " + e.getMessage()); } + if (directMemoryField == null) { + try { + Class bitsClass = Class.forName("java.nio.Bits"); + // jdk11 + directMemoryField = bitsClass.getDeclaredField("TOTAL_CAPACITY"); + directMemoryField.setAccessible(true); + } catch (NoSuchFieldException | ClassNotFoundException e) { + logger.warn("Failed to get java.nio.Bits.TOTAL_CAPACITY: " + e.getMessage()); + } + } } public static void execute(ManagerConnection c) { diff --git a/polardbx-server/src/main/java/com/alibaba/polardbx/matrix/jdbc/TConnection.java b/polardbx-server/src/main/java/com/alibaba/polardbx/matrix/jdbc/TConnection.java index c54a8a3f4..880bb9515 100644 --- a/polardbx-server/src/main/java/com/alibaba/polardbx/matrix/jdbc/TConnection.java +++ b/polardbx-server/src/main/java/com/alibaba/polardbx/matrix/jdbc/TConnection.java @@ -35,6 +35,7 @@ import com.alibaba.polardbx.common.properties.ConnectionParams; import com.alibaba.polardbx.common.properties.ConnectionProperties; import com.alibaba.polardbx.common.properties.DynamicConfig; +import com.alibaba.polardbx.common.properties.ParamManager; import com.alibaba.polardbx.common.utils.ExecutorMode; import com.alibaba.polardbx.common.utils.GeneralUtil; import com.alibaba.polardbx.common.utils.MergeHashMap; @@ -1654,6 +1655,12 @@ public void newExecutionContext() { if (lastFailedMessage != null) { this.executionContext.getExtraDatas().put(ExecutionContext.LAST_FAILED_MESSAGE, lastFailedMessage); } + + if (ecNeedClear.getParamManager().getBoolean(ConnectionParams.OUTPUT_MYSQL_ERROR_CODE)) { + ParamManager.setBooleanVal(this.executionContext.getParamManager().getProps(), + ConnectionParams.OUTPUT_MYSQL_ERROR_CODE, true, false); + } + ecNeedClear.clearContextAfterTrans(); } diff --git a/polardbx-server/src/main/java/com/alibaba/polardbx/server/ServerConnection.java b/polardbx-server/src/main/java/com/alibaba/polardbx/server/ServerConnection.java index 2674d88c5..dbe041861 100644 --- a/polardbx-server/src/main/java/com/alibaba/polardbx/server/ServerConnection.java +++ b/polardbx-server/src/main/java/com/alibaba/polardbx/server/ServerConnection.java @@ -828,9 +828,10 @@ public void binlogDump(byte[] data) { PolarPrivilegeUtils.checkInstancePrivilege(PrivilegePoint.REPLICATION_SLAVE, this.conn.getExecutionContext()); } catch (Exception e) { - EventLogger.log(EventType.CDC_WARN, "No replication slave privilege for binlog dump!"); + EventLogger.log(EventType.CDC_WARN, String.format("No replication slave privilege for binlog dump! " + + "user %s, host %s ", getUser(), getHost())); throw new TddlRuntimeException(ErrorCode.ERR_CHECK_PRIVILEGE_FAILED, - PrivilegePoint.REPLICATION_SLAVE.name(), "*", getUser(), getHost(), "*"); + PrivilegePoint.REPLICATION_SLAVE.name(), getUser(), getHost()); } CountDownLatch countDownLatch = new CountDownLatch(1); @@ -1279,7 +1280,7 @@ Stores the result of ROW_COUNT() function. // In some cases, the current thread is interrupted due to some reason. // The actual reason is indicated by futureCancelErrorCode, so we should // first set the actual exception here. - if (null != futureCancelErrorCode) { + if (null != futureCancelErrorCode && !(e instanceof CclRescheduleException)) { exception = new TddlRuntimeException(futureCancelErrorCode, e); } else { exception = e; @@ -2146,6 +2147,14 @@ public void handleError(ErrorCode errCode, Throwable t, String sql, boolean fata logError(logger, errCode, sql, t, schema); } + if (conn != null + && conn.getExecutionContext().getParamManager() != null + && conn.getExecutionContext().getParamManager().getBoolean(ConnectionParams.OUTPUT_MYSQL_ERROR_CODE) + && GeneralUtil.isNotEmpty(DynamicConfig.getInstance().getErrorCodeMapping()) + && DynamicConfig.getInstance().getErrorCodeMapping().containsKey(errorCode)) { + errorCode = DynamicConfig.getInstance().getErrorCodeMapping().get(errorCode); + } + switch (errCode) { case ERR_HANDLE_DATA: writeErrMessage(errorCode, sqlState, message == null ? t.getClass().getSimpleName() : message); diff --git a/polardbx-server/src/main/java/com/alibaba/polardbx/server/handler/ClearHandler.java b/polardbx-server/src/main/java/com/alibaba/polardbx/server/handler/ClearHandler.java index 9e69228fa..b53f6f820 100644 --- a/polardbx-server/src/main/java/com/alibaba/polardbx/server/handler/ClearHandler.java +++ b/polardbx-server/src/main/java/com/alibaba/polardbx/server/handler/ClearHandler.java @@ -50,6 +50,10 @@ public static boolean handle(ByteString stmt, ServerConnection c, int offset, bo return ClearFileSystemCache.response(c, Engine.NFS, false, hasMore); case ServerParseClear.EXTERNAL_DISK_CACHE: return ClearFileSystemCache.response(c, Engine.EXTERNAL_DISK, false, hasMore); + case ServerParseClear.S3_CACHE: + return ClearFileSystemCache.response(c, Engine.S3, false, hasMore); + case ServerParseClear.ABS_CACHE: + return ClearFileSystemCache.response(c, Engine.ABS, false, hasMore); case ServerParseClear.HEATMAP_CACHE: return ClearPartitionsHeatmapCache.response(c, hasMore); case ServerParseClear.PROCEDURE_CACHE: diff --git a/polardbx-server/src/main/java/com/alibaba/polardbx/server/handler/SetHandler.java b/polardbx-server/src/main/java/com/alibaba/polardbx/server/handler/SetHandler.java index 0c3a724bd..4ae389967 100644 --- a/polardbx-server/src/main/java/com/alibaba/polardbx/server/handler/SetHandler.java +++ b/polardbx-server/src/main/java/com/alibaba/polardbx/server/handler/SetHandler.java @@ -54,7 +54,6 @@ import com.alibaba.polardbx.gms.metadb.table.TableInfoManager; import com.alibaba.polardbx.gms.privilege.AccountType; import com.alibaba.polardbx.gms.privilege.ActiveRoles; -import com.alibaba.polardbx.gms.privilege.PolarAccount; import com.alibaba.polardbx.gms.privilege.PolarAccountInfo; import com.alibaba.polardbx.gms.privilege.PolarPrivManager; import com.alibaba.polardbx.gms.topology.DbTopologyManager; @@ -1448,7 +1447,7 @@ private static boolean handleGlobalVariable(ServerConnection c, List PREPARE_UNSUPPORTED_CLEAR_TYPE; @@ -54,6 +56,8 @@ public final class ServerParseClear { PREPARE_UNSUPPORTED_CLEAR_TYPE.add(ALLCACHE); PREPARE_UNSUPPORTED_CLEAR_TYPE.add(EXTERNAL_DISK_CACHE); PREPARE_UNSUPPORTED_CLEAR_TYPE.add(NFS_CACHE); + PREPARE_UNSUPPORTED_CLEAR_TYPE.add(S3_CACHE); + PREPARE_UNSUPPORTED_CLEAR_TYPE.add(ABS_CACHE); } public static int parse(ByteString stmt, int offset) { @@ -68,7 +72,11 @@ public static int parse(ByteString stmt, int offset) { continue; case 'S': case 's': - return slowCheck(stmt, i); + if (i + 1 < stmt.length() && Character.toLowerCase(stmt.charAt(i + 1)) == 'l') { + return slowCheck(stmt, i); + } else { + return s3CacheCheck(stmt, i); + } case 'P': case 'p': return pCheck(stmt, i); @@ -77,7 +85,11 @@ public static int parse(ByteString stmt, int offset) { return ossCacheCheck(stmt, i); case 'A': case 'a': - return allCacheCheck(stmt, i); + if (i + 1 < stmt.length() && Character.toLowerCase(stmt.charAt(i + 1)) == 'l') { + return allCacheCheck(stmt, i); + } else { + return absCacheCheck(stmt, i); + } case 'N': case 'n': return nfsCacheCheck(stmt, i); @@ -175,6 +187,28 @@ private static int externalDiskCacheCheck(ByteString stmt, int offset) { return OTHER; } + // CLEAR S3Cache + private static int s3CacheCheck(ByteString stmt, int offset) { + final String expect = "S3 CACHE"; + if (stmt.length() >= offset + expect.length()) { + if (stmt.substring(offset, offset + expect.length()).equalsIgnoreCase(expect)) { + return S3_CACHE; + } + } + return OTHER; + } + + // CLEAR ABSCache + private static int absCacheCheck(ByteString stmt, int offset) { + final String expect = "ABS CACHE"; + if (stmt.length() >= offset + expect.length()) { + if (stmt.substring(offset, offset + expect.length()).equalsIgnoreCase(expect)) { + return ABS_CACHE; + } + } + return OTHER; + } + private static int allCacheCheck(ByteString stmt, int offset) { final String expect = "ALL CACHE"; if (stmt.length() >= offset + expect.length()) { diff --git a/polardbx-server/src/main/java/com/alibaba/polardbx/server/response/SelectPolardbVersion.java b/polardbx-server/src/main/java/com/alibaba/polardbx/server/response/SelectPolardbVersion.java index 458e7e431..32a52854b 100644 --- a/polardbx-server/src/main/java/com/alibaba/polardbx/server/response/SelectPolardbVersion.java +++ b/polardbx-server/src/main/java/com/alibaba/polardbx/server/response/SelectPolardbVersion.java @@ -115,14 +115,22 @@ private static byte addProduct(IPacketOutputProxy proxy, byte packetId, String c return ++packetId; } - private static byte addGmsVersion(IPacketOutputProxy proxy, byte packetId, String charset) { - final String nodeType = "GMS"; - RowDataPacket row = new RowDataPacket(FIELD_COUNT); - addVersionWithReleaseDate(row, nodeType, MetaDbUtil.getGmsPolardbVersion(), charset); - row.packetId = packetId; - row.write(proxy); - - return ++packetId; + static byte addGmsVersion(IPacketOutputProxy proxy, byte packetId, String charset) { + String version = null; + try { + version = MetaDbUtil.getGmsPolardbVersion(); + } catch (Exception e) { + logger.warn("Failed to get GMS version", e); + } + if (version != null) { + final String nodeType = "GMS"; + RowDataPacket row = new RowDataPacket(FIELD_COUNT); + addVersionWithReleaseDate(row, nodeType, version, charset); + row.packetId = packetId; + row.write(proxy); + return ++packetId; + } + return packetId; } private static byte addColumnarVersion(IPacketOutputProxy proxy, byte packetId, String charset) { @@ -161,13 +169,25 @@ private static byte addCdcVersion(IPacketOutputProxy proxy, byte packetId, Strin return packetId; } - private static byte addDnVersion(IPacketOutputProxy proxy, byte packetId, String charset) { - final String nodeType = "DN"; - RowDataPacket row = new RowDataPacket(FIELD_COUNT); - addVersionWithReleaseDate(row, nodeType, ExecUtils.getDnPolardbVersion(), charset); - row.packetId = packetId; - row.write(proxy); - return ++packetId; + /** + * may not exist when this is a COLUMNAR_SLAVE + */ + static byte addDnVersion(IPacketOutputProxy proxy, byte packetId, String charset) { + String version = null; + try { + version = ExecUtils.getDnPolardbVersion(); + } catch (Exception e) { + logger.warn("Failed to get DN version", e); + } + if (version != null) { + final String nodeType = "DN"; + RowDataPacket row = new RowDataPacket(FIELD_COUNT); + addVersionWithReleaseDate(row, nodeType, version, charset); + row.packetId = packetId; + row.write(proxy); + return ++packetId; + } + return packetId; } private static byte addCnVersion(IPacketOutputProxy proxy, byte packetId, String charset) { diff --git a/polardbx-server/src/test/java/com/alibaba/polardbx/XaTsoCompatibleTest.java b/polardbx-server/src/test/java/com/alibaba/polardbx/XaTsoCompatibleTest.java deleted file mode 100644 index b65800c80..000000000 --- a/polardbx-server/src/test/java/com/alibaba/polardbx/XaTsoCompatibleTest.java +++ /dev/null @@ -1,469 +0,0 @@ -package com.alibaba.polardbx; - -import com.alibaba.polardbx.common.properties.ConnectionProperties; -import com.alibaba.polardbx.common.utils.Assert; -import com.alibaba.polardbx.gms.metadb.MetaDbDataSource; -import com.alibaba.polardbx.gms.topology.VariableConfigAccessor; -import com.alibaba.polardbx.gms.topology.VariableConfigRecord; -import com.alibaba.polardbx.gms.util.MetaDbUtil; -import org.junit.Test; -import org.junit.jupiter.api.condition.DisabledOnJre; -import org.junit.jupiter.api.condition.EnabledOnJre; -import org.junit.jupiter.api.condition.JRE; -import org.mockito.MockedConstruction; -import org.mockito.MockedStatic; -import org.mockito.Mockito; - -import java.sql.Array; -import java.sql.Blob; -import java.sql.CallableStatement; -import java.sql.Clob; -import java.sql.Connection; -import java.sql.DatabaseMetaData; -import java.sql.NClob; -import java.sql.PreparedStatement; -import java.sql.SQLClientInfoException; -import java.sql.SQLException; -import java.sql.SQLWarning; -import java.sql.SQLXML; -import java.sql.Savepoint; -import java.sql.Statement; -import java.sql.Struct; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Properties; -import java.util.concurrent.Executor; -import java.util.concurrent.atomic.AtomicBoolean; - -import static org.mockito.ArgumentMatchers.any; - -public class XaTsoCompatibleTest { - @Test - @DisabledOnJre(JRE.JAVA_8) - public void testHotSpotOn() throws Exception { - List records = new ArrayList<>(); - VariableConfigRecord record0 = new VariableConfigRecord(); - record0.paramKey = "hotspot"; - record0.paramValue = "on"; - records.add(record0); - try (MockedConstruction mocked = Mockito.mockConstruction(CobarServer.class); - MockedStatic metaDbDataSourceMockedStatic = Mockito.mockStatic(MetaDbDataSource.class); - MockedStatic metaDbUtilMockedStatic = Mockito.mockStatic(MetaDbUtil.class); - MockedConstruction variableConfigAccessorMockedConstruction = - Mockito.mockConstruction(VariableConfigAccessor.class, (accessor, context) -> { - Mockito.when(accessor.queryAll()).thenReturn(records); - })) { - - AtomicBoolean disableXaTso = new AtomicBoolean(false); - metaDbDataSourceMockedStatic.when(MetaDbDataSource::getInstance).thenReturn(new MockedMetaDbInstance()); - metaDbUtilMockedStatic.when(() -> MetaDbUtil.setGlobal(any(Properties.class))).then( - args -> { - Properties properties = args.getArgument(0); - String enableXaTso = properties.getProperty(ConnectionProperties.ENABLE_XA_TSO); - if (null != enableXaTso && !Boolean.parseBoolean(enableXaTso)) { - disableXaTso.set(true); - } - return null; - } - ); - - CobarServer.checkCompatible(); - - Assert.assertTrue(disableXaTso.get()); - } - } - - @Test - @DisabledOnJre(JRE.JAVA_8) - public void testHotSpotLockTypeOn() throws Exception { - List records = new ArrayList<>(); - VariableConfigRecord record0 = new VariableConfigRecord(); - record0.paramKey = "hotspot_lock_type"; - record0.paramValue = "on"; - records.add(record0); - try (MockedConstruction mocked = Mockito.mockConstruction(CobarServer.class); - MockedStatic metaDbDataSourceMockedStatic = Mockito.mockStatic(MetaDbDataSource.class); - MockedStatic metaDbUtilMockedStatic = Mockito.mockStatic(MetaDbUtil.class); - MockedConstruction variableConfigAccessorMockedConstruction = - Mockito.mockConstruction(VariableConfigAccessor.class, (accessor, context) -> { - Mockito.when(accessor.queryAll()).thenReturn(records); - })) { - - AtomicBoolean disableXaTso = new AtomicBoolean(false); - metaDbDataSourceMockedStatic.when(MetaDbDataSource::getInstance).thenReturn(new MockedMetaDbInstance()); - metaDbUtilMockedStatic.when(() -> MetaDbUtil.setGlobal(any(Properties.class))).then( - args -> { - Properties properties = args.getArgument(0); - String enableXaTso = properties.getProperty(ConnectionProperties.ENABLE_XA_TSO); - if (null != enableXaTso && !Boolean.parseBoolean(enableXaTso)) { - disableXaTso.set(true); - } - return null; - } - ); - - CobarServer.checkCompatible(); - - Assert.assertTrue(disableXaTso.get()); - } - } - - @Test - @DisabledOnJre(JRE.JAVA_8) - public void testHotSpotOff() throws Exception { - List records = new ArrayList<>(); - VariableConfigRecord record0 = new VariableConfigRecord(); - record0.paramKey = "hotspot"; - record0.paramValue = "off"; - records.add(record0); - try (MockedConstruction mocked = Mockito.mockConstruction(CobarServer.class); - MockedStatic metaDbDataSourceMockedStatic = Mockito.mockStatic(MetaDbDataSource.class); - MockedStatic metaDbUtilMockedStatic = Mockito.mockStatic(MetaDbUtil.class); - MockedConstruction variableConfigAccessorMockedConstruction = - Mockito.mockConstruction(VariableConfigAccessor.class, (accessor, context) -> { - Mockito.when(accessor.queryAll()).thenReturn(records); - })) { - - AtomicBoolean disableXaTso = new AtomicBoolean(false); - metaDbDataSourceMockedStatic.when(MetaDbDataSource::getInstance).thenReturn(new MockedMetaDbInstance()); - metaDbUtilMockedStatic.when(() -> MetaDbUtil.setGlobal(any(Properties.class))).then( - args -> { - Properties properties = args.getArgument(0); - String enableXaTso = properties.getProperty(ConnectionProperties.ENABLE_XA_TSO); - if (null != enableXaTso && !Boolean.parseBoolean(enableXaTso)) { - disableXaTso.set(true); - } - return null; - } - ); - - CobarServer.checkCompatible(); - - Assert.assertTrue(!disableXaTso.get()); - } - } - - @Test - @DisabledOnJre(JRE.JAVA_8) - public void testNoHotSpot() throws Exception { - List records = new ArrayList<>(); - VariableConfigRecord record0 = new VariableConfigRecord(); - record0.paramKey = "a"; - record0.paramValue = "b"; - records.add(record0); - try (MockedConstruction mocked = Mockito.mockConstruction(CobarServer.class); - MockedStatic metaDbDataSourceMockedStatic = Mockito.mockStatic(MetaDbDataSource.class); - MockedStatic metaDbUtilMockedStatic = Mockito.mockStatic(MetaDbUtil.class); - MockedConstruction variableConfigAccessorMockedConstruction = - Mockito.mockConstruction(VariableConfigAccessor.class, (accessor, context) -> { - Mockito.when(accessor.queryAll()).thenReturn(records); - })) { - - AtomicBoolean disableXaTso = new AtomicBoolean(false); - metaDbDataSourceMockedStatic.when(MetaDbDataSource::getInstance).thenReturn(new MockedMetaDbInstance()); - metaDbUtilMockedStatic.when(() -> MetaDbUtil.setGlobal(any(Properties.class))).then( - args -> { - Properties properties = args.getArgument(0); - String enableXaTso = properties.getProperty(ConnectionProperties.ENABLE_XA_TSO); - if (null != enableXaTso && !Boolean.parseBoolean(enableXaTso)) { - disableXaTso.set(true); - } - return null; - } - ); - - CobarServer.checkCompatible(); - - Assert.assertTrue(!disableXaTso.get()); - } - } - - static class MockedMetaDbInstance extends MetaDbDataSource { - protected MockedMetaDbInstance() { - super("addrListStr", "dbName", "properties", "user", "passwd"); - } - - public Connection getConnection() { - return new MockedConnection(); - } - } - - static class MockedConnection implements Connection { - - @Override - public Statement createStatement() throws SQLException { - return null; - } - - @Override - public PreparedStatement prepareStatement(String sql) throws SQLException { - return null; - } - - @Override - public CallableStatement prepareCall(String sql) throws SQLException { - return null; - } - - @Override - public String nativeSQL(String sql) throws SQLException { - return null; - } - - @Override - public void setAutoCommit(boolean autoCommit) throws SQLException { - - } - - @Override - public boolean getAutoCommit() throws SQLException { - return false; - } - - @Override - public void commit() throws SQLException { - - } - - @Override - public void rollback() throws SQLException { - - } - - @Override - public void close() throws SQLException { - - } - - @Override - public boolean isClosed() throws SQLException { - return false; - } - - @Override - public DatabaseMetaData getMetaData() throws SQLException { - return null; - } - - @Override - public void setReadOnly(boolean readOnly) throws SQLException { - - } - - @Override - public boolean isReadOnly() throws SQLException { - return false; - } - - @Override - public void setCatalog(String catalog) throws SQLException { - - } - - @Override - public String getCatalog() throws SQLException { - return null; - } - - @Override - public void setTransactionIsolation(int level) throws SQLException { - - } - - @Override - public int getTransactionIsolation() throws SQLException { - return 0; - } - - @Override - public SQLWarning getWarnings() throws SQLException { - return null; - } - - @Override - public void clearWarnings() throws SQLException { - - } - - @Override - public Statement createStatement(int resultSetType, int resultSetConcurrency) throws SQLException { - return null; - } - - @Override - public PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency) - throws SQLException { - return null; - } - - @Override - public CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency) - throws SQLException { - return null; - } - - @Override - public Map> getTypeMap() throws SQLException { - return null; - } - - @Override - public void setTypeMap(Map> map) throws SQLException { - - } - - @Override - public void setHoldability(int holdability) throws SQLException { - - } - - @Override - public int getHoldability() throws SQLException { - return 0; - } - - @Override - public Savepoint setSavepoint() throws SQLException { - return null; - } - - @Override - public Savepoint setSavepoint(String name) throws SQLException { - return null; - } - - @Override - public void rollback(Savepoint savepoint) throws SQLException { - - } - - @Override - public void releaseSavepoint(Savepoint savepoint) throws SQLException { - - } - - @Override - public Statement createStatement(int resultSetType, int resultSetConcurrency, int resultSetHoldability) - throws SQLException { - return null; - } - - @Override - public PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency, - int resultSetHoldability) throws SQLException { - return null; - } - - @Override - public CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency, - int resultSetHoldability) throws SQLException { - return null; - } - - @Override - public PreparedStatement prepareStatement(String sql, int autoGeneratedKeys) throws SQLException { - return null; - } - - @Override - public PreparedStatement prepareStatement(String sql, int[] columnIndexes) throws SQLException { - return null; - } - - @Override - public PreparedStatement prepareStatement(String sql, String[] columnNames) throws SQLException { - return null; - } - - @Override - public Clob createClob() throws SQLException { - return null; - } - - @Override - public Blob createBlob() throws SQLException { - return null; - } - - @Override - public NClob createNClob() throws SQLException { - return null; - } - - @Override - public SQLXML createSQLXML() throws SQLException { - return null; - } - - @Override - public boolean isValid(int timeout) throws SQLException { - return false; - } - - @Override - public void setClientInfo(String name, String value) throws SQLClientInfoException { - - } - - @Override - public void setClientInfo(Properties properties) throws SQLClientInfoException { - - } - - @Override - public String getClientInfo(String name) throws SQLException { - return null; - } - - @Override - public Properties getClientInfo() throws SQLException { - return null; - } - - @Override - public Array createArrayOf(String typeName, Object[] elements) throws SQLException { - return null; - } - - @Override - public Struct createStruct(String typeName, Object[] attributes) throws SQLException { - return null; - } - - @Override - public void setSchema(String schema) throws SQLException { - - } - - @Override - public String getSchema() throws SQLException { - return null; - } - - @Override - public void abort(Executor executor) throws SQLException { - - } - - @Override - public void setNetworkTimeout(Executor executor, int milliseconds) throws SQLException { - - } - - @Override - public int getNetworkTimeout() throws SQLException { - return 0; - } - - @Override - public T unwrap(Class iface) throws SQLException { - return null; - } - - @Override - public boolean isWrapperFor(Class iface) throws SQLException { - return false; - } - } -} diff --git a/polardbx-server/src/test/java/com/alibaba/polardbx/config/ClusterLoaderTest.java b/polardbx-server/src/test/java/com/alibaba/polardbx/config/ClusterLoaderTest.java new file mode 100644 index 000000000..d7287b0d1 --- /dev/null +++ b/polardbx-server/src/test/java/com/alibaba/polardbx/config/ClusterLoaderTest.java @@ -0,0 +1,38 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.alibaba.polardbx.config; + +import com.alibaba.polardbx.common.properties.DynamicConfig; +import com.google.common.truth.Truth; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.junit.MockitoJUnitRunner; + +@RunWith(MockitoJUnitRunner.class) +public class ClusterLoaderTest { + @Test + public void testApplyProperties() { + // with MAPPING_TO_MYSQL_ERROR_CODE='{4006:1146} + DynamicConfig.getInstance().loadValue(null, "MAPPING_TO_MYSQL_ERROR_CODE", "{4006:1146}"); + Truth.assertThat(DynamicConfig.getInstance().getErrorCodeMapping().get(4006)).isEqualTo(1146); + + // without MAPPING_TO_MYSQL_ERROR_CODE='{4006:1146} + DynamicConfig.getInstance().loadValue(null, "MAPPING_TO_MYSQL_ERROR_CODE", ""); + Truth.assertThat(DynamicConfig.getInstance().getErrorCodeMapping()).isEmpty(); + } +} diff --git a/polardbx-server/src/test/java/com/alibaba/polardbx/log/SqlLogTest.java b/polardbx-server/src/test/java/com/alibaba/polardbx/log/SqlLogTest.java new file mode 100644 index 000000000..ff82f3ff1 --- /dev/null +++ b/polardbx-server/src/test/java/com/alibaba/polardbx/log/SqlLogTest.java @@ -0,0 +1,75 @@ +package com.alibaba.polardbx.log; + +import com.alibaba.polardbx.common.jdbc.BatchInsertPolicy; +import com.alibaba.polardbx.common.properties.ConnectionParams; +import com.alibaba.polardbx.common.properties.ParamManager; +import com.alibaba.polardbx.druid.sql.parser.ByteString; +import com.alibaba.polardbx.executor.InsertSplitter; +import com.alibaba.polardbx.executor.cursor.ResultCursor; +import com.alibaba.polardbx.executor.cursor.impl.AffectRowCursor; +import com.alibaba.polardbx.matrix.jdbc.TConnection; +import com.alibaba.polardbx.optimizer.context.ExecutionContext; +import org.junit.Assert; +import org.junit.Before; +import org.junit.After; +import org.junit.Test; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; + +import java.util.HashMap; + +import static org.mockito.Mockito.atLeastOnce; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class SqlLogTest { + + @Mock + private ExecutionContext executionContext; + + @Mock + private TConnection tConnection; + + private AutoCloseable closeable; + + @Before + public void setUp() { + closeable = MockitoAnnotations.openMocks(this); + } + + @After + public void close() throws Exception { + closeable.close(); + } + + @Test + public void testExecuteSplit() { + ByteString sql; + InsertSplitter insertSplitter = new InsertSplitter(); + ParamManager paramManager = new ParamManager(new HashMap()); + + // Setup default behavior for mocks if necessary + when(executionContext.getParamManager()).thenReturn(paramManager); + when(executionContext.getConnection()).thenReturn(tConnection); + when(tConnection.getLastInsertId()).thenReturn(0L); + when(tConnection.getReturnedLastInsertId()).thenReturn(0L); + + String insertSql = "insert into t1 values \n (1,2)"; + while (insertSql.length() < executionContext.getParamManager() + .getLong(ConnectionParams.MAX_BATCH_INSERT_SQL_LENGTH)) { + insertSql += ", \n (1,2)"; + } + sql = ByteString.from(insertSql); + + // Act + ResultCursor resultCursor = insertSplitter.execute(sql, executionContext, BatchInsertPolicy.SPLIT, + (ByteString s) -> new ResultCursor(new AffectRowCursor(0)), + (ByteString s) -> new ResultCursor(new AffectRowCursor(0))); + + Assert.assertNotNull(resultCursor); + Assert.assertTrue(sql.isMultiLine()); + + verify(executionContext, atLeastOnce()).getParams(); + } + +} diff --git a/polardbx-server/src/test/java/com/alibaba/polardbx/manager/ManagerShowTest.java b/polardbx-server/src/test/java/com/alibaba/polardbx/manager/ManagerShowTest.java index f28e7459f..9a4408240 100644 --- a/polardbx-server/src/test/java/com/alibaba/polardbx/manager/ManagerShowTest.java +++ b/polardbx-server/src/test/java/com/alibaba/polardbx/manager/ManagerShowTest.java @@ -1,6 +1,5 @@ package com.alibaba.polardbx.manager; -import com.alibaba.polardbx.common.utils.Assert; import com.alibaba.polardbx.manager.response.ShowDirectMemory; import com.alibaba.polardbx.net.buffer.ByteBufferHolder; import com.alibaba.polardbx.net.compress.IPacketOutputProxy; @@ -8,6 +7,7 @@ import com.alibaba.polardbx.net.compress.RawPacketByteBufferOutputProxy; import com.alibaba.polardbx.net.packet.EOFPacket; import com.alibaba.polardbx.net.packet.RowDataPacket; +import org.junit.Assert; import org.junit.Test; import java.nio.ByteBuffer; @@ -24,7 +24,7 @@ public void testGetDirectMemory() { ByteBuffer byteBuffer = ByteBuffer.allocateDirect(size); long directMemorySize = ShowDirectMemory.getDirectMemorySize(); - Assert.assertTrue(directMemorySize >= size); + Assert.assertTrue("Got direct memory size: " + directMemorySize, directMemorySize >= size); byteBuffer.clear(); } diff --git a/polardbx-server/src/test/java/com/alibaba/polardbx/matrix/jdbc/TConnectionTest.java b/polardbx-server/src/test/java/com/alibaba/polardbx/matrix/jdbc/TConnectionTest.java new file mode 100644 index 000000000..c620b66b5 --- /dev/null +++ b/polardbx-server/src/test/java/com/alibaba/polardbx/matrix/jdbc/TConnectionTest.java @@ -0,0 +1,51 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.alibaba.polardbx.matrix.jdbc; + +import com.alibaba.polardbx.common.properties.ConnectionParams; +import com.alibaba.polardbx.common.properties.ParamManager; +import com.google.common.truth.Truth; +import org.junit.Test; + +public class TConnectionTest { + @Test + public void newExecutionContextTest() { + + final TConnection tConnection = new TConnection(new TDataSource()); + + // OUTPUT_MYSQL_ERROR_CODE = false + tConnection.newExecutionContext(); + Truth.assertThat( + tConnection + .getExecutionContext() + .getParamManager() + .getBoolean(ConnectionParams.OUTPUT_MYSQL_ERROR_CODE)) + .isFalse(); + + // OUTPUT_MYSQL_ERROR_CODE = true + ParamManager.setBooleanVal(tConnection.getExecutionContext().getParamManager().getProps(), + ConnectionParams.OUTPUT_MYSQL_ERROR_CODE, true, false); + tConnection.newExecutionContext(); + Truth.assertThat( + tConnection + .getExecutionContext() + .getParamManager() + .getBoolean(ConnectionParams.OUTPUT_MYSQL_ERROR_CODE)) + .isTrue(); + } +} diff --git a/polardbx-server/src/test/java/com/alibaba/polardbx/mock/MockFrontendConnection.java b/polardbx-server/src/test/java/com/alibaba/polardbx/mock/MockFrontendConnection.java new file mode 100644 index 000000000..6033682e5 --- /dev/null +++ b/polardbx-server/src/test/java/com/alibaba/polardbx/mock/MockFrontendConnection.java @@ -0,0 +1,50 @@ +package com.alibaba.polardbx.mock; + +import com.alibaba.polardbx.common.exception.code.ErrorCode; +import com.alibaba.polardbx.net.FrontendConnection; + +import java.nio.channels.SocketChannel; + +public class MockFrontendConnection extends FrontendConnection { + + public MockFrontendConnection(SocketChannel channel) { + super(channel); + } + + @Override + public void handleError(ErrorCode errorCode, Throwable t) { + } + + @Override + public boolean prepareLoadInfile(String sql) { + return false; + } + + @Override + public void binlogDump(byte[] data) { + + } + + @Override + public void fieldList(byte[] data) { + } + + @Override + public boolean checkConnectionCount() { + return true; + } + + @Override + public void addConnectionCount() { + } + + @Override + public boolean isPrivilegeMode() { + return false; + } + + @Override + protected long genConnId() { + return 0L; + } +} diff --git a/polardbx-server/src/test/java/com/alibaba/polardbx/mock/MockPacketOutputProxy.java b/polardbx-server/src/test/java/com/alibaba/polardbx/mock/MockPacketOutputProxy.java new file mode 100644 index 000000000..7b130ae1f --- /dev/null +++ b/polardbx-server/src/test/java/com/alibaba/polardbx/mock/MockPacketOutputProxy.java @@ -0,0 +1,124 @@ +package com.alibaba.polardbx.mock; + +import com.alibaba.polardbx.net.FrontendConnection; +import com.alibaba.polardbx.net.compress.IPacketOutputProxy; + +import java.nio.channels.spi.SelectorProvider; + +public class MockPacketOutputProxy implements IPacketOutputProxy { + + @Override + public FrontendConnection getConnection() { + return new MockFrontendConnection(new MockSocketChannel(SelectorProvider.provider())); + } + + @Override + public void write(byte b) { + + } + + @Override + public void writeUB2(int i) { + + } + + @Override + public void writeUB3(int i) { + + } + + @Override + public void writeInt(int i) { + + } + + @Override + public void writeFloat(float f) { + + } + + @Override + public void writeUB4(long l) { + + } + + @Override + public void writeLong(long l) { + + } + + @Override + public void writeDouble(double d) { + + } + + @Override + public void writeLength(long l) { + + } + + @Override + public void write(byte[] src) { + + } + + @Override + public void write(byte[] src, int off, int len) { + + } + + @Override + public void writeWithNull(byte[] src) { + + } + + @Override + public void writeWithLength(byte[] src) { + + } + + @Override + public void writeWithLength(byte[] src, byte nullValue) { + + } + + @Override + public int getLength(long length) { + return 0; + } + + @Override + public int getLength(byte[] src) { + return 0; + } + + @Override + public void checkWriteCapacity(int capacity) { + + } + + @Override + public void packetBegin() { + + } + + @Override + public void packetEnd() { + + } + + @Override + public boolean avaliable() { + return false; + } + + @Override + public void writeArrayAsPacket(byte[] src) { + + } + + @Override + public void close() { + + } +} diff --git a/polardbx-server/src/test/java/com/alibaba/polardbx/mock/MockSocketChannel.java b/polardbx-server/src/test/java/com/alibaba/polardbx/mock/MockSocketChannel.java new file mode 100644 index 000000000..8cb9477ee --- /dev/null +++ b/polardbx-server/src/test/java/com/alibaba/polardbx/mock/MockSocketChannel.java @@ -0,0 +1,112 @@ +package com.alibaba.polardbx.mock; + +import org.mockito.Mockito; + +import java.io.IOException; +import java.net.InetAddress; +import java.net.Socket; +import java.net.SocketAddress; +import java.net.SocketOption; +import java.nio.ByteBuffer; +import java.nio.channels.SocketChannel; +import java.nio.channels.spi.SelectorProvider; +import java.util.Set; + +public class MockSocketChannel extends SocketChannel { + + public MockSocketChannel(SelectorProvider provider) { + super(provider); + } + + @Override + public SocketChannel bind(SocketAddress local) throws IOException { + return null; + } + + @Override + public SocketChannel setOption(SocketOption name, T value) throws IOException { + return null; + } + + @Override + public T getOption(SocketOption name) throws IOException { + return null; + } + + @Override + public Set> supportedOptions() { + return null; + } + + @Override + public SocketChannel shutdownInput() throws IOException { + return null; + } + + @Override + public SocketChannel shutdownOutput() throws IOException { + return null; + } + + public Socket socket() { + Socket socket = Mockito.mock(Socket.class); + Mockito.when(socket.isConnected()).thenReturn(true); + Mockito.when(socket.isClosed()).thenReturn(false); + InetAddress address = Mockito.mock(InetAddress.class); + Mockito.when(socket.getInetAddress()).thenReturn(address); + return socket; + } + + public boolean isConnected() { + return false; + } + + public boolean isConnectionPending() { + return false; + } + + public boolean connect(SocketAddress address) throws IOException { + return false; + } + + public boolean finishConnect() throws IOException { + return false; + } + + @Override + public SocketAddress getRemoteAddress() { + return null; + } + + public int read(ByteBuffer target) throws IOException { + return 0; + } + + public long read(ByteBuffer[] targets, int offset, int length) throws IOException { + return 0; + } + + public int write(ByteBuffer source) throws IOException { + return 0; + } + + public long write(ByteBuffer[] sources, int offset, int length) throws IOException { + return 0; + } + + @Override + public SocketAddress getLocalAddress() { + return new SocketAddress() { + @Override + public int hashCode() { + return super.hashCode(); + } + }; + } + + protected void implCloseSelectableChannel() throws IOException { + } + + protected void implConfigureBlocking(boolean blockingMode) throws IOException { + } +} diff --git a/polardbx-server/src/test/java/com/alibaba/polardbx/parser/ManagerParserTest.java b/polardbx-server/src/test/java/com/alibaba/polardbx/parser/ManagerParserTest.java index 1fa4feec6..a3657e48c 100644 --- a/polardbx-server/src/test/java/com/alibaba/polardbx/parser/ManagerParserTest.java +++ b/polardbx-server/src/test/java/com/alibaba/polardbx/parser/ManagerParserTest.java @@ -402,9 +402,9 @@ public void testclearSlowDataNode() { @Test public void testShowDirectMemCommand() { - Assert.assertEquals(ManagerParseShow.COMMAND, ManagerParseShow.parse("show @@direct_mem", 5)); - Assert.assertEquals(ManagerParseShow.COMMAND, ManagerParseShow.parse("SHOW @@DIRECT_MEM", 5)); - Assert.assertEquals(ManagerParseShow.COMMAND, ManagerParseShow.parse("show @@direct_MEM", 5)); - Assert.assertNotEquals(ManagerParseShow.COMMAND, ManagerParseShow.parse("show @@directMEM", 5)); + Assert.assertEquals(ManagerParseShow.DIRECT_MEM, 0xff & ManagerParseShow.parse("show @@direct_mem", 5)); + Assert.assertEquals(ManagerParseShow.DIRECT_MEM, 0xff & ManagerParseShow.parse("SHOW @@DIRECT_MEM", 5)); + Assert.assertEquals(ManagerParseShow.DIRECT_MEM, 0xff & ManagerParseShow.parse("show @@direct_MEM", 5)); + Assert.assertNotEquals(ManagerParseShow.DIRECT_MEM, 0xff & ManagerParseShow.parse("show @@directMEM", 5)); } } diff --git a/polardbx-server/src/test/java/com/alibaba/polardbx/server/ServerConnectionTest.java b/polardbx-server/src/test/java/com/alibaba/polardbx/server/ServerConnectionTest.java new file mode 100644 index 000000000..4c20fd788 --- /dev/null +++ b/polardbx-server/src/test/java/com/alibaba/polardbx/server/ServerConnectionTest.java @@ -0,0 +1,237 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.alibaba.polardbx.server; + +import com.alibaba.polardbx.common.exception.TddlRuntimeException; +import com.alibaba.polardbx.common.exception.code.ErrorCode; +import com.alibaba.polardbx.common.properties.ConnectionParams; +import com.alibaba.polardbx.common.properties.DynamicConfig; +import com.alibaba.polardbx.common.properties.ParamManager; +import com.alibaba.polardbx.common.utils.logger.Logger; +import com.alibaba.polardbx.matrix.jdbc.TConnection; +import com.alibaba.polardbx.optimizer.context.ExecutionContext; +import com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException; +import org.junit.AfterClass; +import org.junit.Before; +import org.junit.Test; +import org.mockito.MockedConstruction; +import org.mockito.Mockito; + +import java.io.EOFException; +import java.io.IOException; +import java.lang.reflect.Field; +import java.nio.channels.ClosedChannelException; + +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyBoolean; +import static org.mockito.ArgumentMatchers.anyInt; +import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.ArgumentMatchers.isNull; +import static org.mockito.Mockito.atMost; +import static org.mockito.Mockito.doCallRealMethod; +import static org.mockito.Mockito.doNothing; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.mockConstruction; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class ServerConnectionTest { + + private ServerConnection serverConnection; + private Logger logger; + + @Before + public void setUp() throws IOException { + serverConnection = Mockito.spy(Mockito.mock(ServerConnection.class)); + logger = Mockito.mock(Logger.class); + } + + @AfterClass + public static void cleanUp() { + DynamicConfig.getInstance().loadValue(null, "MAPPING_TO_MYSQL_ERROR_CODE", ""); + } + + @Test + public void testLogError() { + // check EOFException + ErrorCode errCode = ErrorCode.ERR_HANDLE_DATA; + Throwable t = new EOFException(); + String sql = "SELECT * FROM table"; + when(logger.isInfoEnabled()).thenReturn(true); + when(logger.isDebugEnabled()).thenReturn(true); + when(logger.isWarnEnabled()).thenReturn(true); + + // test process + serverConnection.logError(logger, errCode, sql, t, null); + + // Assert buildMDC and logger.info + verify(serverConnection, times(1)).buildMDC(); + verify(logger, times(1)).info((Throwable) any()); + + // clear invocation + Mockito.clearInvocations(serverConnection); + Mockito.clearInvocations(logger); + + // check ClosedChannelException + t = new ClosedChannelException(); + // test process + serverConnection.logError(logger, errCode, sql, t, null); + + // Assert buildMDC and logger.info + verify(serverConnection, times(1)).buildMDC(); + verify(logger, times(1)).info((Throwable) any()); + + // clear invocation + Mockito.clearInvocations(serverConnection); + Mockito.clearInvocations(logger); + + // check isConnectionReset + t = new IOException("Connection reset by peer"); + // test process + serverConnection.logError(logger, errCode, sql, t, null); + + // Assert buildMDC and logger.info + verify(serverConnection, times(1)).buildMDC(); + verify(logger, times(1)).info((Throwable) any()); + + // clear invocation + Mockito.clearInvocations(serverConnection); + Mockito.clearInvocations(logger); + + // check Table doesn't exist + t = new Exception("Table xx doesn't exist"); + // test process + serverConnection.logError(logger, errCode, sql, t, null); + + // Assert buildMDC and logger.debug + verify(serverConnection, times(1)).buildMDC(); + verify(logger, times(1)).debug((Throwable) any()); + + // clear invocation + Mockito.clearInvocations(serverConnection); + Mockito.clearInvocations(logger); + + // check Column not found + t = new Exception("Column xx not found in any table"); + // test process + serverConnection.logError(logger, errCode, sql, t, null); + + // Assert buildMDC and logger.debug + verify(serverConnection, times(1)).buildMDC(); + verify(logger, times(1)).debug((Throwable) any()); + + // clear invocation + Mockito.clearInvocations(serverConnection); + Mockito.clearInvocations(logger); + + // check isMySQLIntegrityConstraintViolationException + t = new MySQLIntegrityConstraintViolationException(); + // test process + serverConnection.logError(logger, errCode, sql, t, null); + + // Assert buildMDC and logger.debug + verify(serverConnection, times(1)).buildMDC(); + verify(logger, times(1)).debug((Throwable) any()); + + // clear invocation + Mockito.clearInvocations(serverConnection); + Mockito.clearInvocations(logger); + + // check warning log + t = new TddlRuntimeException(ErrorCode.ERR_READ); + // test process + serverConnection.logError(logger, errCode, sql, t, null); + + // Assert buildMDC and logger.debug + verify(serverConnection, times(1)).buildMDC(); + verify(logger, times(1)).warn(anyString(), any()); + + // clear invocation + Mockito.clearInvocations(serverConnection); + Mockito.clearInvocations(logger); + } + + @Test + public void testHandleError() throws NoSuchFieldException, IllegalAccessException { + final ExecutionContext ec = new ExecutionContext(); + try (final MockedConstruction serverConnectionMockedConstruction = + mockConstruction(ServerConnection.class, (mock, context) -> { + doCallRealMethod().when(mock).handleError(any(), any(), anyString(), anyBoolean()); + doNothing().when(mock).writeErrMessage(anyInt(), any(), anyString()); + }); + ) { + final ServerConnection serverConnection = new ServerConnection(null); + // ServerConnection.conn=null + serverConnection.handleError(ErrorCode.ERR_HANDLE_DATA, + new TddlRuntimeException(ErrorCode.ERR_TABLE_NOT_EXIST), + "show create table t1", + false); + + final TConnection mockTConnection = mock(TConnection.class); + when(mockTConnection.getExecutionContext()).thenReturn(ec); + + final Field connField = ServerConnection.class.getDeclaredField("conn"); + connField.setAccessible(true); + connField.set(serverConnection, mockTConnection); + + // ServerConnection.conn.getExecutionContext().getParamManager()=null + final ParamManager paramManager = ec.getParamManager(); + ec.setParamManager(null); + serverConnection.handleError(ErrorCode.ERR_HANDLE_DATA, + new TddlRuntimeException(ErrorCode.ERR_TABLE_NOT_EXIST), + "show create table t1", + false); + ec.setParamManager(paramManager); + + // OUTPUT_MYSQL_ERROR_CODE=false + serverConnection.handleError(ErrorCode.ERR_HANDLE_DATA, + new TddlRuntimeException(ErrorCode.ERR_TABLE_NOT_EXIST), + "show create table t1", + false); + + // OUTPUT_MYSQL_ERROR_CODE=true + ParamManager.setBooleanVal(ec.getParamManager().getProps(), + ConnectionParams.OUTPUT_MYSQL_ERROR_CODE, + true, + false); + serverConnection.handleError(ErrorCode.ERR_HANDLE_DATA, + new TddlRuntimeException(ErrorCode.ERR_TABLE_NOT_EXIST), + "show create table t1", + false); + + // DynamicConfig.getInstance().getErrorCodeMapping is not empty + DynamicConfig.getInstance().loadValue(null, "MAPPING_TO_MYSQL_ERROR_CODE", "{4007:1146}"); + serverConnection.handleError(ErrorCode.ERR_HANDLE_DATA, + new TddlRuntimeException(ErrorCode.ERR_TABLE_NOT_EXIST), + "show create table t1", + false); + + // check mapping result + DynamicConfig.getInstance().loadValue(null, "MAPPING_TO_MYSQL_ERROR_CODE", "{4006:1146}"); + serverConnection.handleError(ErrorCode.ERR_HANDLE_DATA, + new TddlRuntimeException(ErrorCode.ERR_TABLE_NOT_EXIST), + "show create table t1", + false); + + verify(serverConnection, atMost(5)).writeErrMessage(eq(4006), isNull(), anyString()); + verify(serverConnection).writeErrMessage(eq(1146), isNull(), anyString()); + } + } +} diff --git a/polardbx-server/src/test/java/com/alibaba/polardbx/server/parser/ServerParseClearTest.java b/polardbx-server/src/test/java/com/alibaba/polardbx/server/parser/ServerParseClearTest.java new file mode 100644 index 000000000..f8ea69b71 --- /dev/null +++ b/polardbx-server/src/test/java/com/alibaba/polardbx/server/parser/ServerParseClearTest.java @@ -0,0 +1,76 @@ +/* + * Copyright [2013-2021], Alibaba Group Holding Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.alibaba.polardbx.server.parser; + +import com.alibaba.polardbx.druid.sql.parser.ByteString; +import org.junit.Assert; +import org.junit.Test; + +import java.nio.charset.Charset; + +public class ServerParseClearTest { + + private static final ParseClearTestCase[] CASES = new ParseClearTestCase[] { + new ParseClearTestCase("SLOW", ServerParseClear.SLOW), + new ParseClearTestCase("SLOTHER", ServerParseClear.OTHER), + new ParseClearTestCase("S3 CACHE", ServerParseClear.S3_CACHE), + new ParseClearTestCase("S3OTHER", ServerParseClear.OTHER), + new ParseClearTestCase("HEATMAP_CACHE", ServerParseClear.HEATMAP_CACHE), + new ParseClearTestCase("HOTHER", ServerParseClear.OTHER), + new ParseClearTestCase("ABS CACHE", ServerParseClear.ABS_CACHE), + new ParseClearTestCase("ABOTHER", ServerParseClear.OTHER), + new ParseClearTestCase("PLANCACHE", ServerParseClear.PLANCACHE), + new ParseClearTestCase("PLOTHER", ServerParseClear.OTHER), + new ParseClearTestCase("NFS CACHE", ServerParseClear.NFS_CACHE), + new ParseClearTestCase("NOTHER", ServerParseClear.OTHER), + new ParseClearTestCase("ALL CACHE", ServerParseClear.ALLCACHE), + new ParseClearTestCase("ALOTHER", ServerParseClear.OTHER), + new ParseClearTestCase("PROCEDURE CACHE", ServerParseClear.PROCEDURE_CACHE), + new ParseClearTestCase("POTHER", ServerParseClear.OTHER), + new ParseClearTestCase("EXTERNAL_DISK CACHE", ServerParseClear.EXTERNAL_DISK_CACHE), + new ParseClearTestCase("EOTHER", ServerParseClear.OTHER), + new ParseClearTestCase("OSS CACHE", ServerParseClear.OSSCACHE), + new ParseClearTestCase("OOTHER", ServerParseClear.OTHER), + new ParseClearTestCase("FUNCTION CACHE", ServerParseClear.FUNCTION_CACHE), + new ParseClearTestCase("FOTHER", ServerParseClear.OTHER), + new ParseClearTestCase("ALL", ServerParseClear.OTHER), + new ParseClearTestCase("", ServerParseClear.OTHER), + new ParseClearTestCase(" ", ServerParseClear.OTHER), + }; + + static class ParseClearTestCase { + ByteString sql; + int expected; + + public ParseClearTestCase(String sql, int expected) { + this.sql = createByteString(sql); + this.expected = expected; + } + } + + private static ByteString createByteString(String sql) { + return new ByteString(sql.getBytes(), 0, sql.length(), Charset.defaultCharset()); + } + + @Test + public void testParse() { + for (ParseClearTestCase clearTestCase : CASES) { + Assert.assertEquals(String.format("parse failed for %s", clearTestCase.sql), clearTestCase.expected, + ServerParseClear.parse(clearTestCase.sql, 0)); + } + } +} \ No newline at end of file diff --git a/polardbx-server/src/test/java/com/alibaba/polardbx/server/response/SelectPolardbVersionTest.java b/polardbx-server/src/test/java/com/alibaba/polardbx/server/response/SelectPolardbVersionTest.java index 07f903632..c9633c5ee 100644 --- a/polardbx-server/src/test/java/com/alibaba/polardbx/server/response/SelectPolardbVersionTest.java +++ b/polardbx-server/src/test/java/com/alibaba/polardbx/server/response/SelectPolardbVersionTest.java @@ -1,10 +1,25 @@ package com.alibaba.polardbx.server.response; +import com.alibaba.polardbx.executor.utils.ExecUtils; +import com.alibaba.polardbx.gms.topology.DbTopologyManager; +import com.alibaba.polardbx.gms.util.MetaDbUtil; +import com.alibaba.polardbx.mock.MockPacketOutputProxy; import com.alibaba.polardbx.net.packet.RowDataPacket; +import com.google.common.collect.Sets; import org.junit.Assert; import org.junit.Test; +import org.mockito.MockedStatic; +import org.mockito.Mockito; + +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; import static com.alibaba.polardbx.server.response.SelectPolardbVersion.getFullProductionVersion; +import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; public class SelectPolardbVersionTest { @@ -64,4 +79,53 @@ public void testParseIllegalVersion() { Assert.assertEquals(getFullProductionVersion(version), versionInPacket); Assert.assertNull(packet.fieldValues.get(2)); } + + @Test + public void testPolardbVersion() throws SQLException { + try (MockedStatic mockExecUtils = Mockito.mockStatic(ExecUtils.class); + MockedStatic mockMetaDbUtils = Mockito.mockStatic(MetaDbUtil.class); + MockedStatic mockedTopoManager = Mockito.mockStatic(DbTopologyManager.class)) { + final String mockReleaseDate = "20240412"; + final String mockEngineVersion = "5.4.19"; + mockExecUtils.when(ExecUtils::getDnPolardbVersion).thenCallRealMethod(); + mockExecUtils.when(ExecUtils::getAllDnStorageId).thenReturn(Sets.newHashSet("mockDn")); + Connection mockConnection = mock(Connection.class); + mockedTopoManager.when(() -> DbTopologyManager.getConnectionForStorage(anyString())) + .thenReturn(mockConnection); + Statement statement = mock(Statement.class); + when(mockConnection.createStatement()).thenReturn(statement); + ResultSet resultSet = mock(ResultSet.class); + when(statement.executeQuery(Mockito.anyString())).thenReturn(resultSet); + when(resultSet.next()).thenReturn(true); + when(resultSet.getString(1)).thenReturn(mockEngineVersion); + when(resultSet.getString(2)).thenReturn(mockReleaseDate); + + String dnPolardbVersion = null; + try { + dnPolardbVersion = ExecUtils.getDnPolardbVersion(); + } catch (Exception e) { + Assert.fail(e.getMessage()); + } + Assert.assertNotNull(dnPolardbVersion); + Assert.assertEquals(String.format("%s-%s", mockEngineVersion, mockReleaseDate), dnPolardbVersion); + + SelectPolardbVersion.addDnVersion(new MockPacketOutputProxy(), (byte) 1, "utf8"); + + mockMetaDbUtils.when(MetaDbUtil::getGmsPolardbVersion) + .thenReturn(String.format("%s-%s", mockEngineVersion, mockReleaseDate)); + SelectPolardbVersion.addGmsVersion(new MockPacketOutputProxy(), (byte) 1, "utf8"); + } + + try (MockedStatic mockExecUtils = Mockito.mockStatic(ExecUtils.class)) { + mockExecUtils.when(ExecUtils::getDnPolardbVersion).thenCallRealMethod(); + String dnPolardbVersion = null; + try { + dnPolardbVersion = ExecUtils.getDnPolardbVersion(); + Assert.fail("Expect failed"); + } catch (Exception e) { + Assert.assertTrue(e.getMessage().contains("Failed to get DN datasource")); + } + Assert.assertNull(dnPolardbVersion); + } + } } diff --git a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dql/auto/infoschema/InformationSchemaTest.java b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/NotThreadSafe/InformationSchemaTest.java similarity index 99% rename from polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dql/auto/infoschema/InformationSchemaTest.java rename to polardbx-test/src/test/java/com/alibaba/polardbx/qatest/NotThreadSafe/InformationSchemaTest.java index 1f6bd4a9c..f4e7ba90b 100644 --- a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dql/auto/infoschema/InformationSchemaTest.java +++ b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/NotThreadSafe/InformationSchemaTest.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.alibaba.polardbx.qatest.dql.auto.infoschema; +package com.alibaba.polardbx.qatest.NotThreadSafe; import com.alibaba.polardbx.common.utils.Assert; import com.alibaba.polardbx.common.utils.TStringUtil; diff --git a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/NotThreadSafe/StatisticsTest.java b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/NotThreadSafe/StatisticsTest.java index 550bd51ee..c3fca8ca9 100644 --- a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/NotThreadSafe/StatisticsTest.java +++ b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/NotThreadSafe/StatisticsTest.java @@ -122,6 +122,7 @@ public void test() throws Exception { @Test public void testBigIn() throws SQLException, IOException { try (Connection c = getPolardbxConnection(DB_NAME)) { + c.createStatement().execute("reload statistics"); StringBuilder sql = new StringBuilder("explain cost_trace select 1 from STAT_TEST_tB where create_time IN ("); for (int i = 0; i < 10000; i++) { @@ -138,7 +139,8 @@ public void testBigIn() throws SQLException, IOException { Map rsMap = GeneralUtil.decode(result.toString()); System.out.println(rsMap); assert "50000".equals(rsMap.get( - "Catalog:STAT_TEST_DB,STAT_TEST_TB,create_time,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...\nAction:getFrequency")); + "Catalog:STAT_TEST_DB,STAT_TEST_TB,create_time,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...\nAction:getFrequency".toLowerCase()) + ); } } @@ -150,7 +152,7 @@ private void hasCompensationTest(Connection c, String sql, boolean shouldHas) th if (line.startsWith("STATISTIC TRACE INFO:")) { Map traceInfo = GeneralUtil.decode(line); for (String key : traceInfo.keySet()) { - if (key.contains("Action:datetimeTypeCompensation")) { + if (key.contains("Action:datetimeTypeCompensation".toLowerCase())) { hasCompensation = true; String value = traceInfo.get(key); assert Long.parseLong(value) > 1000; diff --git a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/NotThreadSafe/ccl/CclDalSqlTest.java b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/NotThreadSafe/ccl/CclDalSqlTest.java index a0c9771a7..950503089 100644 --- a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/NotThreadSafe/ccl/CclDalSqlTest.java +++ b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/NotThreadSafe/ccl/CclDalSqlTest.java @@ -1,8 +1,11 @@ package com.alibaba.polardbx.qatest.NotThreadSafe.ccl; +import com.alibaba.fastjson.JSON; import com.alibaba.polardbx.qatest.ReadBaseTestCase; import com.alibaba.polardbx.qatest.util.ConnectionManager; import com.alibaba.polardbx.qatest.util.PropertiesUtil; +import com.clearspring.analytics.util.Lists; +import com.google.common.collect.Maps; import lombok.SneakyThrows; import org.apache.commons.lang.exception.ExceptionUtils; import org.junit.After; @@ -17,6 +20,9 @@ import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; +import java.util.List; +import java.util.Map; +import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; /** @@ -76,7 +82,7 @@ public void after() throws SQLException { try (Statement stmt = tddlConnection.createStatement()) { stmt.execute("clear ccl_triggers"); stmt.execute("clear ccl_rules"); - stmt.execute("delete from " + CCL_TEST_TABLE_NAME); + stmt.execute(" /*TDDL:FORBID_EXECUTE_DML_ALL=FALSE*/delete from " + CCL_TEST_TABLE_NAME); } } @@ -168,62 +174,236 @@ public void test2() throws SQLException { @Test public void test3() throws SQLException { - try (Statement stmt = tddlConnection.createStatement()) { - stmt.execute("clear ccl_rules;"); - stmt.execute( - "CREATE CCL_RULE if not exists busu1118 ON `*`.`*` TO '" + userName + "'@'%'\n" + "FOR SELECT \n" - + " FILTER BY KEYWORD('sleep')\n" + " WITH MAX_CONCURRENCY=0,WAIT_QUEUE_SIZE=1,light_wait=0"); - final Connection anotherConnection = getPolardbxDirectConnection(); - Thread thread = new Thread() { - @SneakyThrows - public void run() { - - try (Connection connection = anotherConnection; Statement stmt = connection.createStatement()) { - stmt.execute("select sleep(6)"); - } catch (Exception e) { - System.out.println(ExceptionUtils.getFullStackTrace(e)); + String[] cclRules = { + "CREATE CCL_RULE if not exists busu1118 ON `*`.`*` TO '" + userName + "'@'%'\n" + "FOR SELECT \n" + + " FILTER BY KEYWORD('sleep')\n" + + " WITH MAX_CONCURRENCY=0,WAIT_QUEUE_SIZE=1,LIGHT_WAIT=0", + "CREATE CCL_RULE if not exists busu1118 ON `*`.`*` TO '" + userName + "'@'%'\n" + "FOR SELECT \n" + + " FILTER BY KEYWORD('sleep')\n" + + " WITH MAX_CONCURRENCY=0,WAIT_QUEUE_SIZE=1,LIGHT_WAIT=1"}; + for (String cclRule : cclRules) { + try (Statement stmt = tddlConnection.createStatement()) { + stmt.execute("clear ccl_rules;"); + stmt.execute(cclRule); + final Connection anotherConnection = getPolardbxDirectConnection(); + Thread thread = new Thread() { + @SneakyThrows + public void run() { + + try (Connection connection = anotherConnection; Statement stmt = connection.createStatement()) { + stmt.execute("select sleep(6)"); + } catch (Exception e) { + System.out.println(ExceptionUtils.getFullStackTrace(e)); + } + } + }; + thread.start(); + Thread.sleep(1000); + try (ResultSet rs = stmt.executeQuery("show full processlist")) { + boolean hasWait = false; + while (rs.next()) { + if (rs.getString("Command").contains("busu1118")) { + hasWait = true; + } + if (hasWait) { + break; + } } + Assert.assertTrue(hasWait); } - }; - thread.start(); - Thread.sleep(1000); - try (ResultSet rs = stmt.executeQuery("show full processlist")) { - boolean hasWait = false; - boolean hasSqlTemplateId = false; - while (rs.next()) { - if (rs.getString("Command").contains("busu1118")) { - hasWait = true; + try (ResultSet rs = stmt.executeQuery("show ccl_rules")) { + boolean hasWait = false; + while (rs.next()) { + if (rs.getInt("Waiting") > 0) { + hasWait = true; + break; + } } + Assert.assertTrue(hasWait); + } + anotherConnection.abort(Executors.newCachedThreadPool()); + thread.join(); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } -// System.out.println( -// rs.getString("Command") + " " + rs.getString("INFO") + " " + rs.getString("SQL_TEMPLATE_ID")); - if (rs.getString("SQL_TEMPLATE_ID") != null) { - hasSqlTemplateId = true; + @Test + public void testCclWaitTimeout() throws SQLException { + String[] cclRules = { + "CREATE CCL_RULE if not exists busu1118 ON `*`.`*` TO '" + userName + "'@'%'\n" + "FOR SELECT \n" + + " FILTER BY KEYWORD('sleep')\n" + + " WITH MAX_CONCURRENCY=0,WAIT_QUEUE_SIZE=1,LIGHT_WAIT=0,WAIT_TIMEOUT=6", + "CREATE CCL_RULE if not exists busu1118 ON `*`.`*` TO '" + userName + "'@'%'\n" + "FOR SELECT \n" + + " FILTER BY KEYWORD('sleep')\n" + + " WITH MAX_CONCURRENCY=0,WAIT_QUEUE_SIZE=1,LIGHT_WAIT=1,WAIT_TIMEOUT=6"}; + for (String cclRule : cclRules) { + try (Statement stmt = tddlConnection.createStatement()) { + stmt.execute("clear ccl_rules;"); + stmt.execute(cclRule); + final Connection anotherConnection = getPolardbxDirectConnection(); + Thread thread = new Thread() { + @SneakyThrows + public void run() { + + try (Connection connection = anotherConnection; Statement stmt = connection.createStatement()) { + stmt.execute("select sleep(6)"); + } catch (Exception e) { + System.out.println(ExceptionUtils.getFullStackTrace(e)); + } } - if (hasWait && hasSqlTemplateId) { - break; + }; + thread.start(); + Thread.sleep(1000); + try (ResultSet rs = stmt.executeQuery("show full processlist")) { + boolean hasWait = false; + while (rs.next()) { + if (rs.getString("Command").contains("busu1118")) { + hasWait = true; + } + if (hasWait) { + break; + } } + Assert.assertTrue(hasWait); } - Assert.assertTrue(hasWait); - Assert.assertTrue(hasSqlTemplateId); - } - try (ResultSet rs = stmt.executeQuery("show ccl_rules")) { - boolean hasWait = false; - while (rs.next()) { - if (rs.getInt("Waiting") > 0) { - hasWait = true; - break; + try (ResultSet rs = stmt.executeQuery("show ccl_rules")) { + boolean hasWait = false; + while (rs.next()) { + if (rs.getInt("Waiting") != 0) { + hasWait = true; + break; + } + } + Assert.assertTrue(hasWait); + } + Thread.sleep(8000); + try (ResultSet rs = stmt.executeQuery("show full processlist")) { + boolean hasWait = false; + while (rs.next()) { + if (rs.getString("Command").contains("busu1118")) { + hasWait = true; + } + if (hasWait) { + break; + } + } + Assert.assertTrue(!hasWait); + } + try (ResultSet rs = stmt.executeQuery("show ccl_rules")) { + boolean hasWait = false; + while (rs.next()) { + if (rs.getInt("Waiting") != 0) { + hasWait = true; + break; + } } + Assert.assertTrue(!hasWait); } - Assert.assertTrue(hasWait); + ExecutorService executorService = Executors.newCachedThreadPool(); + anotherConnection.abort(executorService); + thread.join(); + executorService.shutdown(); + } catch (InterruptedException e) { + e.printStackTrace(); } - anotherConnection.abort(Executors.newCachedThreadPool()); - thread.join(); - - } catch (InterruptedException e) { - e.printStackTrace(); } + } + @Test + public void testRunWaitTimeout() throws SQLException { + String[] cclRules = { + "CREATE CCL_RULE if not exists busu1118 ON `*`.`*` TO '" + userName + "'@'%'\n" + "FOR SELECT \n" + + " FILTER BY KEYWORD('sleep')\n" + + " WITH MAX_CONCURRENCY=1,WAIT_QUEUE_SIZE=2,LIGHT_WAIT=0,WAIT_TIMEOUT=7", + "CREATE CCL_RULE if not exists busu1118 ON `*`.`*` TO '" + userName + "'@'%'\n" + "FOR SELECT \n" + + " FILTER BY KEYWORD('sleep')\n" + + " WITH MAX_CONCURRENCY=1,WAIT_QUEUE_SIZE=2,LIGHT_WAIT=1,WAIT_TIMEOUT=7"}; + for (String cclRule : cclRules) { + try (Statement stmt = tddlConnection.createStatement()) { + stmt.execute("clear ccl_rules;"); + stmt.execute(cclRule); + List threads = Lists.newArrayList(); + List connections = Lists.newArrayList(); + Map result = Maps.newConcurrentMap(); + for (int i = 0; i < 7; i++) { + Connection anotherConnection = getPolardbxDirectConnection(); + connections.add(anotherConnection); + int finalI = i; + Thread thread = new Thread() { + @SneakyThrows + public void run() { + try (Connection connection = anotherConnection; + Statement stmt = connection.createStatement()) { + stmt.execute("select sleep(5)"); + result.put(finalI + 10000, "finish"); + } catch (Exception e) { + e.printStackTrace(); + result.put(finalI, e.getMessage()); + } + } + }; + thread.start(); + threads.add(thread); + } + Thread.sleep(3000); + try (ResultSet rs = stmt.executeQuery("show full processlist")) { + boolean hasWait = false; + while (rs.next()) { + if (rs.getString("Command").contains("busu1118")) { + hasWait = true; + } + } + Assert.assertTrue(hasWait); + } + try (ResultSet rs = stmt.executeQuery("show ccl_rules")) { + boolean hasWait = false; + boolean hasRunning = false; + while (rs.next()) { + if (rs.getInt("Waiting") != 0) { + hasWait = true; + } + if (rs.getInt("Running") != 0) { + hasRunning = true; + } + } + Assert.assertTrue(hasWait); + Assert.assertTrue(hasRunning); + } + Thread.sleep(12000); + try (ResultSet rs = stmt.executeQuery("show ccl_rules")) { + boolean hasWait = false; + boolean hasRunning = false; + while (rs.next()) { + if (rs.getInt("Waiting") != 0) { + hasWait = true; + } + if (rs.getInt("Running") != 0) { + hasRunning = true; + } + } + Assert.assertTrue(!hasWait); + Assert.assertTrue(!hasRunning); + } + System.out.println("result------" + JSON.toJSONString(result)); + Assert.assertEquals(7, result.size()); + ExecutorService executorService = Executors.newCachedThreadPool(); + for (Connection connection : connections) { + try { + connection.abort(executorService); + } catch (Throwable throwable) { + throwable.printStackTrace(); + } + } + for (Thread thread : threads) { + thread.join(); + } + executorService.shutdown(); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } } @Test diff --git a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/NotThreadSafe/udf/java/JavaUdfCreateTest.java b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/NotThreadSafe/udf/java/JavaUdfCreateTest.java index c8553d002..2dd721d93 100644 --- a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/NotThreadSafe/udf/java/JavaUdfCreateTest.java +++ b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/NotThreadSafe/udf/java/JavaUdfCreateTest.java @@ -252,7 +252,7 @@ public void testCreateMurmurHashSuccess() throws SQLException { + "\n" + "} END_CODE"; JdbcUtil.executeSuccess(connection, sql); - long hash1 = MurmurHashUtils.murmurHashWithZeroSeed(123); + long hash1 = MurmurHashUtils.murmurHash128WithZeroSeed(123); System.out.println(hash1); ResultSet rs = JdbcUtil.executeQuery("select murmurhash128(123)", connection); diff --git a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/columnar/dql/explain/ExplainAnalyzeTest.java b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/columnar/dql/explain/ExplainAnalyzeTest.java index f6fbad762..7b551ad07 100644 --- a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/columnar/dql/explain/ExplainAnalyzeTest.java +++ b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/columnar/dql/explain/ExplainAnalyzeTest.java @@ -4,16 +4,13 @@ import com.alibaba.polardbx.common.utils.logger.LoggerFactory; import com.alibaba.polardbx.qatest.columnar.dql.ColumnarReadBaseTestCase; import com.alibaba.polardbx.qatest.columnar.dql.ColumnarUtils; -import com.alibaba.polardbx.qatest.data.ExecuteTableName; import com.alibaba.polardbx.qatest.data.ExecuteTableSelect; import com.alibaba.polardbx.qatest.util.JdbcUtil; import com.alibaba.polardbx.qatest.util.PropertiesUtil; import org.apache.commons.lang3.StringUtils; import org.junit.AfterClass; import org.junit.Assert; -import org.junit.Before; import org.junit.BeforeClass; -import org.junit.Ignore; import org.junit.Test; import org.yaml.snakeyaml.Yaml; @@ -21,6 +18,7 @@ import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; +import java.sql.Statement; import java.util.ArrayList; import java.util.Collections; import java.util.HashSet; @@ -82,6 +80,8 @@ private static void prepareData() throws SQLException, InterruptedException { String createTable = String.format("create table %s like %s.%s", table, srcDb, table); String insertSelect = String.format("insert into %s select * from %s.%s", table, srcDb, table); JdbcUtil.executeSuccess(connection, createTable); + dropColumnarIndexIfExists(connection, table); + JdbcUtil.executeSuccess(connection, insertSelect); ColumnarUtils.createColumnarIndex(connection, table + "_col", table, "pk", "pk", 4); } @@ -101,6 +101,25 @@ private static void prepareData() throws SQLException, InterruptedException { } } + private static void dropColumnarIndexIfExists(Connection connection, String table) { + try (Statement stmt = connection.createStatement();) { + String queryIndexSql = String.format( + "select INDEX_NAME from information_schema.columnar_index_status where TABLE_SCHEMA='%s' and TABLE_NAME='%s';", + DB_NAME, table); + try (ResultSet rs = stmt.executeQuery(queryIndexSql)) { + if (!rs.next()) { + // do nothing if there is no columnar index + return; + } + String indexName = rs.getString(1); + JdbcUtil.executeSuccess(connection, String.format("drop index %s on %s;", indexName, table)); + } + + } catch (SQLException e) { + throw new RuntimeException(e); + } + } + private static List splitPlanLines(String plan) { String[] splitStrs = StringUtils.split(plan, "\n"); List result = new ArrayList<>(splitStrs.length); diff --git a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/columnar/role/ColumnarRoleTest.java b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/columnar/role/ColumnarRoleTest.java index a0aaf2981..12453f7a2 100644 --- a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/columnar/role/ColumnarRoleTest.java +++ b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/columnar/role/ColumnarRoleTest.java @@ -23,33 +23,64 @@ public void showCreateTable1() throws SQLException { explainResultMatchAssert( "show tables like '%table_multi_db_multi_tb%'", null, tddlConnection, "table_multi_db_multi_tb"); - explainResultStrictMatchAssert( - "show create table table_multi_db_multi_tb;", null, tddlConnection, - "CREATE TABLE `table_multi_db_multi_tb` (\n" - + "\t`create` int(11),\n" - + "\t`table` int(11),\n" - + "\t`database` int(11),\n" - + "\t`by` int(11),\n" - + "\t`desc` int(11) NOT NULL DEFAULT 0,\n" - + "\t`int` int(11),\n" - + "\t`group` int(11),\n" - + "\t`order` int(11),\n" - + "\t`primary` int(11),\n" - + "\t`key` int(11)\n" - + ") ENGINE = InnoDB DEFAULT CHARACTER SET = GBK DEFAULT COLLATE = gbk_chinese_ci", 2); + try { + explainResultStrictMatchAssert( + "show create table table_multi_db_multi_tb;", null, tddlConnection, + "CREATE TABLE `table_multi_db_multi_tb` (\n" + + "\t`create` int(11),\n" + + "\t`table` int(11),\n" + + "\t`database` int(11),\n" + + "\t`by` int(11),\n" + + "\t`desc` int(11) NOT NULL DEFAULT 0,\n" + + "\t`int` int(11),\n" + + "\t`group` int(11),\n" + + "\t`order` int(11),\n" + + "\t`primary` int(11),\n" + + "\t`key` int(11)\n" + + ") ENGINE = InnoDB DEFAULT CHARACTER SET = GBK DEFAULT COLLATE = gbk_chinese_ci", 2); + } catch (Exception e) { + explainResultStrictMatchAssert( + "show create table table_multi_db_multi_tb;", null, tddlConnection, + "CREATE TABLE `table_multi_db_multi_tb` (\n" + + "\t`create` int,\n" + + "\t`table` int,\n" + + "\t`database` int,\n" + + "\t`by` int,\n" + + "\t`desc` int NOT NULL DEFAULT 0,\n" + + "\t`int` int,\n" + + "\t`group` int,\n" + + "\t`order` int,\n" + + "\t`primary` int,\n" + + "\t`key` int\n" + + ") ENGINE = InnoDB DEFAULT CHARACTER SET = GBK DEFAULT COLLATE = gbk_chinese_ci", 2); + } + } @Test public void showCreateTable2() throws SQLException { - explainResultStrictMatchAssert( - "show create table tddl_test;", null, tddlConnection, - "CREATE TABLE `tddl_test` (\n" - + "\t`id` int(11) NOT NULL AUTO_INCREMENT,\n" - + "\t`name` varchar(255),\n" - + "\t`gmt_create` date,\n" - + "\t`gmt_modified` date,\n" - + "\tPRIMARY KEY (`id`)\n" - + ") ENGINE = InnoDB DEFAULT CHARACTER SET = GBK DEFAULT COLLATE = gbk_chinese_ci", 2); + try { + explainResultStrictMatchAssert( + "show create table tddl_test;", null, tddlConnection, + "CREATE TABLE `tddl_test` (\n" + + "\t`id` int(11) NOT NULL AUTO_INCREMENT,\n" + + "\t`name` varchar(255),\n" + + "\t`gmt_create` date,\n" + + "\t`gmt_modified` date,\n" + + "\tPRIMARY KEY (`id`)\n" + + ") ENGINE = InnoDB DEFAULT CHARACTER SET = GBK DEFAULT COLLATE = gbk_chinese_ci", 2); + } catch (Exception e) { + explainResultStrictMatchAssert( + "show create table tddl_test;", null, tddlConnection, + "CREATE TABLE `tddl_test` (\n" + + "\t`id` int NOT NULL AUTO_INCREMENT,\n" + + "\t`name` varchar(255),\n" + + "\t`gmt_create` date,\n" + + "\t`gmt_modified` date,\n" + + "\tPRIMARY KEY (`id`)\n" + + ") ENGINE = InnoDB DEFAULT CHARACTER SET = GBK DEFAULT COLLATE = gbk_chinese_ci", 2); + } + } @Test diff --git a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/data/ColumnDataRandomGenerateRule.java b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/data/ColumnDataRandomGenerateRule.java index 8dfc8b09c..dd4bf283b 100644 --- a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/data/ColumnDataRandomGenerateRule.java +++ b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/data/ColumnDataRandomGenerateRule.java @@ -201,7 +201,7 @@ public String varchar_testRandom() { return random.nextBoolean() ? StringS[pk.intValue() % StringS.length] : UUID.randomUUID().toString(); } - static String[] charS = { + public static String[] charS = { "hello1234", "he343243", "word23", "feed32feed", "nihaore", "afdaewer", "hellorew", "abdfeed", "cdefeed", "adaabcwer", "afsabcabcd", "sfdeiekd", "einoejk", "kisfe", diff --git a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/auto/locality/LocalityTestCase.java b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/auto/locality/LocalityTestCase.java index 6668d30e0..b6559d29f 100644 --- a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/auto/locality/LocalityTestCase.java +++ b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/auto/locality/LocalityTestCase.java @@ -71,6 +71,12 @@ public void testListPartitionTableOperation() throws FileNotFoundException, Inte runTestCase("list_partition_table_operation.test.yml"); } + @Test + public void testAlterTableGroupAddSecondaryPartition() + throws FileNotFoundException, InterruptedException, SQLException { + runTestCase("alter_tablegroup_add_secondary_partition_table.test.yml"); + } + @Test public void testRebalanceSimpleWithEmptyTableGroup() throws FileNotFoundException, InterruptedException, SQLException { diff --git a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/auto/omc/ConcurrentUpdateTest.java b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/auto/omc/ConcurrentUpdateTest.java index 870e789df..351974649 100644 --- a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/auto/omc/ConcurrentUpdateTest.java +++ b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/auto/omc/ConcurrentUpdateTest.java @@ -5,6 +5,7 @@ import org.junit.Before; import org.junit.Test; +import java.util.Objects; import java.util.function.BiFunction; import java.util.function.Function; @@ -399,4 +400,21 @@ public void changeMultiWithUpdate2() throws Exception { concurrentTestInternal(tableName, colDef, alterSql, selectSql, generator1, generator2, checker, true, false, 1); } + + @Test + public void modifyWithUpdateAndNothingChanged() throws Exception { + String tableName = "omc_with_update_nothing"; + String colDef = "int"; + String alterSql = buildCmdExtra(OMC_FORCE_TYPE_CONVERSION) + + " alter table %s modify column b bigint"; + String selectSql = "select * from %s order by a"; + Function generator = + (count) -> String.format("update %%s set b=%d where a=%d", count, count); + QuadFunction checker = (colA, colB, colC, colD) -> + Objects.equals(colA, colB); + concurrentTestInternal(tableName, colDef, alterSql, selectSql, generator, generator, checker, true, true, + 1); + concurrentTestInternal(tableName, colDef, alterSql, selectSql, generator, generator, checker, true, false, + 1); + } } diff --git a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/auto/omc/OMCMultiWriteTest.java b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/auto/omc/OMCMultiWriteTest.java index b6c1244e6..1c4589fee 100644 --- a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/auto/omc/OMCMultiWriteTest.java +++ b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/auto/omc/OMCMultiWriteTest.java @@ -47,10 +47,11 @@ public void testStayAtDeleteOnly() { Assert.assertThat(trace.size(), is(1)); //因为是delete only状态,所以预期GSI表包含DELETE流量 + // 更新 delete only 下,UPDATE 在GSI表上还是 UPDATE sql = String.format("UPDATE %s SET b = 2 WHERE a = '123'", tableName); JdbcUtil.executeUpdateSuccess(tddlConnection, "trace" + dmlHintStr + sql); trace = getTrace(tddlConnection); - assertTraceContains(trace, "DELETE", 1); + assertTraceContains(trace, "DELETE", 0); //因为是delete only状态,所以预期GSI表和主表都包含DELETE流量 sql = String.format("DELETE FROM %s WHERE a = '234'", tableName); @@ -174,10 +175,11 @@ public void testStayAtDeleteOnlyWithGsi() { Assert.assertThat(trace.size(), is(2)); //因为是delete only状态,所以预期GSI表包含DELETE流量 + // 更新 delete only 下,UPDATE 在GSI表上还是 UPDATE sql = String.format("UPDATE %s SET b = 2 WHERE a = '123'", tableName); JdbcUtil.executeUpdateSuccess(tddlConnection, "trace" + dmlHintStr + sql); trace = getTrace(tddlConnection); - assertTraceContains(trace, "DELETE", 2); + assertTraceContains(trace, "DELETE", 0); //因为是delete only状态,所以预期GSI表和主表都包含DELETE流量 sql = String.format("DELETE FROM %s WHERE a = '234'", tableName); @@ -301,10 +303,11 @@ public void testStayAtDeleteOnlyWithChangeColumn() { Assert.assertThat(trace.size(), is(1)); //因为是delete only状态,所以预期GSI表包含DELETE流量 + // 更新 delete only 下,UPDATE 在GSI表上还是 UPDATE sql = String.format("UPDATE %s SET b = 2 WHERE a = '123'", tableName); JdbcUtil.executeUpdateSuccess(tddlConnection, "trace" + dmlHintStr + sql); trace = getTrace(tddlConnection); - assertTraceContains(trace, "DELETE", 1); + assertTraceContains(trace, "DELETE", 0); //因为是delete only状态,所以预期GSI表和主表都包含DELETE流量 sql = String.format("DELETE FROM %s WHERE a = '234'", tableName); @@ -428,10 +431,11 @@ public void testStayAtDeleteOnlyWithGsiWithChangeColumn() { Assert.assertThat(trace.size(), is(2)); //因为是delete only状态,所以预期GSI表包含DELETE流量 + // 更新 delete only 下,UPDATE 在GSI表上还是 UPDATE sql = String.format("UPDATE %s SET b = 2 WHERE a = '123'", tableName); JdbcUtil.executeUpdateSuccess(tddlConnection, "trace" + dmlHintStr + sql); trace = getTrace(tddlConnection); - assertTraceContains(trace, "DELETE", 2); + assertTraceContains(trace, "DELETE", 0); //因为是delete only状态,所以预期GSI表和主表都包含DELETE流量 sql = String.format("DELETE FROM %s WHERE a = '234'", tableName); diff --git a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/auto/omc/OnlineModifyColumnTest.java b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/auto/omc/OnlineModifyColumnTest.java index 580db3210..7f31602fa 100644 --- a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/auto/omc/OnlineModifyColumnTest.java +++ b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/auto/omc/OnlineModifyColumnTest.java @@ -801,4 +801,35 @@ public void testOnlineModifyColumnFloatToDecimal() { sql = String.format("alter table %s modify column b decimal(12, 2)," + USE_OMC_ALGORITHM, tableName); JdbcUtil.executeUpdateSuccess(tddlConnection, sql); } + + @Test + public void testOnlineModifyColumnWithUGsi() { + String tableName = "omc_test_ugsi" + RandomUtils.getStringBetween(1, 5); + dropTableIfExists(tableName); + String sql = String.format( + "create table %s (a char(32) primary key, b char(32), unique global index ugsi_b(b) partition by key(b) partitions 64) partition by key(`a`) partitions 3", + tableName); + JdbcUtil.executeUpdateSuccess(tddlConnection, sql); + + sql = "insert into " + tableName + + " values('7e6654a4dadc99g248c8744028e362f0', '2a5996ac96da576b83b862s3g78ceddb')"; + JdbcUtil.executeUpdateSuccess(tddlConnection, sql); + + sql = String.format( + "alter table %s modify column a char(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin," + USE_OMC_ALGORITHM, + tableName); + JdbcUtil.executeUpdateSuccess(tddlConnection, sql); + + sql = String.format( + "select count(1) from %s force index(usgi_b) where b = '2a5996ac96da576b83b862s3g78ceddb'", tableName); + ResultSet rs1 = JdbcUtil.executeQuerySuccess(tddlConnection, sql); + try { + Assert.assertTrue(rs1.next()); + Assert.assertEquals(rs1.getInt(1), 1); + } catch (SQLException e) { + throw new RuntimeException("", e); + } finally { + JdbcUtil.close(rs1); + } + } } diff --git a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/auto/partition/AutoPartition2Test.java b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/auto/partition/AutoPartition2Test.java new file mode 100644 index 000000000..937a02ff2 --- /dev/null +++ b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/auto/partition/AutoPartition2Test.java @@ -0,0 +1,21 @@ +package com.alibaba.polardbx.qatest.ddl.auto.partition; + +import org.junit.runners.Parameterized; + +import java.util.List; + +/** + * @version 1.0 + */ + +public class AutoPartition2Test extends PartitionAutoLoadSqlTestBase { + + public AutoPartition2Test(AutoLoadSqlTestCaseParams parameter) { + super(parameter); + } + + @Parameterized.Parameters(name = "{index}: SubTestCase {0}") + public static List parameters() { + return getParameters(AutoPartition2Test.class, 3, true); + } +} diff --git a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/auto/partition/CreateDatabaseTest.java b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/auto/partition/CreateDatabaseTest.java new file mode 100644 index 000000000..e9787c6f0 --- /dev/null +++ b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/auto/partition/CreateDatabaseTest.java @@ -0,0 +1,23 @@ +package com.alibaba.polardbx.qatest.ddl.auto.partition; + +import org.junit.runners.Parameterized; + +import java.util.List; + +/** + * @author chenghui.lch + */ + +public class CreateDatabaseTest extends PartitionAutoLoadSqlTestBase { + + public CreateDatabaseTest(AutoLoadSqlTestCaseParams parameter) { + super(parameter); + } + + @Parameterized.Parameters(name = "{index}: SubTestCase {0}") + public static List parameters() { + + return getParameters(CreateDatabaseTest.class, 0, false); + } + +} diff --git a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/auto/partition/SubPartitionTableAlter3Test.java b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/auto/partition/SubPartitionTableAlter3Test.java new file mode 100644 index 000000000..a2e569400 --- /dev/null +++ b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/auto/partition/SubPartitionTableAlter3Test.java @@ -0,0 +1,20 @@ +package com.alibaba.polardbx.qatest.ddl.auto.partition; + +import org.junit.runners.Parameterized; + +import java.util.List; + +/** + * @author chenghui.lch + */ +public class SubPartitionTableAlter3Test extends PartitionAutoLoadSqlTestBase { + + public SubPartitionTableAlter3Test(AutoLoadSqlTestCaseParams parameter) { + super(parameter); + } + + @Parameterized.Parameters(name = "{index}: SubTestCase {0}") + public static List parameters() { + return getParameters(SubPartitionTableAlter3Test.class, 0, false); + } +} diff --git a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/auto/partitionkey/ModifyPartitionKeyMultiWriteTest.java b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/auto/partitionkey/ModifyPartitionKeyMultiWriteTest.java index 66eb9c028..5fdfac852 100644 --- a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/auto/partitionkey/ModifyPartitionKeyMultiWriteTest.java +++ b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/auto/partitionkey/ModifyPartitionKeyMultiWriteTest.java @@ -48,10 +48,11 @@ public void testStayAtDeleteOnly() { Assert.assertThat(trace.size(), is(1)); //因为是delete only状态,所以预期GSI表包含DELETE流量 + // 更新 delete only 下,UPDATE 在GSI表上还是 UPDATE sql = String.format("UPDATE %s SET b = 2 WHERE a = '123'", tableName); JdbcUtil.executeUpdateSuccess(tddlConnection, "trace" + dmlHintStr + sql); trace = getTrace(tddlConnection); - assertTraceContains(trace, "DELETE", 1); + assertTraceContains(trace, "DELETE", 0); //因为是delete only状态,所以预期GSI表和主表都包含DELETE流量 sql = String.format("DELETE FROM %s WHERE a = '234'", tableName); @@ -175,10 +176,11 @@ public void testStayAtDeleteOnlyWithGsi() { Assert.assertThat(trace.size(), is(2)); //因为是delete only状态,所以预期GSI表包含DELETE流量 + // 更新 delete only 下,UPDATE 在GSI表上还是 UPDATE sql = String.format("UPDATE %s SET b = 2 WHERE a = '123'", tableName); JdbcUtil.executeUpdateSuccess(tddlConnection, "trace" + dmlHintStr + sql); trace = getTrace(tddlConnection); - assertTraceContains(trace, "DELETE", 2); + assertTraceContains(trace, "DELETE", 0); //因为是delete only状态,所以预期GSI表和主表都包含DELETE流量 sql = String.format("DELETE FROM %s WHERE a = '234'", tableName); diff --git a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/auto/primarykey/DropAddPrimaryKeyMultiWriteTest.java b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/auto/primarykey/DropAddPrimaryKeyMultiWriteTest.java index fe7508e35..b9d505b4a 100644 --- a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/auto/primarykey/DropAddPrimaryKeyMultiWriteTest.java +++ b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/auto/primarykey/DropAddPrimaryKeyMultiWriteTest.java @@ -50,10 +50,11 @@ public void testStayAtDeleteOnly() { Assert.assertThat(trace.size(), is(1)); //因为是delete only状态,所以预期GSI表包含DELETE流量 + // 更新 delete only 下,UPDATE 在GSI表上还是 UPDATE sql = String.format("UPDATE %s SET b = 2 WHERE a = '123'", tableName); JdbcUtil.executeUpdateSuccess(tddlConnection, "trace" + dmlHintStr + sql); trace = getTrace(tddlConnection); - assertTraceContains(trace, "DELETE", 1); + assertTraceContains(trace, "DELETE", 0); //因为是delete only状态,所以预期GSI表和主表都包含DELETE流量 sql = String.format("DELETE FROM %s WHERE a = '234'", tableName); @@ -238,10 +239,11 @@ public void testStayAtDeleteOnlyWithGsi() { Assert.assertThat(trace.size(), is(2)); //因为是delete only状态,所以预期GSI表包含DELETE流量 + // 更新 delete only 下,UPDATE 在GSI表上还是 UPDATE sql = String.format("UPDATE %s SET b = 2 WHERE a = '123'", tableName); JdbcUtil.executeUpdateSuccess(tddlConnection, "trace" + dmlHintStr + sql); trace = getTrace(tddlConnection); - assertTraceContains(trace, "DELETE", 2); + assertTraceContains(trace, "DELETE", 0); //因为是delete only状态,所以预期GSI表和主表都包含DELETE流量 sql = String.format("DELETE FROM %s WHERE a = '234'", tableName); @@ -431,10 +433,11 @@ public void testStayAtDeleteOnlyWithImplicitKey() { Assert.assertThat(trace.size(), is(1)); //因为是delete only状态,所以预期GSI表包含DELETE流量 + // 更新 delete only 下,UPDATE 在GSI表上还是 UPDATE sql = String.format("UPDATE %s SET b = 2 WHERE a = '123'", tableName); JdbcUtil.executeUpdateSuccess(tddlConnection, "trace" + dmlHintStr + sql); trace = getTrace(tddlConnection); - assertTraceContains(trace, "DELETE", 1); + assertTraceContains(trace, "DELETE", 0); //因为是delete only状态,所以预期GSI表和主表都包含DELETE流量 sql = String.format("DELETE FROM %s WHERE a = '234'", tableName); @@ -618,11 +621,12 @@ public void testStayAtDeleteOnlyWithImplicitPkGsi() { List> trace = getTrace(tddlConnection); Assert.assertThat(trace.size(), is(2)); - //因为是delete only状态,所以预期GSI表包含DELETE流量 + // 因为是delete only状态,所以预期GSI表包含DELETE流量 + // 更新 delete only 下,UPDATE 在GSI表上还是 UPDATE sql = String.format("UPDATE %s SET b = 2 WHERE a = '123'", tableName); JdbcUtil.executeUpdateSuccess(tddlConnection, "trace" + dmlHintStr + sql); trace = getTrace(tddlConnection); - assertTraceContains(trace, "DELETE", 2); + assertTraceContains(trace, "DELETE", 0); //因为是delete only状态,所以预期GSI表和主表都包含DELETE流量 sql = String.format("DELETE FROM %s WHERE a = '234'", tableName); diff --git a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/auto/repartition/PartitionTableRepartitionWriteTest.java b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/auto/repartition/PartitionTableRepartitionWriteTest.java index d186cc21d..39a55cac9 100644 --- a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/auto/repartition/PartitionTableRepartitionWriteTest.java +++ b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/auto/repartition/PartitionTableRepartitionWriteTest.java @@ -95,11 +95,12 @@ public void s2pThenStayAtDeleteOnly() throws SQLException { List> trace = getTrace(tddlConnection); Assert.assertThat(trace.size(), is(1)); - //因为是delete only状态,所以预期GSI表包含DELETE流量 + // 因为是delete only状态,所以预期GSI表包含DELETE流量 + // 更新 delete only 下,UPDATE 在GSI表上还是 UPDATE sql = MessageFormat.format("UPDATE {0} SET c_timestamp = NOW() WHERE c_int_32 = 1", primaryTableName); executeDml("trace " + dmlHintStr + sql); trace = getTrace(tddlConnection); - assertTraceContains(trace, "DELETE", 1); + assertTraceContains(trace, "DELETE", 0); //因为是delete only状态,所以预期GSI表和主表都包含DELETE流量 sql = MessageFormat.format("DELETE FROM {0} WHERE c_int_32 = 1", primaryTableName); @@ -243,11 +244,12 @@ public void b2pThenStayAtDeleteOnly() throws SQLException { List> trace = getTrace(tddlConnection); Assert.assertThat(trace.size(), is(phyGroupNum)); - //因为是delete only状态,所以预期GSI表包含DELETE流量 + // 因为是delete only状态,所以预期GSI表包含DELETE流量 + // 更新 delete only 下,UPDATE 在GSI表上还是 UPDATE sql = MessageFormat.format("UPDATE {0} SET c_timestamp = NOW() WHERE c_int_32 = 1", primaryTableName); executeDml("trace " + dmlHintStr + sql); trace = getTrace(tddlConnection); - assertTraceContains(trace, "DELETE", 1); + assertTraceContains(trace, "DELETE", 0); //因为是delete only状态,所以预期GSI表和主表都包含DELETE流量 sql = MessageFormat.format("DELETE FROM {0} WHERE c_int_32 = 1", primaryTableName); diff --git a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/auto/tablereorg/AlterTableReorgBaseTest.java b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/auto/tablereorg/AlterTableReorgBaseTest.java index a1c7e43c9..423f30910 100644 --- a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/auto/tablereorg/AlterTableReorgBaseTest.java +++ b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/auto/tablereorg/AlterTableReorgBaseTest.java @@ -66,11 +66,11 @@ public class AlterTableReorgBaseTest extends DDLBaseNewDBTestCase { protected static String pk = "id"; public static final String PARTITION_BY_BIGINT_KEY = - " partition by key(id) partitions 3"; + "ROW_FORMAT = COMPRESSED KEY_BLOCK_SIZE = 4 partition by key(id) partitions 3"; public static final String PARTITION_BY_INT_KEY = - " partition by key(c_int_32) partitions 3"; + "ROW_FORMAT = COMPRESSED KEY_BLOCK_SIZE = 8 partition by key(c_int_32) partitions 3"; public static final String PARTITION_BY_INT_BIGINT_KEY = - " partition by key(c_int_32, id) partitions 3"; + "ROW_FORMAT = COMPRESSED KEY_BLOCK_SIZE = 16 partition by key(c_int_32, id) partitions 3"; public static final String PARTITION_BY_INT_BIGINT_HASH = " partition by hash(c_int_32, id) partitions 3"; public static final String PARTITION_BY_MONTH_HASH = diff --git a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/sharding/gsi/group2/GsiBackfillTest.java b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/sharding/gsi/group2/GsiBackfillTest.java index 289ac2567..b041733ef 100644 --- a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/sharding/gsi/group2/GsiBackfillTest.java +++ b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/sharding/gsi/group2/GsiBackfillTest.java @@ -66,7 +66,7 @@ import java.util.stream.IntStream; import static com.alibaba.polardbx.qatest.validator.DataValidator.resultSetContentSameAssert; -import static com.alibaba.polardbx.qatest.validator.DataValidator.selectContentSameAssert; +import static com.alibaba.polardbx.qatest.validator.DataValidator.selectContentSameAssertAllowEmpty; /** * @author chenmo.cm @@ -936,7 +936,7 @@ private Future launchDmlCheckThread(String sqlInsert, String sqlUpdate, Strin try { lock.writeLock().lock(); - selectContentSameAssert(sqlSelectPrimary, sqlSelectGSI, null, conn, conn); + selectContentSameAssertAllowEmpty(sqlSelectPrimary, sqlSelectGSI, null, conn, conn); } finally { lock.writeLock().unlock(); } @@ -961,7 +961,7 @@ private Future launchDmlCheckThread(String sqlInsert, String sqlUpdate, Strin try { lock.writeLock().lock(); - selectContentSameAssert(sqlSelectPrimary, sqlSelectGSI, null, conn, conn); + selectContentSameAssertAllowEmpty(sqlSelectPrimary, sqlSelectGSI, null, conn, conn); } finally { lock.writeLock().unlock(); } @@ -986,7 +986,7 @@ private Future launchDmlCheckThread(String sqlInsert, String sqlUpdate, Strin try { lock.writeLock().lock(); - selectContentSameAssert(sqlSelectPrimary, sqlSelectGSI, null, conn, conn); + selectContentSameAssertAllowEmpty(sqlSelectPrimary, sqlSelectGSI, null, conn, conn); } finally { lock.writeLock().unlock(); } diff --git a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/sharding/omc/ConcurrentReplaceTest.java b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/sharding/omc/ConcurrentReplaceTest.java index 749cf5086..5edb1a7d9 100644 --- a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/sharding/omc/ConcurrentReplaceTest.java +++ b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/sharding/omc/ConcurrentReplaceTest.java @@ -4,6 +4,7 @@ import com.alibaba.polardbx.qatest.ddl.sharding.omc.ConcurrentDMLBaseTest; import com.alibaba.polardbx.qatest.util.ConnectionManager; import org.junit.Before; +import org.junit.Ignore; import org.junit.Test; import java.util.function.Function; @@ -193,6 +194,7 @@ public void changeMultiWithReplace1() throws Exception { 1); } + @Ignore @Test public void changeMultiWithReplace2() throws Exception { String tableName = "omc_with_replace_2"; diff --git a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/sharding/omc/ConcurrentUpdateTest.java b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/sharding/omc/ConcurrentUpdateTest.java index a8db56056..e8070dbf8 100644 --- a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/sharding/omc/ConcurrentUpdateTest.java +++ b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/sharding/omc/ConcurrentUpdateTest.java @@ -6,6 +6,7 @@ import org.junit.Before; import org.junit.Test; +import java.util.Objects; import java.util.function.Function; public class ConcurrentUpdateTest extends ConcurrentDMLBaseTest { @@ -302,4 +303,21 @@ public void changeMultiWithUpdate2() throws Exception { concurrentTestInternal(tableName, colDef, alterSql, selectSql, generator1, generator2, checker, true, false, 1); } + + @Test + public void modifyWithUpdateNothingChanged() throws Exception { + String tableName = "omc_with_update_no_change"; + String colDef = "int"; + String alterSql = buildCmdExtra(OMC_FORCE_TYPE_CONVERSION) + + " alter table %s modify column b bigint"; + String selectSql = "select * from %s order by a"; + Function generator = + (count) -> String.format("update %%s set b=%d where a=%d", count, count); + QuadFunction checker = (colA, colB, colC, colD) -> + Objects.equals(colA, colB); + concurrentTestInternal(tableName, colDef, alterSql, selectSql, generator, generator, checker, true, true, + 1); + concurrentTestInternal(tableName, colDef, alterSql, selectSql, generator, generator, checker, true, false, + 1); + } } diff --git a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/sharding/omc/OMCMultiWriteTest.java b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/sharding/omc/OMCMultiWriteTest.java index 1b8878b44..822bd5db3 100644 --- a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/sharding/omc/OMCMultiWriteTest.java +++ b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/sharding/omc/OMCMultiWriteTest.java @@ -50,7 +50,7 @@ public void testStayAtDeleteOnly() { sql = String.format("UPDATE %s SET b = 2 WHERE a = '123'", tableName); JdbcUtil.executeUpdateSuccess(tddlConnection, "trace" + dmlHintStr + sql); trace = getTrace(tddlConnection); - assertTraceContains(trace, "DELETE", 1); + assertTraceContains(trace, "DELETE", 0); //因为是delete only状态,所以预期GSI表和主表都包含DELETE流量 sql = String.format("DELETE FROM %s WHERE a = '234'", tableName); @@ -174,10 +174,11 @@ public void testStayAtDeleteOnlyWithGsi() { Assert.assertThat(trace.size(), is(2)); //因为是delete only状态,所以预期GSI表包含DELETE流量 + // 更新 delete only 下,UPDATE 在GSI表上还是 UPDATE sql = String.format("UPDATE %s SET b = 2 WHERE a = '123'", tableName); JdbcUtil.executeUpdateSuccess(tddlConnection, "trace" + dmlHintStr + sql); trace = getTrace(tddlConnection); - assertTraceContains(trace, "DELETE", 2); + assertTraceContains(trace, "DELETE", 0); //因为是delete only状态,所以预期GSI表和主表都包含DELETE流量 sql = String.format("DELETE FROM %s WHERE a = '234'", tableName); @@ -301,10 +302,11 @@ public void testStayAtDeleteOnlyWithChangeColumn() { Assert.assertThat(trace.size(), is(1)); //因为是delete only状态,所以预期GSI表包含DELETE流量 + // 更新 delete only 下,UPDATE 在GSI表上还是 UPDATE sql = String.format("UPDATE %s SET b = 2 WHERE a = '123'", tableName); JdbcUtil.executeUpdateSuccess(tddlConnection, "trace" + dmlHintStr + sql); trace = getTrace(tddlConnection); - assertTraceContains(trace, "DELETE", 1); + assertTraceContains(trace, "DELETE", 0); //因为是delete only状态,所以预期GSI表和主表都包含DELETE流量 sql = String.format("DELETE FROM %s WHERE a = '234'", tableName); @@ -428,10 +430,11 @@ public void testStayAtDeleteOnlyWithGsiWithChangeColumn() { Assert.assertThat(trace.size(), is(2)); //因为是delete only状态,所以预期GSI表包含DELETE流量 + // 更新 delete only 下,UPDATE 在GSI表上还是 UPDATE sql = String.format("UPDATE %s SET b = 2 WHERE a = '123'", tableName); JdbcUtil.executeUpdateSuccess(tddlConnection, "trace" + dmlHintStr + sql); trace = getTrace(tddlConnection); - assertTraceContains(trace, "DELETE", 2); + assertTraceContains(trace, "DELETE", 0); //因为是delete only状态,所以预期GSI表和主表都包含DELETE流量 sql = String.format("DELETE FROM %s WHERE a = '234'", tableName); diff --git a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/sharding/omc/OnlineModifyColumnTest.java b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/sharding/omc/OnlineModifyColumnTest.java index 3e68bcf40..c2316c40d 100644 --- a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/sharding/omc/OnlineModifyColumnTest.java +++ b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/sharding/omc/OnlineModifyColumnTest.java @@ -638,4 +638,82 @@ public void testOnlineModifyColumnColumnName() { } } + @Test + public void testDrdsSingleTableOmc() { + String tableName = "omc_single_table"; + dropTableIfExists(tableName); + String sql = + String.format("create table %s (a int primary key, b int ) single", tableName); + JdbcUtil.executeUpdateSuccess(tddlConnection, sql); + + sql = String.format("insert into table %s values (0,1),(2,null)", tableName); + JdbcUtil.executeUpdateSuccess(tddlConnection, sql); + + sql = String.format("alter table %s modify column b bigint null,", tableName) + USE_OMC_ALGORITHM; + execDdlWithRetry(tddlDatabase1, tableName, sql, tddlConnection); + + sql = String.format("select * from %s where a=0", tableName); + ResultSet rs = JdbcUtil.executeQuerySuccess(tddlConnection, sql); + try { + Assert.assertTrue(rs.next()); + Assert.assertEquals(rs.getString(1), "0"); + Assert.assertEquals(rs.getString(2), "1"); + } catch (SQLException e) { + throw new RuntimeException("", e); + } finally { + JdbcUtil.close(rs); + } + + sql = String.format("select * from %s where a=2", tableName); + rs = JdbcUtil.executeQuerySuccess(tddlConnection, sql); + try { + Assert.assertTrue(rs.next()); + Assert.assertEquals(rs.getString(1), "2"); + Assert.assertNull(rs.getString(2)); + } catch (SQLException e) { + throw new RuntimeException("", e); + } finally { + JdbcUtil.close(rs); + } + } + + @Test + public void testDrdsBroadcastTableOmc() { + String tableName = "omc_broadcast_table"; + dropTableIfExists(tableName); + String sql = + String.format("create table %s (a int primary key, b int ) broadcast", tableName); + JdbcUtil.executeUpdateSuccess(tddlConnection, sql); + + sql = String.format("insert into table %s values (0,1),(2,null)", tableName); + JdbcUtil.executeUpdateSuccess(tddlConnection, sql); + + sql = String.format("alter table %s modify column b bigint null,", tableName) + USE_OMC_ALGORITHM; + execDdlWithRetry(tddlDatabase1, tableName, sql, tddlConnection); + + sql = String.format("select * from %s where a=0", tableName); + ResultSet rs = JdbcUtil.executeQuerySuccess(tddlConnection, sql); + try { + Assert.assertTrue(rs.next()); + Assert.assertEquals(rs.getString(1), "0"); + Assert.assertEquals(rs.getString(2), "1"); + } catch (SQLException e) { + throw new RuntimeException("", e); + } finally { + JdbcUtil.close(rs); + } + + sql = String.format("select * from %s where a=2", tableName); + rs = JdbcUtil.executeQuerySuccess(tddlConnection, sql); + try { + Assert.assertTrue(rs.next()); + Assert.assertEquals(rs.getString(1), "2"); + Assert.assertNull(rs.getString(2)); + } catch (SQLException e) { + throw new RuntimeException("", e); + } finally { + JdbcUtil.close(rs); + } + } + } diff --git a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/sharding/repartition/RepartitionWriteTest.java b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/sharding/repartition/RepartitionWriteTest.java index 74c14734c..31bcb5aeb 100644 --- a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/sharding/repartition/RepartitionWriteTest.java +++ b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/sharding/repartition/RepartitionWriteTest.java @@ -92,10 +92,11 @@ public void s2pThenStayAtDeleteOnly() throws SQLException { Assert.assertThat(trace.size(), is(1)); //因为是delete only状态,所以预期GSI表包含DELETE流量 + // 更新 delete only 下,UPDATE 在GSI表上还是 UPDATE sql = MessageFormat.format("UPDATE {0} SET c_timestamp = NOW() WHERE c_int_32 = 1", primaryTableName); executeDml("trace " + dmlHintStr + sql); trace = getTrace(tddlConnection); - assertTraceContains(trace, "DELETE", 1); + assertTraceContains(trace, "DELETE", 0); //因为是delete only状态,所以预期GSI表和主表都包含DELETE流量 sql = MessageFormat.format("DELETE FROM {0} WHERE c_int_32 = 1", primaryTableName); diff --git a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/sharding/scaleout/ScaleOutBaseTest.java b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/sharding/scaleout/ScaleOutBaseTest.java index 88e9cca48..aac96370b 100644 --- a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/sharding/scaleout/ScaleOutBaseTest.java +++ b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/ddl/sharding/scaleout/ScaleOutBaseTest.java @@ -208,7 +208,7 @@ public void executeDmlSuccess(String sql) { protected void checkDataContentForScaleOutWrite(List physicalTables, String whereClause) { - String targetGroup = GroupInfoUtil.buildScaloutGroupName(sourceGroupKey); + String targetGroup = GroupInfoUtil.buildScaleOutGroupName(sourceGroupKey); for (String physicalTable : physicalTables) { String srcSql = String.format("/*TDDL:node='%s'*/select * from `%s` " + whereClause, sourceGroupKey, physicalTable); diff --git a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dml/auto/basecrud/ComplexUpdateTest.java b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dml/auto/basecrud/ComplexUpdateTest.java index 8c9dfda8d..ffd0d344b 100644 --- a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dml/auto/basecrud/ComplexUpdateTest.java +++ b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dml/auto/basecrud/ComplexUpdateTest.java @@ -45,26 +45,35 @@ * 复杂Update测试 */ - public class ComplexUpdateTest extends AutoCrudBasedLockTestCase { static String clazz = Thread.currentThread().getStackTrace()[1].getClassName(); private static final String HINT1 = ""; //多线程执行 - private static final String HINT2 = "/*+TDDL:CMD_EXTRA(UPDATE_DELETE_SELECT_BATCH_SIZE=1,MODIFY_SELECT_MULTI=true)*/ "; + private static final String HINT2 = + "/*+TDDL:CMD_EXTRA(UPDATE_DELETE_SELECT_BATCH_SIZE=1,MODIFY_SELECT_MULTI=true)*/ "; private final String HINT; @Parameters(name = "{index}:hint={0},table0={1},table1={2}") public static List prepareData() { - List allTests = new ArrayList<>(); - List result = Arrays.asList(ExecuteTableName.allBaseTypeTwoStrictSameTable(ExecuteTableName.UPDATE_DELETE_BASE)); + List allTests = new ArrayList<>(); + List result = + Arrays.asList(ExecuteTableName.allBaseTypeTwoStrictSameTable(ExecuteTableName.UPDATE_DELETE_BASE)); final List tableNames = Arrays.asList( new String[][] { //相同库表会直接下推 - {ExecuteTableName.UPDATE_DELETE_BASE + ONE_DB_ONE_TB_SUFFIX, ExecuteTableName.UPDATE_DELETE_BASE + TWO + MULTI_DB_ONE_TB_SUFFIX}, - {ExecuteTableName.UPDATE_DELETE_BASE + ONE_DB_MUTIL_TB_SUFFIX, ExecuteTableName.UPDATE_DELETE_BASE + TWO + MULTI_DB_ONE_TB_SUFFIX}, - {ExecuteTableName.UPDATE_DELETE_BASE + MULTI_DB_ONE_TB_SUFFIX, ExecuteTableName.UPDATE_DELETE_BASE + TWO + MUlTI_DB_MUTIL_TB_SUFFIX}, - {ExecuteTableName.UPDATE_DELETE_BASE + MUlTI_DB_MUTIL_TB_SUFFIX, ExecuteTableName.UPDATE_DELETE_BASE + TWO + ONE_DB_MUTIL_TB_SUFFIX}, + { + ExecuteTableName.UPDATE_DELETE_BASE + ONE_DB_ONE_TB_SUFFIX, + ExecuteTableName.UPDATE_DELETE_BASE + TWO + MULTI_DB_ONE_TB_SUFFIX}, + { + ExecuteTableName.UPDATE_DELETE_BASE + ONE_DB_MUTIL_TB_SUFFIX, + ExecuteTableName.UPDATE_DELETE_BASE + TWO + MULTI_DB_ONE_TB_SUFFIX}, + { + ExecuteTableName.UPDATE_DELETE_BASE + MULTI_DB_ONE_TB_SUFFIX, + ExecuteTableName.UPDATE_DELETE_BASE + TWO + MUlTI_DB_MUTIL_TB_SUFFIX}, + { + ExecuteTableName.UPDATE_DELETE_BASE + MUlTI_DB_MUTIL_TB_SUFFIX, + ExecuteTableName.UPDATE_DELETE_BASE + TWO + ONE_DB_MUTIL_TB_SUFFIX}, //广播表会在CN端获取CURRENT_TIMESTAMP,和Mysql有些差异,正常现象 //{ExecuteTableName.UPDATE_DELETE_BASE + BROADCAST_TB_SUFFIX, ExecuteTableName.UPDATE_DELETE_BASE + TWO + MUlTI_DB_MUTIL_TB_SUFFIX}, //{ExecuteTableName.UPDATE_DELETE_BASE + TWO + MUlTI_DB_MUTIL_TB_SUFFIX, ExecuteTableName.UPDATE_DELETE_BASE + BROADCAST_TB_SUFFIX} @@ -563,4 +572,35 @@ public void assertBroadcastTableSame(String tableName) { } } + @Test + public void updateWithUnion() { + // Execute update + String sql = + String.format("update %s a, " + + "(select 9527 as integer_test, 'hello1234' as varchar_test " + + "union select 27149 , 'safdwe') v " + + "set a.bigint_test = v.integer_test where a.varchar_test = v.varchar_test", + baseOneTableName); + executeOnMysqlAndTddl(mysqlConnection, tddlConnection, sql, null); + + // Check update result + sql = "SELECT bigint_test FROM " + baseOneTableName; + selectContentSameAssert(sql, null, mysqlConnection, tddlConnection, true); + } + + @Test + public void updateWithUnion1() { + // Execute update + String sql = + String.format("update %s a, " + + "(select 9527 as integer_test, 'hello1234' as varchar_test " + + "union select 27149 , varchar_test from %s b where b.bigint_test < 15) v " + + "set a.bigint_test = v.integer_test where a.varchar_test = v.varchar_test", + baseOneTableName, baseTwoTableName); + executeOnMysqlAndTddl(mysqlConnection, tddlConnection, sql, null); + + // Check update result + sql = "SELECT bigint_test FROM " + baseOneTableName; + selectContentSameAssert(sql, null, mysqlConnection, tddlConnection, true); + } } diff --git a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dml/auto/basecrud/InsertSequenceTest.java b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dml/auto/basecrud/InsertSequenceTest.java index df0cd8faf..6d3cdf589 100644 --- a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dml/auto/basecrud/InsertSequenceTest.java +++ b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dml/auto/basecrud/InsertSequenceTest.java @@ -53,6 +53,7 @@ import static com.alibaba.polardbx.qatest.util.PropertiesUtil.polardbXAutoDBName1; import static com.alibaba.polardbx.qatest.validator.DataOperator.executeOnMysqlAndTddl; import static com.alibaba.polardbx.qatest.validator.DataValidator.selectContentSameAssert; +import static com.alibaba.polardbx.qatest.validator.DataValidator.selectOrderAssert; import static com.google.common.truth.Truth.assertWithMessage; /** @@ -1323,4 +1324,14 @@ public void insert_SequenceInsideFuncTest() throws Exception { JdbcUtil.executeQueryAndGetFirstStringResult("select last_insert_id()", tddlConnection); Assert.assertNotEquals(lastInsertId, "0"); } + + @Test + public void insertAllDefault() { + String sql = "insert into " + baseOneTableName + " () values ()"; + + executeOnMysqlAndTddl(mysqlConnection, tddlConnection, sql, null, true); + + sql = "select integer_test, varchar_test, char_test, bigint_test, float_test from " + baseOneTableName; + selectOrderAssert(sql, null, mysqlConnection, tddlConnection); + } } diff --git a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dml/auto/basecrud/InsertTest.java b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dml/auto/basecrud/InsertTest.java index a94be1063..94c0f0c40 100644 --- a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dml/auto/basecrud/InsertTest.java +++ b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dml/auto/basecrud/InsertTest.java @@ -1319,4 +1319,13 @@ public void insertWithView() { executeErrorAssert(tddlConnection, sql, null, MessageFormat.format("{0}'' of the {1} is not updatable", viewName, "REPLACE")); } + + @Test + public void testInsertUserDefineVariables() { + // b, c are not initialized. + final String insertSql = "set @a=1; insert into " + baseOneTableName + + " (integer_test, bigint_test, varchar_test, pk) values (@b, @a, @c, 1)"; + + executeOnMysqlAndTddl(mysqlConnection, tddlConnection, insertSql, null); + } } diff --git a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dml/auto/basecrud/ReplacePushDownTest.java b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dml/auto/basecrud/ReplacePushDownTest.java new file mode 100644 index 000000000..d4cb9adcc --- /dev/null +++ b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dml/auto/basecrud/ReplacePushDownTest.java @@ -0,0 +1,139 @@ +package com.alibaba.polardbx.qatest.dml.auto.basecrud; + +import com.alibaba.polardbx.qatest.BaseTestCase; +import com.alibaba.polardbx.qatest.util.JdbcUtil; +import org.apache.commons.lang3.StringUtils; +import org.junit.Assert; +import org.junit.Test; + +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.SQLException; + +public class ReplacePushDownTest extends BaseTestCase { + @Override + public boolean usingNewPartDb() { + return true; + } + + private static final String canPushDownTable0 = "ReplacePushDownTest_canPushDownTable0"; + private static final String canPushDownTable1 = "ReplacePushDownTest_canPushDownTable1"; + private static final String canNotPushDownTable0 = "ReplacePushDownTest_canNotPushDownTable0"; + private static final String canNotPushDownTable1 = "ReplacePushDownTest_canNotPushDownTable1"; + private static final String createTableCanPushDownTable0 + = "create table if not exists " + canPushDownTable0 + + " (id int auto_increment primary key, a int, b int, c int, d int, data int, " + + " clustered index cgsi_canPushDownTable0 (c, d) partition by key(c, d), " + + " local unique index uk(a, b, c, d) " + + " ) partition by key(a, b)"; + + private static final String createTableCanPushDownTable1 + = "create table if not exists " + canPushDownTable1 + + " (a int, b int, c int, d int, data int, " + + " clustered index cgsi_canPushDownTable1 (c, d) partition by key(c, d), " + + " primary key(a, b, c, d) " + + " ) partition by key(a, b)"; + + /** + * Considering existing record: (10, 10, 10, 10), + * tx1: replace (10, 10, 10, 20) + * tx2: replace (10, 20, 20, 20) + * tx1 may replace primary table and delete + insert gsi + * tx2 may insert into primary table and gsi + * (10, 10) and (10, 20) happens to be in the same partition + * the above case may cause data inconsistency in primary table and gsi. + */ + private static final String createTableCanNotPushDownTable0 + = "create table if not exists " + canNotPushDownTable0 + + " (a int, b int, c int, d int, data int, " + + " clustered index cgsi_canNotPushDownTable0 (c, d) partition by key(c, d), " + + " primary key(a, c), " + + " local unique index uk0(a, b, c, d), " + + " local unique index uk1(a, d)" + + " ) partition by key(a, b)"; + + private static final String createTableCanNotPushDownTable1 + = "create table if not exists " + canNotPushDownTable1 + + " (a int, b int, c int, d int, data int, " + + " global unique index ugsi_canNotPushDownTable0 (c, d) partition by key(c, d), " + + " primary key(a, b, c, d) " + + " ) partition by key(a, b)"; + + private static final String insertSql = "insert into %s (a, b, c, d, data) values %s"; + + private static final String dropSql = "drop table if exists %s"; + + private void clean(Connection tddlConnection) { + JdbcUtil.executeSuccess(tddlConnection, String.format(dropSql, canPushDownTable0)); + JdbcUtil.executeSuccess(tddlConnection, String.format(dropSql, canPushDownTable1)); + JdbcUtil.executeSuccess(tddlConnection, String.format(dropSql, canNotPushDownTable0)); + JdbcUtil.executeSuccess(tddlConnection, String.format(dropSql, canNotPushDownTable1)); + } + + @Test + public void testReplacePushDown() throws SQLException { + try (Connection tddlConnection = getPolardbxConnection()) { + clean(tddlConnection); + JdbcUtil.executeSuccess(tddlConnection, createTableCanNotPushDownTable0); + JdbcUtil.executeSuccess(tddlConnection, createTableCanNotPushDownTable1); + JdbcUtil.executeSuccess(tddlConnection, createTableCanPushDownTable0); + JdbcUtil.executeSuccess(tddlConnection, createTableCanPushDownTable1); + + try { + JdbcUtil.executeSuccess(tddlConnection, + String.format(insertSql, canNotPushDownTable0, "(10, 10, 10, 10, 10)")); + JdbcUtil.executeSuccess(tddlConnection, + String.format(insertSql, canNotPushDownTable1, "(10, 10, 10, 10, 10)")); + JdbcUtil.executeSuccess(tddlConnection, + String.format(insertSql, canPushDownTable0, "(10, 10, 10, 10, 10)")); + JdbcUtil.executeSuccess(tddlConnection, + String.format(insertSql, canPushDownTable1, "(10, 10, 10, 10, 10)")); + + String replaceSql = "trace replace into %s (a, b, c, d, data) values (10, 10, 10, 10, 100)"; + JdbcUtil.executeSuccess(tddlConnection, "set transaction_isolation = 'REPEATABLE-READ'"); + shouldPushDown(tddlConnection, String.format(replaceSql, canPushDownTable0)); + shouldPushDown(tddlConnection, String.format(replaceSql, canPushDownTable1)); + shouldPushDown(tddlConnection, String.format(replaceSql, canNotPushDownTable0)); + shouldNotPushDown(tddlConnection, String.format(replaceSql, canNotPushDownTable1)); + + JdbcUtil.executeSuccess(tddlConnection, "set transaction_isolation = 'READ-COMMITTED'"); + shouldPushDown(tddlConnection, String.format(replaceSql, canPushDownTable0)); + shouldPushDown(tddlConnection, String.format(replaceSql, canPushDownTable1)); + shouldNotPushDown(tddlConnection, String.format(replaceSql, canNotPushDownTable0)); + shouldNotPushDown(tddlConnection, String.format(replaceSql, canNotPushDownTable1)); + } finally { + clean(tddlConnection); + } + } + } + + private void shouldPushDown(Connection tddlConnection, String replaceSql) throws SQLException { + JdbcUtil.executeSuccess(tddlConnection, "begin"); + JdbcUtil.executeSuccess(tddlConnection, replaceSql); + ResultSet rs = JdbcUtil.executeQuerySuccess(tddlConnection, "show trace"); + while (rs.next()) { + String statement = rs.getString("STATEMENT"); + // Should only contain SELECT or REPLACE + if (!statement.contains("SELECT") && !statement.contains("REPLACE")) { + System.out.println("unexpected statement: " + statement); + Assert.fail("Should only contain SELECT or REPLACE"); + } + } + JdbcUtil.executeSuccess(tddlConnection, "rollback"); + } + + private void shouldNotPushDown(Connection tddlConnection, String replaceSql) throws SQLException { + JdbcUtil.executeSuccess(tddlConnection, "begin"); + JdbcUtil.executeSuccess(tddlConnection, replaceSql); + ResultSet rs = JdbcUtil.executeQuerySuccess(tddlConnection, "show trace"); + while (rs.next()) { + String statement = rs.getString("STATEMENT"); + // Should only contain SELECT or REPLACE + if (statement.contains("REPLACE")) { + System.out.println("unexpected statement: " + statement); + Assert.fail("Should not contain REPLACE"); + } + } + JdbcUtil.executeSuccess(tddlConnection, "rollback"); + } +} diff --git a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dml/auto/basecrud/SessionHintTest.java b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dml/auto/basecrud/SessionHintTest.java index 1c58a9eb0..90990279d 100644 --- a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dml/auto/basecrud/SessionHintTest.java +++ b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dml/auto/basecrud/SessionHintTest.java @@ -705,7 +705,7 @@ public void testSessionHintWithPhysicalTableName() throws SQLException { Assert.fail("should report error"); } catch (SQLException e) { log.info(e.getMessage()); - Assert.assertTrue(e.getMessage().contains("[TDDL-4006][ERR_TABLE_NOT_EXIST]")); + Assert.assertTrue(e.getMessage().contains("[ERR_TABLE_NOT_EXIST]")); } try { c.createStatement() @@ -713,7 +713,7 @@ public void testSessionHintWithPhysicalTableName() throws SQLException { "select * from select_base_three_multi_db_multi_tb_i9JV_06 a join select_base_three_multi_db_one_tb b on a.pk=b.pk;"); } catch (SQLException e) { log.info(e.getMessage()); - Assert.assertTrue(e.getMessage().contains("[TDDL-4006][ERR_TABLE_NOT_EXIST]")); + Assert.assertTrue(e.getMessage().contains("[ERR_TABLE_NOT_EXIST]")); } } finally { Objects.requireNonNull(c).createStatement().execute("set partition_hint=''"); @@ -743,7 +743,7 @@ public void testSessionHintWithPhysicalTableName() throws SQLException { Assert.fail("should report error"); } catch (SQLException e) { log.info(e.getMessage()); - Assert.assertTrue(e.getMessage().contains("[TDDL-4006][ERR_TABLE_NOT_EXIST]")); + Assert.assertTrue(e.getMessage().contains("[ERR_TABLE_NOT_EXIST]")); } try { c.createStatement() @@ -752,7 +752,7 @@ public void testSessionHintWithPhysicalTableName() throws SQLException { } catch (SQLException e) { log.info(e.getMessage()); - Assert.assertTrue(e.getMessage().contains("[TDDL-4006][ERR_TABLE_NOT_EXIST]")); + Assert.assertTrue(e.getMessage().contains("[ERR_TABLE_NOT_EXIST]")); } } finally { Objects.requireNonNull(c).createStatement().execute("set partition_hint=''"); @@ -820,7 +820,7 @@ public void testDmlWithAutoGsi() throws SQLException { Assert.fail("should report error"); } catch (SQLException e) { Assert.assertTrue( - e.getMessage().contains("[TDDL-5311][ERR_GLOBAL_SECONDARY_INDEX_MODIFY_GSI_TABLE_DIRECTLY]")); + e.getMessage().contains("[ERR_GLOBAL_SECONDARY_INDEX_MODIFY_GSI_TABLE_DIRECTLY]")); } finally { Objects.requireNonNull(c).createStatement().execute("set partition_hint=''"); log.info("session hint test end"); @@ -859,7 +859,7 @@ public void testDmlWithShardingGsi() throws SQLException { Assert.fail("should report error"); } catch (SQLException e) { Assert.assertTrue( - e.getMessage().contains("[TDDL-5311][ERR_GLOBAL_SECONDARY_INDEX_MODIFY_GSI_TABLE_DIRECTLY]")); + e.getMessage().contains("[ERR_GLOBAL_SECONDARY_INDEX_MODIFY_GSI_TABLE_DIRECTLY]")); } finally { Objects.requireNonNull(c).createStatement().execute("set partition_hint=''"); log.info("session hint test end"); @@ -897,7 +897,7 @@ public void testDmlWithShardingBroadcast() throws SQLException { } catch (SQLException e) { e.printStackTrace(); Assert.assertTrue( - e.getMessage().contains("[TDDL-5325][ERR_MODIFY_BROADCAST_TABLE_BY_HINT_NOT_ALLOWED]")); + e.getMessage().contains("[ERR_MODIFY_BROADCAST_TABLE_BY_HINT_NOT_ALLOWED]")); } finally { Objects.requireNonNull(c).createStatement().execute("set partition_hint=''"); log.info("session hint test end"); diff --git a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dml/auto/delete/ComplexDeleteTest.java b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dml/auto/delete/ComplexDeleteTest.java index 8df205676..e121d9349 100644 --- a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dml/auto/delete/ComplexDeleteTest.java +++ b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dml/auto/delete/ComplexDeleteTest.java @@ -676,4 +676,36 @@ public void testDeleteWithDerivedSubquery1() throws Exception { tddlConnection); } + @Test + public void deleteWithUnion() { + // Execute update + String sql = + String.format("delete a from %s a, " + + "(select 9527 as integer_test, 'hello1234' as varchar_test " + + "union select 27149 , 'safdwe') v " + + "where a.varchar_test = v.varchar_test", + baseOneTableName); + executeOnMysqlAndTddl(mysqlConnection, tddlConnection, sql, null); + + // Check update result + sql = "SELECT bigint_test FROM " + baseOneTableName; + selectContentSameAssert(sql, null, mysqlConnection, tddlConnection, true); + } + + @Test + public void deleteWithUnion1() { + // Execute update + String sql = + String.format("delete a from %s a, " + + "(select 9527 as integer_test, 'hello1234' as varchar_test " + + "union select 27149 , varchar_test from %s b where b.bigint_test < 15) v " + + "where a.varchar_test = v.varchar_test", + baseOneTableName, baseTwoTableName); + executeOnMysqlAndTddl(mysqlConnection, tddlConnection, sql, null); + + // Check update result + sql = "SELECT bigint_test FROM " + baseOneTableName; + selectContentSameAssert(sql, null, mysqlConnection, tddlConnection, true); + } + } diff --git a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dml/sharding/basecrud/ComplexUpdateTest.java b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dml/sharding/basecrud/ComplexUpdateTest.java index c0ae81616..1aa748ac5 100644 --- a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dml/sharding/basecrud/ComplexUpdateTest.java +++ b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dml/sharding/basecrud/ComplexUpdateTest.java @@ -31,7 +31,6 @@ import java.util.Arrays; import java.util.List; -import static com.alibaba.polardbx.qatest.data.ExecuteTableName.BROADCAST_TB_SUFFIX; import static com.alibaba.polardbx.qatest.data.ExecuteTableName.MULTI_DB_ONE_TB_SUFFIX; import static com.alibaba.polardbx.qatest.data.ExecuteTableName.MUlTI_DB_MUTIL_TB_SUFFIX; import static com.alibaba.polardbx.qatest.data.ExecuteTableName.ONE_DB_MUTIL_TB_SUFFIX; @@ -46,26 +45,35 @@ * 复杂Update测试 */ - public class ComplexUpdateTest extends CrudBasedLockTestCase { static String clazz = Thread.currentThread().getStackTrace()[1].getClassName(); private static final String HINT1 = ""; //多线程执行 - private static final String HINT2 = "/*+TDDL:CMD_EXTRA(UPDATE_DELETE_SELECT_BATCH_SIZE=1,MODIFY_SELECT_MULTI=true)*/ "; + private static final String HINT2 = + "/*+TDDL:CMD_EXTRA(UPDATE_DELETE_SELECT_BATCH_SIZE=1,MODIFY_SELECT_MULTI=true)*/ "; private final String HINT; @Parameters(name = "{index}:hint={0},table0={1},table1={2}") public static List prepareData() { - List allTests = new ArrayList<>(); - List result = Arrays.asList(ExecuteTableName.allBaseTypeTwoStrictSameTable(ExecuteTableName.UPDATE_DELETE_BASE)); + List allTests = new ArrayList<>(); + List result = + Arrays.asList(ExecuteTableName.allBaseTypeTwoStrictSameTable(ExecuteTableName.UPDATE_DELETE_BASE)); final List tableNames = Arrays.asList( new String[][] { //相同库表会直接下推 - {ExecuteTableName.UPDATE_DELETE_BASE + ONE_DB_ONE_TB_SUFFIX, ExecuteTableName.UPDATE_DELETE_BASE + TWO + MULTI_DB_ONE_TB_SUFFIX}, - {ExecuteTableName.UPDATE_DELETE_BASE + ONE_DB_MUTIL_TB_SUFFIX, ExecuteTableName.UPDATE_DELETE_BASE + TWO + MULTI_DB_ONE_TB_SUFFIX}, - {ExecuteTableName.UPDATE_DELETE_BASE + MULTI_DB_ONE_TB_SUFFIX, ExecuteTableName.UPDATE_DELETE_BASE + TWO + MUlTI_DB_MUTIL_TB_SUFFIX}, - {ExecuteTableName.UPDATE_DELETE_BASE + MUlTI_DB_MUTIL_TB_SUFFIX, ExecuteTableName.UPDATE_DELETE_BASE + TWO + ONE_DB_MUTIL_TB_SUFFIX}, + { + ExecuteTableName.UPDATE_DELETE_BASE + ONE_DB_ONE_TB_SUFFIX, + ExecuteTableName.UPDATE_DELETE_BASE + TWO + MULTI_DB_ONE_TB_SUFFIX}, + { + ExecuteTableName.UPDATE_DELETE_BASE + ONE_DB_MUTIL_TB_SUFFIX, + ExecuteTableName.UPDATE_DELETE_BASE + TWO + MULTI_DB_ONE_TB_SUFFIX}, + { + ExecuteTableName.UPDATE_DELETE_BASE + MULTI_DB_ONE_TB_SUFFIX, + ExecuteTableName.UPDATE_DELETE_BASE + TWO + MUlTI_DB_MUTIL_TB_SUFFIX}, + { + ExecuteTableName.UPDATE_DELETE_BASE + MUlTI_DB_MUTIL_TB_SUFFIX, + ExecuteTableName.UPDATE_DELETE_BASE + TWO + ONE_DB_MUTIL_TB_SUFFIX}, //广播表会在CN端获取CURRENT_TIMESTAMP,和Mysql有些差异,正常现象 //{ExecuteTableName.UPDATE_DELETE_BASE + BROADCAST_TB_SUFFIX, ExecuteTableName.UPDATE_DELETE_BASE + TWO + MUlTI_DB_MUTIL_TB_SUFFIX}, //{ExecuteTableName.UPDATE_DELETE_BASE + TWO + MUlTI_DB_MUTIL_TB_SUFFIX, ExecuteTableName.UPDATE_DELETE_BASE + BROADCAST_TB_SUFFIX} @@ -564,4 +572,35 @@ public void assertBroadcastTableSame(String tableName) { } } + @Test + public void updateWithUnion() { + // Execute update + String sql = + String.format("update %s a, " + + "(select 9527 as integer_test, 'hello1234' as varchar_test " + + "union select 27149 , 'safdwe') v " + + "set a.bigint_test = v.integer_test where a.varchar_test = v.varchar_test", + baseOneTableName); + executeOnMysqlAndTddl(mysqlConnection, tddlConnection, sql, null); + + // Check update result + sql = "SELECT bigint_test FROM " + baseOneTableName; + selectContentSameAssert(sql, null, mysqlConnection, tddlConnection, true); + } + + @Test + public void updateWithUnion1() { + // Execute update + String sql = + String.format("update %s a, " + + "(select 9527 as integer_test, 'hello1234' as varchar_test " + + "union select 27149 , varchar_test from %s b where b.bigint_test < 15) v " + + "set a.bigint_test = v.integer_test where a.varchar_test = v.varchar_test", + baseOneTableName, baseTwoTableName); + executeOnMysqlAndTddl(mysqlConnection, tddlConnection, sql, null); + + // Check update result + sql = "SELECT bigint_test FROM " + baseOneTableName; + selectContentSameAssert(sql, null, mysqlConnection, tddlConnection, true); + } } diff --git a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dml/sharding/delete/ComplexDeleteTest.java b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dml/sharding/delete/ComplexDeleteTest.java index efc6ad9e1..3942c3f82 100644 --- a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dml/sharding/delete/ComplexDeleteTest.java +++ b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dml/sharding/delete/ComplexDeleteTest.java @@ -676,4 +676,35 @@ public void testDeleteWithDerivedSubquery1() throws Exception { tddlConnection); } + @Test + public void deleteWithUnion() { + // Execute update + String sql = + String.format("delete a from %s a, " + + "(select 9527 as integer_test, 'hello1234' as varchar_test " + + "union select 27149 , 'safdwe') v " + + "where a.varchar_test = v.varchar_test", + baseOneTableName); + executeOnMysqlAndTddl(mysqlConnection, tddlConnection, sql, null); + + // Check update result + sql = "SELECT bigint_test FROM " + baseOneTableName; + selectContentSameAssert(sql, null, mysqlConnection, tddlConnection, true); + } + + @Test + public void deleteWithUnion1() { + // Execute update + String sql = + String.format("delete a from %s a, " + + "(select 9527 as integer_test, 'hello1234' as varchar_test " + + "union select 27149 , varchar_test from %s b where b.bigint_test < 15) v " + + "where a.varchar_test = v.varchar_test", + baseOneTableName, baseTwoTableName); + executeOnMysqlAndTddl(mysqlConnection, tddlConnection, sql, null); + + // Check update result + sql = "SELECT bigint_test FROM " + baseOneTableName; + selectContentSameAssert(sql, null, mysqlConnection, tddlConnection, true); + } } diff --git a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dql/auto/charset/Utf8mb4Zh0900ASCSOrderByTest.java b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dql/auto/charset/Utf8mb4Zh0900ASCSOrderByTest.java new file mode 100644 index 000000000..ac111d704 --- /dev/null +++ b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dql/auto/charset/Utf8mb4Zh0900ASCSOrderByTest.java @@ -0,0 +1,48 @@ +package com.alibaba.polardbx.qatest.dql.auto.charset; + +import com.alibaba.polardbx.qatest.AutoReadBaseTestCase; +import com.alibaba.polardbx.qatest.util.JdbcUtil; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +import static com.alibaba.polardbx.qatest.validator.DataValidator.selectContentSameAssert; + +public class Utf8mb4Zh0900ASCSOrderByTest extends AutoReadBaseTestCase { + @Before + public void createTable() { + if (!isMySQL80()) { + return; + } + JdbcUtil.executeSuccess(mysqlConnection, "drop table if exists t_utf8mb4_zh_0900_as_cs"); + JdbcUtil.executeSuccess(tddlConnection, "drop table if exists t_utf8mb4_zh_0900_as_cs"); + JdbcUtil.executeSuccess(mysqlConnection, + "create table t_utf8mb4_zh_0900_as_cs (pk bigint primary key auto_increment, a varchar(255) character set utf8mb4 collate utf8mb4_zh_0900_as_cs)"); + JdbcUtil.executeSuccess(tddlConnection, + "create table t_utf8mb4_zh_0900_as_cs (pk bigint primary key auto_increment, a varchar(255) character set utf8mb4 collate utf8mb4_zh_0900_as_cs) partition by hash(pk) partitions 3"); + } + + @Test + public void test() { + if (!isMySQL80()) { + return; + } + JdbcUtil.executeSuccess(mysqlConnection, + "insert into t_utf8mb4_zh_0900_as_cs (a) values ('一'),('二'),('三'),('四'),('五'),('六'),('七'),('八'),('九'),('十')"); + JdbcUtil.executeSuccess(tddlConnection, + "insert into t_utf8mb4_zh_0900_as_cs (a) values ('一'),('二'),('三'),('四'),('五'),('六'),('七'),('八'),('九'),('十')"); + + // '八','二','九','六','七','三','十','四','五','一' + selectContentSameAssert("select a from t_utf8mb4_zh_0900_as_cs order by a;", null, tddlConnection, + mysqlConnection); + } + + @After + public void dropTable() { + if (!isMySQL80()) { + return; + } + JdbcUtil.executeSuccess(mysqlConnection, "drop table if exists t_utf8mb4_zh_0900_as_cs"); + JdbcUtil.executeSuccess(tddlConnection, "drop table if exists t_utf8mb4_zh_0900_as_cs"); + } +} diff --git a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dql/auto/function/SelectRowFunctionTest.java b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dql/auto/function/SelectRowFunctionTest.java index e5f9c869f..d0695dddf 100644 --- a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dql/auto/function/SelectRowFunctionTest.java +++ b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dql/auto/function/SelectRowFunctionTest.java @@ -62,6 +62,37 @@ public void testInNull() { selectContentSameAssert("select null in (1,null,3)", new ArrayList<>(), mysqlConnection, tddlConnection); } + @Test + public void testInExprForEachType() { + selectContentSameAssert("select ('abc', 'def') in ((N'abc', N'def'))", new ArrayList<>(), mysqlConnection, + tddlConnection); + selectContentSameAssert("select ('abc', 'de') in ((N'abc', N'def'))", new ArrayList<>(), mysqlConnection, + tddlConnection); + + selectContentSameAssert("select (2, 1) in ((b'10', b'01'))", new ArrayList<>(), mysqlConnection, + tddlConnection); + selectContentSameAssert("select (1, 1) in ((b'10', b'01'))", new ArrayList<>(), mysqlConnection, + tddlConnection); + + selectContentSameAssert("select (true, false) in ((true, false))", new ArrayList<>(), mysqlConnection, + tddlConnection); + selectContentSameAssert("select (true, true) in ((true, false))", new ArrayList<>(), mysqlConnection, + tddlConnection); + + selectContentSameAssert("select (true, false) in ((true, false))", new ArrayList<>(), mysqlConnection, + tddlConnection); + selectContentSameAssert("select (true, true) in ((true, false))", new ArrayList<>(), mysqlConnection, + tddlConnection); + + // FIXME: wrong result for hex expression, this may fail: + // selectContentSameAssert("select b'0001001000110100' in (0x1234)", new ArrayList<>(), mysqlConnection, tddlConnection); + // selectContentSameAssert("select (0x1234, 0xabcc) in ((0x1234, 0xabcd))", new ArrayList<>(), mysqlConnection, tddlConnection); + selectContentSameAssert("select (0x1234, 0xabcd) in ((0x1234, 0xabcd))", new ArrayList<>(), mysqlConnection, + tddlConnection); + selectContentSameAssert("select (0x1233, 0xabcc) in ((0x1234, 0xabcd))", new ArrayList<>(), mysqlConnection, + tddlConnection); + } + @Test public void testDifferentRowLength() { String left = generateRandomStr(2); diff --git a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dql/auto/hint/HintTest.java b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dql/auto/hint/HintTest.java index f633b9370..ef39b052f 100644 --- a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dql/auto/hint/HintTest.java +++ b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dql/auto/hint/HintTest.java @@ -3,10 +3,12 @@ import com.alibaba.polardbx.common.utils.Assert; import com.alibaba.polardbx.qatest.AutoReadBaseTestCase; import com.alibaba.polardbx.qatest.ColumnarIgnore; +import com.alibaba.polardbx.qatest.FileStoreIgnore; import com.alibaba.polardbx.qatest.data.ExecuteTableSelect; import org.junit.Test; import org.junit.runners.Parameterized; +import java.sql.ResultSet; import java.sql.SQLException; import java.util.Arrays; import java.util.List; @@ -53,6 +55,23 @@ public void testHintFlag() throws SQLException { @Test @ColumnarIgnore + @FileStoreIgnore + public void testSampleHint() throws SQLException { + String hint = + "/*+TDDL:cmd_extra(enable_post_planner=false,enable_index_selection=false,merge_union=false,enable_direct_plan=false,sample_percentage=1)*/ "; + String sql = hint + "select * from " + baseOneTableName; + tddlConnection.createStatement().execute("clear plancache"); + + // execute first and put it into plancache + tddlConnection.createStatement().execute("trace " + sql); + ResultSet rs = tddlConnection.createStatement().executeQuery("show trace"); + + assert rs.next(); + String result = rs.getString("STATEMENT"); + assert result.contains("+sample_percentage("); + } + + @Test public void testHintFlagInsideTran() throws SQLException { String hint = "/*TDDL:a()*/ "; String sql = "select * from " + baseOneTableName; diff --git a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dql/auto/select/FlashbackQueryTest.java b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dql/auto/select/FlashbackQueryTest.java index d7750befc..5d168d0df 100644 --- a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dql/auto/select/FlashbackQueryTest.java +++ b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dql/auto/select/FlashbackQueryTest.java @@ -10,6 +10,7 @@ import java.sql.ResultSet; import java.sql.SQLException; +import java.text.MessageFormat; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; @@ -60,6 +61,21 @@ public class FlashbackQueryTest extends AutoReadBaseTestCase { + "PARTITION `p3` VALUES LESS THAN (30) ENGINE = InnoDB,\n" + "PARTITION `p4` VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB);"; + final String tableName = "FlashbackQueryTest"; + final String tableFormat = "CREATE TABLE FlashbackQueryTest (" + + "`a` int(11) NOT NULL AUTO_INCREMENT,\n" + + "`b` int(11) NOT NULL,\n" + + "`c` int(11) NOT NULL,\n" + + "`d` int(11) NOT NULL,\n" + + "PRIMARY KEY (`a`) \n" + + ") {0} "; + + final String[] partitionStrings = new String[] { + "single", + "broadcast", + "partition by key(a)" + }; + @Before public void before() { JdbcUtil.executeSuccess(tddlConnection, dropTableSql); @@ -158,4 +174,92 @@ public void testTimezone() { } } + @Test + public void test57Tso() { + if (isMySQL80()) { + return; + } + String sql = + "/*+TDDL:plancache=false enable_mpp=false*/ select * from FlashbackQueryTest tt partition(p1) as of tso 10000"; + String expect = + "Gather(concurrent=true) LogicalView(tables=\"FlashbackQueryTest[p1]\", sql=\"SELECT `a`, `b`, `c`, `d` FROM `FlashbackQueryTest` AS OF TSO ? AS `FlashbackQueryTest`\")HitCache:falseSource:nullTemplateId: NULL"; + String explain = JdbcUtil.getExplainResult(tddlConnection, sql); + Assert.assertEquals(expect, explain); + } + + @Test + public void test80Tso() { + if (!isMySQL80()) { + return; + } + String sql = + "/*+TDDL:plancache=false enable_mpp=false*/ select * from FlashbackQueryTest tt partition(p1) as of tso 10000"; + String expect = + "Gather(concurrent=true) LogicalView(tables=\"FlashbackQueryTest[p1]\", sql=\"SELECT `a`, `b`, `c`, `d` FROM `FlashbackQueryTest` AS OF GCN ? AS `FlashbackQueryTest`\")HitCache:falseSource:nullTemplateId: NULL"; + String explain = JdbcUtil.getExplainResult(tddlConnection, sql); + Assert.assertEquals(expect, explain); + } + + @Test + public void testTraceFunction() throws Exception { + for (String partition : partitionStrings) { + String createTable = MessageFormat.format(tableFormat, partition); + + JdbcUtil.dropTable(tddlConnection, tableName); + JdbcUtil.executeSuccess(tddlConnection, createTable); + + //等待5s,避免时间转tso:(UNIX_TIMESTAMP(now()) << 22) * 1000,报错:The definition of the table required by the flashback query has changed + Thread.sleep(5000); + + String sql = + "set @tso=tso_timestamp(); trace /*+TDDL:plancache=false enable_mpp=false*/ select * from FlashbackQueryTest as of tso @tso"; + JdbcUtil.executeSuccess(tddlConnection, sql); + List> result = getTrace(tddlConnection); + Assert.assertFalse(result.get(0).get(11).toUpperCase().contains("@tso".toUpperCase())); + + sql = + "set @tso=tso_timestamp(); trace /*+TDDL:plancache=false enable_mpp=false*/ select * from FlashbackQueryTest as of tso @tso + 10 - 10"; + JdbcUtil.executeSuccess(tddlConnection, sql); + + result = getTrace(tddlConnection); + Assert.assertFalse(result.get(0).get(11).toUpperCase().contains("@tso".toUpperCase())); + + sql = + "trace /*+TDDL:plancache=false enable_mpp=false*/ select * from FlashbackQueryTest as of tso tso_timestamp()"; + JdbcUtil.executeSuccess(tddlConnection, sql); + + result = getTrace(tddlConnection); + Assert.assertFalse(result.get(0).get(11).toUpperCase().contains("tso_timestamp".toUpperCase())); + + sql = + "trace /*+TDDL:plancache=false enable_mpp=false*/ select * from FlashbackQueryTest as of tso (UNIX_TIMESTAMP(now()) << 22) * 1000"; + JdbcUtil.executeSuccess(tddlConnection, sql); + + result = getTrace(tddlConnection); + Assert.assertFalse(result.get(0).get(11).toUpperCase().contains("now()".toUpperCase())); + + sql = + "trace /*+TDDL:plancache=false enable_mpp=false*/ select * from FlashbackQueryTest as of tso tso_timestamp() + round(rand())"; + JdbcUtil.executeSuccess(tddlConnection, sql); + + result = getTrace(tddlConnection); + Assert.assertFalse(result.get(0).get(11).toUpperCase().contains("rand()".toUpperCase())); + + sql = + "trace /*+TDDL:plancache=false enable_mpp=false*/ select * from FlashbackQueryTest as of tso (UNIX_TIMESTAMP(CURRENT_TIMESTAMP()) << 22) * 1000"; + JdbcUtil.executeSuccess(tddlConnection, sql); + + result = getTrace(tddlConnection); + Assert.assertFalse(result.get(0).get(11).toUpperCase().contains("CURRENT_TIMESTAMP()".toUpperCase())); + + //点查 + sql = + "trace /*+TDDL:plancache=false enable_mpp=false*/ select * from FlashbackQueryTest as of tso tso_timestamp() + round(rand()) where a = 1"; + JdbcUtil.executeSuccess(tddlConnection, sql); + + result = getTrace(tddlConnection); + System.out.println(result.get(0).get(11)); + Assert.assertFalse(result.get(0).get(11).toUpperCase().contains("rand()".toUpperCase())); + } + } } \ No newline at end of file diff --git a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dql/auto/select/InPruningQaTest.java b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dql/auto/select/InPruningQaTest.java new file mode 100644 index 000000000..efb1b7ae4 --- /dev/null +++ b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dql/auto/select/InPruningQaTest.java @@ -0,0 +1,812 @@ +package com.alibaba.polardbx.qatest.dql.auto.select; + +import com.alibaba.polardbx.qatest.BaseTestCase; +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; +import org.apache.commons.lang.StringUtils; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.time.temporal.ChronoUnit; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Random; +import java.util.StringJoiner; + +/** + * @author fangwu + */ +public class InPruningQaTest extends BaseTestCase { + private static final String AUTO_DB_NAME = InPruningQaTest.class.getSimpleName() + "_auto"; + private static final String SHARD_DB_NAME = InPruningQaTest.class.getSimpleName() + "_shard"; + + private static final String PRUNING_INFO = "pruningInfo"; + private static final String PRUNING_INFO_PRE = "pruning detail:"; + private static int testInSize = 300; + private static final Random r = new Random(); + + @BeforeClass + public static void prepare() throws Exception { + try (Connection c = getPolardbxConnection0()) { + c.createStatement().execute("drop database if exists " + AUTO_DB_NAME); + c.createStatement().execute("drop database if exists " + SHARD_DB_NAME); + c.createStatement().execute("create database if not exists " + AUTO_DB_NAME + " mode=auto"); + c.createStatement().execute("create database if not exists " + SHARD_DB_NAME); + } + // set seed + long seed = System.currentTimeMillis(); + r.setSeed(seed); + System.out.println("random seed:" + seed); + } + + @AfterClass + public static void clean() throws Exception { + try (Connection c = getPolardbxConnection0()) { + c.createStatement().execute("drop database if exists " + AUTO_DB_NAME); + c.createStatement().execute("drop database if exists " + SHARD_DB_NAME); + } + } + + @Test + public void testShardSingleBroadcastWontPruning() throws Exception { + try (Connection c = getPolardbxConnection(SHARD_DB_NAME)) { + Statement stmt = c.createStatement(); + stmt.execute("set EXPLAIN_PRUNING_DETAIL=true"); + stmt.execute("CREATE TABLE single_tbl(\n" + + " id bigint not null auto_increment, \n" + + " name varchar(30), \n" + + " primary key(id)\n" + + ");"); + + String sql = "select * from single_tbl where id in (1,2,3)"; + String explain = getExplainResult(c, sql); + + System.out.println(explain); + assert !explain.contains(PRUNING_INFO); + + sql = "update single_tbl set name='a' where id in (1,2,3)"; + explain = getExplainResult(c, sql); + + System.out.println(explain); + assert !explain.contains(PRUNING_INFO); + + sql = "delete single_tbl where id in (1,2,3)"; + explain = getExplainResult(c, sql); + + System.out.println(explain); + assert !explain.contains(PRUNING_INFO); + + stmt.execute("CREATE TABLE brd_tbl(\n" + + " id bigint not null auto_increment, \n" + + " name varchar(30), \n" + + " primary key(id)\n" + + ") ENGINE=InnoDB DEFAULT CHARSET=utf8 BROADCAST;"); + + explain = getExplainResult(c, "select * from brd_tbl where id in (1,2,3)"); + System.out.println(explain); + assert !explain.contains(PRUNING_INFO); + + explain = getExplainResult(c, "update brd_tbl set name='a' where id in (1,2,3)"); + System.out.println(explain); + assert !explain.contains(PRUNING_INFO); + + explain = getExplainResult(c, "delete from brd_tbl where id in (1,2,3)"); + System.out.println(explain); + assert !explain.contains(PRUNING_INFO); + } + } + + @Test + public void testShardPruning() throws Exception { + try (Connection c = getPolardbxConnection(SHARD_DB_NAME)) { + Statement stmt = c.createStatement(); + stmt.execute("set EXPLAIN_PRUNING_DETAIL=true"); + stmt.execute("set IN_SUB_QUERY_THRESHOLD=10000"); + + // multi db by hash + stmt.execute("CREATE TABLE multi_db_single_tbl(\n" + + " id bigint not null auto_increment, \n" + + " name varchar(30), \n" + + " bid bigint not null, \n" + + " primary key(id)\n" + + ") dbpartition by hash(id);"); + + String sql = "select * from multi_db_single_tbl where id %s"; + testPruningCorrectness(c, sql, stmt); + + sql = "update multi_db_single_tbl set name='a' where id %s"; + testPruningCorrectness(c, sql, stmt); + + sql = "delete from multi_db_single_tbl where id %s"; + testPruningCorrectness(c, sql, stmt); + + sql = "update multi_db_single_tbl set id=1234 where id %s and (id%%7)=1"; + testPruningCorrectness(c, sql, stmt); + + sql = "delete from multi_db_single_tbl where id %s and (id%%7)=1"; + testPruningCorrectness(c, sql, stmt); + + sql = "select * from multi_db_single_tbl where name in ('a', 'b', 'name') and id %s"; + testPruningCorrectness(c, sql, stmt); + + sql = "update multi_db_single_tbl set name='a' where name in ('a', 'b', 'name') and id %s"; + testPruningCorrectness(c, sql, stmt); + + sql = "delete from multi_db_single_tbl where name in ('a', 'b', 'name') and id %s"; + testPruningCorrectness(c, sql, stmt); + + sql = "select * from multi_db_single_tbl where (name in ('a', 'b', 'name') and bid>1) and id %s"; + testPruningCorrectness(c, sql, stmt); + + sql = "update multi_db_single_tbl set name='a' where (name in ('a', 'b', 'name') and bid>1) and id %s"; + testPruningCorrectness(c, sql, stmt); + + sql = "delete from multi_db_single_tbl where (name in ('a', 'b', 'name') and bid>1) and id %s"; + testPruningCorrectness(c, sql, stmt); + + // multi db multi tbl by hash + stmt.execute("CREATE TABLE multi_db_multi_tbl(\n" + + " id bigint not null auto_increment, \n" + + " bid int, \n" + + " name varchar(30), \n" + + " primary key(id)\n" + + ") dbpartition by hash(id) tbpartition by hash(bid) tbpartitions 3;"); + + sql = "select * from multi_db_multi_tbl where id %s and bid %s"; + testPruningCorrectness(c, sql, stmt, 2, new String[] {"int", "int"}); + + sql = "update multi_db_multi_tbl set name='a' where id %s and bid %s"; + testPruningCorrectness(c, sql, stmt, 2, new String[] {"int", "int"}); + + sql = "delete from multi_db_multi_tbl where id %s and bid %s"; + testPruningCorrectness(c, sql, stmt, 2, new String[] {"int", "int"}); + + // hash + week + stmt.execute("CREATE TABLE user_log(\n" + + " userId int, \n" + + " name varchar(30), \n" + + " operation varchar(30), \n" + + " actionDate DATE\n" + + ") dbpartition by hash(userId) tbpartition by WEEK(actionDate) tbpartitions 7;"); + + sql = "select * from user_log where userId %s and actionDate %s"; + testPruningCorrectness(c, sql, stmt, 2, new String[] {"int", "date"}); + + sql = "update user_log set name='a' where userId %s and actionDate %s"; + testPruningCorrectness(c, sql, stmt, 2, new String[] {"int", "date"}); + + sql = "delete from user_log where userId %s and actionDate %s"; + testPruningCorrectness(c, sql, stmt, 2, new String[] {"int", "date"}); + + // hash + mm + stmt.execute("CREATE TABLE user_log2(\n" + + " userId int, \n" + + " name varchar(30), \n" + + " operation varchar(30), \n" + + " actionDate DATE\n" + + ") dbpartition by hash(userId) tbpartition by MM(actionDate) tbpartitions 12; "); + + sql = "select * from user_log2 where userId %s and actionDate %s"; + testPruningCorrectness(c, sql, stmt, 2, new String[] {"int", "date"}); + + sql = "update user_log2 set name='a' where userId %s and actionDate %s"; + testPruningCorrectness(c, sql, stmt, 2, new String[] {"int", "date"}); + + sql = "delete from user_log2 where userId %s and actionDate %s"; + testPruningCorrectness(c, sql, stmt, 2, new String[] {"int", "date"}); + + // hash + dd + stmt.execute("CREATE TABLE user_log3(\n" + + " userId int, \n" + + " name varchar(30), \n" + + " operation varchar(30), \n" + + " actionDate DATE\n" + + ") dbpartition by hash(userId) tbpartition by DD(actionDate) tbpartitions 31;"); + + sql = "select * from user_log3 where userId %s and actionDate %s"; + testPruningCorrectness(c, sql, stmt, 2, new String[] {"int", "date"}); + + sql = "update user_log3 set name='a' where userId %s and actionDate %s"; + testPruningCorrectness(c, sql, stmt, 2, new String[] {"int", "date"}); + + sql = "delete from user_log3 where userId %s and actionDate %s"; + testPruningCorrectness(c, sql, stmt, 2, new String[] {"int", "date"}); + + // hash + mmdd + stmt.execute("CREATE TABLE user_log4(\n" + + " userId int, \n" + + " name varchar(30), \n" + + " operation varchar(30), \n" + + " actionDate DATE\n" + + ") dbpartition by hash(userId) tbpartition by MMDD(actionDate) tbpartitions 64;"); + + sql = "select * from user_log4 where userId %s and actionDate %s"; + testPruningCorrectness(c, sql, stmt, 2, new String[] {"int", "date"}); + + sql = "update user_log4 set name='a' where userId %s and actionDate %s"; + testPruningCorrectness(c, sql, stmt, 2, new String[] {"int", "date"}); + + sql = "delete from user_log4 where userId %s and actionDate %s"; + testPruningCorrectness(c, sql, stmt, 2, new String[] {"int", "date"}); + + stmt.execute("CREATE TABLE user_log5(\n" + + " userId int, \n" + + " name varchar(30), \n" + + " operation varchar(30), \n" + + " actionDate DATE\n" + + ") dbpartition by hash(userId) tbpartition by MMDD(actionDate) tbpartitions 10"); + + sql = "select * from user_log5 where userId %s and actionDate %s"; + testPruningCorrectness(c, sql, stmt, 2, new String[] {"int", "date"}); + + sql = "update user_log5 set name='a' where userId %s and actionDate %s"; + testPruningCorrectness(c, sql, stmt, 2, new String[] {"int", "date"}); + + sql = "delete from user_log5 where userId %s and actionDate %s"; + testPruningCorrectness(c, sql, stmt, 2, new String[] {"int", "date"}); + } + } + + @Test + public void testAutoPruning() throws Exception { + try (Connection c = getPolardbxConnection(AUTO_DB_NAME)) { + Statement stmt = c.createStatement(); + stmt.execute("set EXPLAIN_PRUNING_DETAIL=true"); + stmt.execute("set IN_SUB_QUERY_THRESHOLD=10000"); + stmt.execute("set PARTITION_PRUNING_STEP_COUNT_LIMIT=10000"); + + stmt.execute("CREATE TABLE key_tbl_AutoPruning(\n" + + " id bigint not null auto_increment,\n" + + " bid int,\n" + + " name varchar(30),\n" + + " birthday datetime not null,\n" + + " primary key(id)\n" + + ")\n" + + "PARTITION BY KEY(name, id)\n" + + "PARTITIONS 8;"); + + String sql = "select * from key_tbl_AutoPruning where name %s and id %s"; + testPruningCorrectness(c, sql, stmt, 2, new String[] {"varchar", "int"}); + + sql = "update key_tbl_AutoPruning set name='a' where name %s and id %s"; + testPruningCorrectness(c, sql, stmt, 2, new String[] {"varchar", "int"}); + + sql = "delete from key_tbl_AutoPruning where name %s and id %s"; + testPruningCorrectness(c, sql, stmt, 2, new String[] {"varchar", "int"}); + + stmt.execute("CREATE TABLE hash_tbl_AutoPruning(\n" + + " id bigint not null auto_increment,\n" + + " bid int,\n" + + " name varchar(30),\n" + + " birthday datetime not null,\n" + + " primary key(id)\n" + + ")\n" + + "partition by hash(id)\n" + + "partitions 8;"); + + sql = "select * from hash_tbl_AutoPruning where name %s and id %s"; + testPruningCorrectness(c, sql, stmt, 2, new String[] {"varchar", "int"}); + + sql = "update hash_tbl_AutoPruning set name='a' where name %s and id %s"; + testPruningCorrectness(c, sql, stmt, 2, new String[] {"varchar", "int"}); + + sql = "delete from hash_tbl_AutoPruning where name %s and id %s"; + testPruningCorrectness(c, sql, stmt, 2, new String[] {"varchar", "int"}); + + stmt.execute("CREATE TABLE hash_tbl_todays_AutoPruning(\n" + + " id bigint not null auto_increment,\n" + + " bid int,\n" + + " name varchar(30),\n" + + " birthday datetime not null,\n" + + " primary key(id)\n" + + ")\n" + + "PARTITION BY HASH(TO_DAYS(birthday))\n" + + "PARTITIONS 8;"); + + sql = "select * from hash_tbl_todays_AutoPruning where birthday %s and id >100"; + testPruningCorrectness(c, sql, stmt, 1, new String[] {"date"}); + + sql = "update hash_tbl_todays_AutoPruning set name='a' where birthday %s and id >100"; + testPruningCorrectness(c, sql, stmt, 1, new String[] {"date"}); + + sql = "delete from hash_tbl_todays_AutoPruning where birthday %s and id >100"; + testPruningCorrectness(c, sql, stmt, 1, new String[] {"date"}); + + stmt.execute("CREATE TABLE hash_tbl_todays1_AutoPruning(\n" + + " id bigint not null auto_increment,\n" + + " bid int,\n" + + " name varchar(30),\n" + + " birthday datetime not null,\n" + + " primary key(id)\n" + + ")\n" + + "PARTITION BY HASH(TO_DAYS(birthday))\n" + + "PARTITIONS 8;"); + + sql = "select * from hash_tbl_todays1_AutoPruning where birthday %s and id >100"; + testPruningCorrectness(c, sql, stmt, 1, new String[] {"date"}); + + sql = "update hash_tbl_todays1_AutoPruning set name='a' where birthday %s and id >100"; + testPruningCorrectness(c, sql, stmt, 1, new String[] {"date"}); + + sql = "delete from hash_tbl_todays1_AutoPruning where birthday %s and id >100"; + testPruningCorrectness(c, sql, stmt, 1, new String[] {"date"}); + + stmt.execute("CREATE TABLE orders_todays_AutoPruning(\n" + + " id int,\n" + + " order_time datetime not null)\n" + + "PARTITION BY RANGE(to_days(order_time))\n" + + "(\n" + + " PARTITION p1 VALUES LESS THAN (to_days('2021-01-01')),\n" + + " PARTITION p2 VALUES LESS THAN (to_days('2021-04-01')),\n" + + " PARTITION p3 VALUES LESS THAN (to_days('2021-07-01')),\n" + + " PARTITION p4 VALUES LESS THAN (to_days('2021-10-01')),\n" + + " PARTITION p5 VALUES LESS THAN (to_days('2022-01-01')),\n" + + " PARTITION p6 VALUES LESS THAN (MAXVALUE)\n" + + ");"); + + sql = "select * from orders_todays_AutoPruning where order_time %s and id >100"; + testPruningCorrectness(c, sql, stmt, 1, new String[] {"date"}); + + sql = "update orders_todays_AutoPruning set id=1 where order_time %s and id >100"; + testPruningCorrectness(c, sql, stmt, 1, new String[] {"date"}); + + sql = "delete from orders_todays_AutoPruning where order_time %s and id >100"; + testPruningCorrectness(c, sql, stmt, 1, new String[] {"date"}); + + stmt.execute("CREATE TABLE t_orders_AutoPruning(\n" + + " id bigint not null auto_increment, \n" + + " order_id bigint, \n" + + " buyer_id bigint,\n" + + " order_time datetime not null,\n" + + " primary key(id)\n" + + ") \n" + + "PARTITION BY CO_HASH(\n" + + " \tRIGHT(`order_id`,6) /*取c1列的后6位字符*/,\n" + + " \tRIGHT(`buyer_id`,6) /*取c2列的后6位字符*/\n" + + ") \n" + + "PARTITIONS 8;"); + + sql = "select * from t_orders_AutoPruning where order_id %s and buyer_id %s and id >100"; + testPruningCorrectness(c, sql, stmt, 2, new String[] {"int", "int"}); + + sql = "update t_orders_AutoPruning set buyer_id=11 where order_id %s and buyer_id %s and id >100"; + testPruningCorrectness(c, sql, stmt, 2, new String[] {"int", "int"}); + + sql = "delete from t_orders_AutoPruning where order_id %s and buyer_id %s and id >100"; + testPruningCorrectness(c, sql, stmt, 2, new String[] {"int", "int"}); + } + } + + @Test + public void testInOr() throws SQLException { + try (Connection c = getPolardbxConnection(AUTO_DB_NAME)) { + Statement stmt = c.createStatement(); + stmt.execute("set EXPLAIN_PRUNING_DETAIL=true"); + stmt.execute("set IN_SUB_QUERY_THRESHOLD=10000"); + stmt.execute("CREATE TABLE IF NOT EXISTS key_tbl(\n" + + " id bigint not null auto_increment,\n" + + " bid int,\n" + + " name varchar(30),\n" + + " birthday datetime not null,\n" + + " primary key(id)\n" + + ")\n" + + "PARTITION BY KEY(name, id)\n" + + "PARTITIONS 8;"); + String sql = "select * from key_tbl where name in ('a', 'b', 'c') or id in (1,2,3)"; + String explain = getExplainResult(c, sql); + System.out.println(explain); + assert !explain.contains(PRUNING_INFO_PRE); + + sql = "select * from key_tbl where name in ('a', 'b', 'c') and id in (1,2,3)"; + explain = getExplainResult(c, sql); + System.out.println(explain); + assert explain.contains(PRUNING_INFO_PRE); + assert explain.contains("PruneRaw('a')"); + assert explain.contains("PruneRaw('b')"); + assert explain.contains("PruneRaw('c')"); + assert explain.contains("NonPruneRaw(1,2,3)"); + } + } + + @Test + public void testInNot() throws SQLException { + try (Connection c = getPolardbxConnection(AUTO_DB_NAME)) { + Statement stmt = c.createStatement(); + stmt.execute("set EXPLAIN_PRUNING_DETAIL=true"); + stmt.execute("set IN_SUB_QUERY_THRESHOLD=10000"); + stmt.execute("CREATE TABLE key_tbl_InNot(\n" + + " id bigint not null auto_increment,\n" + + " bid int,\n" + + " name varchar(30),\n" + + " birthday datetime not null,\n" + + " primary key(id)\n" + + ")\n" + + "PARTITION BY KEY(name, id)\n" + + "PARTITIONS 8;"); + String sql = "select * from key_tbl_InNot where !name in ('a', 'b', 'c')"; + String explain = getExplainResult(c, sql); + System.out.println(explain); + assert !explain.contains(PRUNING_INFO_PRE); + + sql = "select * from key_tbl_InNot where !(name in ('a', 'b', 'c') or id in (1,2,3))"; + explain = getExplainResult(c, sql); + System.out.println(explain); + assert !explain.contains(PRUNING_INFO_PRE); + + sql = "select * from key_tbl_InNot where !(name in ('a', 'b', 'c') and id in (1,2,3))"; + explain = getExplainResult(c, sql); + System.out.println(explain); + assert !explain.contains(PRUNING_INFO_PRE); + } + } + + @Test + public void testInFunction() throws SQLException { + try (Connection c = getPolardbxConnection(AUTO_DB_NAME)) { + Statement stmt = c.createStatement(); + stmt.execute("set EXPLAIN_PRUNING_DETAIL=true"); + stmt.execute("set IN_SUB_QUERY_THRESHOLD=10000"); + stmt.execute("CREATE TABLE IF NOT EXISTS key_tbl_InFunction(\n" + + " id bigint not null auto_increment,\n" + + " bid int,\n" + + " name varchar(30),\n" + + " birthday datetime not null,\n" + + " primary key(id)\n" + + ")\n" + + "PARTITION BY KEY(id)\n" + + "PARTITIONS 8;"); + String sql = "select * from key_tbl_InFunction where id in (1,2,3,4,6,7)"; + String explain = getExplainResult(c, sql); + System.out.println(explain); + assert explain.contains(PRUNING_INFO_PRE); + + sql = "select * from key_tbl_InFunction where (id+1) in (1,2,3,4,6,7)"; + explain = getExplainResult(c, sql); + System.out.println(explain); + assert !explain.contains(PRUNING_INFO_PRE); + } + } + + @Test + public void testInMultiCols() throws SQLException { + try (Connection c = getPolardbxConnection(AUTO_DB_NAME)) { + Statement stmt = c.createStatement(); + stmt.execute("set EXPLAIN_PRUNING_DETAIL=true"); + stmt.execute("set IN_SUB_QUERY_THRESHOLD=10000"); + stmt.execute("CREATE TABLE IF NOT EXISTS key_tbl_MultiCols(\n" + + " id bigint not null auto_increment,\n" + + " bid int,\n" + + " name varchar(30),\n" + + " birthday datetime not null,\n" + + " primary key(id)\n" + + ")\n" + + "PARTITION BY hash(id, name)\n" + + "PARTITIONS 8;"); + String sql = "select * from key_tbl_MultiCols where id in (1,2,3,4,6,7) and name in ('b', 'c', 'd')"; + String explain = getExplainResult(c, sql); + System.out.println(explain); + assert explain.contains(PRUNING_INFO_PRE); + + sql = "select * from key_tbl_MultiCols where (id, name) in ((1, 'c'),(2,'3'),(4,'d'))"; + explain = getExplainResult(c, sql); + System.out.println(explain); + int endIndex = explain.indexOf("HitCache") - 3; + int startIndex = explain.indexOf(PRUNING_INFO_PRE); + Map> check1 = decodePruningInfo(explain.substring(startIndex, endIndex)); + + sql = "select * from key_tbl_MultiCols where (id,bid,name) in ((1, 5, 'c'),(2,2,'3'),(4,99,'d'))"; + explain = getExplainResult(c, sql); + System.out.println(explain); + assert explain.contains(PRUNING_INFO_PRE); + endIndex = explain.indexOf("HitCache") - 3; + startIndex = explain.indexOf(PRUNING_INFO_PRE); + Map> check2 = decodePruningInfo(explain.substring(startIndex, endIndex)); + + for (Map.Entry> entry : check1.entrySet()) { + List valuesList = entry.getValue(); + List valuesList1 = check2.get(entry.getKey()); + for (int i = 0; i < valuesList.size(); i++) { + String[] arr = valuesList.get(i); + String[] arr1 = valuesList1.get(i); + assert arr.length == 2; + assert arr1.length == 3; + assert arr[0].equals(arr1[0]); + assert arr[1].equals(arr1[2]); + } + } + + sql = "select * from key_tbl_MultiCols where (id,bid,name) in ((1, 5, 'c'),(2,2,'3'),(4,99,'d')) and" + + " (name,birthday) in (('a', '2023-01-01'), ('b', '2023-01-02'))"; + explain = getExplainResult(c, sql); + System.out.println(explain); + assert !explain.contains(PRUNING_INFO_PRE); + + sql = "select * from key_tbl_MultiCols where (id,bid,name) in ((1, 5, 'c'),(2,2,'3'),(4,99,'d')) and" + + " (name,birthday) in (('c', '2023-01-01'), ('3', '2023-01-02'))"; + explain = getExplainResult(c, sql); + System.out.println(explain); + assert explain.contains(PRUNING_INFO_PRE); + } + } + + @Test + public void testInMultiTbls() throws SQLException { + try (Connection c = getPolardbxConnection(AUTO_DB_NAME)) { + Statement stmt = c.createStatement(); + stmt.execute("set EXPLAIN_PRUNING_DETAIL=true"); + stmt.execute("set IN_SUB_QUERY_THRESHOLD=10000"); + stmt.execute("CREATE TABLE IF NOT EXISTS key_tbl_MultiTbls1(\n" + + " id bigint not null auto_increment,\n" + + " bid int,\n" + + " name varchar(30),\n" + + " birthday datetime not null,\n" + + " primary key(id)\n" + + ")\n" + + "PARTITION BY key(id)\n" + + "PARTITIONS 8;"); + + stmt.execute("CREATE TABLE IF NOT EXISTS key_tbl_MultiTbls2(\n" + + " id bigint not null auto_increment,\n" + + " bid int,\n" + + " name varchar(30),\n" + + " birthday datetime not null,\n" + + " primary key(id)\n" + + ")\n" + + "PARTITION BY key(id)\n" + + "PARTITIONS 8;"); + + String sql = "select * from key_tbl_MultiTbls1 a join key_tbl_MultiTbls2 b on a.id = b.id" + + " where a.id in (1,2,3,4,6,7,8,9,10,11,12)"; + String explain = getExplainResult(c, sql); + System.out.println(explain); + assert explain.contains(PRUNING_INFO_PRE); + assert explain.contains("pruning size:77"); + + sql = "select * from key_tbl_MultiTbls1 a join key_tbl_MultiTbls2 b on a.id = b.id" + + " where b.id in (1,2,3,4,6,7,8,9,10,11,12)"; + explain = getExplainResult(c, sql); + System.out.println(explain); + assert explain.contains(PRUNING_INFO_PRE); + assert explain.contains("pruning size:77"); + + sql = "select * from key_tbl_MultiTbls1 a join key_tbl_MultiTbls2 b on a.id = b.id" + + " where a.id in (1,2,3,4,6,7,10,12) and b.id in (7,8,9,10,11,12) "; + explain = getExplainResult(c, sql); + System.out.println(explain); + assert explain.contains(PRUNING_INFO_PRE); + assert explain.contains("pruning size:22"); + + sql = "select * from key_tbl_MultiTbls1 a join key_tbl_MultiTbls2 b on a.id = b.id" + + " where a.id in (1,2,3,4,6,7,10,12) and (b.id = 7 or b.id=10) "; + explain = getExplainResult(c, sql); + System.out.println(explain); + assert explain.contains(PRUNING_INFO_PRE); + assert explain.contains("pruning size:14"); + } + } + + @Test + public void testInGsi() throws SQLException { + try (Connection c = getPolardbxConnection(AUTO_DB_NAME)) { + Statement stmt = c.createStatement(); + stmt.execute("set EXPLAIN_PRUNING_DETAIL=true"); + stmt.execute("set IN_SUB_QUERY_THRESHOLD=10000"); + + stmt.execute("CREATE PARTITION TABLE `auto_part_tbl_gsi` (\n" + + " `id` bigint(20) NOT NULL AUTO_INCREMENT,\n" + + " `bid` int(11) DEFAULT NULL,\n" + + " `name` varchar(30) DEFAULT NULL,\n" + + " PRIMARY KEY (`id`),\n" + + " GLOBAL INDEX /* idx_name_$a870 */ `idx_name` (bid, `name`) PARTITION BY KEY (bid) PARTITIONS 16,\n" + + " LOCAL KEY `_local_idx_name` (`name`)\n" + + ") ENGINE = InnoDB DEFAULT CHARSET = utf8\n" + + "PARTITION BY KEY(`id`)\n" + + "PARTITIONS 16"); + + String sql = "select * from auto_part_tbl_gsi force index(primary) where bid in (1,2,3,4,6,7,8,9,10,11,12)"; + String explain = getExplainResult(c, sql); + System.out.println(explain); + assert !explain.contains(PRUNING_INFO_PRE); + + sql = "select * from auto_part_tbl_gsi force index(idx_name) where bid in (1,2,3,4,6,7,8,9,10,11,12)"; + explain = getExplainResult(c, sql); + System.out.println(explain); + assert explain.contains(PRUNING_INFO_PRE); + } + } + + @Test + public void testDecode() { + String pruningInfo = + "pruning detail:(TEST_AUTO_P00001_GROUP, [hash_tbl_tQlx_00003])->(PruneRaw(4));" + + "(TEST_AUTO_P00001_GROUP, [hash_tbl_tQlx_00005])->(PruneRaw(5,8));" + + "(TEST_AUTO_P00000_GROUP, [hash_tbl_tQlx_00004])->(PruneRaw(6));" + + "(TEST_AUTO_P00001_GROUP, [hash_tbl_tQlx_00001])->(PruneRaw(7))"; + Map> map = decodePruningInfo(pruningInfo); + String[] arr = map.get("test_auto_p00001_group.hash_tbl_tqlx_00003").get(0); + assert arr.length == 1 && arr[0].equals("4"); + + arr = map.get("test_auto_p00001_group.hash_tbl_tqlx_00005").get(0); + assert arr.length == 2 && arr[0].equals("5") && arr[1].equals("8"); + + arr = map.get("test_auto_p00000_group.hash_tbl_tqlx_00004").get(0); + assert arr.length == 1 && arr[0].equals("6"); + + arr = map.get("test_auto_p00001_group.hash_tbl_tqlx_00001").get(0); + assert arr.length == 1 && arr[0].equals("7"); + } + + private void testPruningCorrectness(Connection c, String sql, Statement stmt) throws SQLException { + testPruningCorrectness(c, sql, stmt, 1, new String[] {"int", "int"}); + } + + /** + * build sql params by type and set them into to sql. + * decode explain result and get pruning info + * check pruning info by explain sharding each in value and check the sharding group and physical table + * + * @param c test connection + * @param sql test sql + * @param stmt test statement + * @param inSize in size + * @param types in params types + */ + private void testPruningCorrectness(Connection c, String sql, Statement stmt, int inSize, String[] types) + throws SQLException { + String[] inParams = new String[inSize]; + for (int i = 0; i < inSize; i++) { + if (types[i].equals("int")) { + List inList = randomIntList(testInSize); + StringJoiner sj = new StringJoiner(", "); + inList.forEach(j -> sj.add(String.valueOf(j))); + inParams[i] = "in (" + sj + ")"; + } else if (types[i].equals("date")) { + List dates = Lists.newArrayList(); + for (int j = 0; j < testInSize; j++) { + dates.add(randomDate()); + } + StringJoiner sj = new StringJoiner("','"); + dates.forEach(j -> sj.add(j.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")))); + inParams[i] = "in ('" + sj + "')"; + } else if (types[i].equals("varchar")) { + List strings = Lists.newArrayList(); + for (int j = 0; j < testInSize; j++) { + strings.add(randomString(10)); + } + StringJoiner sj = new StringJoiner("','"); + strings.forEach(j -> sj.add(j)); + inParams[i] = "in ('" + sj + "')"; + } else { + throw new RuntimeException("unknown type: " + types[i]); + } + } + + String explain = getExplainResult(c, String.format(sql, inParams)); + int endIndex = explain.indexOf("HitCache") - 3; + int startIndex = explain.indexOf(PRUNING_INFO_PRE); + Map> explainMap = decodePruningInfo(explain.substring(startIndex, endIndex)); + + for (Map.Entry> entry : explainMap.entrySet()) { + // check each shard + String groupTbl = entry.getKey(); + List valuesList = entry.getValue(); + int checkSize = 1; + for (String[] arr : valuesList) { + checkSize *= arr.length; + } + + int finalCheckSize = checkSize; + int finalCheckSize1 = checkSize; + Iterator it = new Iterator() { + int cur = 0; + + @Override + public boolean hasNext() { + return cur >= finalCheckSize; + } + + @Override + public int[] next() { + if (!hasNext()) { + throw new IllegalStateException("No more elements in the iterator."); + } + int[] rs = new int[valuesList.size()]; + int totalSize = finalCheckSize1; + int currentIndex = cur; + for (int dim = 0; dim < valuesList.size(); dim++) { + String[] args = valuesList.get(dim); + int rawStringSize = args.length; + int otherSize = totalSize / rawStringSize; + int curIndex = currentIndex / otherSize; + currentIndex = currentIndex % otherSize; + totalSize = otherSize; + rs[dim] = curIndex; + } + cur++; + return rs; + } + }; + while (it.hasNext()) { + int[] next = it.next(); + String[] vals = new String[next.length]; + for (int i = 0; i < next.length; i++) { + vals[i] = "=" + valuesList.get(i)[next[i]]; + } + ResultSet resultSet = stmt.executeQuery("explain sharding " + String.format(sql, vals)); + resultSet.next(); + assert resultSet.getString("SHARDING").equalsIgnoreCase(groupTbl); + resultSet.close(); + } + + } + } + + private LocalDate randomDate() { + LocalDate startDate = LocalDate.of(2000, 1, 1); + LocalDate endDate = LocalDate.of(2022, 12, 31); + long days = startDate.until(endDate, ChronoUnit.DAYS); + long randomDays = r.nextInt((int) days) + 1; + LocalDate randomDate = startDate.plusDays(randomDays); + return randomDate; + } + + private List randomIntList(int inSize) { + List integers = Lists.newArrayList(); + for (int i = 0; i < inSize; i++) { + integers.add(r.nextInt(10000)); + } + return integers; + } + + /** + * pruning detail: + * (TEST_AUTO_P00001_GROUP, [hash_tbl_tQlx_00003])->(PruneRaw(4)); + * (TEST_AUTO_P00001_GROUP, [hash_tbl_tQlx_00005])->(PruneRaw(5,8)); + * (TEST_AUTO_P00000_GROUP, [hash_tbl_tQlx_00004])->(PruneRaw(6)); + * (TEST_AUTO_P00001_GROUP, [hash_tbl_tQlx_00001])->(PruneRaw(7)) + */ + private static Map> decodePruningInfo(String pruningInfo) { + Map> map = Maps.newHashMap(); + String detail = + pruningInfo.substring(pruningInfo.indexOf(PRUNING_INFO_PRE) + PRUNING_INFO_PRE.length()).toLowerCase(); + for (String line : detail.split(";")) { + String groupAndTbl = line.split("->")[0]; + String pruning = line.split("->")[1]; + + groupAndTbl = + groupAndTbl.replaceAll("\\(", "").replaceAll("\\)", "").replaceAll(" ", "").replaceAll("\\[", "") + .replaceAll("\\]", "").replaceAll(",", "."); + pruning = pruning.substring(1, pruning.length() - 1); + String[] pruningArr = pruning.split("pruneraw"); + List pruningList = Lists.newArrayList(); + for (String p : pruningArr) { + if (StringUtils.isEmpty(p)) { + continue; + } + p = p.replaceAll("\\(", "").replaceAll("\\)", "").replaceAll(" ", "").replaceAll("pruneraw", ""); + String[] arr = p.split(","); + pruningList.add(arr); + } + + map.put(groupAndTbl, pruningList); + } + return map; + } + + private String randomString(int length) { + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < length; i++) { + char ch = (char) (r.nextInt('x' - 'a') + 'a'); + sb.append(ch); + } + return sb.toString(); + } +} diff --git a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dql/auto/select/SelectInPruneTest.java b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dql/auto/select/SelectInPruneTest.java index e33a0f344..42fd511b8 100644 --- a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dql/auto/select/SelectInPruneTest.java +++ b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dql/auto/select/SelectInPruneTest.java @@ -477,7 +477,7 @@ private boolean hasPruneString(String row) { @Test public void testIfPruneWork() { int count = 0; - String rex = "[\\s\\S]*isDynamicParam[\\s\\S]*"; + String rex = "[\\s\\S]*pruningInfo[\\s\\S]*"; for (String[] row : dynamicInSqlTest) { System.out.println(count++); if (row[1].equalsIgnoreCase("true")) { diff --git a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dql/auto/select/SelectOrderbyTypeTest.java b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dql/auto/select/SelectOrderbyTypeTest.java index cc93adcdd..63c23f7ad 100644 --- a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dql/auto/select/SelectOrderbyTypeTest.java +++ b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dql/auto/select/SelectOrderbyTypeTest.java @@ -17,14 +17,20 @@ package com.alibaba.polardbx.qatest.dql.auto.select; import com.alibaba.polardbx.qatest.AutoReadBaseTestCase; +import com.alibaba.polardbx.qatest.data.ColumnDataRandomGenerateRule; import com.alibaba.polardbx.qatest.data.ExecuteTableSelect; import com.alibaba.polardbx.qatest.util.JdbcUtil; +import groovy.sql.Sql; +import org.apache.calcite.sql.SqlIdentifier; import org.junit.Ignore; import org.junit.Test; import org.junit.runners.Parameterized.Parameters; +import java.sql.Connection; import java.util.Arrays; import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; import static com.alibaba.polardbx.qatest.validator.DataValidator.selectOrderAssert; import static com.alibaba.polardbx.qatest.validator.DataValidator.selectOrderByNotPrimaryKeyAssert; @@ -33,18 +39,34 @@ * orderby各种类型的测试 */ - public class SelectOrderbyTypeTest extends AutoReadBaseTestCase { String normaltblOrderTableName; String orderListParam; - @Parameters(name = "{index}:table={0}:orderby:{1}") - public static List runTable() { - return Arrays.asList(ExecuteTableSelect.selectBaseOneTableOrderbyList()); + @Parameters(name = "{index}:table={0}:orderby:{1}:pushSort={2}") + public static List runTable() { + String[][] tableNameOrderByList = ExecuteTableSelect.selectBaseOneTableOrderbyList(); + List paramList = + Arrays.stream(tableNameOrderByList) + .map(row -> Stream.concat(Arrays.stream(row), Stream.of(true)).toArray(Object[]::new)) + .collect(Collectors.toList()); + paramList.addAll( + Arrays.stream(tableNameOrderByList) + .map(row -> Stream.concat(Arrays.stream(row), Stream.of(false)).toArray(Object[]::new)) + .collect(Collectors.toList()) + ); + return paramList; } - public SelectOrderbyTypeTest(String tableName, String orderList) { + String hintValue; + + public SelectOrderbyTypeTest(String tableName, String orderList, boolean pushSort) { + if (pushSort) { + hintValue = "/*+TDDL:cmd_extra(ENABLE_CBO=true, ENABLE_PUSH_SORT=true)*/"; + } else { + hintValue = "/*+TDDL:cmd_extra(ENABLE_CBO=true, ENABLE_PUSH_SORT=false)*/"; + } normaltblOrderTableName = tableName; orderListParam = orderList; } @@ -111,8 +133,6 @@ public void selectBlobFieldWithTabTest() throws Exception { selectOrderByNotPrimaryKeyAssert(sql, null, mysqlConnection, tddlConnection, orderListParam); } - static final String hintValue = "/*+TDDL:cmd_extra(ENABLE_CBO=true)*/"; - @Test public void mergeSortTest() throws Exception { String sql = @@ -309,4 +329,46 @@ public void memSortTest() throws Exception { orderListParam); selectOrderByNotPrimaryKeyAssert(sql, null, mysqlConnection, tddlConnection, orderListParam); } -} + + public void dropTableIfExists(String tableName, Connection connection) { + String sql = "drop table if exists " + tableName; + JdbcUtil.executeUpdateSuccess(connection, sql); + } + + @Test + public void selectOrderByVarbinaryTest() { + ColumnDataRandomGenerateRule columnDataRandomGenerateRule = new ColumnDataRandomGenerateRule(); + String binaryTestTable = "binary_test"; + dropTableIfExists(binaryTestTable, mysqlConnection); + dropTableIfExists(binaryTestTable, tddlConnection); + String sql1 = "CREATE TABLE " + SqlIdentifier.surroundWithBacktick(binaryTestTable) + "(\n" + + " `a` binary(255), \n" + + " `b` varbinary(255) \n" + + ") ENGINE = InnoDB DEFAULT CHARSET=utf8;"; + String sql = "CREATE TABLE " + SqlIdentifier.surroundWithBacktick(binaryTestTable) + "(\n" + + " `a` binary(255), \n" + + " `b` varbinary(255) \n" + + ") ENGINE = InnoDB DEFAULT CHARSET=utf8 "; + if (usingNewPartDb()) { + sql += " partition BY hash(`a`);"; + } else { + sql += " dbpartition BY hash(`a`);"; + } + + JdbcUtil.executeUpdateSuccess(mysqlConnection, sql1); + JdbcUtil.executeUpdateSuccess(tddlConnection, sql); + for (int i = 0; i < ColumnDataRandomGenerateRule.charS.length; i++) { + sql = "insert into " + SqlIdentifier.surroundWithBacktick(binaryTestTable) + " values('" + + columnDataRandomGenerateRule.binary_testRandom() + "','" + + columnDataRandomGenerateRule.var_binary_testRandom() + "');"; + JdbcUtil.executeUpdateSuccess(mysqlConnection, sql); + JdbcUtil.executeUpdateSuccess(tddlConnection, sql); + String querySql1 = + hintValue + "SELECT a, b FROM " + SqlIdentifier.surroundWithBacktick(binaryTestTable) + " ORDER BY a"; + selectOrderAssert(querySql1, null, mysqlConnection, tddlConnection); + String querySql2 = + hintValue + "SELECT a, b FROM " + SqlIdentifier.surroundWithBacktick(binaryTestTable) + " ORDER BY b"; + selectOrderAssert(querySql2, null, mysqlConnection, tddlConnection); + } + } +} \ No newline at end of file diff --git a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dql/sharding/bloomfilter/BloomFilterUdfTest.java b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dql/sharding/bloomfilter/BloomFilterUdfTest.java index 599fc0e53..a436faec3 100644 --- a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dql/sharding/bloomfilter/BloomFilterUdfTest.java +++ b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dql/sharding/bloomfilter/BloomFilterUdfTest.java @@ -212,11 +212,11 @@ public void testBloomFilterNonExists() throws Exception { double errorRate = ((double) errorCount / result.size()); double expectedRate = EXPECTED_ERROR_RATE; if (COLUMN_HELPERS[i].needAmplifyErrorRate()) { - // 0.03 -> 0.05 - expectedRate *= 1.7; + // 0.03 -> 0.054 + expectedRate *= 1.8; } else { - // 0.03 -> 0.039 - expectedRate *= 1.3; + // 0.03 -> 0.045 + expectedRate *= 1.5; } if (errorRate > expectedRate) { errorMsgs.add(String.format("%s error rate higher [%f] than expected [%f]", diff --git a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dql/sharding/enums/EnumBlockShuffleTest.java b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dql/sharding/enums/EnumBlockShuffleTest.java index cbf8618c4..ddd20eade 100644 --- a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dql/sharding/enums/EnumBlockShuffleTest.java +++ b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dql/sharding/enums/EnumBlockShuffleTest.java @@ -14,31 +14,49 @@ public class EnumBlockShuffleTest { public void hashCodeUseEnumIndex() { // prepare block Map enumValues = new HashMap<>(); - enumValues.put("Aa", 0); - enumValues.put("Ab", 1); + enumValues.put("Aa", 1); + enumValues.put("Ab", 2); char[] data = new char[] {'A', 'a', 'A', 'b', 'A', 'a'}; int[] offset = new int[] {2, 4, 6}; EnumBlock block = new EnumBlock(0, 3, null, offset, data, enumValues); - Assert.assertTrue(block.hashCodeUseXxhash(0) == XxhashUtils.finalShuffle(0)); - Assert.assertTrue(block.hashCodeUseXxhash(1) == XxhashUtils.finalShuffle(1)); - Assert.assertTrue(block.hashCodeUseXxhash(2) == XxhashUtils.finalShuffle(0)); + Assert.assertTrue(block.hashCodeUseXxhash(0) == XxhashUtils.finalShuffle(1)); + Assert.assertTrue(block.hashCodeUseXxhash(1) == XxhashUtils.finalShuffle(2)); + Assert.assertTrue(block.hashCodeUseXxhash(2) == XxhashUtils.finalShuffle(1)); } @Test public void testWithNull() { // prepare block Map enumValues = new HashMap<>(); - enumValues.put("Aa", 0); - enumValues.put("Ab", 1); + enumValues.put("Aa", 1); + enumValues.put("Ab", 2); char[] data = new char[] {'A', 'a', 'A', 'b', 'A', 'a'}; int[] offset = new int[] {2, 2, 4, 6}; boolean[] valueIsNull = new boolean[] {false, true, false, false}; EnumBlock block = new EnumBlock(0, 4, valueIsNull, offset, data, enumValues); - Assert.assertTrue(block.hashCodeUseXxhash(0) == XxhashUtils.finalShuffle(0)); + Assert.assertTrue(block.hashCodeUseXxhash(0) == XxhashUtils.finalShuffle(1)); Assert.assertTrue(block.hashCodeUseXxhash(1) == Block.NULL_HASH_CODE); - Assert.assertTrue(block.hashCodeUseXxhash(2) == XxhashUtils.finalShuffle(1)); - Assert.assertTrue(block.hashCodeUseXxhash(3) == XxhashUtils.finalShuffle(0)); + Assert.assertTrue(block.hashCodeUseXxhash(2) == XxhashUtils.finalShuffle(2)); + Assert.assertTrue(block.hashCodeUseXxhash(3) == XxhashUtils.finalShuffle(1)); + } + + @Test + public void testWithInvalidValue() { + Map enumValues = new HashMap<>(); + enumValues.put("Aa", 1); + enumValues.put("Ab", 2); + char[] data = new char[] {'A', 'a', 'A', 'b', 'A', 'a', 'c'}; + int[] offset = new int[] {2, 2, 4, 6, 7, 7}; + boolean[] valueIsNull = new boolean[] {false, true, false, false, false, false}; + EnumBlock block = new EnumBlock(0, 8, valueIsNull, offset, data, enumValues); + + Assert.assertTrue(block.hashCodeUseXxhash(0) == XxhashUtils.finalShuffle(1)); + Assert.assertTrue(block.hashCodeUseXxhash(1) == Block.NULL_HASH_CODE); + Assert.assertTrue(block.hashCodeUseXxhash(2) == XxhashUtils.finalShuffle(2)); + Assert.assertTrue(block.hashCodeUseXxhash(3) == XxhashUtils.finalShuffle(1)); + Assert.assertTrue(block.hashCodeUseXxhash(4) == XxhashUtils.finalShuffle(0)); + Assert.assertTrue(block.hashCodeUseXxhash(5) == XxhashUtils.finalShuffle(0)); } } diff --git a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dql/sharding/select/SelectWithLimitSpecialTest.java b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dql/sharding/select/SelectWithLimitSpecialTest.java new file mode 100644 index 000000000..80aaabb70 --- /dev/null +++ b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dql/sharding/select/SelectWithLimitSpecialTest.java @@ -0,0 +1,122 @@ +package com.alibaba.polardbx.qatest.dql.sharding.select; + +import com.alibaba.polardbx.qatest.ReadBaseTestCase; +import com.alibaba.polardbx.qatest.data.ExecuteTableSelect; +import com.alibaba.polardbx.qatest.util.JdbcUtil; +import com.google.common.truth.Truth; +import org.junit.Test; +import org.junit.runners.Parameterized.Parameters; + +import java.math.BigInteger; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.Arrays; +import java.util.List; + +import static com.alibaba.polardbx.qatest.validator.DataValidator.selectContentSameAssert; +import static com.google.common.truth.Truth.assertWithMessage; + +public class SelectWithLimitSpecialTest extends ReadBaseTestCase { + + @Parameters(name = "{index}:table={0}") + public static List prepare() { + return Arrays.asList(ExecuteTableSelect.selectBaseOneTable()); + } + + public SelectWithLimitSpecialTest(String baseOneTableName) { + this.baseOneTableName = baseOneTableName; + } + + BigInteger[] bigIntegers = { + new BigInteger("-18446744073709551615"), new BigInteger("18446744073709551615"), + new BigInteger("0"), new BigInteger("-1"), new BigInteger("10")}; + + @Test + public void singleTest() throws Exception { + if (!useXproto(tddlConnection)) { + return; + } + JdbcUtil.executeUpdateSuccess(tddlConnection, "analyze table " + baseOneTableName); + String sqlTemp = "select * from " + baseOneTableName + " order by pk limit %s"; + for (BigInteger bigInteger : bigIntegers) { + String sql = String.format(sqlTemp, bigInteger.toString()); + if (bigInteger.signum() < 0) { + if (multi(baseOneTableName)) { + JdbcUtil.executeFailed(tddlConnection, sql, "optimize error by get rex"); + } else { + JdbcUtil.executeFailed(tddlConnection, sql, "You have an error in your SQL syntax"); + } + } + if (bigInteger.signum() == 0) { + if (multi(baseOneTableName)) { + JdbcUtil.executeQuery("trace " + sql, tddlConnection); + emptyTrace(); + } else { + JdbcUtil.executeQuery("trace " + sql, tddlConnection); + traceParameter("0"); + } + } + if (bigInteger.signum() > 0) { + selectContentSameAssert(sql, null, mysqlConnection, tddlConnection, true); + } + } + } + + @Test + public void doubleTest() throws Exception { + if (!useXproto(tddlConnection)) { + return; + } + JdbcUtil.executeUpdateSuccess(tddlConnection, "analyze table " + baseOneTableName); + String sqlTemp = "select * from " + baseOneTableName + " order by pk limit %s,%s"; + for (BigInteger bigInteger1 : bigIntegers) { + for (BigInteger bigInteger2 : bigIntegers) { + String sql = String.format(sqlTemp, bigInteger1.toString(), bigInteger2.toString()); + if (bigInteger1.signum() < 0 || bigInteger2.signum() < 0) { + if (multi(baseOneTableName)) { + JdbcUtil.executeFailed(tddlConnection, sql, "optimize error by get rex"); + } else { + JdbcUtil.executeFailed(tddlConnection, sql, "You have an error in your SQL syntax"); + } + continue; + } + if (bigInteger2.signum() == 0) { + if (multi(baseOneTableName)) { + JdbcUtil.executeQuery("trace " + sql, tddlConnection); + emptyTrace(); + } else { + JdbcUtil.executeQuery("trace " + sql, tddlConnection); + traceParameter("0"); + } + continue; + } + selectContentSameAssert(sql, null, mysqlConnection, tddlConnection, true); + } + } + } + + private void traceParameter(String para) throws SQLException { + String sql = "show trace"; + try (ResultSet rs = JdbcUtil.executeQuery(sql, tddlConnection)) { + if (rs.next()) { + String params = rs.getString("PARAMS"); + Truth.assertThat(params).contains(para); + return; + } + } + assertWithMessage("show trace fails to find " + para).fail(); + } + + private void emptyTrace() { + String sql = "show trace"; + Truth.assertThat(JdbcUtil.getAllResult(JdbcUtil.executeQuery(sql, tddlConnection))).isEmpty(); + } + + private boolean multi(String tableName) { + return tableName.contains("multi"); + } + + private boolean broadcast(String tableName) { + return tableName.contains("broadcast"); + } +} diff --git a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dql/sharding/statistic/StatisticTest.java b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dql/sharding/statistic/StatisticTest.java deleted file mode 100644 index 75da4dbce..000000000 --- a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/dql/sharding/statistic/StatisticTest.java +++ /dev/null @@ -1,109 +0,0 @@ -package com.alibaba.polardbx.qatest.dql.sharding.statistic; - -import com.alibaba.polardbx.qatest.BaseTestCase; -import org.jetbrains.annotations.Nullable; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.sql.Connection; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.sql.Statement; - -/** - * @author fangwu - */ -public class StatisticTest extends BaseTestCase { - private static final String db = StatisticTest.class.getSimpleName(); - private static final String table = StatisticTest.class.getSimpleName(); - private static final String createTbl = "CREATE TABLE `%s` (\n" - + "`id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键',\n" - + "`creator` varchar(64) NOT NULL DEFAULT '' ,\n" - + "`extend` varchar(128) NOT NULL DEFAULT '' ,\n" - + "PRIMARY KEY (`id`) " - + ") ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 "; - - private static final String testSqlTemp = "baseline add sql /*TDDL:a()*/ select * from %s "; - - @BeforeClass - public static void buildCatalog() throws SQLException { - try (Connection c = getPolardbxConnection0()) { - c.createStatement().execute("drop database if exists " + db); - c.createStatement().execute("create database if not exists " + db + " mode='auto'"); - c.createStatement().execute("use " + db); - c.createStatement().execute(String.format(createTbl, table)); - } - } - - @AfterClass - public static void clean() throws SQLException { - try (Connection c = getPolardbxConnection0()) { - c.createStatement().execute("drop database if exists " + db); - } - } - - @Test - public void test() throws SQLException, InterruptedException { - testNDVWithEnableHll(); - testNDVWithOutliersValue(); - } - - /** - * test NDV source controlled by enable_hll - */ - public void testNDVWithEnableHll() throws SQLException, InterruptedException { - try (Connection c = getPolardbxConnection(db); - Statement stmt = c.createStatement();) { - // analyze table - stmt.execute("/*TDDL:ENABLE_HLL=true*/ analyze table " + table); - - // check ndv source from hll - String statisticTraceInfo = - getTraceInfoMap(stmt, String.format("select * from %s where creator='json'", table)); - assert statisticTraceInfo != null; - assert statisticTraceInfo.contains("HLL_SKETCH"); - } - } - - /** - * test NDV source controlled by enable_hll - */ - public void testNDVWithOutliersValue() throws SQLException, InterruptedException { - try (Connection c = getPolardbxConnection(db); - Statement stmt = c.createStatement();) { - // truncate table first - stmt.execute("truncate table " + table); - // analyze table - stmt.execute("/*TDDL:ENABLE_HLL=true*/ analyze table " + table); - - // check ndv source from hll - String statisticTraceInfo = - getTraceInfoMap(stmt, String.format("select * from %s where creator='john'", table)); - assert statisticTraceInfo != null; - assert statisticTraceInfo.contains("HLL_SKETCH"); - - // insert rows - stmt.execute(String.format("insert into %s (creator, extend) values('john', 'json')", table)); - // change enable_hll to false - stmt.execute("/*TDDL:enable_hll=false*/ analyze table " + table); - - statisticTraceInfo = - getTraceInfoMap(stmt, String.format("select * from %s where creator='json'", table)); - assert statisticTraceInfo != null; - assert !statisticTraceInfo.contains("HLL_SKETCH"); - } - } - - @Nullable - private String getTraceInfoMap(Statement stmt, String sql) throws SQLException { - ResultSet rs = stmt.executeQuery("explain cost_trace " + sql); - while (rs.next()) { - String statisticTraceInfo = rs.getString(1); - if (statisticTraceInfo.startsWith("STATISTIC TRACE INFO")) { - return statisticTraceInfo; - } - } - return null; - } -} \ No newline at end of file diff --git a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/syncTests/SetVariablesTest.java b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/syncTests/SetVariablesTest.java index 24abdfb85..b0ebac90c 100644 --- a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/syncTests/SetVariablesTest.java +++ b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/syncTests/SetVariablesTest.java @@ -105,6 +105,19 @@ public void setVariablesSingsleTest() throws Exception { } + @Test + public void setVariablesUdfTest() throws Exception { + enableSetGlobal(); + String sql = "SET GLOBAL ENABLE_JAVA_UDF = true"; + try { + execute(tddlConnection, sql); + } catch (Exception e) { + //ignore + return; + } + Assert.fail("Don't allow set ENABLE_JAVA_UDF"); + } + private void setGlobalVariableSingleTest(String variableName, String variableValue) throws Exception { setVariableValue(variableName, variableValue, true); TimeUnit.MINUTES.sleep(1); diff --git a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/transaction/ArchiveTransactionTest.java b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/transaction/ArchiveTransactionTest.java new file mode 100644 index 000000000..60496d6da --- /dev/null +++ b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/transaction/ArchiveTransactionTest.java @@ -0,0 +1,53 @@ +package com.alibaba.polardbx.qatest.transaction; + +import com.alibaba.polardbx.common.utils.Assert; +import com.alibaba.polardbx.qatest.CrudBasedLockTestCase; +import com.alibaba.polardbx.qatest.util.JdbcUtil; +import org.junit.Test; + +import java.sql.ResultSet; +import java.sql.SQLException; + +public class ArchiveTransactionTest extends CrudBasedLockTestCase { + @Test + public void testSimpleCase() throws SQLException { + String tableName = "test_archive_transaction"; + String dropSql = "drop table if exists " + tableName; + String createSql = + String.format( + "create table if not exists %s (id int, name varchar(20), primary key(id)) dbpartition by hash(id)", + tableName); + try { + JdbcUtil.executeUpdateSuccess(mysqlConnection, dropSql); + JdbcUtil.executeUpdateSuccess(tddlConnection, createSql); + JdbcUtil.executeSuccess(tddlConnection, "set transaction_policy = archive"); + ResultSet rs = JdbcUtil.executeQuerySuccess(tddlConnection, "show variables like 'transaction_policy'"); + boolean found = false; + while (rs.next()) { + if (rs.getString("Variable_name").equalsIgnoreCase("transaction_policy") + && rs.getString("Value").equalsIgnoreCase("archive")) { + found = true; + break; + } + } + Assert.assertTrue(found); + JdbcUtil.executeSuccess(tddlConnection, "begin"); + JdbcUtil.executeSuccess(tddlConnection, "insert into " + tableName + " values(1, 'a')"); + rs = JdbcUtil.executeQuerySuccess(tddlConnection, "show trans"); + found = false; + while (rs.next()) { + if (rs.getString("TYPE").equalsIgnoreCase("ARCHIVE")) { + found = true; + break; + } + } + Assert.assertTrue(found); + JdbcUtil.executeSuccess(tddlConnection, "commit"); + } finally { + JdbcUtil.executeIgnoreErrors(tddlConnection, "rollback"); + JdbcUtil.executeIgnoreErrors(tddlConnection, "set transaction_policy = tso"); + JdbcUtil.executeIgnoreErrors(tddlConnection, dropSql); + } + + } +} diff --git a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/transaction/SavePointTest.java b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/transaction/SavePointTest.java index 8b3553fcc..012bb0a56 100644 --- a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/transaction/SavePointTest.java +++ b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/transaction/SavePointTest.java @@ -21,10 +21,12 @@ import com.alibaba.polardbx.qatest.data.ExecuteTableName; import com.alibaba.polardbx.qatest.data.TableColumnGenerator; import com.alibaba.polardbx.qatest.util.JdbcUtil; +import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.junit.runners.Parameterized.Parameters; +import java.sql.ResultSet; import java.sql.Savepoint; import java.util.Arrays; import java.util.List; @@ -161,4 +163,34 @@ public void testOnXA() throws Exception { testSavePoint2(ITransactionPolicy.XA, 3); testSavePoint2(ITransactionPolicy.TSO, 3); } + + @Test + public void testNullColumn() throws Exception { + String tableName = "testNullColumn_tb"; + try { + String createTable = "create table if not exists " + tableName + + "( id int not null auto_increment primary key, name varchar(30) not null)"; + JdbcUtil.executeSuccess(tddlConnection, createTable); + JdbcUtil.executeSuccess(tddlConnection, "begin"); + JdbcUtil.executeSuccess(tddlConnection, "savepoint sa_savepoint_1"); + JdbcUtil.executeFailed(tddlConnection, "insert into " + tableName + " (name) values (null)", + "Column 'name' cannot be null"); + JdbcUtil.executeSuccess(tddlConnection, "rollback to savepoint sa_savepoint_1"); + JdbcUtil.executeSuccess(tddlConnection, "savepoint sa_savepoint_2"); + JdbcUtil.executeSuccess(tddlConnection, "insert into " + tableName + " (name) values ('test_name_0')"); + JdbcUtil.executeSuccess(tddlConnection, "rollback to savepoint sa_savepoint_2"); + JdbcUtil.executeSuccess(tddlConnection, "insert into " + tableName + " (name) values ('test_name_1')"); + JdbcUtil.executeSuccess(tddlConnection, "commit"); + + ResultSet rs = JdbcUtil.executeQuerySuccess(tddlConnection, "select * from " + tableName); + if (rs.next()) { + Assert.assertEquals("test_name_1", rs.getString("name")); + } else { + Assert.fail("no data"); + } + } finally { + String dropTable = "drop table if exists " + tableName; + JdbcUtil.executeSuccess(tddlConnection, dropTable); + } + } } diff --git a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/transaction/XidTooLongTest.java b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/transaction/XidTooLongTest.java new file mode 100644 index 000000000..746c99d11 --- /dev/null +++ b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/transaction/XidTooLongTest.java @@ -0,0 +1,89 @@ +package com.alibaba.polardbx.qatest.transaction; + +import com.alibaba.polardbx.qatest.CrudBasedLockTestCase; +import com.alibaba.polardbx.qatest.util.JdbcUtil; +import org.junit.After; +import org.junit.Assert; +import org.junit.Test; + +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.SQLException; + +public class XidTooLongTest extends CrudBasedLockTestCase { + private static final String SCHEMA = "testkkk01234567890123456789012345678901234567890123456789"; + private static final String TABLE = "testkkk01234567890123456789012345678901234567890123456789"; + + private Connection polarxConn = getPolardbxConnection(); + + @After + public void after() throws SQLException { + JdbcUtil.executeSuccess(polarxConn, "rollback"); + JdbcUtil.executeSuccess(polarxConn, "drop database if exists " + SCHEMA); + polarxConn.close(); + } + + @Test + public void simpleTest() throws SQLException { + JdbcUtil.executeSuccess(polarxConn, "drop database if exists " + SCHEMA); + JdbcUtil.executeSuccess(polarxConn, "create database " + SCHEMA + " mode = auto "); + JdbcUtil.executeSuccess(polarxConn, "use " + SCHEMA); + JdbcUtil.executeSuccess(polarxConn, "create table if not exists " + + TABLE + " (id int primary key) partition by key(id)"); + + JdbcUtil.executeSuccess(polarxConn, "set transaction_policy = TSO"); + JdbcUtil.executeSuccess(polarxConn, "begin"); + JdbcUtil.executeSuccess(polarxConn, "insert into " + TABLE + " values(1), (2), (3), (4)"); + JdbcUtil.executeSuccess(polarxConn, "delete from " + TABLE); + JdbcUtil.executeSuccess(polarxConn, "commit"); + + cleanData(); + + // Should commit by recover task. + String hint = "/* +TDDL:cmd_extra(FAILURE_INJECTION='FAIL_AFTER_PRIMARY_COMMIT') */"; + JdbcUtil.executeSuccess(polarxConn, "begin"); + JdbcUtil.executeSuccess(polarxConn, hint + "insert into " + TABLE + " values(1), (2), (3), (4)"); + JdbcUtil.executeFailed(polarxConn, "commit", "Failed"); + + ResultSet rs = JdbcUtil.executeQuerySuccess(polarxConn, "select * from " + TABLE + + " order by id for update"); + // Should see 1, 2, 3, 4 + int i = 1; + while (rs.next()) { + Assert.assertEquals(i, rs.getInt(1)); + i++; + } + rs.close(); + + cleanData(); + + // Should rollback by recover task + hint = "/* +TDDL:cmd_extra(FAILURE_INJECTION='FAIL_BEFORE_PRIMARY_COMMIT') */"; + JdbcUtil.executeSuccess(polarxConn, "begin"); + JdbcUtil.executeSuccess(polarxConn, hint + "insert into " + TABLE + " values(1), (2), (3), (4)"); + JdbcUtil.executeFailed(polarxConn, "commit", "Failed"); + + ResultSet rs2 = JdbcUtil.executeQuerySuccess(polarxConn, "select * from " + TABLE + + " order by id for update"); + // Should be empty. + Assert.assertFalse(rs2.next()); + rs2.close(); + + hint = "/* +TDDL:cmd_extra(FAILURE_INJECTION='FAIL_DURING_PRIMARY_COMMIT') */"; + JdbcUtil.executeSuccess(polarxConn, "begin"); + JdbcUtil.executeSuccess(polarxConn, hint + "insert into " + TABLE + " values(1), (2), (3), (4)"); + JdbcUtil.executeFailed(polarxConn, "commit", "Failed"); + + ResultSet rs3 = JdbcUtil.executeQuerySuccess(polarxConn, "select * from " + TABLE + + " order by id for update"); + // Should be empty. + Assert.assertFalse(rs3.next()); + rs3.close(); + } + + private void cleanData() { + JdbcUtil.executeSuccess(polarxConn, "begin"); + JdbcUtil.executeSuccess(polarxConn, "delete from " + TABLE); + JdbcUtil.executeSuccess(polarxConn, "commit"); + } +} diff --git a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/util/ConnectionManager.java b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/util/ConnectionManager.java index a147a8eb7..b84acb2fe 100644 --- a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/util/ConnectionManager.java +++ b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/util/ConnectionManager.java @@ -21,6 +21,7 @@ import com.alibaba.polardbx.gms.util.JdbcUtil; import com.alibaba.polardbx.gms.util.PasswdUtil; import com.alibaba.polardbx.qatest.constant.ConfigConstant; +import com.alibaba.polardbx.qatest.privileges.encdb.EncdbTestBase; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.junit.Assert; diff --git a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/validator/DataValidator.java b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/validator/DataValidator.java index 1cf57be8d..7a3d45b74 100644 --- a/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/validator/DataValidator.java +++ b/polardbx-test/src/test/java/com/alibaba/polardbx/qatest/validator/DataValidator.java @@ -481,6 +481,15 @@ public static void selectStringContentIgnoreCaseSameAssert( } } + /** + * 验证查询结果非顺序一致,支持mysql和tddl不同sql 查询语句返回结果允许为空 + */ + public static void selectContentSameAssertAllowEmpty(String mysqlSql, String tddlSql, List param, + Connection mysqlConnection, + Connection tddlConnection) { + selectContentSameAssert(mysqlSql, tddlSql, param, mysqlConnection, tddlConnection, true); + } + /** * 验证查询结果非顺序一致,支持mysql和tddl不同sql 查询语句返回结果不允许为空 */ diff --git a/polardbx-test/src/test/resources/partition/env/AutoPartition2Test/test_rm_local_on_showcreatetbl.result b/polardbx-test/src/test/resources/partition/env/AutoPartition2Test/test_rm_local_on_showcreatetbl.result new file mode 100644 index 000000000..928ab0fd4 --- /dev/null +++ b/polardbx-test/src/test/resources/partition/env/AutoPartition2Test/test_rm_local_on_showcreatetbl.result @@ -0,0 +1,84 @@ +CREATE TABLE `rm_local_t1` ( + `id` varchar(128) NOT NULL, + `agentId` varchar(128) DEFAULT NULL COMMENT 'ace actor id', + `value` longblob, + `timeStamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `agentName` varchar(50) DEFAULT NULL, + `capName` varchar(50) DEFAULT NULL, + `versionId` varchar(128) NOT NULL, + PRIMARY KEY (`id`), + KEY `versionId` (`versionId`), + KEY `timeStamp` (`timeStamp`) COMMENT 'abc' +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4; +CREATE TABLE `rm_local_t2` ( + `id` varchar(128) NOT NULL, + `agentId` varchar(128) DEFAULT NULL COMMENT 'ace actor id', + `value` longblob, + `timeStamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `agentName` varchar(50) DEFAULT NULL, + `capName` varchar(50) DEFAULT NULL, + `versionId` varchar(128) NOT NULL, + PRIMARY KEY (`id`), + INDEX `versionId`(`versionId`), + INDEX `timeStamp`(`timeStamp`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4; +SET ENABLE_USE_KEY_FOR_ALL_LOCAL_INDEX = false; +SHOW CREATE TABLE rm_local_t1; +Table,Create Table +rm_local_t1,CREATE TABLE `rm_local_t1` ( + `id` varchar(128) NOT NULL, + `agentId` varchar(128) DEFAULT NULL COMMENT 'ace actor id', + `value` longblob, + `timeStamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `agentName` varchar(50) DEFAULT NULL, + `capName` varchar(50) DEFAULT NULL, + `versionId` varchar(128) NOT NULL, + PRIMARY KEY (`id`), + INDEX `versionId` (`versionId`), + LOCAL KEY `timeStamp` (`timeStamp`) COMMENT 'abc' +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 +SHOW CREATE TABLE rm_local_t2; +Table,Create Table +rm_local_t2,CREATE TABLE `rm_local_t2` ( + `id` varchar(128) NOT NULL, + `agentId` varchar(128) DEFAULT NULL COMMENT 'ace actor id', + `value` longblob, + `timeStamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `agentName` varchar(50) DEFAULT NULL, + `capName` varchar(50) DEFAULT NULL, + `versionId` varchar(128) NOT NULL, + PRIMARY KEY (`id`), + INDEX `versionId` (`versionId`), + LOCAL KEY `timeStamp` (`timeStamp`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 +SET ENABLE_USE_KEY_FOR_ALL_LOCAL_INDEX = true; +SHOW CREATE TABLE rm_local_t1; +Table,Create Table +rm_local_t1,CREATE TABLE `rm_local_t1` ( + `id` varchar(128) NOT NULL, + `agentId` varchar(128) DEFAULT NULL COMMENT 'ace actor id', + `value` longblob, + `timeStamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `agentName` varchar(50) DEFAULT NULL, + `capName` varchar(50) DEFAULT NULL, + `versionId` varchar(128) NOT NULL, + PRIMARY KEY (`id`), + KEY `versionId` (`versionId`), + KEY `timeStamp` (`timeStamp`) COMMENT 'abc, LOCAL KEY' +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 +SHOW CREATE TABLE rm_local_t2; +Table,Create Table +rm_local_t2,CREATE TABLE `rm_local_t2` ( + `id` varchar(128) NOT NULL, + `agentId` varchar(128) DEFAULT NULL COMMENT 'ace actor id', + `value` longblob, + `timeStamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `agentName` varchar(50) DEFAULT NULL, + `capName` varchar(50) DEFAULT NULL, + `versionId` varchar(128) NOT NULL, + PRIMARY KEY (`id`), + KEY `versionId` (`versionId`), + KEY `timeStamp` (`timeStamp`) COMMENT 'LOCAL KEY' +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 +DROP TABLE rm_local_t1; +DROP TABLE rm_local_t2; \ No newline at end of file diff --git a/polardbx-test/src/test/resources/partition/env/AutoPartition2Test/test_rm_local_on_showcreatetbl.test.yml b/polardbx-test/src/test/resources/partition/env/AutoPartition2Test/test_rm_local_on_showcreatetbl.test.yml new file mode 100644 index 000000000..4d553f643 --- /dev/null +++ b/polardbx-test/src/test/resources/partition/env/AutoPartition2Test/test_rm_local_on_showcreatetbl.test.yml @@ -0,0 +1,40 @@ + + +CREATE TABLE `rm_local_t1` ( +`id` varchar(128) NOT NULL, +`agentId` varchar(128) DEFAULT NULL COMMENT 'ace actor id', +`value` longblob, +`timeStamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, +`agentName` varchar(50) DEFAULT NULL, +`capName` varchar(50) DEFAULT NULL, +`versionId` varchar(128) NOT NULL, +PRIMARY KEY (`id`), +KEY `versionId` (`versionId`), +KEY `timeStamp` (`timeStamp`) comment 'abc' +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4; + +CREATE TABLE `rm_local_t2` ( +`id` varchar(128) NOT NULL, +`agentId` varchar(128) DEFAULT NULL COMMENT 'ace actor id', +`value` longblob, +`timeStamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, +`agentName` varchar(50) DEFAULT NULL, +`capName` varchar(50) DEFAULT NULL, +`versionId` varchar(128) NOT NULL, +PRIMARY KEY (`id`), +INDEX `versionId` (`versionId`), +INDEX `timeStamp` (`timeStamp`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4; + +set ENABLE_USE_KEY_FOR_ALL_LOCAL_INDEX = false; + +show create table rm_local_t1; +show create table rm_local_t2; + +set ENABLE_USE_KEY_FOR_ALL_LOCAL_INDEX = true; + +show create table rm_local_t1; +show create table rm_local_t2; + +drop table rm_local_t1; +drop table rm_local_t2; \ No newline at end of file diff --git a/polardbx-test/src/test/resources/partition/env/AutoPartition2Test/testcase.config.yml b/polardbx-test/src/test/resources/partition/env/AutoPartition2Test/testcase.config.yml new file mode 100644 index 000000000..7b054a80c --- /dev/null +++ b/polardbx-test/src/test/resources/partition/env/AutoPartition2Test/testcase.config.yml @@ -0,0 +1 @@ +test_rm_local_on_showcreatetbl diff --git a/polardbx-test/src/test/resources/partition/env/CoHashTest/test_co_hash_conds.result b/polardbx-test/src/test/resources/partition/env/CoHashTest/test_co_hash_conds.result index 3b19b9434..959004505 100644 --- a/polardbx-test/src/test/resources/partition/env/CoHashTest/test_co_hash_conds.result +++ b/polardbx-test/src/test/resources/partition/env/CoHashTest/test_co_hash_conds.result @@ -87,9 +87,9 @@ Project(id="id", sid="sid") MemSort(sort="user_id ASC") MaterializedSemiJoin(condition="user_id = user_id", type="semi") Gather(concurrent=true) - LogicalView(tables="ch_t1_u_o[p1,p2,p3,p4,p5,p6,p7,p8]", shardCount=8, sql="SELECT `id`, `sid`, `user_id` FROM `ch_t1_u_o` AS `ch_t1_u_o` WHERE (`user_id` IN (...))", isDynamicParam="true") + LogicalView(tables="ch_t1_u_o[p1,p2,p3,p4,p5,p6,p7,p8]", shardCount=8, sql="SELECT `id`, `sid`, `user_id` FROM `ch_t1_u_o` AS `ch_t1_u_o` WHERE (`user_id` IN (...))") Gather(concurrent=true) - LogicalView(tables="ch_t2_u_o[p3,p5,p7]", shardCount=3, sql="SELECT `user_id` FROM `ch_t2_u_o` AS `ch_t2_u_o` WHERE (`order_id` IN(?))", isDynamicParam="true") + LogicalView(tables="ch_t2_u_o[p3,p5,p7]", shardCount=3, sql="SELECT `user_id` FROM `ch_t2_u_o` AS `ch_t2_u_o` WHERE (`order_id` IN(?))", pruningInfo="all size:3*3(part), pruning size:6") select id,sid from ch_t1_u_o where user_id in (select user_id from ch_t2_u_o where order_id in (123456, 123458, 123459)) order by user_id; id,sid @@ -103,9 +103,9 @@ Project(id="id", sid="sid") MemSort(sort="user_id ASC") MaterializedSemiJoin(condition="user_id = user_id", type="semi") Gather(concurrent=true) - LogicalView(tables="ch_t1_u_o[p1,p2,p3,p4,p5,p6,p7,p8]", shardCount=8, sql="SELECT `id`, `sid`, `user_id` FROM `ch_t1_u_o` AS `ch_t1_u_o` WHERE (`user_id` IN (...))", isDynamicParam="true") + LogicalView(tables="ch_t1_u_o[p1,p2,p3,p4,p5,p6,p7,p8]", shardCount=8, sql="SELECT `id`, `sid`, `user_id` FROM `ch_t1_u_o` AS `ch_t1_u_o` WHERE (`user_id` IN (...))") Gather(concurrent=true) - LogicalView(tables="ch_t3_u_o[p2,p3,p4]", shardCount=3, sql="SELECT `user_id` FROM `ch_t3_u_o` AS `ch_t3_u_o` WHERE (`order_id` IN(?))", isDynamicParam="true") + LogicalView(tables="ch_t3_u_o[p2,p3,p4]", shardCount=3, sql="SELECT `user_id` FROM `ch_t3_u_o` AS `ch_t3_u_o` WHERE (`order_id` IN(?))", pruningInfo="all size:3*3(part), pruning size:6") select id,sid from ch_t1_u_o where user_id in (select user_id from ch_t3_u_o where order_id in (123456, 123458, 123459)) order by user_id; id,sid @@ -119,12 +119,12 @@ user_id in (select user_id from ch_t2_u_o where order_id in (123456, 123458, 123 Logical ExecutionPlan Project(id="id", sid="sid") MergeSort(sort="user_id ASC") - LogicalView(tables="ch_t1_u_o[p1,p2,p3,p4,p5,p6,p7,p8]", shardCount=8, sql="SELECT `id`, `sid`, `user_id` FROM `ch_t1_u_o` AS `ch_t1_u_o` WHERE ((`order_id` IN(?)) OR (`user_id` IN(?))) ORDER BY `user_id`", isDynamicParam="true") + LogicalView(tables="ch_t1_u_o[p1,p2,p3,p4,p5,p6,p7,p8]", shardCount=8, sql="SELECT `id`, `sid`, `user_id` FROM `ch_t1_u_o` AS `ch_t1_u_o` WHERE ((`order_id` IN(?)) OR (`user_id` IN(?))) ORDER BY `user_id`") HitCache:false Source:PLAN_CACHE >> individual scalar subquery Gather(concurrent=true) - LogicalView(tables="ch_t2_u_o[p3,p5,p7]", shardCount=3, sql="SELECT `user_id` FROM `ch_t2_u_o` AS `ch_t2_u_o` WHERE (`order_id` IN(?))", isDynamicParam="true") + LogicalView(tables="ch_t2_u_o[p3,p5,p7]", shardCount=3, sql="SELECT `user_id` FROM `ch_t2_u_o` AS `ch_t2_u_o` WHERE (`order_id` IN(?))", pruningInfo="all size:3*3(part), pruning size:6") select id,sid from ch_t1_u_o where order_id in (123456, 123458, 123459) or @@ -141,12 +141,12 @@ order_id in (select order_id from ch_t2_u_o where order_id in (123456, 123458, 1 Logical ExecutionPlan Project(id="id", sid="sid") MergeSort(sort="user_id ASC") - LogicalView(tables="ch_t1_u_o[p1,p2,p3,p4,p5,p6,p7,p8]", shardCount=8, sql="SELECT `id`, `sid`, `user_id` FROM `ch_t1_u_o` AS `ch_t1_u_o` WHERE ((`user_id` IN(?)) OR (`order_id` IN(?))) ORDER BY `user_id`", isDynamicParam="true") + LogicalView(tables="ch_t1_u_o[p1,p2,p3,p4,p5,p6,p7,p8]", shardCount=8, sql="SELECT `id`, `sid`, `user_id` FROM `ch_t1_u_o` AS `ch_t1_u_o` WHERE ((`user_id` IN(?)) OR (`order_id` IN(?))) ORDER BY `user_id`") HitCache:false Source:PLAN_CACHE >> individual scalar subquery Gather(concurrent=true) - LogicalView(tables="ch_t2_u_o[p3,p5,p7]", shardCount=3, sql="SELECT `order_id` FROM `ch_t2_u_o` AS `ch_t2_u_o` WHERE (`order_id` IN(?))", isDynamicParam="true") + LogicalView(tables="ch_t2_u_o[p3,p5,p7]", shardCount=3, sql="SELECT `order_id` FROM `ch_t2_u_o` AS `ch_t2_u_o` WHERE (`order_id` IN(?))", pruningInfo="all size:3*3(part), pruning size:6") select id,sid from ch_t1_u_o where user_id in (123456, 123458, 123459) or @@ -162,7 +162,7 @@ order_id in (123456, 123458, 123459,1234510,1234511,1234512,1234513,1234514) ord Logical ExecutionPlan Project(id="id", sid="sid") MergeSort(sort="user_id ASC") - LogicalView(tables="ch_t1_u_o[p1,p3,p4,p5,p7,p8]", shardCount=6, sql="SELECT `id`, `sid`, `user_id` FROM `ch_t1_u_o` AS `ch_t1_u_o` WHERE ((`user_id` IN(?)) OR (`order_id` IN(?))) ORDER BY `user_id`", isDynamicParam="true") + LogicalView(tables="ch_t1_u_o[p1,p3,p4,p5,p7,p8]", shardCount=6, sql="SELECT `id`, `sid`, `user_id` FROM `ch_t1_u_o` AS `ch_t1_u_o` WHERE ((`user_id` IN(?)) OR (`order_id` IN(?))) ORDER BY `user_id`", pruningInfo="all size:11*6(part), pruning size:21") select id,sid from ch_t1_u_o where user_id in (123456, 123458, 123459) or diff --git a/polardbx-test/src/test/resources/partition/env/CoHashTest/test_co_hash_dml.result b/polardbx-test/src/test/resources/partition/env/CoHashTest/test_co_hash_dml.result index 25ff09af9..13ad0ff54 100644 --- a/polardbx-test/src/test/resources/partition/env/CoHashTest/test_co_hash_dml.result +++ b/polardbx-test/src/test/resources/partition/env/CoHashTest/test_co_hash_dml.result @@ -67,11 +67,11 @@ LogicalView(tables="ch_t1_f_f[]", shardCount=0, sql="SELECT `id`, `sid`, `user_i explain select * from ch_t1_f_f where order_id in ('abcdefg12345678') and user_id in ('12345679'); Logical ExecutionPlan Gather(concurrent=true) - LogicalView(tables="ch_t1_f_f[]", shardCount=0, sql="SELECT `id`, `sid`, `user_id`, `order_id`, `order_time` FROM `ch_t1_f_f` AS `ch_t1_f_f` WHERE ((`order_id` IN(?)) AND (`user_id` IN(?)))", isDynamicParam="true") + LogicalView(tables="ch_t1_f_f[]", shardCount=0, sql="SELECT `id`, `sid`, `user_id`, `order_id`, `order_time` FROM `ch_t1_f_f` AS `ch_t1_f_f` WHERE ((`order_id` IN(?)) AND (`user_id` IN(?)))") explain select * from ch_t1_f_f where (order_id,user_id) in (('abcdefg12345678','12345679')); Logical ExecutionPlan Gather(concurrent=true) - LogicalView(tables="ch_t1_f_f[]", shardCount=0, sql="SELECT `id`, `sid`, `user_id`, `order_id`, `order_time` FROM `ch_t1_f_f` AS `ch_t1_f_f` WHERE (((`order_id`, `user_id`)) IN(?))", isDynamicParam="true") + LogicalView(tables="ch_t1_f_f[]", shardCount=0, sql="SELECT `id`, `sid`, `user_id`, `order_id`, `order_time` FROM `ch_t1_f_f` AS `ch_t1_f_f` WHERE (((`order_id`, `user_id`)) IN(?))") ## range-select explain select * from ch_t1_f_f where user_id>='12345678'; Logical ExecutionPlan diff --git a/polardbx-test/src/test/resources/partition/env/CoHashTest/test_co_hash_subquery.result b/polardbx-test/src/test/resources/partition/env/CoHashTest/test_co_hash_subquery.result index bcb130a23..00e8c34ad 100644 --- a/polardbx-test/src/test/resources/partition/env/CoHashTest/test_co_hash_subquery.result +++ b/polardbx-test/src/test/resources/partition/env/CoHashTest/test_co_hash_subquery.result @@ -89,9 +89,9 @@ Project(id="id", sid="sid") Project(id="id", sid="sid", user_id="user_id") MaterializedSemiJoin(condition="order_id = user_id", type="semi") Gather(concurrent=true) - LogicalView(tables="ch_t1_u_o[p1,p2,p3,p4,p5,p6,p7,p8]", shardCount=8, sql="SELECT `id`, `sid`, `user_id`, `order_id` FROM `ch_t1_u_o` AS `ch_t1_u_o` WHERE (`order_id` IN (...))", isDynamicParam="true") + LogicalView(tables="ch_t1_u_o[p1,p2,p3,p4,p5,p6,p7,p8]", shardCount=8, sql="SELECT `id`, `sid`, `user_id`, `order_id` FROM `ch_t1_u_o` AS `ch_t1_u_o` WHERE (`order_id` IN (...))") Gather(concurrent=true) - LogicalView(tables="ch_t2_u_o[p3,p5,p7]", shardCount=3, sql="SELECT `user_id` FROM `ch_t2_u_o` AS `ch_t2_u_o` WHERE (`order_id` IN(?))", isDynamicParam="true") + LogicalView(tables="ch_t2_u_o[p3,p5,p7]", shardCount=3, sql="SELECT `user_id` FROM `ch_t2_u_o` AS `ch_t2_u_o` WHERE (`order_id` IN(?))", pruningInfo="all size:3*3(part), pruning size:6") ## route: p8 explain select id from ch_t1_u_o where order_id in (111234); Logical ExecutionPlan diff --git a/polardbx-test/src/test/resources/partition/env/CreateDatabaseTest/test_createdb_64len.result b/polardbx-test/src/test/resources/partition/env/CreateDatabaseTest/test_createdb_64len.result new file mode 100644 index 000000000..a112dd850 --- /dev/null +++ b/polardbx-test/src/test/resources/partition/env/CreateDatabaseTest/test_createdb_64len.result @@ -0,0 +1,40 @@ +## DISABLE_FAST_SQL_PARSER +drop database if exists Drds012345678901234567890123456789012345678901234567890123456789; +drop database if exists Auto012345678901234567890123456789012345678901234567890123456789; +create database Drds012345678901234567890123456789012345678901234567890123456789 mode='drds'; +create database Auto012345678901234567890123456789012345678901234567890123456789 mode='auto'; +CREATE TABLE `Drds012345678901234567890123456789012345678901234567890123456789`.`t1` ( +`id` int NOT NULL AUTO_INCREMENT, +`k` int(11) NOT NULL DEFAULT '0', +`c` char(120) NOT NULL DEFAULT '', +`pad` char(60) NOT NULL DEFAULT '', +PRIMARY KEY (`id`), +INDEX `k_1` (`k`) +) broadcast; +show create table `Drds012345678901234567890123456789012345678901234567890123456789`.`t1`; +Table,Create Table +t1,CREATE TABLE `t1` ( + `id` int(11) NOT NULL AUTO_INCREMENT BY GROUP, + `k` int(11) NOT NULL DEFAULT '0', + `c` char(120) NOT NULL DEFAULT '', + `pad` char(60) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + KEY `k_1` (`k`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 broadcast +insert into `Drds012345678901234567890123456789012345678901234567890123456789`.t1 (k) values(2); +CREATE TABLE `Auto012345678901234567890123456789012345678901234567890123456789`.`t1` ( +`id` int NOT NULL AUTO_INCREMENT, +`k` int(11) NOT NULL DEFAULT '0', +`c` char(120) NOT NULL DEFAULT '', +`pad` char(60) NOT NULL DEFAULT '', +PRIMARY KEY (`id`), +INDEX `k_1` (`k`) +) broadcast; +insert into `Auto012345678901234567890123456789012345678901234567890123456789`.`t1` (k) values(2); +select k from `Auto012345678901234567890123456789012345678901234567890123456789`.t1; +k +2 +select table_schema,table_name,part_name,phy_group,phy_db from information_schema.partitions_meta where table_schema='Auto012345678901234567890123456789012345678901234567890123456789' and table_name='t1' order by part_name; +table_schema,table_name,part_name,phy_group,phy_db +auto012345678901234567890123456789012345678901234567890123456789,t1,p1,AUTO01234567890123456789012345678901_13428F39_P00000_GROUP,auto01234567890123456789012345678901_13428f39_p00000 +auto012345678901234567890123456789012345678901234567890123456789,t1,p2,AUTO01234567890123456789012345678901_13428F39_P00001_GROUP,auto01234567890123456789012345678901_13428f39_p00001 diff --git a/polardbx-test/src/test/resources/partition/env/CreateDatabaseTest/test_createdb_64len.test.yml b/polardbx-test/src/test/resources/partition/env/CreateDatabaseTest/test_createdb_64len.test.yml new file mode 100644 index 000000000..f71e65cbb --- /dev/null +++ b/polardbx-test/src/test/resources/partition/env/CreateDatabaseTest/test_createdb_64len.test.yml @@ -0,0 +1,30 @@ +## DISABLE_FAST_SQL_PARSER + +drop database if exists Drds012345678901234567890123456789012345678901234567890123456789; +drop database if exists Auto012345678901234567890123456789012345678901234567890123456789; +create database Drds012345678901234567890123456789012345678901234567890123456789 mode='drds'; +create database Auto012345678901234567890123456789012345678901234567890123456789 mode='auto'; + +CREATE TABLE `Drds012345678901234567890123456789012345678901234567890123456789`.`t1` ( +`id` int NOT NULL AUTO_INCREMENT, +`k` int(11) NOT NULL DEFAULT '0', +`c` char(120) NOT NULL DEFAULT '', +`pad` char(60) NOT NULL DEFAULT '', +PRIMARY KEY (`id`), +INDEX `k_1` (`k`) +) broadcast; + +show create table `Drds012345678901234567890123456789012345678901234567890123456789`.`t1`; +insert into `Drds012345678901234567890123456789012345678901234567890123456789`.t1 (k) values(2); + +CREATE TABLE `Auto012345678901234567890123456789012345678901234567890123456789`.`t1` ( +`id` int NOT NULL AUTO_INCREMENT, +`k` int(11) NOT NULL DEFAULT '0', +`c` char(120) NOT NULL DEFAULT '', +`pad` char(60) NOT NULL DEFAULT '', +PRIMARY KEY (`id`), +INDEX `k_1` (`k`) +) broadcast; +insert into `Auto012345678901234567890123456789012345678901234567890123456789`.`t1` (k) values(2); +select k from `Auto012345678901234567890123456789012345678901234567890123456789`.t1; +select table_schema,table_name,part_name,phy_group,phy_db from information_schema.partitions_meta where table_schema='Auto012345678901234567890123456789012345678901234567890123456789' and table_name='t1' order by part_name \ No newline at end of file diff --git a/polardbx-test/src/test/resources/partition/env/CreateDatabaseTest/test_createdb_64len_2.result b/polardbx-test/src/test/resources/partition/env/CreateDatabaseTest/test_createdb_64len_2.result new file mode 100644 index 000000000..f220c671f --- /dev/null +++ b/polardbx-test/src/test/resources/partition/env/CreateDatabaseTest/test_createdb_64len_2.result @@ -0,0 +1,30 @@ +## DISABLE_FAST_SQL_PARSER +drop database if exists abcd012345678901234567890123456789012345678901234567890123456789; +create database abcd012345678901234567890123456789012345678901234567890123456789 mode='auto'; +CREATE TABLE `abcd012345678901234567890123456789012345678901234567890123456789`.`mytb012345678901234567890123456789012345678901234567890123456789` ( +`mypk012345678901234567890123456789012345678901234567890123456789` int NOT NULL AUTO_INCREMENT, +`mysk012345678901234567890123456789012345678901234567890123456789` int(11) NOT NULL DEFAULT '0', +`c` char(120) NOT NULL DEFAULT '', +`pad` char(60) NOT NULL DEFAULT '', +PRIMARY KEY (`mypk012345678901234567890123456789012345678901234567890123456789`,`mysk012345678901234567890123456789012345678901234567890123456789`), +INDEX `mydx012345678901234567890123456789012345678901234567890123456789` (`mysk012345678901234567890123456789012345678901234567890123456789`) +) partition by range(mysk012345678901234567890123456789012345678901234567890123456789) +( +partition pabcde0123456789 values less than(maxvalue) +); +show create table `abcd012345678901234567890123456789012345678901234567890123456789`.`mytb012345678901234567890123456789012345678901234567890123456789`; +Table,Create Table +mytb012345678901234567890123456789012345678901234567890123456789,CREATE TABLE `mytb012345678901234567890123456789012345678901234567890123456789` ( + `mypk012345678901234567890123456789012345678901234567890123456789` int(11) NOT NULL AUTO_INCREMENT, + `mysk012345678901234567890123456789012345678901234567890123456789` int(11) NOT NULL DEFAULT '0', + `c` char(120) NOT NULL DEFAULT '', + `pad` char(60) NOT NULL DEFAULT '', + PRIMARY KEY (`mypk012345678901234567890123456789012345678901234567890123456789`, `mysk012345678901234567890123456789012345678901234567890123456789`), + KEY `mydx012345678901234567890123456789012345678901234567890123456789` (`mysk012345678901234567890123456789012345678901234567890123456789`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 +PARTITION BY RANGE(`mysk012345678901234567890123456789012345678901234567890123456789`) +(PARTITION pabcde0123456789 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB) +insert into `abcd012345678901234567890123456789012345678901234567890123456789`.`mytb012345678901234567890123456789012345678901234567890123456789` (mysk012345678901234567890123456789012345678901234567890123456789) values(2); +select mysk012345678901234567890123456789012345678901234567890123456789 from `abcd012345678901234567890123456789012345678901234567890123456789`.mytb012345678901234567890123456789012345678901234567890123456789; +mysk012345678901234567890123456789012345678901234567890123456789 +2 diff --git a/polardbx-test/src/test/resources/partition/env/CreateDatabaseTest/test_createdb_64len_2.test.yml b/polardbx-test/src/test/resources/partition/env/CreateDatabaseTest/test_createdb_64len_2.test.yml new file mode 100644 index 000000000..952f381a5 --- /dev/null +++ b/polardbx-test/src/test/resources/partition/env/CreateDatabaseTest/test_createdb_64len_2.test.yml @@ -0,0 +1,19 @@ +## DISABLE_FAST_SQL_PARSER + +drop database if exists abcd012345678901234567890123456789012345678901234567890123456789; +create database abcd012345678901234567890123456789012345678901234567890123456789 mode='auto'; + +CREATE TABLE `abcd012345678901234567890123456789012345678901234567890123456789`.`mytb012345678901234567890123456789012345678901234567890123456789` ( +`mypk012345678901234567890123456789012345678901234567890123456789` int NOT NULL AUTO_INCREMENT, +`mysk012345678901234567890123456789012345678901234567890123456789` int(11) NOT NULL DEFAULT '0', +`c` char(120) NOT NULL DEFAULT '', +`pad` char(60) NOT NULL DEFAULT '', +PRIMARY KEY (`mypk012345678901234567890123456789012345678901234567890123456789`,`mysk012345678901234567890123456789012345678901234567890123456789`), +INDEX `mydx012345678901234567890123456789012345678901234567890123456789` (`mysk012345678901234567890123456789012345678901234567890123456789`) +) partition by range(mysk012345678901234567890123456789012345678901234567890123456789) +( +partition pabcde0123456789 values less than(maxvalue) +); +show create table `abcd012345678901234567890123456789012345678901234567890123456789`.`mytb012345678901234567890123456789012345678901234567890123456789`; +insert into `abcd012345678901234567890123456789012345678901234567890123456789`.`mytb012345678901234567890123456789012345678901234567890123456789` (mysk012345678901234567890123456789012345678901234567890123456789) values(2); +select mysk012345678901234567890123456789012345678901234567890123456789 from `abcd012345678901234567890123456789012345678901234567890123456789`.mytb012345678901234567890123456789012345678901234567890123456789; diff --git a/polardbx-test/src/test/resources/partition/env/CreateDatabaseTest/testcase.config.yml b/polardbx-test/src/test/resources/partition/env/CreateDatabaseTest/testcase.config.yml new file mode 100644 index 000000000..6c88c4f75 --- /dev/null +++ b/polardbx-test/src/test/resources/partition/env/CreateDatabaseTest/testcase.config.yml @@ -0,0 +1,2 @@ +test_createdb_64len +test_createdb_64len_2 \ No newline at end of file diff --git a/polardbx-test/src/test/resources/partition/env/ImplicitTableGroupTest/create_table_with_implicit_tg.result b/polardbx-test/src/test/resources/partition/env/ImplicitTableGroupTest/create_table_with_implicit_tg.result new file mode 100644 index 000000000..e3532ed25 --- /dev/null +++ b/polardbx-test/src/test/resources/partition/env/ImplicitTableGroupTest/create_table_with_implicit_tg.result @@ -0,0 +1,15 @@ +## DISABLE_FAST_SQL_PARSER +## error_msg: $#failed with state PAUSED#$ +/*+TDDL:cmd_extra(SIM_CDC_FAILED=true)*/create table t_i1(a int, b int, c int) partition by key(a) partitions 4 with tablegroup = 'tg_i1' implicit; +failed with state PAUSED +create table t_i1(a int, b int, c int) partition by key(a) partitions 4 with tablegroup = 'tg_i1' implicit; +show create table t_i1; +Table,Create Table +t_i1,CREATE TABLE `t_i1` ( + `a` int(11) DEFAULT NULL, + `b` int(11) DEFAULT NULL, + `c` int(11) DEFAULT NULL, + KEY `auto_shard_key_a` USING BTREE (`a`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 +PARTITION BY KEY(`a`) +PARTITIONS 4 \ No newline at end of file diff --git a/polardbx-test/src/test/resources/partition/env/ImplicitTableGroupTest/create_table_with_implicit_tg.test.yml b/polardbx-test/src/test/resources/partition/env/ImplicitTableGroupTest/create_table_with_implicit_tg.test.yml new file mode 100644 index 000000000..1dc5c5839 --- /dev/null +++ b/polardbx-test/src/test/resources/partition/env/ImplicitTableGroupTest/create_table_with_implicit_tg.test.yml @@ -0,0 +1,5 @@ +## DISABLE_FAST_SQL_PARSER +## error_msg: $#failed with state PAUSED#$ +/*+TDDL:cmd_extra(SIM_CDC_FAILED=true)*/create table t_i1(a int, b int, c int) partition by key(a) partitions 4 with tablegroup = 'tg_i1' implicit; +create table t_i1(a int, b int, c int) partition by key(a) partitions 4 with tablegroup = 'tg_i1' implicit; +show create table t_i1; \ No newline at end of file diff --git a/polardbx-test/src/test/resources/partition/env/ImplicitTableGroupTest/testcase.config.yml b/polardbx-test/src/test/resources/partition/env/ImplicitTableGroupTest/testcase.config.yml index 559154fca..7811f7b3c 100644 --- a/polardbx-test/src/test/resources/partition/env/ImplicitTableGroupTest/testcase.config.yml +++ b/polardbx-test/src/test/resources/partition/env/ImplicitTableGroupTest/testcase.config.yml @@ -1 +1,2 @@ -alter_table_modify_column \ No newline at end of file +alter_table_modify_column +create_table_with_implicit_tg \ No newline at end of file diff --git a/polardbx-test/src/test/resources/partition/env/ListDefaultAdditionalTest/test_add_subpartition_tb.result b/polardbx-test/src/test/resources/partition/env/ListDefaultAdditionalTest/test_add_subpartition_tb.result index 0db0f6aa1..53aa90c10 100644 --- a/polardbx-test/src/test/resources/partition/env/ListDefaultAdditionalTest/test_add_subpartition_tb.result +++ b/polardbx-test/src/test/resources/partition/env/ListDefaultAdditionalTest/test_add_subpartition_tb.result @@ -1049,13 +1049,13 @@ SUBPARTITION BY LIST COLUMNS(`a`,`b`) SUBPARTITION p2sp2 VALUES IN ((3,'3'),(4,'4')) ENGINE = InnoDB, SUBPARTITION p2spd VALUES IN (DEFAULT) ENGINE = InnoDB), PARTITION p3 VALUES IN (5,6) - (SUBPARTITION sp3 VALUES IN ((3,'3'),(4,'4')) ENGINE = InnoDB, - SUBPARTITION sp4 VALUES IN ((100,'100'),(200,'200')) ENGINE = InnoDB, - SUBPARTITION sp5 VALUES IN (DEFAULT) ENGINE = InnoDB), + (SUBPARTITION p3sp3 VALUES IN ((3,'3'),(4,'4')) ENGINE = InnoDB, + SUBPARTITION p3sp4 VALUES IN ((100,'100'),(200,'200')) ENGINE = InnoDB, + SUBPARTITION p3sp5 VALUES IN (DEFAULT) ENGINE = InnoDB), PARTITION pd VALUES IN (DEFAULT) - (SUBPARTITION sp6 VALUES IN ((3,'3'),(4,'4')) ENGINE = InnoDB, - SUBPARTITION sp7 VALUES IN ((100,'100'),(200,'200')) ENGINE = InnoDB, - SUBPARTITION sp8 VALUES IN (DEFAULT) ENGINE = InnoDB)) + (SUBPARTITION pdsp2 VALUES IN ((3,'3'),(4,'4')) ENGINE = InnoDB, + SUBPARTITION pdsp1 VALUES IN ((100,'100'),(200,'200')) ENGINE = InnoDB, + SUBPARTITION pdspd VALUES IN (DEFAULT) ENGINE = InnoDB)) # logical partition: list, algorithm=instant create table tb16( a int, diff --git a/polardbx-test/src/test/resources/partition/env/ListDefaultAdditionalTest/test_extract_subpartition_tb.result b/polardbx-test/src/test/resources/partition/env/ListDefaultAdditionalTest/test_extract_subpartition_tb.result index 7f4f87235..94d81224b 100644 --- a/polardbx-test/src/test/resources/partition/env/ListDefaultAdditionalTest/test_extract_subpartition_tb.result +++ b/polardbx-test/src/test/resources/partition/env/ListDefaultAdditionalTest/test_extract_subpartition_tb.result @@ -604,13 +604,13 @@ SUBPARTITION BY LIST COLUMNS(`a`,`b`) SUBPARTITION p2sp2 VALUES IN ((3,'3'),(4,'4')) ENGINE = InnoDB, SUBPARTITION p2spd VALUES IN (DEFAULT) ENGINE = InnoDB), PARTITION p3 VALUES IN (3) - (SUBPARTITION sp3 VALUES IN ((1,'1'),(2,'2')) ENGINE = InnoDB, - SUBPARTITION sp4 VALUES IN ((3,'3'),(4,'4')) ENGINE = InnoDB, - SUBPARTITION sp5 VALUES IN (DEFAULT) ENGINE = InnoDB), + (SUBPARTITION p3sp3 VALUES IN ((1,'1'),(2,'2')) ENGINE = InnoDB, + SUBPARTITION p3sp4 VALUES IN ((3,'3'),(4,'4')) ENGINE = InnoDB, + SUBPARTITION p3sp5 VALUES IN (DEFAULT) ENGINE = InnoDB), PARTITION pd VALUES IN (DEFAULT) - (SUBPARTITION sp6 VALUES IN ((1,'1'),(2,'2')) ENGINE = InnoDB, - SUBPARTITION sp7 VALUES IN ((3,'3'),(4,'4')) ENGINE = InnoDB, - SUBPARTITION sp8 VALUES IN (DEFAULT) ENGINE = InnoDB)) + (SUBPARTITION pdsp6 VALUES IN ((1,'1'),(2,'2')) ENGINE = InnoDB, + SUBPARTITION pdsp7 VALUES IN ((3,'3'),(4,'4')) ENGINE = InnoDB, + SUBPARTITION pdsp8 VALUES IN (DEFAULT) ENGINE = InnoDB)) # test hash partition # template create table tb9( diff --git a/polardbx-test/src/test/resources/partition/env/ListDefaultAdditionalTest/test_extract_subpartition_tg.result b/polardbx-test/src/test/resources/partition/env/ListDefaultAdditionalTest/test_extract_subpartition_tg.result index fd1b62a8c..d3f1b72e4 100644 --- a/polardbx-test/src/test/resources/partition/env/ListDefaultAdditionalTest/test_extract_subpartition_tg.result +++ b/polardbx-test/src/test/resources/partition/env/ListDefaultAdditionalTest/test_extract_subpartition_tg.result @@ -619,13 +619,13 @@ SUBPARTITION BY LIST COLUMNS(`a`,`b`) SUBPARTITION p2sp2 VALUES IN ((3,'3'),(4,'4')) ENGINE = InnoDB, SUBPARTITION p2spd VALUES IN (DEFAULT) ENGINE = InnoDB), PARTITION p3 VALUES IN (3) - (SUBPARTITION sp3 VALUES IN ((1,'1'),(2,'2')) ENGINE = InnoDB, - SUBPARTITION sp4 VALUES IN ((3,'3'),(4,'4')) ENGINE = InnoDB, - SUBPARTITION sp5 VALUES IN (DEFAULT) ENGINE = InnoDB), + (SUBPARTITION p3sp3 VALUES IN ((1,'1'),(2,'2')) ENGINE = InnoDB, + SUBPARTITION p3sp4 VALUES IN ((3,'3'),(4,'4')) ENGINE = InnoDB, + SUBPARTITION p3sp5 VALUES IN (DEFAULT) ENGINE = InnoDB), PARTITION pd VALUES IN (DEFAULT) - (SUBPARTITION sp6 VALUES IN ((1,'1'),(2,'2')) ENGINE = InnoDB, - SUBPARTITION sp7 VALUES IN ((3,'3'),(4,'4')) ENGINE = InnoDB, - SUBPARTITION sp8 VALUES IN (DEFAULT) ENGINE = InnoDB)) + (SUBPARTITION pdsp6 VALUES IN ((1,'1'),(2,'2')) ENGINE = InnoDB, + SUBPARTITION pdsp7 VALUES IN ((3,'3'),(4,'4')) ENGINE = InnoDB, + SUBPARTITION pdsp8 VALUES IN (DEFAULT) ENGINE = InnoDB)) tablegroup = `tg8` # test hash partition # template diff --git a/polardbx-test/src/test/resources/partition/env/LocalityTest/alter_tablegroup_add_secondary_partition_table.test.yml b/polardbx-test/src/test/resources/partition/env/LocalityTest/alter_tablegroup_add_secondary_partition_table.test.yml new file mode 100644 index 000000000..b8c995de2 --- /dev/null +++ b/polardbx-test/src/test/resources/partition/env/LocalityTest/alter_tablegroup_add_secondary_partition_table.test.yml @@ -0,0 +1,71 @@ +storageList: [$dn1, $dn2] +dbName: "test_locality_add_secondary_partition" +testCases: + - prepareDDls: + - "use polardbx" + - "drop database if exists test_locality_add_secondary_partition " + - "create database test_locality_add_secondary_partition mode = auto" + - "use test_locality_add_secondary_partition;" + - "CREATE TABLE `t1` ( + `id` bigint NOT NULL, + `c1` bigint NOT NULL, + `c2` bigint NOT NULL, + PRIMARY KEY (`id`) + ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 DEFAULT COLLATE = utf8mb4_general_ci + PARTITION BY LIST(`c1`) + SUBPARTITION BY KEY(`c2`,`id`) + ( + PARTITION p1 VALUES IN (1001) SUBPARTITIONS 2, + PARTITION p2 VALUES IN (1002) SUBPARTITIONS 3, + PARTITION pd VALUES IN (default) SUBPARTITIONS 4 + );" + rejectDDls: + cleanupDDls: + - "use polardbx;" + - "use polardbx;" + checkActions: + localityValueCheck: + - t1 table "" + tableGroupMatchCheck: + - t1 $tg1 "" + # second pass; + # auto generate create table, tablegroup. + partitionLocalityCheck: + - $tg1.p1sp1 "" + - $tg1.p2sp1 "" + - $tg1.pdsp1 "" + topologyCheck: + - t1.p1sp1 partition "" + - t1.p2sp1 partition "" + - t1.pdsp1 partition "" + # auto generate by locality value check. + # auto generate by partition locality check. with each table. + - prepareDDls: + - "use test_locality_add_secondary_partition;" + - "alter tablegroup $tg1 add partition (partition p3 VALUES IN(1003) locality='dn=$dn1' subpartitions 2)" + rejectDDls: + cleanupDDls: + - "use polardbx;" + - "use polardbx;" + checkActions: + localityValueCheck: + - t1 table "" + tableGroupMatchCheck: + - t1 $tg1 "" + # second pass; + # auto generate create table, tablegroup. + partitionLocalityCheck: + - $tg1.p1sp1 "" + - $tg1.p2sp1 "" + - $tg1.pdsp1 "" + - $tg1.p3sp1 "" + topologyCheck: + - t1.p1sp1 partition "" + - t1.p2sp1 partition "" + - t1.p3sp1 partition $dn1 + - t1.p3sp2 partition $dn1 + - t1.pdsp1 partition "" +cleanupDDls: + - "use polardbx;" + - "use polardbx;" + - "drop database if exists test_locality_add_secondary_partition;" diff --git a/polardbx-test/src/test/resources/partition/env/PartitionTableDdlTest/test_compressed_table.result b/polardbx-test/src/test/resources/partition/env/PartitionTableDdlTest/test_compressed_table.result new file mode 100644 index 000000000..a52964e22 --- /dev/null +++ b/polardbx-test/src/test/resources/partition/env/PartitionTableDdlTest/test_compressed_table.result @@ -0,0 +1,473 @@ +DROP TABLE IF EXISTS t1; +DROP TABLE IF EXISTS t2; +CREATE TABLE t1 ( + a int NOT NULL, + b int NOT NULL, + c int NOT NULL, + d int NOT NULL, + PRIMARY KEY (`a`), + UNIQUE GLOBAL INDEX `gu_compressed_c` (`c`) PARTITION BY KEY (c), + GLOBAL INDEX `g_compressed_b`(`a`, `b`) PARTITION BY KEY (a, b) +) ROW_FORMAT = COMPRESSED KEY_BLOCK_SIZE = 8 +PARTITION BY KEY (a); +INSERT INTO t1 +VALUES (101, 101, 101, 101), + (102, 102, 102, 102), + (103, 103, 103, 103), + (201, 201, 201, 201), + (202, 202, 202, 202), + (203, 203, 203, 203); +SELECT * +FROM t1 +ORDER BY a; +a,b,c,d +101,101,101,101 +102,102,102,102 +103,103,103,103 +201,201,201,201 +202,202,202,202 +203,203,203,203 +SHOW CREATE TABLE t1; +Table,Create Table +t1,CREATE TABLE `t1` ( + `a` int(11) NOT NULL, + `b` int(11) NOT NULL, + `c` int(11) NOT NULL, + `d` int(11) NOT NULL, + PRIMARY KEY (`a`), + UNIQUE GLOBAL INDEX `gu_compressed_c` (`c`) + PARTITION BY KEY(`c`) + PARTITIONS 3, + GLOBAL INDEX `g_compressed_b` (`a`, `b`) + PARTITION BY KEY(`a`,`b`) + PARTITIONS 3 +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 ROW_FORMAT = COMPRESSED KEY_BLOCK_SIZE = 8 +PARTITION BY KEY(`a`) +PARTITIONS 3 +SHOW CREATE TABLE gu_compressed_c; +Table,Create Table +gu_compressed_c_$,CREATE TABLE `gu_compressed_c_$` ( + `a` int(11) NOT NULL, + `c` int(11) NOT NULL, + UNIQUE KEY `auto_shard_key_c` USING BTREE (`c`), + KEY `_gsi_pk_idx_` USING BTREE (`a`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 ROW_FORMAT = COMPRESSED KEY_BLOCK_SIZE = 8 +PARTITION BY KEY(`c`) +PARTITIONS 3 +SHOW CREATE TABLE g_compressed_b; +Table,Create Table +g_compressed_b_$,CREATE TABLE `g_compressed_b_$` ( + `a` int(11) NOT NULL, + `b` int(11) NOT NULL, + PRIMARY KEY (`a`), + KEY `i_a_b` USING BTREE (`a`, `b`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 ROW_FORMAT = COMPRESSED KEY_BLOCK_SIZE = 8 +PARTITION BY KEY(`a`,`b`) +PARTITIONS 3 +ALTER TABLE t1 + KEY_BLOCK_SIZE = 16; +SHOW CREATE TABLE t1; +Table,Create Table +t1,CREATE TABLE `t1` ( + `a` int(11) NOT NULL, + `b` int(11) NOT NULL, + `c` int(11) NOT NULL, + `d` int(11) NOT NULL, + PRIMARY KEY (`a`) KEY_BLOCK_SIZE = 8, + UNIQUE GLOBAL INDEX `gu_compressed_c` (`c`) + PARTITION BY KEY(`c`) + PARTITIONS 3, + GLOBAL INDEX `g_compressed_b` (`a`, `b`) + PARTITION BY KEY(`a`,`b`) + PARTITIONS 3 +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 ROW_FORMAT = COMPRESSED KEY_BLOCK_SIZE = 16 +PARTITION BY KEY(`a`) +PARTITIONS 3 +SHOW CREATE TABLE gu_compressed_c; +Table,Create Table +gu_compressed_c_$,CREATE TABLE `gu_compressed_c_$` ( + `a` int(11) NOT NULL, + `c` int(11) NOT NULL, + UNIQUE KEY `auto_shard_key_c` USING BTREE (`c`) KEY_BLOCK_SIZE = 8, + KEY `_gsi_pk_idx_` USING BTREE (`a`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 ROW_FORMAT = COMPRESSED KEY_BLOCK_SIZE = 16 +PARTITION BY KEY(`c`) +PARTITIONS 3 +SHOW CREATE TABLE g_compressed_b; +Table,Create Table +g_compressed_b_$,CREATE TABLE `g_compressed_b_$` ( + `a` int(11) NOT NULL, + `b` int(11) NOT NULL, + PRIMARY KEY (`a`) KEY_BLOCK_SIZE = 8, + KEY `i_a_b` USING BTREE (`a`, `b`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 ROW_FORMAT = COMPRESSED KEY_BLOCK_SIZE = 16 +PARTITION BY KEY(`a`,`b`) +PARTITIONS 3 +SELECT * +FROM t1 +ORDER BY a; +a,b,c,d +101,101,101,101 +102,102,102,102 +103,103,103,103 +201,201,201,201 +202,202,202,202 +203,203,203,203 +ALTER TABLE t1 +PARTITION BY KEY (b); +SHOW CREATE TABLE t1; +Table,Create Table +t1,CREATE TABLE `t1` ( + `a` int(11) NOT NULL, + `b` int(11) NOT NULL, + `c` int(11) NOT NULL, + `d` int(11) NOT NULL, + PRIMARY KEY (`a`) KEY_BLOCK_SIZE = 8, + UNIQUE GLOBAL INDEX `gu_compressed_c` (`c`) COVERING (`b`) + PARTITION BY KEY(`c`) + PARTITIONS 3, + GLOBAL INDEX `g_compressed_b` (`a`, `b`) + PARTITION BY KEY(`a`,`b`) + PARTITIONS 3, + KEY `auto_shard_key_b` USING BTREE (`b`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 ROW_FORMAT = COMPRESSED KEY_BLOCK_SIZE = 16 +PARTITION BY KEY(`b`) +PARTITIONS 3 +SHOW CREATE TABLE gu_compressed_c; +Table,Create Table +gu_compressed_c_$,CREATE TABLE `gu_compressed_c_$` ( + `a` int(11) NOT NULL, + `c` int(11) NOT NULL, + `b` int(11) NOT NULL, + UNIQUE KEY `auto_shard_key_c` USING BTREE (`c`) KEY_BLOCK_SIZE = 8, + KEY `_gsi_pk_idx_` USING BTREE (`a`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 ROW_FORMAT = COMPRESSED KEY_BLOCK_SIZE = 16 +PARTITION BY KEY(`c`) +PARTITIONS 3 +SHOW CREATE TABLE g_compressed_b; +Table,Create Table +g_compressed_b_$,CREATE TABLE `g_compressed_b_$` ( + `a` int(11) NOT NULL, + `b` int(11) NOT NULL, + PRIMARY KEY (`a`) KEY_BLOCK_SIZE = 8, + KEY `i_a_b` USING BTREE (`a`, `b`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 ROW_FORMAT = COMPRESSED KEY_BLOCK_SIZE = 16 +PARTITION BY KEY(`a`,`b`) +PARTITIONS 3 +SELECT * +FROM t1 +ORDER BY a; +a,b,c,d +101,101,101,101 +102,102,102,102 +103,103,103,103 +201,201,201,201 +202,202,202,202 +203,203,203,203 +ALTER TABLE t1 + ROW_FORMAT = COMPRESSED KEY_BLOCK_SIZE = 8; +SHOW CREATE TABLE t1; +Table,Create Table +t1,CREATE TABLE `t1` ( + `a` int(11) NOT NULL, + `b` int(11) NOT NULL, + `c` int(11) NOT NULL, + `d` int(11) NOT NULL, + PRIMARY KEY (`a`), + UNIQUE GLOBAL INDEX `gu_compressed_c` (`c`) COVERING (`b`) + PARTITION BY KEY(`c`) + PARTITIONS 3, + GLOBAL INDEX `g_compressed_b` (`a`, `b`) + PARTITION BY KEY(`a`,`b`) + PARTITIONS 3, + KEY `auto_shard_key_b` USING BTREE (`b`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 ROW_FORMAT = COMPRESSED KEY_BLOCK_SIZE = 8 +PARTITION BY KEY(`b`) +PARTITIONS 3 +SHOW CREATE TABLE gu_compressed_c; +Table,Create Table +gu_compressed_c_$,CREATE TABLE `gu_compressed_c_$` ( + `a` int(11) NOT NULL, + `c` int(11) NOT NULL, + `b` int(11) NOT NULL, + UNIQUE KEY `auto_shard_key_c` USING BTREE (`c`), + KEY `_gsi_pk_idx_` USING BTREE (`a`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 ROW_FORMAT = COMPRESSED KEY_BLOCK_SIZE = 8 +PARTITION BY KEY(`c`) +PARTITIONS 3 +SHOW CREATE TABLE g_compressed_b; +Table,Create Table +g_compressed_b_$,CREATE TABLE `g_compressed_b_$` ( + `a` int(11) NOT NULL, + `b` int(11) NOT NULL, + PRIMARY KEY (`a`), + KEY `i_a_b` USING BTREE (`a`, `b`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 ROW_FORMAT = COMPRESSED KEY_BLOCK_SIZE = 8 +PARTITION BY KEY(`a`,`b`) +PARTITIONS 3 +SELECT * +FROM t1 +ORDER BY a; +a,b,c,d +101,101,101,101 +102,102,102,102 +103,103,103,103 +201,201,201,201 +202,202,202,202 +203,203,203,203 +ALTER TABLE t1 + MODIFY COLUMN a bigint, + ALGORITHM = omc; +SHOW CREATE TABLE t1; +Table,Create Table +t1,CREATE TABLE `t1` ( + `a` bigint(20) NOT NULL, + `b` int(11) NOT NULL, + `c` int(11) NOT NULL, + `d` int(11) NOT NULL, + PRIMARY KEY (`a`), + UNIQUE GLOBAL INDEX `gu_compressed_c` (`c`) COVERING (`b`) + PARTITION BY KEY(`c`) + PARTITIONS 3, + GLOBAL INDEX `g_compressed_b` (`a`, `b`) + PARTITION BY KEY(`a`,`b`) + PARTITIONS 3, + KEY `auto_shard_key_b` USING BTREE (`b`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 ROW_FORMAT = COMPRESSED KEY_BLOCK_SIZE = 8 +PARTITION BY KEY(`b`) +PARTITIONS 3 +SHOW CREATE TABLE gu_compressed_c; +Table,Create Table +gu_compressed_c_$,CREATE TABLE `gu_compressed_c_$` ( + `a` bigint(20) DEFAULT NULL, + `b` int(11) NOT NULL, + `c` int(11) NOT NULL, + UNIQUE KEY `auto_shard_key_c` USING BTREE (`c`), + KEY `_gsi_pk_idx_` USING BTREE (`a`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 ROW_FORMAT = COMPRESSED KEY_BLOCK_SIZE = 8 +PARTITION BY KEY(`c`) +PARTITIONS 3 +SHOW CREATE TABLE g_compressed_b; +Table,Create Table +g_compressed_b_$,CREATE TABLE `g_compressed_b_$` ( + `a` bigint(20) NOT NULL, + `b` int(11) NOT NULL, + PRIMARY KEY (`a`), + KEY `i_a_b` USING BTREE (`a`, `b`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 ROW_FORMAT = COMPRESSED KEY_BLOCK_SIZE = 8 +PARTITION BY KEY(`a`,`b`) +PARTITIONS 3 +SELECT * +FROM t1 +ORDER BY a; +a,b,c,d +101,101,101,101 +102,102,102,102 +103,103,103,103 +201,201,201,201 +202,202,202,202 +203,203,203,203 +ALTER TABLE t1 + MERGE PARTITIONS p1, p2 TO p12; +SHOW CREATE TABLE t1; +Table,Create Table +t1,CREATE TABLE `t1` ( + `a` bigint(20) NOT NULL, + `b` int(11) NOT NULL, + `c` int(11) NOT NULL, + `d` int(11) NOT NULL, + PRIMARY KEY (`a`), + UNIQUE GLOBAL INDEX `gu_compressed_c` (`c`) COVERING (`b`) + PARTITION BY KEY(`c`) + PARTITIONS 3, + GLOBAL INDEX `g_compressed_b` (`a`, `b`) + PARTITION BY KEY(`a`,`b`) + PARTITIONS 3, + KEY `auto_shard_key_b` USING BTREE (`b`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 ROW_FORMAT = COMPRESSED KEY_BLOCK_SIZE = 8 +PARTITION BY KEY(`b`) +PARTITIONS 2 +SHOW CREATE TABLE gu_compressed_c; +Table,Create Table +gu_compressed_c_$,CREATE TABLE `gu_compressed_c_$` ( + `a` bigint(20) DEFAULT NULL, + `b` int(11) NOT NULL, + `c` int(11) NOT NULL, + UNIQUE KEY `auto_shard_key_c` USING BTREE (`c`), + KEY `_gsi_pk_idx_` USING BTREE (`a`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 ROW_FORMAT = COMPRESSED KEY_BLOCK_SIZE = 8 +PARTITION BY KEY(`c`) +PARTITIONS 3 +SHOW CREATE TABLE g_compressed_b; +Table,Create Table +g_compressed_b_$,CREATE TABLE `g_compressed_b_$` ( + `a` bigint(20) NOT NULL, + `b` int(11) NOT NULL, + PRIMARY KEY (`a`), + KEY `i_a_b` USING BTREE (`a`, `b`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 ROW_FORMAT = COMPRESSED KEY_BLOCK_SIZE = 8 +PARTITION BY KEY(`a`,`b`) +PARTITIONS 3 +SELECT * +FROM t1 +ORDER BY a; +a,b,c,d +101,101,101,101 +102,102,102,102 +103,103,103,103 +201,201,201,201 +202,202,202,202 +203,203,203,203 +ALTER TABLE t1 + KEY_BLOCK_SIZE = 0; +SHOW CREATE TABLE t1; +Table,Create Table +t1,CREATE TABLE `t1` ( + `a` bigint(20) NOT NULL, + `b` int(11) NOT NULL, + `c` int(11) NOT NULL, + `d` int(11) NOT NULL, + PRIMARY KEY (`a`) KEY_BLOCK_SIZE = 8, + UNIQUE GLOBAL INDEX `gu_compressed_c` (`c`) COVERING (`b`) + PARTITION BY KEY(`c`) + PARTITIONS 3, + GLOBAL INDEX `g_compressed_b` (`a`, `b`) + PARTITION BY KEY(`a`,`b`) + PARTITIONS 3, + KEY `auto_shard_key_b` USING BTREE (`b`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 ROW_FORMAT = COMPRESSED +PARTITION BY KEY(`b`) +PARTITIONS 2 +SHOW CREATE TABLE gu_compressed_c; +Table,Create Table +gu_compressed_c_$,CREATE TABLE `gu_compressed_c_$` ( + `a` bigint(20) DEFAULT NULL, + `b` int(11) NOT NULL, + `c` int(11) NOT NULL, + UNIQUE KEY `auto_shard_key_c` USING BTREE (`c`) KEY_BLOCK_SIZE = 8, + KEY `_gsi_pk_idx_` USING BTREE (`a`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 ROW_FORMAT = COMPRESSED +PARTITION BY KEY(`c`) +PARTITIONS 3 +SHOW CREATE TABLE g_compressed_b; +Table,Create Table +g_compressed_b_$,CREATE TABLE `g_compressed_b_$` ( + `a` bigint(20) NOT NULL, + `b` int(11) NOT NULL, + PRIMARY KEY (`a`) KEY_BLOCK_SIZE = 8, + KEY `i_a_b` USING BTREE (`a`, `b`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 ROW_FORMAT = COMPRESSED +PARTITION BY KEY(`a`,`b`) +PARTITIONS 3 +SELECT * +FROM t1 +ORDER BY a; +a,b,c,d +101,101,101,101 +102,102,102,102 +103,103,103,103 +201,201,201,201 +202,202,202,202 +203,203,203,203 +ALTER TABLE t1 + ROW_FORMAT = DYNAMIC; +SHOW CREATE TABLE t1; +Table,Create Table +t1,CREATE TABLE `t1` ( + `a` bigint(20) NOT NULL, + `b` int(11) NOT NULL, + `c` int(11) NOT NULL, + `d` int(11) NOT NULL, + PRIMARY KEY (`a`) KEY_BLOCK_SIZE = 8, + UNIQUE GLOBAL INDEX `gu_compressed_c` (`c`) COVERING (`b`) + PARTITION BY KEY(`c`) + PARTITIONS 3, + GLOBAL INDEX `g_compressed_b` (`a`, `b`) + PARTITION BY KEY(`a`,`b`) + PARTITIONS 3, + KEY `auto_shard_key_b` USING BTREE (`b`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 ROW_FORMAT = DYNAMIC +PARTITION BY KEY(`b`) +PARTITIONS 2 +SHOW CREATE TABLE gu_compressed_c; +Table,Create Table +gu_compressed_c_$,CREATE TABLE `gu_compressed_c_$` ( + `a` bigint(20) DEFAULT NULL, + `b` int(11) NOT NULL, + `c` int(11) NOT NULL, + UNIQUE KEY `auto_shard_key_c` USING BTREE (`c`) KEY_BLOCK_SIZE = 8, + KEY `_gsi_pk_idx_` USING BTREE (`a`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 ROW_FORMAT = DYNAMIC +PARTITION BY KEY(`c`) +PARTITIONS 3 +SHOW CREATE TABLE g_compressed_b; +Table,Create Table +g_compressed_b_$,CREATE TABLE `g_compressed_b_$` ( + `a` bigint(20) NOT NULL, + `b` int(11) NOT NULL, + PRIMARY KEY (`a`) KEY_BLOCK_SIZE = 8, + KEY `i_a_b` USING BTREE (`a`, `b`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 ROW_FORMAT = DYNAMIC +PARTITION BY KEY(`a`,`b`) +PARTITIONS 3 +SELECT * +FROM t1 +ORDER BY a; +a,b,c,d +101,101,101,101 +102,102,102,102 +103,103,103,103 +201,201,201,201 +202,202,202,202 +203,203,203,203 +ALTER TABLE t1 + ROW_FORMAT = COMPRESSED KEY_BLOCK_SIZE = 8; +SHOW CREATE TABLE t1; +Table,Create Table +t1,CREATE TABLE `t1` ( + `a` bigint(20) NOT NULL, + `b` int(11) NOT NULL, + `c` int(11) NOT NULL, + `d` int(11) NOT NULL, + PRIMARY KEY (`a`), + UNIQUE GLOBAL INDEX `gu_compressed_c` (`c`) COVERING (`b`) + PARTITION BY KEY(`c`) + PARTITIONS 3, + GLOBAL INDEX `g_compressed_b` (`a`, `b`) + PARTITION BY KEY(`a`,`b`) + PARTITIONS 3, + KEY `auto_shard_key_b` USING BTREE (`b`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 ROW_FORMAT = COMPRESSED KEY_BLOCK_SIZE = 8 +PARTITION BY KEY(`b`) +PARTITIONS 2 +SHOW CREATE TABLE gu_compressed_c; +Table,Create Table +gu_compressed_c_$,CREATE TABLE `gu_compressed_c_$` ( + `a` bigint(20) DEFAULT NULL, + `b` int(11) NOT NULL, + `c` int(11) NOT NULL, + UNIQUE KEY `auto_shard_key_c` USING BTREE (`c`), + KEY `_gsi_pk_idx_` USING BTREE (`a`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 ROW_FORMAT = COMPRESSED KEY_BLOCK_SIZE = 8 +PARTITION BY KEY(`c`) +PARTITIONS 3 +SHOW CREATE TABLE g_compressed_b; +Table,Create Table +g_compressed_b_$,CREATE TABLE `g_compressed_b_$` ( + `a` bigint(20) NOT NULL, + `b` int(11) NOT NULL, + PRIMARY KEY (`a`), + KEY `i_a_b` USING BTREE (`a`, `b`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 ROW_FORMAT = COMPRESSED KEY_BLOCK_SIZE = 8 +PARTITION BY KEY(`a`,`b`) +PARTITIONS 3 +SELECT * +FROM t1 +ORDER BY a; +a,b,c,d +101,101,101,101 +102,102,102,102 +103,103,103,103 +201,201,201,201 +202,202,202,202 +203,203,203,203 \ No newline at end of file diff --git a/polardbx-test/src/test/resources/partition/env/PartitionTableDdlTest/test_compressed_table.test.yml b/polardbx-test/src/test/resources/partition/env/PartitionTableDdlTest/test_compressed_table.test.yml new file mode 100644 index 000000000..dc4a28c14 --- /dev/null +++ b/polardbx-test/src/test/resources/partition/env/PartitionTableDdlTest/test_compressed_table.test.yml @@ -0,0 +1,108 @@ +drop table if exists t1; +drop table if exists t2; + +create table t1 ( +a int not null, +b int not null, +c int not null, +d int not null, +primary key (`a`), +global unique index `gu_compressed_c`(`c`) partition by key(c), +global index `g_compressed_b`(`a`, `b`) partition by key(a,b)) +ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8 +partition by key(a); + +insert into t1 values (101, 101, 101, 101), +(102, 102, 102, 102), +(103, 103, 103, 103), +(201, 201, 201, 201), +(202, 202, 202, 202), +(203, 203, 203, 203); + +select * from t1 order by a; + +show create table t1; + +show create table gu_compressed_c; + +show create table g_compressed_b; + +alter table t1 KEY_BLOCK_SIZE = 16; + +show create table t1; + +show create table gu_compressed_c; + +show create table g_compressed_b; + +select * from t1 order by a; + +alter table t1 partition by key(b); + +show create table t1; + +show create table gu_compressed_c; + +show create table g_compressed_b; + +select * from t1 order by a; + +alter table t1 ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8; + +show create table t1; + +show create table gu_compressed_c; + +show create table g_compressed_b; + +select * from t1 order by a; + +alter table t1 modify column a bigint, algorithm=omc; + +show create table t1; + +show create table gu_compressed_c; + +show create table g_compressed_b; + +select * from t1 order by a; + +alter table t1 merge partitions p1,p2 to p12; + +show create table t1; + +show create table gu_compressed_c; + +show create table g_compressed_b; + +select * from t1 order by a; + +alter table t1 KEY_BLOCK_SIZE = 0; + +show create table t1; + +show create table gu_compressed_c; + +show create table g_compressed_b; + +select * from t1 order by a; + +alter table t1 ROW_FORMAT = DYNAMIC; + +show create table t1; + +show create table gu_compressed_c; + +show create table g_compressed_b; + +select * from t1 order by a; + +alter table t1 ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8; + +show create table t1; + +show create table gu_compressed_c; + +show create table g_compressed_b; + +select * from t1 order by a; \ No newline at end of file diff --git a/polardbx-test/src/test/resources/partition/env/PartitionTableDdlTest/test_create_table_with_blank.result b/polardbx-test/src/test/resources/partition/env/PartitionTableDdlTest/test_create_table_with_blank.result new file mode 100644 index 000000000..8f2c79706 --- /dev/null +++ b/polardbx-test/src/test/resources/partition/env/PartitionTableDdlTest/test_create_table_with_blank.result @@ -0,0 +1,24 @@ +DROP TABLE IF EXISTS ` engineer`; +DROP TABLE IF EXISTS `per % cent`; +CREATE TABLE ` engineer` ( + id INTEGER NOT NULL, + engineer_name VARCHAR(50), + PRIMARY KEY (id) +); +SHOW CREATE TABLE ` engineer`; +Table,Create Table + engineer,CREATE TABLE ` engineer` ( + `id` int(11) NOT NULL, + `engineer_name` varchar(50) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 +CREATE TABLE `per % cent` ( + `(3)` INTEGER NOT NULL AUTO_INCREMENT, + PRIMARY KEY (`(3)`) +) ENGINE = InnoDB; +SHOW CREATE TABLE `per % cent`; +Table,Create Table +per % cent,CREATE TABLE `per % cent` ( + `(3)` int(11) NOT NULL AUTO_INCREMENT, + PRIMARY KEY (`(3)`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 \ No newline at end of file diff --git a/polardbx-test/src/test/resources/partition/env/PartitionTableDdlTest/test_create_table_with_blank.test.yml b/polardbx-test/src/test/resources/partition/env/PartitionTableDdlTest/test_create_table_with_blank.test.yml new file mode 100644 index 000000000..24a204bd9 --- /dev/null +++ b/polardbx-test/src/test/resources/partition/env/PartitionTableDdlTest/test_create_table_with_blank.test.yml @@ -0,0 +1,11 @@ +drop table if exists ` engineer`; + +drop table if exists `per % cent`; + +CREATE TABLE ` engineer` ( id INTEGER NOT NULL, engineer_name VARCHAR(50), PRIMARY KEY (id)); + +show create table ` engineer`; + +CREATE TABLE `per % cent` ( `(3)` INTEGER NOT NULL AUTO_INCREMENT, PRIMARY KEY (`(3)`) )ENGINE=InnoDB; + +show create table `per % cent`; \ No newline at end of file diff --git a/polardbx-test/src/test/resources/partition/env/PartitionTableDdlTest/testcase.config.yml b/polardbx-test/src/test/resources/partition/env/PartitionTableDdlTest/testcase.config.yml index 59145d157..a247050cb 100644 --- a/polardbx-test/src/test/resources/partition/env/PartitionTableDdlTest/testcase.config.yml +++ b/polardbx-test/src/test/resources/partition/env/PartitionTableDdlTest/testcase.config.yml @@ -31,4 +31,6 @@ test_add_global_index_failed test_backfill_charset test_modify_column test_online_modify_column -test_online_modify_column_gsi \ No newline at end of file +test_online_modify_column_gsi +test_compressed_table +test_create_table_with_blank \ No newline at end of file diff --git a/polardbx-test/src/test/resources/partition/env/PartitionTablePruning2Test/test_subquery_pruning.result b/polardbx-test/src/test/resources/partition/env/PartitionTablePruning2Test/test_subquery_pruning.result index d8ba329fa..0a32cc387 100644 --- a/polardbx-test/src/test/resources/partition/env/PartitionTablePruning2Test/test_subquery_pruning.result +++ b/polardbx-test/src/test/resources/partition/env/PartitionTablePruning2Test/test_subquery_pruning.result @@ -247,12 +247,12 @@ a explain select a from sb_pruning_test1 where a in ( select t2.a from sb_pruning_test2 t2 where t2.a in (96,97,98,190) order by t2.a limit 5 ) and a between 97 and 200 order by a; Logical ExecutionPlan MergeSort(sort="a ASC") - LogicalView(tables="sb_pruning_test1[p1,p2,p3]", shardCount=3, sql="SELECT `a` FROM `sb_pruning_test1` AS `sb_pruning_test1` WHERE ((`a` IN(?)) AND (`a` BETWEEN ? AND ?)) ORDER BY `a`", isDynamicParam="true") + LogicalView(tables="sb_pruning_test1[p1,p2,p3]", shardCount=3, sql="SELECT `a` FROM `sb_pruning_test1` AS `sb_pruning_test1` WHERE ((`a` IN(?)) AND (`a` BETWEEN ? AND ?)) ORDER BY `a`") HitCache:false Source:PLAN_CACHE >> individual scalar subquery MergeSort(sort="a ASC", offset=0, fetch=?1) - LogicalView(tables="sb_pruning_test2[p1,p2]", shardCount=2, sql="SELECT `a` FROM `sb_pruning_test2` AS `sb_pruning_test2` WHERE (`a` IN(?)) ORDER BY `a` LIMIT (? + 0)", isDynamicParam="true") + LogicalView(tables="sb_pruning_test2[p1,p2]", shardCount=2, sql="SELECT `a` FROM `sb_pruning_test2` AS `sb_pruning_test2` WHERE (`a` IN(?)) ORDER BY `a` LIMIT (? + 0)", pruningInfo="all size:4*2(part), pruning size:4") select a from sb_pruning_test1 where a in ( select t2.a from sb_pruning_test2 t2 where t2.a in (96,97,98,190) order by t2.a limit 5 ) and a between 97 and 200 order by a; a 97 @@ -281,16 +281,16 @@ a explain select a from sb_pruning_test1 where a in ( select t2.a from sb_pruning_test2 t2 where t2.a in (select t3.a from sb_pruning_test3 t3 where t3.a in (96,97,98,190) ) order by t2.a limit 1,5 ) and a between 97 and 200 order by a; Logical ExecutionPlan MergeSort(sort="a ASC") - LogicalView(tables="sb_pruning_test1[p1,p2,p3]", shardCount=3, sql="SELECT `a` FROM `sb_pruning_test1` AS `sb_pruning_test1` WHERE ((`a` IN(?)) AND (`a` BETWEEN ? AND ?)) ORDER BY `a`", isDynamicParam="true") + LogicalView(tables="sb_pruning_test1[p1,p2,p3]", shardCount=3, sql="SELECT `a` FROM `sb_pruning_test1` AS `sb_pruning_test1` WHERE ((`a` IN(?)) AND (`a` BETWEEN ? AND ?)) ORDER BY `a`") HitCache:false Source:PLAN_CACHE >> individual scalar subquery TopN(sort="a ASC", offset=?1, fetch=?2) MaterializedSemiJoin(condition="a = a", type="semi") Gather(concurrent=true) - LogicalView(tables="sb_pruning_test2[p1,p2]", shardCount=2, sql="SELECT `a` FROM `sb_pruning_test2` AS `sb_pruning_test2` WHERE ((`a` IN(?)) AND (`a` IN (...)))", isDynamicParam="true") + LogicalView(tables="sb_pruning_test2[p1,p2]", shardCount=2, sql="SELECT `a` FROM `sb_pruning_test2` AS `sb_pruning_test2` WHERE ((`a` IN(?)) AND (`a` IN (...)))", pruningInfo="all size:4*2(part), pruning size:4") Gather(concurrent=true) - LogicalView(tables="sb_pruning_test3[p1,p2]", shardCount=2, sql="SELECT `a` FROM `sb_pruning_test3` AS `sb_pruning_test3` WHERE (`a` IN(?))", isDynamicParam="true") + LogicalView(tables="sb_pruning_test3[p1,p2]", shardCount=2, sql="SELECT `a` FROM `sb_pruning_test3` AS `sb_pruning_test3` WHERE (`a` IN(?))", pruningInfo="all size:4*2(part), pruning size:4") select a from sb_pruning_test1 where a in ( select t2.a from sb_pruning_test2 t2 where t2.a in (select t3.a from sb_pruning_test3 t3 where t3.a in (96,97,98,190) ) order by t2.a limit 1,5 ) and a between 97 and 200 order by a; a 97 @@ -300,7 +300,7 @@ a explain select a from sb_pruning_test1 where a in ( select t2.a from sb_pruning_test2 t2 where t2.a in (select t3.a from sb_pruning_test3 t3 where t3.a in (96,97,98,190) and t3.b<=t2.b ) order by t2.a limit 1,5 ) and a between 97 and 200 order by a; Logical ExecutionPlan MergeSort(sort="a ASC") - LogicalView(tables="sb_pruning_test1[p1,p2,p3]", shardCount=3, sql="SELECT `a` FROM `sb_pruning_test1` AS `sb_pruning_test1` WHERE ((`a` IN(?)) AND (`a` BETWEEN ? AND ?)) ORDER BY `a`", isDynamicParam="true") + LogicalView(tables="sb_pruning_test1[p1,p2,p3]", shardCount=3, sql="SELECT `a` FROM `sb_pruning_test1` AS `sb_pruning_test1` WHERE ((`a` IN(?)) AND (`a` BETWEEN ? AND ?)) ORDER BY `a`") HitCache:false Source:PLAN_CACHE >> individual scalar subquery @@ -308,9 +308,9 @@ TopN(sort="a ASC", offset=?1, fetch=?2) Project(a="a") SemiBKAJoin(condition="a = a AND b <= b", type="semi") Gather(concurrent=true) - LogicalView(tables="sb_pruning_test2[p1,p2]", shardCount=2, sql="SELECT `a`, `b` FROM `sb_pruning_test2` AS `sb_pruning_test2` WHERE (`a` IN(?))", isDynamicParam="true") + LogicalView(tables="sb_pruning_test2[p1,p2]", shardCount=2, sql="SELECT `a`, `b` FROM `sb_pruning_test2` AS `sb_pruning_test2` WHERE (`a` IN(?))", pruningInfo="all size:4*2(part), pruning size:4") Gather(concurrent=true) - LogicalView(tables="sb_pruning_test3[p1,p2]", shardCount=2, sql="SELECT `a`, `b` FROM `sb_pruning_test3` AS `sb_pruning_test3` WHERE ((`a` IN(?)) AND (`a` IN (...)))", isDynamicParam="true") + LogicalView(tables="sb_pruning_test3[p1,p2]", shardCount=2, sql="SELECT `a`, `b` FROM `sb_pruning_test3` AS `sb_pruning_test3` WHERE ((`a` IN(?)) AND (`a` IN (...)))", pruningInfo="all size:4*2(part), pruning size:4") select a from sb_pruning_test1 where a in ( select t2.a from sb_pruning_test2 t2 where t2.a in (select t3.a from sb_pruning_test3 t3 where t3.a in (96,97,98,190) and t3.b<=t2.b ) order by t2.a limit 1,5 ) and a between 97 and 200 order by a; a 97 diff --git a/polardbx-test/src/test/resources/partition/env/PartitionTablePruning3Test/test_semijoin_pruning.result b/polardbx-test/src/test/resources/partition/env/PartitionTablePruning3Test/test_semijoin_pruning.result index 601dc1919..9e9bf0c29 100644 --- a/polardbx-test/src/test/resources/partition/env/PartitionTablePruning3Test/test_semijoin_pruning.result +++ b/polardbx-test/src/test/resources/partition/env/PartitionTablePruning3Test/test_semijoin_pruning.result @@ -14,20 +14,20 @@ partition by key(cid) partitions 3; explain /*TDDL:cmd_extra(IN_SUB_QUERY_THRESHOLD=8)*/ select id from student where id in (1,6); Logical ExecutionPlan Gather(concurrent=true) - LogicalView(tables="student[p1,p2]", shardCount=2, sql="SELECT `id` FROM `student` AS `student` WHERE (`id` IN(?))", isDynamicParam="true") + LogicalView(tables="student[p1,p2]", shardCount=2, sql="SELECT `id` FROM `student` AS `student` WHERE (`id` IN(?))", pruningInfo="all size:2*2(part), pruning size:2") explain /*TDDL:cmd_extra(IN_SUB_QUERY_THRESHOLD=8)*/ select cid from course where cid in (5,7); Logical ExecutionPlan Gather(concurrent=true) - LogicalView(tables="course[p1,p3]", shardCount=2, sql="SELECT `cid` FROM `course` AS `course` WHERE (`cid` IN(?))", isDynamicParam="true") + LogicalView(tables="course[p1,p3]", shardCount=2, sql="SELECT `cid` FROM `course` AS `course` WHERE (`cid` IN(?))", pruningInfo="all size:2*2(part), pruning size:2") select id from student where id != ALL (select cid from course where cid in (5,7)) and id in (1,6); id explain /*TDDL:cmd_extra(IN_SUB_QUERY_THRESHOLD=8)*/ select id from student where id != ALL (select cid from course where cid in (5,7)) and id in (1,6); Logical ExecutionPlan Gather(concurrent=true) - LogicalView(tables="student[p1,p2,p3],course[p1,p2,p3]", shardCount=3, sql="SELECT `id` FROM `student` AS `student` WHERE ((`id` IN(?)) AND (`id` <> ALL (SELECT `cid` FROM `course` AS `course` WHERE ((`cid` IN(?)) AND (`cid` IN(?))))))", isDynamicParam="true") + LogicalView(tables="student[p1,p2,p3],course[p1,p2,p3]", shardCount=3, sql="SELECT `id` FROM `student` AS `student` WHERE ((`id` IN(?)) AND (`id` <> ALL (SELECT `cid` FROM `course` AS `course` WHERE ((`cid` IN(?)) AND (`cid` IN(?))))))") select id from student where id in (select cid from course where cid in (1,6)) and id in (1,6); id explain /*TDDL:cmd_extra(IN_SUB_QUERY_THRESHOLD=8)*/ select id from student where id in (select cid from course where cid in (1,6)) and id in (1,6); Logical ExecutionPlan Gather(concurrent=true) - LogicalView(tables="student[p1,p2],course[p1,p2]", shardCount=2, sql="SELECT `id` FROM `student` AS `student` WHERE ((`id` IN(?)) AND (`id` IN (SELECT `cid` FROM `course` AS `course` WHERE ((`cid` IN(?)) AND (`cid` IN(?))))))", isDynamicParam="true") + LogicalView(tables="student[p1,p2],course[p1,p2]", shardCount=2, sql="SELECT `id` FROM `student` AS `student` WHERE ((`id` IN(?)) AND (`id` IN (SELECT `cid` FROM `course` AS `course` WHERE ((`cid` IN(?)) AND (`cid` IN(?))))))", pruningInfo="all size:4*2(part), pruning size:4") diff --git a/polardbx-test/src/test/resources/partition/env/PartitionTablePruningTest/test_part_pruning_in.result b/polardbx-test/src/test/resources/partition/env/PartitionTablePruningTest/test_part_pruning_in.result index e021817c9..438cb6068 100644 --- a/polardbx-test/src/test/resources/partition/env/PartitionTablePruningTest/test_part_pruning_in.result +++ b/polardbx-test/src/test/resources/partition/env/PartitionTablePruningTest/test_part_pruning_in.result @@ -28,4 +28,4 @@ Logical ExecutionPlan Limit(offset=?2, fetch=?3) HashAgg(group="item_id") Gather(concurrent=true) - LogicalView(tables="application_detail[p30,p163,p210,p266,p362]", shardCount=5, sql="SELECT `item_id` FROM `application_detail` AS `application_detail` WHERE ((`seller_id` = ?) AND (`scene_id` IN(?))) GROUP BY `item_id`", isDynamicParam="true") + LogicalView(tables="application_detail[p30,p163,p210,p266,p362]", shardCount=5, sql="SELECT `item_id` FROM `application_detail` AS `application_detail` WHERE ((`seller_id` = ?) AND (`scene_id` IN(?))) GROUP BY `item_id`", pruningInfo="all size:5*5(part), pruning size:20") diff --git a/polardbx-test/src/test/resources/partition/env/PartitionTablePruningTest/test_range_merge.result b/polardbx-test/src/test/resources/partition/env/PartitionTablePruningTest/test_range_merge.result index 6638825d0..c93f609a1 100644 --- a/polardbx-test/src/test/resources/partition/env/PartitionTablePruningTest/test_range_merge.result +++ b/polardbx-test/src/test/resources/partition/env/PartitionTablePruningTest/test_range_merge.result @@ -45,4 +45,4 @@ WHERE (a = 200 AND c IN (9999); Logical ExecutionPlan Gather(concurrent=true) - LogicalView(tables="rng_cols[p3,p5,p6]", shardCount=3, sql="SELECT `a`, `b`, `c` FROM `rng_cols` AS `rng_cols` WHERE ((`c` IN(?)) AND ((`a` = ?) OR (`a` >= ?)) AND ((`b` <= ?) OR (`b` >= ?)))", isDynamicParam="true") + LogicalView(tables="rng_cols[p3,p5,p6]", shardCount=3, sql="SELECT `a`, `b`, `c` FROM `rng_cols` AS `rng_cols` WHERE ((`c` IN(?)) AND ((`a` = ?) OR (`a` >= ?)) AND ((`b` <= ?) OR (`b` >= ?)))") diff --git a/polardbx-test/src/test/resources/partition/env/PartitionTableTypeCastTest/test2.result b/polardbx-test/src/test/resources/partition/env/PartitionTableTypeCastTest/test2.result index 97908801f..0433437df 100644 --- a/polardbx-test/src/test/resources/partition/env/PartitionTableTypeCastTest/test2.result +++ b/polardbx-test/src/test/resources/partition/env/PartitionTableTypeCastTest/test2.result @@ -13,7 +13,7 @@ PARTITIONS 8; explain /*TDDL:cmd_extra(USE_FAST_SINGLE_POINT_INTERVAL_MERGING=TRUE)*/SELECT nation.n_nationkey, nation.n_regionkey, nation.n_comment, nation.n_name FROM nation WHERE nation.n_name <= 'FEGYPT' AND nation.n_nationkey = 4 AND nation.n_regionkey * 1.125 <= 4.597964841150929 AND nation.n_regionkey <= 4.603817292328983 AND nation.n_nationkey IN (4, 6.571142182969552E7, 1.0225007368253655E9, 1.3282392195771594E9) AND nation.n_comment IS NOT NULL AND nation.n_regionkey - 5 > -1.2458977715312591 AND nation.n_name != 'eD^)&oW4*F' AND nation.n_comment != 'F!fd)e' AND nation.n_name > 'DEGYPT' GROUP BY nation.n_nationkey, nation.n_regionkey, nation.n_comment, nation.n_name ORDER BY nation.n_nationkey, nation.n_regionkey, nation.n_comment, nation.n_name; Logical ExecutionPlan MergeSort(sort="n_nationkey ASC,n_regionkey ASC,n_comment ASC,n_name ASC") - LogicalView(tables="nation[p4,p6,p8]", shardCount=3, sql="SELECT `N_NATIONKEY` AS `n_nationkey`, `N_REGIONKEY` AS `n_regionkey`, `N_COMMENT` AS `n_comment`, `N_NAME` AS `n_name` FROM `nation` AS `nation` WHERE ((`N_NATIONKEY` = ?) AND ((`N_REGIONKEY` * ?) <= ?) AND ((`N_REGIONKEY` - ?) > ?) AND (`N_NATIONKEY` IN(?)) AND (`N_NAME` <= ?) AND (`N_REGIONKEY` <= ?) AND (`N_NAME` > ?) AND (`N_COMMENT` IS NOT NULL) AND (`N_NAME` <> ?) AND (`N_COMMENT` <> ?)) ORDER BY `N_NATIONKEY`, `N_REGIONKEY`, `N_COMMENT`, `N_NAME`", isDynamicParam="true") + LogicalView(tables="nation[p4,p6,p8]", shardCount=3, sql="SELECT `N_NATIONKEY` AS `n_nationkey`, `N_REGIONKEY` AS `n_regionkey`, `N_COMMENT` AS `n_comment`, `N_NAME` AS `n_name` FROM `nation` AS `nation` WHERE ((`N_NATIONKEY` = ?) AND ((`N_REGIONKEY` * ?) <= ?) AND ((`N_REGIONKEY` - ?) > ?) AND (`N_NATIONKEY` IN(?)) AND (`N_NAME` <= ?) AND (`N_REGIONKEY` <= ?) AND (`N_NAME` > ?) AND (`N_COMMENT` IS NOT NULL) AND (`N_NAME` <> ?) AND (`N_COMMENT` <> ?)) ORDER BY `N_NATIONKEY`, `N_REGIONKEY`, `N_COMMENT`, `N_NAME`", pruningInfo="all size:4*3(part), pruning size:8") explain /*TDDL:cmd_extra(USE_FAST_SINGLE_POINT_INTERVAL_MERGING=FALSE)*/SELECT nation.n_nationkey, nation.n_regionkey, nation.n_comment, nation.n_name FROM nation WHERE nation.n_name <= 'FEGYPT' AND nation.n_nationkey = 4 AND nation.n_regionkey * 1.125 <= 4.597964841150929 AND nation.n_regionkey <= 4.603817292328983 AND nation.n_nationkey IN (4, 6.571142182969552E7, 1.0225007368253655E9, 1.3282392195771594E9) AND nation.n_comment IS NOT NULL AND nation.n_regionkey - 5 > -1.2458977715312591 AND nation.n_name != 'eD^)&oW4*F' AND nation.n_comment != 'F!fd)e' AND nation.n_name > 'DEGYPT' GROUP BY nation.n_nationkey, nation.n_regionkey, nation.n_comment, nation.n_name ORDER BY nation.n_nationkey, nation.n_regionkey, nation.n_comment, nation.n_name; Logical ExecutionPlan PhyTableOperation(tables="nation[p8]", sql="SELECT `nation`.`N_NATIONKEY` AS `n_nationkey`, `nation`.`N_REGIONKEY` AS `n_regionkey`, `nation`.`N_COMMENT` AS `n_comment`, `nation`.`N_NAME` AS `n_name` FROM ? AS `nation` WHERE ((`nation`.`N_NAME` <= ?) AND (`nation`.`N_NATIONKEY` = ?) AND ((`nation`.`N_REGIONKEY` * ?) <= ?) AND (`nation`.`N_REGIONKEY` <= ?) AND (`nation`.`N_NATIONKEY` IN (?)) AND (`nation`.`N_COMMENT` IS NOT NULL) AND ((`nation`.`N_REGIONKEY` - ?) > ?) AND (`nation`.`N_NAME` <> ?) AND (`nation`.`N_COMMENT` <> ?) AND (`nation`.`N_NAME` > ?)) GROUP BY `nation`.`N_NATIONKEY`, `nation`.`N_REGIONKEY`, `nation`.`N_COMMENT`, `nation`.`N_NAME` ORDER BY `nation`.`N_NATIONKEY`, `nation`.`N_REGIONKEY`, `nation`.`N_COMMENT`, `nation`.`N_NAME`", params="4,Raw(4,6.571142182969552E7,1.0225007368253655E9,1.3282392195771594E9),4.597964841150929,-1.2458977715312591,eD^)&oW4*F,DEGYPT,F!fd)e,FEGYPT,1.125,5,4.603817292328983") diff --git a/polardbx-test/src/test/resources/partition/env/SubPartitionTableAlter3Test/test_add_p_with_sp.result b/polardbx-test/src/test/resources/partition/env/SubPartitionTableAlter3Test/test_add_p_with_sp.result new file mode 100644 index 000000000..03157b4da --- /dev/null +++ b/polardbx-test/src/test/resources/partition/env/SubPartitionTableAlter3Test/test_add_p_with_sp.result @@ -0,0 +1,179 @@ +## DISABLE_FAST_SQL_PARSER +CREATE TABLE `ntp_sp_l_k3` ( +`id` bigint NOT NULL, +`c1` bigint NOT NULL, +`c2` bigint NOT NULL, +PRIMARY KEY (`id`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 DEFAULT COLLATE = utf8mb4_general_ci +PARTITION BY LIST(`c1`) +SUBPARTITION BY KEY(`c2`,`id`) +( +PARTITION p1001 VALUES IN (1001) SUBPARTITIONS 2, +PARTITION p1002 VALUES IN (1002) SUBPARTITIONS 3, +PARTITION pd VALUES IN (default) SUBPARTITIONS 4 +); +CREATE TABLE `ntp_sp_l_k4` ( +`id` bigint NOT NULL, +`c1` bigint NOT NULL, +`c2` bigint NOT NULL, +PRIMARY KEY (`id`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 DEFAULT COLLATE = utf8mb4_general_ci +PARTITION BY LIST(`c1`) +SUBPARTITION BY KEY(`c2`,`id`) +( +PARTITION p1001 VALUES IN (1001) SUBPARTITIONS 2, +PARTITION p1002 VALUES IN (1002) SUBPARTITIONS 3, +PARTITION pd VALUES IN (default) SUBPARTITIONS 4 +); +show create table ntp_sp_l_k3; +Table,Create Table +ntp_sp_l_k3,CREATE TABLE `ntp_sp_l_k3` ( + `id` bigint(20) NOT NULL, + `c1` bigint(20) NOT NULL, + `c2` bigint(20) NOT NULL, + PRIMARY KEY (`id`), + KEY `auto_shard_key_c1` USING BTREE (`c1`), + KEY `auto_shard_key_c2_id` USING BTREE (`c2`, `id`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 +PARTITION BY LIST(`c1`) +SUBPARTITION BY KEY(`c2`,`id`) +(PARTITION p1001 VALUES IN (1001) + (SUBPARTITION p1001sp1 ENGINE = InnoDB, + SUBPARTITION p1001sp2 ENGINE = InnoDB), + PARTITION p1002 VALUES IN (1002) + (SUBPARTITION p1002sp1 ENGINE = InnoDB, + SUBPARTITION p1002sp2 ENGINE = InnoDB, + SUBPARTITION p1002sp3 ENGINE = InnoDB), + PARTITION pd VALUES IN (DEFAULT) + (SUBPARTITION pdsp1 ENGINE = InnoDB, + SUBPARTITION pdsp2 ENGINE = InnoDB, + SUBPARTITION pdsp3 ENGINE = InnoDB, + SUBPARTITION pdsp4 ENGINE = InnoDB)) +alter tablegroup by table ntp_sp_l_k3 add partition +( + PARTITION p1003 VALUES IN (1003) SUBPARTITIONS 2, + PARTITION p1004 VALUES IN (1004) SUBPARTITIONS 3 +); +show create table ntp_sp_l_k4; +Table,Create Table +ntp_sp_l_k4,CREATE TABLE `ntp_sp_l_k4` ( + `id` bigint(20) NOT NULL, + `c1` bigint(20) NOT NULL, + `c2` bigint(20) NOT NULL, + PRIMARY KEY (`id`), + KEY `auto_shard_key_c1` USING BTREE (`c1`), + KEY `auto_shard_key_c2_id` USING BTREE (`c2`, `id`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 +PARTITION BY LIST(`c1`) +SUBPARTITION BY KEY(`c2`,`id`) +(PARTITION p1001 VALUES IN (1001) + (SUBPARTITION p1001sp1 ENGINE = InnoDB, + SUBPARTITION p1001sp2 ENGINE = InnoDB), + PARTITION p1002 VALUES IN (1002) + (SUBPARTITION p1002sp1 ENGINE = InnoDB, + SUBPARTITION p1002sp2 ENGINE = InnoDB, + SUBPARTITION p1002sp3 ENGINE = InnoDB), + PARTITION p1003 VALUES IN (1003) + (SUBPARTITION p1003sp1 ENGINE = InnoDB, + SUBPARTITION p1003sp2 ENGINE = InnoDB), + PARTITION p1004 VALUES IN (1004) + (SUBPARTITION p1004sp3 ENGINE = InnoDB, + SUBPARTITION p1004sp4 ENGINE = InnoDB, + SUBPARTITION p1004sp5 ENGINE = InnoDB), + PARTITION pd VALUES IN (DEFAULT) + (SUBPARTITION pdsp1 ENGINE = InnoDB, + SUBPARTITION pdsp2 ENGINE = InnoDB, + SUBPARTITION pdsp3 ENGINE = InnoDB, + SUBPARTITION pdsp4 ENGINE = InnoDB)) +alter tablegroup by table ntp_sp_l_k3 drop partition p1003,p1004; +alter table ntp_sp_l_k4 add partition +( +PARTITION p1003 VALUES IN (1003) SUBPARTITIONS 2, +PARTITION p1004 VALUES IN (1004) SUBPARTITIONS 3 +); +show create table ntp_sp_l_k4; +Table,Create Table +ntp_sp_l_k4,CREATE TABLE `ntp_sp_l_k4` ( + `id` bigint(20) NOT NULL, + `c1` bigint(20) NOT NULL, + `c2` bigint(20) NOT NULL, + PRIMARY KEY (`id`), + KEY `auto_shard_key_c1` USING BTREE (`c1`), + KEY `auto_shard_key_c2_id` USING BTREE (`c2`, `id`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 +PARTITION BY LIST(`c1`) +SUBPARTITION BY KEY(`c2`,`id`) +(PARTITION p1001 VALUES IN (1001) + (SUBPARTITION p1001sp1 ENGINE = InnoDB, + SUBPARTITION p1001sp2 ENGINE = InnoDB), + PARTITION p1002 VALUES IN (1002) + (SUBPARTITION p1002sp1 ENGINE = InnoDB, + SUBPARTITION p1002sp2 ENGINE = InnoDB, + SUBPARTITION p1002sp3 ENGINE = InnoDB), + PARTITION p1003 VALUES IN (1003) + (SUBPARTITION p1003sp5 ENGINE = InnoDB, + SUBPARTITION p1003sp6 ENGINE = InnoDB), + PARTITION p1004 VALUES IN (1004) + (SUBPARTITION p1004sp7 ENGINE = InnoDB, + SUBPARTITION p1004sp8 ENGINE = InnoDB, + SUBPARTITION p1004sp9 ENGINE = InnoDB), + PARTITION pd VALUES IN (DEFAULT) + (SUBPARTITION pdsp1 ENGINE = InnoDB, + SUBPARTITION pdsp2 ENGINE = InnoDB, + SUBPARTITION pdsp3 ENGINE = InnoDB, + SUBPARTITION pdsp4 ENGINE = InnoDB)) +drop table ntp_sp_l_k3; +drop table ntp_sp_l_k4; +CREATE TABLE `tp_sp_l_k3` ( +`id` bigint NOT NULL, +`c1` bigint NOT NULL, +`c2` bigint NOT NULL, +PRIMARY KEY (`id`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 DEFAULT COLLATE = utf8mb4_general_ci +PARTITION BY LIST(`c1`) +SUBPARTITION BY KEY(`c2`,`id`) +SUBPARTITIONS 3 +( +PARTITION p1001 VALUES IN (1001), +PARTITION p1002 VALUES IN (1002), +PARTITION pd VALUES IN (default) +); +CREATE TABLE `tp_sp_l_k4` ( +`id` bigint NOT NULL, +`c1` bigint NOT NULL, +`c2` bigint NOT NULL, +PRIMARY KEY (`id`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 DEFAULT COLLATE = utf8mb4_general_ci +PARTITION BY LIST(`c1`) +SUBPARTITION BY KEY(`c2`,`id`) +SUBPARTITIONS 3 +( +PARTITION p1001 VALUES IN (1001), +PARTITION p1002 VALUES IN (1002), +PARTITION pd VALUES IN (default) +); +alter tablegroup by table tp_sp_l_k3 add partition +( +PARTITION p1003 VALUES IN (1003), +PARTITION p1004 VALUES IN (1004) +); +show create table tp_sp_l_k4; +Table,Create Table +tp_sp_l_k4,CREATE TABLE `tp_sp_l_k4` ( + `id` bigint(20) NOT NULL, + `c1` bigint(20) NOT NULL, + `c2` bigint(20) NOT NULL, + PRIMARY KEY (`id`), + KEY `auto_shard_key_c1` USING BTREE (`c1`), + KEY `auto_shard_key_c2_id` USING BTREE (`c2`, `id`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 +PARTITION BY LIST(`c1`) +SUBPARTITION BY KEY(`c2`,`id`) +SUBPARTITIONS 3 +(PARTITION p1001 VALUES IN (1001), + PARTITION p1002 VALUES IN (1002), + PARTITION p1003 VALUES IN (1003), + PARTITION p1004 VALUES IN (1004), + PARTITION pd VALUES IN (DEFAULT)) +drop table tp_sp_l_k3; +drop table tp_sp_l_k4; \ No newline at end of file diff --git a/polardbx-test/src/test/resources/partition/env/SubPartitionTableAlter3Test/test_add_p_with_sp.test.yml b/polardbx-test/src/test/resources/partition/env/SubPartitionTableAlter3Test/test_add_p_with_sp.test.yml new file mode 100644 index 000000000..a63d79cc5 --- /dev/null +++ b/polardbx-test/src/test/resources/partition/env/SubPartitionTableAlter3Test/test_add_p_with_sp.test.yml @@ -0,0 +1,93 @@ +## DISABLE_FAST_SQL_PARSER + +CREATE TABLE `ntp_sp_l_k3` ( +`id` bigint NOT NULL, +`c1` bigint NOT NULL, +`c2` bigint NOT NULL, +PRIMARY KEY (`id`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 DEFAULT COLLATE = utf8mb4_general_ci +PARTITION BY LIST(`c1`) +SUBPARTITION BY KEY(`c2`,`id`) +( +PARTITION `p1001` VALUES IN (1001) SUBPARTITIONS 2, +PARTITION `p1002` VALUES IN (1002) SUBPARTITIONS 3, +PARTITION `pd` VALUES IN (default) SUBPARTITIONS 4 +); + +CREATE TABLE `ntp_sp_l_k4` ( +`id` bigint NOT NULL, +`c1` bigint NOT NULL, +`c2` bigint NOT NULL, +PRIMARY KEY (`id`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 DEFAULT COLLATE = utf8mb4_general_ci +PARTITION BY LIST(`c1`) +SUBPARTITION BY KEY(`c2`,`id`) +( +PARTITION `p1001` VALUES IN (1001) SUBPARTITIONS 2, +PARTITION `p1002` VALUES IN (1002) SUBPARTITIONS 3, +PARTITION `pd` VALUES IN (default) SUBPARTITIONS 4 +); + +show create table ntp_sp_l_k3; + +alter tablegroup by table ntp_sp_l_k3 add partition +( + PARTITION `p1003` VALUES IN (1003) SUBPARTITIONS 2, + PARTITION `p1004` VALUES IN (1004) SUBPARTITIONS 3 +); +show create table ntp_sp_l_k4; + +alter tablegroup by table ntp_sp_l_k3 drop partition p1003,p1004; + +alter table ntp_sp_l_k4 add partition +( +PARTITION `p1003` VALUES IN (1003) SUBPARTITIONS 2, +PARTITION `p1004` VALUES IN (1004) SUBPARTITIONS 3 +); +show create table ntp_sp_l_k4; + +drop table ntp_sp_l_k3; +drop table ntp_sp_l_k4; + +CREATE TABLE `tp_sp_l_k3` ( +`id` bigint NOT NULL, +`c1` bigint NOT NULL, +`c2` bigint NOT NULL, +PRIMARY KEY (`id`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 DEFAULT COLLATE = utf8mb4_general_ci +PARTITION BY LIST(`c1`) +SUBPARTITION BY KEY(`c2`,`id`) +SUBPARTITIONS 3 +( +PARTITION `p1001` VALUES IN (1001), +PARTITION `p1002` VALUES IN (1002), +PARTITION `pd` VALUES IN (default) +); + +CREATE TABLE `tp_sp_l_k4` ( +`id` bigint NOT NULL, +`c1` bigint NOT NULL, +`c2` bigint NOT NULL, +PRIMARY KEY (`id`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 DEFAULT COLLATE = utf8mb4_general_ci +PARTITION BY LIST(`c1`) +SUBPARTITION BY KEY(`c2`,`id`) +SUBPARTITIONS 3 +( +PARTITION `p1001` VALUES IN (1001), +PARTITION `p1002` VALUES IN (1002), +PARTITION `pd` VALUES IN (default) +); + +alter tablegroup by table tp_sp_l_k3 add partition +( +PARTITION `p1003` VALUES IN (1003), +PARTITION `p1004` VALUES IN (1004) +); + +show create table tp_sp_l_k4; + +drop table tp_sp_l_k3; +drop table tp_sp_l_k4; + + diff --git a/polardbx-test/src/test/resources/partition/env/SubPartitionTableAlter3Test/test_split_p_with_sp.result b/polardbx-test/src/test/resources/partition/env/SubPartitionTableAlter3Test/test_split_p_with_sp.result new file mode 100644 index 000000000..7ff56515e --- /dev/null +++ b/polardbx-test/src/test/resources/partition/env/SubPartitionTableAlter3Test/test_split_p_with_sp.result @@ -0,0 +1,215 @@ +## DISABLE_FAST_SQL_PARSER +CREATE TABLE `ntp_sp_l_k1` ( +`id` bigint NOT NULL, +`c1` bigint NOT NULL, +`c2` bigint NOT NULL, +PRIMARY KEY (`id`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 DEFAULT COLLATE = utf8mb4_general_ci +PARTITION BY LIST(`c1`) +SUBPARTITION BY KEY(`c2`,`id`) +( +PARTITION p1001 VALUES IN (1001) SUBPARTITIONS 2, +PARTITION p1002 VALUES IN (1002) SUBPARTITIONS 3, +PARTITION pd VALUES IN (default) SUBPARTITIONS 4 +); +CREATE TABLE `ntp_sp_l_k2` ( +`id` bigint NOT NULL, +`c1` bigint NOT NULL, +`c2` bigint NOT NULL, +PRIMARY KEY (`id`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 DEFAULT COLLATE = utf8mb4_general_ci +PARTITION BY LIST(`c1`) +SUBPARTITION BY KEY(`c2`,`id`) +( +PARTITION p1001 VALUES IN (1001) SUBPARTITIONS 2, +PARTITION p1002 VALUES IN (1002) SUBPARTITIONS 3, +PARTITION pd VALUES IN (default) SUBPARTITIONS 4 +); +alter tablegroup by table ntp_sp_l_k1 split partition `pd` into +( +PARTITION p1003 VALUES IN (1003) SUBPARTITIONS 2, +PARTITION p1004 VALUES IN (1004) SUBPARTITIONS 1, +PARTITION p1005 VALUES IN (1005) SUBPARTITIONS 3 ( +SUBPARTITION p1005sp1 VALUES LESS THAN(10,maxvalue), +SUBPARTITION p1005sp2 VALUES LESS THAN(100,maxvalue), +SUBPARTITION p1005sp3 VALUES LESS THAN(maxvalue,maxvalue) +), +PARTITION p1006 VALUES IN (1006), +PARTITION pd VALUES IN (default) SUBPARTITIONS 5 +); +show create table ntp_sp_l_k2; +Table,Create Table +ntp_sp_l_k2,CREATE TABLE `ntp_sp_l_k2` ( + `id` bigint(20) NOT NULL, + `c1` bigint(20) NOT NULL, + `c2` bigint(20) NOT NULL, + PRIMARY KEY (`id`), + KEY `auto_shard_key_c1` USING BTREE (`c1`), + KEY `auto_shard_key_c2_id` USING BTREE (`c2`, `id`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 +PARTITION BY LIST(`c1`) +SUBPARTITION BY KEY(`c2`,`id`) +(PARTITION p1001 VALUES IN (1001) + (SUBPARTITION p1001sp1 ENGINE = InnoDB, + SUBPARTITION p1001sp2 ENGINE = InnoDB), + PARTITION p1002 VALUES IN (1002) + (SUBPARTITION p1002sp1 ENGINE = InnoDB, + SUBPARTITION p1002sp2 ENGINE = InnoDB, + SUBPARTITION p1002sp3 ENGINE = InnoDB), + PARTITION p1003 VALUES IN (1003) + (SUBPARTITION p1003sp1 ENGINE = InnoDB, + SUBPARTITION p1003sp2 ENGINE = InnoDB), + PARTITION p1004 VALUES IN (1004) + (SUBPARTITION p1004sp3 ENGINE = InnoDB), + PARTITION p1005 VALUES IN (1005) + (SUBPARTITION p1005sp1 ENGINE = InnoDB, + SUBPARTITION p1005sp2 ENGINE = InnoDB, + SUBPARTITION p1005sp3 ENGINE = InnoDB), + PARTITION p1006 VALUES IN (1006) + (SUBPARTITION p1006sp4 ENGINE = InnoDB, + SUBPARTITION p1006sp5 ENGINE = InnoDB, + SUBPARTITION p1006sp6 ENGINE = InnoDB, + SUBPARTITION p1006sp7 ENGINE = InnoDB), + PARTITION pd VALUES IN (DEFAULT) + (SUBPARTITION pdsp8 ENGINE = InnoDB, + SUBPARTITION pdsp9 ENGINE = InnoDB, + SUBPARTITION pdsp10 ENGINE = InnoDB, + SUBPARTITION pdsp11 ENGINE = InnoDB, + SUBPARTITION pdsp12 ENGINE = InnoDB)) +alter tablegroup by table ntp_sp_l_k1 drop partition p1003,p1004,p1005,p1006; +show create table ntp_sp_l_k1; +Table,Create Table +ntp_sp_l_k1,CREATE TABLE `ntp_sp_l_k1` ( + `id` bigint(20) NOT NULL, + `c1` bigint(20) NOT NULL, + `c2` bigint(20) NOT NULL, + PRIMARY KEY (`id`), + KEY `auto_shard_key_c1` USING BTREE (`c1`), + KEY `auto_shard_key_c2_id` USING BTREE (`c2`, `id`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 +PARTITION BY LIST(`c1`) +SUBPARTITION BY KEY(`c2`,`id`) +(PARTITION p1001 VALUES IN (1001) + (SUBPARTITION p1001sp1 ENGINE = InnoDB, + SUBPARTITION p1001sp2 ENGINE = InnoDB), + PARTITION p1002 VALUES IN (1002) + (SUBPARTITION p1002sp1 ENGINE = InnoDB, + SUBPARTITION p1002sp2 ENGINE = InnoDB, + SUBPARTITION p1002sp3 ENGINE = InnoDB), + PARTITION pd VALUES IN (DEFAULT) + (SUBPARTITION pdsp8 ENGINE = InnoDB, + SUBPARTITION pdsp9 ENGINE = InnoDB, + SUBPARTITION pdsp10 ENGINE = InnoDB, + SUBPARTITION pdsp11 ENGINE = InnoDB, + SUBPARTITION pdsp12 ENGINE = InnoDB)) +alter table ntp_sp_l_k2 split partition `pd` into +( +PARTITION p1003 VALUES IN (1003) SUBPARTITIONS 2, +PARTITION p1004 VALUES IN (1004) SUBPARTITIONS 1, +PARTITION p1005 VALUES IN (1005) SUBPARTITIONS 3 ( +SUBPARTITION p1005sp1 VALUES LESS THAN(10,maxvalue), +SUBPARTITION p1005sp2 VALUES LESS THAN(100,maxvalue), +SUBPARTITION p1005sp3 VALUES LESS THAN(maxvalue,maxvalue) +), +PARTITION p1006 VALUES IN (1006), +PARTITION pd VALUES IN (default) SUBPARTITIONS 4 +); +show create table ntp_sp_l_k2; +Table,Create Table +ntp_sp_l_k2,CREATE TABLE `ntp_sp_l_k2` ( + `id` bigint(20) NOT NULL, + `c1` bigint(20) NOT NULL, + `c2` bigint(20) NOT NULL, + PRIMARY KEY (`id`), + KEY `auto_shard_key_c1` USING BTREE (`c1`), + KEY `auto_shard_key_c2_id` USING BTREE (`c2`, `id`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 +PARTITION BY LIST(`c1`) +SUBPARTITION BY KEY(`c2`,`id`) +(PARTITION p1001 VALUES IN (1001) + (SUBPARTITION p1001sp1 ENGINE = InnoDB, + SUBPARTITION p1001sp2 ENGINE = InnoDB), + PARTITION p1002 VALUES IN (1002) + (SUBPARTITION p1002sp1 ENGINE = InnoDB, + SUBPARTITION p1002sp2 ENGINE = InnoDB, + SUBPARTITION p1002sp3 ENGINE = InnoDB), + PARTITION p1003 VALUES IN (1003) + (SUBPARTITION p1003sp1 ENGINE = InnoDB, + SUBPARTITION p1003sp2 ENGINE = InnoDB), + PARTITION p1004 VALUES IN (1004) + (SUBPARTITION p1004sp3 ENGINE = InnoDB), + PARTITION p1005 VALUES IN (1005) + (SUBPARTITION p1005sp1 ENGINE = InnoDB, + SUBPARTITION p1005sp2 ENGINE = InnoDB, + SUBPARTITION p1005sp3 ENGINE = InnoDB), + PARTITION p1006 VALUES IN (1006) + (SUBPARTITION p1006sp4 ENGINE = InnoDB, + SUBPARTITION p1006sp5 ENGINE = InnoDB, + SUBPARTITION p1006sp6 ENGINE = InnoDB, + SUBPARTITION p1006sp7 ENGINE = InnoDB, + SUBPARTITION p1006sp13 ENGINE = InnoDB), + PARTITION pd VALUES IN (DEFAULT) + (SUBPARTITION pdsp14 ENGINE = InnoDB, + SUBPARTITION pdsp15 ENGINE = InnoDB, + SUBPARTITION pdsp16 ENGINE = InnoDB, + SUBPARTITION pdsp17 ENGINE = InnoDB)) +drop table ntp_sp_l_k1; +drop table ntp_sp_l_k2; +CREATE TABLE `tp_sp_l_k1` ( +`id` bigint NOT NULL, +`c1` bigint NOT NULL, +`c2` bigint NOT NULL, +PRIMARY KEY (`id`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 DEFAULT COLLATE = utf8mb4_general_ci +PARTITION BY LIST(`c1`) +SUBPARTITION BY KEY(`c2`,`id`) +SUBPARTITIONS 3 +( +PARTITION p1001 VALUES IN (1001), +PARTITION p1002 VALUES IN (1002), +PARTITION pd VALUES IN (default) +); +CREATE TABLE `tp_sp_l_k2` ( +`id` bigint NOT NULL, +`c1` bigint NOT NULL, +`c2` bigint NOT NULL, +PRIMARY KEY (`id`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 DEFAULT COLLATE = utf8mb4_general_ci +PARTITION BY LIST(`c1`) +SUBPARTITION BY KEY(`c2`,`id`) +SUBPARTITIONS 3 +( +PARTITION p1001 VALUES IN (1001), +PARTITION p1002 VALUES IN (1002), +PARTITION pd VALUES IN (default) +); +alter tablegroup by table tp_sp_l_k1 split partition `pd` into +( +PARTITION p1003 VALUES IN (1003), +PARTITION p1004 VALUES IN (1004), +PARTITION p1005 VALUES IN (1005), +PARTITION p1006 VALUES IN (1006), +PARTITION pd VALUES IN (default) +); +show create table tp_sp_l_k1; +Table,Create Table +tp_sp_l_k1,CREATE TABLE `tp_sp_l_k1` ( + `id` bigint(20) NOT NULL, + `c1` bigint(20) NOT NULL, + `c2` bigint(20) NOT NULL, + PRIMARY KEY (`id`), + KEY `auto_shard_key_c1` USING BTREE (`c1`), + KEY `auto_shard_key_c2_id` USING BTREE (`c2`, `id`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 +PARTITION BY LIST(`c1`) +SUBPARTITION BY KEY(`c2`,`id`) +SUBPARTITIONS 3 +(PARTITION p1001 VALUES IN (1001), + PARTITION p1002 VALUES IN (1002), + PARTITION p1003 VALUES IN (1003), + PARTITION p1004 VALUES IN (1004), + PARTITION p1005 VALUES IN (1005), + PARTITION p1006 VALUES IN (1006), + PARTITION pd VALUES IN (DEFAULT)) +drop table tp_sp_l_k1; +drop table tp_sp_l_k2; \ No newline at end of file diff --git a/polardbx-test/src/test/resources/partition/env/SubPartitionTableAlter3Test/test_split_p_with_sp.test.yml b/polardbx-test/src/test/resources/partition/env/SubPartitionTableAlter3Test/test_split_p_with_sp.test.yml new file mode 100644 index 000000000..c16ee894c --- /dev/null +++ b/polardbx-test/src/test/resources/partition/env/SubPartitionTableAlter3Test/test_split_p_with_sp.test.yml @@ -0,0 +1,110 @@ +## DISABLE_FAST_SQL_PARSER + +CREATE TABLE `ntp_sp_l_k1` ( +`id` bigint NOT NULL, +`c1` bigint NOT NULL, +`c2` bigint NOT NULL, +PRIMARY KEY (`id`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 DEFAULT COLLATE = utf8mb4_general_ci +PARTITION BY LIST(`c1`) +SUBPARTITION BY KEY(`c2`,`id`) +( +PARTITION `p1001` VALUES IN (1001) SUBPARTITIONS 2, +PARTITION `p1002` VALUES IN (1002) SUBPARTITIONS 3, +PARTITION `pd` VALUES IN (default) SUBPARTITIONS 4 +); + +CREATE TABLE `ntp_sp_l_k2` ( +`id` bigint NOT NULL, +`c1` bigint NOT NULL, +`c2` bigint NOT NULL, +PRIMARY KEY (`id`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 DEFAULT COLLATE = utf8mb4_general_ci +PARTITION BY LIST(`c1`) +SUBPARTITION BY KEY(`c2`,`id`) +( +PARTITION `p1001` VALUES IN (1001) SUBPARTITIONS 2, +PARTITION `p1002` VALUES IN (1002) SUBPARTITIONS 3, +PARTITION `pd` VALUES IN (default) SUBPARTITIONS 4 +); + +alter tablegroup by table ntp_sp_l_k1 split partition `pd` into +( +PARTITION `p1003` VALUES IN (1003) SUBPARTITIONS 2, +PARTITION `p1004` VALUES IN (1004) SUBPARTITIONS 1, +PARTITION `p1005` VALUES IN (1005) SUBPARTITIONS 3 ( +SUBPARTITION p1005sp1 VALUES LESS THAN(10,maxvalue), +SUBPARTITION p1005sp2 VALUES LESS THAN(100,maxvalue), +SUBPARTITION p1005sp3 VALUES LESS THAN(maxvalue,maxvalue) +), +PARTITION `p1006` VALUES IN (1006), +PARTITION `pd` VALUES IN (default) SUBPARTITIONS 5 +); +show create table ntp_sp_l_k2; + +alter tablegroup by table ntp_sp_l_k1 drop partition p1003,p1004,p1005,p1006; +show create table ntp_sp_l_k1; + +alter table ntp_sp_l_k2 split partition `pd` into +( +PARTITION `p1003` VALUES IN (1003) SUBPARTITIONS 2, +PARTITION `p1004` VALUES IN (1004) SUBPARTITIONS 1, +PARTITION `p1005` VALUES IN (1005) SUBPARTITIONS 3 ( +SUBPARTITION p1005sp1 VALUES LESS THAN(10,maxvalue), +SUBPARTITION p1005sp2 VALUES LESS THAN(100,maxvalue), +SUBPARTITION p1005sp3 VALUES LESS THAN(maxvalue,maxvalue) +), +PARTITION `p1006` VALUES IN (1006), +PARTITION `pd` VALUES IN (default) SUBPARTITIONS 4 +); + +show create table ntp_sp_l_k2; + +drop table ntp_sp_l_k1; +drop table ntp_sp_l_k2; + +CREATE TABLE `tp_sp_l_k1` ( +`id` bigint NOT NULL, +`c1` bigint NOT NULL, +`c2` bigint NOT NULL, +PRIMARY KEY (`id`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 DEFAULT COLLATE = utf8mb4_general_ci +PARTITION BY LIST(`c1`) +SUBPARTITION BY KEY(`c2`,`id`) +SUBPARTITIONS 3 +( +PARTITION `p1001` VALUES IN (1001), +PARTITION `p1002` VALUES IN (1002), +PARTITION `pd` VALUES IN (default) +); + +CREATE TABLE `tp_sp_l_k2` ( +`id` bigint NOT NULL, +`c1` bigint NOT NULL, +`c2` bigint NOT NULL, +PRIMARY KEY (`id`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 DEFAULT COLLATE = utf8mb4_general_ci +PARTITION BY LIST(`c1`) +SUBPARTITION BY KEY(`c2`,`id`) +SUBPARTITIONS 3 +( +PARTITION `p1001` VALUES IN (1001), +PARTITION `p1002` VALUES IN (1002), +PARTITION `pd` VALUES IN (default) +); + +alter tablegroup by table tp_sp_l_k1 split partition `pd` into +( +PARTITION `p1003` VALUES IN (1003), +PARTITION `p1004` VALUES IN (1004), +PARTITION `p1005` VALUES IN (1005), +PARTITION `p1006` VALUES IN (1006), +PARTITION `pd` VALUES IN (default) +); + +show create table tp_sp_l_k1; + +drop table tp_sp_l_k1; +drop table tp_sp_l_k2; + + diff --git a/polardbx-test/src/test/resources/partition/env/SubPartitionTableAlter3Test/testcase.config.yml b/polardbx-test/src/test/resources/partition/env/SubPartitionTableAlter3Test/testcase.config.yml new file mode 100644 index 000000000..7d89f214e --- /dev/null +++ b/polardbx-test/src/test/resources/partition/env/SubPartitionTableAlter3Test/testcase.config.yml @@ -0,0 +1,2 @@ +test_split_p_with_sp +test_add_p_with_sp \ No newline at end of file diff --git a/polardbx-test/src/test/resources/partition/env/SubPartitionTableAlterTest/test_all_ntp_subpart_split_merge.result b/polardbx-test/src/test/resources/partition/env/SubPartitionTableAlterTest/test_all_ntp_subpart_split_merge.result index 579214dae..7d9fc9096 100644 --- a/polardbx-test/src/test/resources/partition/env/SubPartitionTableAlterTest/test_all_ntp_subpart_split_merge.result +++ b/polardbx-test/src/test/resources/partition/env/SubPartitionTableAlterTest/test_all_ntp_subpart_split_merge.result @@ -61,20 +61,20 @@ h_h_ntp1,CREATE TABLE `h_h_ntp1` ( PARTITION BY HASH(`c`,`d`) SUBPARTITION BY HASH(`a`,`b`) (PARTITION p5 VALUES LESS THAN (-7686143364045646505) - (SUBPARTITION sp5 VALUES LESS THAN (1) ENGINE = InnoDB, - SUBPARTITION sp6 VALUES LESS THAN (9223372036854775807) ENGINE = InnoDB), + (SUBPARTITION p5sp5 VALUES LESS THAN (1) ENGINE = InnoDB, + SUBPARTITION p5sp6 VALUES LESS THAN (9223372036854775807) ENGINE = InnoDB), PARTITION p6 VALUES LESS THAN (-6148914691236517202) - (SUBPARTITION sp7 VALUES LESS THAN (1) ENGINE = InnoDB, - SUBPARTITION sp8 VALUES LESS THAN (9223372036854775807) ENGINE = InnoDB), + (SUBPARTITION p6sp7 VALUES LESS THAN (1) ENGINE = InnoDB, + SUBPARTITION p6sp8 VALUES LESS THAN (9223372036854775807) ENGINE = InnoDB), PARTITION p7 VALUES LESS THAN (-4611686018427387899) - (SUBPARTITION sp9 VALUES LESS THAN (1) ENGINE = InnoDB, - SUBPARTITION sp10 VALUES LESS THAN (9223372036854775807) ENGINE = InnoDB), + (SUBPARTITION p7sp9 VALUES LESS THAN (1) ENGINE = InnoDB, + SUBPARTITION p7sp10 VALUES LESS THAN (9223372036854775807) ENGINE = InnoDB), PARTITION p1 VALUES LESS THAN (3) - (SUBPARTITION sp1 VALUES LESS THAN (9223372036854775807) ENGINE = InnoDB), + (SUBPARTITION p1sp1 VALUES LESS THAN (9223372036854775807) ENGINE = InnoDB), PARTITION p2 VALUES LESS THAN (4611686018427387905) - (SUBPARTITION sp2 VALUES LESS THAN (9223372036854775807) ENGINE = InnoDB), + (SUBPARTITION p2sp2 VALUES LESS THAN (9223372036854775807) ENGINE = InnoDB), PARTITION p3 VALUES LESS THAN (9223372036854775807) - (SUBPARTITION sp3 VALUES LESS THAN (9223372036854775807) ENGINE = InnoDB)) + (SUBPARTITION p3sp3 VALUES LESS THAN (9223372036854775807) ENGINE = InnoDB)) tablegroup = `my_ntp_tg_1` /*+TDDL:cmd_extra(SHOW_HASH_PARTITIONS_BY_RANGE=TRUE)*/show full create table h_h_ntp2; Table,Create Table @@ -92,20 +92,20 @@ h_h_ntp2,CREATE TABLE `h_h_ntp2` ( PARTITION BY HASH(`c`,`d`) SUBPARTITION BY HASH(`a`,`b`) (PARTITION p5 VALUES LESS THAN (-7686143364045646505) - (SUBPARTITION sp5 VALUES LESS THAN (1) ENGINE = InnoDB, - SUBPARTITION sp6 VALUES LESS THAN (9223372036854775807) ENGINE = InnoDB), + (SUBPARTITION p5sp5 VALUES LESS THAN (1) ENGINE = InnoDB, + SUBPARTITION p5sp6 VALUES LESS THAN (9223372036854775807) ENGINE = InnoDB), PARTITION p6 VALUES LESS THAN (-6148914691236517202) - (SUBPARTITION sp7 VALUES LESS THAN (1) ENGINE = InnoDB, - SUBPARTITION sp8 VALUES LESS THAN (9223372036854775807) ENGINE = InnoDB), + (SUBPARTITION p6sp7 VALUES LESS THAN (1) ENGINE = InnoDB, + SUBPARTITION p6sp8 VALUES LESS THAN (9223372036854775807) ENGINE = InnoDB), PARTITION p7 VALUES LESS THAN (-4611686018427387899) - (SUBPARTITION sp9 VALUES LESS THAN (1) ENGINE = InnoDB, - SUBPARTITION sp10 VALUES LESS THAN (9223372036854775807) ENGINE = InnoDB), + (SUBPARTITION p7sp9 VALUES LESS THAN (1) ENGINE = InnoDB, + SUBPARTITION p7sp10 VALUES LESS THAN (9223372036854775807) ENGINE = InnoDB), PARTITION p1 VALUES LESS THAN (3) - (SUBPARTITION sp1 VALUES LESS THAN (9223372036854775807) ENGINE = InnoDB), + (SUBPARTITION p1sp1 VALUES LESS THAN (9223372036854775807) ENGINE = InnoDB), PARTITION p2 VALUES LESS THAN (4611686018427387905) - (SUBPARTITION sp2 VALUES LESS THAN (9223372036854775807) ENGINE = InnoDB), + (SUBPARTITION p2sp2 VALUES LESS THAN (9223372036854775807) ENGINE = InnoDB), PARTITION p3 VALUES LESS THAN (9223372036854775807) - (SUBPARTITION sp3 VALUES LESS THAN (9223372036854775807) ENGINE = InnoDB)) + (SUBPARTITION p3sp3 VALUES LESS THAN (9223372036854775807) ENGINE = InnoDB)) tablegroup = `my_ntp_tg_1` drop table h_h_ntp1; drop table h_h_ntp2; @@ -170,20 +170,20 @@ h_k_ntp1,CREATE TABLE `h_k_ntp1` ( PARTITION BY HASH(`c`,`d`) SUBPARTITION BY KEY(`a`,`b`) (PARTITION p5 VALUES LESS THAN (-7686143364045646505) - (SUBPARTITION sp5 VALUES LESS THAN (1,9223372036854775807) ENGINE = InnoDB, - SUBPARTITION sp6 VALUES LESS THAN (9223372036854775807,9223372036854775807) ENGINE = InnoDB), + (SUBPARTITION p5sp5 VALUES LESS THAN (1,9223372036854775807) ENGINE = InnoDB, + SUBPARTITION p5sp6 VALUES LESS THAN (9223372036854775807,9223372036854775807) ENGINE = InnoDB), PARTITION p6 VALUES LESS THAN (-6148914691236517202) - (SUBPARTITION sp7 VALUES LESS THAN (1,9223372036854775807) ENGINE = InnoDB, - SUBPARTITION sp8 VALUES LESS THAN (9223372036854775807,9223372036854775807) ENGINE = InnoDB), + (SUBPARTITION p6sp7 VALUES LESS THAN (1,9223372036854775807) ENGINE = InnoDB, + SUBPARTITION p6sp8 VALUES LESS THAN (9223372036854775807,9223372036854775807) ENGINE = InnoDB), PARTITION p7 VALUES LESS THAN (-4611686018427387899) - (SUBPARTITION sp9 VALUES LESS THAN (1,9223372036854775807) ENGINE = InnoDB, - SUBPARTITION sp10 VALUES LESS THAN (9223372036854775807,9223372036854775807) ENGINE = InnoDB), + (SUBPARTITION p7sp9 VALUES LESS THAN (1,9223372036854775807) ENGINE = InnoDB, + SUBPARTITION p7sp10 VALUES LESS THAN (9223372036854775807,9223372036854775807) ENGINE = InnoDB), PARTITION p1 VALUES LESS THAN (3) - (SUBPARTITION sp1 VALUES LESS THAN (9223372036854775807,9223372036854775807) ENGINE = InnoDB), + (SUBPARTITION p1sp1 VALUES LESS THAN (9223372036854775807,9223372036854775807) ENGINE = InnoDB), PARTITION p2 VALUES LESS THAN (4611686018427387905) - (SUBPARTITION sp2 VALUES LESS THAN (9223372036854775807,9223372036854775807) ENGINE = InnoDB), + (SUBPARTITION p2sp2 VALUES LESS THAN (9223372036854775807,9223372036854775807) ENGINE = InnoDB), PARTITION p3 VALUES LESS THAN (9223372036854775807) - (SUBPARTITION sp3 VALUES LESS THAN (9223372036854775807,9223372036854775807) ENGINE = InnoDB)) + (SUBPARTITION p3sp3 VALUES LESS THAN (9223372036854775807,9223372036854775807) ENGINE = InnoDB)) tablegroup = `my_ntp_tg_1` /*+TDDL:cmd_extra(SHOW_HASH_PARTITIONS_BY_RANGE=TRUE)*/show full create table h_k_ntp2; Table,Create Table @@ -201,20 +201,20 @@ h_k_ntp2,CREATE TABLE `h_k_ntp2` ( PARTITION BY HASH(`c`,`d`) SUBPARTITION BY KEY(`a`,`b`) (PARTITION p5 VALUES LESS THAN (-7686143364045646505) - (SUBPARTITION sp5 VALUES LESS THAN (1,9223372036854775807) ENGINE = InnoDB, - SUBPARTITION sp6 VALUES LESS THAN (9223372036854775807,9223372036854775807) ENGINE = InnoDB), + (SUBPARTITION p5sp5 VALUES LESS THAN (1,9223372036854775807) ENGINE = InnoDB, + SUBPARTITION p5sp6 VALUES LESS THAN (9223372036854775807,9223372036854775807) ENGINE = InnoDB), PARTITION p6 VALUES LESS THAN (-6148914691236517202) - (SUBPARTITION sp7 VALUES LESS THAN (1,9223372036854775807) ENGINE = InnoDB, - SUBPARTITION sp8 VALUES LESS THAN (9223372036854775807,9223372036854775807) ENGINE = InnoDB), + (SUBPARTITION p6sp7 VALUES LESS THAN (1,9223372036854775807) ENGINE = InnoDB, + SUBPARTITION p6sp8 VALUES LESS THAN (9223372036854775807,9223372036854775807) ENGINE = InnoDB), PARTITION p7 VALUES LESS THAN (-4611686018427387899) - (SUBPARTITION sp9 VALUES LESS THAN (1,9223372036854775807) ENGINE = InnoDB, - SUBPARTITION sp10 VALUES LESS THAN (9223372036854775807,9223372036854775807) ENGINE = InnoDB), + (SUBPARTITION p7sp9 VALUES LESS THAN (1,9223372036854775807) ENGINE = InnoDB, + SUBPARTITION p7sp10 VALUES LESS THAN (9223372036854775807,9223372036854775807) ENGINE = InnoDB), PARTITION p1 VALUES LESS THAN (3) - (SUBPARTITION sp1 VALUES LESS THAN (9223372036854775807,9223372036854775807) ENGINE = InnoDB), + (SUBPARTITION p1sp1 VALUES LESS THAN (9223372036854775807,9223372036854775807) ENGINE = InnoDB), PARTITION p2 VALUES LESS THAN (4611686018427387905) - (SUBPARTITION sp2 VALUES LESS THAN (9223372036854775807,9223372036854775807) ENGINE = InnoDB), + (SUBPARTITION p2sp2 VALUES LESS THAN (9223372036854775807,9223372036854775807) ENGINE = InnoDB), PARTITION p3 VALUES LESS THAN (9223372036854775807) - (SUBPARTITION sp3 VALUES LESS THAN (9223372036854775807,9223372036854775807) ENGINE = InnoDB)) + (SUBPARTITION p3sp3 VALUES LESS THAN (9223372036854775807,9223372036854775807) ENGINE = InnoDB)) tablegroup = `my_ntp_tg_1` drop table h_k_ntp1; drop table h_k_ntp2; @@ -314,29 +314,29 @@ h_r_ntp1,CREATE TABLE `h_r_ntp1` ( PARTITION BY HASH(`a`,`b`) SUBPARTITION BY RANGE(TO_DAYS(`c`)) (PARTITION p5 VALUES LESS THAN (-7686143364045646505) - (SUBPARTITION sp5 VALUES LESS THAN (737790) ENGINE = InnoDB, - SUBPARTITION sp6 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB), + (SUBPARTITION p5sp5 VALUES LESS THAN (737790) ENGINE = InnoDB, + SUBPARTITION p5sp6 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB), PARTITION p6 VALUES LESS THAN (-6148914691236517202) - (SUBPARTITION sp7 VALUES LESS THAN (737790) ENGINE = InnoDB, - SUBPARTITION sp8 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB), + (SUBPARTITION p6sp7 VALUES LESS THAN (737790) ENGINE = InnoDB, + SUBPARTITION p6sp8 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB), PARTITION p7 VALUES LESS THAN (-4611686018427387899) - (SUBPARTITION sp9 VALUES LESS THAN (737790) ENGINE = InnoDB, - SUBPARTITION sp10 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB), + (SUBPARTITION p7sp9 VALUES LESS THAN (737790) ENGINE = InnoDB, + SUBPARTITION p7sp10 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB), PARTITION px1 VALUES LESS THAN (-3074457345618258599) - (SUBPARTITION sp3 VALUES LESS THAN (737790) ENGINE = InnoDB, - SUBPARTITION sp4 VALUES LESS THAN (738156) ENGINE = InnoDB, - SUBPARTITION sp11 VALUES LESS THAN (738521) ENGINE = InnoDB, - SUBPARTITION sp12 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB), + (SUBPARTITION px1sp3 VALUES LESS THAN (737790) ENGINE = InnoDB, + SUBPARTITION px1sp4 VALUES LESS THAN (738156) ENGINE = InnoDB, + SUBPARTITION px1sp11 VALUES LESS THAN (738521) ENGINE = InnoDB, + SUBPARTITION px1sp12 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB), PARTITION px2 VALUES LESS THAN (-1537228672809129299) - (SUBPARTITION sp13 VALUES LESS THAN (737790) ENGINE = InnoDB, - SUBPARTITION sp14 VALUES LESS THAN (738156) ENGINE = InnoDB, - SUBPARTITION sp15 VALUES LESS THAN (738521) ENGINE = InnoDB, - SUBPARTITION sp16 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB), + (SUBPARTITION px2sp13 VALUES LESS THAN (737790) ENGINE = InnoDB, + SUBPARTITION px2sp14 VALUES LESS THAN (738156) ENGINE = InnoDB, + SUBPARTITION px2sp15 VALUES LESS THAN (738521) ENGINE = InnoDB, + SUBPARTITION px2sp16 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB), PARTITION px3 VALUES LESS THAN (3) - (SUBPARTITION sp17 VALUES LESS THAN (737790) ENGINE = InnoDB, - SUBPARTITION sp18 VALUES LESS THAN (738156) ENGINE = InnoDB, - SUBPARTITION sp19 VALUES LESS THAN (738521) ENGINE = InnoDB, - SUBPARTITION sp20 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB), + (SUBPARTITION px3sp17 VALUES LESS THAN (737790) ENGINE = InnoDB, + SUBPARTITION px3sp18 VALUES LESS THAN (738156) ENGINE = InnoDB, + SUBPARTITION px3sp19 VALUES LESS THAN (738521) ENGINE = InnoDB, + SUBPARTITION px3sp20 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB), PARTITION p34 VALUES LESS THAN (9223372036854775807) (SUBPARTITION sp1 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB)) tablegroup = `my_ntp_tg_1` @@ -356,29 +356,29 @@ h_r_ntp2,CREATE TABLE `h_r_ntp2` ( PARTITION BY HASH(`a`,`b`) SUBPARTITION BY RANGE(TO_DAYS(`c`)) (PARTITION p5 VALUES LESS THAN (-7686143364045646505) - (SUBPARTITION sp5 VALUES LESS THAN (737790) ENGINE = InnoDB, - SUBPARTITION sp6 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB), + (SUBPARTITION p5sp5 VALUES LESS THAN (737790) ENGINE = InnoDB, + SUBPARTITION p5sp6 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB), PARTITION p6 VALUES LESS THAN (-6148914691236517202) - (SUBPARTITION sp7 VALUES LESS THAN (737790) ENGINE = InnoDB, - SUBPARTITION sp8 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB), + (SUBPARTITION p6sp7 VALUES LESS THAN (737790) ENGINE = InnoDB, + SUBPARTITION p6sp8 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB), PARTITION p7 VALUES LESS THAN (-4611686018427387899) - (SUBPARTITION sp9 VALUES LESS THAN (737790) ENGINE = InnoDB, - SUBPARTITION sp10 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB), + (SUBPARTITION p7sp9 VALUES LESS THAN (737790) ENGINE = InnoDB, + SUBPARTITION p7sp10 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB), PARTITION px1 VALUES LESS THAN (-3074457345618258599) - (SUBPARTITION sp3 VALUES LESS THAN (737790) ENGINE = InnoDB, - SUBPARTITION sp4 VALUES LESS THAN (738156) ENGINE = InnoDB, - SUBPARTITION sp11 VALUES LESS THAN (738521) ENGINE = InnoDB, - SUBPARTITION sp12 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB), + (SUBPARTITION px1sp3 VALUES LESS THAN (737790) ENGINE = InnoDB, + SUBPARTITION px1sp4 VALUES LESS THAN (738156) ENGINE = InnoDB, + SUBPARTITION px1sp11 VALUES LESS THAN (738521) ENGINE = InnoDB, + SUBPARTITION px1sp12 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB), PARTITION px2 VALUES LESS THAN (-1537228672809129299) - (SUBPARTITION sp13 VALUES LESS THAN (737790) ENGINE = InnoDB, - SUBPARTITION sp14 VALUES LESS THAN (738156) ENGINE = InnoDB, - SUBPARTITION sp15 VALUES LESS THAN (738521) ENGINE = InnoDB, - SUBPARTITION sp16 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB), + (SUBPARTITION px2sp13 VALUES LESS THAN (737790) ENGINE = InnoDB, + SUBPARTITION px2sp14 VALUES LESS THAN (738156) ENGINE = InnoDB, + SUBPARTITION px2sp15 VALUES LESS THAN (738521) ENGINE = InnoDB, + SUBPARTITION px2sp16 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB), PARTITION px3 VALUES LESS THAN (3) - (SUBPARTITION sp17 VALUES LESS THAN (737790) ENGINE = InnoDB, - SUBPARTITION sp18 VALUES LESS THAN (738156) ENGINE = InnoDB, - SUBPARTITION sp19 VALUES LESS THAN (738521) ENGINE = InnoDB, - SUBPARTITION sp20 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB), + (SUBPARTITION px3sp17 VALUES LESS THAN (737790) ENGINE = InnoDB, + SUBPARTITION px3sp18 VALUES LESS THAN (738156) ENGINE = InnoDB, + SUBPARTITION px3sp19 VALUES LESS THAN (738521) ENGINE = InnoDB, + SUBPARTITION px3sp20 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB), PARTITION p34 VALUES LESS THAN (9223372036854775807) (SUBPARTITION sp1 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB)) tablegroup = `my_ntp_tg_1` @@ -480,29 +480,29 @@ h_rc_ntp1,CREATE TABLE `h_rc_ntp1` ( PARTITION BY HASH(`a`,`b`) SUBPARTITION BY RANGE COLUMNS(`c`,`d`) (PARTITION p5 VALUES LESS THAN (-7686143364045646505) - (SUBPARTITION sp5 VALUES LESS THAN ('2020-01-01 00:00:00','abc') ENGINE = InnoDB, - SUBPARTITION sp6 VALUES LESS THAN (MAXVALUE,MAXVALUE) ENGINE = InnoDB), + (SUBPARTITION p5sp5 VALUES LESS THAN ('2020-01-01 00:00:00','abc') ENGINE = InnoDB, + SUBPARTITION p5sp6 VALUES LESS THAN (MAXVALUE,MAXVALUE) ENGINE = InnoDB), PARTITION p6 VALUES LESS THAN (-6148914691236517202) - (SUBPARTITION sp7 VALUES LESS THAN ('2020-01-01 00:00:00','abc') ENGINE = InnoDB, - SUBPARTITION sp8 VALUES LESS THAN (MAXVALUE,MAXVALUE) ENGINE = InnoDB), + (SUBPARTITION p6sp7 VALUES LESS THAN ('2020-01-01 00:00:00','abc') ENGINE = InnoDB, + SUBPARTITION p6sp8 VALUES LESS THAN (MAXVALUE,MAXVALUE) ENGINE = InnoDB), PARTITION p7 VALUES LESS THAN (-4611686018427387899) - (SUBPARTITION sp9 VALUES LESS THAN ('2020-01-01 00:00:00','abc') ENGINE = InnoDB, - SUBPARTITION sp10 VALUES LESS THAN (MAXVALUE,MAXVALUE) ENGINE = InnoDB), + (SUBPARTITION p7sp9 VALUES LESS THAN ('2020-01-01 00:00:00','abc') ENGINE = InnoDB, + SUBPARTITION p7sp10 VALUES LESS THAN (MAXVALUE,MAXVALUE) ENGINE = InnoDB), PARTITION px1 VALUES LESS THAN (-3074457345618258599) - (SUBPARTITION sp3 VALUES LESS THAN ('2020-01-01 00:00:00','abc') ENGINE = InnoDB, - SUBPARTITION sp4 VALUES LESS THAN ('2021-01-01 00:00:00','abc') ENGINE = InnoDB, - SUBPARTITION sp11 VALUES LESS THAN ('2022-01-01 00:00:00','abc') ENGINE = InnoDB, - SUBPARTITION sp12 VALUES LESS THAN (MAXVALUE,MAXVALUE) ENGINE = InnoDB), + (SUBPARTITION px1sp3 VALUES LESS THAN ('2020-01-01 00:00:00','abc') ENGINE = InnoDB, + SUBPARTITION px1sp4 VALUES LESS THAN ('2021-01-01 00:00:00','abc') ENGINE = InnoDB, + SUBPARTITION px1sp11 VALUES LESS THAN ('2022-01-01 00:00:00','abc') ENGINE = InnoDB, + SUBPARTITION px1sp12 VALUES LESS THAN (MAXVALUE,MAXVALUE) ENGINE = InnoDB), PARTITION px2 VALUES LESS THAN (-1537228672809129299) - (SUBPARTITION sp13 VALUES LESS THAN ('2020-01-01 00:00:00','abc') ENGINE = InnoDB, - SUBPARTITION sp14 VALUES LESS THAN ('2021-01-01 00:00:00','abc') ENGINE = InnoDB, - SUBPARTITION sp15 VALUES LESS THAN ('2022-01-01 00:00:00','abc') ENGINE = InnoDB, - SUBPARTITION sp16 VALUES LESS THAN (MAXVALUE,MAXVALUE) ENGINE = InnoDB), + (SUBPARTITION px2sp13 VALUES LESS THAN ('2020-01-01 00:00:00','abc') ENGINE = InnoDB, + SUBPARTITION px2sp14 VALUES LESS THAN ('2021-01-01 00:00:00','abc') ENGINE = InnoDB, + SUBPARTITION px2sp15 VALUES LESS THAN ('2022-01-01 00:00:00','abc') ENGINE = InnoDB, + SUBPARTITION px2sp16 VALUES LESS THAN (MAXVALUE,MAXVALUE) ENGINE = InnoDB), PARTITION px3 VALUES LESS THAN (3) - (SUBPARTITION sp17 VALUES LESS THAN ('2020-01-01 00:00:00','abc') ENGINE = InnoDB, - SUBPARTITION sp18 VALUES LESS THAN ('2021-01-01 00:00:00','abc') ENGINE = InnoDB, - SUBPARTITION sp19 VALUES LESS THAN ('2022-01-01 00:00:00','abc') ENGINE = InnoDB, - SUBPARTITION sp20 VALUES LESS THAN (MAXVALUE,MAXVALUE) ENGINE = InnoDB), + (SUBPARTITION px3sp17 VALUES LESS THAN ('2020-01-01 00:00:00','abc') ENGINE = InnoDB, + SUBPARTITION px3sp18 VALUES LESS THAN ('2021-01-01 00:00:00','abc') ENGINE = InnoDB, + SUBPARTITION px3sp19 VALUES LESS THAN ('2022-01-01 00:00:00','abc') ENGINE = InnoDB, + SUBPARTITION px3sp20 VALUES LESS THAN (MAXVALUE,MAXVALUE) ENGINE = InnoDB), PARTITION p34 VALUES LESS THAN (9223372036854775807) (SUBPARTITION sp1 VALUES LESS THAN (MAXVALUE,MAXVALUE) ENGINE = InnoDB)) tablegroup = `my_ntp_tg_1` @@ -522,29 +522,29 @@ h_rc_ntp2,CREATE TABLE `h_rc_ntp2` ( PARTITION BY HASH(`a`,`b`) SUBPARTITION BY RANGE COLUMNS(`c`,`d`) (PARTITION p5 VALUES LESS THAN (-7686143364045646505) - (SUBPARTITION sp5 VALUES LESS THAN ('2020-01-01 00:00:00','abc') ENGINE = InnoDB, - SUBPARTITION sp6 VALUES LESS THAN (MAXVALUE,MAXVALUE) ENGINE = InnoDB), + (SUBPARTITION p5sp5 VALUES LESS THAN ('2020-01-01 00:00:00','abc') ENGINE = InnoDB, + SUBPARTITION p5sp6 VALUES LESS THAN (MAXVALUE,MAXVALUE) ENGINE = InnoDB), PARTITION p6 VALUES LESS THAN (-6148914691236517202) - (SUBPARTITION sp7 VALUES LESS THAN ('2020-01-01 00:00:00','abc') ENGINE = InnoDB, - SUBPARTITION sp8 VALUES LESS THAN (MAXVALUE,MAXVALUE) ENGINE = InnoDB), + (SUBPARTITION p6sp7 VALUES LESS THAN ('2020-01-01 00:00:00','abc') ENGINE = InnoDB, + SUBPARTITION p6sp8 VALUES LESS THAN (MAXVALUE,MAXVALUE) ENGINE = InnoDB), PARTITION p7 VALUES LESS THAN (-4611686018427387899) - (SUBPARTITION sp9 VALUES LESS THAN ('2020-01-01 00:00:00','abc') ENGINE = InnoDB, - SUBPARTITION sp10 VALUES LESS THAN (MAXVALUE,MAXVALUE) ENGINE = InnoDB), + (SUBPARTITION p7sp9 VALUES LESS THAN ('2020-01-01 00:00:00','abc') ENGINE = InnoDB, + SUBPARTITION p7sp10 VALUES LESS THAN (MAXVALUE,MAXVALUE) ENGINE = InnoDB), PARTITION px1 VALUES LESS THAN (-3074457345618258599) - (SUBPARTITION sp3 VALUES LESS THAN ('2020-01-01 00:00:00','abc') ENGINE = InnoDB, - SUBPARTITION sp4 VALUES LESS THAN ('2021-01-01 00:00:00','abc') ENGINE = InnoDB, - SUBPARTITION sp11 VALUES LESS THAN ('2022-01-01 00:00:00','abc') ENGINE = InnoDB, - SUBPARTITION sp12 VALUES LESS THAN (MAXVALUE,MAXVALUE) ENGINE = InnoDB), + (SUBPARTITION px1sp3 VALUES LESS THAN ('2020-01-01 00:00:00','abc') ENGINE = InnoDB, + SUBPARTITION px1sp4 VALUES LESS THAN ('2021-01-01 00:00:00','abc') ENGINE = InnoDB, + SUBPARTITION px1sp11 VALUES LESS THAN ('2022-01-01 00:00:00','abc') ENGINE = InnoDB, + SUBPARTITION px1sp12 VALUES LESS THAN (MAXVALUE,MAXVALUE) ENGINE = InnoDB), PARTITION px2 VALUES LESS THAN (-1537228672809129299) - (SUBPARTITION sp13 VALUES LESS THAN ('2020-01-01 00:00:00','abc') ENGINE = InnoDB, - SUBPARTITION sp14 VALUES LESS THAN ('2021-01-01 00:00:00','abc') ENGINE = InnoDB, - SUBPARTITION sp15 VALUES LESS THAN ('2022-01-01 00:00:00','abc') ENGINE = InnoDB, - SUBPARTITION sp16 VALUES LESS THAN (MAXVALUE,MAXVALUE) ENGINE = InnoDB), + (SUBPARTITION px2sp13 VALUES LESS THAN ('2020-01-01 00:00:00','abc') ENGINE = InnoDB, + SUBPARTITION px2sp14 VALUES LESS THAN ('2021-01-01 00:00:00','abc') ENGINE = InnoDB, + SUBPARTITION px2sp15 VALUES LESS THAN ('2022-01-01 00:00:00','abc') ENGINE = InnoDB, + SUBPARTITION px2sp16 VALUES LESS THAN (MAXVALUE,MAXVALUE) ENGINE = InnoDB), PARTITION px3 VALUES LESS THAN (3) - (SUBPARTITION sp17 VALUES LESS THAN ('2020-01-01 00:00:00','abc') ENGINE = InnoDB, - SUBPARTITION sp18 VALUES LESS THAN ('2021-01-01 00:00:00','abc') ENGINE = InnoDB, - SUBPARTITION sp19 VALUES LESS THAN ('2022-01-01 00:00:00','abc') ENGINE = InnoDB, - SUBPARTITION sp20 VALUES LESS THAN (MAXVALUE,MAXVALUE) ENGINE = InnoDB), + (SUBPARTITION px3sp17 VALUES LESS THAN ('2020-01-01 00:00:00','abc') ENGINE = InnoDB, + SUBPARTITION px3sp18 VALUES LESS THAN ('2021-01-01 00:00:00','abc') ENGINE = InnoDB, + SUBPARTITION px3sp19 VALUES LESS THAN ('2022-01-01 00:00:00','abc') ENGINE = InnoDB, + SUBPARTITION px3sp20 VALUES LESS THAN (MAXVALUE,MAXVALUE) ENGINE = InnoDB), PARTITION p34 VALUES LESS THAN (9223372036854775807) (SUBPARTITION sp1 VALUES LESS THAN (MAXVALUE,MAXVALUE) ENGINE = InnoDB)) tablegroup = `my_ntp_tg_1` @@ -644,32 +644,32 @@ h_l_ntp1,CREATE TABLE `h_l_ntp1` ( PARTITION BY HASH(`a`,`b`) SUBPARTITION BY LIST(TO_DAYS(`c`)) (PARTITION p5 VALUES LESS THAN (-7686143364045646505) - (SUBPARTITION sp5 VALUES IN (737790) ENGINE = InnoDB, - SUBPARTITION sp6 VALUES IN (DEFAULT) ENGINE = InnoDB), + (SUBPARTITION p5sp5 VALUES IN (737790) ENGINE = InnoDB, + SUBPARTITION p5sp6 VALUES IN (DEFAULT) ENGINE = InnoDB), PARTITION p6 VALUES LESS THAN (-6148914691236517202) - (SUBPARTITION sp7 VALUES IN (737790) ENGINE = InnoDB, - SUBPARTITION sp8 VALUES IN (DEFAULT) ENGINE = InnoDB), + (SUBPARTITION p6sp7 VALUES IN (737790) ENGINE = InnoDB, + SUBPARTITION p6sp8 VALUES IN (DEFAULT) ENGINE = InnoDB), PARTITION p7 VALUES LESS THAN (-4611686018427387899) - (SUBPARTITION sp9 VALUES IN (737790) ENGINE = InnoDB, - SUBPARTITION sp10 VALUES IN (DEFAULT) ENGINE = InnoDB), + (SUBPARTITION p7sp9 VALUES IN (737790) ENGINE = InnoDB, + SUBPARTITION p7sp10 VALUES IN (DEFAULT) ENGINE = InnoDB), PARTITION p3 VALUES LESS THAN (-3074457345618258599) - (SUBPARTITION sp3 VALUES IN (1,2,3,4,5,6) ENGINE = InnoDB, - SUBPARTITION sp4 VALUES IN (10,11,12,13) ENGINE = InnoDB, - SUBPARTITION sp11 VALUES IN (737790) ENGINE = InnoDB, - SUBPARTITION sp12 VALUES IN (738156) ENGINE = InnoDB, - SUBPARTITION sp13 VALUES IN (DEFAULT) ENGINE = InnoDB), + (SUBPARTITION p3sp3 VALUES IN (1,2,3,4,5,6) ENGINE = InnoDB, + SUBPARTITION p3sp4 VALUES IN (10,11,12,13) ENGINE = InnoDB, + SUBPARTITION p3sp11 VALUES IN (737790) ENGINE = InnoDB, + SUBPARTITION p3sp12 VALUES IN (738156) ENGINE = InnoDB, + SUBPARTITION p3sp13 VALUES IN (DEFAULT) ENGINE = InnoDB), PARTITION p4 VALUES LESS THAN (-1537228672809129299) - (SUBPARTITION sp14 VALUES IN (1,2,3,4,5,6) ENGINE = InnoDB, - SUBPARTITION sp15 VALUES IN (10,11,12,13) ENGINE = InnoDB, - SUBPARTITION sp16 VALUES IN (737790) ENGINE = InnoDB, - SUBPARTITION sp17 VALUES IN (738156) ENGINE = InnoDB, - SUBPARTITION sp18 VALUES IN (DEFAULT) ENGINE = InnoDB), - PARTITION p11 VALUES LESS THAN (3) - (SUBPARTITION sp19 VALUES IN (1,2,3,4,5,6) ENGINE = InnoDB, - SUBPARTITION sp20 VALUES IN (10,11,12,13) ENGINE = InnoDB, - SUBPARTITION sp21 VALUES IN (737790) ENGINE = InnoDB, - SUBPARTITION sp22 VALUES IN (738156) ENGINE = InnoDB, - SUBPARTITION sp23 VALUES IN (DEFAULT) ENGINE = InnoDB), + (SUBPARTITION p4sp14 VALUES IN (1,2,3,4,5,6) ENGINE = InnoDB, + SUBPARTITION p4sp15 VALUES IN (10,11,12,13) ENGINE = InnoDB, + SUBPARTITION p4sp16 VALUES IN (737790) ENGINE = InnoDB, + SUBPARTITION p4sp17 VALUES IN (738156) ENGINE = InnoDB, + SUBPARTITION p4sp18 VALUES IN (DEFAULT) ENGINE = InnoDB), + PARTITION p8 VALUES LESS THAN (3) + (SUBPARTITION p8sp19 VALUES IN (1,2,3,4,5,6) ENGINE = InnoDB, + SUBPARTITION p8sp20 VALUES IN (10,11,12,13) ENGINE = InnoDB, + SUBPARTITION p8sp21 VALUES IN (737790) ENGINE = InnoDB, + SUBPARTITION p8sp22 VALUES IN (738156) ENGINE = InnoDB, + SUBPARTITION p8sp23 VALUES IN (DEFAULT) ENGINE = InnoDB), PARTITION p34 VALUES LESS THAN (9223372036854775807) (SUBPARTITION sp1 VALUES IN (DEFAULT) ENGINE = InnoDB)) tablegroup = `my_ntp_tg_1` @@ -689,32 +689,32 @@ h_l_ntp2,CREATE TABLE `h_l_ntp2` ( PARTITION BY HASH(`a`,`b`) SUBPARTITION BY LIST(TO_DAYS(`c`)) (PARTITION p5 VALUES LESS THAN (-7686143364045646505) - (SUBPARTITION sp5 VALUES IN (737790) ENGINE = InnoDB, - SUBPARTITION sp6 VALUES IN (DEFAULT) ENGINE = InnoDB), + (SUBPARTITION p5sp5 VALUES IN (737790) ENGINE = InnoDB, + SUBPARTITION p5sp6 VALUES IN (DEFAULT) ENGINE = InnoDB), PARTITION p6 VALUES LESS THAN (-6148914691236517202) - (SUBPARTITION sp7 VALUES IN (737790) ENGINE = InnoDB, - SUBPARTITION sp8 VALUES IN (DEFAULT) ENGINE = InnoDB), + (SUBPARTITION p6sp7 VALUES IN (737790) ENGINE = InnoDB, + SUBPARTITION p6sp8 VALUES IN (DEFAULT) ENGINE = InnoDB), PARTITION p7 VALUES LESS THAN (-4611686018427387899) - (SUBPARTITION sp9 VALUES IN (737790) ENGINE = InnoDB, - SUBPARTITION sp10 VALUES IN (DEFAULT) ENGINE = InnoDB), + (SUBPARTITION p7sp9 VALUES IN (737790) ENGINE = InnoDB, + SUBPARTITION p7sp10 VALUES IN (DEFAULT) ENGINE = InnoDB), PARTITION p3 VALUES LESS THAN (-3074457345618258599) - (SUBPARTITION sp3 VALUES IN (1,2,3,4,5,6) ENGINE = InnoDB, - SUBPARTITION sp4 VALUES IN (10,11,12,13) ENGINE = InnoDB, - SUBPARTITION sp11 VALUES IN (737790) ENGINE = InnoDB, - SUBPARTITION sp12 VALUES IN (738156) ENGINE = InnoDB, - SUBPARTITION sp13 VALUES IN (DEFAULT) ENGINE = InnoDB), + (SUBPARTITION p3sp3 VALUES IN (1,2,3,4,5,6) ENGINE = InnoDB, + SUBPARTITION p3sp4 VALUES IN (10,11,12,13) ENGINE = InnoDB, + SUBPARTITION p3sp11 VALUES IN (737790) ENGINE = InnoDB, + SUBPARTITION p3sp12 VALUES IN (738156) ENGINE = InnoDB, + SUBPARTITION p3sp13 VALUES IN (DEFAULT) ENGINE = InnoDB), PARTITION p4 VALUES LESS THAN (-1537228672809129299) - (SUBPARTITION sp14 VALUES IN (1,2,3,4,5,6) ENGINE = InnoDB, - SUBPARTITION sp15 VALUES IN (10,11,12,13) ENGINE = InnoDB, - SUBPARTITION sp16 VALUES IN (737790) ENGINE = InnoDB, - SUBPARTITION sp17 VALUES IN (738156) ENGINE = InnoDB, - SUBPARTITION sp18 VALUES IN (DEFAULT) ENGINE = InnoDB), - PARTITION p11 VALUES LESS THAN (3) - (SUBPARTITION sp19 VALUES IN (1,2,3,4,5,6) ENGINE = InnoDB, - SUBPARTITION sp20 VALUES IN (10,11,12,13) ENGINE = InnoDB, - SUBPARTITION sp21 VALUES IN (737790) ENGINE = InnoDB, - SUBPARTITION sp22 VALUES IN (738156) ENGINE = InnoDB, - SUBPARTITION sp23 VALUES IN (DEFAULT) ENGINE = InnoDB), + (SUBPARTITION p4sp14 VALUES IN (1,2,3,4,5,6) ENGINE = InnoDB, + SUBPARTITION p4sp15 VALUES IN (10,11,12,13) ENGINE = InnoDB, + SUBPARTITION p4sp16 VALUES IN (737790) ENGINE = InnoDB, + SUBPARTITION p4sp17 VALUES IN (738156) ENGINE = InnoDB, + SUBPARTITION p4sp18 VALUES IN (DEFAULT) ENGINE = InnoDB), + PARTITION p8 VALUES LESS THAN (3) + (SUBPARTITION p8sp19 VALUES IN (1,2,3,4,5,6) ENGINE = InnoDB, + SUBPARTITION p8sp20 VALUES IN (10,11,12,13) ENGINE = InnoDB, + SUBPARTITION p8sp21 VALUES IN (737790) ENGINE = InnoDB, + SUBPARTITION p8sp22 VALUES IN (738156) ENGINE = InnoDB, + SUBPARTITION p8sp23 VALUES IN (DEFAULT) ENGINE = InnoDB), PARTITION p34 VALUES LESS THAN (9223372036854775807) (SUBPARTITION sp1 VALUES IN (DEFAULT) ENGINE = InnoDB)) tablegroup = `my_ntp_tg_1` @@ -814,32 +814,32 @@ h_lc_ntp1,CREATE TABLE `h_lc_ntp1` ( PARTITION BY HASH(`a`,`b`) SUBPARTITION BY LIST COLUMNS(`c`,`d`) (PARTITION p5 VALUES LESS THAN (-7686143364045646505) - (SUBPARTITION sp5 VALUES IN (('2020-01-01 00:00:00','abc')) ENGINE = InnoDB, - SUBPARTITION sp6 VALUES IN (DEFAULT) ENGINE = InnoDB), + (SUBPARTITION p5sp5 VALUES IN (('2020-01-01 00:00:00','abc')) ENGINE = InnoDB, + SUBPARTITION p5sp6 VALUES IN (DEFAULT) ENGINE = InnoDB), PARTITION p6 VALUES LESS THAN (-6148914691236517202) - (SUBPARTITION sp7 VALUES IN (('2020-01-01 00:00:00','abc')) ENGINE = InnoDB, - SUBPARTITION sp8 VALUES IN (DEFAULT) ENGINE = InnoDB), + (SUBPARTITION p6sp7 VALUES IN (('2020-01-01 00:00:00','abc')) ENGINE = InnoDB, + SUBPARTITION p6sp8 VALUES IN (DEFAULT) ENGINE = InnoDB), PARTITION p7 VALUES LESS THAN (-4611686018427387899) - (SUBPARTITION sp9 VALUES IN (('2020-01-01 00:00:00','abc')) ENGINE = InnoDB, - SUBPARTITION sp10 VALUES IN (DEFAULT) ENGINE = InnoDB), + (SUBPARTITION p7sp9 VALUES IN (('2020-01-01 00:00:00','abc')) ENGINE = InnoDB, + SUBPARTITION p7sp10 VALUES IN (DEFAULT) ENGINE = InnoDB), PARTITION p3 VALUES LESS THAN (-3074457345618258599) - (SUBPARTITION sp3 VALUES IN (('2020-01-01 00:00:00','abc')) ENGINE = InnoDB, - SUBPARTITION sp4 VALUES IN (('2021-01-01 00:00:00','abc')) ENGINE = InnoDB, - SUBPARTITION sp11 VALUES IN (('2021-01-01 00:00:00','bc'),('2021-01-02 00:00:00','abc'),('2022-01-01 00:00:00','abc')) ENGINE = InnoDB, - SUBPARTITION sp12 VALUES IN (('2021-11-01 00:00:00','abc'),('2022-10-01 00:00:00','abc'),('2022-10-01 00:00:00','abce')) ENGINE = InnoDB, - SUBPARTITION sp13 VALUES IN (DEFAULT) ENGINE = InnoDB), + (SUBPARTITION p3sp3 VALUES IN (('2020-01-01 00:00:00','abc')) ENGINE = InnoDB, + SUBPARTITION p3sp4 VALUES IN (('2021-01-01 00:00:00','abc')) ENGINE = InnoDB, + SUBPARTITION p3sp11 VALUES IN (('2021-01-01 00:00:00','bc'),('2021-01-02 00:00:00','abc'),('2022-01-01 00:00:00','abc')) ENGINE = InnoDB, + SUBPARTITION p3sp12 VALUES IN (('2021-11-01 00:00:00','abc'),('2022-10-01 00:00:00','abc'),('2022-10-01 00:00:00','abce')) ENGINE = InnoDB, + SUBPARTITION p3sp13 VALUES IN (DEFAULT) ENGINE = InnoDB), PARTITION p4 VALUES LESS THAN (-1537228672809129299) - (SUBPARTITION sp14 VALUES IN (('2020-01-01 00:00:00','abc')) ENGINE = InnoDB, - SUBPARTITION sp15 VALUES IN (('2021-01-01 00:00:00','abc')) ENGINE = InnoDB, - SUBPARTITION sp16 VALUES IN (('2021-01-01 00:00:00','bc'),('2021-01-02 00:00:00','abc'),('2022-01-01 00:00:00','abc')) ENGINE = InnoDB, - SUBPARTITION sp17 VALUES IN (('2021-11-01 00:00:00','abc'),('2022-10-01 00:00:00','abc'),('2022-10-01 00:00:00','abce')) ENGINE = InnoDB, - SUBPARTITION sp18 VALUES IN (DEFAULT) ENGINE = InnoDB), - PARTITION p11 VALUES LESS THAN (3) - (SUBPARTITION sp19 VALUES IN (('2020-01-01 00:00:00','abc')) ENGINE = InnoDB, - SUBPARTITION sp20 VALUES IN (('2021-01-01 00:00:00','abc')) ENGINE = InnoDB, - SUBPARTITION sp21 VALUES IN (('2021-01-01 00:00:00','bc'),('2021-01-02 00:00:00','abc'),('2022-01-01 00:00:00','abc')) ENGINE = InnoDB, - SUBPARTITION sp22 VALUES IN (('2021-11-01 00:00:00','abc'),('2022-10-01 00:00:00','abc'),('2022-10-01 00:00:00','abce')) ENGINE = InnoDB, - SUBPARTITION sp23 VALUES IN (DEFAULT) ENGINE = InnoDB), + (SUBPARTITION p4sp14 VALUES IN (('2020-01-01 00:00:00','abc')) ENGINE = InnoDB, + SUBPARTITION p4sp15 VALUES IN (('2021-01-01 00:00:00','abc')) ENGINE = InnoDB, + SUBPARTITION p4sp16 VALUES IN (('2021-01-01 00:00:00','bc'),('2021-01-02 00:00:00','abc'),('2022-01-01 00:00:00','abc')) ENGINE = InnoDB, + SUBPARTITION p4sp17 VALUES IN (('2021-11-01 00:00:00','abc'),('2022-10-01 00:00:00','abc'),('2022-10-01 00:00:00','abce')) ENGINE = InnoDB, + SUBPARTITION p4sp18 VALUES IN (DEFAULT) ENGINE = InnoDB), + PARTITION p8 VALUES LESS THAN (3) + (SUBPARTITION p8sp19 VALUES IN (('2020-01-01 00:00:00','abc')) ENGINE = InnoDB, + SUBPARTITION p8sp20 VALUES IN (('2021-01-01 00:00:00','abc')) ENGINE = InnoDB, + SUBPARTITION p8sp21 VALUES IN (('2021-01-01 00:00:00','bc'),('2021-01-02 00:00:00','abc'),('2022-01-01 00:00:00','abc')) ENGINE = InnoDB, + SUBPARTITION p8sp22 VALUES IN (('2021-11-01 00:00:00','abc'),('2022-10-01 00:00:00','abc'),('2022-10-01 00:00:00','abce')) ENGINE = InnoDB, + SUBPARTITION p8sp23 VALUES IN (DEFAULT) ENGINE = InnoDB), PARTITION p34 VALUES LESS THAN (9223372036854775807) (SUBPARTITION sp1 VALUES IN (DEFAULT) ENGINE = InnoDB)) tablegroup = `my_ntp_tg_1` @@ -859,32 +859,32 @@ h_lc_ntp2,CREATE TABLE `h_lc_ntp2` ( PARTITION BY HASH(`a`,`b`) SUBPARTITION BY LIST COLUMNS(`c`,`d`) (PARTITION p5 VALUES LESS THAN (-7686143364045646505) - (SUBPARTITION sp5 VALUES IN (('2020-01-01 00:00:00','abc')) ENGINE = InnoDB, - SUBPARTITION sp6 VALUES IN (DEFAULT) ENGINE = InnoDB), + (SUBPARTITION p5sp5 VALUES IN (('2020-01-01 00:00:00','abc')) ENGINE = InnoDB, + SUBPARTITION p5sp6 VALUES IN (DEFAULT) ENGINE = InnoDB), PARTITION p6 VALUES LESS THAN (-6148914691236517202) - (SUBPARTITION sp7 VALUES IN (('2020-01-01 00:00:00','abc')) ENGINE = InnoDB, - SUBPARTITION sp8 VALUES IN (DEFAULT) ENGINE = InnoDB), + (SUBPARTITION p6sp7 VALUES IN (('2020-01-01 00:00:00','abc')) ENGINE = InnoDB, + SUBPARTITION p6sp8 VALUES IN (DEFAULT) ENGINE = InnoDB), PARTITION p7 VALUES LESS THAN (-4611686018427387899) - (SUBPARTITION sp9 VALUES IN (('2020-01-01 00:00:00','abc')) ENGINE = InnoDB, - SUBPARTITION sp10 VALUES IN (DEFAULT) ENGINE = InnoDB), + (SUBPARTITION p7sp9 VALUES IN (('2020-01-01 00:00:00','abc')) ENGINE = InnoDB, + SUBPARTITION p7sp10 VALUES IN (DEFAULT) ENGINE = InnoDB), PARTITION p3 VALUES LESS THAN (-3074457345618258599) - (SUBPARTITION sp3 VALUES IN (('2020-01-01 00:00:00','abc')) ENGINE = InnoDB, - SUBPARTITION sp4 VALUES IN (('2021-01-01 00:00:00','abc')) ENGINE = InnoDB, - SUBPARTITION sp11 VALUES IN (('2021-01-01 00:00:00','bc'),('2021-01-02 00:00:00','abc'),('2022-01-01 00:00:00','abc')) ENGINE = InnoDB, - SUBPARTITION sp12 VALUES IN (('2021-11-01 00:00:00','abc'),('2022-10-01 00:00:00','abc'),('2022-10-01 00:00:00','abce')) ENGINE = InnoDB, - SUBPARTITION sp13 VALUES IN (DEFAULT) ENGINE = InnoDB), + (SUBPARTITION p3sp3 VALUES IN (('2020-01-01 00:00:00','abc')) ENGINE = InnoDB, + SUBPARTITION p3sp4 VALUES IN (('2021-01-01 00:00:00','abc')) ENGINE = InnoDB, + SUBPARTITION p3sp11 VALUES IN (('2021-01-01 00:00:00','bc'),('2021-01-02 00:00:00','abc'),('2022-01-01 00:00:00','abc')) ENGINE = InnoDB, + SUBPARTITION p3sp12 VALUES IN (('2021-11-01 00:00:00','abc'),('2022-10-01 00:00:00','abc'),('2022-10-01 00:00:00','abce')) ENGINE = InnoDB, + SUBPARTITION p3sp13 VALUES IN (DEFAULT) ENGINE = InnoDB), PARTITION p4 VALUES LESS THAN (-1537228672809129299) - (SUBPARTITION sp14 VALUES IN (('2020-01-01 00:00:00','abc')) ENGINE = InnoDB, - SUBPARTITION sp15 VALUES IN (('2021-01-01 00:00:00','abc')) ENGINE = InnoDB, - SUBPARTITION sp16 VALUES IN (('2021-01-01 00:00:00','bc'),('2021-01-02 00:00:00','abc'),('2022-01-01 00:00:00','abc')) ENGINE = InnoDB, - SUBPARTITION sp17 VALUES IN (('2021-11-01 00:00:00','abc'),('2022-10-01 00:00:00','abc'),('2022-10-01 00:00:00','abce')) ENGINE = InnoDB, - SUBPARTITION sp18 VALUES IN (DEFAULT) ENGINE = InnoDB), - PARTITION p11 VALUES LESS THAN (3) - (SUBPARTITION sp19 VALUES IN (('2020-01-01 00:00:00','abc')) ENGINE = InnoDB, - SUBPARTITION sp20 VALUES IN (('2021-01-01 00:00:00','abc')) ENGINE = InnoDB, - SUBPARTITION sp21 VALUES IN (('2021-01-01 00:00:00','bc'),('2021-01-02 00:00:00','abc'),('2022-01-01 00:00:00','abc')) ENGINE = InnoDB, - SUBPARTITION sp22 VALUES IN (('2021-11-01 00:00:00','abc'),('2022-10-01 00:00:00','abc'),('2022-10-01 00:00:00','abce')) ENGINE = InnoDB, - SUBPARTITION sp23 VALUES IN (DEFAULT) ENGINE = InnoDB), + (SUBPARTITION p4sp14 VALUES IN (('2020-01-01 00:00:00','abc')) ENGINE = InnoDB, + SUBPARTITION p4sp15 VALUES IN (('2021-01-01 00:00:00','abc')) ENGINE = InnoDB, + SUBPARTITION p4sp16 VALUES IN (('2021-01-01 00:00:00','bc'),('2021-01-02 00:00:00','abc'),('2022-01-01 00:00:00','abc')) ENGINE = InnoDB, + SUBPARTITION p4sp17 VALUES IN (('2021-11-01 00:00:00','abc'),('2022-10-01 00:00:00','abc'),('2022-10-01 00:00:00','abce')) ENGINE = InnoDB, + SUBPARTITION p4sp18 VALUES IN (DEFAULT) ENGINE = InnoDB), + PARTITION p8 VALUES LESS THAN (3) + (SUBPARTITION p8sp19 VALUES IN (('2020-01-01 00:00:00','abc')) ENGINE = InnoDB, + SUBPARTITION p8sp20 VALUES IN (('2021-01-01 00:00:00','abc')) ENGINE = InnoDB, + SUBPARTITION p8sp21 VALUES IN (('2021-01-01 00:00:00','bc'),('2021-01-02 00:00:00','abc'),('2022-01-01 00:00:00','abc')) ENGINE = InnoDB, + SUBPARTITION p8sp22 VALUES IN (('2021-11-01 00:00:00','abc'),('2022-10-01 00:00:00','abc'),('2022-10-01 00:00:00','abce')) ENGINE = InnoDB, + SUBPARTITION p8sp23 VALUES IN (DEFAULT) ENGINE = InnoDB), PARTITION p34 VALUES LESS THAN (9223372036854775807) (SUBPARTITION sp1 VALUES IN (DEFAULT) ENGINE = InnoDB)) tablegroup = `my_ntp_tg_1` @@ -952,20 +952,20 @@ k_h_ntp1,CREATE TABLE `k_h_ntp1` ( PARTITION BY KEY(`c`,`d`) SUBPARTITION BY HASH(`a`,`b`) (PARTITION p5 VALUES LESS THAN (-7686143364045646505,9223372036854775807) - (SUBPARTITION sp5 VALUES LESS THAN (1) ENGINE = InnoDB, - SUBPARTITION sp6 VALUES LESS THAN (9223372036854775807) ENGINE = InnoDB), + (SUBPARTITION p5sp5 VALUES LESS THAN (1) ENGINE = InnoDB, + SUBPARTITION p5sp6 VALUES LESS THAN (9223372036854775807) ENGINE = InnoDB), PARTITION p6 VALUES LESS THAN (-6148914691236517202,9223372036854775807) - (SUBPARTITION sp7 VALUES LESS THAN (1) ENGINE = InnoDB, - SUBPARTITION sp8 VALUES LESS THAN (9223372036854775807) ENGINE = InnoDB), + (SUBPARTITION p6sp7 VALUES LESS THAN (1) ENGINE = InnoDB, + SUBPARTITION p6sp8 VALUES LESS THAN (9223372036854775807) ENGINE = InnoDB), PARTITION p7 VALUES LESS THAN (-4611686018427387899,9223372036854775807) - (SUBPARTITION sp9 VALUES LESS THAN (1) ENGINE = InnoDB, - SUBPARTITION sp10 VALUES LESS THAN (9223372036854775807) ENGINE = InnoDB), + (SUBPARTITION p7sp9 VALUES LESS THAN (1) ENGINE = InnoDB, + SUBPARTITION p7sp10 VALUES LESS THAN (9223372036854775807) ENGINE = InnoDB), PARTITION p1 VALUES LESS THAN (3,9223372036854775807) - (SUBPARTITION sp1 VALUES LESS THAN (9223372036854775807) ENGINE = InnoDB), + (SUBPARTITION p1sp1 VALUES LESS THAN (9223372036854775807) ENGINE = InnoDB), PARTITION p2 VALUES LESS THAN (6148914691236517205,9223372036854775807) - (SUBPARTITION sp2 VALUES LESS THAN (9223372036854775807) ENGINE = InnoDB), + (SUBPARTITION p2sp2 VALUES LESS THAN (9223372036854775807) ENGINE = InnoDB), PARTITION p3 VALUES LESS THAN (9223372036854775807,9223372036854775807) - (SUBPARTITION sp3 VALUES LESS THAN (9223372036854775807) ENGINE = InnoDB)) + (SUBPARTITION p3sp3 VALUES LESS THAN (9223372036854775807) ENGINE = InnoDB)) tablegroup = `my_ntp_tg_1` /*+TDDL:cmd_extra(SHOW_HASH_PARTITIONS_BY_RANGE=TRUE)*/show full create table k_h_ntp2; Table,Create Table @@ -983,20 +983,20 @@ k_h_ntp2,CREATE TABLE `k_h_ntp2` ( PARTITION BY KEY(`c`,`d`) SUBPARTITION BY HASH(`a`,`b`) (PARTITION p5 VALUES LESS THAN (-7686143364045646505,9223372036854775807) - (SUBPARTITION sp5 VALUES LESS THAN (1) ENGINE = InnoDB, - SUBPARTITION sp6 VALUES LESS THAN (9223372036854775807) ENGINE = InnoDB), + (SUBPARTITION p5sp5 VALUES LESS THAN (1) ENGINE = InnoDB, + SUBPARTITION p5sp6 VALUES LESS THAN (9223372036854775807) ENGINE = InnoDB), PARTITION p6 VALUES LESS THAN (-6148914691236517202,9223372036854775807) - (SUBPARTITION sp7 VALUES LESS THAN (1) ENGINE = InnoDB, - SUBPARTITION sp8 VALUES LESS THAN (9223372036854775807) ENGINE = InnoDB), + (SUBPARTITION p6sp7 VALUES LESS THAN (1) ENGINE = InnoDB, + SUBPARTITION p6sp8 VALUES LESS THAN (9223372036854775807) ENGINE = InnoDB), PARTITION p7 VALUES LESS THAN (-4611686018427387899,9223372036854775807) - (SUBPARTITION sp9 VALUES LESS THAN (1) ENGINE = InnoDB, - SUBPARTITION sp10 VALUES LESS THAN (9223372036854775807) ENGINE = InnoDB), + (SUBPARTITION p7sp9 VALUES LESS THAN (1) ENGINE = InnoDB, + SUBPARTITION p7sp10 VALUES LESS THAN (9223372036854775807) ENGINE = InnoDB), PARTITION p1 VALUES LESS THAN (3,9223372036854775807) - (SUBPARTITION sp1 VALUES LESS THAN (9223372036854775807) ENGINE = InnoDB), + (SUBPARTITION p1sp1 VALUES LESS THAN (9223372036854775807) ENGINE = InnoDB), PARTITION p2 VALUES LESS THAN (6148914691236517205,9223372036854775807) - (SUBPARTITION sp2 VALUES LESS THAN (9223372036854775807) ENGINE = InnoDB), + (SUBPARTITION p2sp2 VALUES LESS THAN (9223372036854775807) ENGINE = InnoDB), PARTITION p3 VALUES LESS THAN (9223372036854775807,9223372036854775807) - (SUBPARTITION sp3 VALUES LESS THAN (9223372036854775807) ENGINE = InnoDB)) + (SUBPARTITION p3sp3 VALUES LESS THAN (9223372036854775807) ENGINE = InnoDB)) tablegroup = `my_ntp_tg_1` drop table k_h_ntp1; drop table k_h_ntp2; @@ -1061,20 +1061,20 @@ k_k_ntp1,CREATE TABLE `k_k_ntp1` ( PARTITION BY KEY(`c`,`d`) SUBPARTITION BY KEY(`a`,`b`) (PARTITION p5 VALUES LESS THAN (-7686143364045646505,9223372036854775807) - (SUBPARTITION sp5 VALUES LESS THAN (1,9223372036854775807) ENGINE = InnoDB, - SUBPARTITION sp6 VALUES LESS THAN (9223372036854775807,9223372036854775807) ENGINE = InnoDB), + (SUBPARTITION p5sp5 VALUES LESS THAN (1,9223372036854775807) ENGINE = InnoDB, + SUBPARTITION p5sp6 VALUES LESS THAN (9223372036854775807,9223372036854775807) ENGINE = InnoDB), PARTITION p6 VALUES LESS THAN (-6148914691236517202,9223372036854775807) - (SUBPARTITION sp7 VALUES LESS THAN (1,9223372036854775807) ENGINE = InnoDB, - SUBPARTITION sp8 VALUES LESS THAN (9223372036854775807,9223372036854775807) ENGINE = InnoDB), + (SUBPARTITION p6sp7 VALUES LESS THAN (1,9223372036854775807) ENGINE = InnoDB, + SUBPARTITION p6sp8 VALUES LESS THAN (9223372036854775807,9223372036854775807) ENGINE = InnoDB), PARTITION p7 VALUES LESS THAN (-4611686018427387899,9223372036854775807) - (SUBPARTITION sp9 VALUES LESS THAN (1,9223372036854775807) ENGINE = InnoDB, - SUBPARTITION sp10 VALUES LESS THAN (9223372036854775807,9223372036854775807) ENGINE = InnoDB), + (SUBPARTITION p7sp9 VALUES LESS THAN (1,9223372036854775807) ENGINE = InnoDB, + SUBPARTITION p7sp10 VALUES LESS THAN (9223372036854775807,9223372036854775807) ENGINE = InnoDB), PARTITION p1 VALUES LESS THAN (3,9223372036854775807) - (SUBPARTITION sp1 VALUES LESS THAN (9223372036854775807,9223372036854775807) ENGINE = InnoDB), + (SUBPARTITION p1sp1 VALUES LESS THAN (9223372036854775807,9223372036854775807) ENGINE = InnoDB), PARTITION p2 VALUES LESS THAN (6148914691236517205,9223372036854775807) - (SUBPARTITION sp2 VALUES LESS THAN (9223372036854775807,9223372036854775807) ENGINE = InnoDB), + (SUBPARTITION p2sp2 VALUES LESS THAN (9223372036854775807,9223372036854775807) ENGINE = InnoDB), PARTITION p3 VALUES LESS THAN (9223372036854775807,9223372036854775807) - (SUBPARTITION sp3 VALUES LESS THAN (9223372036854775807,9223372036854775807) ENGINE = InnoDB)) + (SUBPARTITION p3sp3 VALUES LESS THAN (9223372036854775807,9223372036854775807) ENGINE = InnoDB)) tablegroup = `my_ntp_tg_1` /*+TDDL:cmd_extra(SHOW_HASH_PARTITIONS_BY_RANGE=TRUE)*/show full create table k_k_ntp2; Table,Create Table @@ -1092,20 +1092,20 @@ k_k_ntp2,CREATE TABLE `k_k_ntp2` ( PARTITION BY KEY(`c`,`d`) SUBPARTITION BY KEY(`a`,`b`) (PARTITION p5 VALUES LESS THAN (-7686143364045646505,9223372036854775807) - (SUBPARTITION sp5 VALUES LESS THAN (1,9223372036854775807) ENGINE = InnoDB, - SUBPARTITION sp6 VALUES LESS THAN (9223372036854775807,9223372036854775807) ENGINE = InnoDB), + (SUBPARTITION p5sp5 VALUES LESS THAN (1,9223372036854775807) ENGINE = InnoDB, + SUBPARTITION p5sp6 VALUES LESS THAN (9223372036854775807,9223372036854775807) ENGINE = InnoDB), PARTITION p6 VALUES LESS THAN (-6148914691236517202,9223372036854775807) - (SUBPARTITION sp7 VALUES LESS THAN (1,9223372036854775807) ENGINE = InnoDB, - SUBPARTITION sp8 VALUES LESS THAN (9223372036854775807,9223372036854775807) ENGINE = InnoDB), + (SUBPARTITION p6sp7 VALUES LESS THAN (1,9223372036854775807) ENGINE = InnoDB, + SUBPARTITION p6sp8 VALUES LESS THAN (9223372036854775807,9223372036854775807) ENGINE = InnoDB), PARTITION p7 VALUES LESS THAN (-4611686018427387899,9223372036854775807) - (SUBPARTITION sp9 VALUES LESS THAN (1,9223372036854775807) ENGINE = InnoDB, - SUBPARTITION sp10 VALUES LESS THAN (9223372036854775807,9223372036854775807) ENGINE = InnoDB), + (SUBPARTITION p7sp9 VALUES LESS THAN (1,9223372036854775807) ENGINE = InnoDB, + SUBPARTITION p7sp10 VALUES LESS THAN (9223372036854775807,9223372036854775807) ENGINE = InnoDB), PARTITION p1 VALUES LESS THAN (3,9223372036854775807) - (SUBPARTITION sp1 VALUES LESS THAN (9223372036854775807,9223372036854775807) ENGINE = InnoDB), + (SUBPARTITION p1sp1 VALUES LESS THAN (9223372036854775807,9223372036854775807) ENGINE = InnoDB), PARTITION p2 VALUES LESS THAN (6148914691236517205,9223372036854775807) - (SUBPARTITION sp2 VALUES LESS THAN (9223372036854775807,9223372036854775807) ENGINE = InnoDB), + (SUBPARTITION p2sp2 VALUES LESS THAN (9223372036854775807,9223372036854775807) ENGINE = InnoDB), PARTITION p3 VALUES LESS THAN (9223372036854775807,9223372036854775807) - (SUBPARTITION sp3 VALUES LESS THAN (9223372036854775807,9223372036854775807) ENGINE = InnoDB)) + (SUBPARTITION p3sp3 VALUES LESS THAN (9223372036854775807,9223372036854775807) ENGINE = InnoDB)) tablegroup = `my_ntp_tg_1` drop table k_k_ntp1; drop table k_k_ntp2; @@ -1205,29 +1205,29 @@ k_r_ntp1,CREATE TABLE `k_r_ntp1` ( PARTITION BY KEY(`a`,`b`) SUBPARTITION BY RANGE(TO_DAYS(`c`)) (PARTITION p5 VALUES LESS THAN (-7686143364045646505,9223372036854775807) - (SUBPARTITION sp5 VALUES LESS THAN (737790) ENGINE = InnoDB, - SUBPARTITION sp6 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB), + (SUBPARTITION p5sp5 VALUES LESS THAN (737790) ENGINE = InnoDB, + SUBPARTITION p5sp6 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB), PARTITION p6 VALUES LESS THAN (-6148914691236517202,9223372036854775807) - (SUBPARTITION sp7 VALUES LESS THAN (737790) ENGINE = InnoDB, - SUBPARTITION sp8 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB), + (SUBPARTITION p6sp7 VALUES LESS THAN (737790) ENGINE = InnoDB, + SUBPARTITION p6sp8 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB), PARTITION p7 VALUES LESS THAN (-4611686018427387899,9223372036854775807) - (SUBPARTITION sp9 VALUES LESS THAN (737790) ENGINE = InnoDB, - SUBPARTITION sp10 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB), + (SUBPARTITION p7sp9 VALUES LESS THAN (737790) ENGINE = InnoDB, + SUBPARTITION p7sp10 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB), PARTITION px1 VALUES LESS THAN (-3074457345618258599,9223372036854775807) - (SUBPARTITION sp3 VALUES LESS THAN (737790) ENGINE = InnoDB, - SUBPARTITION sp4 VALUES LESS THAN (738156) ENGINE = InnoDB, - SUBPARTITION sp11 VALUES LESS THAN (738521) ENGINE = InnoDB, - SUBPARTITION sp12 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB), + (SUBPARTITION px1sp3 VALUES LESS THAN (737790) ENGINE = InnoDB, + SUBPARTITION px1sp4 VALUES LESS THAN (738156) ENGINE = InnoDB, + SUBPARTITION px1sp11 VALUES LESS THAN (738521) ENGINE = InnoDB, + SUBPARTITION px1sp12 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB), PARTITION px2 VALUES LESS THAN (-1024819115206086199,9223372036854775807) - (SUBPARTITION sp13 VALUES LESS THAN (737790) ENGINE = InnoDB, - SUBPARTITION sp14 VALUES LESS THAN (738156) ENGINE = InnoDB, - SUBPARTITION sp15 VALUES LESS THAN (738521) ENGINE = InnoDB, - SUBPARTITION sp16 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB), + (SUBPARTITION px2sp13 VALUES LESS THAN (737790) ENGINE = InnoDB, + SUBPARTITION px2sp14 VALUES LESS THAN (738156) ENGINE = InnoDB, + SUBPARTITION px2sp15 VALUES LESS THAN (738521) ENGINE = InnoDB, + SUBPARTITION px2sp16 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB), PARTITION px3 VALUES LESS THAN (3,9223372036854775807) - (SUBPARTITION sp17 VALUES LESS THAN (737790) ENGINE = InnoDB, - SUBPARTITION sp18 VALUES LESS THAN (738156) ENGINE = InnoDB, - SUBPARTITION sp19 VALUES LESS THAN (738521) ENGINE = InnoDB, - SUBPARTITION sp20 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB), + (SUBPARTITION px3sp17 VALUES LESS THAN (737790) ENGINE = InnoDB, + SUBPARTITION px3sp18 VALUES LESS THAN (738156) ENGINE = InnoDB, + SUBPARTITION px3sp19 VALUES LESS THAN (738521) ENGINE = InnoDB, + SUBPARTITION px3sp20 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB), PARTITION p34 VALUES LESS THAN (9223372036854775807,9223372036854775807) (SUBPARTITION sp1 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB)) tablegroup = `my_ntp_tg_1` @@ -1247,29 +1247,29 @@ k_r_ntp2,CREATE TABLE `k_r_ntp2` ( PARTITION BY KEY(`a`,`b`) SUBPARTITION BY RANGE(TO_DAYS(`c`)) (PARTITION p5 VALUES LESS THAN (-7686143364045646505,9223372036854775807) - (SUBPARTITION sp5 VALUES LESS THAN (737790) ENGINE = InnoDB, - SUBPARTITION sp6 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB), + (SUBPARTITION p5sp5 VALUES LESS THAN (737790) ENGINE = InnoDB, + SUBPARTITION p5sp6 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB), PARTITION p6 VALUES LESS THAN (-6148914691236517202,9223372036854775807) - (SUBPARTITION sp7 VALUES LESS THAN (737790) ENGINE = InnoDB, - SUBPARTITION sp8 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB), + (SUBPARTITION p6sp7 VALUES LESS THAN (737790) ENGINE = InnoDB, + SUBPARTITION p6sp8 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB), PARTITION p7 VALUES LESS THAN (-4611686018427387899,9223372036854775807) - (SUBPARTITION sp9 VALUES LESS THAN (737790) ENGINE = InnoDB, - SUBPARTITION sp10 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB), + (SUBPARTITION p7sp9 VALUES LESS THAN (737790) ENGINE = InnoDB, + SUBPARTITION p7sp10 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB), PARTITION px1 VALUES LESS THAN (-3074457345618258599,9223372036854775807) - (SUBPARTITION sp3 VALUES LESS THAN (737790) ENGINE = InnoDB, - SUBPARTITION sp4 VALUES LESS THAN (738156) ENGINE = InnoDB, - SUBPARTITION sp11 VALUES LESS THAN (738521) ENGINE = InnoDB, - SUBPARTITION sp12 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB), + (SUBPARTITION px1sp3 VALUES LESS THAN (737790) ENGINE = InnoDB, + SUBPARTITION px1sp4 VALUES LESS THAN (738156) ENGINE = InnoDB, + SUBPARTITION px1sp11 VALUES LESS THAN (738521) ENGINE = InnoDB, + SUBPARTITION px1sp12 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB), PARTITION px2 VALUES LESS THAN (-1024819115206086199,9223372036854775807) - (SUBPARTITION sp13 VALUES LESS THAN (737790) ENGINE = InnoDB, - SUBPARTITION sp14 VALUES LESS THAN (738156) ENGINE = InnoDB, - SUBPARTITION sp15 VALUES LESS THAN (738521) ENGINE = InnoDB, - SUBPARTITION sp16 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB), + (SUBPARTITION px2sp13 VALUES LESS THAN (737790) ENGINE = InnoDB, + SUBPARTITION px2sp14 VALUES LESS THAN (738156) ENGINE = InnoDB, + SUBPARTITION px2sp15 VALUES LESS THAN (738521) ENGINE = InnoDB, + SUBPARTITION px2sp16 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB), PARTITION px3 VALUES LESS THAN (3,9223372036854775807) - (SUBPARTITION sp17 VALUES LESS THAN (737790) ENGINE = InnoDB, - SUBPARTITION sp18 VALUES LESS THAN (738156) ENGINE = InnoDB, - SUBPARTITION sp19 VALUES LESS THAN (738521) ENGINE = InnoDB, - SUBPARTITION sp20 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB), + (SUBPARTITION px3sp17 VALUES LESS THAN (737790) ENGINE = InnoDB, + SUBPARTITION px3sp18 VALUES LESS THAN (738156) ENGINE = InnoDB, + SUBPARTITION px3sp19 VALUES LESS THAN (738521) ENGINE = InnoDB, + SUBPARTITION px3sp20 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB), PARTITION p34 VALUES LESS THAN (9223372036854775807,9223372036854775807) (SUBPARTITION sp1 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB)) tablegroup = `my_ntp_tg_1` @@ -1371,29 +1371,29 @@ k_rc_ntp1,CREATE TABLE `k_rc_ntp1` ( PARTITION BY KEY(`a`,`b`) SUBPARTITION BY RANGE COLUMNS(`c`,`d`) (PARTITION p5 VALUES LESS THAN (-7686143364045646505,9223372036854775807) - (SUBPARTITION sp5 VALUES LESS THAN ('2020-01-01 00:00:00','abc') ENGINE = InnoDB, - SUBPARTITION sp6 VALUES LESS THAN (MAXVALUE,MAXVALUE) ENGINE = InnoDB), + (SUBPARTITION p5sp5 VALUES LESS THAN ('2020-01-01 00:00:00','abc') ENGINE = InnoDB, + SUBPARTITION p5sp6 VALUES LESS THAN (MAXVALUE,MAXVALUE) ENGINE = InnoDB), PARTITION p6 VALUES LESS THAN (-6148914691236517202,9223372036854775807) - (SUBPARTITION sp7 VALUES LESS THAN ('2020-01-01 00:00:00','abc') ENGINE = InnoDB, - SUBPARTITION sp8 VALUES LESS THAN (MAXVALUE,MAXVALUE) ENGINE = InnoDB), + (SUBPARTITION p6sp7 VALUES LESS THAN ('2020-01-01 00:00:00','abc') ENGINE = InnoDB, + SUBPARTITION p6sp8 VALUES LESS THAN (MAXVALUE,MAXVALUE) ENGINE = InnoDB), PARTITION p7 VALUES LESS THAN (-4611686018427387899,9223372036854775807) - (SUBPARTITION sp9 VALUES LESS THAN ('2020-01-01 00:00:00','abc') ENGINE = InnoDB, - SUBPARTITION sp10 VALUES LESS THAN (MAXVALUE,MAXVALUE) ENGINE = InnoDB), + (SUBPARTITION p7sp9 VALUES LESS THAN ('2020-01-01 00:00:00','abc') ENGINE = InnoDB, + SUBPARTITION p7sp10 VALUES LESS THAN (MAXVALUE,MAXVALUE) ENGINE = InnoDB), PARTITION px1 VALUES LESS THAN (-3074457345618258599,9223372036854775807) - (SUBPARTITION sp3 VALUES LESS THAN ('2020-01-01 00:00:00','abc') ENGINE = InnoDB, - SUBPARTITION sp4 VALUES LESS THAN ('2021-01-01 00:00:00','abc') ENGINE = InnoDB, - SUBPARTITION sp11 VALUES LESS THAN ('2022-01-01 00:00:00','abc') ENGINE = InnoDB, - SUBPARTITION sp12 VALUES LESS THAN (MAXVALUE,MAXVALUE) ENGINE = InnoDB), + (SUBPARTITION px1sp3 VALUES LESS THAN ('2020-01-01 00:00:00','abc') ENGINE = InnoDB, + SUBPARTITION px1sp4 VALUES LESS THAN ('2021-01-01 00:00:00','abc') ENGINE = InnoDB, + SUBPARTITION px1sp11 VALUES LESS THAN ('2022-01-01 00:00:00','abc') ENGINE = InnoDB, + SUBPARTITION px1sp12 VALUES LESS THAN (MAXVALUE,MAXVALUE) ENGINE = InnoDB), PARTITION px2 VALUES LESS THAN (-1024819115206086199,9223372036854775807) - (SUBPARTITION sp13 VALUES LESS THAN ('2020-01-01 00:00:00','abc') ENGINE = InnoDB, - SUBPARTITION sp14 VALUES LESS THAN ('2021-01-01 00:00:00','abc') ENGINE = InnoDB, - SUBPARTITION sp15 VALUES LESS THAN ('2022-01-01 00:00:00','abc') ENGINE = InnoDB, - SUBPARTITION sp16 VALUES LESS THAN (MAXVALUE,MAXVALUE) ENGINE = InnoDB), + (SUBPARTITION px2sp13 VALUES LESS THAN ('2020-01-01 00:00:00','abc') ENGINE = InnoDB, + SUBPARTITION px2sp14 VALUES LESS THAN ('2021-01-01 00:00:00','abc') ENGINE = InnoDB, + SUBPARTITION px2sp15 VALUES LESS THAN ('2022-01-01 00:00:00','abc') ENGINE = InnoDB, + SUBPARTITION px2sp16 VALUES LESS THAN (MAXVALUE,MAXVALUE) ENGINE = InnoDB), PARTITION px3 VALUES LESS THAN (3,9223372036854775807) - (SUBPARTITION sp17 VALUES LESS THAN ('2020-01-01 00:00:00','abc') ENGINE = InnoDB, - SUBPARTITION sp18 VALUES LESS THAN ('2021-01-01 00:00:00','abc') ENGINE = InnoDB, - SUBPARTITION sp19 VALUES LESS THAN ('2022-01-01 00:00:00','abc') ENGINE = InnoDB, - SUBPARTITION sp20 VALUES LESS THAN (MAXVALUE,MAXVALUE) ENGINE = InnoDB), + (SUBPARTITION px3sp17 VALUES LESS THAN ('2020-01-01 00:00:00','abc') ENGINE = InnoDB, + SUBPARTITION px3sp18 VALUES LESS THAN ('2021-01-01 00:00:00','abc') ENGINE = InnoDB, + SUBPARTITION px3sp19 VALUES LESS THAN ('2022-01-01 00:00:00','abc') ENGINE = InnoDB, + SUBPARTITION px3sp20 VALUES LESS THAN (MAXVALUE,MAXVALUE) ENGINE = InnoDB), PARTITION p34 VALUES LESS THAN (9223372036854775807,9223372036854775807) (SUBPARTITION sp1 VALUES LESS THAN (MAXVALUE,MAXVALUE) ENGINE = InnoDB)) tablegroup = `my_ntp_tg_1` @@ -1413,29 +1413,29 @@ k_rc_ntp2,CREATE TABLE `k_rc_ntp2` ( PARTITION BY KEY(`a`,`b`) SUBPARTITION BY RANGE COLUMNS(`c`,`d`) (PARTITION p5 VALUES LESS THAN (-7686143364045646505,9223372036854775807) - (SUBPARTITION sp5 VALUES LESS THAN ('2020-01-01 00:00:00','abc') ENGINE = InnoDB, - SUBPARTITION sp6 VALUES LESS THAN (MAXVALUE,MAXVALUE) ENGINE = InnoDB), + (SUBPARTITION p5sp5 VALUES LESS THAN ('2020-01-01 00:00:00','abc') ENGINE = InnoDB, + SUBPARTITION p5sp6 VALUES LESS THAN (MAXVALUE,MAXVALUE) ENGINE = InnoDB), PARTITION p6 VALUES LESS THAN (-6148914691236517202,9223372036854775807) - (SUBPARTITION sp7 VALUES LESS THAN ('2020-01-01 00:00:00','abc') ENGINE = InnoDB, - SUBPARTITION sp8 VALUES LESS THAN (MAXVALUE,MAXVALUE) ENGINE = InnoDB), + (SUBPARTITION p6sp7 VALUES LESS THAN ('2020-01-01 00:00:00','abc') ENGINE = InnoDB, + SUBPARTITION p6sp8 VALUES LESS THAN (MAXVALUE,MAXVALUE) ENGINE = InnoDB), PARTITION p7 VALUES LESS THAN (-4611686018427387899,9223372036854775807) - (SUBPARTITION sp9 VALUES LESS THAN ('2020-01-01 00:00:00','abc') ENGINE = InnoDB, - SUBPARTITION sp10 VALUES LESS THAN (MAXVALUE,MAXVALUE) ENGINE = InnoDB), + (SUBPARTITION p7sp9 VALUES LESS THAN ('2020-01-01 00:00:00','abc') ENGINE = InnoDB, + SUBPARTITION p7sp10 VALUES LESS THAN (MAXVALUE,MAXVALUE) ENGINE = InnoDB), PARTITION px1 VALUES LESS THAN (-3074457345618258599,9223372036854775807) - (SUBPARTITION sp3 VALUES LESS THAN ('2020-01-01 00:00:00','abc') ENGINE = InnoDB, - SUBPARTITION sp4 VALUES LESS THAN ('2021-01-01 00:00:00','abc') ENGINE = InnoDB, - SUBPARTITION sp11 VALUES LESS THAN ('2022-01-01 00:00:00','abc') ENGINE = InnoDB, - SUBPARTITION sp12 VALUES LESS THAN (MAXVALUE,MAXVALUE) ENGINE = InnoDB), + (SUBPARTITION px1sp3 VALUES LESS THAN ('2020-01-01 00:00:00','abc') ENGINE = InnoDB, + SUBPARTITION px1sp4 VALUES LESS THAN ('2021-01-01 00:00:00','abc') ENGINE = InnoDB, + SUBPARTITION px1sp11 VALUES LESS THAN ('2022-01-01 00:00:00','abc') ENGINE = InnoDB, + SUBPARTITION px1sp12 VALUES LESS THAN (MAXVALUE,MAXVALUE) ENGINE = InnoDB), PARTITION px2 VALUES LESS THAN (-1024819115206086199,9223372036854775807) - (SUBPARTITION sp13 VALUES LESS THAN ('2020-01-01 00:00:00','abc') ENGINE = InnoDB, - SUBPARTITION sp14 VALUES LESS THAN ('2021-01-01 00:00:00','abc') ENGINE = InnoDB, - SUBPARTITION sp15 VALUES LESS THAN ('2022-01-01 00:00:00','abc') ENGINE = InnoDB, - SUBPARTITION sp16 VALUES LESS THAN (MAXVALUE,MAXVALUE) ENGINE = InnoDB), + (SUBPARTITION px2sp13 VALUES LESS THAN ('2020-01-01 00:00:00','abc') ENGINE = InnoDB, + SUBPARTITION px2sp14 VALUES LESS THAN ('2021-01-01 00:00:00','abc') ENGINE = InnoDB, + SUBPARTITION px2sp15 VALUES LESS THAN ('2022-01-01 00:00:00','abc') ENGINE = InnoDB, + SUBPARTITION px2sp16 VALUES LESS THAN (MAXVALUE,MAXVALUE) ENGINE = InnoDB), PARTITION px3 VALUES LESS THAN (3,9223372036854775807) - (SUBPARTITION sp17 VALUES LESS THAN ('2020-01-01 00:00:00','abc') ENGINE = InnoDB, - SUBPARTITION sp18 VALUES LESS THAN ('2021-01-01 00:00:00','abc') ENGINE = InnoDB, - SUBPARTITION sp19 VALUES LESS THAN ('2022-01-01 00:00:00','abc') ENGINE = InnoDB, - SUBPARTITION sp20 VALUES LESS THAN (MAXVALUE,MAXVALUE) ENGINE = InnoDB), + (SUBPARTITION px3sp17 VALUES LESS THAN ('2020-01-01 00:00:00','abc') ENGINE = InnoDB, + SUBPARTITION px3sp18 VALUES LESS THAN ('2021-01-01 00:00:00','abc') ENGINE = InnoDB, + SUBPARTITION px3sp19 VALUES LESS THAN ('2022-01-01 00:00:00','abc') ENGINE = InnoDB, + SUBPARTITION px3sp20 VALUES LESS THAN (MAXVALUE,MAXVALUE) ENGINE = InnoDB), PARTITION p34 VALUES LESS THAN (9223372036854775807,9223372036854775807) (SUBPARTITION sp1 VALUES LESS THAN (MAXVALUE,MAXVALUE) ENGINE = InnoDB)) tablegroup = `my_ntp_tg_1` @@ -1535,32 +1535,32 @@ k_l_ntp1,CREATE TABLE `k_l_ntp1` ( PARTITION BY KEY(`a`,`b`) SUBPARTITION BY LIST(TO_DAYS(`c`)) (PARTITION p5 VALUES LESS THAN (-7686143364045646505,9223372036854775807) - (SUBPARTITION sp5 VALUES IN (737790) ENGINE = InnoDB, - SUBPARTITION sp6 VALUES IN (DEFAULT) ENGINE = InnoDB), + (SUBPARTITION p5sp5 VALUES IN (737790) ENGINE = InnoDB, + SUBPARTITION p5sp6 VALUES IN (DEFAULT) ENGINE = InnoDB), PARTITION p6 VALUES LESS THAN (-6148914691236517202,9223372036854775807) - (SUBPARTITION sp7 VALUES IN (737790) ENGINE = InnoDB, - SUBPARTITION sp8 VALUES IN (DEFAULT) ENGINE = InnoDB), + (SUBPARTITION p6sp7 VALUES IN (737790) ENGINE = InnoDB, + SUBPARTITION p6sp8 VALUES IN (DEFAULT) ENGINE = InnoDB), PARTITION p7 VALUES LESS THAN (-4611686018427387899,9223372036854775807) - (SUBPARTITION sp9 VALUES IN (737790) ENGINE = InnoDB, - SUBPARTITION sp10 VALUES IN (DEFAULT) ENGINE = InnoDB), + (SUBPARTITION p7sp9 VALUES IN (737790) ENGINE = InnoDB, + SUBPARTITION p7sp10 VALUES IN (DEFAULT) ENGINE = InnoDB), PARTITION p3 VALUES LESS THAN (-3074457345618258599,9223372036854775807) - (SUBPARTITION sp3 VALUES IN (1,2,3,4,5,6) ENGINE = InnoDB, - SUBPARTITION sp4 VALUES IN (10,11,12,13) ENGINE = InnoDB, - SUBPARTITION sp11 VALUES IN (737790) ENGINE = InnoDB, - SUBPARTITION sp12 VALUES IN (738156) ENGINE = InnoDB, - SUBPARTITION sp13 VALUES IN (DEFAULT) ENGINE = InnoDB), + (SUBPARTITION p3sp3 VALUES IN (1,2,3,4,5,6) ENGINE = InnoDB, + SUBPARTITION p3sp4 VALUES IN (10,11,12,13) ENGINE = InnoDB, + SUBPARTITION p3sp11 VALUES IN (737790) ENGINE = InnoDB, + SUBPARTITION p3sp12 VALUES IN (738156) ENGINE = InnoDB, + SUBPARTITION p3sp13 VALUES IN (DEFAULT) ENGINE = InnoDB), PARTITION p4 VALUES LESS THAN (-1024819115206086199,9223372036854775807) - (SUBPARTITION sp14 VALUES IN (1,2,3,4,5,6) ENGINE = InnoDB, - SUBPARTITION sp15 VALUES IN (10,11,12,13) ENGINE = InnoDB, - SUBPARTITION sp16 VALUES IN (737790) ENGINE = InnoDB, - SUBPARTITION sp17 VALUES IN (738156) ENGINE = InnoDB, - SUBPARTITION sp18 VALUES IN (DEFAULT) ENGINE = InnoDB), - PARTITION p11 VALUES LESS THAN (3,9223372036854775807) - (SUBPARTITION sp19 VALUES IN (1,2,3,4,5,6) ENGINE = InnoDB, - SUBPARTITION sp20 VALUES IN (10,11,12,13) ENGINE = InnoDB, - SUBPARTITION sp21 VALUES IN (737790) ENGINE = InnoDB, - SUBPARTITION sp22 VALUES IN (738156) ENGINE = InnoDB, - SUBPARTITION sp23 VALUES IN (DEFAULT) ENGINE = InnoDB), + (SUBPARTITION p4sp14 VALUES IN (1,2,3,4,5,6) ENGINE = InnoDB, + SUBPARTITION p4sp15 VALUES IN (10,11,12,13) ENGINE = InnoDB, + SUBPARTITION p4sp16 VALUES IN (737790) ENGINE = InnoDB, + SUBPARTITION p4sp17 VALUES IN (738156) ENGINE = InnoDB, + SUBPARTITION p4sp18 VALUES IN (DEFAULT) ENGINE = InnoDB), + PARTITION p8 VALUES LESS THAN (3,9223372036854775807) + (SUBPARTITION p8sp19 VALUES IN (1,2,3,4,5,6) ENGINE = InnoDB, + SUBPARTITION p8sp20 VALUES IN (10,11,12,13) ENGINE = InnoDB, + SUBPARTITION p8sp21 VALUES IN (737790) ENGINE = InnoDB, + SUBPARTITION p8sp22 VALUES IN (738156) ENGINE = InnoDB, + SUBPARTITION p8sp23 VALUES IN (DEFAULT) ENGINE = InnoDB), PARTITION p34 VALUES LESS THAN (9223372036854775807,9223372036854775807) (SUBPARTITION sp1 VALUES IN (DEFAULT) ENGINE = InnoDB)) tablegroup = `my_ntp_tg_1` @@ -1580,32 +1580,32 @@ k_l_ntp2,CREATE TABLE `k_l_ntp2` ( PARTITION BY KEY(`a`,`b`) SUBPARTITION BY LIST(TO_DAYS(`c`)) (PARTITION p5 VALUES LESS THAN (-7686143364045646505,9223372036854775807) - (SUBPARTITION sp5 VALUES IN (737790) ENGINE = InnoDB, - SUBPARTITION sp6 VALUES IN (DEFAULT) ENGINE = InnoDB), + (SUBPARTITION p5sp5 VALUES IN (737790) ENGINE = InnoDB, + SUBPARTITION p5sp6 VALUES IN (DEFAULT) ENGINE = InnoDB), PARTITION p6 VALUES LESS THAN (-6148914691236517202,9223372036854775807) - (SUBPARTITION sp7 VALUES IN (737790) ENGINE = InnoDB, - SUBPARTITION sp8 VALUES IN (DEFAULT) ENGINE = InnoDB), + (SUBPARTITION p6sp7 VALUES IN (737790) ENGINE = InnoDB, + SUBPARTITION p6sp8 VALUES IN (DEFAULT) ENGINE = InnoDB), PARTITION p7 VALUES LESS THAN (-4611686018427387899,9223372036854775807) - (SUBPARTITION sp9 VALUES IN (737790) ENGINE = InnoDB, - SUBPARTITION sp10 VALUES IN (DEFAULT) ENGINE = InnoDB), + (SUBPARTITION p7sp9 VALUES IN (737790) ENGINE = InnoDB, + SUBPARTITION p7sp10 VALUES IN (DEFAULT) ENGINE = InnoDB), PARTITION p3 VALUES LESS THAN (-3074457345618258599,9223372036854775807) - (SUBPARTITION sp3 VALUES IN (1,2,3,4,5,6) ENGINE = InnoDB, - SUBPARTITION sp4 VALUES IN (10,11,12,13) ENGINE = InnoDB, - SUBPARTITION sp11 VALUES IN (737790) ENGINE = InnoDB, - SUBPARTITION sp12 VALUES IN (738156) ENGINE = InnoDB, - SUBPARTITION sp13 VALUES IN (DEFAULT) ENGINE = InnoDB), + (SUBPARTITION p3sp3 VALUES IN (1,2,3,4,5,6) ENGINE = InnoDB, + SUBPARTITION p3sp4 VALUES IN (10,11,12,13) ENGINE = InnoDB, + SUBPARTITION p3sp11 VALUES IN (737790) ENGINE = InnoDB, + SUBPARTITION p3sp12 VALUES IN (738156) ENGINE = InnoDB, + SUBPARTITION p3sp13 VALUES IN (DEFAULT) ENGINE = InnoDB), PARTITION p4 VALUES LESS THAN (-1024819115206086199,9223372036854775807) - (SUBPARTITION sp14 VALUES IN (1,2,3,4,5,6) ENGINE = InnoDB, - SUBPARTITION sp15 VALUES IN (10,11,12,13) ENGINE = InnoDB, - SUBPARTITION sp16 VALUES IN (737790) ENGINE = InnoDB, - SUBPARTITION sp17 VALUES IN (738156) ENGINE = InnoDB, - SUBPARTITION sp18 VALUES IN (DEFAULT) ENGINE = InnoDB), - PARTITION p11 VALUES LESS THAN (3,9223372036854775807) - (SUBPARTITION sp19 VALUES IN (1,2,3,4,5,6) ENGINE = InnoDB, - SUBPARTITION sp20 VALUES IN (10,11,12,13) ENGINE = InnoDB, - SUBPARTITION sp21 VALUES IN (737790) ENGINE = InnoDB, - SUBPARTITION sp22 VALUES IN (738156) ENGINE = InnoDB, - SUBPARTITION sp23 VALUES IN (DEFAULT) ENGINE = InnoDB), + (SUBPARTITION p4sp14 VALUES IN (1,2,3,4,5,6) ENGINE = InnoDB, + SUBPARTITION p4sp15 VALUES IN (10,11,12,13) ENGINE = InnoDB, + SUBPARTITION p4sp16 VALUES IN (737790) ENGINE = InnoDB, + SUBPARTITION p4sp17 VALUES IN (738156) ENGINE = InnoDB, + SUBPARTITION p4sp18 VALUES IN (DEFAULT) ENGINE = InnoDB), + PARTITION p8 VALUES LESS THAN (3,9223372036854775807) + (SUBPARTITION p8sp19 VALUES IN (1,2,3,4,5,6) ENGINE = InnoDB, + SUBPARTITION p8sp20 VALUES IN (10,11,12,13) ENGINE = InnoDB, + SUBPARTITION p8sp21 VALUES IN (737790) ENGINE = InnoDB, + SUBPARTITION p8sp22 VALUES IN (738156) ENGINE = InnoDB, + SUBPARTITION p8sp23 VALUES IN (DEFAULT) ENGINE = InnoDB), PARTITION p34 VALUES LESS THAN (9223372036854775807,9223372036854775807) (SUBPARTITION sp1 VALUES IN (DEFAULT) ENGINE = InnoDB)) tablegroup = `my_ntp_tg_1` @@ -1705,32 +1705,32 @@ k_lc_ntp1,CREATE TABLE `k_lc_ntp1` ( PARTITION BY KEY(`a`,`b`) SUBPARTITION BY LIST COLUMNS(`c`,`d`) (PARTITION p5 VALUES LESS THAN (-7686143364045646505,9223372036854775807) - (SUBPARTITION sp5 VALUES IN (('2020-01-01 00:00:00','abc')) ENGINE = InnoDB, - SUBPARTITION sp6 VALUES IN (DEFAULT) ENGINE = InnoDB), + (SUBPARTITION p5sp5 VALUES IN (('2020-01-01 00:00:00','abc')) ENGINE = InnoDB, + SUBPARTITION p5sp6 VALUES IN (DEFAULT) ENGINE = InnoDB), PARTITION p6 VALUES LESS THAN (-6148914691236517202,9223372036854775807) - (SUBPARTITION sp7 VALUES IN (('2020-01-01 00:00:00','abc')) ENGINE = InnoDB, - SUBPARTITION sp8 VALUES IN (DEFAULT) ENGINE = InnoDB), + (SUBPARTITION p6sp7 VALUES IN (('2020-01-01 00:00:00','abc')) ENGINE = InnoDB, + SUBPARTITION p6sp8 VALUES IN (DEFAULT) ENGINE = InnoDB), PARTITION p7 VALUES LESS THAN (-4611686018427387899,9223372036854775807) - (SUBPARTITION sp9 VALUES IN (('2020-01-01 00:00:00','abc')) ENGINE = InnoDB, - SUBPARTITION sp10 VALUES IN (DEFAULT) ENGINE = InnoDB), + (SUBPARTITION p7sp9 VALUES IN (('2020-01-01 00:00:00','abc')) ENGINE = InnoDB, + SUBPARTITION p7sp10 VALUES IN (DEFAULT) ENGINE = InnoDB), PARTITION p3 VALUES LESS THAN (-3074457345618258599,9223372036854775807) - (SUBPARTITION sp3 VALUES IN (('2020-01-01 00:00:00','abc')) ENGINE = InnoDB, - SUBPARTITION sp4 VALUES IN (('2021-01-01 00:00:00','abc')) ENGINE = InnoDB, - SUBPARTITION sp11 VALUES IN (('2021-01-01 00:00:00','bc'),('2021-01-02 00:00:00','abc'),('2022-01-01 00:00:00','abc')) ENGINE = InnoDB, - SUBPARTITION sp12 VALUES IN (('2021-11-01 00:00:00','abc'),('2022-10-01 00:00:00','abc'),('2022-10-01 00:00:00','abce')) ENGINE = InnoDB, - SUBPARTITION sp13 VALUES IN (DEFAULT) ENGINE = InnoDB), + (SUBPARTITION p3sp3 VALUES IN (('2020-01-01 00:00:00','abc')) ENGINE = InnoDB, + SUBPARTITION p3sp4 VALUES IN (('2021-01-01 00:00:00','abc')) ENGINE = InnoDB, + SUBPARTITION p3sp11 VALUES IN (('2021-01-01 00:00:00','bc'),('2021-01-02 00:00:00','abc'),('2022-01-01 00:00:00','abc')) ENGINE = InnoDB, + SUBPARTITION p3sp12 VALUES IN (('2021-11-01 00:00:00','abc'),('2022-10-01 00:00:00','abc'),('2022-10-01 00:00:00','abce')) ENGINE = InnoDB, + SUBPARTITION p3sp13 VALUES IN (DEFAULT) ENGINE = InnoDB), PARTITION p4 VALUES LESS THAN (-1024819115206086199,9223372036854775807) - (SUBPARTITION sp14 VALUES IN (('2020-01-01 00:00:00','abc')) ENGINE = InnoDB, - SUBPARTITION sp15 VALUES IN (('2021-01-01 00:00:00','abc')) ENGINE = InnoDB, - SUBPARTITION sp16 VALUES IN (('2021-01-01 00:00:00','bc'),('2021-01-02 00:00:00','abc'),('2022-01-01 00:00:00','abc')) ENGINE = InnoDB, - SUBPARTITION sp17 VALUES IN (('2021-11-01 00:00:00','abc'),('2022-10-01 00:00:00','abc'),('2022-10-01 00:00:00','abce')) ENGINE = InnoDB, - SUBPARTITION sp18 VALUES IN (DEFAULT) ENGINE = InnoDB), - PARTITION p11 VALUES LESS THAN (3,9223372036854775807) - (SUBPARTITION sp19 VALUES IN (('2020-01-01 00:00:00','abc')) ENGINE = InnoDB, - SUBPARTITION sp20 VALUES IN (('2021-01-01 00:00:00','abc')) ENGINE = InnoDB, - SUBPARTITION sp21 VALUES IN (('2021-01-01 00:00:00','bc'),('2021-01-02 00:00:00','abc'),('2022-01-01 00:00:00','abc')) ENGINE = InnoDB, - SUBPARTITION sp22 VALUES IN (('2021-11-01 00:00:00','abc'),('2022-10-01 00:00:00','abc'),('2022-10-01 00:00:00','abce')) ENGINE = InnoDB, - SUBPARTITION sp23 VALUES IN (DEFAULT) ENGINE = InnoDB), + (SUBPARTITION p4sp14 VALUES IN (('2020-01-01 00:00:00','abc')) ENGINE = InnoDB, + SUBPARTITION p4sp15 VALUES IN (('2021-01-01 00:00:00','abc')) ENGINE = InnoDB, + SUBPARTITION p4sp16 VALUES IN (('2021-01-01 00:00:00','bc'),('2021-01-02 00:00:00','abc'),('2022-01-01 00:00:00','abc')) ENGINE = InnoDB, + SUBPARTITION p4sp17 VALUES IN (('2021-11-01 00:00:00','abc'),('2022-10-01 00:00:00','abc'),('2022-10-01 00:00:00','abce')) ENGINE = InnoDB, + SUBPARTITION p4sp18 VALUES IN (DEFAULT) ENGINE = InnoDB), + PARTITION p8 VALUES LESS THAN (3,9223372036854775807) + (SUBPARTITION p8sp19 VALUES IN (('2020-01-01 00:00:00','abc')) ENGINE = InnoDB, + SUBPARTITION p8sp20 VALUES IN (('2021-01-01 00:00:00','abc')) ENGINE = InnoDB, + SUBPARTITION p8sp21 VALUES IN (('2021-01-01 00:00:00','bc'),('2021-01-02 00:00:00','abc'),('2022-01-01 00:00:00','abc')) ENGINE = InnoDB, + SUBPARTITION p8sp22 VALUES IN (('2021-11-01 00:00:00','abc'),('2022-10-01 00:00:00','abc'),('2022-10-01 00:00:00','abce')) ENGINE = InnoDB, + SUBPARTITION p8sp23 VALUES IN (DEFAULT) ENGINE = InnoDB), PARTITION p34 VALUES LESS THAN (9223372036854775807,9223372036854775807) (SUBPARTITION sp1 VALUES IN (DEFAULT) ENGINE = InnoDB)) tablegroup = `my_ntp_tg_1` @@ -1750,32 +1750,32 @@ k_lc_ntp2,CREATE TABLE `k_lc_ntp2` ( PARTITION BY KEY(`a`,`b`) SUBPARTITION BY LIST COLUMNS(`c`,`d`) (PARTITION p5 VALUES LESS THAN (-7686143364045646505,9223372036854775807) - (SUBPARTITION sp5 VALUES IN (('2020-01-01 00:00:00','abc')) ENGINE = InnoDB, - SUBPARTITION sp6 VALUES IN (DEFAULT) ENGINE = InnoDB), + (SUBPARTITION p5sp5 VALUES IN (('2020-01-01 00:00:00','abc')) ENGINE = InnoDB, + SUBPARTITION p5sp6 VALUES IN (DEFAULT) ENGINE = InnoDB), PARTITION p6 VALUES LESS THAN (-6148914691236517202,9223372036854775807) - (SUBPARTITION sp7 VALUES IN (('2020-01-01 00:00:00','abc')) ENGINE = InnoDB, - SUBPARTITION sp8 VALUES IN (DEFAULT) ENGINE = InnoDB), + (SUBPARTITION p6sp7 VALUES IN (('2020-01-01 00:00:00','abc')) ENGINE = InnoDB, + SUBPARTITION p6sp8 VALUES IN (DEFAULT) ENGINE = InnoDB), PARTITION p7 VALUES LESS THAN (-4611686018427387899,9223372036854775807) - (SUBPARTITION sp9 VALUES IN (('2020-01-01 00:00:00','abc')) ENGINE = InnoDB, - SUBPARTITION sp10 VALUES IN (DEFAULT) ENGINE = InnoDB), + (SUBPARTITION p7sp9 VALUES IN (('2020-01-01 00:00:00','abc')) ENGINE = InnoDB, + SUBPARTITION p7sp10 VALUES IN (DEFAULT) ENGINE = InnoDB), PARTITION p3 VALUES LESS THAN (-3074457345618258599,9223372036854775807) - (SUBPARTITION sp3 VALUES IN (('2020-01-01 00:00:00','abc')) ENGINE = InnoDB, - SUBPARTITION sp4 VALUES IN (('2021-01-01 00:00:00','abc')) ENGINE = InnoDB, - SUBPARTITION sp11 VALUES IN (('2021-01-01 00:00:00','bc'),('2021-01-02 00:00:00','abc'),('2022-01-01 00:00:00','abc')) ENGINE = InnoDB, - SUBPARTITION sp12 VALUES IN (('2021-11-01 00:00:00','abc'),('2022-10-01 00:00:00','abc'),('2022-10-01 00:00:00','abce')) ENGINE = InnoDB, - SUBPARTITION sp13 VALUES IN (DEFAULT) ENGINE = InnoDB), + (SUBPARTITION p3sp3 VALUES IN (('2020-01-01 00:00:00','abc')) ENGINE = InnoDB, + SUBPARTITION p3sp4 VALUES IN (('2021-01-01 00:00:00','abc')) ENGINE = InnoDB, + SUBPARTITION p3sp11 VALUES IN (('2021-01-01 00:00:00','bc'),('2021-01-02 00:00:00','abc'),('2022-01-01 00:00:00','abc')) ENGINE = InnoDB, + SUBPARTITION p3sp12 VALUES IN (('2021-11-01 00:00:00','abc'),('2022-10-01 00:00:00','abc'),('2022-10-01 00:00:00','abce')) ENGINE = InnoDB, + SUBPARTITION p3sp13 VALUES IN (DEFAULT) ENGINE = InnoDB), PARTITION p4 VALUES LESS THAN (-1024819115206086199,9223372036854775807) - (SUBPARTITION sp14 VALUES IN (('2020-01-01 00:00:00','abc')) ENGINE = InnoDB, - SUBPARTITION sp15 VALUES IN (('2021-01-01 00:00:00','abc')) ENGINE = InnoDB, - SUBPARTITION sp16 VALUES IN (('2021-01-01 00:00:00','bc'),('2021-01-02 00:00:00','abc'),('2022-01-01 00:00:00','abc')) ENGINE = InnoDB, - SUBPARTITION sp17 VALUES IN (('2021-11-01 00:00:00','abc'),('2022-10-01 00:00:00','abc'),('2022-10-01 00:00:00','abce')) ENGINE = InnoDB, - SUBPARTITION sp18 VALUES IN (DEFAULT) ENGINE = InnoDB), - PARTITION p11 VALUES LESS THAN (3,9223372036854775807) - (SUBPARTITION sp19 VALUES IN (('2020-01-01 00:00:00','abc')) ENGINE = InnoDB, - SUBPARTITION sp20 VALUES IN (('2021-01-01 00:00:00','abc')) ENGINE = InnoDB, - SUBPARTITION sp21 VALUES IN (('2021-01-01 00:00:00','bc'),('2021-01-02 00:00:00','abc'),('2022-01-01 00:00:00','abc')) ENGINE = InnoDB, - SUBPARTITION sp22 VALUES IN (('2021-11-01 00:00:00','abc'),('2022-10-01 00:00:00','abc'),('2022-10-01 00:00:00','abce')) ENGINE = InnoDB, - SUBPARTITION sp23 VALUES IN (DEFAULT) ENGINE = InnoDB), + (SUBPARTITION p4sp14 VALUES IN (('2020-01-01 00:00:00','abc')) ENGINE = InnoDB, + SUBPARTITION p4sp15 VALUES IN (('2021-01-01 00:00:00','abc')) ENGINE = InnoDB, + SUBPARTITION p4sp16 VALUES IN (('2021-01-01 00:00:00','bc'),('2021-01-02 00:00:00','abc'),('2022-01-01 00:00:00','abc')) ENGINE = InnoDB, + SUBPARTITION p4sp17 VALUES IN (('2021-11-01 00:00:00','abc'),('2022-10-01 00:00:00','abc'),('2022-10-01 00:00:00','abce')) ENGINE = InnoDB, + SUBPARTITION p4sp18 VALUES IN (DEFAULT) ENGINE = InnoDB), + PARTITION p8 VALUES LESS THAN (3,9223372036854775807) + (SUBPARTITION p8sp19 VALUES IN (('2020-01-01 00:00:00','abc')) ENGINE = InnoDB, + SUBPARTITION p8sp20 VALUES IN (('2021-01-01 00:00:00','abc')) ENGINE = InnoDB, + SUBPARTITION p8sp21 VALUES IN (('2021-01-01 00:00:00','bc'),('2021-01-02 00:00:00','abc'),('2022-01-01 00:00:00','abc')) ENGINE = InnoDB, + SUBPARTITION p8sp22 VALUES IN (('2021-11-01 00:00:00','abc'),('2022-10-01 00:00:00','abc'),('2022-10-01 00:00:00','abce')) ENGINE = InnoDB, + SUBPARTITION p8sp23 VALUES IN (DEFAULT) ENGINE = InnoDB), PARTITION p34 VALUES LESS THAN (9223372036854775807,9223372036854775807) (SUBPARTITION sp1 VALUES IN (DEFAULT) ENGINE = InnoDB)) tablegroup = `my_ntp_tg_1` @@ -3090,9 +3090,9 @@ SUBPARTITION BY HASH(`a`,`b`) SUBPARTITION pxx4 VALUES LESS THAN (-4611686018427387899) ENGINE = InnoDB, SUBPARTITION p2sp234 VALUES LESS THAN (9223372036854775807) ENGINE = InnoDB), PARTITION p32 VALUES IN (DEFAULT) - (SUBPARTITION sp13 VALUES LESS THAN (-3074457345618258601) ENGINE = InnoDB, - SUBPARTITION sp14 VALUES LESS THAN (3074457345618258603) ENGINE = InnoDB, - SUBPARTITION sp15 VALUES LESS THAN (9223372036854775807) ENGINE = InnoDB)) + (SUBPARTITION p32sp13 VALUES LESS THAN (-3074457345618258601) ENGINE = InnoDB, + SUBPARTITION p32sp14 VALUES LESS THAN (3074457345618258603) ENGINE = InnoDB, + SUBPARTITION p32sp15 VALUES LESS THAN (9223372036854775807) ENGINE = InnoDB)) tablegroup = `my_ntp_tg_1` /*+TDDL:cmd_extra(SHOW_HASH_PARTITIONS_BY_RANGE=TRUE)*/show full create table l_h_ntp2; Table,Create Table @@ -3123,9 +3123,9 @@ SUBPARTITION BY HASH(`a`,`b`) SUBPARTITION pxx4 VALUES LESS THAN (-4611686018427387899) ENGINE = InnoDB, SUBPARTITION p2sp234 VALUES LESS THAN (9223372036854775807) ENGINE = InnoDB), PARTITION p32 VALUES IN (DEFAULT) - (SUBPARTITION sp13 VALUES LESS THAN (-3074457345618258601) ENGINE = InnoDB, - SUBPARTITION sp14 VALUES LESS THAN (3074457345618258603) ENGINE = InnoDB, - SUBPARTITION sp15 VALUES LESS THAN (9223372036854775807) ENGINE = InnoDB)) + (SUBPARTITION p32sp13 VALUES LESS THAN (-3074457345618258601) ENGINE = InnoDB, + SUBPARTITION p32sp14 VALUES LESS THAN (3074457345618258603) ENGINE = InnoDB, + SUBPARTITION p32sp15 VALUES LESS THAN (9223372036854775807) ENGINE = InnoDB)) tablegroup = `my_ntp_tg_1` drop table l_h_ntp1; drop table l_h_ntp2; @@ -3201,9 +3201,9 @@ SUBPARTITION BY KEY(`a`,`b`) SUBPARTITION pxx4 VALUES LESS THAN (-4611686018427387899,9223372036854775807) ENGINE = InnoDB, SUBPARTITION p2sp234 VALUES LESS THAN (9223372036854775807,9223372036854775807) ENGINE = InnoDB), PARTITION p32 VALUES IN (DEFAULT) - (SUBPARTITION sp13 VALUES LESS THAN (-3074457345618258601,9223372036854775807) ENGINE = InnoDB, - SUBPARTITION sp14 VALUES LESS THAN (3074457345618258603,9223372036854775807) ENGINE = InnoDB, - SUBPARTITION sp15 VALUES LESS THAN (9223372036854775807,9223372036854775807) ENGINE = InnoDB)) + (SUBPARTITION p32sp13 VALUES LESS THAN (-3074457345618258601,9223372036854775807) ENGINE = InnoDB, + SUBPARTITION p32sp14 VALUES LESS THAN (3074457345618258603,9223372036854775807) ENGINE = InnoDB, + SUBPARTITION p32sp15 VALUES LESS THAN (9223372036854775807,9223372036854775807) ENGINE = InnoDB)) tablegroup = `my_ntp_tg_1` /*+TDDL:cmd_extra(SHOW_HASH_PARTITIONS_BY_RANGE=TRUE)*/show full create table l_k_ntp2; Table,Create Table @@ -3234,9 +3234,9 @@ SUBPARTITION BY KEY(`a`,`b`) SUBPARTITION pxx4 VALUES LESS THAN (-4611686018427387899,9223372036854775807) ENGINE = InnoDB, SUBPARTITION p2sp234 VALUES LESS THAN (9223372036854775807,9223372036854775807) ENGINE = InnoDB), PARTITION p32 VALUES IN (DEFAULT) - (SUBPARTITION sp13 VALUES LESS THAN (-3074457345618258601,9223372036854775807) ENGINE = InnoDB, - SUBPARTITION sp14 VALUES LESS THAN (3074457345618258603,9223372036854775807) ENGINE = InnoDB, - SUBPARTITION sp15 VALUES LESS THAN (9223372036854775807,9223372036854775807) ENGINE = InnoDB)) + (SUBPARTITION p32sp13 VALUES LESS THAN (-3074457345618258601,9223372036854775807) ENGINE = InnoDB, + SUBPARTITION p32sp14 VALUES LESS THAN (3074457345618258603,9223372036854775807) ENGINE = InnoDB, + SUBPARTITION p32sp15 VALUES LESS THAN (9223372036854775807,9223372036854775807) ENGINE = InnoDB)) tablegroup = `my_ntp_tg_1` drop table l_k_ntp1; drop table l_k_ntp2; @@ -3316,9 +3316,9 @@ SUBPARTITION BY RANGE(`a`) PARTITION p2 VALUES IN (1000000,3000000) (SUBPARTITION sp2 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB), PARTITION p22 VALUES IN (DEFAULT) - (SUBPARTITION sp9 VALUES LESS THAN (1000) ENGINE = InnoDB, - SUBPARTITION sp10 VALUES LESS THAN (2000) ENGINE = InnoDB, - SUBPARTITION sp11 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB)) + (SUBPARTITION p22sp9 VALUES LESS THAN (1000) ENGINE = InnoDB, + SUBPARTITION p22sp10 VALUES LESS THAN (2000) ENGINE = InnoDB, + SUBPARTITION p22sp11 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB)) tablegroup = `my_ntp_tg_1` /*+TDDL:cmd_extra(SHOW_HASH_PARTITIONS_BY_RANGE=TRUE)*/show full create table l_r_ntp2; Table,Create Table @@ -3341,9 +3341,9 @@ SUBPARTITION BY RANGE(`a`) PARTITION p2 VALUES IN (1000000,3000000) (SUBPARTITION sp2 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB), PARTITION p22 VALUES IN (DEFAULT) - (SUBPARTITION sp9 VALUES LESS THAN (1000) ENGINE = InnoDB, - SUBPARTITION sp10 VALUES LESS THAN (2000) ENGINE = InnoDB, - SUBPARTITION sp11 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB)) + (SUBPARTITION p22sp9 VALUES LESS THAN (1000) ENGINE = InnoDB, + SUBPARTITION p22sp10 VALUES LESS THAN (2000) ENGINE = InnoDB, + SUBPARTITION p22sp11 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB)) tablegroup = `my_ntp_tg_1` drop table l_r_ntp1; drop table l_r_ntp2; @@ -3423,9 +3423,9 @@ SUBPARTITION BY RANGE COLUMNS(`a`,`b`) (SUBPARTITION p1sp1 VALUES LESS THAN (1000,10000) ENGINE = InnoDB, SUBPARTITION p1sp2 VALUES LESS THAN (MAXVALUE,MAXVALUE) ENGINE = InnoDB), PARTITION p22 VALUES IN (DEFAULT) - (SUBPARTITION sp9 VALUES LESS THAN (1000,10000) ENGINE = InnoDB, - SUBPARTITION sp10 VALUES LESS THAN (2000,10000) ENGINE = InnoDB, - SUBPARTITION sp11 VALUES LESS THAN (MAXVALUE,MAXVALUE) ENGINE = InnoDB)) + (SUBPARTITION p22sp9 VALUES LESS THAN (1000,10000) ENGINE = InnoDB, + SUBPARTITION p22sp10 VALUES LESS THAN (2000,10000) ENGINE = InnoDB, + SUBPARTITION p22sp11 VALUES LESS THAN (MAXVALUE,MAXVALUE) ENGINE = InnoDB)) tablegroup = `my_ntp_tg_1` /*+TDDL:cmd_extra(SHOW_HASH_PARTITIONS_BY_RANGE=TRUE)*/show full create table l_rc_ntp2; Table,Create Table @@ -3448,9 +3448,9 @@ SUBPARTITION BY RANGE COLUMNS(`a`,`b`) (SUBPARTITION p1sp1 VALUES LESS THAN (1000,10000) ENGINE = InnoDB, SUBPARTITION p1sp2 VALUES LESS THAN (MAXVALUE,MAXVALUE) ENGINE = InnoDB), PARTITION p22 VALUES IN (DEFAULT) - (SUBPARTITION sp9 VALUES LESS THAN (1000,10000) ENGINE = InnoDB, - SUBPARTITION sp10 VALUES LESS THAN (2000,10000) ENGINE = InnoDB, - SUBPARTITION sp11 VALUES LESS THAN (MAXVALUE,MAXVALUE) ENGINE = InnoDB)) + (SUBPARTITION p22sp9 VALUES LESS THAN (1000,10000) ENGINE = InnoDB, + SUBPARTITION p22sp10 VALUES LESS THAN (2000,10000) ENGINE = InnoDB, + SUBPARTITION p22sp11 VALUES LESS THAN (MAXVALUE,MAXVALUE) ENGINE = InnoDB)) tablegroup = `my_ntp_tg_1` drop table l_rc_ntp1; drop table l_rc_ntp2; @@ -3530,9 +3530,9 @@ SUBPARTITION BY LIST(`a`) (SUBPARTITION p1sp1 VALUES IN (1000,2000) ENGINE = InnoDB, SUBPARTITION p1sp2 VALUES IN (DEFAULT) ENGINE = InnoDB), PARTITION p22 VALUES IN (DEFAULT) - (SUBPARTITION sp9 VALUES IN (1000,2000) ENGINE = InnoDB, - SUBPARTITION sp10 VALUES IN (3000,4000) ENGINE = InnoDB, - SUBPARTITION sp11 VALUES IN (DEFAULT) ENGINE = InnoDB)) + (SUBPARTITION p22sp9 VALUES IN (1000,2000) ENGINE = InnoDB, + SUBPARTITION p22sp10 VALUES IN (3000,4000) ENGINE = InnoDB, + SUBPARTITION p22sp11 VALUES IN (DEFAULT) ENGINE = InnoDB)) tablegroup = `my_ntp_tg_1` /*+TDDL:cmd_extra(SHOW_HASH_PARTITIONS_BY_RANGE=TRUE)*/show full create table l_l_ntp2; Table,Create Table @@ -3555,9 +3555,9 @@ SUBPARTITION BY LIST(`a`) (SUBPARTITION p1sp1 VALUES IN (1000,2000) ENGINE = InnoDB, SUBPARTITION p1sp2 VALUES IN (DEFAULT) ENGINE = InnoDB), PARTITION p22 VALUES IN (DEFAULT) - (SUBPARTITION sp9 VALUES IN (1000,2000) ENGINE = InnoDB, - SUBPARTITION sp10 VALUES IN (3000,4000) ENGINE = InnoDB, - SUBPARTITION sp11 VALUES IN (DEFAULT) ENGINE = InnoDB)) + (SUBPARTITION p22sp9 VALUES IN (1000,2000) ENGINE = InnoDB, + SUBPARTITION p22sp10 VALUES IN (3000,4000) ENGINE = InnoDB, + SUBPARTITION p22sp11 VALUES IN (DEFAULT) ENGINE = InnoDB)) tablegroup = `my_ntp_tg_1` drop table l_l_ntp1; drop table l_l_ntp2; @@ -3638,9 +3638,9 @@ SUBPARTITION BY LIST COLUMNS(`a`,`b`) SUBPARTITION p1sp2 VALUES IN ((1000,4000),(1000,5000)) ENGINE = InnoDB, SUBPARTITION p1sp22 VALUES IN (DEFAULT) ENGINE = InnoDB), PARTITION p22 VALUES IN (DEFAULT) - (SUBPARTITION sp9 VALUES IN ((1000,2000)) ENGINE = InnoDB, - SUBPARTITION sp10 VALUES IN ((2000,2000)) ENGINE = InnoDB, - SUBPARTITION sp11 VALUES IN (DEFAULT) ENGINE = InnoDB)) + (SUBPARTITION p22sp9 VALUES IN ((1000,2000)) ENGINE = InnoDB, + SUBPARTITION p22sp10 VALUES IN ((2000,2000)) ENGINE = InnoDB, + SUBPARTITION p22sp11 VALUES IN (DEFAULT) ENGINE = InnoDB)) tablegroup = `my_ntp_tg_1` /*+TDDL:cmd_extra(SHOW_HASH_PARTITIONS_BY_RANGE=TRUE)*/show full create table l_lc_ntp2; Table,Create Table @@ -3664,9 +3664,9 @@ SUBPARTITION BY LIST COLUMNS(`a`,`b`) SUBPARTITION p1sp2 VALUES IN ((1000,4000),(1000,5000)) ENGINE = InnoDB, SUBPARTITION p1sp22 VALUES IN (DEFAULT) ENGINE = InnoDB), PARTITION p22 VALUES IN (DEFAULT) - (SUBPARTITION sp9 VALUES IN ((1000,2000)) ENGINE = InnoDB, - SUBPARTITION sp10 VALUES IN ((2000,2000)) ENGINE = InnoDB, - SUBPARTITION sp11 VALUES IN (DEFAULT) ENGINE = InnoDB)) + (SUBPARTITION p22sp9 VALUES IN ((1000,2000)) ENGINE = InnoDB, + SUBPARTITION p22sp10 VALUES IN ((2000,2000)) ENGINE = InnoDB, + SUBPARTITION p22sp11 VALUES IN (DEFAULT) ENGINE = InnoDB)) tablegroup = `my_ntp_tg_1` drop table l_lc_ntp1; drop table l_lc_ntp2; @@ -3736,9 +3736,9 @@ SUBPARTITION BY HASH(`a`,`b`) PARTITION p2 VALUES IN (('2020-01-01 00:00:00','abcd'),('2020-01-01 00:00:00','abce'),('2020-01-01 00:00:00','abcf'),('2020-01-02 00:00:00','abcg')) (SUBPARTITION sp2 VALUES LESS THAN (9223372036854775807) ENGINE = InnoDB), PARTITION p22 VALUES IN (DEFAULT) - (SUBPARTITION sp12 VALUES LESS THAN (-3074457345618258601) ENGINE = InnoDB, - SUBPARTITION sp13 VALUES LESS THAN (3074457345618258603) ENGINE = InnoDB, - SUBPARTITION sp14 VALUES LESS THAN (9223372036854775807) ENGINE = InnoDB)) + (SUBPARTITION p22sp12 VALUES LESS THAN (-3074457345618258601) ENGINE = InnoDB, + SUBPARTITION p22sp13 VALUES LESS THAN (3074457345618258603) ENGINE = InnoDB, + SUBPARTITION p22sp14 VALUES LESS THAN (9223372036854775807) ENGINE = InnoDB)) tablegroup = `my_ntp_tg_1` /*+TDDL:cmd_extra(SHOW_HASH_PARTITIONS_BY_RANGE=TRUE)*/show full create table lc_h_ntp2; Table,Create Table @@ -3765,9 +3765,9 @@ SUBPARTITION BY HASH(`a`,`b`) PARTITION p2 VALUES IN (('2020-01-01 00:00:00','abcd'),('2020-01-01 00:00:00','abce'),('2020-01-01 00:00:00','abcf'),('2020-01-02 00:00:00','abcg')) (SUBPARTITION sp2 VALUES LESS THAN (9223372036854775807) ENGINE = InnoDB), PARTITION p22 VALUES IN (DEFAULT) - (SUBPARTITION sp12 VALUES LESS THAN (-3074457345618258601) ENGINE = InnoDB, - SUBPARTITION sp13 VALUES LESS THAN (3074457345618258603) ENGINE = InnoDB, - SUBPARTITION sp14 VALUES LESS THAN (9223372036854775807) ENGINE = InnoDB)) + (SUBPARTITION p22sp12 VALUES LESS THAN (-3074457345618258601) ENGINE = InnoDB, + SUBPARTITION p22sp13 VALUES LESS THAN (3074457345618258603) ENGINE = InnoDB, + SUBPARTITION p22sp14 VALUES LESS THAN (9223372036854775807) ENGINE = InnoDB)) tablegroup = `my_ntp_tg_1` drop table lc_h_ntp1; drop table lc_h_ntp2; @@ -3836,9 +3836,9 @@ SUBPARTITION BY KEY(`a`,`b`) PARTITION p2 VALUES IN (('2020-01-01 00:00:00','abcd'),('2020-01-01 00:00:00','abce'),('2020-01-01 00:00:00','abcf'),('2020-01-02 00:00:00','abcg')) (SUBPARTITION sp2 VALUES LESS THAN (9223372036854775807,9223372036854775807) ENGINE = InnoDB), PARTITION p22 VALUES IN (DEFAULT) - (SUBPARTITION sp12 VALUES LESS THAN (-3074457345618258601,9223372036854775807) ENGINE = InnoDB, - SUBPARTITION sp13 VALUES LESS THAN (3074457345618258603,9223372036854775807) ENGINE = InnoDB, - SUBPARTITION sp14 VALUES LESS THAN (9223372036854775807,9223372036854775807) ENGINE = InnoDB)) + (SUBPARTITION p22sp12 VALUES LESS THAN (-3074457345618258601,9223372036854775807) ENGINE = InnoDB, + SUBPARTITION p22sp13 VALUES LESS THAN (3074457345618258603,9223372036854775807) ENGINE = InnoDB, + SUBPARTITION p22sp14 VALUES LESS THAN (9223372036854775807,9223372036854775807) ENGINE = InnoDB)) tablegroup = `my_ntp_tg_1` /*+TDDL:cmd_extra(SHOW_HASH_PARTITIONS_BY_RANGE=TRUE)*/show full create table lc_k_ntp2; Table,Create Table @@ -3865,9 +3865,9 @@ SUBPARTITION BY KEY(`a`,`b`) PARTITION p2 VALUES IN (('2020-01-01 00:00:00','abcd'),('2020-01-01 00:00:00','abce'),('2020-01-01 00:00:00','abcf'),('2020-01-02 00:00:00','abcg')) (SUBPARTITION sp2 VALUES LESS THAN (9223372036854775807,9223372036854775807) ENGINE = InnoDB), PARTITION p22 VALUES IN (DEFAULT) - (SUBPARTITION sp12 VALUES LESS THAN (-3074457345618258601,9223372036854775807) ENGINE = InnoDB, - SUBPARTITION sp13 VALUES LESS THAN (3074457345618258603,9223372036854775807) ENGINE = InnoDB, - SUBPARTITION sp14 VALUES LESS THAN (9223372036854775807,9223372036854775807) ENGINE = InnoDB)) + (SUBPARTITION p22sp12 VALUES LESS THAN (-3074457345618258601,9223372036854775807) ENGINE = InnoDB, + SUBPARTITION p22sp13 VALUES LESS THAN (3074457345618258603,9223372036854775807) ENGINE = InnoDB, + SUBPARTITION p22sp14 VALUES LESS THAN (9223372036854775807,9223372036854775807) ENGINE = InnoDB)) tablegroup = `my_ntp_tg_1` drop table lc_k_ntp1; drop table lc_k_ntp2; @@ -3947,9 +3947,9 @@ SUBPARTITION BY RANGE(`a`) (SUBPARTITION p1sp1 VALUES LESS THAN (1000) ENGINE = InnoDB, SUBPARTITION p1sp2 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB), PARTITION p22 VALUES IN (DEFAULT) - (SUBPARTITION sp9 VALUES LESS THAN (1000) ENGINE = InnoDB, - SUBPARTITION sp10 VALUES LESS THAN (2000) ENGINE = InnoDB, - SUBPARTITION sp11 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB)) + (SUBPARTITION p22sp9 VALUES LESS THAN (1000) ENGINE = InnoDB, + SUBPARTITION p22sp10 VALUES LESS THAN (2000) ENGINE = InnoDB, + SUBPARTITION p22sp11 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB)) tablegroup = `my_ntp_tg_1` /*+TDDL:cmd_extra(SHOW_HASH_PARTITIONS_BY_RANGE=TRUE)*/show full create table lc_r_ntp2; Table,Create Table @@ -3972,9 +3972,9 @@ SUBPARTITION BY RANGE(`a`) (SUBPARTITION p1sp1 VALUES LESS THAN (1000) ENGINE = InnoDB, SUBPARTITION p1sp2 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB), PARTITION p22 VALUES IN (DEFAULT) - (SUBPARTITION sp9 VALUES LESS THAN (1000) ENGINE = InnoDB, - SUBPARTITION sp10 VALUES LESS THAN (2000) ENGINE = InnoDB, - SUBPARTITION sp11 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB)) + (SUBPARTITION p22sp9 VALUES LESS THAN (1000) ENGINE = InnoDB, + SUBPARTITION p22sp10 VALUES LESS THAN (2000) ENGINE = InnoDB, + SUBPARTITION p22sp11 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB)) tablegroup = `my_ntp_tg_1` drop table lc_r_ntp1; drop table lc_r_ntp2; @@ -4054,9 +4054,9 @@ SUBPARTITION BY RANGE COLUMNS(`a`,`b`) (SUBPARTITION p1sp1 VALUES LESS THAN (1000,10000) ENGINE = InnoDB, SUBPARTITION p1sp2 VALUES LESS THAN (MAXVALUE,MAXVALUE) ENGINE = InnoDB), PARTITION p22 VALUES IN (DEFAULT) - (SUBPARTITION sp9 VALUES LESS THAN (1000,10000) ENGINE = InnoDB, - SUBPARTITION sp10 VALUES LESS THAN (2000,10000) ENGINE = InnoDB, - SUBPARTITION sp11 VALUES LESS THAN (MAXVALUE,MAXVALUE) ENGINE = InnoDB)) + (SUBPARTITION p22sp9 VALUES LESS THAN (1000,10000) ENGINE = InnoDB, + SUBPARTITION p22sp10 VALUES LESS THAN (2000,10000) ENGINE = InnoDB, + SUBPARTITION p22sp11 VALUES LESS THAN (MAXVALUE,MAXVALUE) ENGINE = InnoDB)) tablegroup = `my_ntp_tg_1` /*+TDDL:cmd_extra(SHOW_HASH_PARTITIONS_BY_RANGE=TRUE)*/show full create table lc_rc_ntp2; Table,Create Table @@ -4079,9 +4079,9 @@ SUBPARTITION BY RANGE COLUMNS(`a`,`b`) (SUBPARTITION p1sp1 VALUES LESS THAN (1000,10000) ENGINE = InnoDB, SUBPARTITION p1sp2 VALUES LESS THAN (MAXVALUE,MAXVALUE) ENGINE = InnoDB), PARTITION p22 VALUES IN (DEFAULT) - (SUBPARTITION sp9 VALUES LESS THAN (1000,10000) ENGINE = InnoDB, - SUBPARTITION sp10 VALUES LESS THAN (2000,10000) ENGINE = InnoDB, - SUBPARTITION sp11 VALUES LESS THAN (MAXVALUE,MAXVALUE) ENGINE = InnoDB)) + (SUBPARTITION p22sp9 VALUES LESS THAN (1000,10000) ENGINE = InnoDB, + SUBPARTITION p22sp10 VALUES LESS THAN (2000,10000) ENGINE = InnoDB, + SUBPARTITION p22sp11 VALUES LESS THAN (MAXVALUE,MAXVALUE) ENGINE = InnoDB)) tablegroup = `my_ntp_tg_1` drop table lc_rc_ntp1; drop table lc_rc_ntp2; @@ -4162,9 +4162,9 @@ SUBPARTITION BY LIST(`a`) SUBPARTITION p1sp2 VALUES IN (8000,9000) ENGINE = InnoDB, SUBPARTITION p1sp22 VALUES IN (DEFAULT) ENGINE = InnoDB), PARTITION p22 VALUES IN (DEFAULT) - (SUBPARTITION sp9 VALUES IN (1000,2000) ENGINE = InnoDB, - SUBPARTITION sp10 VALUES IN (3000,4000) ENGINE = InnoDB, - SUBPARTITION sp11 VALUES IN (DEFAULT) ENGINE = InnoDB)) + (SUBPARTITION p22sp9 VALUES IN (1000,2000) ENGINE = InnoDB, + SUBPARTITION p22sp10 VALUES IN (3000,4000) ENGINE = InnoDB, + SUBPARTITION p22sp11 VALUES IN (DEFAULT) ENGINE = InnoDB)) tablegroup = `my_ntp_tg_1` /*+TDDL:cmd_extra(SHOW_HASH_PARTITIONS_BY_RANGE=TRUE)*/show full create table lc_l_ntp2; Table,Create Table @@ -4188,9 +4188,9 @@ SUBPARTITION BY LIST(`a`) SUBPARTITION p1sp2 VALUES IN (8000,9000) ENGINE = InnoDB, SUBPARTITION p1sp22 VALUES IN (DEFAULT) ENGINE = InnoDB), PARTITION p22 VALUES IN (DEFAULT) - (SUBPARTITION sp9 VALUES IN (1000,2000) ENGINE = InnoDB, - SUBPARTITION sp10 VALUES IN (3000,4000) ENGINE = InnoDB, - SUBPARTITION sp11 VALUES IN (DEFAULT) ENGINE = InnoDB)) + (SUBPARTITION p22sp9 VALUES IN (1000,2000) ENGINE = InnoDB, + SUBPARTITION p22sp10 VALUES IN (3000,4000) ENGINE = InnoDB, + SUBPARTITION p22sp11 VALUES IN (DEFAULT) ENGINE = InnoDB)) tablegroup = `my_ntp_tg_1` drop table lc_l_ntp1; drop table lc_l_ntp2; @@ -4271,9 +4271,9 @@ SUBPARTITION BY LIST COLUMNS(`a`,`b`) SUBPARTITION p1sp1 VALUES IN ((1000,2000)) ENGINE = InnoDB, SUBPARTITION p1sp22 VALUES IN (DEFAULT) ENGINE = InnoDB), PARTITION p22 VALUES IN (DEFAULT) - (SUBPARTITION sp9 VALUES IN ((1000,2000)) ENGINE = InnoDB, - SUBPARTITION sp10 VALUES IN ((2000,2000)) ENGINE = InnoDB, - SUBPARTITION sp11 VALUES IN (DEFAULT) ENGINE = InnoDB)) + (SUBPARTITION p22sp9 VALUES IN ((1000,2000)) ENGINE = InnoDB, + SUBPARTITION p22sp10 VALUES IN ((2000,2000)) ENGINE = InnoDB, + SUBPARTITION p22sp11 VALUES IN (DEFAULT) ENGINE = InnoDB)) tablegroup = `my_ntp_tg_1` /*+TDDL:cmd_extra(SHOW_HASH_PARTITIONS_BY_RANGE=TRUE)*/show full create table lc_lc_ntp2; Table,Create Table @@ -4297,9 +4297,9 @@ SUBPARTITION BY LIST COLUMNS(`a`,`b`) SUBPARTITION p1sp1 VALUES IN ((1000,2000)) ENGINE = InnoDB, SUBPARTITION p1sp22 VALUES IN (DEFAULT) ENGINE = InnoDB), PARTITION p22 VALUES IN (DEFAULT) - (SUBPARTITION sp9 VALUES IN ((1000,2000)) ENGINE = InnoDB, - SUBPARTITION sp10 VALUES IN ((2000,2000)) ENGINE = InnoDB, - SUBPARTITION sp11 VALUES IN (DEFAULT) ENGINE = InnoDB)) + (SUBPARTITION p22sp9 VALUES IN ((1000,2000)) ENGINE = InnoDB, + SUBPARTITION p22sp10 VALUES IN ((2000,2000)) ENGINE = InnoDB, + SUBPARTITION p22sp11 VALUES IN (DEFAULT) ENGINE = InnoDB)) tablegroup = `my_ntp_tg_1` drop table lc_lc_ntp1; drop table lc_lc_ntp2; \ No newline at end of file diff --git a/polardbx-test/src/test/resources/partition/env80/CreateDatabaseTest/test_createdb_64len.result b/polardbx-test/src/test/resources/partition/env80/CreateDatabaseTest/test_createdb_64len.result new file mode 100644 index 000000000..a112dd850 --- /dev/null +++ b/polardbx-test/src/test/resources/partition/env80/CreateDatabaseTest/test_createdb_64len.result @@ -0,0 +1,40 @@ +## DISABLE_FAST_SQL_PARSER +drop database if exists Drds012345678901234567890123456789012345678901234567890123456789; +drop database if exists Auto012345678901234567890123456789012345678901234567890123456789; +create database Drds012345678901234567890123456789012345678901234567890123456789 mode='drds'; +create database Auto012345678901234567890123456789012345678901234567890123456789 mode='auto'; +CREATE TABLE `Drds012345678901234567890123456789012345678901234567890123456789`.`t1` ( +`id` int NOT NULL AUTO_INCREMENT, +`k` int(11) NOT NULL DEFAULT '0', +`c` char(120) NOT NULL DEFAULT '', +`pad` char(60) NOT NULL DEFAULT '', +PRIMARY KEY (`id`), +INDEX `k_1` (`k`) +) broadcast; +show create table `Drds012345678901234567890123456789012345678901234567890123456789`.`t1`; +Table,Create Table +t1,CREATE TABLE `t1` ( + `id` int(11) NOT NULL AUTO_INCREMENT BY GROUP, + `k` int(11) NOT NULL DEFAULT '0', + `c` char(120) NOT NULL DEFAULT '', + `pad` char(60) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + KEY `k_1` (`k`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 broadcast +insert into `Drds012345678901234567890123456789012345678901234567890123456789`.t1 (k) values(2); +CREATE TABLE `Auto012345678901234567890123456789012345678901234567890123456789`.`t1` ( +`id` int NOT NULL AUTO_INCREMENT, +`k` int(11) NOT NULL DEFAULT '0', +`c` char(120) NOT NULL DEFAULT '', +`pad` char(60) NOT NULL DEFAULT '', +PRIMARY KEY (`id`), +INDEX `k_1` (`k`) +) broadcast; +insert into `Auto012345678901234567890123456789012345678901234567890123456789`.`t1` (k) values(2); +select k from `Auto012345678901234567890123456789012345678901234567890123456789`.t1; +k +2 +select table_schema,table_name,part_name,phy_group,phy_db from information_schema.partitions_meta where table_schema='Auto012345678901234567890123456789012345678901234567890123456789' and table_name='t1' order by part_name; +table_schema,table_name,part_name,phy_group,phy_db +auto012345678901234567890123456789012345678901234567890123456789,t1,p1,AUTO01234567890123456789012345678901_13428F39_P00000_GROUP,auto01234567890123456789012345678901_13428f39_p00000 +auto012345678901234567890123456789012345678901234567890123456789,t1,p2,AUTO01234567890123456789012345678901_13428F39_P00001_GROUP,auto01234567890123456789012345678901_13428f39_p00001 diff --git a/polardbx-test/src/test/resources/partition/env80/CreateDatabaseTest/test_createdb_64len.test.yml b/polardbx-test/src/test/resources/partition/env80/CreateDatabaseTest/test_createdb_64len.test.yml new file mode 100644 index 000000000..f71e65cbb --- /dev/null +++ b/polardbx-test/src/test/resources/partition/env80/CreateDatabaseTest/test_createdb_64len.test.yml @@ -0,0 +1,30 @@ +## DISABLE_FAST_SQL_PARSER + +drop database if exists Drds012345678901234567890123456789012345678901234567890123456789; +drop database if exists Auto012345678901234567890123456789012345678901234567890123456789; +create database Drds012345678901234567890123456789012345678901234567890123456789 mode='drds'; +create database Auto012345678901234567890123456789012345678901234567890123456789 mode='auto'; + +CREATE TABLE `Drds012345678901234567890123456789012345678901234567890123456789`.`t1` ( +`id` int NOT NULL AUTO_INCREMENT, +`k` int(11) NOT NULL DEFAULT '0', +`c` char(120) NOT NULL DEFAULT '', +`pad` char(60) NOT NULL DEFAULT '', +PRIMARY KEY (`id`), +INDEX `k_1` (`k`) +) broadcast; + +show create table `Drds012345678901234567890123456789012345678901234567890123456789`.`t1`; +insert into `Drds012345678901234567890123456789012345678901234567890123456789`.t1 (k) values(2); + +CREATE TABLE `Auto012345678901234567890123456789012345678901234567890123456789`.`t1` ( +`id` int NOT NULL AUTO_INCREMENT, +`k` int(11) NOT NULL DEFAULT '0', +`c` char(120) NOT NULL DEFAULT '', +`pad` char(60) NOT NULL DEFAULT '', +PRIMARY KEY (`id`), +INDEX `k_1` (`k`) +) broadcast; +insert into `Auto012345678901234567890123456789012345678901234567890123456789`.`t1` (k) values(2); +select k from `Auto012345678901234567890123456789012345678901234567890123456789`.t1; +select table_schema,table_name,part_name,phy_group,phy_db from information_schema.partitions_meta where table_schema='Auto012345678901234567890123456789012345678901234567890123456789' and table_name='t1' order by part_name \ No newline at end of file diff --git a/polardbx-test/src/test/resources/partition/env80/CreateDatabaseTest/test_createdb_64len_2.result b/polardbx-test/src/test/resources/partition/env80/CreateDatabaseTest/test_createdb_64len_2.result new file mode 100644 index 000000000..f220c671f --- /dev/null +++ b/polardbx-test/src/test/resources/partition/env80/CreateDatabaseTest/test_createdb_64len_2.result @@ -0,0 +1,30 @@ +## DISABLE_FAST_SQL_PARSER +drop database if exists abcd012345678901234567890123456789012345678901234567890123456789; +create database abcd012345678901234567890123456789012345678901234567890123456789 mode='auto'; +CREATE TABLE `abcd012345678901234567890123456789012345678901234567890123456789`.`mytb012345678901234567890123456789012345678901234567890123456789` ( +`mypk012345678901234567890123456789012345678901234567890123456789` int NOT NULL AUTO_INCREMENT, +`mysk012345678901234567890123456789012345678901234567890123456789` int(11) NOT NULL DEFAULT '0', +`c` char(120) NOT NULL DEFAULT '', +`pad` char(60) NOT NULL DEFAULT '', +PRIMARY KEY (`mypk012345678901234567890123456789012345678901234567890123456789`,`mysk012345678901234567890123456789012345678901234567890123456789`), +INDEX `mydx012345678901234567890123456789012345678901234567890123456789` (`mysk012345678901234567890123456789012345678901234567890123456789`) +) partition by range(mysk012345678901234567890123456789012345678901234567890123456789) +( +partition pabcde0123456789 values less than(maxvalue) +); +show create table `abcd012345678901234567890123456789012345678901234567890123456789`.`mytb012345678901234567890123456789012345678901234567890123456789`; +Table,Create Table +mytb012345678901234567890123456789012345678901234567890123456789,CREATE TABLE `mytb012345678901234567890123456789012345678901234567890123456789` ( + `mypk012345678901234567890123456789012345678901234567890123456789` int(11) NOT NULL AUTO_INCREMENT, + `mysk012345678901234567890123456789012345678901234567890123456789` int(11) NOT NULL DEFAULT '0', + `c` char(120) NOT NULL DEFAULT '', + `pad` char(60) NOT NULL DEFAULT '', + PRIMARY KEY (`mypk012345678901234567890123456789012345678901234567890123456789`, `mysk012345678901234567890123456789012345678901234567890123456789`), + KEY `mydx012345678901234567890123456789012345678901234567890123456789` (`mysk012345678901234567890123456789012345678901234567890123456789`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 +PARTITION BY RANGE(`mysk012345678901234567890123456789012345678901234567890123456789`) +(PARTITION pabcde0123456789 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB) +insert into `abcd012345678901234567890123456789012345678901234567890123456789`.`mytb012345678901234567890123456789012345678901234567890123456789` (mysk012345678901234567890123456789012345678901234567890123456789) values(2); +select mysk012345678901234567890123456789012345678901234567890123456789 from `abcd012345678901234567890123456789012345678901234567890123456789`.mytb012345678901234567890123456789012345678901234567890123456789; +mysk012345678901234567890123456789012345678901234567890123456789 +2 diff --git a/polardbx-test/src/test/resources/partition/env80/CreateDatabaseTest/test_createdb_64len_2.test.yml b/polardbx-test/src/test/resources/partition/env80/CreateDatabaseTest/test_createdb_64len_2.test.yml new file mode 100644 index 000000000..952f381a5 --- /dev/null +++ b/polardbx-test/src/test/resources/partition/env80/CreateDatabaseTest/test_createdb_64len_2.test.yml @@ -0,0 +1,19 @@ +## DISABLE_FAST_SQL_PARSER + +drop database if exists abcd012345678901234567890123456789012345678901234567890123456789; +create database abcd012345678901234567890123456789012345678901234567890123456789 mode='auto'; + +CREATE TABLE `abcd012345678901234567890123456789012345678901234567890123456789`.`mytb012345678901234567890123456789012345678901234567890123456789` ( +`mypk012345678901234567890123456789012345678901234567890123456789` int NOT NULL AUTO_INCREMENT, +`mysk012345678901234567890123456789012345678901234567890123456789` int(11) NOT NULL DEFAULT '0', +`c` char(120) NOT NULL DEFAULT '', +`pad` char(60) NOT NULL DEFAULT '', +PRIMARY KEY (`mypk012345678901234567890123456789012345678901234567890123456789`,`mysk012345678901234567890123456789012345678901234567890123456789`), +INDEX `mydx012345678901234567890123456789012345678901234567890123456789` (`mysk012345678901234567890123456789012345678901234567890123456789`) +) partition by range(mysk012345678901234567890123456789012345678901234567890123456789) +( +partition pabcde0123456789 values less than(maxvalue) +); +show create table `abcd012345678901234567890123456789012345678901234567890123456789`.`mytb012345678901234567890123456789012345678901234567890123456789`; +insert into `abcd012345678901234567890123456789012345678901234567890123456789`.`mytb012345678901234567890123456789012345678901234567890123456789` (mysk012345678901234567890123456789012345678901234567890123456789) values(2); +select mysk012345678901234567890123456789012345678901234567890123456789 from `abcd012345678901234567890123456789012345678901234567890123456789`.mytb012345678901234567890123456789012345678901234567890123456789; diff --git a/polardbx-test/src/test/resources/partition/env80/CreateDatabaseTest/testcase.config.yml b/polardbx-test/src/test/resources/partition/env80/CreateDatabaseTest/testcase.config.yml new file mode 100644 index 000000000..6c88c4f75 --- /dev/null +++ b/polardbx-test/src/test/resources/partition/env80/CreateDatabaseTest/testcase.config.yml @@ -0,0 +1,2 @@ +test_createdb_64len +test_createdb_64len_2 \ No newline at end of file diff --git a/polardbx-test/src/test/resources/partition/env80/ListDefaultAdditionalTest/test_add_subpartition_tb.result b/polardbx-test/src/test/resources/partition/env80/ListDefaultAdditionalTest/test_add_subpartition_tb.result index 0db0f6aa1..a1f51a7da 100644 --- a/polardbx-test/src/test/resources/partition/env80/ListDefaultAdditionalTest/test_add_subpartition_tb.result +++ b/polardbx-test/src/test/resources/partition/env80/ListDefaultAdditionalTest/test_add_subpartition_tb.result @@ -57,11 +57,11 @@ b show create table tb1; Table,Create Table tb1,CREATE TABLE `tb1` ( - `a` int(11) DEFAULT NULL, - `b` varchar(20) DEFAULT NULL, + `a` int DEFAULT NULL, + `b` varchar(20) COLLATE utf8mb4_general_ci DEFAULT NULL, KEY `auto_shard_key_a` USING BTREE (`a`), KEY `auto_shard_key_b` USING BTREE (`b`) -) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 DEFAULT COLLATE = utf8mb4_general_ci PARTITION BY LIST(`a`) SUBPARTITION BY LIST COLUMNS(`b`) (SUBPARTITION sp1 VALUES IN ('1','2'), @@ -129,11 +129,11 @@ b show create table tb2; Table,Create Table tb2,CREATE TABLE `tb2` ( - `a` int(11) DEFAULT NULL, - `b` varchar(20) DEFAULT NULL, + `a` int DEFAULT NULL, + `b` varchar(20) COLLATE utf8mb4_general_ci DEFAULT NULL, KEY `auto_shard_key_a` USING BTREE (`a`), KEY `auto_shard_key_b` USING BTREE (`b`) -) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 DEFAULT COLLATE = utf8mb4_general_ci PARTITION BY LIST(`a`) SUBPARTITION BY LIST COLUMNS(`b`) (SUBPARTITION sp1 VALUES IN ('1','2'), @@ -202,12 +202,12 @@ b show create table tb3; Table,Create Table tb3,CREATE TABLE `tb3` ( - `a` int(11) DEFAULT NULL, - `b` varchar(20) DEFAULT NULL, - `c` int(11) DEFAULT NULL, + `a` int DEFAULT NULL, + `b` varchar(20) COLLATE utf8mb4_general_ci DEFAULT NULL, + `c` int DEFAULT NULL, KEY `auto_shard_key_c` USING BTREE (`c`), KEY `auto_shard_key_a_b` USING BTREE (`a`, `b`) -) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 DEFAULT COLLATE = utf8mb4_general_ci PARTITION BY LIST(`c`) SUBPARTITION BY LIST COLUMNS(`a`,`b`) (SUBPARTITION sp1 VALUES IN ((1,'1'),(2,'2')), @@ -276,12 +276,12 @@ b show create table tb4; Table,Create Table tb4,CREATE TABLE `tb4` ( - `a` int(11) DEFAULT NULL, - `b` varchar(20) DEFAULT NULL, - `c` int(11) DEFAULT NULL, + `a` int DEFAULT NULL, + `b` varchar(20) COLLATE utf8mb4_general_ci DEFAULT NULL, + `c` int DEFAULT NULL, KEY `auto_shard_key_c` USING BTREE (`c`), KEY `auto_shard_key_a_b` USING BTREE (`a`, `b`) -) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 DEFAULT COLLATE = utf8mb4_general_ci PARTITION BY LIST(`c`) SUBPARTITION BY LIST COLUMNS(`a`,`b`) (SUBPARTITION sp1 VALUES IN ((1,'1'),(2,'2')), @@ -349,11 +349,11 @@ b show create table tb5; Table,Create Table tb5,CREATE TABLE `tb5` ( - `a` int(11) DEFAULT NULL, - `b` varchar(20) DEFAULT NULL, + `a` int DEFAULT NULL, + `b` varchar(20) COLLATE utf8mb4_general_ci DEFAULT NULL, KEY `auto_shard_key_a` USING BTREE (`a`), KEY `auto_shard_key_b` USING BTREE (`b`) -) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 DEFAULT COLLATE = utf8mb4_general_ci PARTITION BY LIST(`a`) SUBPARTITION BY LIST COLUMNS(`b`) (SUBPARTITION sp1 VALUES IN ('1','2'), @@ -421,11 +421,11 @@ b show create table tb6; Table,Create Table tb6,CREATE TABLE `tb6` ( - `a` int(11) DEFAULT NULL, - `b` varchar(20) DEFAULT NULL, + `a` int DEFAULT NULL, + `b` varchar(20) COLLATE utf8mb4_general_ci DEFAULT NULL, KEY `auto_shard_key_a` USING BTREE (`a`), KEY `auto_shard_key_b` USING BTREE (`b`) -) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 DEFAULT COLLATE = utf8mb4_general_ci PARTITION BY LIST(`a`) SUBPARTITION BY LIST COLUMNS(`b`) (SUBPARTITION sp1 VALUES IN ('1','2'), @@ -488,11 +488,11 @@ b show create table tb7; Table,Create Table tb7,CREATE TABLE `tb7` ( - `a` int(11) DEFAULT NULL, - `b` varchar(20) DEFAULT NULL, + `a` int DEFAULT NULL, + `b` varchar(20) COLLATE utf8mb4_general_ci DEFAULT NULL, KEY `auto_shard_key_a` USING BTREE (`a`), KEY `auto_shard_key_b` USING BTREE (`b`) -) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 DEFAULT COLLATE = utf8mb4_general_ci PARTITION BY LIST(`a`) SUBPARTITION BY LIST COLUMNS(`b`) (PARTITION p1 VALUES IN (1) @@ -562,11 +562,11 @@ b show create table tb8; Table,Create Table tb8,CREATE TABLE `tb8` ( - `a` int(11) DEFAULT NULL, - `b` varchar(20) DEFAULT NULL, + `a` int DEFAULT NULL, + `b` varchar(20) COLLATE utf8mb4_general_ci DEFAULT NULL, KEY `auto_shard_key_a` USING BTREE (`a`), KEY `auto_shard_key_b` USING BTREE (`b`) -) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 DEFAULT COLLATE = utf8mb4_general_ci PARTITION BY LIST(`a`) SUBPARTITION BY LIST COLUMNS(`b`) (PARTITION p1 VALUES IN (1) @@ -631,12 +631,12 @@ b show create table tb9; Table,Create Table tb9,CREATE TABLE `tb9` ( - `a` int(11) DEFAULT NULL, - `b` varchar(20) DEFAULT NULL, - `c` int(11) DEFAULT NULL, + `a` int DEFAULT NULL, + `b` varchar(20) COLLATE utf8mb4_general_ci DEFAULT NULL, + `c` int DEFAULT NULL, KEY `auto_shard_key_c` USING BTREE (`c`), KEY `auto_shard_key_a_b` USING BTREE (`a`, `b`) -) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 DEFAULT COLLATE = utf8mb4_general_ci PARTITION BY LIST(`c`) SUBPARTITION BY LIST COLUMNS(`a`,`b`) (PARTITION p1 VALUES IN (1) @@ -697,12 +697,12 @@ b show create table tb10; Table,Create Table tb10,CREATE TABLE `tb10` ( - `a` int(11) DEFAULT NULL, - `b` varchar(20) DEFAULT NULL, - `c` int(11) DEFAULT NULL, + `a` int DEFAULT NULL, + `b` varchar(20) COLLATE utf8mb4_general_ci DEFAULT NULL, + `c` int DEFAULT NULL, KEY `auto_shard_key_c` USING BTREE (`c`), KEY `auto_shard_key_a_b` USING BTREE (`a`, `b`) -) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 DEFAULT COLLATE = utf8mb4_general_ci PARTITION BY LIST(`c`) SUBPARTITION BY LIST COLUMNS(`a`,`b`) (PARTITION p1 VALUES IN (1) @@ -767,11 +767,11 @@ b show create table tb11; Table,Create Table tb11,CREATE TABLE `tb11` ( - `a` int(11) DEFAULT NULL, - `b` varchar(20) DEFAULT NULL, + `a` int DEFAULT NULL, + `b` varchar(20) COLLATE utf8mb4_general_ci DEFAULT NULL, KEY `auto_shard_key_a` USING BTREE (`a`), KEY `auto_shard_key_b` USING BTREE (`b`) -) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 DEFAULT COLLATE = utf8mb4_general_ci PARTITION BY LIST(`a`) SUBPARTITION BY LIST COLUMNS(`b`) (PARTITION p1 VALUES IN (1) @@ -840,11 +840,11 @@ b show create table tb12; Table,Create Table tb12,CREATE TABLE `tb12` ( - `a` int(11) DEFAULT NULL, - `b` varchar(20) DEFAULT NULL, + `a` int DEFAULT NULL, + `b` varchar(20) COLLATE utf8mb4_general_ci DEFAULT NULL, KEY `auto_shard_key_a` USING BTREE (`a`), KEY `auto_shard_key_b` USING BTREE (`b`) -) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 DEFAULT COLLATE = utf8mb4_general_ci PARTITION BY LIST(`a`) SUBPARTITION BY LIST COLUMNS(`b`) (PARTITION p1 VALUES IN (1) @@ -910,11 +910,11 @@ b show create table tb13; Table,Create Table tb13,CREATE TABLE `tb13` ( - `a` int(11) DEFAULT NULL, - `b` varchar(20) DEFAULT NULL, + `a` int DEFAULT NULL, + `b` varchar(20) COLLATE utf8mb4_general_ci DEFAULT NULL, KEY `auto_shard_key_a` USING BTREE (`a`), KEY `auto_shard_key_b` USING BTREE (`b`) -) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 DEFAULT COLLATE = utf8mb4_general_ci PARTITION BY LIST(`a`) SUBPARTITION BY LIST COLUMNS(`b`) (SUBPARTITION sp1 VALUES IN ('1','2'), @@ -974,11 +974,11 @@ b show create table tb14; Table,Create Table tb14,CREATE TABLE `tb14` ( - `a` int(11) DEFAULT NULL, - `b` varchar(20) DEFAULT NULL, + `a` int DEFAULT NULL, + `b` varchar(20) COLLATE utf8mb4_general_ci DEFAULT NULL, KEY `auto_shard_key_a` USING BTREE (`a`), KEY `auto_shard_key_b` USING BTREE (`b`) -) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 DEFAULT COLLATE = utf8mb4_general_ci PARTITION BY LIST(`a`) SUBPARTITION BY LIST COLUMNS(`b`) (SUBPARTITION sp1 VALUES IN ('1','2'), @@ -1032,12 +1032,12 @@ b show create table tb15; Table,Create Table tb15,CREATE TABLE `tb15` ( - `a` int(11) DEFAULT NULL, - `b` varchar(20) DEFAULT NULL, - `c` int(11) DEFAULT NULL, + `a` int DEFAULT NULL, + `b` varchar(20) COLLATE utf8mb4_general_ci DEFAULT NULL, + `c` int DEFAULT NULL, KEY `auto_shard_key_c` USING BTREE (`c`), KEY `auto_shard_key_a_b` USING BTREE (`a`, `b`) -) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 DEFAULT COLLATE = utf8mb4_general_ci PARTITION BY LIST(`c`) SUBPARTITION BY LIST COLUMNS(`a`,`b`) (PARTITION p1 VALUES IN (1,2) @@ -1049,13 +1049,13 @@ SUBPARTITION BY LIST COLUMNS(`a`,`b`) SUBPARTITION p2sp2 VALUES IN ((3,'3'),(4,'4')) ENGINE = InnoDB, SUBPARTITION p2spd VALUES IN (DEFAULT) ENGINE = InnoDB), PARTITION p3 VALUES IN (5,6) - (SUBPARTITION sp3 VALUES IN ((3,'3'),(4,'4')) ENGINE = InnoDB, - SUBPARTITION sp4 VALUES IN ((100,'100'),(200,'200')) ENGINE = InnoDB, - SUBPARTITION sp5 VALUES IN (DEFAULT) ENGINE = InnoDB), + (SUBPARTITION p3sp3 VALUES IN ((3,'3'),(4,'4')) ENGINE = InnoDB, + SUBPARTITION p3sp4 VALUES IN ((100,'100'),(200,'200')) ENGINE = InnoDB, + SUBPARTITION p3sp5 VALUES IN (DEFAULT) ENGINE = InnoDB), PARTITION pd VALUES IN (DEFAULT) - (SUBPARTITION sp6 VALUES IN ((3,'3'),(4,'4')) ENGINE = InnoDB, - SUBPARTITION sp7 VALUES IN ((100,'100'),(200,'200')) ENGINE = InnoDB, - SUBPARTITION sp8 VALUES IN (DEFAULT) ENGINE = InnoDB)) + (SUBPARTITION pdsp2 VALUES IN ((3,'3'),(4,'4')) ENGINE = InnoDB, + SUBPARTITION pdsp1 VALUES IN ((100,'100'),(200,'200')) ENGINE = InnoDB, + SUBPARTITION pdspd VALUES IN (DEFAULT) ENGINE = InnoDB)) # logical partition: list, algorithm=instant create table tb16( a int, @@ -1100,12 +1100,12 @@ b show create table tb16; Table,Create Table tb16,CREATE TABLE `tb16` ( - `a` int(11) DEFAULT NULL, - `b` varchar(20) DEFAULT NULL, - `c` int(11) DEFAULT NULL, + `a` int DEFAULT NULL, + `b` varchar(20) COLLATE utf8mb4_general_ci DEFAULT NULL, + `c` int DEFAULT NULL, KEY `auto_shard_key_c` USING BTREE (`c`), KEY `auto_shard_key_a_b` USING BTREE (`a`, `b`) -) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 DEFAULT COLLATE = utf8mb4_general_ci PARTITION BY LIST(`c`) SUBPARTITION BY LIST COLUMNS(`a`,`b`) (PARTITION p1 VALUES IN (1,2) diff --git a/polardbx-test/src/test/resources/partition/env80/ListDefaultAdditionalTest/test_extract_subpartition_tg.result b/polardbx-test/src/test/resources/partition/env80/ListDefaultAdditionalTest/test_extract_subpartition_tg.result index fd1b62a8c..909adeee2 100644 --- a/polardbx-test/src/test/resources/partition/env80/ListDefaultAdditionalTest/test_extract_subpartition_tg.result +++ b/polardbx-test/src/test/resources/partition/env80/ListDefaultAdditionalTest/test_extract_subpartition_tg.result @@ -69,11 +69,11 @@ b show create table tb1; Table,Create Table tb1,CREATE TABLE `tb1` ( - `a` int(11) DEFAULT NULL, - `b` varchar(20) DEFAULT NULL, + `a` int DEFAULT NULL, + `b` varchar(20) COLLATE utf8mb4_general_ci DEFAULT NULL, KEY `auto_shard_key_a` USING BTREE (`a`), KEY `auto_shard_key_b` USING BTREE (`b`) -) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 DEFAULT COLLATE = utf8mb4_general_ci PARTITION BY LIST(`a`) SUBPARTITION BY LIST COLUMNS(`b`) (SUBPARTITION sp1 VALUES IN ('1','2'), @@ -144,12 +144,12 @@ b show create table tb2; Table,Create Table tb2,CREATE TABLE `tb2` ( - `a` int(11) DEFAULT NULL, - `b` varchar(20) DEFAULT NULL, - `c` int(11) DEFAULT NULL, + `a` int DEFAULT NULL, + `b` varchar(20) COLLATE utf8mb4_general_ci DEFAULT NULL, + `c` int DEFAULT NULL, KEY `auto_shard_key_c` USING BTREE (`c`), KEY `auto_shard_key_a_b` USING BTREE (`a`, `b`) -) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 DEFAULT COLLATE = utf8mb4_general_ci PARTITION BY LIST(`c`) SUBPARTITION BY LIST COLUMNS(`a`,`b`) (SUBPARTITION sp1 VALUES IN ((1,'1'),(2,'2')), @@ -230,11 +230,11 @@ b show create table tb3; Table,Create Table tb3,CREATE TABLE `tb3` ( - `a` int(11) DEFAULT NULL, - `b` varchar(20) DEFAULT NULL, + `a` int DEFAULT NULL, + `b` varchar(20) COLLATE utf8mb4_general_ci DEFAULT NULL, KEY `auto_shard_key_a` USING BTREE (`a`), KEY `auto_shard_key_b` USING BTREE (`b`) -) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 DEFAULT COLLATE = utf8mb4_general_ci PARTITION BY LIST(`a`) SUBPARTITION BY LIST COLUMNS(`b`) (SUBPARTITION sp1 VALUES IN ('1','2'), @@ -299,11 +299,11 @@ b show create table tb4; Table,Create Table tb4,CREATE TABLE `tb4` ( - `a` int(11) DEFAULT NULL, - `b` varchar(20) DEFAULT NULL, + `a` int DEFAULT NULL, + `b` varchar(20) COLLATE utf8mb4_general_ci DEFAULT NULL, KEY `auto_shard_key_a` USING BTREE (`a`), KEY `auto_shard_key_b` USING BTREE (`b`) -) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 DEFAULT COLLATE = utf8mb4_general_ci PARTITION BY LIST(`a`) SUBPARTITION BY LIST COLUMNS(`b`) (PARTITION p1 VALUES IN (1) @@ -370,12 +370,12 @@ b show create table tb5; Table,Create Table tb5,CREATE TABLE `tb5` ( - `a` int(11) DEFAULT NULL, - `b` varchar(20) DEFAULT NULL, - `c` int(11) DEFAULT NULL, + `a` int DEFAULT NULL, + `b` varchar(20) COLLATE utf8mb4_general_ci DEFAULT NULL, + `c` int DEFAULT NULL, KEY `auto_shard_key_c` USING BTREE (`c`), KEY `auto_shard_key_a_b` USING BTREE (`a`, `b`) -) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 DEFAULT COLLATE = utf8mb4_general_ci PARTITION BY LIST(`c`) SUBPARTITION BY LIST COLUMNS(`a`,`b`) (PARTITION p1 VALUES IN (1) @@ -442,11 +442,11 @@ b show create table tb6; Table,Create Table tb6,CREATE TABLE `tb6` ( - `a` int(11) DEFAULT NULL, - `b` varchar(20) DEFAULT NULL, + `a` int DEFAULT NULL, + `b` varchar(20) COLLATE utf8mb4_general_ci DEFAULT NULL, KEY `auto_shard_key_a` USING BTREE (`a`), KEY `auto_shard_key_b` USING BTREE (`b`) -) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 DEFAULT COLLATE = utf8mb4_general_ci PARTITION BY LIST COLUMNS(`a`) SUBPARTITION BY LIST COLUMNS(`b`) (PARTITION p1 VALUES IN (1) @@ -545,11 +545,11 @@ b show create table tb7; Table,Create Table tb7,CREATE TABLE `tb7` ( - `a` int(11) DEFAULT NULL, - `b` varchar(20) DEFAULT NULL, + `a` int DEFAULT NULL, + `b` varchar(20) COLLATE utf8mb4_general_ci DEFAULT NULL, KEY `auto_shard_key_a` USING BTREE (`a`), KEY `auto_shard_key_b` USING BTREE (`b`) -) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 DEFAULT COLLATE = utf8mb4_general_ci PARTITION BY LIST(`a`) SUBPARTITION BY LIST COLUMNS(`b`) (SUBPARTITION sp1 VALUES IN ('1','2'), @@ -602,12 +602,12 @@ b show create table tb8; Table,Create Table tb8,CREATE TABLE `tb8` ( - `a` int(11) DEFAULT NULL, - `b` varchar(20) DEFAULT NULL, - `c` int(11) DEFAULT NULL, + `a` int DEFAULT NULL, + `b` varchar(20) COLLATE utf8mb4_general_ci DEFAULT NULL, + `c` int DEFAULT NULL, KEY `auto_shard_key_c` USING BTREE (`c`), KEY `auto_shard_key_a_b` USING BTREE (`a`, `b`) -) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 DEFAULT COLLATE = utf8mb4_general_ci PARTITION BY LIST(`c`) SUBPARTITION BY LIST COLUMNS(`a`,`b`) (PARTITION p1 VALUES IN (1) @@ -619,13 +619,13 @@ SUBPARTITION BY LIST COLUMNS(`a`,`b`) SUBPARTITION p2sp2 VALUES IN ((3,'3'),(4,'4')) ENGINE = InnoDB, SUBPARTITION p2spd VALUES IN (DEFAULT) ENGINE = InnoDB), PARTITION p3 VALUES IN (3) - (SUBPARTITION sp3 VALUES IN ((1,'1'),(2,'2')) ENGINE = InnoDB, - SUBPARTITION sp4 VALUES IN ((3,'3'),(4,'4')) ENGINE = InnoDB, - SUBPARTITION sp5 VALUES IN (DEFAULT) ENGINE = InnoDB), + (SUBPARTITION p3sp3 VALUES IN ((1,'1'),(2,'2')) ENGINE = InnoDB, + SUBPARTITION p3sp4 VALUES IN ((3,'3'),(4,'4')) ENGINE = InnoDB, + SUBPARTITION p3sp5 VALUES IN (DEFAULT) ENGINE = InnoDB), PARTITION pd VALUES IN (DEFAULT) - (SUBPARTITION sp6 VALUES IN ((1,'1'),(2,'2')) ENGINE = InnoDB, - SUBPARTITION sp7 VALUES IN ((3,'3'),(4,'4')) ENGINE = InnoDB, - SUBPARTITION sp8 VALUES IN (DEFAULT) ENGINE = InnoDB)) + (SUBPARTITION pdsp6 VALUES IN ((1,'1'),(2,'2')) ENGINE = InnoDB, + SUBPARTITION pdsp7 VALUES IN ((3,'3'),(4,'4')) ENGINE = InnoDB, + SUBPARTITION pdsp8 VALUES IN (DEFAULT) ENGINE = InnoDB)) tablegroup = `tg8` # test hash partition # template @@ -653,12 +653,12 @@ a /*+TDDL:CMD_EXTRA(SHOW_HASH_PARTITIONS_BY_RANGE=TRUE)*/show create table tb9; Table,Create Table tb9,CREATE TABLE `tb9` ( - `a` int(11) DEFAULT NULL, - `b` int(11) DEFAULT NULL, - `c` int(11) DEFAULT NULL, + `a` int DEFAULT NULL, + `b` int DEFAULT NULL, + `c` int DEFAULT NULL, KEY `auto_shard_key_a` USING BTREE (`a`), KEY `auto_shard_key_b_c` USING BTREE (`b`, `c`) -) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 DEFAULT COLLATE = utf8mb4_general_ci PARTITION BY KEY(`a`) PARTITIONS 3 SUBPARTITION BY KEY(`b`,`c`) @@ -702,12 +702,12 @@ a /*+TDDL:CMD_EXTRA(SHOW_HASH_PARTITIONS_BY_RANGE=TRUE)*/show create table tb10; Table,Create Table tb10,CREATE TABLE `tb10` ( - `a` int(11) DEFAULT NULL, - `b` int(11) DEFAULT NULL, - `c` int(11) DEFAULT NULL, + `a` int DEFAULT NULL, + `b` int DEFAULT NULL, + `c` int DEFAULT NULL, KEY `auto_shard_key_a` USING BTREE (`a`), KEY `auto_shard_key_b_c` USING BTREE (`b`, `c`) -) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 DEFAULT COLLATE = utf8mb4_general_ci PARTITION BY KEY(`a`) SUBPARTITION BY KEY(`b`,`c`) (PARTITION p1 VALUES LESS THAN (-3074457345618258601) @@ -749,12 +749,12 @@ a /*+TDDL:CMD_EXTRA(SHOW_HASH_PARTITIONS_BY_RANGE=TRUE)*/show create table tb11; Table,Create Table tb11,CREATE TABLE `tb11` ( - `a` int(11) DEFAULT NULL, - `b` int(11) DEFAULT NULL, - `c` int(11) DEFAULT NULL, + `a` int DEFAULT NULL, + `b` int DEFAULT NULL, + `c` int DEFAULT NULL, KEY `auto_shard_key_a` USING BTREE (`a`), KEY `auto_shard_key_b_c` USING BTREE (`b`, `c`) -) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 DEFAULT COLLATE = utf8mb4_general_ci PARTITION BY KEY(`a`) PARTITIONS 5 SUBPARTITION BY HASH(`b`,`c`) diff --git a/polardbx-test/src/test/resources/partition/env80/ListDefaultAdditionalTest/testcase.config.yml b/polardbx-test/src/test/resources/partition/env80/ListDefaultAdditionalTest/testcase.config.yml index a45806b71..d6bb18e36 100644 --- a/polardbx-test/src/test/resources/partition/env80/ListDefaultAdditionalTest/testcase.config.yml +++ b/polardbx-test/src/test/resources/partition/env80/ListDefaultAdditionalTest/testcase.config.yml @@ -6,4 +6,4 @@ test_extract_subpartition_tg test_merge_partition_tb_and_tg test_modify_partition test_modify_subpartition_tb -test_modify_subpartition_tg \ No newline at end of file +test_modify_subpartition_tg diff --git a/polardbx-test/src/test/resources/partition/env80/PartitionTablePruning3Test/test_semijoin_pruning.result b/polardbx-test/src/test/resources/partition/env80/PartitionTablePruning3Test/test_semijoin_pruning.result index 601dc1919..9e9bf0c29 100644 --- a/polardbx-test/src/test/resources/partition/env80/PartitionTablePruning3Test/test_semijoin_pruning.result +++ b/polardbx-test/src/test/resources/partition/env80/PartitionTablePruning3Test/test_semijoin_pruning.result @@ -14,20 +14,20 @@ partition by key(cid) partitions 3; explain /*TDDL:cmd_extra(IN_SUB_QUERY_THRESHOLD=8)*/ select id from student where id in (1,6); Logical ExecutionPlan Gather(concurrent=true) - LogicalView(tables="student[p1,p2]", shardCount=2, sql="SELECT `id` FROM `student` AS `student` WHERE (`id` IN(?))", isDynamicParam="true") + LogicalView(tables="student[p1,p2]", shardCount=2, sql="SELECT `id` FROM `student` AS `student` WHERE (`id` IN(?))", pruningInfo="all size:2*2(part), pruning size:2") explain /*TDDL:cmd_extra(IN_SUB_QUERY_THRESHOLD=8)*/ select cid from course where cid in (5,7); Logical ExecutionPlan Gather(concurrent=true) - LogicalView(tables="course[p1,p3]", shardCount=2, sql="SELECT `cid` FROM `course` AS `course` WHERE (`cid` IN(?))", isDynamicParam="true") + LogicalView(tables="course[p1,p3]", shardCount=2, sql="SELECT `cid` FROM `course` AS `course` WHERE (`cid` IN(?))", pruningInfo="all size:2*2(part), pruning size:2") select id from student where id != ALL (select cid from course where cid in (5,7)) and id in (1,6); id explain /*TDDL:cmd_extra(IN_SUB_QUERY_THRESHOLD=8)*/ select id from student where id != ALL (select cid from course where cid in (5,7)) and id in (1,6); Logical ExecutionPlan Gather(concurrent=true) - LogicalView(tables="student[p1,p2,p3],course[p1,p2,p3]", shardCount=3, sql="SELECT `id` FROM `student` AS `student` WHERE ((`id` IN(?)) AND (`id` <> ALL (SELECT `cid` FROM `course` AS `course` WHERE ((`cid` IN(?)) AND (`cid` IN(?))))))", isDynamicParam="true") + LogicalView(tables="student[p1,p2,p3],course[p1,p2,p3]", shardCount=3, sql="SELECT `id` FROM `student` AS `student` WHERE ((`id` IN(?)) AND (`id` <> ALL (SELECT `cid` FROM `course` AS `course` WHERE ((`cid` IN(?)) AND (`cid` IN(?))))))") select id from student where id in (select cid from course where cid in (1,6)) and id in (1,6); id explain /*TDDL:cmd_extra(IN_SUB_QUERY_THRESHOLD=8)*/ select id from student where id in (select cid from course where cid in (1,6)) and id in (1,6); Logical ExecutionPlan Gather(concurrent=true) - LogicalView(tables="student[p1,p2],course[p1,p2]", shardCount=2, sql="SELECT `id` FROM `student` AS `student` WHERE ((`id` IN(?)) AND (`id` IN (SELECT `cid` FROM `course` AS `course` WHERE ((`cid` IN(?)) AND (`cid` IN(?))))))", isDynamicParam="true") + LogicalView(tables="student[p1,p2],course[p1,p2]", shardCount=2, sql="SELECT `id` FROM `student` AS `student` WHERE ((`id` IN(?)) AND (`id` IN (SELECT `cid` FROM `course` AS `course` WHERE ((`cid` IN(?)) AND (`cid` IN(?))))))", pruningInfo="all size:4*2(part), pruning size:4") diff --git a/polardbx-test/src/test/resources/partition/env80/PartitionTablePruningTest/test_part_agg.result b/polardbx-test/src/test/resources/partition/env80/PartitionTablePruningTest/test_part_agg.result index 0689a8396..f7e969830 100644 --- a/polardbx-test/src/test/resources/partition/env80/PartitionTablePruningTest/test_part_agg.result +++ b/polardbx-test/src/test/resources/partition/env80/PartitionTablePruningTest/test_part_agg.result @@ -7,10 +7,10 @@ PARTITION BY HASH (a) PARTITIONS 4; SHOW CREATE TABLE tbl; Table,Create Table tbl,CREATE TABLE `tbl` ( - `a` bigint(20) NOT NULL, - `b` bigint(20) NOT NULL, + `a` bigint NOT NULL, + `b` bigint NOT NULL, KEY `auto_shard_key_a` USING BTREE (`a`) -) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 DEFAULT COLLATE = utf8mb4_general_ci PARTITION BY KEY(`a`) PARTITIONS 4 INSERT INTO tbl @@ -58,10 +58,10 @@ PARTITION BY RANGE (a) ( SHOW CREATE TABLE tbl; Table,Create Table tbl,CREATE TABLE `tbl` ( - `a` bigint(20) NOT NULL, - `b` bigint(20) NOT NULL, + `a` bigint NOT NULL, + `b` bigint NOT NULL, KEY `auto_shard_key_a` USING BTREE (`a`) -) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 DEFAULT COLLATE = utf8mb4_general_ci PARTITION BY RANGE(`a`) (PARTITION p0 VALUES LESS THAN (100) ENGINE = InnoDB, PARTITION p1 VALUES LESS THAN (200) ENGINE = InnoDB, diff --git a/polardbx-test/src/test/resources/partition/env80/PartitionTablePruningTest/test_part_pruning_in.result b/polardbx-test/src/test/resources/partition/env80/PartitionTablePruningTest/test_part_pruning_in.result index e021817c9..438cb6068 100644 --- a/polardbx-test/src/test/resources/partition/env80/PartitionTablePruningTest/test_part_pruning_in.result +++ b/polardbx-test/src/test/resources/partition/env80/PartitionTablePruningTest/test_part_pruning_in.result @@ -28,4 +28,4 @@ Logical ExecutionPlan Limit(offset=?2, fetch=?3) HashAgg(group="item_id") Gather(concurrent=true) - LogicalView(tables="application_detail[p30,p163,p210,p266,p362]", shardCount=5, sql="SELECT `item_id` FROM `application_detail` AS `application_detail` WHERE ((`seller_id` = ?) AND (`scene_id` IN(?))) GROUP BY `item_id`", isDynamicParam="true") + LogicalView(tables="application_detail[p30,p163,p210,p266,p362]", shardCount=5, sql="SELECT `item_id` FROM `application_detail` AS `application_detail` WHERE ((`seller_id` = ?) AND (`scene_id` IN(?))) GROUP BY `item_id`", pruningInfo="all size:5*5(part), pruning size:20") diff --git a/polardbx-test/src/test/resources/partition/env80/PartitionTablePruningTest/test_range_merge.result b/polardbx-test/src/test/resources/partition/env80/PartitionTablePruningTest/test_range_merge.result index 6638825d0..8a35a5a62 100644 --- a/polardbx-test/src/test/resources/partition/env80/PartitionTablePruningTest/test_range_merge.result +++ b/polardbx-test/src/test/resources/partition/env80/PartitionTablePruningTest/test_range_merge.result @@ -23,11 +23,11 @@ PARTITION BY RANGE COLUMNS (a, b, c) ( SHOW CREATE TABLE rng_cols; Table,Create Table rng_cols,CREATE TABLE `rng_cols` ( - `a` bigint(20) NOT NULL, - `b` bigint(20) NOT NULL, - `c` bigint(20) NOT NULL, + `a` bigint NOT NULL, + `b` bigint NOT NULL, + `c` bigint NOT NULL, KEY `auto_shard_key_a_b_c` USING BTREE (`a`, `b`, `c`) -) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 DEFAULT COLLATE = utf8mb4_0900_ai_ci PARTITION BY RANGE COLUMNS(`a`,`b`,`c`) (PARTITION p0 VALUES LESS THAN (100,1000,10000) ENGINE = InnoDB, PARTITION p1 VALUES LESS THAN (100,2000,10000) ENGINE = InnoDB, @@ -45,4 +45,4 @@ WHERE (a = 200 AND c IN (9999); Logical ExecutionPlan Gather(concurrent=true) - LogicalView(tables="rng_cols[p3,p5,p6]", shardCount=3, sql="SELECT `a`, `b`, `c` FROM `rng_cols` AS `rng_cols` WHERE ((`c` IN(?)) AND ((`a` = ?) OR (`a` >= ?)) AND ((`b` <= ?) OR (`b` >= ?)))", isDynamicParam="true") + LogicalView(tables="rng_cols[p3,p5,p6]", shardCount=3, sql="SELECT `a`, `b`, `c` FROM `rng_cols` AS `rng_cols` WHERE ((`c` IN(?)) AND ((`a` = ?) OR (`a` >= ?)) AND ((`b` <= ?) OR (`b` >= ?)))") diff --git a/polardbx-test/src/test/resources/statistics/dump/mergeindexV2.yml b/polardbx-test/src/test/resources/statistics/dump/mergeindexV2.yml new file mode 100644 index 000000000..e69de29bb diff --git a/polardbx-transaction/src/main/java/com/alibaba/polardbx/transaction/TransactionManager.java b/polardbx-transaction/src/main/java/com/alibaba/polardbx/transaction/TransactionManager.java index 0d69a5e0c..4e69c6b30 100644 --- a/polardbx-transaction/src/main/java/com/alibaba/polardbx/transaction/TransactionManager.java +++ b/polardbx-transaction/src/main/java/com/alibaba/polardbx/transaction/TransactionManager.java @@ -35,10 +35,7 @@ import com.alibaba.polardbx.executor.common.StorageInfoManager; import com.alibaba.polardbx.executor.spi.ITransactionManager; import com.alibaba.polardbx.gms.config.impl.InstConfUtil; -import com.alibaba.polardbx.gms.metadb.MetaDbDataSource; -import com.alibaba.polardbx.gms.topology.InstConfigAccessor; import com.alibaba.polardbx.gms.topology.SystemDbHelper; -import com.alibaba.polardbx.gms.util.InstIdUtil; import com.alibaba.polardbx.gms.util.MetaDbUtil; import com.alibaba.polardbx.optimizer.context.ExecutionContext; import com.alibaba.polardbx.optimizer.utils.ITimestampOracle; @@ -51,18 +48,19 @@ import com.alibaba.polardbx.transaction.async.TransactionStatisticsTaskWrapper; import com.alibaba.polardbx.transaction.log.GlobalTxLogManager; import com.alibaba.polardbx.transaction.trx.AllowReadTransaction; +import com.alibaba.polardbx.transaction.trx.ArchiveTransaction; import com.alibaba.polardbx.transaction.trx.AsyncCommitTransaction; -import com.alibaba.polardbx.transaction.trx.AutoCommitTsoTransaction; import com.alibaba.polardbx.transaction.trx.AutoCommitSingleShardTsoTransaction; import com.alibaba.polardbx.transaction.trx.AutoCommitTransaction; +import com.alibaba.polardbx.transaction.trx.AutoCommitTsoTransaction; import com.alibaba.polardbx.transaction.trx.BestEffortTransaction; import com.alibaba.polardbx.transaction.trx.CobarStyleTransaction; import com.alibaba.polardbx.transaction.trx.ITsoTransaction; import com.alibaba.polardbx.transaction.trx.MppReadOnlyTransaction; import com.alibaba.polardbx.transaction.trx.ReadOnlyTsoTransaction; import com.alibaba.polardbx.transaction.trx.TsoTransaction; -import com.alibaba.polardbx.transaction.trx.XATsoTransaction; import com.alibaba.polardbx.transaction.trx.XATransaction; +import com.alibaba.polardbx.transaction.trx.XATsoTransaction; import com.alibaba.polardbx.transaction.tso.ClusterTimestampOracle; import java.sql.Connection; @@ -223,6 +221,10 @@ protected void doDestroy() { mdlDeadlockDetectionTask.cancel(); mdlDeadlockDetectionTask = null; } + if (killTimeoutTransactionTask != null) { + killTimeoutTransactionTask.cancel(); + killTimeoutTransactionTask = null; + } super.doDestroy(); } @@ -292,6 +294,9 @@ public ITransaction createTransaction(TransactionClass trxConfig, ExecutionConte case COLUMNAR_READ_ONLY_TRANSACTION: trx = new ColumnarTransaction(executionContext, this); break; + case ARCHIVE: + trx = new ArchiveTransaction(executionContext, this); + break; default: throw new AssertionError("TransactionType: " + trxConfig.name() + " not supported"); } diff --git a/polardbx-transaction/src/main/java/com/alibaba/polardbx/transaction/log/GlobalTxLogManager.java b/polardbx-transaction/src/main/java/com/alibaba/polardbx/transaction/log/GlobalTxLogManager.java index 70fb3c8c9..a48027d50 100644 --- a/polardbx-transaction/src/main/java/com/alibaba/polardbx/transaction/log/GlobalTxLogManager.java +++ b/polardbx-transaction/src/main/java/com/alibaba/polardbx/transaction/log/GlobalTxLogManager.java @@ -37,9 +37,6 @@ import com.alibaba.polardbx.common.utils.logger.Logger; import com.alibaba.polardbx.common.utils.logger.LoggerFactory; import com.alibaba.polardbx.gms.config.impl.InstConfUtil; -import com.alibaba.polardbx.gms.metadb.MetaDbDataSource; -import com.alibaba.polardbx.gms.topology.InstConfigAccessor; -import com.alibaba.polardbx.gms.util.InstIdUtil; import com.alibaba.polardbx.gms.util.MetaDbUtil; import com.alibaba.polardbx.group.jdbc.TGroupDataSource; import com.alibaba.polardbx.rpc.compatible.XPreparedStatement; diff --git a/polardbx-transaction/src/main/java/com/alibaba/polardbx/transaction/rawsql/RawSqlUtils.java b/polardbx-transaction/src/main/java/com/alibaba/polardbx/transaction/rawsql/RawSqlUtils.java index 9cc559260..ff72472b6 100644 --- a/polardbx-transaction/src/main/java/com/alibaba/polardbx/transaction/rawsql/RawSqlUtils.java +++ b/polardbx-transaction/src/main/java/com/alibaba/polardbx/transaction/rawsql/RawSqlUtils.java @@ -16,9 +16,9 @@ package com.alibaba.polardbx.transaction.rawsql; +import com.alibaba.polardbx.common.jdbc.TableName; import com.alibaba.polardbx.common.exception.TddlRuntimeException; import com.alibaba.polardbx.common.exception.code.ErrorCode; -import com.alibaba.polardbx.common.jdbc.TableName; import com.alibaba.polardbx.common.jdbc.ZeroDate; import com.alibaba.polardbx.common.jdbc.ZeroTime; import com.alibaba.polardbx.common.jdbc.ZeroTimestamp; diff --git a/polardbx-transaction/src/main/java/com/alibaba/polardbx/transaction/trx/AbstractTransaction.java b/polardbx-transaction/src/main/java/com/alibaba/polardbx/transaction/trx/AbstractTransaction.java index 365aec237..870627a72 100644 --- a/polardbx-transaction/src/main/java/com/alibaba/polardbx/transaction/trx/AbstractTransaction.java +++ b/polardbx-transaction/src/main/java/com/alibaba/polardbx/transaction/trx/AbstractTransaction.java @@ -67,6 +67,7 @@ import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.StampedLock; +import java.util.regex.Pattern; import static com.alibaba.polardbx.common.exception.code.ErrorCode.ERR_GLOBAL_SECONDARY_INDEX_CONTINUE_AFTER_WRITE_FAIL; import static com.alibaba.polardbx.common.exception.code.ErrorCode.ERR_TRANS_CONTINUE_AFTER_WRITE_FAIL; @@ -119,18 +120,19 @@ public abstract class AbstractTransaction extends BaseTransaction implements IDi private final long maxTime; // Only rollback statement when the following errors occur. - private static final List enableRollbackStatementErrors = ImmutableList.of( - "Lock wait timeout exceeded; try restarting transaction", - "Duplicate entry", - "Data too long for column", - "Out of range value for column", - "[TDDL-4602][ERR_CONVERTOR]", - "Incorrect datetime value", - "Incorrect time value", - "Data truncated for column", - "doesn't have a default value", - "Cannot delete or update a parent row: a foreign key constraint fails", - "Option SET_DEFAULT" + private static final List canRollbackStatementErrors = ImmutableList.of( + Pattern.compile(".*Lock wait timeout exceeded; try restarting transaction.*"), + Pattern.compile(".*Duplicate entry.*"), + Pattern.compile(".*Data too long for column.*"), + Pattern.compile(".*Out of range value for column.*"), + Pattern.compile(".*\\[TDDL-4602]\\[ERR_CONVERTOR].*"), + Pattern.compile(".*Incorrect datetime value.*"), + Pattern.compile(".*Incorrect time value.*"), + Pattern.compile(".*Data truncated for column.*"), + Pattern.compile(".*doesn't have a default value.*"), + Pattern.compile(".*Cannot delete or update a parent row: a foreign key constraint fails.*"), + Pattern.compile(".*Option SET_DEFAULT.*"), + Pattern.compile(".*Column .* cannot be null.*") ); public AbstractTransaction(ExecutionContext executionContext, TransactionManager manager) { @@ -793,7 +795,7 @@ public void execute(TransactionConnectionHolder.HeldConnection heldConn) { } } - private boolean shouldRollbackStatement(Throwable t) { + protected boolean shouldRollbackStatement(Throwable t) { /* Rollback statement when: * 1. the current statement is a DML; * 2. and it fails when it is executing in multi-shards. @@ -802,8 +804,8 @@ private boolean shouldRollbackStatement(Throwable t) { && (this.getCrucialError() == ERR_TRANS_CONTINUE_AFTER_WRITE_FAIL || this.getCrucialError() == ERR_GLOBAL_SECONDARY_INDEX_CONTINUE_AFTER_WRITE_FAIL)) { final String errorMessage = t.getMessage(); - for (String error : enableRollbackStatementErrors) { - if (StringUtils.containsIgnoreCase(errorMessage, error)) { + for (Pattern errorPattern : canRollbackStatementErrors) { + if (errorPattern.matcher(errorMessage).matches()) { return true; } } diff --git a/polardbx-transaction/src/main/java/com/alibaba/polardbx/transaction/trx/ArchiveTransaction.java b/polardbx-transaction/src/main/java/com/alibaba/polardbx/transaction/trx/ArchiveTransaction.java new file mode 100644 index 000000000..d3520394a --- /dev/null +++ b/polardbx-transaction/src/main/java/com/alibaba/polardbx/transaction/trx/ArchiveTransaction.java @@ -0,0 +1,64 @@ +/* + * Copyright [2013-2021], Alibaba Group Holding Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.alibaba.polardbx.transaction.trx; + +import com.alibaba.polardbx.common.jdbc.IConnection; +import com.alibaba.polardbx.common.jdbc.ITransactionPolicy; +import com.alibaba.polardbx.optimizer.context.ExecutionContext; +import com.alibaba.polardbx.transaction.TransactionManager; +import com.alibaba.polardbx.transaction.utils.XAUtils; + +/** + * This transaction is used for archive operations, its xa format id is 3. + * + * @author yaozhili + */ +public class ArchiveTransaction extends TsoTransaction { + private final static long ARCHIVE_FORMAT_ID = 3; + private final static String TRX_LOG_PREFIX = "[" + ITransactionPolicy.TransactionClass.ARCHIVE + "]"; + + public ArchiveTransaction(ExecutionContext executionContext, + TransactionManager manager) { + super(executionContext, manager); + } + + @Override + protected String getXid(String group, IConnection conn) { + if (conn.getTrxXid() != null) { + return conn.getTrxXid(); + } + conn.setInShareReadView(shareReadView); + String xid; + if (shareReadView) { + xid = XAUtils.toXidStringWithFormatId(id, group, primaryGroupUid, getReadViewSeq(group), ARCHIVE_FORMAT_ID); + } else { + xid = XAUtils.toXidStringWithFormatId(id, group, primaryGroupUid, ARCHIVE_FORMAT_ID); + } + conn.setTrxXid(xid); + return xid; + } + + @Override + public ITransactionPolicy.TransactionClass getTransactionClass() { + return ITransactionPolicy.TransactionClass.ARCHIVE; + } + + @Override + protected String getTrxLoggerPrefix() { + return TRX_LOG_PREFIX; + } +} diff --git a/polardbx-transaction/src/main/java/com/alibaba/polardbx/transaction/trx/ShareReadViewTransaction.java b/polardbx-transaction/src/main/java/com/alibaba/polardbx/transaction/trx/ShareReadViewTransaction.java index 4d6407806..c32e72aef 100644 --- a/polardbx-transaction/src/main/java/com/alibaba/polardbx/transaction/trx/ShareReadViewTransaction.java +++ b/polardbx-transaction/src/main/java/com/alibaba/polardbx/transaction/trx/ShareReadViewTransaction.java @@ -87,7 +87,7 @@ protected String getXid(String group, IConnection conn) { * 获取 ReadView 序列号 * 用于区分同一个 ReadView 下不同的连接 */ - private int getReadViewSeq(String group) { + protected int getReadViewSeq(String group) { int readViewCount = readViewConnCounter.getAndIncrement(); if (readViewCount >= MAX_READ_VIEW_COUNT) { throw new TddlRuntimeException(ErrorCode.ERR_CONCURRENT_TRANSACTION, group, @@ -241,7 +241,7 @@ public void commit() { checkTerminated(); checkCanContinue(); - if (!isCrossGroup && DynamicConfig.getInstance().isEnable1PcOpt()) { + if (!isCrossGroup && executionContext.isEnable1PCOpt()) { commitOneShardTrx(); return; } diff --git a/polardbx-transaction/src/main/java/com/alibaba/polardbx/transaction/trx/TsoTransaction.java b/polardbx-transaction/src/main/java/com/alibaba/polardbx/transaction/trx/TsoTransaction.java index 5d2cfef04..949fab12c 100644 --- a/polardbx-transaction/src/main/java/com/alibaba/polardbx/transaction/trx/TsoTransaction.java +++ b/polardbx-transaction/src/main/java/com/alibaba/polardbx/transaction/trx/TsoTransaction.java @@ -258,7 +258,8 @@ protected void commitMultiShardTrx() { // Get commit timestamp and Write commit log via an external connection commitTimestamp = nextTimestamp(t -> stat.getTsoTime += t); - if (!executionContext.getParamManager().getBoolean(ConnectionParams.TSO_OMIT_GLOBAL_TX_LOG)) { + if (!executionContext.getParamManager().getBoolean(ConnectionParams.TSO_OMIT_GLOBAL_TX_LOG) + && isCrossGroup) { long logStartTime = System.nanoTime(); try (IConnection logConn = dataSourceCache.get(primaryGroup).getConnection(MasterSlave.MASTER_ONLY)) { beforePrimaryCommit(); diff --git a/polardbx-transaction/src/main/java/com/alibaba/polardbx/transaction/utils/XAUtils.java b/polardbx-transaction/src/main/java/com/alibaba/polardbx/transaction/utils/XAUtils.java index 29ef82262..5b8de0ce4 100644 --- a/polardbx-transaction/src/main/java/com/alibaba/polardbx/transaction/utils/XAUtils.java +++ b/polardbx-transaction/src/main/java/com/alibaba/polardbx/transaction/utils/XAUtils.java @@ -141,7 +141,14 @@ public static String uniqueGroupForBqual(String group) { */ public static String toXidString(long transId, String group, long primaryGroupUid, long readViewSeq) { String xid = String.format("'drds-%s@%s', '%s@%04d'", Long.toHexString(transId), - Long.toHexString(primaryGroupUid), group, readViewSeq); + Long.toHexString(primaryGroupUid), uniqueGroupForBqual(group), readViewSeq); + return xid; + } + + public static String toXidStringWithFormatId(long transId, String group, long primaryGroupUid, long readViewSeq, + long formatId) { + String xid = String.format("'drds-%s@%s', '%s@%04d', %s", Long.toHexString(transId), + Long.toHexString(primaryGroupUid), uniqueGroupForBqual(group), readViewSeq, formatId); return xid; } @@ -162,7 +169,13 @@ public static String toBqualString(String group) { */ public static String toXidString(long transId, String group, long primaryGroupUid) { String xid = String.format("'drds-%s@%s', '%s'", Long.toHexString(transId), - Long.toHexString(primaryGroupUid), group); + Long.toHexString(primaryGroupUid), uniqueGroupForBqual(group)); + return xid; + } + + public static String toXidStringWithFormatId(long transId, String group, long primaryGroupUid, long formatId) { + String xid = String.format("'drds-%s@%s', '%s', %s", Long.toHexString(transId), + Long.toHexString(primaryGroupUid), uniqueGroupForBqual(group), formatId); return xid; } @@ -178,8 +191,8 @@ public static class XATransInfo { public final String trimedBqual; public final int formatId; - public XATransInfo(long transId, String gtrid, String bqual, long uid) { - this.gtrid = gtrid; + public XATransInfo(long transId, String bqual, long uid) { + this.gtrid = null; this.transId = transId; this.primaryGroupUid = uid; this.bqual = bqual; @@ -234,8 +247,7 @@ public static XATransInfo parseXid(long formatID, int gtridLength, int bqualLeng String txid = new String(gtridData, 5, atSymbolIndex - 5); String primaryGroupUid = new String(gtridData, atSymbolIndex + 1, gtridData.length - atSymbolIndex - 1); String group = new String(bqualData); - String gtrid = new String(gtridData); - return new XATransInfo(Long.parseLong(txid, 16), gtrid, group, tryParseLong(primaryGroupUid, 16)); + return new XATransInfo(Long.parseLong(txid, 16), group, tryParseLong(primaryGroupUid, 16)); } else { return null; } @@ -272,3 +284,4 @@ public static long tryParseLong(String s, int radix) { } } } + diff --git a/polardbx-transaction/src/test/java/com/alibaba/polardbx/transaction/TrxConnHolderTest.java b/polardbx-transaction/src/test/java/com/alibaba/polardbx/transaction/TrxConnHolderTest.java index 5c3de22e1..d50dc44db 100644 --- a/polardbx-transaction/src/test/java/com/alibaba/polardbx/transaction/TrxConnHolderTest.java +++ b/polardbx-transaction/src/test/java/com/alibaba/polardbx/transaction/TrxConnHolderTest.java @@ -30,6 +30,7 @@ import com.alibaba.polardbx.transaction.connection.TransactionConnectionHolder; import com.alibaba.polardbx.transaction.trx.AbstractTransaction; import com.alibaba.polardbx.transaction.trx.XATransaction; +import com.alibaba.polardbx.common.mock.MockUtils; import org.apache.commons.lang3.StringUtils; import org.junit.Assert; import org.junit.Test; @@ -153,9 +154,9 @@ private AbstractTransaction getMockTrx(boolean shareReadView, long groupParallel TransactionManager trxManager = Mockito.mock(TransactionManager.class); TransactionExecutor transactionExecutor = Mockito.mock(TransactionExecutor.class); - setInternalState(transactionExecutor, "asyncQueue", + MockUtils.setInternalState(transactionExecutor, "asyncQueue", Mockito.spy(new AsyncTaskQueue(schema, ExecutorUtil.create("ServerExecutor", 10)))); - setInternalState(trxManager, "executor", transactionExecutor); + MockUtils.setInternalState(trxManager, "executor", transactionExecutor); XATransaction trx = Mockito.spy(new XATransaction(executionContext, trxManager)); Mockito.doNothing().when(trx).begin(anyString(), anyString(), any()); @@ -163,7 +164,7 @@ private AbstractTransaction getMockTrx(boolean shareReadView, long groupParallel // TransactionConnectionHolder 初始化引用了 this // 需要 hook 成 Mock的trx对象 - setInternalState(trx.getConnectionHolder(), "trx", trx); + MockUtils.setInternalState(trx.getConnectionHolder(), "trx", trx); return trx; } @@ -549,14 +550,4 @@ private void getWriteConnWhileReadConnInUse(int groupIdx) throws SQLException { } } } - - public static void setInternalState(Object target, String fieldName, Object value) { - try { - Field field = target.getClass().getDeclaredField(fieldName); - field.setAccessible(true); - field.set(target, value); - } catch (NoSuchFieldException | IllegalAccessException e) { - throw new RuntimeException(e); - } - } } diff --git a/polardbx-transaction/src/test/java/com/alibaba/polardbx/transaction/trx/ArchiveTransactionTest.java b/polardbx-transaction/src/test/java/com/alibaba/polardbx/transaction/trx/ArchiveTransactionTest.java new file mode 100644 index 000000000..353610ab5 --- /dev/null +++ b/polardbx-transaction/src/test/java/com/alibaba/polardbx/transaction/trx/ArchiveTransactionTest.java @@ -0,0 +1,61 @@ +package com.alibaba.polardbx.transaction.trx; + +import com.alibaba.polardbx.common.jdbc.IConnection; +import com.alibaba.polardbx.common.jdbc.ITransactionPolicy; +import com.alibaba.polardbx.optimizer.context.ExecutionContext; +import com.alibaba.polardbx.optimizer.utils.ITransaction; +import com.alibaba.polardbx.transaction.TransactionManager; +import org.junit.Assert; +import org.junit.Test; + +import java.sql.Connection; + +import static org.mockito.Mockito.mock; + +public class ArchiveTransactionTest { + @Test + public void testShareReadview() { + TransactionManager transactionManager = new MockTransactionManager(); + ExecutionContext ec = new ExecutionContext(); + ec.setTxIsolation(Connection.TRANSACTION_REPEATABLE_READ); + ec.setShareReadView(true); + ITransaction trx = transactionManager.createTransaction(ITransactionPolicy.TransactionClass.ARCHIVE, ec); + Assert.assertTrue(trx instanceof ArchiveTransaction); + Assert.assertEquals(ITransactionPolicy.TransactionClass.ARCHIVE, trx.getTransactionClass()); + Assert.assertTrue(((ArchiveTransaction) trx).getTrxLoggerPrefix() + .contains(ITransactionPolicy.TransactionClass.ARCHIVE.name())); + IConnection connection = mock(IConnection.class); + String xid = ((ArchiveTransaction) trx).getXid("group", connection); + Assert.assertTrue(xid.endsWith("'group@0000', 3")); + xid = ((ArchiveTransaction) trx).getXid("group", connection); + Assert.assertTrue(xid.endsWith("'group@0001', 3")); + } + + @Test + public void testNoShareReadview() { + TransactionManager transactionManager = new MockTransactionManager(); + ExecutionContext ec = new ExecutionContext(); + ec.setTxIsolation(Connection.TRANSACTION_REPEATABLE_READ); + ec.setShareReadView(false); + ITransaction trx = transactionManager.createTransaction(ITransactionPolicy.TransactionClass.ARCHIVE, ec); + Assert.assertTrue(trx instanceof ArchiveTransaction); + Assert.assertEquals(ITransactionPolicy.TransactionClass.ARCHIVE, trx.getTransactionClass()); + Assert.assertTrue(((ArchiveTransaction) trx).getTrxLoggerPrefix() + .contains(ITransactionPolicy.TransactionClass.ARCHIVE.name())); + IConnection connection = mock(IConnection.class); + String xid = ((ArchiveTransaction) trx).getXid("group", connection); + Assert.assertTrue(xid.endsWith("'group', 3")); + xid = ((ArchiveTransaction) trx).getXid("group", connection); + Assert.assertTrue(xid.endsWith("'group', 3")); + } + + private static class MockTransactionManager extends TransactionManager { + public void enableKillTimeoutTransaction() { + // do nothing + } + + public void enableLogCleanTask() { + // do nothing + } + } +} diff --git a/polardbx-transaction/src/test/java/com/alibaba/polardbx/transaction/trx/CanRollbackStatementErrorTest.java b/polardbx-transaction/src/test/java/com/alibaba/polardbx/transaction/trx/CanRollbackStatementErrorTest.java new file mode 100644 index 000000000..801863c8f --- /dev/null +++ b/polardbx-transaction/src/test/java/com/alibaba/polardbx/transaction/trx/CanRollbackStatementErrorTest.java @@ -0,0 +1,132 @@ +package com.alibaba.polardbx.transaction.trx; + +import com.alibaba.polardbx.common.jdbc.IConnection; +import com.alibaba.polardbx.common.jdbc.ITransactionPolicy; +import com.alibaba.polardbx.common.type.TransactionType; +import com.alibaba.polardbx.druid.sql.ast.SqlType; +import com.alibaba.polardbx.optimizer.context.ExecutionContext; +import com.alibaba.polardbx.transaction.TransactionManager; +import com.alibaba.polardbx.transaction.connection.TransactionConnectionHolder; +import com.alibaba.polardbx.transaction.log.GlobalTxLogManager; +import org.junit.Assert; +import org.junit.Test; + +import java.sql.SQLException; + +import static com.alibaba.polardbx.common.exception.code.ErrorCode.ERR_TRANS_CONTINUE_AFTER_WRITE_FAIL; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.doNothing; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +public class CanRollbackStatementErrorTest { + @Test + public void test() { + TransactionManager transactionManager = mock(TransactionManager.class); + GlobalTxLogManager txLogManager = mock(GlobalTxLogManager.class); + when(transactionManager.getGlobalTxLogManager()).thenReturn(txLogManager); + when(transactionManager.generateTxid(any())).thenReturn(100L); + doNothing().when(transactionManager).register(any()); + + ExecutionContext ec = new ExecutionContext(); + ec.setSqlType(SqlType.DELETE); + MockTransaction tx = new MockTransaction(ec, transactionManager); + tx.setCrucialError(ERR_TRANS_CONTINUE_AFTER_WRITE_FAIL, ""); + + SQLException e; + e = new SQLException( + "Error occurs when execute on GROUP 'DRDS_POLARX1_QATEST_APP_000002_GROUP' ATOM 'dskey_drds_polarx1_qatest_app_000002_group#polardbx-storage-0-master#11.167.60.147-3777#drds_polarx1_qatest_app_000002': Data too long for column 'c' at row 1 "); + Assert.assertTrue(tx.shouldRollbackStatement(e)); + + e = new SQLException( + "Error occurs when execute on GROUP 'DRDS_POLARX1_QATEST_APP_000000_GROUP' ATOM 'dskey_drds_polarx1_qatest_app_000000_group#polardbx-storage-0-master#11.167.60.147-3777#drds_polarx1_qatest_app_000000': Duplicate entry '1' for key 'PRIMARY'"); + Assert.assertTrue(tx.shouldRollbackStatement(e)); + + e = new SQLException( + "Error occurs when execute on GROUP 'DRDS_POLARX1_QATEST_APP_000000_GROUP' ATOM 'dskey_drds_polarx1_qatest_app_000000_group#polardbx-storage-0-master#11.167.60.147-3777#drds_polarx1_qatest_app_000000': Duplicate entry '1' for key 'PRIMARY'"); + Assert.assertTrue(tx.shouldRollbackStatement(e)); + + e = new SQLException( + "Error occurs when execute on GROUP 'DRDS_POLARX1_QATEST_APP_000000_GROUP' ATOM 'dskey_drds_polarx1_qatest_app_000000_group#polardbx-storage-0-master#11.167.60.147-3777#drds_polarx1_qatest_app_000000': Duplicate entry '1' for key UGSI 'auto_savepoint_test_gsi_tablexa'"); + Assert.assertTrue(tx.shouldRollbackStatement(e)); + + e = new SQLException( + "Error occurs when execute on GROUP 'DRDS_POLARX1_QATEST_APP_000002_GROUP' ATOM 'dskey_drds_polarx1_qatest_app_000002_group#polardbx-storage-0-master#11.167.60.147-3777#drds_polarx1_qatest_app_000002': Out of range value for column 'd' at row 1 "); + Assert.assertTrue(tx.shouldRollbackStatement(e)); + + e = new SQLException( + "[TDDL-4602][ERR_CONVERTOR] convertor error: java.lang.Long value '10000000000000' is too large for java.lang.Integer "); + Assert.assertTrue(tx.shouldRollbackStatement(e)); + + e = new SQLException( + "Error occurs when execute on GROUP 'DRDS_POLARX1_QATEST_APP_000000_GROUP' ATOM 'dskey_drds_polarx1_qatest_app_000000_group#polardbx-storage-0-master#11.167.60.147-3777#drds_polarx1_qatest_app_000000': Field 'd' doesn't have a default value "); + Assert.assertTrue(tx.shouldRollbackStatement(e)); + + e = new SQLException( + "Error occurs when execute on GROUP 'DRDS_POLARX1_QATEST_APP_000001_GROUP' ATOM 'dskey_drds_polarx1_qatest_app_000001_group#polardbx-storage-1-master#11.167.60.147-3777#drds_polarx1_qatest_app_000001': Incorrect datetime value: 'bad' for column 'time1' at row 1 "); + Assert.assertTrue(tx.shouldRollbackStatement(e)); + + e = new SQLException( + "Error occurs when execute on GROUP 'DRDS_POLARX1_QATEST_APP_000000_GROUP' ATOM 'dskey_drds_polarx1_qatest_app_000000_group#polardbx-storage-0-master#11.167.60.147-3777#drds_polarx1_qatest_app_000000': Incorrect time value: 'bad' for column 'time2' at row 1 "); + Assert.assertTrue(tx.shouldRollbackStatement(e)); + + e = new SQLException( + "Error occurs when execute on GROUP 'DB2_P00000_GROUP' ATOM 'dskey_db2_p00000_group#polardbx-storage-0-master#11.167.60.147-3777#db2_p00000': Column 'name' cannot be null"); + Assert.assertTrue(tx.shouldRollbackStatement(e)); + + e = new SQLException("Cannot delete or update a parent row: a foreign key constraint fails"); + Assert.assertTrue(tx.shouldRollbackStatement(e)); + + e = new SQLException("Option SET_DEFAULT"); + Assert.assertTrue(tx.shouldRollbackStatement(e)); + + // Connection error cannot be rolled back. + e = new SQLException("No operations allowed after connection closed"); + Assert.assertFalse(tx.shouldRollbackStatement(e)); + + e = new SQLException("Connection killed"); + Assert.assertFalse(tx.shouldRollbackStatement(e)); + + e = new SQLException("Communications link failure"); + Assert.assertFalse(tx.shouldRollbackStatement(e)); + } + + private static class MockTransaction extends AbstractTransaction { + public MockTransaction(ExecutionContext executionContext, TransactionManager manager) { + super(executionContext, manager); + } + + @Override + public void begin(String schema, String group, IConnection conn) throws SQLException { + } + + @Override + protected void cleanup(String group, IConnection conn) throws SQLException { + + } + + @Override + protected void innerCleanupAllConnections(String group, IConnection conn, + TransactionConnectionHolder.ParticipatedState participatedState) { + + } + + @Override + public void commit() { + } + + @Override + public void rollback() { + } + + @Override + public ITransactionPolicy.TransactionClass getTransactionClass() { + return null; + } + + @Override + public TransactionType getType() { + return null; + } + } +} diff --git a/polardbx-transaction/src/test/java/com/alibaba/polardbx/transaction/utils/XidTest.java b/polardbx-transaction/src/test/java/com/alibaba/polardbx/transaction/utils/XidTest.java new file mode 100644 index 000000000..a55b551f3 --- /dev/null +++ b/polardbx-transaction/src/test/java/com/alibaba/polardbx/transaction/utils/XidTest.java @@ -0,0 +1,55 @@ +package com.alibaba.polardbx.transaction.utils; + +import com.alibaba.polardbx.optimizer.config.server.IServerConfigManager; +import org.junit.Assert; +import org.junit.Test; + +public class XidTest { + @Test + public void testXid() { + String schema0 = "test_schema_0"; + String group00 = "test_group_00"; + String group01 = "test_group_01_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; + Assert.assertTrue(group01.length() > 64); + long trxId = Long.parseLong("17cda2cd95800000", 16); + long primaryGroupId0 = IServerConfigManager.getGroupUniqueId(schema0, group00); + String xidString00 = XAUtils.toXidString(trxId, group00, primaryGroupId0, 1000); + String xidString01 = XAUtils.toXidString(trxId, group01, primaryGroupId0, 1001); + Assert.assertTrue(xidString00.length() <= 128); + Assert.assertTrue(xidString01.length() <= 128); + + String bqual00 = getBqual(xidString00); + XAUtils.XATransInfo xatransInfo = new XAUtils.XATransInfo(trxId, bqual00, primaryGroupId0); + Assert.assertEquals(xatransInfo.toXidString(), xidString00); + + String bqual01 = getBqual(xidString01); + xatransInfo = new XAUtils.XATransInfo(trxId, bqual01, primaryGroupId0); + Assert.assertEquals(xatransInfo.toXidString(), xidString01); + + String schema1 = "test_schema_1"; + long primaryGroupId1 = IServerConfigManager.getGroupUniqueId(schema1, group00); + String xidString10 = XAUtils.toXidString(trxId, group00, primaryGroupId1, 1000); + String xidString11 = XAUtils.toXidString(trxId, group01, primaryGroupId1, 1001); + Assert.assertTrue(xidString10.length() < 128); + Assert.assertTrue(xidString11.length() < 128); + + String bqual10 = getBqual(xidString00); + xatransInfo = new XAUtils.XATransInfo(trxId, bqual10, primaryGroupId1); + Assert.assertEquals(xatransInfo.toXidString(), xidString10); + + String bqual11 = getBqual(xidString01); + xatransInfo = new XAUtils.XATransInfo(trxId, bqual11, primaryGroupId1); + Assert.assertEquals(xatransInfo.toXidString(), xidString11); + + // Same group names with different schema should have different xid. + Assert.assertNotEquals(xidString00, xidString10); + Assert.assertNotEquals(xidString01, xidString11); + } + + private static String getBqual(String xid) { + String bqual = xid.split(",")[1]; + int start = bqual.indexOf('\'') + 1; + int end = bqual.lastIndexOf('\''); + return bqual.substring(start, end); + } +} diff --git a/pom.xml b/pom.xml index 187c8a2b3..9f90d76d7 100644 --- a/pom.xml +++ b/pom.xml @@ -127,6 +127,7 @@ ${project.build.directory}/testing-tmp ${project.basedir}/../examples 2.7.3 + 3.2.2 1.6.9 2.7.1 2.9.0 @@ -151,8 +152,6 @@ 2.0.2 3.16 1.9.3 - 5.7.0 - 2.3.4.726 1.9.4